数据集:
cdminix/libritts-aligned
同时还有一个新的libritts-r数据集的相同数据集。标识为 cdminix/libritts-r-aligned
该数据集会在您的计算机上下载LibriTTS并对其进行预处理,使用 montreal forced aligner 创建对齐。在使用该数据集之前,您需要先运行 pip install alignments phones。第一次运行可能需要一两个小时,但后续运行将非常快速。
{ '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)。可以使用hop_length、sample_rate和window_length参数来更改这些属性到LibriTTSAlign。
该数据集附带一个数据整合器,可以用于创建训练数据的批次。可以使用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时,请引用以下论文:
使用度量标准时,请引用以下论文(我们的):