【问题标题】:Recognizing notes when playing over microphone通过麦克风播放时识别音符
【发布时间】:2012-10-19 20:30:31
【问题描述】:

我想制作一个程序来识别我用吉他在麦克风上弹奏的音符,但我不确定如何让我的程序识别我弹奏的声音,然后让程序在一堆笔记。 我可以帮忙吗?我基本上需要一个库,它能够识别通过麦克风播放的声音,然后将其与不同的音频文件进行比较,看看哪个最接近播放的音符。 我希望你们现在明白这一点,这很难解释。

【问题讨论】:

  • 要考虑的一点是,您不需要与示例声音进行比较。音符是频率,可以确定声音的频谱。有关更多信息,我建议阅读 Fourier Transforms。可能存在与麦克风保真度相关的细微之处(它可能会在一定程度上扭曲信号),但这可能会给您一个起点。

标签: c# audio xna


【解决方案1】:

正如 Dan Bryant 所提到的,您基本上想要进行 FFT,它可以为您提供不同频率的能量。找到能量最大的频率,然后选择频率最接近该频率的音符。这就是您购买的小型数字调音器的功能,这些调音器可以帮助您为吉他调音。有几个可用的库可以为您执行 FFT。您只需要指定一个 FFT 大小,它可以为您提供足够的频率分辨率来区分音符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    • 2018-06-18
    • 2015-10-31
    • 2018-02-14
    • 2021-07-15
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多