www.gusucode.com > 用matlab仿真0到9十个数字的语音识别源码程序 > Speech-Recogenition/shujuzhengli.m

    function shujuzhengli(file)
%将杂乱的关于数字的语音文件归类,每个数字分别存入一个文件.
jishu=(48:57);
%filewz='D:\work\语音\1107\语音文件\t';
filewz=file;
shujuku=zeros(10,1500);
a0=0;
a1=0;
a2=0;
a3=0;
a4=0;
a5=0;
a6=0;
a7=0;
a8=0;
a9=0;
for j=3:3
    j;
    for jj=1:10
        jj;
        for jjj=1:10
            jjj;
            filename=[filewz char(jishu(j)) char(jishu(jj)) char(jishu(jjj))];
            [qs,zz,num]=readlab([filename '.lab']);
            [d,fp,dt,tc,t]=readhtk([filename '.wav']);
            pd=zeros(4,3000);
            for i=1:4
                qs1(i)=round(qs(i)/fp/10000000);
                zz1(i)=round(zz(i)/fp/10000000);
                cb(i)=zz1(i)-qs1(i)+1;
                pd(i,1)=cb(i);
                for j1=qs1(i):zz1(i)
                    pd(i,j1-qs1(i)+2)=d(j1);
                end                
            end
            for i=1:4
                  switch num(i)
                         case {0}
                             a0=a0+1;
                             data0(a0,:)=pd(i,:);
                         case {1}
                            a1=a1+1;
                             data1(a1,:)=pd(i,:);
                         case {2}
                             a2=a2+1;
                             data2(a2,:)=pd(i,:);
                         case {3}
                             a3=a3+1;
                             data3(a3,:)=pd(i,:);
                         case {4}
                                a4=a4+1;
                             data4(a4,:)=pd(i,:);
                         case {5}
                            a5=a5+1;
                             data5(a5,:)=pd(i,:);
                         case {6}
                             a6=a6+1;
                             data6(a6,:)=pd(i,:);
                         case {7}
                             a7=a7+1;
                             data7(a7,:)=pd(i,:);
                         case {8}
                              a8=a8+1;
                             data8(a8,:)=pd(i,:);
                         case {9}
                             a9=a9+1;
                             data9(a9,:)=pd(i,:);
                         otherwise
                         ;
                  end
        
            end
       
        
        
        
        
        end
    end
end
fid = fopen('d:\data0.mat','wb');fwrite(fid,data0','double');fclose(fid);
fid = fopen('d:\data1.mat','wb');fwrite(fid,data1','double');fclose(fid);
fid = fopen('d:\data2.mat','wb');fwrite(fid,data2','double');fclose(fid);
fid = fopen('d:\data3.mat','wb');fwrite(fid,data3','double');fclose(fid);
fid = fopen('d:\data4.mat','wb');fwrite(fid,data4','double');fclose(fid);
fid = fopen('d:\data5.mat','wb');fwrite(fid,data5','double');fclose(fid);
fid = fopen('d:\data6.mat','wb');fwrite(fid,data6','double');fclose(fid);
fid = fopen('d:\data7.mat','wb');fwrite(fid,data7','double');fclose(fid);
fid = fopen('d:\data8.mat','wb');fwrite(fid,data8','double');fclose(fid);
fid = fopen('d:\data9.mat','wb');fwrite(fid,data9','double');fclose(fid);