2

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

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

我有一些问题:1)使用哪个 DFT 库 2)字节和双精度之间的转换 3)转换完成后,如何从复杂数组中检测是否存在所需频率

欢迎使用代码示例!

先感谢您!

4

1 回答 1

2

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

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

于 2012-12-23T20:46:43.870 回答