首先申明:这个完整的dtw算法是我自己收集并且手动敲上去的,算法不是我写的!只有读取动态语音的部分是我自己写的,我也是为了方便做语音识别的人!!
首先mfcc.m如下:
我就不用m文件了
function ccc=mfcc(x)
%归一化mel滤波器数组系数
bank =melbankm(24,256,8000,0,0.5,'m');
bank=full(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(1,:);
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));