tacotron2

GitHub
5.3k 1.4k 较难 1 次阅读 今天BSD-3-Clause音频
AI 解读 由 AI 自动生成,仅供参考

Tacotron 2 是由 NVIDIA 开源的高性能文本转语音(TTS)模型,基于 PyTorch 框架实现。它的核心任务是将输入的自然文本转化为逼真、流畅的人声语音,有效解决了传统语音合成声音机械、不自然的问题,让机器发音更接近真人情感与语调。

该项目复现了经典的 Tacotron 2 论文算法,并针对实际应用场景进行了深度优化。其独特的技术亮点在于支持分布式训练和自动混合精度(AMP),这不仅大幅提升了模型训练效率,更实现了“快于实时”的推理速度,意味着生成语音的速度比播放速度还要快,非常适合低延迟场景。此外,它通常与 WaveGlow 或 WaveNet 等声码器配合使用,以完成从频谱到最终音频的高质量还原。

Tacotron 2 主要面向人工智能研究人员、语音技术开发者以及需要定制语音合成方案的企业团队。由于部署和训练过程涉及 GPU 环境配置、数据集处理及深度学习框架操作,它更适合具备一定编程基础和算法背景的专业人士使用,而非普通终端用户。对于希望探索前沿语音合成技术或构建高质量语音交互系统的团队来说,这是一个极具参考价值的开源基准项目。

使用场景

某在线教育平台的技术团队需要为数千门新课程快速生成高质量的真人语音旁白,以替代昂贵且周期长的人工录音流程。

没有 tacotron2 时

  • 依赖传统拼接式合成或早期深度学习模型,生成的语音机械感强、语调平淡,缺乏自然的情感起伏,严重影响学员听课体验。
  • 调整发音风格或适配新音色需要重新训练庞大的模型,耗时数天且对算力要求极高,无法响应业务快速迭代的需求。
  • 推理速度缓慢,无法达到实时生成标准,导致用户点击播放后需长时间等待,难以支持大规模并发访问。
  • 缺乏对混合精度和多 GPU 分布式训练的 native 支持,显存占用高,训练成本居高不下。

使用 tacotron2 后

  • 利用其基于梅尔频谱预测的架构,生成的语音在韵律和清晰度上接近真人水平,显著提升了课程内容的沉浸感和专业度。
  • 借助预训练模型微调(Warm Start)功能,仅需少量新数据即可快速适配特定讲师音色,将新声音上线周期从数天缩短至数小时。
  • 实现超实时(faster-than-realtime)推理,用户请求可即时转化为音频流,完美支撑高并发场景下的流畅播放体验。
  • 原生支持 NVIDIA Apex 的自动混合精度与分布式训练,大幅降低显存门槛并加速收敛,有效控制了云端训练成本。

tacotron2 通过提供接近真人的音质与工业级的推理效率,成功将高质量语音合成的门槛降至可大规模落地的水平。

运行环境要求

操作系统
  • Linux
GPU

必需 NVIDIA GPU,需安装 CUDA 和 cuDNN(具体版本未说明,但需配合 PyTorch 1.0 使用)

内存

未说明

依赖
notes该实现基于 PyTorch 1.0。分布式训练和自动混合精度(AMP)功能依赖 NVIDIA 的 Apex 库。推理演示需要额外下载 Tacotron 2 和 WaveGlow 预训练模型。若使用多 GPU 训练,需通过 `multiproc` 模块启动。
python未说明 (需兼容 PyTorch 1.0)
torch==1.0
nvidia-apex
numpy
librosa
scipy
matplotlib
unidecode
inflect
tacotron2 hero image

快速开始

Tacotron 2(不使用 WaveNet)

基于 Natural TTS Synthesis By Conditioning Wavenet On Mel Spectrogram Predictions 的 PyTorch 实现。

该实现包含 分布式训练自动混合精度 支持,并使用 LJSpeech 数据集

分布式训练和自动混合精度支持依赖于 NVIDIA 的 ApexAMP

请访问我们的 [网站],查看使用我们发布的 Tacotron 2WaveGlow 模型生成的音频样本。

对齐结果、预测的梅尔谱图、目标梅尔谱图

前置条件

  1. NVIDIA GPU + CUDA cuDNN

设置

  1. 下载并解压 LJ Speech 数据集
  2. 克隆本仓库:git clone https://github.com/NVIDIA/tacotron2.git
  3. 进入本仓库:cd tacotron2
  4. 初始化子模块:git submodule init; git submodule update
  5. 更新 .wav 文件路径:sed -i -- 's,DUMMY,ljs_dataset_folder/wavs,g' filelists/*.txt
    • 或者,在 hparams.py 中设置 load_mel_from_disk=True 并更新梅尔谱图路径
  6. 安装 PyTorch 1.0
  7. 安装 Apex
  8. 安装 Python 依赖或构建 Docker 镜像
    • 安装 Python 依赖:pip install -r requirements.txt

训练

  1. python train.py --output_directory=outdir --log_directory=logdir
  2. (可选)tensorboard --logdir=outdir/logdir

使用预训练模型进行训练

使用预训练模型可以加快收敛速度。
默认情况下,与数据集相关的文本嵌入层会被 忽略

  1. 下载我们发布的 Tacotron 2 模型
  2. python train.py --output_directory=outdir --log_directory=logdir -c tacotron2_statedict.pt --warm_start

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

  1. python -m multiproc train.py --output_directory=outdir --log_directory=logdir --hparams=distributed_run=True,fp16_run=True

推理演示

  1. 下载我们发布的 Tacotron 2 模型
  2. 下载我们发布的 WaveGlow 模型
  3. jupyter notebook --ip=127.0.0.1 --port=31337
  4. 打开 inference.ipynb 文件

注意:在进行梅尔谱图到音频的合成时,请确保 Tacotron 2 和梅尔解码器是基于相同的梅尔谱图表示进行训练的。

相关仓库

WaveGlow:实时速度以上的基于流的语音合成生成网络。

nv-wavenet:实时速度以上的 WaveNet。

致谢

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

我们受到 Ryuchi Yamamoto 的 Tacotron PyTorch 实现的启发。

我们感谢 Tacotron 2 论文的作者们,特别是 Jonathan Shen、Yuxuan Wang 和 Zongheng Yang。

常见问题

相似工具推荐

ML-For-Beginners

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

85.1k|★★☆☆☆|今天
图像数据工具视频

GPT-SoVITS

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

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

TTS

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

45k|★★★☆☆|1周前
音频开发框架图像

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|★★★☆☆|1周前
图像音频语言模型

bark

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

39.1k|★★★☆☆|1周前
音频

ChatTTS

ChatTTS 是一款专为日常对话场景打造的生成式语音模型,特别适用于大语言模型助手等交互式应用。它主要解决了传统文本转语音(TTS)技术在对话中缺乏自然感、情感表达单一以及难以处理停顿、笑声等细微语气的问题,让机器生成的语音听起来更像真人在聊天。 这款工具非常适合开发者、研究人员以及希望为应用增添自然语音交互功能的设计师使用。普通用户也可以通过社区开发的衍生产品体验其能力。ChatTTS 的核心亮点在于其对对话任务的深度优化:它不仅支持中英文双语,还能精准控制韵律细节,自动生成自然的 laughter(笑声)、pauses(停顿)和 interjections(插入语),从而实现多说话人的互动对话效果。在韵律表现上,ChatTTS 超越了大多数开源 TTS 模型。目前开源版本基于 4 万小时数据预训练而成,虽主要用于学术研究与教育目的,但已展现出强大的潜力,并支持流式音频生成与零样本推理,为后续的多情绪控制等进阶功能奠定了基础。

39k|★★★☆☆|昨天
语言模型Agent开发框架