对TIMIT数据进行格式转换(windows解决报错wave.Error: file does not start with RIFF id)
在语音识别中,常用的语音开源数据库TIMIT在python中进行训练前需要进行预处理,不然就会报错wave.Error: file does not start with RIFF id。本文介绍在windows中的处理过程如下:
如果没安装kaldi就先下载一个sph2pipe_v2.5,链接: http://www.openslr.org/3/。此处省略超简单的安装配置过程。然后在TIMIT文件中打开power shell运行命令——
forfiles /s /m *.wav /c "cmd /c sph2pipe -f wav @file @fnameRIFF.wav"
此代码搜索每个文件并使其可读取为python库。如果用的系统是Linux或者unix可参考stack overflow上的方法:链接: https://stackoverflow.com/questions/44748258/reading-a-wav-file-from-timit-database-in-python。
之后打开文件夹还可能发现一堆RIFFRIFF重复命名的文件,大小为0kb,看其不顺眼遂将它们统统用以下方法删除(与上面的命令一样,都在TIMIT文件中打开power shell运行)——
forfiles /s /m *.wav /c "cmd /c if @fsize==0 del @file"
以上命令的运行时间都较长,耐心等等就好咯~