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

语音合成与识别

开发平台:

Matlab

  1. % This script plots word counts with respect to min. energy level (threshold).
  2. % ====== Load all wave data
  3. if ~exist('waveData'),
  4. fprintf('Loading waveData.matn');
  5. load waveData.mat
  6. end
  7. % ====== Get rid of English singers
  8. index = [];
  9. for i = 1:length(waveData);
  10. if any(abs(waveData(i).answer)<127),
  11. index = [index, i];
  12. end
  13. end
  14. waveData(index) = [];
  15. waveNum = length(waveData);
  16. % ====== Set parameters
  17. P.frameSize = 256;
  18. P.overlap = 86;
  19. minEnergy = linspace(0.0001, 0.04, 10);
  20. % ====== Get word count of each wave file
  21. correct = zeros(length(minEnergy), waveNum);
  22. h = waitbar(0, ['Get word count of ', num2str(waveNum), ' wave files...']);
  23. for i = 1:waveNum;
  24. % fprintf('%g/%gn', i, waveNum);
  25. waitbar(i/waveNum, h)
  26. wavefile = waveData(i).wavepath;
  27. wdcount = wdcnt(wavefile, P, minEnergy, 0);
  28. % wdcount = wdcnt(wavefile, P, minEnergy, 1);
  29. % pause
  30. correct(:,i) = (wdcount==length(waveData(i).answer))';
  31. end
  32. close(h)
  33. % ====== Plot the recognition rate w.r.t. min. energy
  34. rate = sum(correct, 2)/waveNum;
  35. plot(minEnergy, rate, '-o');
  36. xlabel('minEnergy');
  37. ylabel('Correct Rate');
  38. [a, b] = max(rate);
  39. optMinEnergy = minEnergy(b);
  40. fprintf('Max. recognition rate = %g (when minEnergy = %g)n', a, optMinEnergy);