ChatTTS 会话语音

在 Clore.ai GPU 上运行 ChatTTS 会话式文本到语音,支持细粒度韵律控制。

ChatTTS 是一个用于对话场景(如大型语言模型助手、聊天机器人和交互式语音应用)的 3 亿参数生成语音模型。它能生成具有自然停顿、笑声、填充词和语调的自然语音——这些特征大多数 TTS 系统难以重现。该模型支持英语和中文,并以 24 kHz 生成音频。

GitHub: 2noise/ChatTTSarrow-up-right (30K+ 星) 许可: AGPLv3+(代码),CC BY-NC 4.0(模型权重——非商业)

主要特性

  • 对话韵律 — 为对话调整的自然停顿、填充词和语调

  • 精细控制标签[oral_0-9], [laugh_0-2], [break_0-7], [uv_break], [lbreak]

  • 多说话人 — 随机采样说话人或重用说话人嵌入以保持一致性

  • 温度 / top-P / top-K — 控制生成多样性

  • 批量推理 — 在一次调用中合成多条文本

  • 轻量级 — 约 3 亿参数,4 GB 显存即可运行

要求

组件
最低
推荐

GPU

RTX 3060(4 GB 空闲)

RTX 3090 / RTX 4090

显存

4 GB

8 GB 及以上

内存

8 GB

16 GB

磁盘

5 GB

10 GB

Python

3.9+

3.11

CUDA

11.8+

12.1+

Clore.ai 建议: 一块 RTX 3060(($0.15–0.30/天)可轻松运行 ChatTTS。对于批量生产或更低延迟,请选择 RTX 3090(($0.30–1.00/天)。

安装

快速开始

使用示例

一致的说话人音色

采样一个随机的说话人嵌入并在多次生成中复用它以保持一致的声音:

词级控制标签

将控制标签直接插入文本以获得精确的韵律:

带 WebUI 的批量处理

ChatTTS 附带用于交互使用的 Gradio 网页界面:

打开 http_pub 从你的 Clore.ai 订单仪表板获取的 URL 以访问界面。

给 Clore.ai 用户的提示

  • 使用 compile=True 在初始测试之后 — PyTorch 编译会增加启动时间,但会显著加速重复推理

  • 端口映射 — 暴露端口 7860/http 在使用 WebUI 部署时

  • Docker 镜像 — 使用 pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime 作为基础

  • 说话人持久化 — 保存 rand_spk 字符串到文件,以便在会话之间重用声音而无需重新采样

  • 批量请求chat.infer() 接受文本列表并一起处理,这比逐条调用更高效

  • 非商业许可证 — 模型权重为 CC BY-NC 4.0;请根据你的使用场景检查许可要求

# 使用固定种子以获得一致结果

问题
解决方案

CUDA 内存不足(out of memory)

减少批量大小或使用 ≥ 6 GB 显存的 GPU

模型下载缓慢

提前从 HuggingFace 预下载: huggingface-cli download 2Noise/ChatTTS

音频有静电/噪声

这是开源模型中的刻意设计(反滥用措施);使用 compile=True 以获得更清洁的输出

torchaudio.save 维度错误

确保张量为 2D: audio.unsqueeze(0) 如有需要

中文输出乱码

确保输入文本为 UTF-8 编码;安装 WeTextProcessing 以获得更好的规范化

第一次推理慢

正常 —— 模型编译和权重加载发生在首次调用;后续调用会更快

最后更新于

这有帮助吗?