Coqui TTS:本地运行的神经网络语音合成引擎
📖 简介
📝 详细介绍
1. 开篇
这篇教程带你从零搭起一个本地可运行的 Coqui TTS 语音合成服务,最终成果是你输入一句英文文本,几秒后就能得到一段完整可播放的 wav 音频。
2. 前置条件
- Ubuntu 20.04+ / macOS 12+ / Windows 10+,我们以 Linux 为例
- Python 3.9–3.11,Coqui TTS 尚未完全适配 3.12+
- 推荐 8GB 以上内存,CPU 可运行但会很慢
- 可选:NVIDIA GPU + CUDA 11.8 以上,合成速度提升 10 倍
- 系统安装
espeak-ng,部分模型依赖它做音素转换
3. 安装部署
3.1 克隆仓库并安装依赖
git clone https://github.com/coqui-ai/TTS.git
cd TTS
pip install -e .
如果你不需要处理音频文件的额外转换,也可以直接 pip install TTS。
3.2 验证安装
python -c "from TTS.api import TTS; print('TTS version:', TTS.__version__)"
预期输出类似 TTS version: 0.22.0,看到版本号说明核心依赖就绪。
3.3 启动一个可交互的合成服务
tts-server --port 5002
启动后在浏览器打开 http://localhost:5002,你会看到 Web 界面。注意:首次运行某个模型时会自动下载权重,需要保持网络通畅。
4. 第一个 Demo
这个 Demo 的目标是用 Python API 完成一次最小闭环:文本 → 语音文件。
4.1 初始化 TTS 对象
这一步要做什么:加载一个预训练的 Tacotron2 英文模型,指定使用 CPU(如果你有 GPU,改为 cuda 即可)。
from TTS.api import TTS
tts = TTS(model_name="tts_models/en/ljspeech/tacotron2-DDC", progress_bar=True)
print("模型加载完成")
预期输出:首次运行会显示下载进度条,模型约 45MB,下载完成后打印“模型加载完成”。
4.2 合成语音文件
这一步要做什么:传入一个英文句子,调用 tts_to_file 方法输出 wav 文件。
tts.tts_to_file(
text="The quick brown fox jumps over the lazy dog.",
file_path="output.wav"
)
print("音频已生成")
预期输出:当前目录多出一个 output.wav,你可以用媒体播放器直接打开。在 CPU 环境下,合成 4 秒音频大约需要 15–30 秒。
4.3 验证文件
file output.wav
预期输出:output.wav: RIFF ... audio data, WAVE format,说明文件格式正确。
5. 配置与调优
5.1 切换 GPU 加速
如果你有 NVIDIA 显卡,只需要在初始化时把设备设为 cuda:
tts = TTS(model_name="tts_models/en/ljspeech/tacotron2-DDC", device="cuda")
注意:需要在启动 Python 前验证 torch.cuda.is_available() 返回 True,否则会报错。
5.2 更换说话音色(多说话人模型)
Coqui 提供了多说话人模型,比如 tts_models/en/vctk/vits。使用这种模型时,可以通过 speaker 参数切换不同人的音色:
tts = TTS(model_name="tts_models/en/vctk/vits")
tts.tts_to_file(text="Hello, this is a test.", file_path="out.wav", speaker="p225")
不传 speaker 参数会报错,这也是初学者最容易踩的坑。想查看可用的说话人列表,执行 print(tts.speakers)。
5.3 调整语速与语气(VITS 模型)
VITS 模型通过 speaker_wav(参考音频)来模仿语调,也可以调节 speed 参数:
tts.tts_to_file(
text="I'm speaking a bit slower.",
file_path="slow.wav",
speed=0.8 # 0.8 倍速
)
调整 speed 是最简单且不会导致音频毛刺的调优方式。
6. 常见坑与排错
| 报错信息 | 原因 | 解决办法 |
|---|---|---|
ModuleNotFoundError: No module named 'TTS' |
没有正确安装包,或当前激活的虚拟环境不对 | 检查是否在正确环境,重新执行 pip install -e . |
RuntimeError: Could not locate espeak-ng |
系统缺少音素化工具 espeak-ng | sudo apt install espeak-ng(macOS 用 brew install espeak-ng) |
AssertionError: Torch not compiled with CUDA enabled |
PyTorch 是 CPU 版本,即使显卡存在也无法使用 | 重新安装 GPU 版 torch:pip install torch --index-url https://download.pytorch.org/whl/cu118 |
Connection error while downloading model |
首次下载权重时网络超时,或 Hugging Face 被墙 | 手动下载模型文件放入 ~/.local/share/tts 缓存目录,或科学上网重试 |
7. 下一步
- 学习 Coqui TTS 的官方 README,了解命令行
tts子命令的更多参数(如批量生成、拼接静音) - 尝试微调:使用自己的录音数据对
VITS模型做轻量微调,这一步需要 10 分钟左右的音频数据 - 探索流式合成:Coqui 的
TTS.stream()API 可以边生成边播放,适合接入聊天机器人等实时场景
AI 项目推荐
大模型- 标签
- #语音合成 #TTS #深度学习 #音色克隆
- 浏览
- 👁️ 1
- 发布日期
- 2026-08-06