C# 在麦克风上播放时识别音符

C# 在麦克风上播放时识别音符,c#,audio,xna,C#,Audio,Xna,我想制作一个程序来识别我用吉他在麦克风上弹奏的音符,但我不确定如何让我的程序识别我弹奏的声音,然后让程序在一堆音符中进行选择。 我能帮忙吗?我基本上需要一个库,它能够识别通过麦克风播放的声音,然后将其与不同的音频文件进行比较,看看哪一个最接近播放的音符。 我希望你们现在明白了,这很难解释。正如Dan Bryant提到的,你们基本上想要做一个FFT,它给出不同频率下的能量量。找到能量最大的频率,然后选择频率最接近的音符。这就是你所购买的小数字调谐器的功能,它可以帮助你调整你的吉他。有几个可用的库将

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

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

一个要考虑的事情是你不需要和示例声音比较。音符是频率,可以确定声音的频谱。要了解更多信息,我建议阅读。麦克风的保真度可能有一些微妙之处(它可能会使信号有些失真),但这可能会给你一个开始的地方。检查这个问题: