MSMC-TTS: 多阶段多码本文本转语音系统
论文《A Multi-Stage Multi-Codebook VQ-VAE Approach to High-Performance Neural TTS》、《Towards High-Quality Neural TTS for Low-Resource Languages by Learning Compact Representation》和《QS-TTS: towards semi-supervised text-to-speech synthesis via vector-quantized self-supervised speech representation learning》的官方实现。
最新的MSMC-TTS(MSMC-TTS-v2)通过结合MSMC-VQ-VAE和HifiGAN的MSMC-VQ-GAN自编码器进行了优化。多阶段预测器仍然作为声学模型用于预测TTS合成的MSMCRs。
新闻
[2024.04.10](进行中)QS-TTS的实现可在examples/csmsc/configs获取
[2022.10.20] 我们发布了基于MSMC-VQ-GAN的MSMC-TTS最新版本(MSMC-TTS-v2)。请参阅我们的最新论文《Towards High-Quality Neural TTS for Low-Resource Languages by Learning Compact Representation》
[2022.10.18] 我们将在此仓库中发布MSMC-TTS的所有版本代码。欢迎对此工作感兴趣的人加入我们,探索更多用于语音合成的有用语音表示。
[2022.9.22] 《A Multi-Stage Multi-Codebook VQ-VAE Approach to High-Performance Neural TTS》在INTERSPEECH 2022发表。
使用方法
# 安装
pip -r requirements.txt
# 训练(以CSMSC为例,请参考CSMSC示例准备训练数据)
python train.py -c examples/csmsc/configs/msmc_vq_gan.yaml
python train.py -c examples/csmsc/configs/msmc_vq_gan_am.yaml
# 多GPU训练
python train_dist.py -c examples/csmsc/configs/msmc_vq_gan.yaml
python train_dist.py -c examples/csmsc/configs/msmc_vq_gan_am.yaml
# 测试 -- 分析-合成
python infer.py -c examples/csmsc/configs/msmc_vq_gan.yaml -m examples/csmsc/checkpoints/msmc_vq_gan/model_800000 -t examples/csmsc/data/test_ae.yaml -o analysis_synthesis
# 测试 -- TTS合成
python infer.py -c examples/csmsc/configs/msmc_vq_gan_am.yaml -m examples/csmsc/checkpoints/msmc_vq_gan_am/model_200000 -t examples/csmsc/data/test_tts.yaml -o tts
技巧
帮助您更好地训练模型!
MSMC-VQ-GAN
- 注意表示的紧凑性。对于单说话人标准TTS,可以尝试2-4个头,每个头可能有64-256个码字。
- 如果批量大小太小,请使用更少的码字,否则批次的帧大小不足以支持动态码本更新。
- 如果发现MSMC-VQ-GAN中的某些阶段没有学习到任何东西,可以更改编码器损失的权重。
多阶段预测器
- 三元组损失可以提高TTS的表现力,但也可能降低平滑度。可以尝试不同的三元组损失权重,如0、0.01、0.1、1,以找到最平衡的性能。
- 对于低资源数据集,请使用较小的模型以避免过拟合。提前停止也是一个有用的技巧。
引用
@inproceedings{guo2022msmc,
title={A Multi-Stage Multi-Codebook VQ-VAE Approach to High-Performance Neural TTS},
author={Guo, Haohan and Xie, Fenglong and Soong, Frank K and Wu, Xixin and Meng, Helen},
booktitle={Proc. INTERSPEECH},
year={2022}
}
致谢
- FastSpeech实现:https://github.com/NVIDIA/NeMo
- HifiGAN实现:https://github.com/jik876/hifi-gan
- UnivNet实现:https://github.com/mindslab-ai/univnet
- VITS实现:https://github.com/jaywalnut310/vits