coqui-ai/TTS · 上手攻略

  • 仓库:coqui-ai/TTS
  • 链接:https://github.com/coqui-ai/TTS
  • 分类:deep-learning · text-to-speech · voice-cloning
  • 作者:Tom
  • 更新:2026-08-18

这是什么

🐸TTS(coqui-ai/TTS)是 Mozilla 语音团队孵化的开源文本转语音深度学习工具包,支持从零训练模型、Fine-tuning 和推理,生产和研究均可用。最新版本 ⓍTTS v2 支持 16 种语言,还支持语音克隆(voice cloning)和语音转换(voice conversion)。它底层基于 TensorFlow / PyTorch,内置数十种模型架构(Tacotron2、Glow-TTS、FastSpeech2、VITS、HiFi-GAN 等)。

⚠️ 注意:Coqui 公司于 2024 年倒闭,仓库由社区维护;所有 released 模型和预训练权重仍可免费使用。


解决什么问题

  • 研究:快速复现 TTS 论文、对比不同架构(Text2Spec + Vocoder 解耦设计)
  • 产品:直接使用预训练模型做语音合成,无需训练
  • 语音克隆:用少量参考音频克隆任意人的声音(ⓍTTS / YourTTS / Bark / Tortoise 等)
  • 多语言:支持英语、德语、中文等 16+ 语言(ⓍTTS v2)
  • Voice Conversion:不合成文字,只改变音色(source_wav → target_wav)

快速安装

仅推理(最简)

pip install TTS

训练 / 开发

git clone https://github.com/coqui-ai/TTS
pip install -e .[all,dev,notebooks]

Docker(免安装)

# CPU 版本
docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu

# GPU 版本(需要 nvidia-docker)
docker run --rm -it --gpus all -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-gpu

⚠️ 环境要求:Ubuntu 18.04+,Python ≥ 3.9,< 3.12(官方测试环境)

系统依赖(Ubuntu/Debian)

make system-deps
make install

核心用法

1. Python API — 最简推理

import torch
from TTS.api import TTS

device = "cuda" if torch.cuda.is_available() else "cpu"
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)

# 多语言语音克隆:需提供参考音频
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"
)

2. ⓍTTS v2 — 16 语言支持

tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to("cuda")
# 支持语言:en, es, fr, de, it, pt, pl, tr, ru, nl, cs, ar, zh-cn, ja, hu, ko
tts.tts_to_file(
    text="今天天气真好",
    speaker_wav="zh_ref.wav",
    language="zh-cn",
    file_path="output.wav"
)

3. 语音克隆(Voice Cloning)

YourTTS(英/法/葡)

tts = TTS(model_name="tts_models/multilingual/multi-dataset/your_tts")
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_fr.wav"
)

Tortoise(高质量慢速)

tts = TTS(model_name="tts_models/en/tortoise")
tts.tts_to_file(text="Hello world", file_path="output.wav")

Bark(自带情感)

tts = TTS(model_name="tts_models/en/bark")
tts.tts_to_file(text="Hello, this is a test.", file_path="output.wav")

4. 语音转换(Voice Conversion)

# 不生成文字,只换音色
tts = TTS(model_name="voice_conversion_models/multilingual/vctk/freevc24")
tts.voice_conversion_to_file(
    source_wav="my/source.wav",   # 原音频
    target_wav="my/target.wav",   # 目标音色参考
    file_path="output.wav"
)

5. 实时语音合成 + 语音转换

tts = TTS(model_name="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"
)

6. 命令行 TTS

# 列出所有可用模型
tts --list_models

# 默认英文合成
tts --text "Hello world" --out_path output.wav

# 指定模型
tts --text "Hello" --model_name "tts_models/en/ljspeech/glow-tts" --out_path output.wav

# 指定 TTS + Vocoder 组合
tts --text "Hello" \
    --model_name "tts_models/en/ljspeech/glow-tts" \
    --vocoder_name "vocoder_models/en/ljspeech/univnet" \
    --out_path output.wav

# 多说话人模型(先查看 ID)
tts --model_name "tts_models/en/vctk/multi-speaker" --list_speaker_idxs
tts --text "Hello" --model_name "tts_models/en/vctk/vits" --speaker_idx "p226" --out_path output.wav

# Griffin-Lim(CPU 友好,质量较低)
tts --text "Hello" --model_path path/to/model.pth --config_path path/to/config.json --out_path output.wav

7. 启动 HTTP 服务

# 方式1:Docker 内
docker run --rm -it -p 5002:5002 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
# 访问 http://[::1]:5002

# 方式2:pip 安装后
tts-server --model_name tts_models/en/vctk/vits

典型适用场景

  1. 语音克隆产品:用户上传少量音频 → 克隆音色 → 用该音色读任意文本
  2. 多语言内容本地化:英文内容一键转为中文/日文/韩文配音(需 ⓍTTS v2)
  3. 无监督语音转换:在不想用 ASR 的场景下变换音色(如隐私保护)
  4. TTS 论文研究:复现 Glow-TTS / FastSpeech2 / VITS 等论文模型,对比 Vocoder 选择
  5. 语音数据增强:用不同 Vocoder 生成同一文本的多风格变体,用于训练 ASR 模型

坑与注意

⚠️ Coqui 公司已倒闭:仓库由社区维护,预训练模型仍在 GitHub Releases;后续更新节奏不确定

⚠️ ⓍTTS 语音克隆需参考音频:克隆效果依赖参考音频质量和语言匹配,中文参考音频建议 ≥ 30 秒

⚠️ Python 版本限制:官方测试 Python 3.9–3.11,3.12 可能存在兼容性问题(部分依赖库未跟上)

⚠️ GPU 显存:HiFi-GAN 等 Vocoder 在高音质模式下需要 ≥ 4GB VRAM;Bark 模型较大(~4GB)

⚠️ Tortoise 推理极慢:Tortoise 追求质量但单句合成可能需要几分钟,不适合实时场景

⚠️ Voice Conversion ≠ 语音识别:FreeVC24 是音色转换,不是 ASR,source_wav 的文字内容会被保留

⚠️ Windows 支持:社区文档有限,有用户报告在 Windows 上用 CUDA 训练需要手动处理路径编码问题(参考 StackOverflow 安装指南

⚠️ Streaming 功能:ⓍTTS 支持流式推理,但需要参考官方 Streaming Guide(README 中提到,文档链接需 web_fetch 获取)


与同类对比

维度 coqui TTS Bark (Suno) Tortoise ESPnet-TTS
开源 ✅ MIT ✅ MIT ✅ Apache 2.0 ✅ Apache 2.0
语音克隆 ✅ 多方案 ✅ 最逼真
多语言 ✅ 16(ⓍTTS v2) ❌ 限英
预训练模型 ✅ 丰富
训练代码 ✅ 完整
模型规模
推理速度 快(VITS) 极慢
社区活跃度 中(社区维护)

一句话推荐结论

coqui-ai/TTS 是 TTS 领域最全栈的开源工具包:预训练模型丰富、训练代码完整、语音克隆方案多样,适合既想快速推理又想做模型实验的用户;缺点是 Coqui 公司倒闭后社区维护节奏不稳,生产项目建议做好 fork 备份。


来源

  • GitHub:https://github.com/coqui-ai/TTS
  • 文档:https://tts.readthedocs.io/en/latest/
  • ⓍTTS Blog:https://coqui.ai/blog/tts/open_xtts
  • Docker 镜像:https://tts.readthedocs.io/en/latest/docker_images.html
  • 论文列表:https://github.com/erogol/TTS-papers
  • 发行模型列表:https://github.com/coqui-ai/TTS/releases