首先,转换sph2pipe工具所在文件夹(此工具为LDC所提供的SPHERE音频文件转换工具)
cd '/home/dream/Research/kaldi-master/tools/sph2pipe_v2.5'
其次:在命令行进行音频文件转换测试:
./sph2pipe -f wav ./wav_test/SA1.WAV ./wav_test/SA1_tr.WAV
此处需要注意的是,sph2pipe可执行文件不再PATH当中,所以需要当前路径下的完全路径,即:./sph2pipe才可以运行,而非sph2pipe。
1.由批处理python脚本生成转换文件
具体的:
# encoding:utf-8
import os
import os.path
root_dir = "/home/dream/Research/Data/TIMIT/"
timit_path = "/home/dream/Research/Data/TIMIT/"
# 文件保存路径
sph2pipe_path = "/home/dream/Research/kaldi-master/tools/sph2pipe_v2.5/sph2pipe"
# sph2pipe工具所在路径
f = open("/home/dream/Research/Data/timit_sph2pipe/make_sph2pipe_file.txt", 'w')
for root, dirs, files in os.walk(root_dir):
for fn in files:
if fn[len(fn)-3:len(fn)]=='WAV':
sourcefile = timit_path+root[len(root_dir):]+"/"+fn
targetfile = root[len(root)-5:len(root)]+"_"+fn
s = sph2pipe_path + " -f wav " + sourcefile+" "+targetfile+"\n"
f.write(s.replace('\\','/'))
f.close()
由上述脚本,可以生成对应的txt格式的转换文件
2.在linux下运行shell脚本文件,读取转换文件进行数据转换
# 逐行执行make_sph2pipe_file.txt当中的命令
filename='/home/dream/Research/Data/timit_sph2pipe/text.txt'
while read line
do
echo $line
$line
done < $filename