### 语音特征参数提取
#### 一、引言
在语音识别、语音合成以及语音情感分析等领域中,从语音信号中提取有效的特征参数是至关重要的一步。这些特征参数能够帮助算法更好地理解语音信号中的信息,从而提高系统的准确性和鲁棒性。其中,梅尔频率倒谱系数(MFCC, Mel Frequency Cepstral Coefficients)是一种广泛应用的语音特征参数,它通过模拟人耳对不同频率声音的感知特性来提取语音的关键特征。
#### 二、MFCC的实现步骤
根据提供的代码片段,我们可以将其分为以下几个关键步骤进行详细解释:
##### 2.1 读取语音文件
```matlab
[xfs]=wavread('C:\Users\thinkpad\Desktop\语音识别程序\test1.wav');
```
这里使用`wavread`函数读取了一个WAV格式的音频文件。`x`表示读取到的音频数据,而`fs`表示音频的采样率。
##### 2.2 构建Mel滤波器组
```matlab
bank=melbankm(24,256,fs,0,0.4,'t');
bank=full(bank);
bank=bank/max(bank(:));
```
`melbankm`函数用于构建Mel滤波器组,其中`24`代表滤波器的数量,`256`是FFT变换的长度,`fs`为采样频率,`0`和`0.4`分别代表了频率范围的最低和最高点。Mel滤波器组主要用于将线性频谱转换为Mel频谱,更接近人耳的听觉特性。之后,通过对最大值进行归一化处理,确保每个滤波器的最大值为1。
##### 2.3 计算DCT变换系数
```matlab
fork=1:12
n=0:23;
dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24));
end
```
这里计算了前12个离散余弦变换(DCT)系数,DCT被用来进一步压缩特征,并且保留最能反映语音信号本质特性的部分。
##### 2.4 归一化倒谱提升窗口
```matlab
w=1+6*sin(pi*[1:12]./12);
w=w/max(w);
```
这部分代码创建了一个归一化的倒谱提升窗口,用于调整DCT系数的权重,使得低频部分更加突出。
##### 2.5 预加重处理
```matlab
xx=double(x);
xx=filter([1-0.9375],1,xx);
```
预加重是为了强调高频信息,减少语音信号中的冗余信息。在这个例子中,使用了一个简单的高通滤波器进行预加重处理。
##### 2.6 语音信号分帧
```matlab
xx=enframe(xx,256,80);
```
语音信号通常会被分割成一系列固定长度的帧,以便于后续的处理。在这里,每一帧包含256个采样点,帧移为80个采样点。
##### 2.7 计算MFCC参数
```matlab
for i=1:size(xx,1)
y=xx(i,:);
s=y'.*hamming(256);
t=abs(fft(s));
t=t.^2;
c1=dctcoef*log(bank*t(1:129));
c2=c1.*w';
m(i,:)=c2;
end
```
对于每一帧,首先应用汉明窗进行加权,然后进行快速傅里叶变换(FFT),接着计算功率谱。之后,将功率谱通过Mel滤波器组,并对其进行对数变换,最后通过DCT变换得到最终的MFCC系数。
##### 2.8 计算差分系数
```matlab
% 求一阶差分系数
dtm=zeros(size(m));
for i=3:size(m,1)-2
dtm(i,:)=-2*m(i-2,:)-m(i-1,:)+m(i+1,:)+2*m(i+2,:);
end
dtm=dtm/3;
% 求取二阶差分系数
dtmm=zeros(size(dtm));
for i=3:size(dtm,1)-2
dtmm(i,:)=-2*dtm(i-2,:)-dtm(i-1,:)+dtm(i+1,:)+2*dtm(i+2,:);
end
dtmm=dtmm/3;
```
为了捕捉语音信号的动态变化,通常还需要计算MFCC系数的一阶和二阶差分。这些差分系数有助于识别语音中的瞬变信息,提高识别系统的性能。
##### 2.9 合并特征向量
```matlab
ccc=[m dtm dtmm];
```
最终,将原始的MFCC系数及其一阶、二阶差分合并成一个特征向量,作为识别或分类任务的输入。
#### 三、总结
本文详细介绍了如何使用MATLAB实现MFCC的提取过程,包括预加重、分帧、窗口加权、计算功率谱、通过Mel滤波器组、DCT变换以及计算差分系数等关键步骤。MFCC作为一种有效的语音特征参数,在语音识别、语音合成等多个领域都有着广泛的应用价值。通过对语音信号进行有效的特征提取,可以显著提高后续处理步骤的效率和准确性。