ChatTTS 中文文档 下载 App

InferCodeParams 参数对象——推理阶段的完整配置

创建方式

params = ChatTTS.Chat.InferCodeParams(
    spk_emb=spk_string,
    temperature=0.3,
    top_P=0.7,
    top_K=20,
)

然后传给 chat.infer(text, params_infer_code=params)。

全部字段

字段类型默认值说明
spk_embstr / NoneNone说话人嵌入字符串。None 则用默认音色
temperaturefloat约 1.0温度采样。越低越保守,越高越多样
top_Pfloat约 0.7Nucleus 采样的 P 值
top_Kint约 20Top-K 采样的 K 值

各字段详解

spk_emb

# 方式一:自己采样
spk = chat.sample_random_speaker()

# 方式二:加载之前保存的
with open('speaker.json') as f:
    spk = json.load(f)['speaker']

params = ChatTTS.Chat.InferCodeParams(spk_emb=spk)

不传 spk_emb 时 ChatTTS 使用内置默认说话人,每次音色相同。

temperature、top_P、top_K

三者配合决定模型采样的多样性:

典型配置模板

# 日常对话(推荐)
ChatTTS.Chat.InferCodeParams(
    spk_emb=spk,
    temperature=0.3,
    top_P=0.7,
    top_K=20,
)

# 保守稳定
ChatTTS.Chat.InferCodeParams(
    spk_emb=spk,
    temperature=0.1,
    top_P=0.5,
    top_K=10,
)

# 创意多样
ChatTTS.Chat.InferCodeParams(
    spk_emb=spk,
    temperature=0.5,
    top_P=0.8,
    top_K=25,
)

与 RefineTextParams 配合

wavs = chat.infer(
    text,
    params_refine_text=ChatTTS.Chat.RefineTextParams(prompt='[oral_6]'),
    params_infer_code=params,  # 上面定义的 InferCodeParams
)