TIMIT语音库-----下载和matlab读取

 

在MIT网站可以找到一些样例, 为 16kHz sampling, 16 bit sample, PCM encoding。样例才160个句子,不够用。

这儿能找到完整版,用抓取工具全部下载下来有600多MTIMIT语音库-----下载和matlab读取

问题是虽然其为wav结尾,matlab中wavread却读不了TIMIT语音库-----下载和matlab读取,用二进制打开文件发现

TIMIT语音库-----下载和matlab读取

google一下,原来其为 SPHERE文件格式

整个语音库有6300个文件,如何全部转换为普通的wav文件?

step1 遍历整个文件夹,把所有wav文件全找出来 find_wav.m

 
  1. function [ wav_files ] = find_wav( path )

  2. %FIND_WAV, find all wav file recursively

  3. wav_files = [];

  4. if(isdir(path) == 0)

  5. return;

  6. end

  7. path_files = dir(path);

  8. fileNum = length(path_files);

  9. for k= 3:fileNum

  10. file = [path,'\', path_files(k).name];

  11. if (path_files(k).isdir == 1)

  12. ret = find_wav(file);

  13. if(isempty(ret) ~= 1)

  14. if(isempty(wav_files))

  15. wav_files = char(ret);

  16. else

  17. wav_files = char(wav_files, ret);

  18. end

  19. end

  20. elseif strfind(path_files(k).name, '.wav')

  21. if(isempty(wav_files))

  22. wav_files = char(file);

  23. else

  24. wav_files = char(wav_files, file);

  25. end

  26. end

  27. end

  28. end


step2 文件转换conver_wav.m

 
  1. %SPHERE 文件转换为wav文件

  2. clear all;

  3. fs = 16000;

  4. files = find_wav('.');

  5. for fileIdx = 1:length(files)

  6. file = files(fileIdx,:);

  7. fileID = fopen(file);

  8.  
  9. %判断文件头,防止误操作

  10. head = fread(fileID, 1024, 'char*1');

  11. headStr = sprintf('%s',head(1:7));

  12. if(~strcmp(headStr,'NIST_1A'))

  13. fclose(fileID);

  14. continue;

  15. end

  16. frewind(fileID);

  17.  
  18. allData = fread(fileID, inf, 'short');

  19. fclose(fileID);

  20. delete(file);

  21. wavwrite(allData(513:end)./32768, fs, file); %SPHERE 文件头1024字节

  22. end


step3 检查 check_wav.m

 
  1. clear all;

  2. files = find_wav('.');

  3. for fileIdx = 1:length(files)

  4. file = files(fileIdx,:);

  5. [y, fs, nbits] = wavread(file);%不是wav文件就会报错

  6. if(fs~=16000)

  7. fprintf('%s: fs~=16000\n', file);

  8. end

  9. if(nbits ~= 16)

  10. fprintf('%s: nbits ~= 16\n', file);

  11. end

  12. end


 

相关文章:

  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
  • 2021-09-08
  • 2021-11-02
  • 2021-06-09
  • 2021-12-30
猜你喜欢
  • 2021-09-22
  • 2022-01-02
  • 2021-04-30
  • 2021-06-02
  • 2021-04-05
  • 2021-06-04
  • 2021-08-16
相关资源
相似解决方案