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_emb | str / None | None | 说话人嵌入字符串。None 则用默认音色 |
temperature | float | 约 1.0 | 温度采样。越低越保守,越高越多样 |
top_P | float | 约 0.7 | Nucleus 采样的 P 值 |
top_K | int | 约 20 | Top-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
三者配合决定模型采样的多样性:
- 三个参数都低 → 模型非常确定,输出稳定但可能单调
- 三个参数都高 → 模型非常随机,输出多样但可能不连贯
- 推荐起始值:temperature=0.3, top_P=0.7, top_K=20
典型配置模板
# 日常对话(推荐)
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
)