Glow-TTS 项目介绍
项目背景
Glow-TTS 是一个旨在提升文本转语音(TTS)技术的新项目。当前的 TTS 技术如 FastSpeech 和 ParaNet,能够并行生成 mel 频谱,但在训练时通常需要依赖自回归模型提供的外部对齐。这给模型的训练增加了复杂性和时间成本。为解决这个问题,研究团队提出了不依赖外部对齐的 Glow-TTS 模型。
Glow-TTS 的创新
Glow-TTS 是一种基于流(flow-based)的生成模型,结合了流(flow)和动态规划的特点。该模型通过自身的能力,进行文本与语音潜在表示的单调对齐。通过这种方法,Glow-TTS 实现了以下几个创新:
-
无需外部对齐器:模型能够自主搜索文本与语音之间的最可能的单调对齐路径,无需依赖额外的对齐工具。
-
快速高效:相较于经典的自回归模型 Tacotron 2,Glow-TTS 在语音合成速度上实现了数量级的提升,而语音质量保持相当。
-
支持长语句生成:对单调对齐方式的加强,使得模型在生成长句子时表现稳定优异。
-
多样性和可控性:运用生成流(generative flows)使得生成的语音不仅快速,还具有可控性和多样性。
项目成果
Glow-TTS 不仅在合成速度和音质上具有优势,模型还可以扩展到多说话人场景。用户可以在项目的在线演示页面听到模型生成的音频示例。此外,团队还提供了一个预训练模型以供下载和使用。
最新更新
尽管在最初的论文中未提及,最近的更新包含两项改进:
-
使用 HiFi-GAN 作为声码器来减少噪音。
-
在每两个输入标记之间插入空白标记,提升发音质量。
这些调整通过优化声码器和输入序列,提高了语音质量。更多细节及实例请参考项目的更新说明。
使用环境与前置条件
-
环境要求:Glow-TTS 需要以下软件环境:
- Python 3.6.9
- PyTorch 1.2.0
- Cython 0.29.12
- Librosa 0.7.1
- Numpy 1.16.4
- Scipy 1.3.0
-
混合精度训练:使用 apex 提升训练性能。
-
数据集准备:需要下载并解压 LJ Speech 数据集并进行相应的文件链接和子模块的初始化。
训练与推理示例
示例代码和配置文件已经在项目中提供,可通过简单指令进行训练和推理:
- 训练命令:
sh train_ddi.sh configs/base.json base
- 推理文件:inference.ipynb
鸣谢
Glow-TTS 的实现借鉴了诸多开源项目的成果,包括 WaveGlow、Tensor2Tensor 和 Mellotron。
通过这些合作者和项目的启发,Glow-TTS 为文本转语音技术带来了新的可能性,期待更多用户体验和反馈。