【问题标题】:How to compare a sound input with a pre-determined sound?如何将声音输入与预先确定的声音进行比较?
【发布时间】:2011-11-07 11:24:55
【问题描述】:

详细说明:

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

【问题讨论】:

  • 与预先确定的声音进行比较并不是音高识别的完成方式。糟糕的标题。

标签: audio signal-processing


【解决方案1】:

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

在 stackoverflow 上搜索音乐音高估计算法。有一堆。

【讨论】:

  • 根据您的经验,哪种算法最能近似您提到的心理声学音高?
  • 您可能想提出另一个更好的问题。这可能取决于您的要求和约束的详细信息。
【解决方案2】:

使用快速傅里叶变换。这是一些代码:http://www.codeproject.com/KB/audio-video/FftGuitarTuner.aspx

【讨论】:

  • 基于 FFT 的频率估计器制作出糟糕的吉他调音器。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    相关资源
    最近更新 更多