使用 C# 从字节数组中解码 dtmf
Posted
技术标签:
【中文标题】使用 C# 从字节数组中解码 dtmf【英文标题】:decode dtmf from array of bytes using C# 【发布时间】:2014-03-05 05:30:18 【问题描述】:我正在开发一个软件,它可以捕捉传出的声音(扬声器)并识别是否有任何 dtmf 音调。我使用 NAudio 将声音捕获为字节数组的形式。我想检测这些字节数组上是否有 dtmf 音调。我已经用谷歌搜索了它,但我没有找到任何接近我的问题的解决方案。 Tapiex(或任何商业库)不是一个选项,因为我更喜欢开源解决方案。
【问题讨论】:
【参考方案1】:进行频率分析并寻找指示正确键的两个峰值(请参阅Wikipedia 了解所使用的确切频率;对于大多数用途,请忽略 1633Hz 列)。确保提示音持续至少 100 毫秒,然后再接受。
频率分析见this *** question。
【讨论】:
我会检查您提供的链接,谢谢。但是还有一个问题,当您说“查找指示正确键的两个峰值”时,您的意思是说,例如,如果我正在寻找 dtmf 1,则检查字节数组中是否存在 697 和 1209? 您将无法直接使用字节数组。它可能需要转换为 float[]。然后,您必须计算您关心的每个频率的 dB 值。如果您使用我链接到的另一个问题的算法,您必须针对您关心的每个频率运行它,并使用它的结果来确定正在播放的键(如果有)。以上是关于使用 C# 从字节数组中解码 dtmf的主要内容,如果未能解决你的问题,请参考以下文章