如果有任何方法可以获得声音的频率。

Posted

技术标签:

【中文标题】如果有任何方法可以获得声音的频率。【英文标题】:If there any way to get frequency of sound. 【发布时间】:2013-08-30 07:30:22 【问题描述】:

我想知道数据的频率。我有一点想法可以使用 FFT 来完成,但我不知道该怎么做。一旦我将整个数据传递给 FFT,它就会给我 2 个峰值,但我怎样才能得到频率?

非常感谢。

【问题讨论】:

峰的位置就是频率。 How to get Frequency from FFT result 的可能重复项 这在 SE 上经常被问到我写了一篇博客文章用代码解释它:blog.bjornroche.com/2012/07/… 【参考方案1】:

查看此页面以了解如何计算它: FFT Fundamentals

还请检查这个答案(它是 C# 代码,但我认为您可以轻松理解)How do I obtain the frequencies of each value in an FFT?

最后看看这个,它使用 DFT 而不是 FFT:Determining the magnitude of a certain frequency on the iPhone

我还发现了这个可以在 Objective-C 中使用的实现:

查找频率的库https://github.com/jkells/sc_listener 使用上述库的示例https://github.com/jkells/sc_listener_sample

问候

【讨论】:

【参考方案2】:

FFT 将为您提供信号的所有正弦分量的频率。相反,如果您只想要由语音和音乐产生的常见波形的周期性频率(听起来更有趣,看起来比普通的正弦波),那么您可能想要使用音高检测/估计算法,而不仅仅是 FFT 峰值.

【讨论】:

以上是关于如果有任何方法可以获得声音的频率。的主要内容,如果未能解决你的问题,请参考以下文章

如何获得声音文件特定频率的功率?

有音频测试硬件吗?

悬赏,请大家帮忙,MATLAB怎么用,改变声音频率(电脑软件)

AurioTouch2声音频率

有没有办法检测 HTML 5 网络音频 API 中的音频频率?

从声音文件中获取帧