hmmdemo.m
上传用户:ay_070428
上传日期:2014-12-04
资源大小:11427k
文件大小:1k
源码类别:

语音合成与识别

开发平台:

Matlab

  1. echo on;
  2. clc;
  3. % load and plot data on geyser eruption durations and waiting times
  4. load geyser;                          
  5.                                       
  6. clf; 
  7. subplot(211);
  8. plot(geyser(:,1),geyser(:,2),'o');  
  9. xlabel('dur'); ylabel('wait time');
  10. axis('square'); hold on;
  11. % Hit any key to continue 
  12. pause;
  13. clc;
  14. % divide up dataset
  15. Xtrain=geyser(1:200,:); Xtest=geyser(201:295,:);
  16. % train HMM with 3 states for 30 cycles of EM or until convergence
  17. [Mu,Cov,P,Pi,LL]=hmm(Xtrain,200,3,30); 
  18. % plot log likelihood (log L) per sample
  19. subplot(212);
  20. plot(LL/200);                          
  21. ylabel('Log likelihood per sample'); 
  22. xlabel('Iterations of EM'); 
  23. hold on;
  24. % calculate log L for test data
  25. lik=hmm_cl(Xtest,95,3,Mu,Cov,P,Pi);  
  26. plot(length(LL),lik/95,'go');
  27. % examine state transition matrix and plot means
  28. P
  29.                    
  30. subplot(211);
  31. plot(Mu(:,1),Mu(:,2),'r*');
  32. echo off;
  33. hold off;