ChatTTS 模型能力边界——支持什么、不支持什么
核心能力清单
以下是 ChatTTS 0.2.x 版本稳定支持的功能:
多语言语音合成
- 中文普通话与英文(美式发音)均有独立训练数据
- 同一段文本可中英混排输入,模型自动切换发音
- 暂不支持日语、韩语等其他语言(官方路线图标注"Coming Soon")
细粒度韵律控制
模型提供两套控制手段:
- 文本内控制标签——直接在待合成文本中插入
[oral_0]~[oral_9]、[laugh_0]~[laugh_2]、[break_0]~[break_7]、[uv_break]、[lbreak] - 参数对象——通过
RefineTextParams和InferCodeParams在代码层面控制韵律提示、温度采样等
多说话人
- 每次调用
sample_random_speaker()生成一个新的说话人嵌入向量(字符串形式) - 同一嵌入可以在多次
infer()调用中复用,保持音色一致 - 不做声音克隆——采样的都是训练集中已有的说话人
批量推理
chat.infer(texts)接受字符串列表,一次性合成多条音频- 批量推理比逐条推理效率更高(共享模型加载开销)
两种模型加载方式
chat.load_models()——早期 API,兼容老代码chat.load(compile=False)——推荐的新 API,支持 torch.compile 加速
已知限制
以下是当前版本的硬限制或常见痛点:
模型规模与速度
- 300M 参数属于轻量级生成模型——显存友好但音频质量天花板明显
- RTX 4090 上 RTF(实时因子)约 0.3,即生成 1 秒语音需要 0.3 秒
- 实时流式生成尚未发布(在路线图中)
开源模型杂音
HuggingFace 上发布的 4 万小时开源模型带有轻微背景杂音——这是官方有意加入的反滥用设计。10 万小时的主模型杂音更少但未公开权重。
不做声音克隆
ChatTTS 的"多说话人"是从训练集中采样,不是让你提供一段录音来克隆某个人的声音。需要声音克隆请关注 OpenVoice、so-vits-svc 等项目。
音素准确度
作为生成模型,ChatTTS 的音素对齐不如 VITS 这类自回归模型精确。遇到复杂多音字、生僻字可能出错。
路线图中的功能
根据 GitHub 仓库 README,以下功能正在开发中:
- 开源 40k 基础模型 + spk_stats 文件
- 流式音频生成(streaming audio)
- 开源 DVAE 编码器 + zero-shot 推理代码
- 多情感控制(multi-emotion controlling)
- ChatTTS.cpp(C++ 移植版)