如何将声音输入与预设声音进行比较?

8

详细说明:

假设我在吉他上弹奏了一个G音符,我的声卡已经输入了这个音符。如何让我的电脑识别出这是G音符?(编程语言无限制,但最好使用Python或C)(链接文章或某些想法将有所帮助。不要提供代码片段)


2
将音高识别与预先确定的声音进行比较并不是正确的方法。标题不够准确。 - hotpaw2
3个回答

1

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

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


从您的经验来看,哪种算法最擅长近似您提到的非常心理声调? - Rad'Val
你可能想把这个问题提出来,以便更好地进行提问。这可能取决于您的需求和限制的细节。 - hotpaw2

0

基于FFT的频率估计器对吉他调音来说效果很差。 - hotpaw2

0

如果你只想检测几个频率,Goertzel算法可能更简单易实现。(而且运行速度更快)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接