Tag: goertzel algorithm

从WAV文件解码DTMF

继我之前的问题之后 ,我的目标是从C#中检测WAV文件中的DTMF音调。 但是,我真的很难理解如何做到这一点。 我理解DTMF使用频率组合,并且可以使用Goertzel算法……不知何故。 我抓住了一个Goertzel代码片段,我尝试将.WAV文件推入其中(使用NAudio读取文件,这是一个8KHz单声道16位PCM WAV): using (WaveFileReader reader = new WaveFileReader(@”dtmftest_w.wav”)) { byte[] buffer = new byte[reader.Length]; int read = reader.Read(buffer, 0, buffer.Length); short[] sampleBuffer = new short[read/2]; Buffer.BlockCopy(buffer, 0, sampleBuffer, 0, read/2); Console.WriteLine(CalculateGoertzel(sampleBuffer,8000,16)); } public static double CalculateGoertzel(short[] sample, double frequency, int samplerate) { double Skn, Skn1, Skn2; Skn = Skn1 = Skn2 […]