c# - 如何在.Net 中进行实时音高检测?

标签 c# .net vb.net signal-processing fft

我想制作一个程序来检测麦克风前演奏的音符。我正在测试 Naudio 的 FFT 功能,但根据我大胆进行的测试,FFT 似乎无法正确检测音调。我玩的是C5,但最高的选择是E7。

我将频率分析窗口中的第一个下拉框更改为“增强自相关”,之后最高选择位于 C5。

我在谷歌上搜索了“增强自相关”,但没有成功。

最佳答案

您可能会被谐波困扰。您是否尝试过使用正弦波进行测试,看看您的 NAudio 的 FFT 是否在标准范围内?

请参阅这些引用资料: http://cnx.org/content/m11714/latest/

http://www.gamedev.net/community/forums/topic.asp?topic_id=506592&whichpage=1�

Audacity 源代码中 Spectrum.cpp 中的

第 48 行似乎接近您想要的内容。他们还引用了 IEEE paper by Tolonen and Karjalainen .

关于c# - 如何在.Net 中进行实时音高检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4236475/

相关文章:

c# - 找出具体异常

c# - 如果在接口(interface)上定义属性,xVal 会起作用吗?

vb.net - System.Security.Cryptography.MACTripleDES() 未在 .NET 标准中定义

vb.net - 在基类中实现事件

mysql - 与 MySql 中的数据库的 Visual Basic 连接

c# - 如何使用 C# 从 SQL 数据库获取值到文本框?

c# - Linq 包含枚举数组

c# - 可移植类库中的 Type.BaseType

c# - 区分 KeyboardHook 中的两个键盘

c# - 如何防止 WPF 按钮在单击后保持突出显示状态?