这两天复现代码。先构造数据集,纯净语音、不一样噪声、不一样SNR的混合语音。其中纯净语音由两部分组成,IEEE corpus和TIMIT。html
一开始我用MATLAB中的audioread读取音频文件,合成后用audiowrite保存下来。没有任何问题。python
后来,师姐让我换成python处理,无论是wave仍是scipy.io中的wavfile,在读取TIMIT的原始WAV时都会报错。linux
经过上述问答以及TIMIT语料库的官方说明文件,咱们能够发现TIMIT中的WAV文件是:shell
咱们用notepad++打开任意一个数据集中的wav文件,能够看到如下内容做为开头:工具
而以一样方式打开普通的wav文件,则开头内容为:编码
将SPHERE文件转换成WAV文件。spa
网上能够找到许多方法,在此我采用了Dystopia在基于各类分类算法的说话人识别(年龄段识别)一文中的方法。
.net
Kaldi中tools下有SPHERE文件转换工具sph2pipe.exe命令行
转换工具:sph2pipe_v2.5,若是安装过Kaldi的话,能够直接使用 $KALDI_ROOT/tools/sph2pipe_v2.5/sph2pipe,若是没有安装的话,能够单独下载:http://sourceforge.net/projects/kaldi/files/sph2pipe_v2.5.tar.gz
若是是在Windows环境下的话直接使用sph2pipe.exe便可,若是是在linux环境下的话,则须要进行GCC编码:gcc -o sph2pipe *.c -lm
1 #encoding="utf-8" 2 import os 3 import os.path 4 rootdir = "/data/Datasets/yuanpp/TIMIT" 5 timitpath = "/data/Datasets/yuanpp/TIMIT" 6 targetpath = "/data/Datasets/yuanpp/TIMIT_convert" 7 sph2pipepath = "/home/yuanpeipei/sph2pipe_v2.5/sph2pipe" 8 f = open('./make_sph2pipe_file.txt','w') 9 for root,dirs,files in os.walk(rootdir): 10 for fn in files: 11 if fn[len(fn)-3:len(fn)]=='wav': 12 sourcefile = timitpath+root[len(rootdir):]+"/"+fn 13 targetfile = targetpath + "/" + fn 14 s = sph2pipepath + " -f wav " + sourcefile+" "+targetfile+"\n" 15 f.write(s) 16 f.close()
生成make_sph2pipe_file.txt文件,内容为命令行。
1 /home/yuanpeipei/sph2pipe_v2.5/sph2pipe -f wav /data/Datasets/yuanpp/TIMIT/pure_utterance/validation/S_125_06.wav /data/Datasets/yuanpp/TIMIT_convert/S_125_06.wav 2 /home/yuanpeipei/sph2pipe_v2.5/sph2pipe -f wav /data/Datasets/yuanpp/TIMIT/pure_utterance/validation/S_130_03.wav /data/Datasets/yuanpp/TIMIT_convert/S_130_03.wav 3 /home/yuanpeipei/sph2pipe_v2.5/sph2pipe -f wav /data/Datasets/yuanpp/TIMIT/pure_utterance/validation/S_60_10.wav /data/Datasets/yuanpp/TIMIT_convert/S_60_10.wav 4 /home/yuanpeipei/sph2pipe_v2.5/sph2pipe -f wav /data/Datasets/yuanpp/TIMIT/pure_utterance/validation/S_130_06.wav /data/Datasets/yuanpp/TIMIT_convert/S_130_06.wav 5 ... ...
1 #!/bin/sh 2 while read line 3 do 4 $line 5 done < make_sph2pipe_file.txt
便可。
参考资料: