热词管理

更新时间:
复制 MD 格式

热词库用来纠正语音合成里读错的词:专有名词、品牌名、英文缩写、多音字等。你在热词库里写下「原词 → 替换文本」规则,合成时平台会先把文本里的原词替换成替换文本再朗读,例如把 GitHub 读作「吉特哈布」、把 API 逐个字母读出。在左侧导航栏点击 音色库 > 热词管理 进入热词管理页。

页面结构

  • 左侧主区:音色库 > 热词管理

  • 右侧面板:以卡片形式列出当前 工作空间 下的全部热词库。每张卡片展示名称、描述、规则条数与更新时间;鼠标悬停时右上角出现 编辑、删除 按钮,右下角出现 复制热词库 ID 按钮。顶部搜索框支持按名称、描述或 ID 筛选。

  • image

核心操作

1. 新建热词库

  1. 点击右上角的 新建热词库 按钮

  2. 在弹窗中填写:

    • 名称(必填)——不超过 25 个字符,例如「产品专有名词」

    • 描述(选填)——说明该热词库的用途,方便团队成员识别

  3. 在 替换规则 区填写规则,每行一条:左侧为 原词,右侧为 替换文本。点击 添加规则 追加新行,点击行尾垃圾桶图标删除该行

  4. 点击 创建

规则较多时,可以用 批量导入 一次性粘贴,见下文「批量导入与备份」。

原词 区分大小写、精确匹配。GitHub 和 github 是两条不同的规则,如需同时覆盖请分别添加。

image

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 分隔)粘贴,或在弹窗中逐行填写。