实验二语音信号的特征提取
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二语音信号的特征提取
一、 实验目的
1、熟练运用MATLAB 软件进行语音信号实验。
2、熟悉短时分析原理、MFCC 的原理。
3、学习运用MATLAB 编程进行MFCC 的提取。
4、学会利用短时分析原理提取MFCC 特征序列。
二、 实验仪器设备及软件
MATLAB
三、 实验原理
1、MFCC
语音识别和说话人识别中,常用的语音特征是基于Mel 频率的倒谱系数(即MFCC )。MFCC 参数是将人耳的听觉感知特性和语音的产生机制相结合。
Mel 频率可以用如下公式表示:
)700/1log(2595f f Mel +⨯=
在实际应用中,MFCC 倒谱系数计算过程如下;
① 将信号进行分帧,预加重和加汉明窗处理,然后进行短时傅里叶变换并得到其频谱。 ② 求出频谱平方,即能量谱,并用M 个Mel 带通滤波器进行滤波;由于每一个频带中分量的作用在人耳中是叠加的。因此将每个滤波器频带内的能量进行叠加,这时第k 个滤波器输出功率谱)('
k x 。
③ 将每个滤波器的输出取对数,得到相应频带的对数功率谱;并进行反离散余弦变换,得到L 个MFCC 系数,一般L 取12~16个左右。MFCC 系数为
∑=-=M
k M n k k x Cn 1
']/)5.0(cos[)(log π, n=1,2,...,L
④ 将这种直接得到的MFCC 特征作为静态特征,再将这种静态特征做一阶和二阶差分,得到相应的动态特征。 2、 LPC
由于频率响应)(jw
e H 反映声道的频率响应和被分析信号的谱包络,因此用
|)(|log jw e H 做反傅里叶变换求出的LPC 倒谱系数。
通过线性预测分析得到的合成滤波器的系统函数为)1/(1)(1
∑=--
=p
i i
i z
a z H ,其冲激响
应为h(n)。h(n)的倒谱为)(^n h ,∑+∞=-=
1
^
^
)()(n n
z
n h z H 就是说)(^
z H 的逆变换)(^
n h 是存在的。
设0)0(^
=h ,将式
∑+∞=-=1
^
^
)()(n n
z n h z H 两边同时对
1-z 求导,得
∑∑+∞=--=--∂∂=-∂∂1^
11
11
)(]11log[n n
p i i z n h z z a z 得到∑∑∑∞
+==-=+-+--=1
1
11
1^1)(n p i i
i p
i i i n z a z
ia z n h n ,于是有 ∑∑∑+∞
=+∞
=+-+-=-=-1
1
11
^
1
1
)()1(n n i i n p i i z ia z
n h n z a 令其左右两边z 的各次幂前系数分别相等,得
到)(^
n h 和i a 间的递推关系
⎪⎪
⎪⎩
⎪
⎪⎪⎨⎧
>--=≤≤--+==∑∑=-=p i i n i i n p n n h a n i n h p
n k n h a n i a n h a h 1^^11^^
1^
),1()1()(1),()1()()1( ,按其可直接从预测系数{i a }求得倒谱)(^
n h 。这个倒谱是根据线性预测模型得到的,又称为LPC 倒谱。LPC 倒谱由于利用线性预
测中声道系统函数H (z )的最小相位特性,因此避免了一般同态处理中求复对数的麻烦。
四、 实验步骤及程序
MFCC 特征序列 (1)、实验步骤 ① 输入样本音频
② 给样本音频预加重、分帧、加窗 ③ 将处理好的样本音频做傅里叶变换 ④ 进行Mel 频率滤波
⑤ 进行Log 对数能量 ⑥ 对样本求倒谱 ⑦ 输出MFCC 图像
(2)、MFCC 提取程序流程图
s(n) s(n) X(k) X(k)
图3.1 MFCC 特征提取
(3)、MFCC 特征提取实验源程序
close all clear clc
[x]=wavread('1.wav');
bank=melbankm(24,256,8000,0,0.5,'m'); bank=full(bank);
bank=bank/max(bank(:));
for k=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);
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';
预加重、分帧、加窗 DFT/FFT Mel 频率滤波组 Log 对数能量
DCT 求倒谱