www.pudn.com > hmm--matlab.rar > test1.m


clear; 
x1=wavread('c1.wav'); 
%soundview('traffic69.wav'); 
x2=wavread('c2.wav'); 
x3=wavread('s1.wav'); 
x4=wavread('s2.wav'); 
x5=wavread('p1.wav'); 
x6=wavread('p2.wav'); 
 
x = {x1 x2}; 
y = {x3 x4}; 
z = {x5 x6}; 
 
samples={x y z}; 
 
 
    sample=[]; 
    for k=1:length(samples{3}) 
        sample(k).wave = samples{3}{k}; 
        sample(k).data=[]; 
    end 
     
K = length(sample); 
 
%计算语音参数 
disp('正在计算语音参数……') 
for k=1:K 
    if isfield(sample(k),'data')&~isempty(sample(k).data) 
        continue; 
    else 
        sample(k).data = mfcc(sample(k).wave);   
    end 
end 
 
hmm = inithmm(sample,[3,3,3]); 
 
loop =1; 
    fprintf('\n第%d遍训练\n\n',loop) 
    hmm = baum(hmm,sample); 
     
    %计算总输出概率 
    pout(loop) = 0; 
     
for k=1:K 
         
[m n]=viterbi(hmm,sample(k).data); 
pout(loop) = pout(loop)+m; 
 
end 
     
    fprintf('总和输出概率(log)=%d\n',pout(loop));