检测特定频率和持续时间的蜂鸣声

时间:2014-01-09 16:57:26

标签: c audio fft portaudio

如何从已知频率和持续时间但未知到达时间的音频数据中检测到蜂鸣声? 我正在尝试实现带通滤波器以忽略任何未知频率的声音。我还没有成功。一旦我成功了,我将在固定的时间内检查声音的幅度是否超过某个阈值。那应该检测到哔哔声。有人告诉我,傅里叶变换也可以用来检测嘟嘟声。

哪种策略更好?

此外,在收听录音时,我开始相信Windows或笔记本电脑的声音驱动程序(Inspiron 15R)正在麦克风输入端应用某种降噪滤波器。这在笔记本电脑上常见吗?如果是,有没有办法从麦克风获得未触动的真实音频?我正在使用portaudio库来获取声音。

1 个答案:

答案 0 :(得分:3)

这种音调检测任务的最简单和最常用的方法(音调频率已知先验)是Goertzel Algorithm。它实际上只是一个感兴趣频率的单个DFT - 你接受输出和低通滤波器,当它超过经验导出的阈值时,你就检测到了你的音调。