flowtron

GitHub
897 174 较难 1 次阅读 1周前Apache-2.0音频
AI 解读 由 AI 自动生成,仅供参考

Flowtron 是由 NVIDIA 开源的一款基于自回归流(Autoregressive Flow)的文本转语音合成模型。它旨在解决传统语音合成中难以兼顾高音质与多样化表达的问题,能够生成自然流畅且富有表现力的梅尔频谱图。

与传统方法不同,Flowtron 通过学习数据到潜在空间的可逆映射,让用户能够精细控制语音的多种特征,包括音高、语调、语速、节奏甚至口音。这意味着它不仅支持高质量的语音生成,还能实现说话人之间的风格迁移,甚至在训练未见过的说话人身上应用特定风格。此外,其训练过程通过最大化数据似然度进行优化,使得模型训练更加简单稳定,且在主观听力测试中达到了业界领先的水平。

Flowtron 特别适合人工智能研究人员、语音技术开发者以及对语音合成有深度定制需求的专业人士使用。如果你希望探索语音生成的可控性,或需要构建支持多风格、少样本学习的语音系统,Flowtron 提供了一个强大且灵活的技术底座。不过,由于项目依赖 NVIDIA GPU 及 CUDA 环境,并涉及较为复杂的训练配置,它可能对普通非技术用户存在一定的使用门槛。

使用场景

一家游戏开发团队正在为一款多角色剧情互动游戏制作动态语音系统,需要让不同 NPC 拥有独特且可变的说话风格。

没有 flowtron 时

  • 录制海量真人配音成本高昂,且一旦剧本微调就需要重新进棚录音,迭代周期极长。
  • 传统 TTS 模型生成的语音语调单一机械,难以表现角色愤怒、悲伤或急促等细腻的情感变化。
  • 想要实现“风格迁移”(如让新角色模仿老角色的口音)几乎不可能,通常需要单独训练多个专用模型。
  • 无法在推理阶段实时调整语速、音高或停顿节奏,导致语音与游戏画面动作难以精准同步。

使用 flowtron 后

  • 利用少量样本即可微调出高质量的角色语音,剧本变更时只需修改文本,几分钟内即可生成新音频。
  • 通过操纵潜在空间(latent space),开发者能精确控制输出语音的音调、语速和情感色彩,使 NPC 对话栩栩如生。
  • 借助强大的风格迁移能力,轻松让未见过的角色继承特定说话风格,甚至在不同角色间平滑插值创造混合音色。
  • 支持自回归生成过程中的实时参数干预,完美匹配游戏场景中角色的奔跑、喘息或犹豫等动态状态。

flowtron 将原本僵化的文本转语音流程转变为可控、灵活且富有表现力的创意工具,极大降低了高品质互动语音的制作门槛。

运行环境要求

操作系统
  • Linux
GPU

必需 NVIDIA GPU,需配合 CUDA 和 cuDNN(具体版本未说明,建议参考 PyTorch 兼容性)

内存

未说明

依赖
notes该项目由 NVIDIA 开发,主要针对 Linux 环境。安装时需初始化子模块(包含 Tacotron2 代码)。支持多 GPU 分布式训练和自动混合精度训练(AMP)。推理阶段通常需要配合 WaveGlow 等声码器模型将梅尔频谱转换为音频。官方提供了 Docker 镜像构建选项以简化环境配置。
python未说明
PyTorch
NVIDIA Apex (用于 AMP 混合精度训练)
TensorBoard
flowtron hero image

快速开始

Flowtron

Flowtron:一种基于自回归流的文本到梅尔频谱图合成网络

Rafael Valle、Kevin Shih、Ryan Prenger 和 Bryan Catanzaro

在我们最近的[论文]中,我们提出了 Flowtron:一种基于自回归流的生成网络,用于文本到语音合成,并可控制语音变化和风格迁移。Flowtron 借鉴了自回归流的思想,并对Tacotron进行了改进,以提供高质量且富有表现力的梅尔频谱图合成。Flowtron 通过最大化训练数据的似然性进行优化,这使得训练过程简单而稳定。Flowtron 学习了一种将数据映射到潜在空间的可逆变换,该潜在空间可以被操纵以控制语音合成的多个方面(如音高、语调、语速、节奏和口音)。

我们的平均意见得分(MOS)表明,Flowtron 在语音质量方面与当前最先进的 TTS 模型相当。此外,我们还展示了对语音变化的控制、样本之间的插值以及在训练过程中见过和未见过的说话人之间的风格迁移结果。

请访问我们的[网站]获取音频示例。

先决条件

  1. NVIDIA GPU + CUDA cuDNN

设置

  1. 克隆此仓库:git clone https://github.com/NVIDIA/flowtron.git
  2. 进入该仓库:cd flowtron
  3. 初始化子模块:git submodule update --init; cd tacotron2; git submodule update --init
  4. 安装PyTorch
  5. 安装 Python 依赖或构建 Docker 镜像
    • 安装 Python 依赖:pip install -r requirements.txt

从头开始训练

  1. 更新 filelists 文件夹内的文件列表,使其指向您的数据
  2. 使用注意力先验和对齐损失(CTC 损失)进行训练,直到注意力分布看起来良好 python train.py -c config.json -p train_config.output_directory=outdir data_config.use_attn_prior=1
  3. 一旦对齐分布稳定下来,无需注意力先验继续训练 python train.py -c config.json -p train_config.output_directory=outdir data_config.use_attn_prior=0 train_config.checkpoint_path=model_niters
  4. (可选)如果门控层在训练完成后出现过拟合现象,可以从头开始单独训练门控层 python train.py -c config.json -p train_config.output_directory=outdir train_config.checkpoint_path=model_niters data_config.use_attn_prior=0 train_config.ignore_layers='["flows.1.ar_step.gate_layer.linear_layer.weight","flows.1.ar_step.gate_layer.linear_layer.bias"]' train_config.finetune_layers='["flows.1.ar_step.gate_layer.linear_layer.weight","flows.1.ar_step.gate_layer.linear_layer.bias"]'
  5. (可选)tensorboard --logdir=outdir/logdir

使用预训练模型进行训练

使用预训练模型可以加快收敛速度。 可以根据数据集忽略某些层

  1. 下载我们发布的Flowtron LJSFlowtron LibriTTSFlowtron LibriTTS2K 模型
  2. python train.py -c config.json -p train_config.ignore_layers=["speaker_embedding.weight"] train_config.checkpoint_path="models/flowtron_ljs.pt"

针对少量样本的语音合成进行微调

  1. 下载我们发布的Flowtron LibriTTS2K 模型
  2. python train.py -c config.json -p train_config.finetune_layers=["speaker_embedding.weight"] train_config.checkpoint_path="models/flowtron_libritts2k.pt"

多 GPU(分布式)和自动混合精度训练(AMP

  1. python -m torch.distributed.launch --use_env --nproc_per_node=NUM_GPUS_YOU_HAVE train.py -c config.json -p train_config.output_directory=outdir train_config.fp16=true

推理演示

禁用注意力先验并运行推理:

  1. python inference.py -c config.json -f models/flowtron_ljs.pt -w models/waveglow_256channels_v4.pt -t "众所周知,深度生成模型拥有丰富的潜在空间!" -i 0

相关仓库

WaveGlow 超实时的基于流的语音合成生成网络

致谢

本实现使用了以下仓库中的代码:Keith ItoPrem SeetharamanLiyuan Liu,具体说明见我们的代码中。

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|昨天
图像数据工具视频

GPT-SoVITS

GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具,旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点,实现了“零样本”和“少样本”的快速建模:用户只需提供 5 秒参考音频即可即时生成语音,或使用 1 分钟数据进行微调,从而获得高度逼真且相似度极佳的声音效果。 该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能,极大地降低了数据准备和模型训练的技术门槛,让非专业人士也能轻松上手。 在技术亮点方面,GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成,还具备卓越的推理速度,在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音,还是进行多语言语音交互研究,GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。

56.4k|★★★☆☆|2天前
音频

TTS

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。 无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。 在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

45k|★★★☆☆|4天前
音频开发框架图像

LocalAI

LocalAI 是一款开源的本地人工智能引擎,旨在让用户在任意硬件上轻松运行各类 AI 模型,包括大语言模型、图像生成、语音识别及视频处理等。它的核心优势在于彻底打破了高性能计算的门槛,无需昂贵的专用 GPU,仅凭普通 CPU 或常见的消费级显卡(如 NVIDIA、AMD、Intel 及 Apple Silicon)即可部署和运行复杂的 AI 任务。 对于担心数据隐私的用户而言,LocalAI 提供了“隐私优先”的解决方案,确保所有数据处理均在本地基础设施内完成,无需上传至云端。同时,它完美兼容 OpenAI、Anthropic 等主流 API 接口,这意味着开发者可以无缝迁移现有应用,直接利用本地资源替代云服务,既降低了成本又提升了可控性。 LocalAI 内置了超过 35 种后端支持(如 llama.cpp、vLLM、Whisper 等),并集成了自主 AI 代理、工具调用及检索增强生成(RAG)等高级功能,且具备多用户管理与权限控制能力。无论是希望保护敏感数据的企业开发者、进行算法实验的研究人员,还是想要在个人电脑上体验最新 AI 技术的极客玩家,都能通过 LocalAI 获

44.8k|★★★☆☆|5天前
图像音频语言模型

bark

Bark 是由 Suno 推出的开源生成式音频模型,能够根据文本提示创造出高度逼真的多语言语音、音乐、背景噪音及简单音效。与传统仅能朗读文字的语音合成工具不同,Bark 基于 Transformer 架构,不仅能模拟说话,还能生成笑声、叹息、哭泣等非语言声音,甚至能处理带有情感色彩和语气停顿的复杂文本,极大地丰富了音频表达的可能性。 它主要解决了传统语音合成声音机械、缺乏情感以及无法生成非语音类音效的痛点,让创作者能通过简单的文字描述获得生动自然的音频素材。无论是需要为视频配音的内容创作者、探索多模态生成的研究人员,还是希望快速原型设计的开发者,都能从中受益。普通用户也可通过集成的演示页面轻松体验其神奇效果。 技术亮点方面,Bark 支持商业使用(MIT 许可),并在近期更新中实现了显著的推理速度提升,同时提供了适配低显存 GPU 的版本,降低了使用门槛。此外,社区还建立了丰富的提示词库,帮助用户更好地驾驭模型生成特定风格的声音。只需几行 Python 代码,即可将创意文本转化为高质量音频,是连接文字与声音世界的强大桥梁。

39.1k|★★★☆☆|4天前
音频

airi

airi 是一款开源的本地化 AI 伴侣项目,旨在将虚拟角色(如“二次元老婆”或赛博生命)带入用户的现实世界。它的核心目标是复刻并超越知名 AI 主播 Neuro-sama 的能力,让用户能够拥有完全自主掌控、可私有化部署的智能伙伴。 airi 主要解决了用户对高度定制化、具备情感交互能力且数据隐私安全的 AI 角色的需求。不同于依赖云端服务的通用助手,airi 允许用户在本地运行,不仅保护了对话隐私,还赋予了用户定义角色性格与灵魂的自由。它支持实时语音聊天,甚至能直接参与《我的世界》(Minecraft)和《异星工厂》(Factorio)等游戏,实现了从单纯对话到共同娱乐的跨越。 这款工具非常适合喜爱虚拟角色的普通用户、希望搭建个性化 AI 陪伴的技术爱好者,以及研究多模态交互的开发者。其独特的技术亮点在于跨平台支持(涵盖 Web、macOS 和 Windows)以及强大的游戏交互能力,让 AI 不仅能“说”,还能“玩”。通过容器化的灵魂设计,airi 为每个人创造专属数字生命提供了可能,让虚拟陪伴变得更加真实且触手可及。

37.1k|★☆☆☆☆|2天前
语言模型音频Agent