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
典型适用场景
- 语音克隆产品:用户上传少量音频 → 克隆音色 → 用该音色读任意文本
- 多语言内容本地化:英文内容一键转为中文/日文/韩文配音(需 ⓍTTS v2)
- 无监督语音转换:在不想用 ASR 的场景下变换音色(如隐私保护)
- TTS 论文研究:复现 Glow-TTS / FastSpeech2 / VITS 等论文模型,对比 Vocoder 选择
- 语音数据增强:用不同 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