预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验三语音信号的特征提取 实验目的 熟练运用MATLAB软件进行语音信号实验。 熟悉短时分析原理、MFCC、LPC的原理。 学习运用MATLAB编程进行MFCC、LPC的提取。 4、学会利用短时分析原理提取MFCC、LPC特征序列。 实验仪器设备及软件 HPD538、MATLAB 实验原理 MFCC 语音识别和说话人识别中,常用的语音特征是基于Mel频率的倒谱系数(即MFCC)。MFCC参数是将人耳的听觉感知特性和语音的产生机制相结合。 Mel频率可以用如下公式表示: 在实际应用中,MFCC倒谱系数计算过程如下; =1\*GB3\*MERGEFORMAT①将信号进行分帧,预加重和加汉明窗处理,然后进行短时傅里叶变换并得到其频谱。 =2\*GB3\*MERGEFORMAT②求出频谱平方,即能量谱,并用M个Mel带通滤波器进行滤波;由于每一个频带中分量的作用在人耳中是叠加的。因此将每个滤波器频带内的能量进行叠加,这时第k个滤波器输出功率谱。 =3\*GB3\*MERGEFORMAT③将每个滤波器的输出取对数,得到相应频带的对数功率谱;并进行反离散余弦变换,得到L个MFCC系数,一般L取12~16个左右。MFCC系数为 ,n=1,2,...,L =4\*GB3\*MERGEFORMAT④将这种直接得到的MFCC特征作为静态特征,再将这种静态特征做一阶和二阶差分,得到相应的动态特征。 2、LPC 由于频率响应反映声道的频率响应和被分析信号的谱包络,因此用做反傅里叶变换求出的LPC倒谱系数。 通过线性预测分析得到的合成滤波器的系统函数为,其冲激响应为h(n)。h(n)的倒谱为,就是说的逆变换是存在的。设,将式两边同时对求导,得得到,于是有 令其左右两边z的各次幂前系数分别相等,得到和间的递推关系 ,按其可直接从预测系数{}求得倒谱。这个倒谱是根据线性预测模型得到的,又称为LPC倒谱。LPC倒谱由于利用线性预测中声道系统函数H(z)的最小相位特性,因此避免了一般同态处理中求复对数的麻烦。 实验步骤及程序 1、MFCC (1)、实验步骤 =1\*GB3\*MERGEFORMAT①输入样本音频 =2\*GB3\*MERGEFORMAT②给样本音频预加重、分帧、加窗 =3\*GB3\*MERGEFORMAT③将处理好的样本音频做傅里叶变换 =4\*GB3\*MERGEFORMAT④进行Mel频率滤波 =5\*GB3\*MERGEFORMAT⑤进行Log对数能量 =6\*GB3\*MERGEFORMAT⑥对样本求倒谱 =7\*GB3\*MERGEFORMAT⑦输出MFCC图像 、MFCC提取程序流程图 s(n)Mel频率滤波组 DFT/FFT 预加重、分帧、加窗 s(n)X(k)X(k) DCT求倒谱 Log对数能量 图3.1MFCC特征提取 (3)、MFCC特征提取实验源程序 closeall clear clc [x]=wavread('1.wav'); bank=melbankm(24,256,8000,0,0.5,'m'); bank=full(bank); bank=bank/max(bank(:)); fork=1:12 n=0:23; dctcoef(k,:)=cos((2*n+1)*k*pi/(2*24)); end w=1+6*sin(pi*[1:12]./12); w=w/max(w); %预加重滤波器 xx=double(x); xx=filter([1-0.9375],1,xx); %语音信号分帧 xx=enframe(xx,256,80); %计算每帧的MFCC参数 fori=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 figure plot(m);xlabel('帧数');ylabel('幅度');title('MFCC'); 2、LPC (1)、实验步骤 1、输入原始语音 2、对样本语音进行加窗处理 3、计算LPC系数 4、建立语音正则方程 5、输出原始样本语音、预测语音波形和预测误差 6、输出LPC谱 7、求出预测误差的倒谱 8、输出原始语音和预测语音的语谱图 (2)实验流程 输出图像 建立语音正则方程 计算LPC系数 加窗处理 输入原始语音 图3.2LPC系数实验流程图 (3)、LPC系数实验源代码 I=wavread('1.wav');%读入原始语音 %subplot(3,1,1), plot(I); title('原