Audio 如何将声音输入与预先确定的声音进行比较?

Audio 如何将声音输入与预先确定的声音进行比较?,audio,signal-processing,Audio,Signal Processing,详细说明: 假设我在我的吉他上弹奏G,我的声卡接受了输入。如何让我的电脑识别它是G?(对编程语言没有限制,但更喜欢Python或C)(链接到文章或某些想法会有所帮助。没有代码片段)使用快速傅立叶变换。下面是一些代码:如果您只想检查几个频率,则可能更容易实现。(并且在运行时更快)无论是Goertzel滤波器还是FFT都不是很好的音高估计器。FFT是一种频率估计器,峰值频谱频率与心理声学音高不同(由于感知上的奇异性和实际乐器的物理特性,例如缺少或薄弱的基础) 在stackoverflow上搜索音高估

详细说明:


假设我在我的吉他上弹奏G,我的声卡接受了输入。如何让我的电脑识别它是G?(对编程语言没有限制,但更喜欢Python或C)(链接到文章或某些想法会有所帮助。没有代码片段)

使用快速傅立叶变换。下面是一些代码:

如果您只想检查几个频率,则可能更容易实现。(并且在运行时更快)

无论是Goertzel滤波器还是FFT都不是很好的音高估计器。FFT是一种频率估计器,峰值频谱频率与心理声学音高不同(由于感知上的奇异性和实际乐器的物理特性,例如缺少或薄弱的基础)


在stackoverflow上搜索音高估计算法。有很多。

基于FFT的频率估计器会让吉他调谐器变得很糟糕。与预先确定的声音进行比较并不是音高识别的方式。糟糕的标题。根据你的经验,哪种算法最能接近你提到的心理声学音高?你可能想问另一个更好的问题。这可能取决于您的需求和约束的细节。