有时在麦克风上,开始流过声音定义的频率(500hz)。我如何知道信号何时开始进入麦克风?为了解决这个问题,我知道我需要使用FFT(快速傅立叶变换)。但我不明白,在FFT频率后我应该怎么做?我在C#上使用NAudio。麦克风的缓冲区是字节数组。
答案 0 :(得分:2)
对此使用FFT是过度的,并不是特别合适。针对此类问题(音调检测/起始检测)的更简单的解决方案是Goertzel filter。
答案 1 :(得分:1)
确定何时将信号采样到缓冲区是一个编程问题。
这与确定采样信号的频率内容是什么无关(使用FFT)。有关您的其他问题,请参阅我的回复...
答案 2 :(得分:1)
窄IIR带通滤波器后跟包络检波器可能是尝试的一种可能方法。如果您知道音频突发的上升时间,则尝试的另一件事可能是匹配滤波器的互相关。您还必须校准音频输入信号路径的延迟。