从麦克风或音频文件中识别拨号音

Posted

技术标签:

【中文标题】从麦克风或音频文件中识别拨号音【英文标题】:Recognize Dial Tone from microphone or audio file 【发布时间】:2012-12-23 19:27:59 【问题描述】:

我在谷歌上搜索了很多,但没有成功解决我的问题。我需要识别 wav 文件中或直接来自麦克风的拨号音,或者更好:检测线路(直接连接到声卡的线路输入)是否空闲。

在我的国家(意大利),拨号音是 425 Hz 的声波。我的想法是从 mic 将 2s 录音注册到 wav 文件中,然后加载数据并应用离散 FFT,然后在结果中搜索该频率。但是我不知道要编写什么代码。

我有一些问题: 1) 使用哪个 DFT 库 2) byte 和 double 之间的转换 3) 转换完成后,如何从复数数组中检测是否存在想要的频率

欢迎提供代码示例!

提前谢谢你!

【问题讨论】:

我认为你是在正确的轨道上。 [这正是我将如何实现它] FFT 可能是多余的,数字带通滤波器似乎更容易实现。 【参考方案1】:

检测特定音调是否存在的最简单方法是Goertzel Filter。这实际上只是在感兴趣的频率上评估 DFT,这比评估完整的 FFT 然后丢弃除一个输出 bin 之外的所有 bin 更简单且计算成本更低。

关于使用 Goertzel 算法进行音调检测的问题和答案有很多,例如DTMF 检测 - 您可能想研究其中的一些,因为它们包含有用的信息和示例代码。

【讨论】:

是的,非常好的方法!谢谢!

以上是关于从麦克风或音频文件中识别拨号音的主要内容,如果未能解决你的问题,请参考以下文章

html HTML5音频+语音到文本...一旦启用麦克风和语音识别,请说“facebook”,“hack”或“what is my name”

iOS 10.2 上的 Swift 3:如何从麦克风订阅单个样本?需要实时处理音频

Python:在语音识别中获取系统音频而不是麦克风

从 AirPod 麦克风录制音频

如何使用 Auriotouch 将麦克风的音频输入静音并仅识别设备的内部音频

找一个能即时显示音频波形软件