局部纠正优于整句重说
别名: 不要整句重说 · 重说会把对的也听错 · re-injection of slot error
概念解释
地址里只把「中山路」听成「青山路」,门牌和城市都对。逼用户把整句再念一遍,等于把已经对的槽重新送进识别器,新的替换可能改掉门牌。局部纠正优于整句重说(partial correction over full repeat)是一条错误再注入的账:只暴露出错的成分,已对的不要再赌一轮声学。它回答的是修复时该让用户说多少:能不能改其中一项是前提,开口该多短才是这一层的账。
机制
每次开口都是一次独立的识别事件。整句重说的联合错误率随槽数升:三个槽都再念,即使每槽都还算准,至少一个被新错误击中的机会已经不小。局部纠正把联合缩小到一个槽,其余槽的接地被冻结,不再参与这次声学抽奖。人在重说时长句时还会改口、合并、漏掉刚才对的那一段,不是因为健忘,是计划整句的成本把已确认的细节挤出工作记忆。系统若只接受完整句型(必须再含城市和门牌),会把局部纠正在语法层挡掉,人只能整句送。冻结不是忽略:被冻的槽仍应出现在下一次短回述里,让用户看见它们没被这次开口动摇。
怎么研究
同一套地址或航班任务,比较两种修复:只说错的那一截对整句重说。在一个槽上注入错误,其余槽在注入前已经正确。因变量:修复后无辜槽被新错误改写的次数、目标槽修对的次数、用户话轮长度。自变量:已正确槽的个数、目标槽的词汇开放度(路名对封闭的上午/下午)。
日志里把修复轮按「是否重复了已正确槽的词」切开。重复组若无辜槽漂移更高,再注入就被现场证实。实验室脚本若禁止局部句式,会把整句重说的代价做成唯一可观测路径,得出「用户本来就爱重说」的假结论。
边界
唯一的错误是整句都漂了、局部截取没有可对上的残留(口音极重的一串音),局部纠正没有锚,整句或换通道更干净。用户自发把整句又说了一遍,系统仍应按槽对齐:已匹配且置信不低的槽继续冻,只更新对不上的那一段,不要因为用户多说了就全盘覆盖。安全敏感的拼写(账户名)有时必须整段重录,局部替换会留下拼接裂缝。把「局部优于整句」理解成禁止用户一次说多个修复,会误伤「时间和人数都错了」——两个槽一起改仍是局部,相对于把整张单包括对的项再念一遍。
怎么落地
- 修复轮接受只含新值的短句;用类型和对比对齐到目标槽,不要因缺了其他槽名而拒识。
- 对齐之后冻结未提及的已接地槽,即使同一句话里又出现了它们的旧值,也不要用新识别覆盖,除非新值明确冲突。
- 短回述只念被改的项和一两个冻结项,避免把整单再读成「请确认后重说」。
- 验证:三槽地址,只错路名。让一半人只改路名,一半人整句重说。整句组若出现门牌被改写、只改组没有,就不要再把整句重说当成默认修复路径。