《语音信号处理》实验4-MFCC特征提取
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华南理工大学《语音信号处理》实验报告
实验名称:MFCC特征提取
姓名:
学号:
班级:10级电信5班
日期:2013年5 月24日
1.实验目的
1、熟练运用MATLAB 软件进行语音信号实验;
2、熟悉短时分析原理、MFCC 的原理;
3、学习运用MATLAB 编程进行MFCC 的提取;
4、学会利用短时分析原理提取MFCC 特征序列;
2. 实验原理
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 特征作为静态特征,再将这种静态特征做一阶和二阶差分,得到相应的动态特征。
3. 实验数据及平台
本实验所采用的数据是语音文件phrase.WAV 和monologue speech_female ,平台
是MATLAB 。
4. 实验过程(步骤)
(1)实验步骤
①输入样本音频
②给样本音频预加重、分帧、加窗
③将处理好的样本音频做傅里叶变换
④进行Mel频率滤波
⑤进行Log对数能量
⑥对样本求倒谱
⑦输出MFCC图像
(2)、MFCC提取程序流程图
图1 MFCC特征提取
5. 实验结果及讨论
运行附录程序,得到的结果为:
1、采用语音文件phrase.WAV,得到的MFCC特征提取图像为:
2、采用语音文件monologue speech_female.wav,得到的MFCC特征提
取图像为:
通过计算MFCC参数,获得了声纹识别的特征参数。由于MFCC参数是对人耳听觉特征的描述,因此,可以认为,不同声纹的MFCC参数距离,能够代表人耳对两个语音听觉上的差异,可以为声纹的识别提供可靠的依据。
6. 实验总结
在上一次做了LPC特征提取的实验之后,对这方面已经有了一定的认识,这次通过课堂的学习和资料的查找,对MFCC特征提取进行探究和验证,真正把课堂知识用到实验之中,对相关知识的理解和掌握起了比较好的作用。
7. 实验代码
close all
clear
clc
[x]=wavread('E:\yuuyin\monologue speech_female.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);
% 计算每帧的MFCC参数
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
figure
plot(m);xlabel('帧数');ylabel('幅度');title('MFCC');