采用了android pre加重的语音处理 [英] Pre-emphasis in speech processing using android
问题描述
我工作的一个应用程序,我需要实现梅尔频率倒谱系数(MFCC)语音识别。
I'm working on an application where i need to implement Mel Frequency Cepstral Coefficients (MFCC) for speech recognition.
在MFCC的第一步是申请$ P $对 - 强调
The first step in MFCC is to apply Pre-Emphasis
$ P $对 - 重点将在更高的频率增加的信号的能量。
因为低频带是由是无用的/有害的语音识别的声音被占用。
Pre-Emphasis will increase the energy of signal at higher frequency. Because the low frequency band is occupied by sounds which are useless/harmful for speech recognition.
我发现这个方程这个过程:
I found this equation for this process:
Y[n]=X[n]−0.95⋅X[n−1]
我的问题是我应该只是简单地套用在原始信号这个公式?因此,这将在较高的频率增加的信号的能量。或者我应该运用这个公式适用前对输入信号有一定过滤器?如果是这样,我如何编程呢?
My question is should i just simply apply this equation on the original signal?? So that it would increase the energy of the signal at higher frequency. Or should i apply a certain filter on the input signal before applying this equation? and if so, how would i program it?
推荐答案
这等式已经是pre-加重滤波器。
That equation is already the pre-emphasis filter.
在C- code实现可能是这样的:
In c-code an implementation could looks like this:
float last_input = 0;
float filter (float input)
{
float output = input - 0.95 * last_input;
last_input = input;
return output;
}
下面是该滤波器的频率响应,假设44.1kHz的采样率:
Here is the frequency response of the filter, assuming a sample-rate of 44.1 kHz:
这篇关于采用了android pre加重的语音处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!