YourTTS: 面向所有人的零样本多说话人TTS和零样本语音转换
在我们最近的论文中,我们提出了YourTTS模型。YourTTS将多语言方法的力量带入了零样本多说话人TTS任务。我们的方法基于VITS模型,并在零样本多说话人和多语言训练方面进行了若干创新性修改。我们在零样本多说话人TTS方面取得了最先进的成果(SOTA),并在VCTK数据集的零样本语音转换方面取得了与SOTA相当的结果。此外,我们的方法在单说话人数据集的目标语言中也达到了有希望的结果,这为低资源语言的零样本多说话人TTS和零样本语音转换系统开辟了可能性。最后,YourTTS模型可以通过少于1分钟的语音进行微调,并在语音相似度和合理质量方面达到最先进的成果。这对于使具有与训练时看到的非常不同的语音或录音特征的说话人进行合成是非常重要的。
勘误
在YourTTS论文的第2节中,我们定义了语者一致性损失(SCL)函数。此外,我们在第3节和第4节的4个微调实验中使用了该损失函数(EXP. 1 + SCL,EXP. 2 + SCL,EXP. 3 + SCL,和EXP. 4 + SCL)。然而,由于一个实现错误,在训练过程中该损失函数的梯度没有为模型传播。这意味着使用此损失的微调实验相当于在没有语者一致性损失的情况下训练更多步骤。这个错误是由Tomáš Nekvinda发现的,并在Coqui TTS仓库的第2348号问题中报告的。该错误已在Coqui TTS仓库的第2364号拉取请求中修复。目前,该修复适用于Coqui TTS v0.12.0或更高版本。我们感谢Tomáš Nekvinda发现并报告了这个错误。
生产版本
试试我们最新最好的全频带英语版本模型:https://coqui.ai/
音频样本
访问我们网站获取音频样本。
实现
我们所有的实验都在Coqui TTS仓库中实现。
Colab演示
检查点
所有发布的检查点均根据CC BY-NC-ND 4.0许可证发布
模型 | URL |
---|---|
语者编码器 | link |
实验1. YourTTS-EN(VCTK) | link |
实验1. YourTTS-EN(VCTK) + SCL | link |
实验2. YourTTS-EN(VCTK)-PT | link |
实验2. YourTTS-EN(VCTK)-PT + SCL | link |
实验3. YourTTS-EN(VCTK)-PT-FR | link |
实验3. YourTTS-EN(VCTK)-PT-FR SCL | link |
实验4. YourTTS-EN(VCTK+LibriTTS)-PT-FR SCL | link |
Coqui TTS 发布的模型
TTS
要使用🐸 TTS v0.7.0发布的YourTTS模型进行文本到语音转换,请使用以下命令:
tts --text "This is an example!" --model_name tts_models/multilingual/multi-dataset/your_tts --speaker_wav target_speaker_wav.wav --language_idx "en"
其中“target_speaker_wav.wav”是目标说话人的音频样本。
语音转换
要使用🐸 TTS发布的YourTTS模型进行语音转换,请使用以下命令:
tts --model_name tts_models/multilingual/multi-dataset/your_tts --speaker_wav target_speaker_wav.wav --reference_wav target_content_wav.wav --language_idx "en"
其中“target_content_wav.wav”是要转换为“target_speaker_wav.wav”说话人语音的参考音频文件。
结果复现性
为了确保复现性,我们将生成MOS的音频提供在这里。此外,我们提供了每个音频的MOS 这里。
要重新生成我们的MOS结果,请按照这里的指示操作。要预测测试句子并生成SECS,请使用这里提供的Jupyter Notebooks。
测试说话人:
LibriTTS(测试干净版):1188, 1995, 260, 1284, 2300, 237, 908, 1580, 121 和 1089
VCTK: p261, p225, p294, p347, p238, p234, p248, p335, p245, p326 和 p302
MLS葡萄牙语:12710, 5677, 12249, 12287, 9351, 11995, 7925, 3050, 4367 和 1306
可重复性
为了完全复现实验1,我们在Coqui TTS中提供了一个配方。这个配方下载、重新采样、提取说话人嵌入并训练模型,不需要对代码进行任何修改。
该文章是使用我的Coqui TTS分叉在multilingual-torchaudio-SE分支上制作的。
如果你想使用最新版本的Coqui TTS,你可以从Coqui发布的模型获取config.json。
有了config.json后,你首先需要将“datasets”配置更改为你的数据集。使用已调整“datasets”配置的config.json,你需要使用我们的发布的语者编码器提取语者嵌入,使用以下命令:
python3 TTS/bin/compute_embeddings.py --model_path model_se.pth.tar --config_path config_se.json --config_dataset_path config.json --output_path d_vector_file.json
“model_se.pth.tar”和“config_se.json”可以在Coqui发布的模型中找到,而config.json则是你设置路径的配置文件。
你应该更改的其他参数在“config.json”中:
- "d_vector_file":现在你有了语者嵌入文件(d_vector_file.json),调整config设置中的"d_vector_file"参数为语者嵌入文件的路径。
- "output_path":保存检查点和训练日志的路径
- "speaker_encoder_config_path":用于计算语者余弦相似度损失/语者一致性损失的语者编码器配置(设置为config_se.json路径)
- "speaker_encoder_model_path":用于计算语者余弦相似度损失/语者一致性损失的语者编码器检查点(设置为config_se.json路径)
现在你已经配置好config.json来复现训练,你可以使用以下命令(如果你愿意,你可以使用--restore_path {checkpoint_path}从检查点进行迁移学习,加速训练):
python3 TTS/bin/train_tts.py --config_path config.json
引用
预印本
@ARTICLE{2021arXiv211202418C,
author = {{Casanova}, Edresson and {Weber}, Julian and {Shulby}, Christopher and {Junior}, Arnaldo Candido and {G{\"o}lge}, Eren and {Antonelli Ponti}, Moacir},
title = "{YourTTS: Towards Zero-Shot Multi-Speaker TTS and Zero-Shot Voice Conversion for everyone}",
journal = {arXiv e-prints},
keywords = {Computer Science - Sound, Computer Science - Computation and Language, Electrical Engineering and Systems Science - Audio and Speech Processing},
year = 2021,
month = dec,
eid = {arXiv:2112.02418},
pages = {arXiv:2112.02418},
archivePrefix = {arXiv},
eprint = {2112.02418},
primaryClass = {cs.SD},
adsurl = {https://ui.adsabs.harvard.edu/abs/2021arXiv211202418C},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
发表的ICML论文
@inproceedings{casanova2022yourtts,
title={Yourtts: Towards zero-shot multi-speaker tts and zero-shot voice conversion for everyone},
author={Casanova, Edresson and Weber, Julian and Shulby, Christopher D and Junior, Arnaldo Candido and G{\"o}lge, Eren and Ponti, Moacir A},
booktitle={International Conference on Machine Learning},
pages={2709--2720},
year={2022},
organization={PMLR}
}