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

语音合成与识别

开发平台:

Matlab

  1. % Get features of all wave files and save them into a single mat file
  2. addpath mex
  3. singers = textread('singer.txt', '%s');
  4. for i=1:length(singers),
  5. singers{i} = singers{i}(findstr(singers{i},'.')+1:end);
  6. end
  7. dirinfo = dir('wavefile');
  8. speakers = {dirinfo.name};
  9. speakers(1:2) = []; % Get rid of "." and ".." 
  10. % ====== Compute features
  11. index = 1;
  12. for i=1:length(speakers),
  13. for j=1:length(singers),
  14. fprintf('index = %gn', index);
  15. wavefile = ['wavefile', speakers{i}, '', num2str(j), '.wav'];
  16. [y, fs, nbits] = wavread(wavefile);
  17. waveData(index).speaker = speakers{i};
  18. waveData(index).answer = singers{j};
  19. waveData(index).feature = wav2ftr(y);
  20. index = index + 1;
  21. end;
  22. end;
  23. % ====== Compute distance matrix
  24. waveNum = length(waveData);
  25. distmat = zeros(waveNum);
  26. for i=1:waveNum;
  27. fprintf('i = %dn', i);
  28. for j=1:waveNum;
  29. distmat(i,j) = dtwasr(waveData(i).feature, waveData(j).feature, 2);
  30. end
  31. end
  32. save waveData waveData distmat