从音频文件中查找每秒频率

Posted

技术标签:

【中文标题】从音频文件中查找每秒频率【英文标题】:Finding the frequency per second from an audio file 【发布时间】:2013-12-22 13:54:38 【问题描述】:

我目前正在制作一款类似于 Audiosurf 的游戏。我正在尝试每秒查找音频文件(如 .mpg3 或 .wav)的频率。基于该值,我将构建关卡。我一直在做很多关于这个话题的研究。我有办法在音频文件中获取样本,我正在使用统一引擎制作这个游戏。我正在考虑将样本每秒分解为样本(使用传输速率),然后对每个样本进行 FFT,然后在每个样本中找到最高频率。我在正确的道路上吗?任何人都可以提出任何建议,或者如果我不在正确的道路上,有人可以纠正我吗?任何帮助将不胜感激。

【问题讨论】:

“音频文件的频率”没有意义,真的。您的文件是否只包含一个正弦波? 【参考方案1】:

您在 FFT 部分的正确路径上,并将您的样本拆分到 bin 中。这是一个库:http://www.fftw.org/

选择频率会让人毛骨悚然,让我直接告诉你,扔掉频谱中的最高频率,它是静态的一部分。 也许您可以使用最低频率来捕捉低音线,但低音鼓甚至大气音效可能会干扰那里。

现在,如果您确实找到了一些启发式方法,可以让您在歌曲中的给定时刻选择“频率”,那么这很可能与音乐本身无关。您最好重新设计您的想法以在每个时刻使用频率频谱,而不仅仅是单个频率。

编辑:傅立叶变换将为您提供一个复数数组,每个复数将幅度表示为实部,相位表示为其 bin 的虚部。

【讨论】:

“部分静态”——一般来说会有交叉频谱噪声,以及频谱泄漏。没有 bin 将是零值... 我的意思是从音乐的角度来看,我在录音室发现通常具有非平凡幅度的最高频率谐波实际上仍然不是音乐,而只是来自录音情况的背景噪音。 感谢两位的回复。我一直在做更多的研究,我从 fft 中找到了垃圾箱以及真实和想象的结果。有人可以解释这些吗?我还发现要得到一个频率它的 sqrt(realreal + imaginaryimaginary),这是什么意思?

以上是关于从音频文件中查找每秒频率的主要内容,如果未能解决你的问题,请参考以下文章

Java - 使用 FFT 查找音频信号的频率和幅度

音频特征提取

Matlab:在一帧音频数据中查找主要频率

音频采样频率依赖于通道?

音频处理音高 与 频率 对照表 ( 音符频率算法 )

使用 FFT 查找音频频率变化的非常简单的解释 [关闭]