TTS

GitHub
45k 6k 中等 9 次阅读 2天前MPL-2.0音频开发框架图像
AI 解读 由 AI 自动生成,仅供参考

🐸TTS 是一款功能强大的深度学习文本转语音(Text-to-Speech)开源库,旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点,让高质量的语音生成变得触手可及。

无论是希望快速集成语音功能的开发者,还是致力于探索前沿算法的研究人员,亦或是需要定制专属声音的数据科学家,🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型,让用户能够即刻上手,还提供了完善的工具链,支持用户利用自有数据训练新模型或对现有模型进行微调,轻松实现特定风格的声音克隆。

在技术亮点方面,🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言,并在整体性能上大幅提升,实现了低于 200 毫秒的超低延迟流式输出,极大提升了实时交互体验。此外,它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型,并支持调用上千个 Fairseq 模型,展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具,🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。

使用场景

一家专注于多语言教育科技的公司,正试图为一款面向全球儿童的互动绘本应用快速生成高质量的旁白语音。

没有 TTS 时

  • 多语言支持成本极高:每增加一种新语言(如西班牙语或日语),都需要聘请专业配音演员录制,导致本地化周期长达数周且预算飙升。
  • 声音表现力单一:传统合成语音机械感重,缺乏情感起伏,无法根据故事情节调整语气,难以吸引儿童注意力。
  • 迭代更新困难:一旦绘本内容需要微调(如修改台词),必须重新预约录音棚和人员,无法实现即时更新。
  • 延迟问题严重:尝试使用其他开源方案时,推理速度过慢,导致在低端设备上播放语音时出现明显卡顿,破坏互动体验。

使用 TTS 后

  • 一键覆盖全球市场:利用 TTS 预训练的 1100 多种语言模型及 XTTS 功能,团队仅需输入文本即可瞬间生成地道的外语旁白,将新语言上线时间从数周缩短至几分钟。
  • 情感丰富且自然:借助深度学习能力,TTS 生成的语音具备逼真的停顿和情感色彩,甚至能通过少量样本克隆特定角色音色,让故事讲述栩栩如生。
  • 实时动态生成:得益于低于 200ms 的流式推理延迟,应用可根据孩子的互动选择实时生成对应台词,实现了真正的动态叙事体验。
  • 灵活微调与部署:开发团队利用提供的微调工具,针对儿童内容优化了发音风格,并轻松将模型集成到生产环境中,大幅降低了维护成本。

TTS 通过其强大的多语言预训练模型和低延迟推理能力,将语音内容的生产成本降低了 90%,同时让全球儿童都能享受到富有情感的个性化故事体验。

运行环境要求

操作系统
  • Linux (Ubuntu 18.04+)
  • Windows
  • macOS
GPU
  • 非必需(支持 CPU 推理,Docker 有 CPU 镜像)
  • 若需训练或使用高性能模型,建议使用 NVIDIA GPU
  • 具体显存和 CUDA 版本未在文中明确说明,但依赖 PyTorch CUDA 支持
内存

未说明

依赖
notes1. 在 Ubuntu/Debian 上可通过 'make system-deps' 安装系统级依赖。2. Windows 用户需参考外部链接进行特殊配置以支持 CUDA。3. 提供 Docker 镜像(含 CPU 和 GPU 版本)以便无需本地安装即可运行。4. 支持超过 1100 种语言的预训练模型。5. 包含多种模型架构(如 XTTS, VITS, Bark, Tortoise 等),不同模型对资源需求差异较大。
python>=3.9, <3.12
torch
numpy
scipy
librosa
pydub
soundfile
flask
gradio
pandas
matplotlib
TTS hero image

快速开始

🐸Coqui.ai 新闻

  • 📣 ⓍTTSv2 已发布,支持16种语言,整体性能更优。
  • 📣 ⓍTTS 微调代码已公开。请查看示例教程
  • 📣 ⓍTTS 现在可以以低于200毫秒的延迟进行流式传输。
  • 📣 ⓍTTS,我们的生产级TTS模型,能够说13种语言,现已发布。博客文章演示文档
  • 📣 🐶Bark 现已可用于推理,并支持无约束的语音克隆。文档
  • 📣 您可以使用~1100个Fairseq模型与🐸TTS一起使用。
  • 📣 🐸TTS 现在支持🐢Tortoise,且推理速度更快。文档

🐸TTS 是一个用于高级文本转语音生成的库。

🚀 预训练模型支持超过1100种语言。

🛠️ 提供工具用于训练新模型以及对任何语言的现有模型进行微调。

📚 提供数据集分析和整理的相关工具。


Discord License PyPI版本 公约 下载量 DOI

GithubActions GithubActions GithubActions GithubActions GithubActions GithubActions GithubActions GithubActions GithubActions GithubActions GithubActions 文档


💬 咨询渠道

请使用我们专门的渠道进行提问和讨论。公开分享的帮助更有价值,这样更多人可以从中受益。

类型 平台
🚨 Bug报告 [GitHub问题追踪器]
🎁 功能请求与建议 [GitHub问题追踪器]
👩‍💻 使用问题 [GitHub讨论区]
🗯 一般讨论 [GitHub讨论区]或Discord

🔗 链接和资源

类型 链接
💼 文档 ReadTheDocs
💾 安装 TTS/README.md
👩‍💻 贡献 CONTRIBUTING.md
📌 路线图 主要开发计划
🚀 已发布的模型 TTS发布实验性模型
📰 论文 TTS论文

🥇 TTS性能

带下划线的“TTS*”和“Judy*”是内部的🐸TTS模型,尚未开源。它们旨在展示潜在能力。以点号开头的模型(.Jofish、.Abe 和 .Janice)则是真实的人类声音。

特性

  • 用于文本转语音任务的高性能深度学习模型。
    • 文本转频谱模型(Tacotron、Tacotron2、Glow-TTS、SpeedySpeech)。
    • 发言人编码器,可高效计算发言人的嵌入向量。
    • 声码器模型(MelGAN、Multiband-MelGAN、GAN-TTS、ParallelWaveGAN、WaveGrad、WaveRNN)
  • 快速高效的模型训练。
  • 在终端和Tensorboard上提供详细的训练日志。
  • 支持多说话人TTS。
  • 高效、灵活、轻量但功能齐全的Trainer API
  • 已发布并可直接使用的模型。
  • 提供工具来整理文本转语音数据集,位于dataset_analysis模块中。
  • 提供工具来使用和测试您的模型。
  • 模块化(但不过分)的代码库,便于实现新想法。

模型实现

声谱图模型

端到端模型

注意力机制

发言人编码器

语音合成器

语音转换

您也可以帮助我们实现更多模型。

安装

🐸TTS 已在 Ubuntu 18.04 上测试,要求 Python >= 3.9, < 3.12

如果您只对使用发布的 🐸TTS 模型进行 语音合成 感兴趣,那么从 PyPI 安装是最简单的方式。

pip install TTS

如果您计划编写代码或训练模型,请克隆 🐸TTS 并在本地安装。

git clone https://github.com/coqui-ai/TTS
pip install -e .[all,dev,notebooks]  # 选择相关的附加组件

如果您使用的是 Ubuntu (Debian),也可以运行以下命令进行安装。

$ make system-deps  # 适用于 Ubuntu (Debian)。如果您使用其他操作系统,请告知我们。
$ make install

如果您使用的是 Windows,👑@GuyPaddock 编写了安装说明 在这里

Docker 镜像

您也可以通过 Docker 镜像无需安装即可试用 TTS。只需运行以下命令,您就可以在不安装的情况下运行 TTS。

docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
python3 TTS/server/server.py --list_models # 获取可用模型列表
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits # 启动服务器

然后您可以在 这里 享受 TTS 服务。有关 Docker 镜像的更多详细信息(例如 GPU 支持)可以参见 这里

使用 🐸TTS 进行语音合成

🐍 Python API

运行多说话者和多语言模型

import torch
from TTS.api import TTS

# 获取设备
device = "cuda" if torch.cuda.is_available() else "cpu"

# 列出可用的 🐸TTS 模型
print(TTS().list_models())

# 初始化 TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)

# 运行 TTS
# ❗ 由于此模型是多语言语音克隆模型,我们必须设置目标说话人音频文件和语言
# 输出为幅度值列表的文本转语音
wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en")
# 文本转语音并保存为文件
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")

运行单说话者模型

# 使用目标模型名称初始化 TTS
tts = TTS(model_name="tts_models/de/thorsten/tacotron2-DDC", progress_bar=False).to(device)

# 运行 TTS
tts.tts_to_file(text="Ich bin eine Testnachricht.", file_path=OUTPUT_PATH)

# 使用 YourTTS 进行英语、法语和葡萄牙语的语音克隆示例
tts = TTS(model_name="tts_models/multilingual/multi-dataset/your_tts", progress_bar=False).to(device)
tts.tts_to_file("This is voice cloning.", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
tts.tts_to_file("C'est le clonage de la voix.", speaker_wav="my/cloning/audio.wav", language="fr-fr", file_path="output.wav")
tts.tts_to_file("Isso é clonagem de voz.", speaker_wav="my/cloning/audio.wav", language="pt-br", file_path="output.wav")

语音转换示例

source_wav 中的声音转换为 target_wav 的声音

tts = TTS(model_name="voice_conversion_models/multilingual/vctk/freevc24", progress_bar=False).to("cuda")
tts.voice_conversion_to_file(source_wav="my/source.wav", target_wav="my/target.wav", file_path="output.wav")

结合语音转换模型进行语音克隆示例。

这样,您可以使用 🐸TTS 中的任何模型来克隆语音。

tts = TTS("tts_models/de/thorsten/tacotron2-DDC")
tts.tts_with_vc_to_file(
    "Wie sage ich auf Italienisch, dass ich dich liebe?",
    speaker_wav="target/speaker.wav",
    file_path="output.wav"
)

使用 Fairseq 模型在 ~1100 种语言中 进行文本转语音的示例 🤯。

对于 Fairseq 模型,使用以下命名格式:tts_models/<lang-iso_code>/fairseq/vits。您可以在此处找到语言 ISO 代码 这里,并在此处了解 Fairseq 模型 这里

# 具有即时语音转换功能的 TTS
api = TTS("tts_models/deu/fairseq/vits")
api.tts_with_vc_to_file(
    "Wie sage ich auf Italienisch, dass ich dich liebe?",
    speaker_wav="target/speaker.wav",
    file_path="output.wav"
)

命令行 tts

在命令行中合成语音。

您可以使用自己训练的模型,也可以从提供的列表中选择一个模型。

如果您未指定任何模型,则会使用基于 LJSpeech 的英语模型。

单说话人模型

  • 列出提供的模型:

    $ tts --list_models
    
  • 获取模型信息(适用于 tts_models 和 vocoder_models):

    • 按类型/名称查询: model_info_by_name 使用 --list_models 中显示的名称。
      $ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
      
      例如:
      $ tts --model_info_by_name tts_models/tr/common-voice/glow-tts
      $ tts --model_info_by_name vocoder_models/en/ljspeech/hifigan_v2
      
    • 按类型/索引查询: model_query_idx 使用 --list_models 中对应的索引。
      $ tts --model_info_by_idx "<model_type>/<model_query_idx>"
      
      例如:
      $ tts --model_info_by_idx tts_models/3
      
    • 按完整名称查询模型信息:
      $ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
      
  • 使用默认模型运行 TTS:

    $ tts --text "Text for TTS" --out_path output/path/speech.wav
    
  • 运行 TTS 并将生成的 TTS 音频数据直接输出到管道:

    $ tts --text "Text for TTS" --pipe_out --out_path output/path/speech.wav | aplay
    
  • 使用 TTS 模型及其默认声码器模型运行:

    $ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
    

    例如:

    $ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --out_path output/path/speech.wav
    
  • 使用列表中的特定 TTS 和声码器模型运行:

    $ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --vocoder_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
    

    例如:

    $ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --vocoder_name "vocoder_models/en/ljspeech/univnet" --out_path output/path/speech.wav
    
  • 运用自己的 TTS 模型(使用 Griffin-Lim 声码器):

    $ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
    
  • 运用自己的 TTS 和声码器模型:

    $ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
        --vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json
    

多说话人模型

  • 列出可用的说话人并从中选择一个

    $ tts --model_name "<language>/<dataset>/<model_name>"  --list_speaker_idxs
    
  • 使用目标说话人 ID 运行多说话人 TTS 模型:

    $ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>"  --speaker_idx <speaker_id>
    
  • 运用自己的多说话人 TTS 模型:

    $ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/model.pth --config_path path/to/config.json --speakers_file_path path/to/speaker.json --speaker_idx <speaker_id>
    

语音转换模型

$ tts --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --source_wav <path/to/speaker/wav> --target_wav <path/to/reference/wav>

目录结构

|- notebooks/       (用于模型评估、参数选择和数据分析的 Jupyter 笔记本。)
|- utils/           (通用工具。)
|- TTS
    |- bin/             (所有可执行文件的文件夹。)
      |- train*.py                  (训练您的目标模型。)
      |- ...
    |- tts/             (文本转语音模型)
        |- layers/          (模型层定义)
        |- models/          (模型定义)
        |- utils/           (模型专用工具。)
    |- speaker_encoder/ (说话人编码器模型。)
        |- (同上)
    |- vocoder/         (声码器模型。)
        |- (同上)

版本历史

v0.22.02023/12/12
v0.21.32023/12/01
v0.21.22023/11/30
v0.21.12023/11/24
v0.21.02023/11/24
v0.20.62023/11/17
v0.20.52023/11/15
v0.20.42023/11/13
v0.20.32023/11/10
v0.20.22023/11/08
v0.20.12023/11/07
v0.20.02023/11/06
v0.19.12023/10/30
v0.19.02023/10/25
v0.18.22023/10/21
v0.18.12023/10/20
v0.18.02023/10/20
v0.17.102023/10/19
v0.17.92023/10/19
v0.17.82023/10/06

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

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

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

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架