Voice Memory for Agentic Speech Recognition
Chao-Han Huck Yang, Zih-Ching Chen, Piotr Zelasko, Zhehuai Chen, Jagadeesh Balam, Boris Ginsburg
cs.CL, cs.AI, cs.SD, eess.AS
2026-07-29
给 ASR 纠错加一份人可读的领域记忆(memory.md),推理时逐句决定改还是不改,只有严格提分才更新、全程不动权重。十个领域加权 WER 从 8.36% 降到 7.52%,过度纠错率从 64% 降到 35%。
语音识别(ASR)已经进入低错误率区间,干净语音 WER 不到 2%。但解码器仍会犯领域相关的系统性错误,传统做法是用生成式错误纠正(GER):把 n-best 候选丢给大模型重写。
问题出在低错误率场景。这时候真正的问题不是「模型能不能改对」,而是「该不该动这一句」。强 LLM 倾向过度纠正,把本来就对的 token 也改了,比如把 "home is" 改成 "home's",按自己的习惯统一数字和拼写。结果静态 GER 在低提升空间领域反而把 WER 抬到了比不编辑的 1-best 还高。
Voice Memory 是一套纯推理方案,核心是把「纠正技能」存进一份人可读的文本文件 memory.md,而不是写进权重。它叫 listener-thinker 架构,脱胎于经典的 ASR-LM 级联。
两个角色只通过 memory 这份文件耦合,权重一个都不动,所以学到的技能可审计、可跨纠错器家族迁移。优化器全程是前向传播,没有梯度、没有权重更新。对比微调或 LoRA,它要的数据少两个量级(约 10² 句对 10³ 到 10⁴ 句),产物不到 10KB,还能回退。
主实验在 HyPoradise 的十个领域,用一个开放纠错器(Qwen3-30B-A3B):
| 指标 | 数值 |
| 加权 WER(纠错前) | 8.36% |
| 加权 WER(Voice Memory) | 7.52%(加 3 个示例 7.47%) |
| 过度纠错率 HER(金融新闻) | 64% → 35% |
| ATIS 航空指令 | 8.40% → 3.40% |
| CHiME-4 远场 | 12.69% → 10.46% |
关键是没有一个领域退化到低于它的 1-best 基线,增益集中在可恢复空间最大的地方:1-best WER 越高的领域提升越大,可恢复信息比 ρ 和 1-best WER 的相关性达到 r=+0.90。
记忆还能跨纠错器家族迁移。换上另一个冻结纠错器(Claude-4.6-Sonnet),同一份记忆照样能用;在 ATIS 上,自生成的记忆甚至超过了 n-best oracle(ρ=1.28)。
这篇的核心结论一句话能讲清:在这里,更好的 agent 就是一份更好的文本文件。它把领域适配从「改权重」变成了「改一份人能看懂的规则文档」,于是变得可审计、可迁移、可回退,推理路径上零新增参数、零额外延迟。
对做 ASR 落地的团队,这意味着领域定制不再需要重训或挂 LoRA,针对每个业务领域维护一份 memory.md 就行,新领域上线是分钟级而不是小时级。
主分析只在一个纠错器(MiniMax-M3)上做(附录用 Qwen3-30B-A3B 复现)。ρ 和 benign-mass 这两个指标依赖所用句子编码器(all-MiniLM-L6-v2,4-bit)。残差 WER 不等于残差提升空间,在 LibriSpeech-Clean 上 42.9% 的残差错误其实是可原谅的(词外人名、拼写变体)。自生成记忆在重数字格式化的 WSJ 上会吃亏(数据饥饿),在 LibriSpeech 下限处无东西可学。
还有一处逻辑张力:作者把「不退化任何领域」当卖点,但增益最小的几个领域(如 td3、lsclean)ρ 已经接近 0 甚至为负,说明这套机制在低提升空间领域基本是靠「按住不动」在撑场面,而不是真的在纠错。