语音识别的解码端长期被自回归语言模型垄断,但其单向因果注意力天然无法利用未来上下文,扩散语言模型的兴起为打破这一瓶颈提供了全新路径。
语音识别最早依赖隐马尔可夫模型(HMM)与高斯混合模型(GMM)的组合,由 Jelinek 等人在 IBM 确立了"声学模型 + 语言模型"的两阶段范式。语言模型部分采用 n-gram,本质上是对 $P(w_t | w_{t-1}, \ldots, w_{t-n+1})$ 的估计,方向性从左到右,这一惯例沿用至今。
Graves 提出 CTC(Connectionist Temporal Classification),Chorowski 等人引入注意力机制的 Seq2Seq ASR,随后 Google 的 Listen, Attend and Spell(LAS)将 Transformer 解码器引入 ASR,彻底确立了自回归解码的主导地位。自回归模型的优势在于训练目标简单(teacher forcing 下的交叉熵),但推理时必须逐 token 串行生成,延迟随序列长度线性增长,且单向注意力无法回望未来。
为解决自回归延迟问题,研究者尝试 Mask-Predict(Ghazvininejad et al., 2019)、Imputer、CMLM 等非自回归方法,允许并行生成所有 token。但这类方法在 ASR 上的精度始终落后于自回归模型,原因在于条件独立假设过强——模型无法捕捉输出 token 之间的强依赖。
DDPM 在图像领域大获成功后,Diffusion-LM(Li et al., 2022, NeurIPS)尝试将连续扩散应用于文本,通过在词嵌入空间加噪去噪来生成序列。但连续扩散用于离散文本存在根本性阻抗:文本天然是离散的,嵌入空间的扩散需要额外的"rounding"步骤,引入误差。
Austin et al.(2021, NeurIPS)提出 D3PM(Discrete Denoising Diffusion Probabilistic Models),将扩散过程直接定义在离散 token 空间。其中吸收态(absorbing state)扩散——即将 token 逐步替换为 [MASK]——被证明等价于 BERT 式掩码语言模型的多步迭代版本。Sahoo et al. 和 Shi et al.(2024)进一步提出 MDLM 和 SEDD,建立了严格的 ELBO 训练目标,使离散扩散在语言建模困惑度上首次接近 GPT-2 级别。将 MDLM 引入 ASR 的动机在于:双向注意力天然适合利用声学编码器输出的全局上下文,且并行解码可大幅降低延迟。
离散扩散的前向过程定义在 token 空间。设词表大小为 $V$,序列长度为 $L$,时间步 $t \in [0, T]$。在吸收态扩散中,前向转移矩阵为: $$Q_t = (1 - \beta_t) I + \beta_t \mathbf{1} \mathbf{e}_{\text{mask}}^\top$$ 其中 $\beta_t$ 是时间步 $t$ 的掩码概率,$\mathbf{e}_{\text{mask}}$ 是 [MASK] token 的 one-hot 向量。直觉上,每个 token 以概率 $\beta_t$ 被替换为 [MASK],以概率 $1-\beta_t$ 保持不变。累积后,$t$ 步时 token $x_0$ 被掩码的概率为 $\bar{\beta}_t = 1 - \prod_{s=1}^{t}(1-\beta_s)$。 逆向过程的训练目标是最大化 ELBO: $$\mathcal{L} = \mathbb{E}_{t, x_0, x_t} \left[ \sum_{i: x_t^i = \text{MASK}} \log p_\theta(x_0^i | x_t) \right]$$ 即对所有被掩码的位置,用参数为 $\theta$ 的双向 Transformer 预测原始 token。这与 BERT 的 MLM 目标形式相同,但 MDLM 在推理时执行多步迭代去噪:从 $x_T$(全 MASK)出发,每步预测并"揭露"置信度最高的若干 token,直到 $x_0$ 完全恢复。 在 ASR 场景中,模型输入为声学编码器输出 $h = \text{Encoder}(\text{audio})$,条件概率变为 $p_\theta(x_0^i | x_t, h)$,通过交叉注意力将声学信息注入扩散解码器。
整体逻辑是:声学编码器提取音频表示,扩散解码器从全掩码序列出发,通过 $K$ 步迭代去噪,每步并行预测所有被掩码位置,最终输出完整转录文本。
将原始音频(或 Mel 频谱)输入预训练声学编码器(如 Whisper Encoder 或 wav2vec 2.0),得到帧级表示序列 $h \in \mathbb{R}^{T_a \times d}$。这一步与传统 ASR 完全相同,扩散模型仅替换解码端。关键设计:声学编码器可以冻结或微调,冻结时扩散解码器作为即插即用模块,降低训练成本。
推理开始时,将目标序列长度 $L$(可由 CTC 预测或固定为最大长度)的所有位置初始化为 [MASK],得到 $x_T = [\text{MASK}, \text{MASK}, \ldots, \text{MASK}]$。为什么不像自回归模型那样从左到右生成?因为语音中后续词的声学证据对当前词的消歧至关重要(如"识别"vs"时别"),全局初始化允许模型在第一步就看到完整声学上下文。
执行 $K$ 步去噪(典型值 $K=10\sim50$,远小于自回归的序列长度 $L$):
python x = [MASK] * L # 初始化 for step in range(K, 0, -1): t = step / K # 当前噪声水平 # 双向 Transformer 并行预测所有 MASK 位置 logits = denoiser(x, h, t) # shape: [L, V] probs = softmax(logits) # 每位置的 token 概率分布 # 计算每位置的置信度(最大概率值) confidence = probs.max(dim=-1) # 本步应揭露的 token 数量 n_reveal = L * (1 - (step-1)/K) - L * (1 - step/K) # 选置信度最高的位置揭露,其余保持 MASK top_indices = confidence.topk(n_reveal).indices x[top_indices] = probs[top_indices].argmax(dim=-1)这种"置信度优先揭露"策略(来自 Mask-Predict)确保模型先确定高置信 token,再用它们辅助低置信位置的预测,形成良性迭代。
去噪网络 $p_\theta$ 是标准 Transformer,但去掉因果掩码,允许每个位置关注所有其他位置(包括已揭露的 token 和仍为 MASK 的位置)。时间步 $t$ 通过正弦编码注入,使模型感知当前噪声水平。交叉注意力层将声学表示 $h$ 注入每个解码层。与自回归解码器相比,双向注意力使模型能利用"右侧"已揭露 token 修正"左侧"的预测,这在语音中尤为重要(如连读、协同发音现象)。
非自回归模型需要预先知道输出长度 $L$。常见方案:①用辅助 CTC 头预测长度;②训练一个独立的长度预测器;③枚举多个候选长度取最优。长度预测误差是非自回归 ASR 的主要误差来源之一,也是当前研究热点。
掩码扩散语言模型为 ASR 解码提供了第三条路:既非传统自回归(慢、单向),也非朴素非自回归(精度差),而是通过迭代去噪在速度与精度间取得平衡。其双向注意力特性与声学模型的全局编码天然契合。在工业场景中,$K=10$ 步的扩散解码可比自回归快 5–10 倍,同时保持接近的 WER。Meta AI 和 Google 的多个研究组已将类似思路用于语音翻译和多语言 ASR,预计未来 2–3 年内进入生产系统。
当前开放问题包括:①长度预测误差的系统性解决方案;②如何在流式场景中应用扩散解码(当前扩散天然是批处理的);③扩散步数 $K$ 与精度的 Pareto 最优点如何自适应选择;④与 CTC/RNN-T 的混合架构设计;⑤离散扩散在多语言、低资源 ASR 上的泛化能力评估。