WaveRNN 项目介绍
WaveRNN 是一个由 DeepMind 提出的神经音频合成模型,项目托管于 GitHub,通过 Pytorch 实现。该技术的目标是通过高效的神经网络框架为语音合成提供支持。
项目的背景与更新
此项目基于 DeepMind 的研究论文 Efficient Neural Audio Synthesis。更新信息指出,Vanilla Tacotron One TTS 系统已经实现,后续会带来更多内容。
安装指南
要开始使用 WaveRNN 项目,首先需要满足以下环境需求:
- Python 版本不低于 3.6
- 安装支持 CUDA 的 Pytorch 1,具体可以参考 Pytorch 官网
然后,通过 pip
下载所需的其他包:
pip install -r requirements.txt
快速上手
如果希望快速体验文本到语音的功能,可以运行以下命令:
python quick_start.py
该命令会根据默认的 sentences.txt
文件生成语音文件,并保存在名为 quick_start
的文件夹中,用户可以直接播放生成的音频文件,并查看关注图(attention plots)。对自定义文本进行语音合成也很简单,只需使用以下命令:
python quick_start.py -u --input_text "如果我运行这个命令,会发生什么?"
“-u” 参数可以带来更高的音频质量。
自行训练模型
要训练自己的模型,需要先下载 LJSpeech 数据集。然后,编辑 hparams.py 文件,将 wav_path 更新为数据集的路径,最后运行:
python preprocess.py
以下是推荐的训练步骤:
-
使用命令训练 Tacotron:
python train_tacotron.py
-
在任何时刻,可以通过如下命令生成 GTA 数据集,即使 Tacotron 尚未完成训练:
python train_tacotron.py --force_gta
-
使用命令训练 WaveRNN:
python train_wavernn.py --gta
注:如果不需要 TTS 功能,可以省略
--gta
。 -
使用两个模型生成语音句子,可以采用以下命令:
python gen_tacotron.py wavernn
自定义生成内容则使用:
python gen_tacotron.py --input_text "这可以是任何你想要的内容" wavernn
需要注意,所有脚本都可以加上 --help
来查看可用选项和参数。
示例与预训练模型
项目提供了部分示例语音,可以在此处找到。目前提供两个预训练模型,均使用 LJSpeech 数据集:
- WaveRNN(输出为后验的混合 logistic 模型),训练达到 80 万步
- Tacotron,训练达到 18 万步
参考与致谢
WaveRNN 项目的实现参考了多项研究,包括: