WSJ0中的wv文件如何转换为wav文件

平台准备:

python 3.6

os包

WSJ0 corpus———csr_1_senn

sph2pipe包

csr_1_senn,sph2pipe包和wv_convert_wav.py在同一个目录下

 

代码:wv_convert_wav.py

import os

# the root dir for WSJ0 corpus
root_dir = "csr_1_senn"

# the disc number
disc_dir = []
disc_index = 0
for list_disc in os.listdir(root_dir):
    if list_disc not in ["doc", "11-13.1"]:
        # the data dir for each disc
        disc_dir.append(os.path.join(root_dir, list_disc, "wsj0"))
        disc_index = disc_index + 1

if not os.path.exists("wsj0"):
    os.mkdir("wsj0")
# the sub_data dir for each disc
for i, list_sub_data in enumerate(disc_dir):
    for sub_data_dir in os.listdir(list_sub_data):
        s_dir = os.path.join("wsj0", sub_data_dir)
        if not os.path.exists(s_dir):
            os.mkdir(s_dir)
        lower = sub_data_dir.split(sep=' ')
        if sub_data_dir[0][0] == 's':
            datatype_dir = os.path.join(list_sub_data, sub_data_dir)
            for list_spk in os.listdir(datatype_dir):
                spk_dir = os.path.join(s_dir, list_spk)
                spk_dir_abs = os.path.join(datatype_dir, list_spk)
                if not os.path.exists(spk_dir):
                    os.mkdir(spk_dir)
                for wv_file in os.listdir(spk_dir_abs):
                    if not wv_file.endswith('.wv1'):
                        continue
                    speech_dir = os.path.join(spk_dir_abs, wv_file)
                    target_name = wv_file.split(sep='.')[0] + '.wav'
                    target_dir = spk_dir + '/' + target_name
                    os.system('./sph2pipe ' + speech_dir + ' -f rif ' + target_dir)
 

你可能感兴趣的:(自然语言处理,tensorflow,深度学习)