描述
WaveGlow 是一个用于语音合成的基于流的生成网络,由 NVIDIA 研究人员 Ryan Prenger、Rafael Valle 和 Bryan Catanzaro 开发。它结合了 Glow 和 WaveNet 的思想,从梅尔谱图生成高质量的语音音频,无需早期声码器依赖的自回归解码步骤。
阅读更多
该网络作为一个单一模型实现,使用单一成本函数进行训练:最大化训练数据的似然性。根据附带的论文,这使得训练比多阶段方法更简单、更稳定,而 PyTorch 实现报告在 NVIDIA V100 GPU 上以 1200 kHz 的速度生成音频,其平均意见分数与当时最佳的公开 WaveNet 实现相当。
该代码库提供了重现或基于此工作的所有必要内容。预训练的 WaveGlow 检查点和匹配的梅尔谱图文件可用于立即运行推理,使用 inference.py 脚本从梅尔谱图文件列表合成音频。要训练新模型,代码库包括围绕 LJ Speech 数据集格式构建的脚本:文件列表被拆分为训练集和测试集,梅尔谱图通过 mel2samp.py 生成,训练通过 train.py 运行,distributed.py 可用于多 GPU 设置。可以通过模型的配置文件启用混合精度(fp16)训练。一个单独的转换脚本 convert_model.py 更新在当前架构之前保存的旧检查点,以便与之配合使用,因为当前版本将残差和跳过连接融合到网络中。
设置从克隆代码库和初始化其 git 子模块开始,安装 Python 依赖项,并安装 NVIDIA 的 Apex 库,训练和推理代码依赖于此。由于该项目是研究发布而非打包应用程序,因此使用它意味着直接使用这些命令行脚本,而不是图形界面。
WaveGlow 旨在为希望运行推理、在新语音数据上重新训练或与其他生成方法(如 WaveNet)进行比较的语音合成研究人员和工程师提供参考声码器实现。由模型生成的音频样本可在项目链接的网站上获得,附带的论文记录了用于判断音频质量的平均意见分数评估。
- 类别文字转语音
- 定价模式开源
- 部署云端, 自托管
- 平台NVIDIA Blackwell, DRIVE, Jetson, RTX
WaveGlow的核心功能
直接从梅尔谱图生成语音音频,无需自回归解码步骤
使用单一最大似然成本函数进行训练
提供预训练的 WaveGlow 检查点和匹配的梅尔谱图数据以进行推理
包括在 LJ Speech 数据集格式上训练新模型的脚本
通过 NCCL 支持多 GPU 分布式训练
支持混合精度(fp16)训练和推理
包括用于将旧检查点更新到当前架构的转换脚本
根据附带的论文报告在 NVIDIA V100 GPU 上以 1200 kHz 生成音频
WaveGlow入门
克隆代码库:克隆 NVIDIA/waveglow 并初始化其子模块。
安装依赖项:安装 Python 依赖项和 Apex 库。
获取数据:下载预训练的 WaveGlow 模型和示例梅尔谱图,或 LJ Speech 数据集以训练自己的模型。
运行推理:使用 inference.py 从梅尔谱图生成音频。
训练(可选):在自己的数据集上运行 train.py,或在多 GPU 上运行 distributed.py。
评估输出:比较生成的音频质量并调整设置,如 fp16 或 sigma 参数。
WaveGlow的使用案例
- 文本到语音声码器
- 声码器研究
- 自定义语音训练





