一步步...
1.&2。这是对的。注意,这些帧通常是重叠的,例如,帧0是样本0到440;帧0是样本0到440。帧1是样本220至660;第2帧是样本440到880,依此类推...还要注意,将窗口函数应用于该帧中的样本。
3。对每一帧进行傅立叶变换。其背后的动机很简单:语音信号随时间变化,但在短段内保持稳定。您想单独分析每个短片段-因为在此片段上,信号足够简单,可以用很少的系数有效地描述。想到有人说“你好”。您不希望通过一次分析所有声音来看到所有音素都折叠成一个频谱(FFT折叠了时间信息)。您希望看到“ hhhhheeeeeeeeeeelloooooooooooo”以逐步识别该单词,因此必须将其分解为短段。
NNN=40N=40
一旦定义了这些频率,我们将计算每个频率附近的FFT幅度(或能量)的加权和。
看下面的图片,代表一个带有12个bin的过滤器组:
第8个档位的中心频率约为2kHz。通过将1600至2800 Hz左右的加权FFT能量相加得到第8个仓中的能量-权重在2kHz左右达到峰值。
实施说明:这一系列加权和可以在单个操作中完成-“滤波器组矩阵”与FFT能量矢量的矩阵相乘。
因此,在此阶段,我们已将FFT频谱“汇总”为一组40个能量值(在图中为12个),每个能量值对应于不同的频率范围。我们记录这些值。
5。下一步是采用40个对数能量序列的DCT。这将产生40个值。首先ķķ 系数是MFCC(通常, ķ=13ķ=13)。实际上,第一个DCT系数是在上一步中计算出的所有对数能量的总和-因此,它是信号响度的整体度量,并且对信号的实际频谱含量不是很有帮助-经常被丢弃用于语音识别或说话人ID应用,其中系统必须对响度变化具有鲁棒性。