ChatTTS.Chat 类方法详解——load、infer、sample_random_speaker
Chat 类概览
import ChatTTS
chat = ChatTTS.Chat()
Chat 类是 ChatTTS 唯一的顶层入口——模型加载、推理、说话人采样都从它出发。
load(compile=False, device=None, source=None, custom_path=None)
加载模型权重。推荐的现代 API。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
compile | bool | False | 是否启用 torch.compile 加速 |
device | str / int / None | None | 设备选择:'cuda'、'cpu'、GPU 编号 |
source | str / None | None | 'hf' HuggingFace、'modelscope' 国内源、'custom' 自定义路径 |
custom_path | str / None | None | source='custom' 时指定本地模型目录 |
load_models(compile=False)
旧 API,兼容早期代码。功能等价于 load(compile=compile),但不支持 device / source / custom_path 参数。
infer(texts, params_refine_text=None, params_infer_code=None, skip_refine_text=False, use_decoder=False)
核心推理方法,把文本转成音频波形。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
texts | str 或 list[str] | 必填 | 待合成文本 |
params_refine_text | RefineTextParams / None | None | 文本精炼参数 |
params_infer_code | InferCodeParams / None | None | 推理代码参数 |
skip_refine_text | bool | False | 跳过文本精炼(见 skip_refine_text) |
use_decoder | bool | False | 旧参数,保持默认即可 |
返回值:list[np.ndarray]——每个数组对应一条输入文本的 24 kHz float32 单声道波形。
sample_random_speaker()
从说话人嵌入空间中随机采样一个音色。
- 返回值:JSON 字符串,可保存后复用
- 不接受参数
- 每次调用返回不同值(模型内部随机采样)
完整调用示例
chat = ChatTTS.Chat()
chat.load(compile=False)
# 采样说话人
spk = chat.sample_random_speaker()
# 推理
wavs = chat.infer(
["第一条文本", "第二条文本"],
params_refine_text=ChatTTS.Chat.RefineTextParams(prompt='[oral_5]'),
params_infer_code=ChatTTS.Chat.InferCodeParams(
spk_emb=spk,
temperature=0.3,
top_P=0.7,
top_K=20,
)
)