testdtw.asv

来自「dtw 算法的matlab实现 源代码不加修改久可以执行」· ASV 代码 · 共 34 行

ASV
34
字号
disp('正在计算参考模板的参数...')
for i=1:10
	fname = sprintf('..\\录音\\%da.wav',i-1);%备注:该部分就是您要录制的语音样本(0-9的数字录音)该例程中用了20个.wav格式的录音:0a.wav,1a.wav....,9a.wav,0b.wav,1b.wav......,9b.wav,分别保存了0到9的发音前1
	x = wavread(fname);
	[x1 x2] = vad(x);
	m = mfcc(x);
	m = m(x1-2:x2-2,:);
	ref(i).mfcc = m;
end

disp('正在计算测试模板的参数...')
for i=1:10
	fname = sprintf('..\\录音\\%db.wav',i-1);
	x = wavread(fname);
	[x1 x2] = vad(x);
	m = mfcc(x);
	m = m(x1-2:x2-2,:);
	test(i).mfcc = m;
end

disp('正在进行模板匹配...')
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('正在计算匹配结果...')
for i=1:10
	[d,j] = min(dist(i,:));
	fprintf('测试模板 %d 的识别结果为:%d\n', i, j);
end

⌨️ 快捷键说明

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