尽管联结主义时间分类 (CTC) 和基于注意力的编码器-解码器提供了强大的端到端方法,但它们具有固有的局限性特点。CTC 严格的条件独立假设可能具有限制性,而标准注意力机制通常需要处理整个输入序列,这使得它们不太适合低延迟的流式应用。RNN 转导器 (RNN-T) 架构提供了一种替代方案,它巧妙地满足了流式处理的需求,同时提供了强大的建模能力。由 Alex Graves 于 2012 年提出,RNN-T 专门为序列到序列的转导问题而设计,其中输入和输出序列之间的对齐是单调的,但并非预先严格确定的,这非常适合语音识别。它通过引入一种机制来实现这一点,该机制明确地对在每一步生成一个输出符号 或 使用下一个输入帧的概率进行建模。RNN 转导器架构RNN-T 模型由三个主要神经网络组件构成:声学编码器网络: 该网络的功能类似于其他序列模型中的编码器。它接收输入音频特征序列 $X = (x_1, x_2, ..., x_T)$(例如,梅尔滤波器组或 MFCC),并通常使用循环层(LSTMs, GRUs)或 Transformer 块进行处理,以生成一系列高级声学表示 $h^{enc} = (h^{enc}_1, h^{enc}_2, ..., h^{enc}_T)$。每个 $h^{enc}_t$ 概括了直到时间步 $t$ 的声学信息。标签预测器网络: 该网络预测输出序列的历史。它接收先前生成的非空白输出标签 $y_{u-1}$ 作为输入,并生成一个预测表示 $h^{pred}_u$。通常实现为 RNN (LSTM/GRU),它根据目前已生成的符号学习预测下一个可能的输出符号。在第一步,预测器的输入通常是一个特殊的序列开始标记。令输出序列为 $Y = (y_1, y_2, ..., y_U)$。联合网络: 这通常是一个前馈网络,它结合了声学编码器和标签预测器的输出。它接收当前输入帧 $t$ 的声学表示 $h^{enc}t$ 和基于先前生成的标签 $y{u-1}$ 的预测表示 $h^{pred}u$,并计算一个联合表示 $z{t,u}$。 $$ z_{t,u} = \text{联合网络}(\text{tanh}(W_{enc} h^{enc}t + W{pred} h^{pred}u + b{joint})) $$ 其中 $W_{enc}$、$W_{pred}$ 和 $b_{joint}$ 是可学习参数。双曲正切 (tanh) 在此处是一个常用激活函数。最后,对联合网络 $z_{t,u}$ 的输出应用一个 softmax 层,以生成一个可能输出标签词汇表上的概率分布,包括一个特殊的“空白”符号 ($\phi$)。 $$ P(k | t, u) = \text{softmax}(W_{out} z_{t,u} + b_{out}) $$ 在这里,$k$ 代表词汇表中的任何符号(例如,字符、音素)以及空白符号 $\phi$。$P(k|t, u)$ 是在给定直到帧 $t$ 的声学上下文和直到符号 $u$ 的标签上下文的情况下生成符号 $k$ 的概率。digraph RNN_T_Architecture { rankdir=LR; node [shape=box, style="rounded,filled", fillcolor="#e9ecef", fontname="sans-serif"]; edge [fontname="sans-serif"]; subgraph cluster_input { label = "输入"; style=filled; color="#dee2e6"; audio_features [label="音频特征\nX = (x₁, ..., xᵀ)", shape=note, fillcolor="#a5d8ff"]; prev_label [label="先前标签\ny₍ᵤ₋₁₎", shape=note, fillcolor="#ffec99"]; } subgraph cluster_networks { label = "RNN-T 组成部分"; style=filled; color="#dee2e6"; node [fillcolor="#d0bfff"]; encoder [label="声学编码器\n(RNN/Transformer)"]; predictor [label="标签预测器\n(RNN)"]; joint [label="联合网络\n(前馈)"]; softmax [label="Softmax"]; encoder -> joint [label="h_t\u1D49\u207F\u1D9C"]; predictor -> joint [label="h_u\u1D56\u02B3\u1D49\u1D48"]; joint -> softmax [label="z_{t,u}"]; } subgraph cluster_output { label = "输出分布"; style=filled; color="#dee2e6"; output_prob [label="P(k | t, u)\n(词汇表 + 空白)", shape=note, fillcolor="#b2f2bb"]; } audio_features -> encoder; prev_label -> predictor; softmax -> output_prob; // Invisible edges for layout control if needed // prev_label -> encoder [style=invis]; }RNN 转导器的高级架构。声学编码器处理输入特征,标签预测器处理先前的输出标签,联合网络结合它们的输出,通过 Softmax 层预测下一个输出符号(包括空白)的概率分布。转导过程和损失函数RNN-T 的核心在于它如何定义在给定输入序列 $X$ 的情况下,输出序列 $Y$ 的概率。不同于计算单一对齐的注意力模型,RNN-T 考虑 $X$ 和 $Y$ 之间 所有可能的对齐。对齐路径 $\pi$ 是通过一个由输入时间步 $T$ 和最大输出序列长度 $U$ 定义的网格的操作序列。在此网格中的每个点 $(t, u)$(表示已处理 $t$ 个输入帧并生成 $u$ 个输出标签),模型可以:生成一个非空白符号 $k$: 这将从状态 $(t, u)$ 转移到 $(t, u+1)$。概率为 $P(k | t, u)$。生成空白符号 $\phi$: 这表示在不产生输出标签的情况下使用下一个输入帧。这将从状态 $(t, u)$ 转移到 $(t+1, u)$。概率为 $P(\phi | t, u)$。模型被限制为处理所有 $T$ 个输入帧并精确生成目标序列 $Y$(长度为 $U$)。总概率 $P(Y|X)$ 是所有有效对齐路径的概率之和,这些路径从 $(0, 0)$ 开始并在 $(T, U)$ 结束,在移除空白符号后生成序列 $Y$。 $$ P(Y|X) = \sum_{\pi \in \mathcal{B}^{-1}(Y)} P(\pi | X) $$ 其中 $\mathcal{B}^{-1}(Y)$ 是所有在移除空白后映射到 $Y$ 的对齐路径的集合,并且 $P(\pi | X)$ 是路径 $\pi$ 上概率 $P(k | t, u)$ 或 $P(\phi | t, u)$ 的乘积。高效计算此和需要动态规划,类似于 HMM 和 CTC 中使用的前向算法。我们将前向变量 $\alpha(t, u)$ 定义为所有路径的总概率,这些路径已处理 $t$ 个输入帧并生成目标序列 $Y$ 的前 $u$ 个符号。递归过程涉及对两种可能的先行状态的概率求和:通过在帧 $t$ 生成空白符号 $\phi$ 达到 $(t, u)$,此时在帧 $t-1$ 已生成 $Y_{1:u}$。这来自状态 $(t-1, u)$。通过在帧 $t$ 生成目标符号 $y_u$ 达到 $(t, u)$,此时在帧 $t$ 已生成 $Y_{1:u-1}$。这来自状态 $(t, u-1)$。The exact recurrence relation is: $$ \alpha(t, u) = \alpha(t-1, u) P(\phi | t, u) + \alpha(t, u-1) P(y_u | t, u-1) $$ 注意:概率项中精确的条件变量取决于与网格点 $(t, u)$、$(t-1, u)$ 和 $(t, u-1)$ 对应的编码器和预测器网络的具体状态。RNN-T 损失函数就是给定输入的,目标序列的负对数似然: $$ L_{RNNT} = -\ln P(Y|X) = -\ln \alpha(T, U) $$ 这个损失函数对模型参数是可微分的,可以使用标准梯度下降技术进行优化。推断与解码在推断期间,目标是为给定输入 $X$ 找出最可能的输出序列 $Y^$: $$ Y^ = \arg\max_Y P(Y|X) $$ 由于可能的输出序列数量庞大,找到精确最大化序列在计算上是难以实现的。因此,采用束搜索等近似搜索算法。解码过程自然地以流式方式运行:将束初始化为空假设,状态为 $(t=0, u=0)$。在每个输入时间步 $t$:对于束中以状态 $(t', u')$ 结束的每个假设(部分输出序列):计算生成空白符号 $P(\phi | t, u')$ 的概率。用此概率将假设路径扩展到 $(t, u')$。计算生成每个非空白符号 $k$ 的概率 $P(k | t, u')$。用此概率将 $k$ 添加到假设路径,将路径扩展到 $(t, u'+1)$。合并导致相同输出序列前缀的假设的概率。修剪束,只保留得分最高的假设。继续直到输入序列 $T$ 的末尾。束中得分最高的完整假设是最终输出。由于在每个步骤 $(t, u)$ 处,仅基于 $h^{enc}_t$ 和 $h^{pred}_u$ 局部做出生成标签或推进输入帧的决定,因此该过程本质上是逐帧工作的,这使得 RNN-T 非常适合在线、低延迟的 ASR。优点与不足优点:流式处理能力: 它的设计允许自然的逐帧处理,无需未来的上下文,这对于实时应用非常重要。习得对齐: 它隐式地学习音频和标签之间的对齐,相比 CTC 的严格对齐提供了更大的灵活性,同时确保了适用于语音的单调性。无需显式分段: 与其他端到端模型一样,它不需要预先分段的训练数据。不足:计算成本: 与更简单的模型相比,训练(通过 DP 计算损失)和推断(束搜索)都可能计算密集。训练稳定性: 与 CTC 或注意力模型相比,有时可能更难训练,可能需要仔细的初始化和正则化。延迟权衡: 尽管是流式的,仍可能存在少量延迟,因为模型可能需要多个帧的证据才能自信地生成标签(表现为最初生成空白符)。与 CTC 和注意力的比较与 CTC 比较: RNN-T 包含一个预测网络,用于建模输出依赖关系,克服了 CTC 的条件独立假设。这通常会带来更好的准确性。两者都使用动态规划进行损失计算并支持流式处理。与注意力比较: 标准注意力模型擅长捕获远距离依赖关系,但通常需要完整的输入序列,使流式处理变得困难。RNN-T 强制执行适用于语音的单调对齐,并且本质上可流式传输。单调注意力等变体旨在弥合此差距,但 RNN-T 提供了一种独特且有效的流式转导机制。RNN 转导器代表了端到端 ASR 中一种重要的架构。它在建模输出依赖关系的同时执行流式识别的能力使其成为需要低延迟的生产系统的一种热门选择。了解其架构、损失计算和解码过程对于从事高级 ASR 实现的人员来说是基础性的。