📄 rbfrengong.m
字号:
clc;
clear;
num=15;
disp('正在计算识别模型...')
for i=1:num
fname = sprintf('%ss%d.wav', 'data\train\', i);
[s, fs] = wavread(fname);
v =mfcc(s, fs);
[n,m]=size(v);
a=reshape(v,1,n*m);
b=a(1:300);
ref(i).p = b;
end
p=ref(1).p;
for i=1:num-1
p=[p;ref(i+1).p];
end
T=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
];
p=p';
T=T';
spread=1.2;
net=newrbe(p,T,spread);
Y=sim(net,p);
%yc=vec2ind(Y);
disp('正在计算测试识别的结果...')
for i=1:num
fname = sprintf('%ss%d.wav', 'data\test\', i);
[s, fs] = wavread(fname);
v =mfcc(s, fs);
[n,m]=size(v);
a_test=reshape(v,1,n*m);
b_test=a_test(1:300);
test(i).p_test = b_test;
end
p_test=test(1).p_test;
for i=1:num-1
p_test=[p_test;test(i+1).p_test];
end
p_test=p_test';
Y_test=sim(net,p_test);
%maxvalue=0;k=0;
%for m=1;num
%for n=1:num
%if (Y_test(n,m)>maxvalue)
% maxvalue=Y_test(n,m);
% k=n;
%end
%end
%msg = sprintf('测试说话人 %d 和模板中的说话人 %d 匹配', m, k);
%disp(msg);
%maxvalue=0;
% k=0;
%end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -