项目简介
Mandarin-TTS 项目旨在创建一个模块化的语音合成框架,以支持快速的研究与产品开发。在项目中,所有模块都可以通过 yaml 文件进行配置,同时支持和可配置的功能包括:
- 说话人嵌入、韵律嵌入、以及多流文本嵌入。
- 支持多种声码器(如 VocGAN、hifi-GAN、waveglow、melGAN),简化不同声码器之间的比较。
- 支持时长、音调和能量变化预测,并能轻松添加其他变体。
- 此外,此项目还有更多功能正在开发中。
本项目欢迎各界贡献。
音频示例
可以通过以下示例链接查看音频演示:演示视频。此外,项目的 GitHub 页面上也提供了一些音频样本,数据集包括 biaobei 和 aishell3。
快速入门
安装指南
用户可以通过以下命令克隆项目并安装:
git clone https://github.com/ranchlai/mandarin-tts.git
cd mandarin-tts
git submodule update --force --recursive --init --remote
pip install -e .
模型训练
提供了两个训练示例:biaobei 和 aishell3。要训练自己的模型,可以通过以下步骤实现:
- 从已有示例中复制一份配置。
- 使用 wav2mel.py 准备好梅尔频谱特征。
- 准备训练所需的 scp 文件,并确保配置文件 config.yaml 中的参数正确。
模型训练命令如下:
cd examples/aishell3
python ../../mtts/train.py -c config.yaml -d cuda
对于 biaobei 数据集,配置流程相似,但不包含说话人嵌入,可以添加韵律嵌入。
音频合成
使用预训练检查点
项目提供了两个预训练示例供用户参考,具体信息如下:
支持的声码器
声码器负责将梅尔频谱转换为波形。项目支持以下声码器:
用户需手动下载安装检查点并在配置文件中设置正确路径。
准备输入文本
文本准备步骤如下:
cd examples/aishell3/
python ../../mtts/text/gp2py.py -t "为适应新的网络传播方式和读者阅读习惯"
然后将输出文本复制到 input.txt,并为其定义名称和说话人 ID。
合成音频
准备好检查点和文本后,可以通过以下命令开始合成音频:
python ../../mtts/synthesize.py -d cuda --c config.yaml --checkpoint ./checkpoints/checkpoint_1240000.pth.tar -i input.txt
输出的音频文件可以在 outputs 目录中找到。