from data_gen.tts.base_preprocess import BasePreprocessor | |
import glob, os | |
class LibriSpeechPreprocess(BasePreprocessor): | |
def meta_data(self): | |
lj_raw_data_dir = 'data/raw/LJSpeech-1.1' | |
for l in list(open(f'{lj_raw_data_dir}/metadata.csv').readlines())[600:]: | |
item_name, _, txt = l.strip().split("|") | |
wav_fn = f"{lj_raw_data_dir}/wavs/{item_name}.wav" | |
txt = txt.lower() | |
yield {'item_name': item_name, 'wav_fn': wav_fn, 'txt': txt, 'spk_name': 'LJSPK'} | |
dirs = sorted(glob.glob(f'{self.raw_data_dir}/*/*/*')) | |
for d in dirs: | |
txt_fn = glob.glob(f'{d}/*.txt')[0] | |
with open(txt_fn, 'r') as f: | |
item_name2txt = [l.strip().split(" ") for l in f.readlines()] | |
item_name2txt = {x[0]: ' '.join(x[1:]) for x in item_name2txt} | |
wav_fns = sorted(glob.glob(f'{d}/*.flac')) | |
for wav_fn in wav_fns: | |
item_name = os.path.basename(wav_fn)[:-5] | |
txt = item_name2txt[item_name].lower() | |
spk = item_name.split("-")[0] | |
yield {'item_name': item_name, 'wav_fn': wav_fn, 'txt': txt, 'spk_name': spk} | |