c# - 从原始波形数据中检测特定频率/音调

标签 c# algorithm audio wave

我正在读取来自麦克风的原始波流。
(这部分工作,因为我可以将它发送到扬声器并得到很好的回声。)

为简单起见,假设我想检测波形数据中的 DTMF 音调。实际上我想检测任何频率,而不仅仅是 DTMF 中的频率。但我始终知道我在寻找哪个频率。

我已经尝试通过 FFT 运行它,但如果我想要高精度的检测(假设它只存在 20 毫秒),它似乎不是很有效。我可以将其检测到大约 200 毫秒的精度。

关于算法,我有哪些选择? 是否有任何 .Net 库?

最佳答案

您可能想查看 Goertzel algorithm如果您正在尝试检测特定频率,例如 DTMF 输入。有一个C# DTMF generator/detector Sourceforge 上基于此算法的库。

关于c# - 从原始波形数据中检测特定频率/音调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808893/

相关文章:

node.js - Node.js Web 应用程序上的 IBM Watson 语音到文本音频转换

c# - 多 channel GroupBy() 如何比单 channel 更快?

c# - 如何并排显示 4 个三角形图案

algorithm - 寻找一种算法以(伪)随机顺序吐出一系列数字

通过大量比较对对象进行评分的算法

Java:如何实现队列系统来播放音频片段?

javascript - 用JavaScript演奏旋律

c# - 如何在虚拟模式下正确 "refresh"一个 winforms ListView?

c# - 实现您自己的 LINQ 和 IEnumerable<T>

java - 无法删除列表中的重复项