recognise_noun.m

来自「实现用MFCC作为特证向量的孤立词识别系统」· M 代码 · 共 58 行

M
58
字号
function [out1,out2]=Recognise_noun(in,fs)

in=in./max(in);
Em=envextract(in.^2,size(in),fs,0.05);
embrace=DownSample(Em,100);

windowlong=floor(fs/500)*10;
matix=linetomatix(in,windowlong,windowlong/2);
MelMatix=MFCC_3(matix,36,fs);


load('MFCC_noun');
if(size(MelMatix,2)>70|size(MelMatix,2)<18) distance(1)=0;distance(3)=0;else distance(1)=dtw(Door1,MelMatix);distance(3)=dtw(Door3,MelMatix);end
if(size(MelMatix,2)>60|size(MelMatix,2)<15) distance(2)=0;else distance(2)=dtw(Door2,MelMatix);end
% if(size(MelMatix,2)>60|size(MelMatix,2)<13)
%     distance(1)=-1;distance(2)=-1;distance(3)=-1;
% else
%     distance(1)=dtw(Door1,MelMatix);distance(2)=dtw(Door2,MelMatix);distance(3)=dtw(Door3,MelMatix);
% end 

if(size(MelMatix,2)>56|size(MelMatix,2)<13)
    distance(4)=0;distance(5)=0;distance(6)=0;
else
    distance(4)=dtw(Light1,MelMatix);distance(5)=dtw(Light2,MelMatix);distance(6)=dtw(Light3,MelMatix);
end 


if(size(MelMatix,2)>110|size(MelMatix,2)<32)
    distance(7)=0;distance(8)=0;distance(9)=0;
else
    distance(7)=dtw(Ctrl1,MelMatix);distance(8)=dtw(Ctrl2,MelMatix);distance(9)=dtw(Ctrl3,MelMatix);
end 
distance(find(distance==0))=max(distance);
out1=distance;

load('Embrace_noun');
if(size(embrace,2)>195|size(embrace,2)<38)
    distance(1)=-1;distance(2)=-1;distance(3)=-1;
else
    distance(1)=dtw(Door1,embrace);distance(2)=dtw(Door2,embrace);distance(3)=dtw(Door3,embrace);
end 

if(size(embrace,2)>195|size(embrace,2)<58)
    distance(4)=-1;distance(5)=-1;distance(6)=-1;
else
    distance(4)=dtw(Light1,embrace);distance(5)=dtw(Light2,embrace);distance(6)=dtw(Light3,embrace);
end 


if(size(embrace,2)>400|size(embrace,2)<190)
    distance(7)=-1;distance(8)=-1;distance(9)=-1;
else
    distance(7)=dtw(Ctrl1,embrace);distance(8)=dtw(Ctrl2,embrace);distance(9)=dtw(Ctrl3,embrace);
end 


distance(find(distance<0))=max(distance);
out2=distance;

⌨️ 快捷键说明

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