audio - 实时音高检测

标签 audio signal-processing fft pitch pitch-tracking

我正在尝试对用户唱歌进行实时音高检测,但我遇到了很多问题。我尝试了很多方法,包括 FFT ( FFT Problem (Returns random results) ) 和自相关 ( Autocorrelation pitch detection returns random results with mic input ),但我似乎无法得到任何方法来给出好的结果。任何人都可以建议一种实时音高跟踪的方法或如何改进我已有的方法?我似乎找不到任何用于实时音高检测的好的 C/C++ 方法。

谢谢,

尼尔。

编辑:请注意,我已经检查过麦克风输入数据是否正确,并且当使用正弦波时,结果或多或少是正确的音高。

编辑:对不起,这已经晚了,但目前,我通过从结果数组和每个索引中取出值来可视化自动排序,并绘制 X 轴上的索引和 Y 轴上的值(两者均除以100000 或其他东西,我使用 OpenGL),将数据插入 VST 主机并使用 VST 插件对我来说不是一个选择。目前,它看起来只是一些随机的点。我做得对吗,或者你能指点我做这件事的一些代码,或者帮助我理解如何可视化原始音频数据和自相关数据。

最佳答案

退后一步... 要让这个工作,你 必须找出一种方法来绘制此过程的中间步骤。您尝试做的事情并不是特别困难,但它容易出错且繁琐。削波、开窗、接线错误、混叠、直流偏移、读取错误的 channel 、奇怪的 FFT 频率轴、阻抗不匹配、帧大小错误……谁知道呢。但是,如果您可以绘制原始数据,然后绘制 FFT,一切都会变得清晰。

关于audio - 实时音高检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354084/

相关文章:

audio - 如何将 knockout 绑定(bind)到音频播放按钮

android - SIP 如何更改音频编解码器

java - MediaPlayer和AudioTrack不会输出相同的声音

python - sklearn - 模型保持过度拟合

java - 回声/延迟算法只会导致噪音/静电?

pytorch - 使用 pytorch 验证卷积定理

android - 使用AudioTrack改善音符合成的性能

python - 计算快速傅里叶变换中的频率

ios - 在给定时间内播放任何音频

android - 打开蓝牙耳机的 socket 后音频暂停(Android 2.x)