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

时间:2012-12-23 19:28:00

标签: java audio signal-processing fft

在没有成功解决我的问题的情况下,我搜索了很多内容。我需要识别wav文件中的拨号音或直接从麦克风识别,或者更好:检测线路(直接连接到音频卡的线路输入)是否空闲。

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

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

欢迎代码示例!

提前谢谢!

1 个答案:

答案 0 :(得分:2)

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

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