Spaces:
Running
on
T4
Running
on
T4
import glob | |
import os | |
import random | |
import torch | |
# HELPER FUNCTIONS | |
def split_dictionary_into_chunks(input_dict, split_n): | |
res = [] | |
new_dict = {} | |
elements_per_dict = (len(input_dict.keys()) // split_n) + 1 | |
for k, v in input_dict.items(): | |
if len(new_dict) < elements_per_dict: | |
new_dict[k] = v | |
else: | |
res.append(new_dict) | |
new_dict = {k: v} | |
res.append(new_dict) | |
return res | |
def limit_to_n(path_to_transcript_dict, n=40000): | |
# deprecated, we now just use the whole thing always, because there's a critical mass of data | |
limited_dict = dict() | |
if len(path_to_transcript_dict.keys()) > n: | |
for key in random.sample(list(path_to_transcript_dict.keys()), n): | |
limited_dict[key] = path_to_transcript_dict[key] | |
return limited_dict | |
else: | |
return path_to_transcript_dict | |
def build_path_to_transcript_dict_multi_ling_librispeech_template(root): | |
""" | |
https://arxiv.org/abs/2012.03411 | |
""" | |
path_to_transcript = dict() | |
with open(os.path.join(root, "transcripts.txt"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
fields = line.split("\t") | |
wav_folders = fields[0].split("_") | |
wav_path = f"{root}/audio/{wav_folders[0]}/{wav_folders[1]}/{fields[0]}.flac" | |
path_to_transcript[wav_path] = fields[1] | |
return path_to_transcript | |
def build_path_to_transcript_dict_hui_template(root): | |
""" | |
https://arxiv.org/abs/2106.06309 | |
""" | |
path_to_transcript = dict() | |
for el in os.listdir(root): | |
if os.path.isdir(os.path.join(root, el)): | |
with open(os.path.join(root, el, "metadata.csv"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
norm_transcript = line.split("|")[1] | |
wav_path = os.path.join(root, el, "wavs", line.split("|")[0] + ".wav") | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript | |
return path_to_transcript | |
# ENGLISH | |
def build_path_to_transcript_dict_mls_english(re_cache=False): | |
lang = "english" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train/pttd_cache.pt" | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_gigaspeech(re_cache=False): | |
root = "/mount/resources/speech/corpora/GigaSpeech/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "transcripts_only_clean_samples.txt"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
fields = line.split("\t") | |
norm_transcript = fields[1] | |
wav_path = fields[0] | |
path_to_transcript[wav_path] = norm_transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_elizabeth(re_cache=False): | |
root = "/mount/resources/speech/corpora/MAILabs_british_single_speaker_elizabeth" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
for el in os.listdir(root): | |
if os.path.isdir(os.path.join(root, el)): | |
with open(os.path.join(root, el, "metadata.csv"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
norm_transcript = line.split("|")[2] | |
wav_path = os.path.join(root, el, "wavs", line.split("|")[0] + ".wav") | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_nancy(re_cache=False): | |
root = "/mount/resources/speech/corpora/NancyKrebs" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "metadata.csv"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
norm_transcript = line.split("|")[1] | |
wav_path = os.path.join(root, "wav", line.split("|")[0] + ".wav") | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_integration_test(re_cache=True): | |
root = "/mount/resources/speech/corpora/NancyKrebs" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "metadata.csv"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n")[:500]: | |
if line.strip() != "": | |
norm_transcript = line.split("|")[1] | |
wav_path = os.path.join(root, "wav", line.split("|")[0] + ".wav") | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_CREMA_D(re_cache=False): | |
root = "/mount/resources/speech/corpora/CREMA_D/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
identifier_to_sent = {"IEO": "It's eleven o'clock.", | |
"TIE": "That is exactly what happened.", | |
"IOM": "I'm on my way to the meeting.", | |
"IWW": "I wonder what this is about.", | |
"TAI": "The airplane is almost full.", | |
"MTI": "Maybe tomorrow it will be cold.", | |
"IWL": "I would like a new alarm clock.", | |
"ITH": "I think, I have a doctor's appointment.", | |
"DFA": "Don't forget a jacket.", | |
"ITS": "I think, I've seen this before.", | |
"TSI": "The surface is slick.", | |
"WSI": "We'll stop in a couple of minutes."} | |
path_to_transcript = dict() | |
for file in os.listdir(root): | |
if file.endswith(".wav"): | |
path_to_transcript[root + file] = identifier_to_sent[file.split("_")[1]] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_EmoV_DB(re_cache=False): | |
root = "/mount/resources/speech/corpora/EmoV_DB/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "labels.txt"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
identifier_to_sent = dict() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
identifier_to_sent[line.split()[0]] = " ".join(line.split()[1:]) | |
for file in os.listdir(root): | |
if file.endswith(".wav"): | |
path_to_transcript[root + file] = identifier_to_sent[file[-14:-10]] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_ryanspeech(re_cache=False): | |
root = "/mount/resources/speech/corpora/RyanSpeech" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript_dict = dict() | |
with open(root + "/metadata.csv", mode="r", encoding="utf8") as f: | |
transcripts = f.read().split("\n") | |
for transcript in transcripts: | |
if transcript.strip() != "": | |
parsed_line = transcript.split("|") | |
audio_file = f"{root}/wavs/{parsed_line[0]}.wav" | |
path_to_transcript_dict[audio_file] = parsed_line[2] | |
torch.save(path_to_transcript_dict, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_RAVDESS(re_cache=False): | |
root = "/mount/resources/speech/corpora/RAVDESS" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript_dict = dict() | |
for speaker_dir in os.listdir(root): | |
for audio_file in os.listdir(os.path.join(root, speaker_dir)): | |
if audio_file.split("-")[4] == "01": | |
path_to_transcript_dict[os.path.join(root, speaker_dir, audio_file)] = "Kids are talking by the door." | |
else: | |
path_to_transcript_dict[os.path.join(root, speaker_dir, audio_file)] = "Dogs are sitting by the door." | |
torch.save(path_to_transcript_dict, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_ESDS(re_cache=False): | |
root = "/mount/resources/speech/corpora/Emotional_Speech_Dataset_Singapore" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript_dict = dict() | |
for speaker_dir in os.listdir(root): | |
if speaker_dir.startswith("00"): | |
if int(speaker_dir) > 10: | |
with open(f"{root}/{speaker_dir}/fixed_unicode.txt", mode="r", encoding="utf8") as f: | |
transcripts = f.read() | |
for line in transcripts.replace("\n\n", "\n").replace(",", ", ").split("\n"): | |
if line.strip() != "": | |
filename, text, emo_dir = line.split("\t") | |
filename = speaker_dir + "_" + filename.split("_")[1] | |
path_to_transcript_dict[f"{root}/{speaker_dir}/{emo_dir}/{filename}.wav"] = text | |
torch.save(path_to_transcript_dict, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_nvidia_hifitts(re_cache=False): | |
root = "/mount/resources/speech/corpora/hi_fi_tts_v0" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
transcripts = list() | |
import json | |
for jpath in [f"{root}/6097_manifest_clean_dev.json", | |
f"{root}/6097_manifest_clean_test.json", | |
f"{root}/6097_manifest_clean_train.json", | |
f"{root}/9017_manifest_clean_dev.json", | |
f"{root}/9017_manifest_clean_test.json", | |
f"{root}/9017_manifest_clean_train.json", | |
f"{root}/92_manifest_clean_dev.json", | |
f"{root}/92_manifest_clean_test.json", | |
f"{root}/92_manifest_clean_train.json"]: | |
with open(jpath, encoding='utf-8', mode='r') as jfile: | |
for line in jfile.read().split("\n"): | |
if line.strip() != "": | |
transcripts.append(json.loads(line)) | |
for transcript in transcripts: | |
path = transcript["audio_filepath"] | |
norm_text = transcript["text_normalized"] | |
path_to_transcript[f"{root}/{path}"] = norm_text | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_blizzard_2013(re_cache=False): | |
root = "/mount/resources/speech/corpora/Blizzard2013/train/segmented/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(root + "prompts.gui", encoding="utf8") as f: | |
transcriptions = f.read() | |
blocks = transcriptions.split("||\n") | |
for block in blocks: | |
trans_lines = block.split("\n") | |
if trans_lines[0].strip() != "": | |
transcript = trans_lines[1].replace("@", "").replace("#", ",").replace("|", "").replace(";", ",").replace( | |
":", ",").replace(" 's", "'s").replace(", ,", ",").replace(" ", " ").replace(" ,", ",").replace(" .", | |
".").replace( | |
" ?", "?").replace(" !", "!").rstrip(" ,") | |
path_to_transcript[root + "wavn/" + trans_lines[0] + ".wav"] = transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_vctk(re_cache=False): | |
root = "/mount/resources/speech/corpora/VCTK" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
for transcript_dir in os.listdir("/mount/resources/speech/corpora/VCTK/txt"): | |
for transcript_file in os.listdir(f"/mount/resources/speech/corpora/VCTK/txt/{transcript_dir}"): | |
if transcript_file.endswith(".txt"): | |
with open(f"/mount/resources/speech/corpora/VCTK/txt/{transcript_dir}/" + transcript_file, 'r', | |
encoding='utf8') as tf: | |
transcript = tf.read() | |
wav_path = f"/mount/resources/speech/corpora/VCTK/wav48_silence_trimmed/{transcript_dir}/" + transcript_file.rstrip( | |
".txt") + "_mic2.flac" | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_libritts_all_clean(re_cache=False): | |
root = "/mount/resources/speech/corpora/LibriTTS_R/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_train = "/mount/resources/speech/corpora/LibriTTS_R/" # using all files from the "clean" subsets from LibriTTS-R https://arxiv.org/abs/2305.18802 | |
path_to_transcript = dict() | |
for speaker in os.listdir(path_train): | |
for chapter in os.listdir(os.path.join(path_train, speaker)): | |
for file in os.listdir(os.path.join(path_train, speaker, chapter)): | |
if file.endswith("normalized.txt"): | |
with open(os.path.join(path_train, speaker, chapter, file), 'r', encoding='utf8') as tf: | |
transcript = tf.read() | |
wav_file = file.split(".")[0] + ".wav" | |
path_to_transcript[os.path.join(path_train, speaker, chapter, wav_file)] = transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_libritts_other500(re_cache=False): | |
root = "/mount/resources/asr-data/LibriTTS/train-other-500" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_train = "/mount/resources/asr-data/LibriTTS/train-other-500" | |
path_to_transcript = dict() | |
for speaker in os.listdir(path_train): | |
for chapter in os.listdir(os.path.join(path_train, speaker)): | |
for file in os.listdir(os.path.join(path_train, speaker, chapter)): | |
if file.endswith("normalized.txt"): | |
with open(os.path.join(path_train, speaker, chapter, file), 'r', encoding='utf8') as tf: | |
transcript = tf.read() | |
wav_file = file.split(".")[0] + ".wav" | |
path_to_transcript[os.path.join(path_train, speaker, chapter, wav_file)] = transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_ljspeech(re_cache=False): | |
root = "/mount/resources/speech/corpora/LJSpeech/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
for transcript_file in os.listdir("/mount/resources/speech/corpora/LJSpeech/16kHz/txt"): | |
with open("/mount/resources/speech/corpora/LJSpeech/16kHz/txt/" + transcript_file, 'r', encoding='utf8') as tf: | |
transcript = tf.read() | |
wav_path = "/mount/resources/speech/corpora/LJSpeech/16kHz/wav/" + transcript_file.rstrip(".txt") + ".wav" | |
path_to_transcript[wav_path] = transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_jenny(re_cache=False): | |
""" | |
https://www.kaggle.com/datasets/noml4u/jenny-tts-dataset | |
https://github.com/dioco-group/jenny-tts-dataset | |
Dataset of Speaker Jenny (Dioco) with an Irish accent | |
""" | |
root = "/mount/resources/speech/corpora/Jenny/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open("/mount/resources/speech/corpora/Jenny/metadata.csv", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript["/mount/resources/speech/corpora/Jenny/" + line.split("|")[0] + "_silence.flac"] = line.split("|")[1] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# GERMAN | |
def build_path_to_transcript_dict_mls_german(re_cache=False): | |
lang = "german" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_karlsson(re_cache=False): | |
root = "/mount/resources/speech/corpora/HUI_German/Karlsson" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_hui_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_eva(re_cache=False): | |
root = "/mount/resources/speech/corpora/HUI_German/Eva" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_hui_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_bernd(re_cache=False): | |
root = "/mount/resources/speech/corpora/HUI_German/Bernd" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_hui_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_friedrich(re_cache=False): | |
root = "/mount/resources/speech/corpora/HUI_German/Friedrich" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_hui_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_hokus(re_cache=False): | |
root = "/mount/resources/speech/corpora/HUI_German/Hokus" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_hui_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_hui_others(re_cache=False): | |
root = "/mount/resources/speech/corpora/HUI_German/others" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
pttd = dict() | |
for speaker in os.listdir(root): | |
pttd.update(build_path_to_transcript_dict_hui_template(root=f"{root}/{speaker}")) | |
torch.save(pttd, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_thorsten_neutral(re_cache=False): | |
root = "/mount/resources/speech/corpora/ThorstenDatasets/thorsten-de_v03" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(root + "/metadata_train.csv", encoding="utf8") as f: | |
transcriptions = f.read() | |
with open(root + "/metadata_val.csv", encoding="utf8") as f: | |
transcriptions += "\n" + f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[root + "/wavs/" + line.split("|")[0] + ".wav"] = \ | |
line.split("|")[1] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_thorsten_2022_10(re_cache=False): | |
root = "/mount/resources/speech/corpora/ThorstenDatasets/ThorstenVoice-Dataset_2022.10" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(root + "/metadata_train.csv", encoding="utf8") as f: | |
transcriptions = f.read() | |
with open(root + "/metadata_dev.csv", encoding="utf8") as f: | |
transcriptions += "\n" + f.read() | |
with open(root + "/metadata_test.csv", encoding="utf8") as f: | |
transcriptions += "\n" + f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[root + "/wavs/" + line.split("|")[0] + ".wav"] = \ | |
line.split("|")[1] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_thorsten_emotional(re_cache=False): | |
root = "/mount/resources/speech/corpora/ThorstenDatasets/thorsten-emotional_v02" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(root + "/thorsten-emotional-metadata.csv", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[root + "/amused/" + line.split("|")[0] + ".wav"] = line.split("|")[1] | |
path_to_transcript[root + "/angry/" + line.split("|")[0] + ".wav"] = line.split("|")[1] | |
path_to_transcript[root + "/disgusted/" + line.split("|")[0] + ".wav"] = line.split("|")[1] | |
path_to_transcript[root + "/neutral/" + line.split("|")[0] + ".wav"] = line.split("|")[1] | |
path_to_transcript[root + "/sleepy/" + line.split("|")[0] + ".wav"] = line.split("|")[1] | |
path_to_transcript[root + "/surprised/" + line.split("|")[0] + ".wav"] = line.split("|")[1] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# FRENCH | |
def build_path_to_transcript_dict_mls_french(re_cache=False): | |
lang = "french" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_blizzard2023_ad_silence_removed(re_cache=False): | |
root = "/mount/resources/speech/corpora/Blizzard2023/AD_silence_removed" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "transcript.tsv"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
norm_transcript = line.split("\t")[1] | |
wav_path = os.path.join(root, line.split("\t")[0].split("/")[-1]) | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript.replace("Β§", "").replace("#", "").replace("~", "").replace(" Β»", '"').replace("Β« ", '"').replace("Β»", '"').replace("Β«", '"') | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_blizzard2023_neb_silence_removed(re_cache=False): | |
root = "/mount/resources/speech/corpora/Blizzard2023/NEB_silence_removed" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "transcript.tsv"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
norm_transcript = line.split("\t")[1] | |
wav_path = os.path.join(root, line.split("\t")[0].split("/")[-1]) | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript.replace("Β§", "").replace("#", "").replace("~", "").replace(" Β»", '"').replace("Β« ", '"').replace("Β»", '"').replace("Β«", '"') | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_blizzard2023_neb_e_silence_removed(re_cache=False): | |
root = "/mount/resources/speech/corpora/Blizzard2023/enhanced_NEB_subset_silence_removed" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "transcript.tsv"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
norm_transcript = line.split("\t")[1] | |
wav_path = os.path.join(root, line.split("\t")[0].split("/")[-1]) | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript.replace("Β§", "").replace("#", "").replace("~", "").replace(" Β»", '"').replace("Β« ", '"').replace("Β»", '"').replace("Β«", '"') | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_synpaflex_norm_subset(re_cache=False): | |
""" | |
Contributed by https://github.com/tomschelsen | |
""" | |
root = "/mount/resources/speech/corpora/synpaflex-corpus/5/v0.1/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
for text_path in glob.iglob(os.path.join(root, "**/*_norm.txt"), recursive=True): | |
with open(text_path, "r", encoding="utf8") as file: | |
norm_transcript = file.read() | |
path_obj = Path(text_path) | |
wav_path = str((path_obj.parent.parent / path_obj.name[:-9]).with_suffix(".wav")) | |
if Path(wav_path).exists(): | |
path_to_transcript[wav_path] = norm_transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_siwis_subset(re_cache=False): | |
""" | |
Contributed by https://github.com/tomschelsen | |
""" | |
root = "/mount/resources/speech/corpora/SiwisFrenchSpeechSynthesisDatabase/" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
# part4 and part5 are not segmented | |
sub_dirs = ["part1", "part2", "part3"] | |
path_to_transcript = dict() | |
for sd in sub_dirs: | |
for text_path in glob.iglob(os.path.join(root, "text", sd, "*.txt")): | |
with open(text_path, "r", encoding="utf8") as file: | |
norm_transcript = file.read() | |
path_obj = Path(text_path) | |
wav_path = str((path_obj.parent.parent.parent / "wavs" / sd / path_obj.stem).with_suffix(".wav")) | |
if Path(wav_path).exists(): | |
path_to_transcript[wav_path] = norm_transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_css10fr(re_cache=False): | |
language = "french" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(f"/mount/resources/speech/corpora/CSS10/{language}/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[f"/mount/resources/speech/corpora/CSS10/{language}/{line.split('|')[0]}"] = \ | |
line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# SPANISH | |
def build_path_to_transcript_dict_mls_spanish(re_cache=False): | |
lang = "spanish" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_css10es(re_cache=False): | |
language = "spanish" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(f"/mount/resources/speech/corpora/CSS10/{language}/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[f"/mount/resources/speech/corpora/CSS10/{language}/{line.split('|')[0]}"] = \ | |
line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_spanish_blizzard_train(re_cache=False): | |
root = "/mount/resources/speech/corpora/Blizzard2021/spanish_blizzard_release_2021_v2/hub" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(os.path.join(root, "train_text.txt"), "r", encoding="utf8") as file: | |
lookup = file.read() | |
for line in lookup.split("\n"): | |
if line.strip() != "": | |
norm_transcript = line.split("\t")[1] | |
wav_path = os.path.join(root, "train_wav", line.split("\t")[0] + ".wav") | |
if os.path.exists(wav_path): | |
path_to_transcript[wav_path] = norm_transcript | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# PORTUGUESE | |
def build_path_to_transcript_dict_mls_portuguese(re_cache=False): | |
lang = "portuguese" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# POLISH | |
def build_path_to_transcript_dict_mls_polish(re_cache=False): | |
lang = "polish" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# ITALIAN | |
def build_path_to_transcript_dict_mls_italian(re_cache=False): | |
lang = "italian" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# DUTCH | |
def build_path_to_transcript_dict_mls_dutch(re_cache=False): | |
lang = "dutch" | |
root = f"/mount/resources/speech/corpora/MultiLingLibriSpeech/mls_{lang}/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = build_path_to_transcript_dict_multi_ling_librispeech_template(root=root) | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_css10nl(re_cache=False): | |
language = "dutch" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(f"/mount/resources/speech/corpora/CSS10/{language}/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[f"/mount/resources/speech/corpora/CSS10/{language}/{line.split('|')[0]}"] = \ | |
line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# GREEK | |
def build_path_to_transcript_dict_css10el(re_cache=False): | |
language = "greek" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(f"/mount/resources/speech/corpora/CSS10/{language}/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[f"/mount/resources/speech/corpora/CSS10/{language}/{line.split('|')[0]}"] = \ | |
line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# FINNISH | |
def build_path_to_transcript_dict_css10fi(re_cache=False): | |
language = "finnish" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(f"/mount/resources/speech/corpora/CSS10/{language}/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[f"/mount/resources/speech/corpora/CSS10/{language}/{line.split('|')[0]}"] = \ | |
line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# VIETNAMESE | |
def build_path_to_transcript_dict_VIVOS_viet(re_cache=False): | |
root = "/mount/resources/speech/corpora/VIVOS_vietnamese/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript_dict = dict() | |
with open(root + "/prompts.txt", mode="r", encoding="utf8") as f: | |
transcripts = f.read().split("\n") | |
for transcript in transcripts: | |
if transcript.strip() != "": | |
parsed_line = transcript.split(" ") | |
audio_file = f"{root}/waves/{parsed_line[0][:10]}/{parsed_line[0]}.wav" | |
path_to_transcript_dict[audio_file] = " ".join(parsed_line[1:]).lower() | |
torch.save(path_to_transcript_dict, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_vietTTS(re_cache=False): | |
root = "/mount/resources/speech/corpora/VietTTS" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(root + "/meta_data.tsv", encoding="utf8") as f: | |
transcriptions = f.read() | |
for line in transcriptions.split("\n"): | |
if line.strip() != "": | |
parsed_line = line.split(".wav") | |
audio_path = parsed_line[0] | |
transcript = parsed_line[1] | |
path_to_transcript[os.path.join(root, audio_path + ".wav")] = transcript.strip() | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# CHINESE | |
def build_path_to_transcript_dict_aishell3(re_cache=False): | |
root = "/mount/resources/speech/corpora/aishell3/train" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript_dict = dict() | |
with open(root + "/label_train-set.txt", mode="r", encoding="utf8") as f: | |
transcripts = f.read().replace("$", "").replace("%", " ").split("\n") | |
for transcript in transcripts: | |
if transcript.strip() != "" and not transcript.startswith("#"): | |
parsed_line = transcript.split("|") | |
audio_file = f"{root}/wav/{parsed_line[0][:7]}/{parsed_line[0]}.wav" | |
kanji = parsed_line[2] | |
path_to_transcript_dict[audio_file] = kanji | |
torch.save(path_to_transcript_dict, cache_path) | |
return torch.load(cache_path) | |
def build_path_to_transcript_dict_css10cmn(re_cache=False): | |
language = "chinese" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open("/mount/resources/speech/corpora/CSS10/chinese/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript["/mount/resources/speech/corpora/CSS10/chinese/" + line.split("|")[0]] = line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# RUSSIAN | |
def build_path_to_transcript_dict_css10ru(re_cache=False): | |
language = "russian" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
with open(f"/mount/resources/speech/corpora/CSS10/{language}/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[f"/mount/resources/speech/corpora/CSS10/{language}/{line.split('|')[0]}"] = \ | |
line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# HUNGARIAN | |
def build_path_to_transcript_dict_css10hu(re_cache=False): | |
language = "hungarian" | |
root = f"/mount/resources/speech/corpora/CSS10/{language}" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
path_to_transcript = dict() | |
language = "hungarian" | |
with open(f"/mount/resources/speech/corpora/CSS10/{language}/transcript.txt", encoding="utf8") as f: | |
transcriptions = f.read() | |
trans_lines = transcriptions.split("\n") | |
for line in trans_lines: | |
if line.strip() != "": | |
path_to_transcript[f"/mount/resources/speech/corpora/CSS10/{language}/{line.split('|')[0]}"] = \ | |
line.split("|")[2] | |
torch.save(path_to_transcript, cache_path) | |
return torch.load(cache_path) | |
# OTHER | |
def build_file_list_singing_voice_audio_database(re_cache=False): | |
root = "/mount/resources/speech/corpora/singing_voice_audio_dataset/monophonic" | |
cache_path = os.path.join(root, "pttd_cache.pt") | |
if not os.path.exists(cache_path) or re_cache: | |
file_list = list() | |
for corw in os.listdir(root): | |
for singer in os.listdir(os.path.join(root, corw)): | |
for audio in os.listdir(os.path.join(root, corw, singer)): | |
file_list.append(os.path.join(root, corw, singer, audio)) | |
torch.save(file_list, cache_path) | |
return torch.load(cache_path) | |
from pathlib import Path | |
import xml.etree.ElementTree as ET | |
from csv import DictReader | |
import json | |
def build_path_to_transcript_dict_nst_norwegian(): | |
root = '/resources/speech/corpora/NST_norwegian/pcm/cs' | |
path_to_transcript = dict() | |
audio_paths = sorted(list(Path(root).glob('*.pcm'))) | |
i = 0 | |
with open(Path(root, 'SCRIPTS/CTTS_core'), encoding='latin-1') as f: | |
for line in f: | |
transcript = line.strip().replace('\xad', '') | |
path = str(audio_paths[i].absolute()) | |
path_to_transcript[path] = transcript | |
i += 1 | |
return path_to_transcript | |
def build_path_to_transcript_dict_nst_swedish(): | |
root = '/resources/speech/corpora/NST_swedish/sw_pcms' | |
path_to_transcript = dict() | |
audio_paths = sorted(list(Path(root, 'mf').glob('*.pcm'))) | |
audio_paths.insert(4154, None) | |
audio_paths.insert(5144, None) | |
i = 0 | |
with open(Path(root, 'scripts/mf/sw_all'), encoding='latin-1') as f: | |
for line in f: | |
if i == 4154 or i == 5144: | |
i += 1 | |
continue | |
transcript = line.strip().replace('\xad', '') | |
path = str(audio_paths[i].absolute()) | |
path_to_transcript[path] = transcript | |
i += 1 | |
return path_to_transcript | |
def build_path_to_transcript_dict_nchlt_afr(): | |
root = '/resources/speech/corpora/nchlt_afr' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='afr') | |
def build_path_to_transcript_dict_nchlt_nbl(): | |
root = '/resources/speech/corpora/nchlt_nbl' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='nbl') | |
def build_path_to_transcript_dict_nchlt_nso(): | |
root = '/resources/speech/corpora/nchlt_nso' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='nso') | |
def build_path_to_transcript_dict_nchlt_sot(): | |
root = '/resources/speech/corpora/nchlt_sot' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='sot') | |
def build_path_to_transcript_dict_nchlt_ssw(): | |
root = '/resources/speech/corpora/nchlt_ssw' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='ssw') | |
def build_path_to_transcript_dict_nchlt_tsn(): | |
root = '/resources/speech/corpora/nchlt_tsn' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='tsn') | |
def build_path_to_transcript_dict_nchlt_tso(): | |
root = '/resources/speech/corpora/nchlt_tso' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='tso') | |
def build_path_to_transcript_dict_nchlt_ven(): | |
root = '/resources/speech/corpora/nchlt_ven' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='ven') | |
def build_path_to_transcript_dict_nchlt_xho(): | |
root = '/resources/speech/corpora/nchlt_xho' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='xho') | |
def build_path_to_transcript_dict_nchlt_zul(): | |
root = '/resources/speech/corpora/nchlt_zul' | |
return build_path_to_transcript_dict_nchlt_template(root, lang_code='zul') | |
def build_path_to_transcript_dict_nchlt_template(root, lang_code): | |
path_to_transcript = dict() | |
base_dir = Path(root).parent | |
for split in ['trn', 'tst']: | |
tree = ET.parse(f'{root}/transcriptions/nchlt_{lang_code}.{split}.xml') | |
tree_root = tree.getroot() | |
for rec in tree_root.iter('recording'): | |
transcript = rec.find('orth').text | |
if '[s]' in transcript: | |
continue | |
path = str(base_dir / rec.get('audio')) | |
path_to_transcript[path] = transcript | |
return path_to_transcript | |
def build_path_to_transcript_dict_bibletts_akuapem_twi(): | |
path_to_transcript = dict() | |
root = '/resources/speech/corpora/BibleTTS/akuapem-twi' | |
for split in ['train', 'dev', 'test']: | |
for book in Path(root, split).glob('*'): | |
for textfile in book.glob('*.txt'): | |
with open(textfile, 'r', encoding='utf-8') as f: | |
text = ' '.join([line.strip() for line in f]) # should usually be only one line anyway | |
path_to_transcript[textfile.with_suffix('.flac')] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_bembaspeech(): | |
root = '/resources/speech/corpora/BembaSpeech/bem' | |
path_to_transcript = dict() | |
for split in ['train', 'dev', 'test']: | |
with open(Path(root, f'{split}.tsv'), 'r', encoding='utf-8') as f: | |
reader = DictReader(f, delimiter='\t') | |
for row in reader: | |
path_to_transcript[str(Path(root, 'audio', row['audio']))] = row['sentence'] | |
return path_to_transcript | |
def build_path_to_transcript_dict_alffa_sw(): | |
root = '/resources/speech/corpora/ALFFA/data_broadcastnews_sw/data' | |
path_to_transcript = build_path_to_transcript_dict_kaldi_template(root=root, split='train', replace_in_path=('asr_swahili/data/', '')) | |
path_to_transcript.update(build_path_to_transcript_dict_kaldi_template(root=root, split='test', replace_in_path=('/my_dir/wav', 'test/wav5'))) | |
return path_to_transcript | |
def build_path_to_transcript_dict_alffa_am(): | |
root = '/resources/speech/corpora/ALFFA/data_readspeech_am/data' | |
path_to_transcript = build_path_to_transcript_dict_kaldi_template(root=root, split='train', replace_in_path=('/home/melese/kaldi/data/', '')) | |
path_to_transcript.update(build_path_to_transcript_dict_kaldi_template(root=root, split='test', replace_in_path=('/home/melese/kaldi/data/', ''))) | |
return path_to_transcript | |
def build_path_to_transcript_dict_alffa_wo(): | |
root = '/resources/speech/corpora/ALFFA/data_readspeech_wo/data' | |
path_to_transcript = dict() | |
for split in ['train', 'dev', 'test']: | |
with open(Path(root, split, 'text'), 'r', encoding='utf-8') as f: | |
for line in f: | |
line = line.strip().split() | |
file = line[0] | |
text = ' '.join(line[1:]) | |
number = file.split('_')[1] | |
path_to_transcript[str(Path(root, split, number, f'{file}.wav'))] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_malayalam(): | |
root = '/resources/speech/corpora/malayalam' | |
path_to_transcript = dict() | |
for gender in ['female', 'male']: | |
with open(Path(root, f'line_index_{gender}.tsv'), 'r', encoding='utf-8') as f: | |
for line in f: | |
file, text = line.strip().split('\t') | |
path_to_transcript[str(Path(root, gender, f'{file}.wav'))] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_msc(): | |
root = '/resources/speech/corpora/msc_reviewed_speech' | |
path_to_transcript = dict() | |
with open(Path(root, f'metadata.tsv'), 'r', encoding='utf-8') as f: | |
reader = DictReader(f, delimiter='\t') | |
for row in reader: | |
path_to_transcript[str(Path(root, row['speechpath']))] = row['transcript'] | |
return path_to_transcript | |
def build_path_to_transcript_dict_chuvash(): | |
root = '/resources/speech/corpora/chuvash' | |
path_to_transcript = dict() | |
for textfile in Path(root, 'transcripts', 'txt').glob('*.txt'): | |
with open(textfile, 'r', encoding='utf-8') as f: | |
for line in f: | |
line = line.strip().split() | |
text = ' '.join(line[1:]).replace('Β«', '').replace('Β»', '') | |
path = Path(root, 'audio', 'split', f'trim_clean_{textfile.stem}.{line[0]}.flac') | |
if path.exists(): | |
path_to_transcript[str(path)] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_iban(): | |
root = '/resources/speech/corpora/iban/data' | |
path_to_transcript = build_path_to_transcript_dict_kaldi_template(root, 'train', replace_in_path=( | |
'asr_iban/data/', '')) | |
path_to_transcript.update(build_path_to_transcript_dict_kaldi_template(root, 'dev', replace_in_path=( | |
'asr_iban/data/', ''))) | |
return path_to_transcript | |
def build_path_to_transcript_dict_kaldi_template(root, split, replace_in_path=None): | |
path_to_transcript = dict() | |
wav_scp = {} | |
with open(Path(root, split, 'wav.scp'), 'r') as f: | |
for line in f: | |
wav_id, wav_path = line.split() | |
if replace_in_path: | |
wav_path = wav_path.replace(replace_in_path[0], replace_in_path[1]) | |
wav_scp[wav_id] = str(Path(root, wav_path)) | |
with open(Path(root, split, 'text'), 'r', encoding='utf-8') as f: | |
for line in f: | |
line = line.split() | |
wav_id = line[0] | |
text = ' '.join(line[1:]) | |
if '<' in text: # ignore all <UNK> utterance etc. | |
continue | |
path_to_transcript[wav_scp[wav_id]] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_sundanese_speech(): | |
root = '/resources/speech/corpora/sundanese_speech/asr_sundanese' | |
return build_path_to_transcript_dict_south_asian_languages_template(root) | |
def build_path_to_transcript_dict_sinhala_speech(): | |
root = '/resources/speech/corpora/sinhala_speech/asr_sinhala' | |
return build_path_to_transcript_dict_south_asian_languages_template(root) | |
def build_path_to_transcript_dict_bengali_speech(): | |
root = '/resources/speech/corpora/bengali_speech/asr_bengali' | |
return build_path_to_transcript_dict_south_asian_languages_template(root) | |
def build_path_to_transcript_dict_nepali_speech(): | |
root = '/resources/speech/corpora/nepali_speech/asr_nepali' | |
return build_path_to_transcript_dict_south_asian_languages_template(root) | |
def build_path_to_transcript_dict_javanese_speech(): | |
root = '/resources/speech/corpora/javanese_speech/asr_javanese' | |
return build_path_to_transcript_dict_south_asian_languages_template(root) | |
def build_path_to_transcript_dict_south_asian_languages_template(root): | |
path_to_transcript = dict() | |
with open(Path(root, 'utt_spk_text.tsv'), 'r', encoding='utf-8') as f: | |
for line in f: | |
utt, spk, text = line.strip().split('\t') | |
dir_tag = utt[:2] | |
path_to_transcript[str(Path(root, 'data', dir_tag, f'{utt}.flac'))] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_african_voices_kenyan_afv(): | |
root = '/resources/speech/corpora/AfricanVoices/afv_enke' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_fon_alf(): | |
root = '/resources/speech/corpora/AfricanVoices/fon_alf' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_hausa_cmv(): | |
main_root = '/resources/speech/corpora/AfricanVoices' | |
path_to_transcript = build_path_to_transcript_dict_african_voices_template(f'{main_root}/hau_cmv_f') | |
path_to_transcript.update(build_path_to_transcript_dict_african_voices_template(f'{main_root}/hau_cmv_m')) | |
return path_to_transcript | |
def build_path_to_transcript_dict_african_voices_ibibio_lst(): | |
root = '/resources/speech/corpora/AfricanVoices/ibb_lst' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_kikuyu_opb(): | |
root = '/resources/speech/corpora/AfricanVoices/kik_opb' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_lingala_opb(): | |
root = '/resources/speech/corpora/AfricanVoices/lin_opb' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_ganda_cmv(): | |
root = '/resources/speech/corpora/AfricanVoices/lug_cmv' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_luo_afv(): | |
root = '/resources/speech/corpora/AfricanVoices/luo_afv' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_luo_opb(): | |
root = '/resources/speech/corpora/AfricanVoices/luo_opb' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_swahili_llsti(): | |
root = '/resources/speech/corpora/AfricanVoices/swa_llsti' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_suba_afv(): | |
root = '/resources/speech/corpora/AfricanVoices/sxb_afv' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_wolof_alf(): | |
root = '/resources/speech/corpora/AfricanVoices/wol_alf' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_yoruba_opb(): | |
root = '/resources/speech/corpora/AfricanVoices/yor_opb' | |
return build_path_to_transcript_dict_african_voices_template(root) | |
def build_path_to_transcript_dict_african_voices_template(root): | |
path_to_transcript = dict() | |
with open(Path(root, 'txt.done.data'), 'r', encoding='utf-8') as f: | |
for line in f: | |
line = line.replace('\\"', "'").split('"') | |
text = line[1] | |
file = line[0].split()[-1] | |
path_to_transcript[str(Path(root, 'wav', f'{file}.wav'))] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_zambezi_voice_nyanja(): | |
root = '/resources/speech/corpora/ZambeziVoice/nyanja/nya' | |
return build_path_to_transcript_dict_zambezi_voice_template(root) | |
def build_path_to_transcript_dict_zambezi_voice_lozi(): | |
root = '/resources/speech/corpora/ZambeziVoice/lozi/loz' | |
return build_path_to_transcript_dict_zambezi_voice_template(root) | |
def build_path_to_transcript_dict_zambezi_voice_tonga(): | |
root = '/resources/speech/corpora/ZambeziVoice/tonga/toi' | |
return build_path_to_transcript_dict_zambezi_voice_template(root) | |
def build_path_to_transcript_dict_zambezi_voice_template(root): | |
path_to_transcript = dict() | |
for split in ['train', 'dev', 'test']: | |
with open(Path(root, f'{split}.tsv'), 'r', encoding='utf-8') as f: | |
reader = DictReader(f, delimiter='\t') | |
for row in reader: | |
path_to_transcript[str(Path(root, 'audio', row['audio_id']))] = row['sentence'].strip() | |
return path_to_transcript | |
def build_path_to_transcript_dict_fleurs_template(root): | |
path_to_transcript = dict() | |
for split in ['train', 'dev', 'test']: | |
with open(Path(root, f'{split}.tsv'), 'r', encoding='utf-8') as f: | |
reader = DictReader(f, delimiter='\t', fieldnames=['id', 'filename', 'transcription_raw', | |
'transcription', 'words', 'speaker', 'gender']) | |
for row in reader: | |
path_to_transcript[str(Path(root, 'audio', split, row['filename']))] = row['transcription_raw'].strip() | |
return path_to_transcript | |
def build_path_to_transcript_dict_fleurs_afrikaans(): | |
root = '/resources/speech/corpora/fleurs/af_za' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_amharic(): | |
root = '/resources/speech/corpora/fleurs/am_et' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_arabic(): | |
root = '/resources/speech/corpora/fleurs/ar_eg' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_assamese(): | |
root = '/resources/speech/corpora/fleurs/as_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_asturian(): | |
root = '/resources/speech/corpora/fleurs/ast_es' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_azerbaijani(): | |
root = '/resources/speech/corpora/fleurs/az_az' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_belarusian(): | |
root = '/resources/speech/corpora/fleurs/be_by' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_bulgarian(): | |
root = '/resources/speech/corpora/fleurs/bg_bg' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_bengali(): | |
root = '/resources/speech/corpora/fleurs/bn_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_bosnian(): | |
root = '/resources/speech/corpora/fleurs/bs_ba' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_catalan(): | |
root = '/resources/speech/corpora/fleurs/ca_es' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_cebuano(): | |
root = '/resources/speech/corpora/fleurs/ceb_ph' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_sorani_kurdish(): | |
root = '/resources/speech/corpora/fleurs/ckb_iq' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_mandarin(): | |
root = '/resources/speech/corpora/fleurs/cmn_hans_cn' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_czech(): | |
root = '/resources/speech/corpora/fleurs/cs_cz' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_welsh(): | |
root = '/resources/speech/corpora/fleurs/cy_gb' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_danish(): | |
root = '/resources/speech/corpora/fleurs/da_dk' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_german(): | |
root = '/resources/speech/corpora/fleurs/de_de' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_greek(): | |
root = '/resources/speech/corpora/fleurs/el_gr' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_english(): | |
root = '/resources/speech/corpora/fleurs/en_us' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_spanish(): | |
root = '/resources/speech/corpora/fleurs/es_419' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_estonian(): | |
root = '/resources/speech/corpora/fleurs/et_ee' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_persian(): | |
root = '/resources/speech/corpora/fleurs/fa_ir' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_fula(): | |
root = '/resources/speech/corpora/fleurs/ff_sn' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_finnish(): | |
root = '/resources/speech/corpora/fleurs/fi_fi' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_filipino(): | |
root = '/resources/speech/corpora/fleurs/fil_ph' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_french(): | |
root = '/resources/speech/corpora/fleurs/fr_fr' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_irish(): | |
root = '/resources/speech/corpora/fleurs/ga_ie' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_galician(): | |
root = '/resources/speech/corpora/fleurs/gl_es' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_gujarati(): | |
root = '/resources/speech/corpora/fleurs/gu_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_hausa(): | |
root = '/resources/speech/corpora/fleurs/ha_ng' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_hebrew(): | |
root = '/resources/speech/corpora/fleurs/he_il' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_hindi(): | |
root = '/resources/speech/corpora/fleurs/hi_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_croatian(): | |
root = '/resources/speech/corpora/fleurs/hr_hr' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_hungarian(): | |
root = '/resources/speech/corpora/fleurs/hu_hu' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_armenian(): | |
root = '/resources/speech/corpora/fleurs/hy_am' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_indonesian(): | |
root = '/resources/speech/corpora/fleurs/id_id' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_igbo(): | |
root = '/resources/speech/corpora/fleurs/ig_ng' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_icelandic(): | |
root = '/resources/speech/corpora/fleurs/is_is' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_italian(): | |
root = '/resources/speech/corpora/fleurs/it_it' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_japanese(): | |
root = '/resources/speech/corpora/fleurs/ja_jp' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_javanese(): | |
root = '/resources/speech/corpora/fleurs/jv_id' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_georgian(): | |
root = '/resources/speech/corpora/fleurs/ka_ge' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_kamba(): | |
root = '/resources/speech/corpora/fleurs/kam_ke' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_kabuverdianu(): | |
root = '/resources/speech/corpora/fleurs/kea_cv' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_kazakh(): | |
root = '/resources/speech/corpora/fleurs/kk_kz' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_khmer(): | |
root = '/resources/speech/corpora/fleurs/km_kh' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_kannada(): | |
root = '/resources/speech/corpora/fleurs/kn_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_korean(): | |
root = '/resources/speech/corpora/fleurs/ko_kr' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_kyrgyz(): | |
root = '/resources/speech/corpora/fleurs/ky_kg' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_luxembourgish(): | |
root = '/resources/speech/corpora/fleurs/lb_lu' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_ganda(): | |
root = '/resources/speech/corpora/fleurs/lg_ug' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_lingala(): | |
root = '/resources/speech/corpora/fleurs/ln_cd' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_lao(): | |
root = '/resources/speech/corpora/fleurs/lo_la' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_lithuanian(): | |
root = '/resources/speech/corpora/fleurs/lt_lt' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_luo(): | |
root = '/resources/speech/corpora/fleurs/luo_ke' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_latvian(): | |
root = '/resources/speech/corpora/fleurs/lv_lv' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_maori(): | |
root = '/resources/speech/corpora/fleurs/mi_nz' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_macedonian(): | |
root = '/resources/speech/corpora/fleurs/mk_mk' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_malayalam(): | |
root = '/resources/speech/corpora/fleurs/ml_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_mongolian(): | |
root = '/resources/speech/corpora/fleurs/mn_mn' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_marathi(): | |
root = '/resources/speech/corpora/fleurs/mr_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_malay(): | |
root = '/resources/speech/corpora/fleurs/ms_my' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_maltese(): | |
root = '/resources/speech/corpora/fleurs/mt_mt' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_burmese(): | |
root = '/resources/speech/corpora/fleurs/my_mm' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_norwegian(): | |
root = '/resources/speech/corpora/fleurs/nb_no' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_nepali(): | |
root = '/resources/speech/corpora/fleurs/ne_np' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_dutch(): | |
root = '/resources/speech/corpora/fleurs/nl_nl' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_northern_sotho(): | |
root = '/resources/speech/corpora/fleurs/nso_za' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_nyanja(): | |
root = '/resources/speech/corpora/fleurs/ny_mw' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_occitan(): | |
root = '/resources/speech/corpora/fleurs/oc_fr' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_oroma(): | |
root = '/resources/speech/corpora/fleurs/om_et' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_oriya(): | |
root = '/resources/speech/corpora/fleurs/or_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_punjabi(): | |
root = '/resources/speech/corpora/fleurs/pa_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_polish(): | |
root = '/resources/speech/corpora/fleurs/pl_pl' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_pashto(): | |
root = '/resources/speech/corpora/fleurs/ps_af' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_portuguese(): | |
root = '/resources/speech/corpora/fleurs/pt_br' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_romanian(): | |
root = '/resources/speech/corpora/fleurs/ro_ro' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_russian(): | |
root = '/resources/speech/corpora/fleurs/ru_ru' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_sindhi(): | |
root = '/resources/speech/corpora/fleurs/sd_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_slovak(): | |
root = '/resources/speech/corpora/fleurs/sk_sk' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_slovenian(): | |
root = '/resources/speech/corpora/fleurs/sl_si' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_shona(): | |
root = '/resources/speech/corpora/fleurs/sn_zw' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_somali(): | |
root = '/resources/speech/corpora/fleurs/so_so' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_serbian(): | |
root = '/resources/speech/corpora/fleurs/sr_rs' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_swedish(): | |
root = '/resources/speech/corpora/fleurs/sv_se' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_swahili(): | |
root = '/resources/speech/corpora/fleurs/sw_ke' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_tamil(): | |
root = '/resources/speech/corpora/fleurs/ta_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_telugu(): | |
root = '/resources/speech/corpora/fleurs/te_in' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_tajik(): | |
root = '/resources/speech/corpora/fleurs/tg_tj' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_thai(): | |
root = '/resources/speech/corpora/fleurs/th_th' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_turkish(): | |
root = '/resources/speech/corpora/fleurs/tr_tr' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_ukrainian(): | |
root = '/resources/speech/corpora/fleurs/uk_ua' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_umbundu(): | |
root = '/resources/speech/corpora/fleurs/umb_ao' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_urdu(): | |
root = '/resources/speech/corpora/fleurs/ur_pk' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_uzbek(): | |
root = '/resources/speech/corpora/fleurs/uz_uz' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_vietnamese(): | |
root = '/resources/speech/corpora/fleurs/vi_vn' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_wolof(): | |
root = '/resources/speech/corpora/fleurs/wo_sn' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_xhosa(): | |
root = '/resources/speech/corpora/fleurs/xh_za' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_yoruba(): | |
root = '/resources/speech/corpora/fleurs/yo_ng' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_cantonese(): | |
root = '/resources/speech/corpora/fleurs/yue_hant_hk' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_fleurs_zulu(): | |
root = '/resources/speech/corpora/fleurs/zu_za' | |
return build_path_to_transcript_dict_fleurs_template(root) | |
def build_path_to_transcript_dict_living_audio_dataset_template(root): | |
path_to_transcript = dict() | |
tree = ET.parse(f'{root}/text.xml') | |
tree_root = tree.getroot() | |
for rec in tree_root.iter('recording_script'): | |
for file in rec.iter('fileid'): | |
path_to_transcript[str(Path(root, '48000_orig', f'{file.get("id")}.wav'))] = file.text.strip() | |
return path_to_transcript | |
def build_path_to_transcript_dict_living_audio_dataset_irish(): | |
root = '/resources/speech/corpora/LivingAudioDataset/ga' | |
return build_path_to_transcript_dict_living_audio_dataset_template(root) | |
def build_path_to_transcript_dict_living_audio_dataset_dutch(): | |
root = '/resources/speech/corpora/LivingAudioDataset/nl' | |
return build_path_to_transcript_dict_living_audio_dataset_template(root) | |
def build_path_to_transcript_dict_living_audio_dataset_russian(): | |
root = '/resources/speech/corpora/LivingAudioDataset/ru' | |
return build_path_to_transcript_dict_living_audio_dataset_template(root) | |
def build_path_to_transcript_dict_romanian_db(): | |
root = '/resources/speech/corpora/RomanianDB' | |
path_to_transcript = dict() | |
for split in ['training', 'testing', 'elena', 'georgiana']: | |
for transcript in Path(root, split, 'text').glob('*.txt'): | |
subset = transcript.stem | |
with open(transcript, 'r', encoding='utf-8') as f: | |
for line in f: | |
fileid = line.strip()[:2] | |
if len(fileid) == 2: | |
fileid = '0' + fileid | |
text = line.strip()[5:] | |
if split == 'elena': | |
path = f'ele_{subset}_{fileid}.wav' | |
elif split == 'georgiana': | |
path = f'geo_{subset}_{fileid}.wav' | |
else: | |
path = f'adr_{subset}_{fileid}.wav' | |
path_to_transcript[str(Path(root, split, 'wav', subset, path))] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_shemo(): | |
root = '/resources/speech/corpora/ShEMO' | |
path_to_transcript = dict() | |
with open('/resources/speech/corpora/ShEMO/shemo.json', 'r', encoding='utf-8') as f: | |
data = json.load(f) | |
for fileid, file_info in data.items(): | |
path = Path(root, file_info['gender'], f'{fileid}.wav') | |
if path.exists(): | |
path_to_transcript[str(path)] = file_info['transcript'] | |
return path_to_transcript | |
def build_path_to_transcript_dict_mslt_template(root, lang='en'): | |
path_to_transcript = dict() | |
for split in Path(root).glob('*'): | |
if split.is_dir(): | |
for audio_file in split.glob('*.wav'): | |
text_file = str(audio_file).replace(f'T0.{lang}.wav', f'T1.{lang}.snt') | |
with open(text_file, 'r', encoding='utf-16') as f: | |
for line in f: | |
text = line.strip() # should have only one line | |
if '<' in text or '[' in text: | |
# ignore all utterances with special parts like [laughter] or <UNIN/> | |
continue | |
path_to_transcript[str(audio_file)] = text | |
break | |
return path_to_transcript | |
def build_path_to_transcript_dict_mslt_english(): | |
root = '/resources/speech/corpora/MSLT/Data/EN' | |
return build_path_to_transcript_dict_mslt_template(root, lang='en') | |
def build_path_to_transcript_dict_mslt_japanese(): | |
root = '/resources/speech/corpora/MSLT/Data/JA' | |
return build_path_to_transcript_dict_mslt_template(root, lang='jp') | |
def build_path_to_transcript_dict_mslt_chinese(): | |
root = '/resources/speech/corpora/MSLT/Data/ZH' | |
return build_path_to_transcript_dict_mslt_template(root, lang='ch') | |
def build_path_to_transcript_dict_rajasthani_hindi_speech(): | |
root = '/resources/speech/corpora/Rajasthani_Hindi_Speech/Hindi-Speech-Data' | |
path_to_transcript = dict() | |
for audio_file in Path(root).glob('*.3gp'): | |
with open(audio_file.with_suffix('.txt'), 'r', encoding='utf-8') as f: | |
for line in f: # should only be one line | |
text = line.strip() | |
path_to_transcript[str(audio_file)] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_cmu_arctic(): | |
root = '/resources/speech/corpora/cmu_arctic' | |
path_to_transcript = dict() | |
for speaker_dir in Path(root).glob('*'): | |
if speaker_dir.is_dir(): | |
with open(Path(speaker_dir, 'etc', 'txt.done.data'), 'r', encoding='utf-8') as f: | |
for line in f: | |
line = line.replace('\\"', "'").split('"') | |
text = line[1] | |
file = line[0].split()[-1] | |
path_to_transcript[str(Path(speaker_dir, 'wav', f'{file}.wav'))] = text | |
return path_to_transcript | |
def build_path_to_transcript_dict_sevil_tatar(): | |
root = '/resources/speech/corpora/sevil_tatar/sevil' | |
path_to_transcript = dict() | |
with open(Path(root, 'metadata.jsonl'), 'r', encoding='utf-8') as f: | |
for line in f: | |
meta = json.loads(line) | |
path_to_transcript[str(Path(root, meta['file']))] = meta['orig_text'].strip().replace('\xad', '') | |
return path_to_transcript | |
def build_path_to_transcript_dict_clartts(): | |
root = '/resources/speech/corpora/ClArTTS' | |
path_to_transcript = dict() | |
with open(Path(root, 'training.txt'), 'r', encoding='utf-16') as f: | |
for line in f: | |
fileid, transcript = line.strip().split('|') | |
path_to_transcript[str(Path(root, 'wav', 'train', f'{fileid}.wav'))] = transcript | |
with open(Path(root, 'validation.txt'), 'r', encoding='utf-16') as f: | |
for line in f: | |
fileid, transcript = line.strip().split('|') | |
path_to_transcript[str(Path(root, 'wav', 'val', f'{fileid}.wav'))] = transcript | |
return path_to_transcript | |
def build_path_to_transcript_dict_snow_mountain_template(root, lang): | |
path_to_transcript = dict() | |
for split in ['train_full', 'val_full', 'test_common']: | |
with open(Path(root, 'experiments', lang, f'{split}.csv'), 'r', encoding='utf-8') as f: | |
reader = DictReader(f, delimiter=',') | |
for row in reader: | |
path = row['path'].replace('data/', f'{root}/') | |
path_to_transcript[path] = row['sentence'].strip() | |
return path_to_transcript | |
def build_path_to_transcript_dict_snow_mountain_bhadrawahi(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'bhadrawahi' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_bilaspuri(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'bilaspuri' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_dogri(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'dogri' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_gaddi(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'gaddi' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_haryanvi(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'haryanvi' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_hindi(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'hindi' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_kangri(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'kangri' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_kannada(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'kannada' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_kulvi(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'kulvi' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_kulvi_outer_seraji(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'kulvi_outer_seraji' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_malayalam(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'malayalam' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_mandeali(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'mandeali' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_pahari_mahasui(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'pahari_mahasui' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_tamil(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'tamil' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_snow_mountain_telugu(): | |
root = '/resources/speech/corpora/snow_mountain' | |
language = 'telugu' | |
return build_path_to_transcript_dict_snow_mountain_template(root, language) | |
def build_path_to_transcript_dict_ukrainian_lada(): | |
root = '/resources/speech/corpora/ukrainian_lada/dataset_lada/accept' | |
path_to_transcript = dict() | |
with open(Path(root, 'metadata.jsonl'), 'r', encoding='utf-8') as f: | |
for line in f: | |
meta = json.loads(line) | |
path_to_transcript[str(Path(root, meta['file']).with_suffix('.wav'))] = meta['orig_text'].strip().replace('\xad', '') | |
return path_to_transcript | |
def build_path_to_transcript_dict_m_ailabs_template(root): | |
path_to_transcript = dict() | |
for gender_dir in Path(root).glob('*'): | |
if not gender_dir.is_dir(): | |
continue | |
for speaker_dir in gender_dir.glob('*'): | |
if not speaker_dir.is_dir(): | |
continue | |
if (speaker_dir / 'wavs').exists(): | |
with open(Path(speaker_dir, 'metadata.csv'), 'r', encoding='utf-8') as f: | |
for line in f: | |
fileid, text, text_norm = line.strip().split('|') | |
path = Path(speaker_dir, 'wavs', f'{fileid}.wav') | |
if path.exists(): | |
path_to_transcript[str(path)] = text_norm | |
else: | |
for session_dir in speaker_dir.glob('*'): | |
if not session_dir.is_dir(): | |
continue | |
with open(Path(session_dir, 'metadata.csv'), 'r', encoding='utf-8') as f: | |
for line in f: | |
fileid, text, text_norm = line.strip().split('|') | |
path = Path(session_dir, 'wavs', f'{fileid}.wav') | |
if path.exists(): | |
path_to_transcript[str(path)] = text_norm | |
return path_to_transcript | |
def build_path_to_transcript_dict_m_ailabs_german(): | |
root = '/resources/speech/corpora/m-ailabs-speech/de_DE' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_uk_english(): | |
root = '/resources/speech/corpora/m-ailabs-speech/en_UK' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_us_english(): | |
root = '/resources/speech/corpora/m-ailabs-speech/en_US' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_spanish(): | |
root = '/resources/speech/corpora/m-ailabs-speech/es_ES' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_french(): | |
root = '/resources/speech/corpora/m-ailabs-speech/fr_FR' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_italian(): | |
root = '/resources/speech/corpora/m-ailabs-speech/it_IT' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_polish(): | |
root = '/resources/speech/corpora/m-ailabs-speech/pl_PL' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_russian(): | |
root = '/resources/speech/corpora/m-ailabs-speech/ru_RU' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_m_ailabs_ukrainian(): | |
root = '/resources/speech/corpora/m-ailabs-speech/uk_UK' | |
return build_path_to_transcript_dict_m_ailabs_template(root) | |
def build_path_to_transcript_dict_cml_tts_template(root): | |
path_to_transcript = dict() | |
for split in ['train', 'dev', 'test']: | |
with open(Path(root, f'{split}.csv'), 'r', encoding='utf-8') as f: | |
reader = DictReader(f, delimiter='|') | |
for row in reader: | |
path_to_transcript[str(Path(root, row['wav_filename']))] = row['transcript'].strip() | |
return path_to_transcript | |
def build_path_to_transcript_dict_cml_tts_dutch(): | |
root = '/resources/speech/corpora/cml_tts/cml_tts_dataset_dutch_v0.1' | |
return build_path_to_transcript_dict_cml_tts_template(root) | |
def build_path_to_transcript_dict_cml_tts_french(): | |
root = '/resources/speech/corpora/cml_tts/cml_tts_dataset_french_v0.1' | |
return build_path_to_transcript_dict_cml_tts_template(root) | |
def build_path_to_transcript_dict_cml_tts_german(): | |
root = '/resources/speech/corpora/cml_tts/cml_tts_dataset_german_v0.1' | |
return build_path_to_transcript_dict_cml_tts_template(root) | |
def build_path_to_transcript_dict_cml_tts_italian(): | |
root = '/resources/speech/corpora/cml_tts/cml_tts_dataset_italian_v0.1' | |
return build_path_to_transcript_dict_cml_tts_template(root) | |
def build_path_to_transcript_dict_cml_tts_polish(): | |
root = '/resources/speech/corpora/cml_tts/cml_tts_dataset_polish_v0.1' | |
return build_path_to_transcript_dict_cml_tts_template(root) | |
def build_path_to_transcript_dict_cml_tts_portuguese(): | |
root = '/resources/speech/corpora/cml_tts/cml_tts_dataset_portuguese_v0.1' | |
return build_path_to_transcript_dict_cml_tts_template(root) | |
def build_path_to_transcript_dict_cml_tts_spanish(): | |
root = '/resources/speech/corpora/cml_tts/cml_tts_dataset_spanish_v0.1' | |
return build_path_to_transcript_dict_cml_tts_template(root) | |
def build_path_to_transcript_dict_mms_template(lang, root='/resources/speech/corpora/mms_synthesized_bible_speech'): | |
path_to_transcript = dict() | |
i = 0 | |
with open(Path(root, 'bible_texts', f'{lang}.txt'), 'r', encoding='utf-8') as f: | |
for line in f: | |
path = Path(root, 'bible_audios', lang, f'{i}.wav') | |
if path.exists(): | |
path_to_transcript[str(path)] = line.strip() | |
i += 1 | |
return path_to_transcript | |
if __name__ == '__main__': | |
pass | |