数据集:
cdminix/libritts-r-aligned
这个数据集与 cdminix/libritts-aligned 完全相同,只是使用了新发布的LibriTTS-R语料库。请引用 Y. Koizumi, et al., "LibriTTS-R: Restoration of a Large-Scale Multi-Speaker TTS Corpus", Interspeech 2023 。
在使用此数据集下载LibriTTS-R时,请确保您同意 https://www.openslr.org 上的条款。
此数据集下载LibriTTS-R并在您的机器上对其进行预处理,使用 montreal forced aligner 进行对齐。使用此数据集之前,您需要运行pip install alignments phones。首次运行可能需要一到两个小时,但后续运行速度将非常快。
注意:此语料库需要alignments的版本>=0.0.15。
{ 'id': '100_122655_000073_000002.wav', 'speaker': '100', 'text': 'the day after, diana and mary quitted it for distant b.', 'start': 0.0, 'end': 3.6500000953674316, 'phones': ['[SILENCE]', 'ð', 'ʌ', '[SILENCE]', 'd', 'eɪ', '[SILENCE]', 'æ', 'f', 't', 'ɜ˞', '[COMMA]', 'd', 'aɪ', 'æ', 'n', 'ʌ', '[SILENCE]', 'æ', 'n', 'd', '[SILENCE]', 'm', 'ɛ', 'ɹ', 'i', '[SILENCE]', 'k', 'w', 'ɪ', 't', 'ɪ', 'd', '[SILENCE]', 'ɪ', 't', '[SILENCE]', 'f', 'ɜ˞', '[SILENCE]', 'd', 'ɪ', 's', 't', 'ʌ', 'n', 't', '[SILENCE]', 'b', 'i', '[FULL STOP]'], 'phone_durations': [5, 2, 4, 0, 5, 13, 0, 16, 7, 5, 20, 2, 6, 9, 15, 4, 2, 0, 11, 3, 5, 0, 3, 8, 9, 8, 0, 13, 3, 5, 3, 6, 4, 0, 8, 5, 0, 9, 5, 0, 7, 5, 6, 7, 4, 5, 10, 0, 3, 35, 9], 'audio': '/dev/shm/metts/train-clean-360-alignments/100/100_122655_000073_000002.wav' }
手机是IPA手机,手机持续时间以帧为单位(假设跳跃长度为256,采样率为22050,窗口长度为1024)。可以使用LibriTTSAlign的hop_length、sample_rate和window_length参数来更改这些属性。
该数据集附带了一个数据整理器,用于创建训练数据的批次。可以使用pip install speech-collator( MiniXC/speech-collator )进行安装,并按照以下方式使用:
import json from datasets import load_dataset from speech_collator import SpeechCollator from torch.utils.data import DataLoader dataset = load_dataset('cdminix/libritts-aligned', split="train") speaker2ixd = json.load(open("speaker2idx.json")) phone2ixd = json.load(open("phone2idx.json")) collator = SpeechCollator( speaker2ixd=speaker2idx, phone2ixd=phone2idx , ) dataloader = DataLoader(dataset, collate_fn=collator.collate_fn, batch_size=8)
您可以从 here 下载speaker2idx.json和phone2idx.json文件,也可以使用以下代码自己创建它们:
import json from datasets import load_dataset from speech_collator import SpeechCollator, create_speaker2idx, create_phone2idx dataset = load_dataset("cdminix/libritts-aligned", split="train") # Create speaker2idx and phone2idx speaker2idx = create_speaker2idx(dataset, unk_idx=0) phone2idx = create_phone2idx(dataset, unk_idx=0) # save to json with open("speaker2idx.json", "w") as f: json.dump(speaker2idx, f) with open("phone2idx.json", "w") as f: json.dump(phone2idx, f)
使用speech-collator时,您还可以使用measures参数指定要使用的测量值。以下示例会实时提取音高和能量。
import json from torch.utils.data import DataLoader from datasets import load_dataset from speech_collator import SpeechCollator, create_speaker2idx, create_phone2idx from speech_collator.measures import PitchMeasure, EnergyMeasure dataset = load_dataset("cdminix/libritts-aligned", split="train") speaker2idx = json.load(open("data/speaker2idx.json")) phone2idx = json.load(open("data/phone2idx.json")) # Create SpeechCollator speech_collator = SpeechCollator( speaker2idx=speaker2idx, phone2idx=phone2idx, measures=[PitchMeasure(), EnergyMeasure()], return_keys=["measures"] ) # Create DataLoader dataloader = DataLoader( dataset, batch_size=8, collate_fn=speech_collator.collate_fn, )
即将推出:关于如何使用这些测量值的详细文档,请查看 MiniXC/speech-collator 。
此数据集具有以下拆分:
可以设置几个环境变量:
在使用LibriTTS-R时,请引用以下论文:
在使用测量值时,请引用以下论文(ours):