术语库与原生热词

VoCoType 使用一份统一术语库同时驱动两层能力:

  1. Contextual Paraformer 原生热词:在 ASR 解码阶段提高专有名词的识别概率。
  2. 确定性标准化:在 ASR 完成后把常见错写统一为指定的标准写法,并保护结果不被 ITN/数字规则误改。

术语库属于 VoCoType 配置,与当前采用哪种输入法 integration 无关:

~/.config/vocotype/terms.yaml

可在 vocotype-settings 的“用户词典”页面编辑并验证;直接编辑文件后也无需重启,下一次转录会自动重新加载。也可用环境变量 VOCOTYPE_TERMS_FILE 指向其他文件。

配置格式

terms:
  - canonical: Ghostty
    aliases:
      - 鬼斯提
      - 格斯提
    hotword: true
    protect: true

  - canonical: README.md
    aliases:
      - read me点md
      - README文件
    hotwords:
      - README
    protect: true

protect:
  - 三体问题
  - 一加手机

字段含义:

ASCII alias 使用单词边界。例如 no → NoSQL 不会误改 nobody,标准词本身重复处理也保持幂等。

原生热词限制

funasr_onnx.ContextualParaformer 使用空格分隔热词。VoCoType 会:

多词英文表达应把适合模型识别的单个 token 写入 hotwords,再用 aliases 规范最终拼写。

旧用户词典兼容

Geequlim fork 使用的格式仍可直接读取:

replace:
  Ghostty:
    - 鬼斯提
    - 格斯提

protect:
  - 一加手机

terms.yaml 不存在而 ~/.config/vocotype/user-dictionary.yaml 存在时,VoCoType 会自动使用旧文件。 新安装会创建 terms.yaml,但不会覆盖任何已有术语文件。

处理顺序

Contextual Paraformer + native hotwords
    ↓
标点恢复
    ↓
术语 alias → canonical
    ↓
VoCoType 确定性中文数字规则
    ↓
重新应用 canonical/protect spans
    ↓
按配置输出日期、时间、距离与货币书写风格

原生热词是概率性偏置,确定性 alias 替换负责保证最终标准写法;二者互补,不应互相替代。ITN 细节见 ITN.md