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

语音合成与识别

开发平台:

Matlab

  1. % Get MFCC of all wave files and save them into a single mat file
  2. % Find the speakers automatically
  3. dirinfo = dir('wavefile');
  4. speakers = {dirinfo.name};
  5. speakers(1:2) = []; % Get rid of "." and ".."
  6. % ====== Compute no. of total files
  7. waveNum = 0;
  8. for i=1:length(speakers),
  9. dirinfo = dir(['wavefile/', speakers{i}, '/*.wav']);
  10. singerNames = {dirinfo.name};
  11. waveNum = waveNum + length(singerNames);
  12. end
  13. h = waitbar(0, ['Converting ', num2str(waveNum), ' wave files to mat structure ...']);
  14. % ====== Compute features
  15. index = 1;
  16. for i=1:length(speakers),
  17. dirinfo = dir(['wavefile/', speakers{i}, '/*.wav']);
  18. singerNames = {dirinfo.name};
  19. for j=1:length(singerNames),
  20. waitbar(index/waveNum);
  21. % fprintf('%g/%gn', index, waveNum);
  22. wavefile = ['wavefile', speakers{i}, '', singerNames{j}];
  23. [y, fs, nbits] = wavreadc(wavefile);
  24. waveData(index).speaker = speakers{i};
  25. waveData(index).gender = eval(speakers{i}(1));
  26. waveData(index).answer = singerNames{j}(1:end-4);
  27. waveData(index).feature = wave2mfccmex(y);
  28. waveData(index).frameNum = size(waveData(index).feature, 2);
  29. waveData(index).wavepath = wavefile;
  30. index = index + 1;
  31. end;
  32. end;
  33. close(h);
  34. save waveData waveData