高性能代码中的峰值检测
我正在寻找使用 HPS 方法在 iphone 中实现语音音高检测。但检测到的音调不是很准确。 Performous 在音调检测方面做得不错。
我查看了代码,但没有完全理解计算背后的理论。 他们使用 FFT 并找到峰值。但他们使用 FFT 输出相位的部分让我感到困惑。我认为他们对语音频率使用了一些启发式方法。
那么,有人可以解释一下 Performous 中用于检测音高的算法吗?
I was looking to implement voice pitch detection in iphone using HPS method. But the detected tones are not very accurate. Performous does a decent job of pitch detection.
I looked through the code but i did not fully get the theory behind the calculations.
They use FFT and find the peaks. But the part where they use the phase of FFT output, got me confused.I figure they use some heuristics for voice frequencies.
So,Could anyone please explain the algorithm used in Performous to detect pitch?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
[Performous][1] 从麦克风中提取音高。而且代码是开源的。以下是该算法的编码人员对该算法功能的描述(irc.freenode.net#performous 上的 Tronic)。
我仍然无法从这些信息中找出并实现它。如果有人解决了这个问题,请在此处发布您的结果,并评论此回复,以便 SO 通知我。
任务是围绕此代码创建一个最小的 C++ 包装器。
[Performous][1] extracts pitch from the microphone. Also the code is open source. Here is a description of what the algorithm does, from the guy that coded it (Tronic on irc.freenode.net#performous).
I still wasn't able from this information to figure it out and implement it. If anyone manages this, please please post your results here, and comment this response so that SO notifies me.
The task would be to create a minimal C++ wrapper around this code.