testdtw.m

来自「DTW算法」· M 代码 · 共 36 行

M
36
字号
disp('Prepare reference model...')
for i=1:10
	fname = sprintf('%da.wav',i-1);
	x = wavread(fname);
	[x1 x2] = vad(x);
	x = filter([1 -0.9375], 1, x);
	m = melcepst(x,8000,'M',12,24,256,80);
	m = m(x1:x2,:);
	ref(i).mfcc = m;
end

disp('Calculate test model...')
for i=1:10
	fname = sprintf('%db.wav',i-1);
	x = wavread(fname);
	[x1 x2] = vad(x);
	x = filter([1 -0.9375], 1, x);
	m = melcepst(x,8000,'M',12,24,256,80);
	m = m(x1:x2,:);
	test(i).mfcc = m;
end

disp('Matching...')
dist = zeros(10,10);
for i=1:10
for j=1:10
	dist(i,j) = dtw(test(i).mfcc, ref(j).mfcc);
end
end

disp('Result...')
for i=1:10
	[d,j] = min(dist(i,:));
	fprintf('Test model %d is recognized as:%d\n', i, j);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?