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