使用FFT进行实时音调检测

时间:2009-09-23 16:01:38

标签: c++ audio signal-processing fft pitch-tracking

我正在尝试使用C ++进行实时音高检测。我正在测试一些来自Performous(http://performous.org/)的代码,因为其他一切对我来说都不起作用。我确信这有效,但我不能让它发挥作用。我已经尝试了几个星期了,而且我还没有能够使用任何音调检测代码。

3 个答案:

答案 0 :(得分:11)

您应该创建已知单一频率的数据,然后通过程序运行该数据并查看是否能获得正确的结果,而不是使用来自麦克风的输入。然后你可以添加谐波,看看是否有效。对于初始测试,真实世界的数据太多了。

答案 1 :(得分:1)

表演音频代码具有一些优化,频率限制和启发式功能,使其仅适合唱歌(和其他类似的音调)。最佳范围约为80-600 Hz。

答案 2 :(得分:1)

C/C++/Obj-C Real-time algorithm to ascertain Note (not Pitch) from Vocal Input

在此链接上查看已接受的答案。

我已经搜索了SO来解决这个问题,这是我找到的最有用的资源。

似乎Performous使用了这种算法,但很难从Performous代码

中得出结论 编辑:我终于找到了一个有效的解决方案。如果感兴趣的太阳鱼| gmail | c0m

给我发电子邮件