热词库用来纠正语音合成里读错的词:专有名词、品牌名、英文缩写、多音字等。你在热词库里写下「原词 → 替换文本」规则,合成时平台会先把文本里的原词替换成替换文本再朗读,例如把 GitHub 读作「吉特哈布」、把 API 逐个字母读出。在左侧导航栏点击 音色库 > 热词管理 进入热词管理页。
页面结构
左侧主区:音色库 > 热词管理
右侧面板:以卡片形式列出当前 工作空间 下的全部热词库。每张卡片展示名称、描述、规则条数与更新时间;鼠标悬停时右上角出现 编辑、删除 按钮,右下角出现 复制热词库 ID 按钮。顶部搜索框支持按名称、描述或 ID 筛选。

核心操作
1. 新建热词库
点击右上角的 新建热词库 按钮
在弹窗中填写:
名称(必填)——不超过 25 个字符,例如「产品专有名词」
描述(选填)——说明该热词库的用途,方便团队成员识别
在 替换规则 区填写规则,每行一条:左侧为 原词,右侧为 替换文本。点击 添加规则 追加新行,点击行尾垃圾桶图标删除该行
点击 创建
规则较多时,可以用 批量导入 一次性粘贴,见下文「批量导入与备份」。
原词 区分大小写、精确匹配。GitHub和github是两条不同的规则,如需同时覆盖请分别添加。

2. 在代码中使用热词库
创建成功后,悬停在卡片上点击右下角的 复制热词库 ID(形如 3f9a2c1e-7b4d-4e8a-9c0f-1d2e3f4a5b6c),在实时语音合成 WebSocket 的 run-task 指令中通过 parameters.vocabulary_id 引用它:
{
"header": {
"action": "run-task",
"task_id": "<你的任务 ID>",
"streaming": "duplex"
},
"payload": {
"task_group": "audio",
"task": "tts",
"function": "SpeechSynthesizer",
"model": "<模型名>",
"parameters": {
"voice": "<音色 ID>",
"format": "mp3",
"vocabulary_id": "3f9a2c1e-7b4d-4e8a-9c0f-1d2e3f4a5b6c"
},
"input": {}
}
}完整的协议说明见《实时语音合成 WebSocket API》。
如果某次任务需要临时追加或覆盖几条规则,可以同时传入任务级的 parameters.hot_fix.replace:
"parameters": {
"vocabulary_id": "3f9a2c1e-7b4d-4e8a-9c0f-1d2e3f4a5b6c",
"hot_fix": {
"replace": [
{ "Qwen": "通义千问" }
]
}
}两者按原词合并:同一原词以 hot_fix.replace 为准,其余规则照常生效。
vocabulary_id只能在run-task中指定,任务开始后不能通过continue-task更换;continue-task只能更新hot_fix.replace临时规则。
3. 查看详情
点击卡片打开详情面板,可以看到热词库 ID、规则条数、创建与更新时间、描述,以及完整的规则列表(每页 20 条)。面板顶部支持按原词或替换文本搜索;点击右上角 编辑 可直接进入编辑。
4. 编辑
悬停在卡片上点击 编辑,或在详情面板中点击 编辑。可以修改名称、描述和规则,点击 保存 生效。
保存会整体覆盖原有规则,平台不保留历史版本,也无法回滚。规则较多或改动较大时,建议先在详情面板点击 复制全部规则 做一份备份。
保存后,新发起的合成任务会使用新规则(通常在 30 秒内生效);已经在进行中的任务继续使用开始时的规则,不受影响。
5. 批量导入与备份
在新建 / 编辑弹窗中点击 批量导入,在文本框中粘贴规则,每行一条,格式为:
GitHub=吉特哈布
API=A P I也可以直接从 Excel 复制两列(原词、替换文本)粘贴进来,系统会按 Tab 自动识别。导入规则:
分隔符两侧的空白会被去除,空行自动忽略
粘贴内容里同一原词出现多次,以 最后一次 为准
与弹窗里已有的规则合并:同原词覆盖替换文本,新原词追加到末尾
格式不正确的行会被跳过,并提示具体行号
导入只是填入弹窗,点击 创建 / 保存 后才会真正写入。
需要备份或迁移时,在详情面板点击 复制全部规则,复制出来的内容就是上面的 原词=替换文本 格式,可以原样粘贴回批量导入。
6. 删除
悬停在卡片上点击 删除,二次确认后该热词库 永久删除,不可恢复。
删除后,仍在请求中引用该 ID 的合成任务 不会报错,而是按「没有热词规则」继续合成,因此读音会回到默认效果。请在删除前确认业务侧已不再依赖它。
关键限制
数量上限:每个工作空间最多 10 个 热词库。达到上限后需先删除不再使用的热词库才能新建。
规则上限:
项目
限制
名称
必填,不超过 25 个字符
描述
选填,不超过 2048 个字符
单个热词库规则条数
不超过 500 条
原词 / 替换文本
均不能为空,各不超过 20 个字符
单个热词库总体积
不超过 64 KB
字符数按 Unicode 字符计算,一个汉字、一个字母或一个 emoji 都计 1 个字符。
精确匹配,不做任何归一化:原词区分大小写、区分全角半角,首尾空格也算在内,不会自动去除。同一热词库内原词不能重复。
不允许控制字符:原词与替换文本中不能包含换行、Tab 等控制字符。
匹配规则:合成文本从左到右扫描,同一位置 优先匹配最长的原词;替换结果 不会再被二次替换。例如同时配置
阿里 → A和阿里云 → B,文本「阿里云」只会被替换为B。规则在列表中的先后顺序不影响结果。与 SSML 互斥:请求设置
enable_ssml=true时不能同时传vocabulary_id,否则任务会报参数错误。SSML 场景请直接在 SSML 标签中控制读音。一个任务只能引用一个热词库:需要组合多套规则时,请把它们合并到同一个热词库,或用
hot_fix.replace补充临时规则。临时规则的上限:
hot_fix.replace单次最多 128 条、16 KB;
常见问题
保存后为什么没有立刻生效? 规则只对 新发起 的任务生效,进行中的任务沿用开始时的规则;
可以回退到之前保存的规则吗? 不能,平台不保留历史版本。建议改动前用 复制全部规则 备份。
原词按字面精确匹配,区分大小写,不会自动统一大小写。例如规则
hello → 哈喽只命中文本中的hello,不会命中Hello。规则顺序有影响吗? 没有。同一位置总是优先匹配最长的原词,与规则在列表中的顺序无关。
能让替换后的文本再被其它规则替换吗? 不能,替换结果不会参与后续匹配,避免规则之间相互连锁。
删除热词库/ID 填错了,引用它的线上请求会失败吗?不会失败。任务忽略该词库并继续合成,通过成功响应中的
warnings提示用户。临时hot_fix规则仍生效。可以同时开启 SSML 和热词库吗? 不能,
enable_ssml=true时传入vocabulary_id会报参数错误。提示「热词库数量已达上限(10 个)」怎么办? 删除不再使用的热词库,或把用途相近的规则合并到同一个热词库中。
批量导入时原词里能带等号吗? 使用
原词=替换文本格式时,系统以第一个=作为分隔符,因此原词中不能含有=;这种情况请改用 Excel 两列(Tab 分隔)粘贴,或在弹窗中逐行填写。