WaveRNN
(更新:Vanilla Tacotron One TTS 系统刚刚实现 - 更多即将到来!)
这是Deepmind的WaveRNN模型的Pytorch实现,来自 高效神经音频合成
安装
确保你有:
- Python >= 3.6
- 带CUDA的Pytorch 1
然后用pip安装其余的依赖:
pip install -r requirements.txt
如何使用
快速开始
如果你想立即使用TTS功能,你可以简单地使用:
python quick_start.py
这将生成默认sentences.txt文件中的所有内容,并输出到一个新的'quick_start'文件夹中,你可以在那里播放wav文件并查看注意力图
你也可以使用该脚本生成自定义TTS句子,并/或使用'-u'生成未批处理的(更好的音频质量):
python quick_start.py -u --input_text "如果我运行这个命令会发生什么?"
训练你自己的模型
下载 LJSpeech 数据集。
编辑 hparams.py,指向你的数据集的 wav_path 然后运行:
python preprocess.py
或者使用 preprocess.py --path 直接指向数据集
这是我对运行顺序的建议:
1 - 训练Tacotron:
python train_tacotron.py
2 - 你可以让它完成训练,或者在任何时候使用:
python train_tacotron.py --force_gta
这将强制Tacotron创建一个GTA数据集,即使它尚未完成训练。
3 - 训练WaveRNN:
python train_wavernn.py --gta
注意:如果你对TTS不感兴趣,可以始终只运行 train_wavernn.py 不带 --gta。
4 - 使用两个模型生成句子:
python gen_tacotron.py wavernn
这将生成默认句子。如果你想生成自定义句子,可以使用
python gen_tacotron.py --input_text "这可以是你想要的任何内容" wavernn
最后,你总是可以在这些脚本中的任何一个上使用 --help 来查看有哪些可用选项 :)
示例
预训练模型
目前有两个预训练模型可在/pretrained/ 文件夹中找到:
两者都在LJSpeech上训练过
- WaveRNN(逻辑输出混合)训练到80万步
- Tacotron训练到18万步