端到端 ASR 和传统混合系统,差别到底在哪

2026-08-24

传统混合系统把语音识别拆成声学模型、发音词典、语言模型三块,各自训练,再用一张 WFST 解码图串起来;端到端系统用一个神经网络直接从音频特征输出文字。差别的本质不是”新旧”,而是语言知识由谁承载、在哪一步注入。

网上很多对比文章的结论是”端到端全面胜出”。这个说法在多数场景成立,但它掩盖了一件事:混合系统有一个至今没有被完全替代的能力,而那恰好是很多业务场景的命门。先把结构讲清楚,再谈取舍。

混合系统是怎么分工的

一套经典的混合系统由三个独立训练的部件组成:

  • 声学模型:判断每一帧音频特征最像哪个发音单元(音素或状态)。它只管”听起来像什么音”。
  • 发音词典:规定每个词由哪些音素拼成。这是一张人工维护的映射表。
  • 语言模型:判断一串词出现的可能性有多大。它只看文本,不看音频。

三者靠 WFST 解码图(加权有限状态转换器)拼成一张搜索网络:从音素到词、从词到句,每条路径都有分数,解码就是在图上找总分最高的路径。

关键在于它们是解耦的。声学模型不知道词典里有什么词,语言模型也不知道声学长什么样。这个解耦决定了后面所有的优点和缺点。

端到端的三种范式,别用混了

端到端把上面三块合成一个网络。核心难点是对齐:几百帧特征对应几十个字,模型不知道哪几帧属于哪个字。三种主流解法:

范式怎么解决对齐是否建模输出间依赖流式友好度
CTC引入 blank 空白符,允许每帧都输出点什么,再折叠重复与空白不建模,假设输出标签间条件独立天然适合流式
AED(注意力编码器-解码器 / LAS)解码器用注意力从整段编码结果里取信息建模原生不适合流式,要看到整段才能解码
RNN-T(Transducer)在 CTC 基础上加预测网络联合网络建模既能流式,又建模依赖

这三个词经常被混着用,说清楚就是:

  • CTC 的条件独立假设是它简单和适合流式的原因,也是它的局限——它不知道自己上一个字输出了什么,缺少语言建模能力,所以工程上常常要外挂语言模型来补。
  • AED 的精度来源是”能看全”,代价就是”必须看全”。它天生和流式冲突,要做流式得额外改造(分块注意力之类)。
  • RNN-T 的预测网络扮演的角色,本质上像一个内建的语言模型,联合网络把它和声学编码结果融合。这就是它既流式又能建模输出依赖的原因,也是流式识别当前的主流选择。

流式与整段这条线本身还有更多工程细节,见流式识别和整段识别,什么时候该用哪个

混合系统那个还没被替代的优点

现在说本文最重要的一点。

混合系统里,加一个新词只要改发音词典和语言模型,声学模型完全不用动。你新增一个人名、一个药品名、一个内部产品代号,把它的发音写进词典、在语言模型里给它合理的概率,重新编译解码图,就完事了。声学模型仍然只负责”这段听起来像什么音”,它压根不需要知道世界上多了一个词。

端到端系统做不到这一点。词表和语言知识都被压进了同一套网络权重里,想让它更容易输出某个专名,只能靠额外的偏置机制——解码时提高该词的打分、把热词编进词图、或者给能吃文本提示的模型喂一段上下文。这些机制有效,但都是外挂,都有副作用:权重开大了会把发音相近的普通词强行识别成热词,也就是误触发。热词的具体做法和副作用见热词到底怎么配才不误触发

所以判断标准很实际:你的词表多久变一次、专名密度有多高

  • 通用场景、词表基本不动 → 端到端的收益是压倒性的。
  • 医疗、法务、金融、企业内部会议这类专名密集且天天新增的场景 → 混合系统的这个特性仍然是真金白银。

顺带一提,还有一条常被忽略的差别:混合系统能单独用大量纯文本训练语言模型,而端到端主要依赖成对的”音频-文本”数据。当某个领域有海量文本却几乎没有对应录音时,这条路径差异会直接变成数据成本差异。

混合系统的思路并没有消失

WFST 那套东西并不是被丢进历史垃圾桶了,它在很多端到端工具链里以”解码侧”的形式活着。

比如面向生产的端到端识别工具包 WeNethttps://github.com/wenet-e2e/wenet,Apache-2.0),其 README 就提到了基于 WFST 的解码与语言模型融合,并说明代码借鉴自 Kaldi。这是一个很典型的组合形态:神经网络负责声学建模,WFST 负责在解码阶段注入语言知识和领域词表。

这说明”端到端 vs 混合”在真实工程里并不是二选一的单选题,而更像光谱:网络承担多少、解码图承担多少,可以按场景调。

一份可以照着走的选型清单

按顺序问自己这五个问题,基本就能定下来:

  1. 要不要边说边出字? 要 → 排除原生 AED,在 CTC 与 RNN-T 之间选;不要 → AED 或整段模型都在候选内。
  2. 词表多久变一次? 每周都在加新专名 → 认真评估混合系统或带 WFST 解码的方案;一年不动 → 端到端。
  3. 有没有海量纯文本但缺录音? 有 → 语言模型可以单独训练的路线更划算。
  4. 出错了要不要定位到具体环节? 需要逐级诊断(比如给客户出报告)→ 混合系统的分级结构可单独排查;能接受黑盒 → 端到端。
  5. 团队维护得动一张解码图吗? 词典、音素集、图编译都需要人手和知识储备。这项常常才是真正的决定因素。

第 5 条我特意放在最后:技术上成立不等于团队养得起。很多团队最终选端到端,理由不是精度,是没人会维护 WFST 那一套。

想把这两条路真的比出高下,别看别人的分数,用自己的数据建测试集来跑,指标口径见 WER 怎么算

常见问题

问:混合系统是不是已经过时了?

在通用场景里它确实不是主流选择了。但”过时”和”没用”是两回事——加新词不用重训声学模型这个特性,以及可分级诊断的结构,在专名密集、词表频繁更新的场景里仍然有实打实的价值。更准确的说法是它退到了特定生态位,而不是消失。

问:CTC 既然假设输出条件独立,为什么还在用?

因为它简单、训练稳定、天然适合流式,而且它的”不建模输出依赖”这个缺口可以在解码阶段用外部语言模型补上。很多系统也把 CTC 当作辅助损失和 AED 联合训练,用来稳住对齐。

问:RNN-T 里的预测网络就是语言模型吗?

功能上接近,它建模的是已输出文字序列对下一个输出的影响,但它是和整个网络一起端到端训练的,不像混合系统的语言模型那样可以单独用纯文本训练、单独替换。这个区别正是”端到端换词表更麻烦”的根源。

问:选定之后还能换吗?

能,但代价不对称。从混合系统换到端到端,训练数据大多可以复用;反过来要补词典和音素集,工作量更大。所以第一次选型时,词表更新频率这个问题值得多花点时间问清楚业务方。

相关阅读


本文讲的是语音识别的通用建模原理,不绑定某一个具体实现。 文中提到的开源项目信息来自其公开仓库的自述内容,各家的能力边界与默认配置差异很大,请以官方文档为准。 我们没有对文中提到的任何方案做过性能实测,因此不给准确率、速度一类的数字。

想系统学会用 AI?报名体系课或加入会员,照着学、照着用。