我正在开发一个应用程序,我需要实现Mel频率倒谱系数(MFCC)进行语音识别。
MFCC的第一步是应用预加重
预加重将增加更高频率的信号能量。 因为低频段被对语音识别无用/有害的声音占用。
我找到了这个过程的等式:
Y[n]=X[n]−0.95⋅X[n−1]
我的问题是我应该简单地在原始信号上应用这个等式吗?这样它可以在更高的频率下增加信号的能量。或者,在应用此等式之前,我应该对输入信号应用某个滤波器吗?如果是的话,我将如何编程呢?
答案 0 :(得分:1)
该等式已经是预加重滤波器。
在c代码中,实现可能如下所示:
float last_input = 0;
float filter (float input)
{
float output = input - 0.95 * last_input;
last_input = input;
return output;
}
这是滤波器的频率响应,假设采样率为44.1 kHz: