• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

语音信号MFCC的特征提取Matlab源码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

语音信号处理MFCC提取的Matlab源码,

Matlab调试运行的时候注意添加语音工具箱voicebox查找路径。即,

MatlabFile->Set Path…->Add Folder… 选择你所解压的voicebox文件夹路径。

%function ccc=mfcc(x)   

%归一化mel滤波器组系数   

filename=input('input filename:','s');

[x,fs,bits]=wavread(filename);

bank=melbankm(24,256,fs,0,0.5,'m');   

bank=full(bank);   

bank=bank/max(bank(:));   

%DCT系数,12*24   

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   

%差分参数   

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;   

%合并mfcc参数和一阶差分mfcc参数   

ccc=[m dtm];   

%去除首位两帧,因为这两帧的一阶差分参数为0   

ccc=ccc(3:size(m,1)-2,:);

subplot(211)

ccc_1=ccc(:,1);

plot(ccc_1);title('MFCC');

% ylabel('幅值');

% title('一维数组及其幅值的关系')

% [h,w]=size(ccc);

% A=size(ccc);

% subplot(212)

% plot([1,w],A);

% xlabel('维数');

% ylabel('幅值');

% title('维数于幅值的关系')

return

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi获取公网IP地址函数发布时间:2022-07-18
下一篇:
delphi7怎样实现Enter当作Tab发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap