热词偏置(Contextual Biasing)指的是:在语音识别(ASR, Automatic Speech Recognition)解码的时候,临时给一份指定词表加权,让系统更倾向于把听到的声音认成这些词。词表是你自己给的,可能是产品名、人名、地名、药名、型号、行业黑话。
为什么需要它
语音识别做的事,本质上是"听着声音猜字"。它同时依赖两样东西:声学模型(Acoustic Model)判断这段声音像哪些音,语言模型(Language Model)判断哪个词序列更像人话。问题在于,通用语言模型是在海量日常语料上练出来的,它脑子里"常见"的词是"今天天气""会议纪要",而不是"星野""铱星""枯草芽孢杆菌"。所以你说一个生僻人名,它十有八九给你写成发音相近的常用词。
打个比方:这就像你请了一位速记员,他中文很好,但你今天要讲一堆内部代号。开讲前你递给他一张小纸条,写着"今天会提到:磐石、澜舟、K2、羧甲基纤维素"。他未必认得全,但至少听到相似发音时会优先往纸条上靠,而不是随手写成"盘石""兰舟"。热词偏置就是这张纸条——不改速记员的脑子,只影响他这一次的判断。
工程上的常见做法有两类:一类是在解码打分时加一个偏置项,把热词对应的路径分数抬高(常说的 shallow fusion 属于这一类);另一类是给模型加一个"上下文编码器",让它边听边参考词表,把注意力往相关发音上引。具体实现各家不同,以官方文档为准。
和相邻概念的区别
容易和它混起来的,是下面三个东西:
| 做法 | 生效时机 | 更新成本 | 主要风险 |
|---|---|---|---|
| 热词偏置 | 解码时实时生效 | 换一份词表就行 | 权重给太大会"幻听",没说的词也认出来 |
| 模型微调 | 训练阶段永久写进参数 | 要重新训练、重新部署 | 成本高,小数据容易过拟合 |
| 后处理替换 | 识别完成之后 | 改规则或改映射表 | 上下文对不上时会改错,把对的改成错的 |
| 唤醒词检测 | 常驻监听 | 固定 | 目标不是转写,只是判断"有没有出现" |
一句话概括差别:微调是"改脑子",偏置是"递纸条",后处理是"事后改稿"。偏置的好处是随时可换、不动模型;代价是它只是"倾向",不是"保证"。
对从业者和普通人的意义
对做语音产品的人,热词表应该被当成一个可运营的配置项,而不是写死在代码里的常量。几个实操要点:词表别无限膨胀,几千上万条之后收益会明显衰减甚至互相干扰;给多音字、英文缩写、中英混读的词补上发音标注,效果通常比单纯堆词更好;偏置强度要可调,宁可少召回也别硬凑。
对普通职场人,你在会议转写、语音输入、自动字幕里觉得"它这次居然听懂了我的专业名词",背后多半就是这个机制在起作用。反过来说,既然它能被"引导",也就意味着它可能被过度引导——所以看到转写结果里的专有名词,顺手核对一下,尤其是数字和型号。
