词典词条优先级——按命中频率排序 + 手动添加保留席位
为什么需要优先级
ASR 提供商给热词 hotwords 的字符预算是有限的——通常只有几百个字符。如果你的词典有上千个词条,不可能全部塞进热词参数。
OpenLess 的解决方案是:给所有词条排一个优先级,热词预算优先给排名靠前的词条。
优先级排序规则
词典词条的优先级分数由两个因素决定:
| 因素 | 权重 | 说明 |
|---|---|---|
| 累计命中次数 | 主要 | 这个词条在 ASR 识别中被正确匹配过多少次——用得越多、排名越靠前 |
| 手动添加标记 | 次要 | 手动新添加的词条(还没被实际命中过)获得几个额外保留席位,不会被老词条挤掉 |
实际排序效果
假设热词预算能塞下 100 个词条:
- 前 5 个名额预留给最近手动添加、还没被高频使用的词条——确保新词条立即生效
- 剩下 95 个名额按命中次数从高到低填充——最常用的 95 个词条永远有热词位置
- 低频词条排在 100 名之后——不进热词参数,但润色环节的语义提示仍然全量注入(不受字符预算限制)
优先级的动态变化
每次录音都会影响词条优先级:
- 某个词条在本次 ASR 识别中被命中 → 它的命中次数 +1 → 下次排序排名提升
- 某个词条连续很多次没被命中 → 排名自然下滑
- 你手动添加了一个新词条 → 立即获得保留席位,排在热词列表前部
优先级不需要你手动操作——系统自动维护。
润色环节不受热词预算限制
重要:润色 LLM 的语义提示不需要 ASR 那种热词预算。词典词条的完整列表(不管几千个)都会作为 semantic hints 注入润色模型的 prompt。热词预算限制只影响 ASR 识别环节。
所以即使某个词条不在 ASR 热词列表里,它仍然能在润色环节帮助模型做同音字/形近字的语义消歧。
如何查看词条命中情况
在「词典」tab 里,每个词条旁边显示一个命中次数:
- 这个数字是 OpenLess 累计统计的——这个词条在 ASR 识别中被正确匹配了多少次
- 可以按「命中次数」升序/降序/最近添加时间调整排序
- 命中 0 次但你又觉得应该高频出现的词条 → 可能说明你没有在实际录音场景中用到过这个词,或者这个词的 ASR 识别准确率本来就很高、不需要热词辅助
手动干预优先级
目前 OpenLess 不支持手动给词条加减优先级权重——优先级完全由自动规则驱动。
如果你觉得某个词条「应该排在前面但没排上」,最直接的办法是:确认它在词典里是启用状态;用它所在的录音场景多录几次——它的命中次数会自动上升、排名自动靠前。