• 大小: 646KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 语音识别  DTW  

资源简介

基于DTW的一个简单语音识别代码,可以识别0~9十个数字,带有gui页面

资源截图

代码片段和文件信息

function dist = dtw(test ref)
global x y_min y_max
global t r
global D d
global m n

t = test;
r = ref;
n = size(t1);
m = size(r1);

d = zeros(m1);
D =  ones(m1) * realmax;
D(1) = 0;

% 如果两个模板长度相差过多,匹配失败
if (2*m-n<3) | (2*n-m<2)
dist = realmax;
return
end

% 计算匹配区域
xa = round((2*m-n)/3);
xb = round((2*n-m)*2/3);

if xb>xa
%xb>xa 按下面三个区域匹配
%        1   :xa
%        xa+1:xb
%        xb+1:N
for x = 1:xa
y_max = 2*x;
y_min = round(0.5*x);
warp
end
for x = (xa+1):xb
y_max = round(0.5*(x-n)+m);
y_min = round(0.5*x);
warp
end
for x = (xb+1):n
y_max = round(0.5*(x-n)+m);
y_min = round(2*(x-n)+m);
warp
end
elseif xa>xb
%xa>xb 按下面三个区域匹配
%        0   :xb
%        xb+1:xa
%        xa+1:N
for x = 1:xb
y_max = 2*x;
y_min = round(0.5*x);
warp
end
for x = (xb+1):xa
y_max = 2*x;
y_min = round(2*(x-n)+m);
warp
end
for x = (xa+1):n
y_max = round(0.5*(x-n)+m);
y_min = round(2*(x-n)+m);
warp
end
elseif xa==xb
%xa=xb 按下面两个区域匹配
%        0   :xa
%        xa+1:N
for x = 1:xa
y_max = 2*x;
y_min = round(0.5*x);
warp
end
for x = (xa+1):n
y_max = round(0.5*(x-n)+m);
y_min = round(2*(x-n)+m);
warp
end
end

%返回匹配分数
dist = D(m);

function warp
global x y_min y_max
global t r
global D d
global m n

d = D;
for y = y_min:y_max
D1 = D(y);
if y>1
D2 = D(y-1);
else
        D2 = realmax;
end
if y>2
D3 = D(y-2);
else
        D3 = realmax;
end
    d(y) = sum((t(x:)-r(y:)).^2) + min([D1D2D3]);
end

D = d;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-26 10:44  DTW实现数字识别\
     目录           0  2018-04-16 17:21  DTW实现数字识别\程序\
     文件        1542  2009-08-27 00:20  DTW实现数字识别\程序\dtw.m
     文件        2207  2009-08-07 17:25  DTW实现数字识别\程序\enframe.m
     文件        9598  2016-03-30 14:29  DTW实现数字识别\程序\main.fig
     文件        7180  2018-04-26 10:11  DTW实现数字识别\程序\main.m
     文件        3549  2005-02-21 16:22  DTW实现数字识别\程序\melbankm.m
     文件        1013  2016-03-29 22:58  DTW实现数字识别\程序\mfcc.m
     文件      177114  2018-04-26 10:40  DTW实现数字识别\程序\mfcc.mat
     目录           0  2018-04-26 10:13  DTW实现数字识别\程序\test\
     文件       49210  2012-04-11 10:06  DTW实现数字识别\程序\test\01.wav
     文件       46138  2012-04-11 10:08  DTW实现数字识别\程序\test\11.wav
     文件       48442  2012-04-11 10:11  DTW实现数字识别\程序\test\21.wav
     文件       20236  2006-10-23 10:10  DTW实现数字识别\程序\test\31.wav
     文件       15452  2006-10-22 10:42  DTW实现数字识别\程序\test\41.wav
     文件       53050  2012-04-11 13:23  DTW实现数字识别\程序\test\51.wav
     文件       43066  2012-04-11 13:23  DTW实现数字识别\程序\test\61.wav
     文件       15768  2006-10-23 14:19  DTW实现数字识别\程序\test\71.wav
     文件       16182  2006-10-22 21:47  DTW实现数字识别\程序\test\81.wav
     文件       23938  2006-10-22 11:21  DTW实现数字识别\程序\test\91.wav
     目录           0  2018-04-26 10:10  DTW实现数字识别\程序\train\
     文件       34618  2009-08-27 21:46  DTW实现数字识别\程序\train\00.wav
     文件       33850  2009-08-27 21:45  DTW实现数字识别\程序\train\10.wav
     文件       39994  2009-08-27 21:45  DTW实现数字识别\程序\train\20.wav
     文件       40762  2009-08-27 21:44  DTW实现数字识别\程序\train\30.wav
     文件       34618  2009-08-27 21:44  DTW实现数字识别\程序\train\40.wav
     文件       33850  2009-08-27 21:43  DTW实现数字识别\程序\train\50.wav
     文件       36922  2009-08-27 21:43  DTW实现数字识别\程序\train\60.wav
     文件       41530  2009-08-27 21:42  DTW实现数字识别\程序\train\70.wav
     文件       35386  2009-08-27 21:42  DTW实现数字识别\程序\train\80.wav
     文件       47674  2009-08-27 21:42  DTW实现数字识别\程序\train\90.wav
............此处省略2个文件信息

评论

共有 条评论