ChatTTS 中文文档 下载 App

温度、top-P、top-K——控制生成多样性的三个采样参数

采样参数的作用

ChatTTS 是自回归生成模型——它逐 token 生成,每个 token 的概率分布由温度、top-P、top-K 三个参数共同决定。这三个参数决定了模型"有多随机"。

三个参数详解

参数默认值作用
temperature约 1.0温度越低越保守(总是选概率最高的 token),越高越多样
top_P约 0.7只在累积概率前 P% 的 token 里采样
top_K约 20只在概率最高的 K 个 token 里采样

注意:不同版本的 ChatTTS 默认值可能略有不同,以下以 0.2.x 版本为准。

效果对比

参数组合效果适用场景
temp=0.0, top_P=1.0, top_K=0完全确定性,每次输出几乎一模一样需要精确复现时
temp=0.3, top_P=0.7, top_K=20保守稳定日常对话、信息播报
temp=0.8, top_P=0.9, top_K=30较多样,有自然波动创意配音、互动剧情
temp=1.5, top_P=0.95, top_K=50非常随机,可能不连贯采样对比、艺术创作

基本用法

params_infer_code = ChatTTS.Chat.InferCodeParams(
    temperature=0.3,
    top_P=0.7,
    top_K=20,
)
wavs = chat.infer("你好,世界", params_infer_code=params_infer_code)

与说话人嵌入配合

rand_spk = chat.sample_random_speaker()

params_infer_code = ChatTTS.Chat.InferCodeParams(
    spk_emb=rand_spk,
    temperature=0.3,
    top_P=0.7,
    top_K=20,
)
wavs = chat.infer(
    "你好,世界",
    params_infer_code=params_infer_code
)

建议值

temperature 过高(> 1.0)会导致语音出现不连贯的片段或异常韵律,建议从 0.3 开始试。