Non-autoregressive ASR / CIF

Paraformer 模型结构

自回归 ASR 可以利用已经写出的文字,却必须逐字等待。Paraformer 的问题是:如果整句要一次并行生成,模型怎样先知道该输出多少个 token,又怎样保留 token 之间的上下文?

先对齐,再并行Predictor 把帧级声音压成 token 级表示;双向 Decoder 同时生成整句。Sampler 只负责训练,不存在于正常推理路径。

一、并行解码首先遇到的是输出长度

一段语音可能有上千个声学帧,却只有几十个文字 token。Paraformer 不是简单地把自回归 Decoder 的 mask 去掉,而是先学习“哪些帧应聚合成一个 token”,再让双向 Decoder 一次生成完整序列。

自回归 Attention Encoder-Decoder 的做法很合理:生成第 u 个 token 时,读取前面 u-1 个真实或预测 token。它能建立强语言依赖,但推理无法把所有输出位置放进一次前向计算。CTC 可以全并行,却对输出 token 之间的依赖建模较弱。

Paraformer 位于两者之间:Encoder 负责声学上下文;Predictor 估计 token 数并生成 token 级声学表示;双向非自回归 Decoder 在已知候选位置数后,同时预测整句。原论文将这套结构与 Glancing Language Model 风格的 Sampler、MWER 训练结合。Paraformer 原论文

一句定义

Paraformer 是一个由 Encoder、CIF Predictor、训练期 Sampler 和双向 Decoder 组成的单步非自回归端到端 ASR 模型。

二、完整结构:训练路径比推理多一个 Sampler

Paraformer 训练与推理结构语音经 Encoder 和 CIF Predictor 得到 token 级声学表示。训练时 Sampler 混入真实 token embedding,推理时直接将声学表示送入双向 Decoder。 Fbank 特征帧序列 x₁…xₜ EncoderSAN-M / Transformer帧级表示 h₁…hₜ CIF Predictor预测权重 αₜ累计触发 token 边界输出长度 N 与 e₁…eₙ 训练:Sampler混合声学表示与真实 token embedding帮助 Decoder 学习文本依赖 真实文本 Token仅训练可见 推理:直接使用 e₁…eₙ没有真实文本,也不运行 Sampler 双向 Decoder所有位置一次并行预测 文本y₁…yₙ Encoder 表示也为 Decoder 提供声学上下文
概念图:突出训练和推理路径差异,不复刻某个 FunASR checkpoint 的精确层数或张量尺寸。Sampler 是训练策略,不是线上推理模块。

三、CIF:把连续声学帧积分成离散 token

Continuous Integrate-and-Fire 为每个 Encoder frame 预测一个非负权重 αₜ。权重沿时间累加,达到阈值时“触发”一个 token;跨过阈值的帧权重会被拆分,剩余部分参与下一个 token。对应帧表示按这些权重加权求和,形成 token 级声学 embedding。

帧位置 t1 t2 t3 t4 t5 t6 预测 αₜ .25 .35 .55 .20 .45 .40 累计过程 .25 → .60 → 1.00 | .15 → .35 → .80 → 1.00 | .20 ↑ token 1 ↑ token 2 e₁ = Σ 被第 1 次触发吸收的 αₜ · hₜ e₂ = Σ 被第 2 次触发吸收的 αₜ · hₜ 示意阈值为 1。t3、t6 的权重可能跨边界拆给相邻 token。

训练时 Predictor 还要让权重总和接近真实 token 数;推理时,权重总和及触发次数给出预测长度。于是 Decoder 获得与输出 token 数近似相同的输入序列,而不必对上千个声学帧逐帧分类。

CIF 不是硬切音频

它学习的是可微的软对齐。一个 token 可以聚合多个帧,一个边界帧也可以把权重分给相邻 token;因此它比固定窗口更贴合不等速语音。

四、Sampler 为什么只在训练时存在

非自回归 Decoder 的困难不是并行矩阵乘,而是推理时每个位置都没有真实的左侧 token 可用。Paraformer 的 Sampler 根据当前预测与目标之间的错误,选择部分位置用真实 token embedding 替换或混合 Predictor 的声学 embedding,让双向 Decoder 在训练中学习 token 间语义依赖。

  1. 先产生声学候选。 Encoder 与 Predictor 输出 token 级声学表示。
  2. 估计当前错误。 用模型预测与真实序列的差异决定要注入多少真实语义。
  3. 混合训练输入。 一部分位置保持声学 embedding,另一部分位置采用目标 token embedding。
  4. 一次预测完整目标。 双向 Decoder 学习利用声音和邻近 token 语义纠错。

推理时没有真实文本,Sampler 无法也不应运行;Predictor 的声学 embedding 直接进入 Decoder。这构成训练与推理的分布差异,也是非自回归 ASR 必须认真验证的部分。

五、一次推理中数据怎样流动

阶段 1:声学编码与对齐

Fbank 经 Encoder 得到帧级表示,CIF Predictor 同时估计输出长度并聚合出 N 个 token 级表示。这部分计算主要沿音频时间轴进行。

阶段 2:整句并行解码

双向 Decoder 一次接收全部 N 个位置并输出 N 组词表分布。没有 y₁ → y₂ → y₃ 的串行循环。

“非自回归”指输出位置不按顺序循环生成,不代表整个网络只有一层或完全没有序列依赖。Encoder、CIF 和双向 Decoder 都在建模序列;区别是 Decoder 可以同时计算所有输出位置。

原论文在 AISHELL-1、AISHELL-2 和一个 20,000 小时工业任务上报告,Paraformer 获得与其自回归 Transformer 基线相当的性能,并有超过 10 倍推理加速。这个结论受论文的模型、硬件、batch、搜索设置和数据约束,不应直接当作所有 Paraformer checkpoint 相对所有 AED 模型的固定倍率。论文实验

六、Paraformer-v2 为什么改用 CTC Posterior

原始 CIF 需要预测 token 数并形成连续对齐;面对 BPE token 长度变化、噪声和跨语言数据时,长度预测会成为误差来源。Paraformer-v2 用 CTC posterior 取代 CIF 作为 token 级信息提取器。

步骤原始 ParaformerParaformer-v2
帧级监督CIF 权重与数量约束CTC posterior
训练对齐积分触发形成 token embeddingViterbi CTC alignment 压缩帧 posterior
推理输入CIF 预测的 token 级声学表示非 blank CTC 预测形成的 Decoder 输入
主要动机可微长度预测与软对齐提高 BPE、噪声和多语条件下的稳健性

v2 并不是退回到“只用 CTC”:CTC 提供候选与对齐,双向 Decoder 仍负责结合全局声学和输出上下文修正结果。作者在 Tesla V100、batch=1、AISHELL-1 的设置中报告 RTF 0.010,而其 beam=5 Conformer AED 基线为 0.254;这仍是特定实验口径。Paraformer-v2 论文

七、Paraformer、CTC 与 Whisper 的差异

比较轴CTCParaformerWhisper / AED
输出方式帧级并行,blank 合并token 级整句并行逐 token 自回归
输出依赖给定 Encoder 后较弱双向 Decoder 显式建模整句强左侧文本历史
长度/对齐CTC 动态规划CIF Predictor;v2 使用 CTC posteriorDecoder 以结束 token 停止,Cross-Attention 学习对齐
主要优势简单、快、易对齐速度与文本上下文折中多任务、提示、翻译自然
主要风险语言建模弱长度或候选错误可能传播逐 token 延迟与生成式幻觉
Paraformer 会像 CTC 那样先输出“你你你好好好”再折叠吗?

不是同一种机制。原始 Paraformer 的 Predictor 先产生 token 级表示,Decoder 直接为每个 token 位置输出词表分布,并不依赖 CTC 的“合并连续重复、删除 blank”作为最终规则。Paraformer-v2 会利用 CTC posterior 产生候选,但最终仍经过双向 Decoder。

八、部署边界:快不等于原生流式

Paraformer 的并行 Decoder 很适合离线批处理和高并发转写,但原始双向 Encoder 与双向 Decoder 通常需要完整分段。工程实现可以通过 VAD 分段、块处理、截断注意力或专门的在线模型实现近实时输出,但这与原始离线模型的单步整句推理不是同一个运行条件。

  • 适合:中文离线转写、字幕文件、批量音频、高吞吐服务。
  • 需要额外验证:严格首字延迟、partial 稳定性、跨块状态和长音频边界。
  • 典型错误:长度少估导致删除,长度多估导致插入;声学候选错误被双向 Decoder 扩散。
不要只测干净短句

至少加入静音、噪声、口音、数字、专名、代码切换、重复词、长停顿和被截断音频,并记录 CER、实体错误、RTF、显存和分段边界错误。

边界结论

Paraformer 的核心贡献不是“让 Transformer 没有顺序”,而是把输出长度、帧到 token 的聚合和整句语言建模拆成可联合训练的模块。它在并行效率与输出上下文之间提供了有价值的工作点,但没有消除对齐误差,也不会自动获得严格流式能力。

九、一手资料

  1. Z. Gao et al. Paraformer: Fast and Accurate Parallel Transformer for Non-autoregressive End-to-End Speech Recognition.
  2. Z. Gao et al. Paraformer-v2: An Improved Non-autoregressive Transformer for Speech Recognition.
  3. FunASR. Paraformer 官方架构说明.
  4. FunASR. 官方代码与模型工具链.

评论加载中...