Audio 如何利用谐波数据计算麦克风输入的基频

Audio 如何利用谐波数据计算麦克风输入的基频,audio,unity3d,signal-processing,fft,pitch-detection,Audio,Unity3d,Signal Processing,Fft,Pitch Detection,通过使用GetSpectrumData函数查找最高峰值bin,我能够计算来自统一话筒的实时音频输入的基频。 但对于较低的频率,它就失败了。 我想如果我弹奏低频音符,我会得到谐波的频率。 如何使用谐波数据计算基频。您可以使用谐波积谱算法进行泛音丰富的单声道基音检测和估计 倒谱或倒谱分析是另一种可能性。您可以使用适当的基音检测算法,而不是试图重新发明车轮,或者如果您只是想要“快速且肮脏”的东西,则可以测量连续谐波之间的距离,因为这通常与基频相同。如果输入是单声道的并且没有太大的噪音,你可以使用它。@

通过使用GetSpectrumData函数查找最高峰值bin,我能够计算来自统一话筒的实时音频输入的基频。 但对于较低的频率,它就失败了。 我想如果我弹奏低频音符,我会得到谐波的频率。
如何使用谐波数据计算基频。

您可以使用谐波积谱算法进行泛音丰富的单声道基音检测和估计


倒谱或倒谱分析是另一种可能性。

您可以使用适当的基音检测算法,而不是试图重新发明车轮,或者如果您只是想要“快速且肮脏”的东西,则可以测量连续谐波之间的距离,因为这通常与基频相同。如果输入是单声道的并且没有太大的噪音,你可以使用它。@Linuxios我已经尝试过自相关,它工作得很好,()。但我还需要前7次谐波的振幅。这是可能的使用自相关。如果是,你能指引我走正确的路吗?@Tusharkavale:那样的话,不,你需要查看光谱数据。你可能使用的样本不够长吗?较低的频率将需要较长的时间周期(因此需要更多的样本)在整个波长上振荡。只有对整个波长进行采样,才能确定音调的峰值。波长=1/频率如何使用HPS算法?这是一个单独的问题。为什么不问呢?(而不是评论)。