Mega-ASR 面向“全场景复杂环境”高噪语音识别

Mega-ASR 是一个专门解决”真实世界语音识别翻车”问题的开源框架——它用涵盖54种噪声、回声、丢帧等复合场景的240万条数据训练,让模型在嘈杂现实环境下的词错误率降低30%+,同时大幅减少”听没了”和”乱编内容”这两种高频故障。解决的核心问题是:在各种嘈杂、失真、回声、断连的现实场景下,尽可能准确地把语音转成文字。模型基于 Qwen3-ASR-1.7B进行后训练,通过一套专门设计的数据集和训练方法来强化”恶劣环境下的识别能力”。

一、ASR 在「现实世界环境」为什么不行?

  • 场景覆盖太窄:只解决噪音 / 远场单一问题,真实环境是复合干扰(噪音 + 混响 + 丢包一起上)。
  • 复合鲁棒性缺失: 缺乏对复杂环境的适应性,现实世界中的环境往往是多种因素共同作用的结果,很少模型能同时扛住多种失真叠加。
  • 训练与真实不匹配:训练数据太简单(WER 4%–10%),遇到高难度场景(WER>30%)直接崩

二、数据:Voices-in-the-Wild-2M

大规模、高难度、物理合理的复合声学仿真数据集

现有语音数据集的 3 大致命问题:

  1. 只覆盖单一干扰:噪音 / 混响 / 远场分开做,不模拟真实复合环境
  2. 难度太 “温柔”:平均 WER 只有 4%–10%,训练不出强鲁棒模型
  3. 真实录音太少太贵:收集覆盖所有场景的真实录音成本极高、不可扩

为了推动这一更具挑战性场景下的研究,提出了 Voices-in-the-Wild-2M,一个基于频谱级代码驱动仿真(spectrogram-level code-based simulation)构建的大规模数据集。这种设计使得超大规模数据生成成为可能。

首先识别并定义了 7 类经典的现实声学效应,这些基础效应用于模拟各种物理环境或设备引起的退化现象:

真实退化现象对应 Primitive
背景噪声Additive Noise
延迟反射Echo Delay
房间混响Reverberation
削波失真Nonlinear Distortion
带宽受限Resampling
高频衰减Spectral Filtering
音量不一致Loudness Transformation
丢包/卡顿Frame-level Stutter

设计了专门的频谱处理流水线,持续调整仿真参数,并利用 Qwen3-ASR 的监督微调(SFT)结果进行验证,直到模拟器在真实数据上的表现达到最佳拟合效果。

将这些原子效应组合成 54 种经过 Agent 验证的复杂声学配置,最终生成了 240 万条(2.4M)合成语音样本

与直接枚举各种复杂真实环境不同,将野外环境(in-the-wild)中的语音退化过程划分为三个层级:

  • Primitive Acoustic Effects(基础声学效应)
  • Atomic Acoustic Effects(原子声学效应)
  • Compound Acoustic Scenarios(复合声学场景)

第一层:Primitive Acoustic Effects(基础声学效应)

用 DSP 手段实现最基本的声学退化组件

原子效应核心基元组合模拟真实场景
噪声(Noise)加性噪声 + 响度归一街道、咖啡馆、车内、人群
远场(Far-field)混响 + 低通滤波 + 响度衰减远距离说话、智能音箱远场
遮挡(Obstructed)低通滤波 + 混响 + 衰减隔门、隔窗、口罩、墙后说话
回声 + 混响(Echo&Reverb)强混响 + 回声 + 高通大厅、车库、体育馆、空旷房间
录制染色(Recording)重采样 + 噪声 + 双带通滤波手机外放再录制、设备串音
电子失真(Electronic Distortion)非线性失真 + 低通麦克风过载、削波、劣质录音
传输丢包(Transmission Dropout)帧卡顿 + 响度归一网络丢包、蓝牙不稳、流媒体卡顿

第二层:Atomic Acoustic Effects(原子声学效应)

在中间层,我们利用上述 Primitive Effects 构建了 7 种原子声学效应

Atomic Effect中文
Noise噪声环境
Far-field远场录音
Obstructed遮挡语音
Echo & Reverb回声与混响
Recording录音链路效应
Electronic Distortion电子失真
Transmission Dropout传输丢失

一个 Atomic Effect 并不一定只对应一个 Primitive Effect。而是一个主导 Primitive + 若干辅助 Primitive。

比如:Far-field(远场)真实远场录音不仅仅是声音变小。通常同时具有:

  • 声压衰减(Loudness)
  • 高频损失(Spectral Filtering)
  • 房间混响(Reverb)

第三层:Compound Acoustic Scenarios(复合声学场景)

最高层将多个 Atomic Effects 进行组合,比如视频会议

Far-field + Echo&Reverb + Recording

无论构建 Atomic Effect 还是 Compound Scenario,都保持 Primitive Effect 的固定执行顺序。为的是避免物理上不合理的处理链

关键创新:不是随机乱组合,而是按物理规则合成

组合规则(保证真实不违和)

  • 锚点效应(3 种):远场 / 回声混响 / 遮挡(互斥,不同时出现)
  • 修饰效应(4 种):噪声 / 录制染色 / 电子失真 / 丢包(可叠加)

为了让难度 “均匀且可学习”,团队设计了全局 severity 参数 m ∈ [0,1]

  • 同一个音频里,所有失真共用一个 m
  • 保证:要么整体简单,要么整体难,不会出现 “强混响 + 零噪音” 这种不自然组合

最终选用 Linear 线性分布

  • 简单、中等、困难样本均匀覆盖
  • 训练最稳定、泛化最强

严格过滤保证可学习

  • 剔除 WER > 70% 的样本(太难学不动)
  • 保留物理合理组合
  • 统一响度、统一格式、对齐标注

三、Mega-ASR

 Qwen3-ASR 的基础上开发了 Mega-ASR-Base 模型

1. A2S-SFT:从声学 → 语义递进微调

解决:高失真下「听不清 → 猜不对」的连锁崩溃。分三阶段训练:

  1. 声学感知阶段:编码器 + 对齐器,按难度递进(WER<30% → <50% → <70%)
  2. 语义恢复阶段:冻结声学,只微调 LLM,学会从残缺信号还原语义
  3. 联合对齐阶段:全模块一起微调,声学与语义对齐

2. DG-WGPO:双粒度 WER 门控策略优化

解决:普通 WER 奖励在高失真下失效(只看词错,不管语义崩没崩)。设计两套奖励,按 WER 动态切换:

  • 低 WER(<30%):侧重词级别精细修正(软错误 / 硬错误区分)
  • 高 WER(≥30%):侧重句子级结构恢复(主干语义、长度、最长公共子串)

最终奖励 = 基础规则奖励 + 双粒度动态奖励

3. 环境感知路由(Router)

解决:鲁棒模型在干净音频上略有下降。

  • 训练一个轻量二分类器,判断音频是否恶劣
  • 恶劣 → 走 Mega-ASR
  • 干净 → 走原生 Qwen3-ASR
  • 推理开销 <1%,几乎无感

三、Experiments

Main results 

采用自适应路由的通用 ASR 性能具有竞争力:MEGA-ASR 在干净语音和多语言基准测试上,相较于 Qwen3-ASR、Seed-ASR 和 Kimi-Audio 仍保持极强的竞争力。

声学扰动条件下达到当前最佳鲁棒性:相较于最强基线 Qwen3-ASR,MEGA-ASR 的错误率进一步降低了 17.4%;相较于 Gemini-3-Flash,则降低了 64.5%

在组合式真实环境中的鲁棒性表现更优

在 Voices-in-the-Wild-Bench 基准测试中,MEGA-ASR 在多种真实世界退化条件下均取得了最佳性能,包括:

  • 混合退化(mixed degradations)
  • 远场语音(far-field speech)
  • 录音伪影与设备缺陷(recording artifacts)

Analysis

通过消融实验,我们总结出五个关键观察([Obs.1]–[Obs.5]),涵盖了语义层面收益、训练策略、奖励函数设计以及超参数敏感性等方面。相关证据分别来自表 5–9。下面对各项发现进行详细说明。

[Obs.1] MEGA-ASR 的收益不仅体现在 WER 上,也体现在语义层面指标上

表 7 显示,相比 Qwen3-ASR,MEGA-ASR 在语义层面指标上也取得了持续提升:

  • 漏识内容(Missed Content)从 14.2 降低到 5.9

这表明,MEGA-ASR 的改进不仅仅是降低词错误率(WER),还带来了更高层次的语义和整体理解能力提升,例如:

  • 减少幻觉(Hallucination);
  • 减少整句或整段语音遗漏(Dropped Utterances);

因此,MEGA-ASR 实现的是语义层面和整体层面的质量提升,而不仅是字词级别的识别优化。

[Obs.2] A2S-SFT 与 DG-WGPO 组件的消融分析

在 Voices 和 Noizeus 数据集上,对 A2S-SFT 各阶段以及 DG-WGPO 各组成部分进行了消融实验(表 5)。

  • 分阶段的“声学到语义(Acoustic-to-Semantic)适配”过程是有效且必要的。
  • DAPO 作为强化学习阶段的基础优化框架。
  • 句子级重构奖励对于中高错误率样本尤为关键。

[Obs.3] 基于规则的奖励函数与 LLM Judge 效果相当,但训练成本降低 3.2 倍

规则奖励已经能够充分捕获 LLM Judge 所提供的监督信号。

[Obs.4] 超参数消融实验

动态门控权重 αdyn 语义奖励权重 αs对模型性能的影响(表 8)

αdyn 所控制的权衡关系远比 αs 更敏感。

最终采用:

(αdyn, αs) = (0.6, 0.4)

因为它在所有测试子集上都达到最佳或接近最佳表现。

[Obs.5] 门控阈值 τ 的影响

过高的门控阈值会使门控机制过于严格(over-restrictive gating),从而限制奖励信号的有效传播,最终导致识别性能下降。

通过消融实验,得到以下核心结论:

  1. MEGA-ASR 的收益不仅体现在 WER,还体现在语义完整性与内容保真度上。
  2. A2S-SFT 的渐进式声学→语义适配以及 DG-WGPO 的各奖励组件均对性能提升至关重要。
  3. 规则奖励能够以接近 LLM Judge 的效果实现训练,同时将计算成本降低 3.2 倍。
  4. 动态门控权重 αdyn 是最敏感的超参数,最佳设置为 0.6。
  5. 门控阈值 τ=0.3 能在不同场景下取得最均衡的鲁棒性表现。

NIM4-ASR: 高效鲁棒可定制的实时LLM语音识别

paper: https://arxiv.org/abs/2604.18105

面向生产部署的 LLM-ASR 框架,系统解决轻量化、幻觉抑制、热词定制三大痛点。基于 phoneme-level encoder 预训练减少模态差距,引入 Iterative Asynchronous SFT(IA-SFT)防止 representation drift,设计 ASR 专用 RL 提升识别质量,并以 phoneme RAG 实现百万量级热词定制。

音频 → 600M Conformer Encoder(phoneme CTC 预训练,CKA 监控 drift)
                    ├── 流式:dynamic-chunk mechanism(预训练期内嵌)
                    └── phoneme CTC head → 音素假设
         MLP Adapter(4x 下采样,160ms/token)
                    ↓
              Qwen3-1.7B(LLM 解码器)
                    ↑
         Phoneme RAG:音素假设 → 检索热词数据库(<1ms)→ Prompt 注入

训练 pipeline:
    Stage1: Encoder 预训练(phoneme CTC,CR-CTC)
    Stage2: Alignment(仅训练 Adapter,冻结其余)
    Stage3: IA-SFT(异步并行,CKA 监控 encoder 稳定性)
    Stage4+5: Late Joint SFT + Context SFT + ASR-RL

Challenge

1、Limited downward scalability

在实际部署中,尤其是实时语音交互场景下,轻量级 ASR 模型由于推理延迟更低、计算成本更小因此更受青睐。然而,基于 LLM 的 ASR 在模型缩小后的性能表现并不理想:比如Qwen3-ASR-0.6B、Fun-ASR-nano这类轻量版本相比完整大模型存在明显性能差距。除了模型缩小本身带来的性能下降外,LLM-ASR 还额外承担了一种:模态税(modality tax),

即:模型中有相当一部分参数并不是直接用于 ASR 任务,而是用于跨模态对齐(cross-modal alignment)。这种结构性开销会导致轻量 LLM 真正可用于 ASR 的有效容量更少,从而带来不成比例的性能下降。

2、幻觉问题(Hallucination)

除了自回归 LLM 天生存在的 hallucination(幻觉)问题之外,encoder–adaptor–LLM 联合训练范式还会引入额外风险。

在联合优化过程中由于:LLM 梯度更强、LLM 语言先验更强。 encoder 会逐渐被拉向LLM 的优化目标,导致 encoder 的表示逐渐偏移到 LLM 的文本特征空间,称之为representation drift(表示漂移),导致encoder 会越来越依赖语言捷径(linguistic shortcuts)而不是精细声学信息(fine-grained acoustic fidelity)。在噪声、发音模糊、音频不清晰的声学歧义场景下会加重幻觉问题。

3、缺乏工业级热词定制能力(Lack of production-ready hotword customization)

为了解决上述问题,提出了面向工业部署的 LLM-ASR 框架 NIM4-ASR,重点优化推理效率和系统鲁棒性。

  • 提出了一种基于原则的多阶段训练范式
  • 优化了流式处理支持
  • 音素级 RAG 用于热词定制

Methodology

Model

encoder–adaptor–LLM 架构

1、音频特征提取

80 维 log-Mel 频谱,窗长(window):25 ms 帧移(frame shift):10 ms,全局均值方差归一化

2、Streaming speech encoder

编码器采用FireRedASR-AED Conformer,一个 4 倍下采样卷积模块 多层 Conformer Block 堆叠,输出帧率 25Hz,为了支持流式推理,训练阶段会模拟streaming 约束,将其改造成chunk-based streaming encoder

3、Speech adaptor

两层 MLP,将 encoder 输出映射到 LLM 的 embedding 空间,4倍下采样,将连续 4 帧特征进行拼接,帧率从 25 Hz 降到 6.25 Hz,每个 token 160ms。

4、Phoneme-level CTC head and RAG module

三层 MLP,将 encoder 表示解码为 phoneme hypothesis(音素假设),greedy decoding。RAG 模块会根据这些音素序列检索 hotword 数据库,将热词作为上下文提示注入 prompt

5、LLM decoder: Qwen3-1.7B

Training Recipe

与以往主要依赖经验微调的工作不同,首先对当前基于 LLM 的 ASR 系统的实际局限性及其根本原因进行了系统性的分析  ,结果表明跨模态差距和表征漂移问题仍未得到充分解决。基于这些见解,我们对训练流程进行了全面重新设计。如图 2 所示,NIM4-ASR 的方法论改进主要体现在四个核心训练阶段:编码器预训练、对齐、IA-SFT 和后期联合 SFT。除了这四个阶段的流程之外,我们在后期联合 SFT 之后进一步加入了上下文 SFT 和强化学习(RL),以增强上下文建模和鲁棒性。具体步骤如下所述。

 第一阶段:编码器预训练

为了缩小编码器表征与 LLM 嵌入空间之间的模态差异,采用了一种改进的连接主义时间分类(CTC)变体  ——即 CR-CTC 作为预训练目标。如图 2 所示,预训练期间的模型架构由编码器和 CTC 头组成。与先前工作中常用的基于注意力机制的编码器-解码器(AED) 相比,CTC 鼓励编码器生成低熵、音素区分性强的表征,使其与 LLM 的嵌入空间更自然地对齐,从而减少跨模态对齐的开销,并为自动语音识别(ASR)任务保留更多模型容量

将监督标签从字符级转移到音素级 ,明确地将编码器的容量用于声学到音素的映射,而不是过早地进行语义锚定,同时鼓励语言学习模型(LLM)更多地关注语义推理。这种设计实现了声学建模与语义推理的更清晰解耦,提高了两个模块的角色专业化程度。此外,采用音素预测作为预训练目标,鼓励编码器学习语言依赖性较弱的底层声学表征,从而为扩展到新的语言和方言提供更大的潜力。

为了赋予编码器原生流媒体处理能力,在预训练阶段引入了动态分块机制。具体来说,编码器在分块流媒体约束下处理完整的语音,其中每个批次的块大小和可见左侧上下文块的数量都是动态采样的。这使得编码器能够适应各种流媒体配置,从而实现灵活操作,以适应不同部署场景下不同的延迟预算。

Stage 2: Alignment & Stage 3: IA-SFT

在传统的训练范式中,对齐和联合 SFT 是在预训练完全完成后依次执行的。如图 2 所示,我们为 NIM4-ASR 提出了一种编码器迭代机制,该机制允许在预训练完成之前开始对齐,而 IA-SFT 在对齐完成后启动,并与剩余的预训练过程异步进行。为了确定何时初始化或更新对齐和 IA-SFT 使用的编码器,我们使用中心核对齐(CKA) 跟踪编码器表示的动态变化。CKA 将不断演化的编码器与在整个预训练过程中初始化并定期更新的参考检查点进行比较。给定从同一评估集中提取的两组编码器表示 E(a),E(b) ,CKA 定义为

第二阶段:对齐。 预训练达到 50 万步后,我们开始监测编码器,此时编码器开始呈现相对稳定的优化趋势。我们将 50 万步时的编码器快照作为初始参考检查点,之后每隔 1 万步预训练评估一次 CKA。当演化中的编码器与当前参考检查点之间的 CKA 分数首次低于预定义阈值.在对齐过程中,编码器和 LLM 均被冻结,仅训练适配器。在我们的设置中,首次触发发生在预训练约 101 万步时,对齐阶段持续 130 万步

第三阶段:IA-SFT。 对齐完成后,我们在联合 SFT 之前执行 IA-SFT 作为中间阶段。IA-SFT 保持编码器冻结,并基于异步预训练过程生成的编码器快照序列训练适配器-LLM 堆栈。具体步骤如下:

(i)初始化与监控。IA -SFT 在对齐完成后开始,使用从对齐过程中继承的编码器进行 100 万步的训练,同时编码器预训练并行进行。CKA 评估从之前更新的参考检查点恢复,并每隔 1 万步预训练步骤重复进行一次,监控表征偏移。

(ii)CKA 触发更新。 每当 CKA 分数低于预定义阈值时,当前预训练编码器的快照就会热插拔到 IA-SFT 分支中,并相应地更新参考检查点。

(iii)最终更新。 更新周期(ii)重复进行,直到预训练达到其 200 万步的​​最大值。预训练完成后,无论 CKA 得分如何,都将应用最终编码器更新,并且 IA-SFT 运行最后 200 万步。

在我们的实现中,IA-SFT 使用 101 万步预训练时的编码器检查点进行 100 万步训练,再使用 132 万步预训练时的编码器检查点进行 100 万步训练,最后使用完全预训练的编码器进行 200 万步训练——总共在三个编码器版本上进行了 400 万步训练。在 IA-SFT 过程中,编码器保持冻结状态,但会定期从异步预训练过程中更新,从而保持声学基础。这使得模型能够在不出现表征漂移风险的情况下加深跨模态对齐。从课程学习的角度来看,IA-SFT 逐步将 LLM 暴露于更精细的编码器表征中,使其能够学习不变模式并提高对声学扰动的鲁棒性。此外,由于对齐和 IA-SFT 与预训练异步运行,因此整个训练流程仍然保持高效。

Stage 4: Late Joint SFT

在编码器预训练和 IA-SFT 完成后,语音表征与 LLM 嵌入空间之间建立了稳健的初始跨模态映射。随后,我们执行后期联合 SFT,其中编码器、适配器和 LLM 以端到端的方式联合优化。与传统的联合训练相比,由于前期阶段已经最小化了模态差异,LLM 梯度引起的表征漂移风险显著降低。因此,这些梯度主要作为微调信号,无缝地优化声学到音素的映射以及音素到语义的关联。从几何角度来看,前期的对齐阶段建立了一个稳定的跨模态流形,使后续优化处于损失函数曲面的低曲率区域。在该区域内,梯度更新是对决策边界和流形几何结构的局部优化,而不是引起大规模的拓扑重构。

Stage 5: Context SFT

首先从训练语料库构建关键词集 S 。所有转录文本均被解析以提取候选短语,然后使用 Qwen3-30B-A3B-Instruct进行过滤,以保留命名实体,例如人名、兴趣点(POI)、媒体名称和专有名词。在训练过程中,我们提高长时长话语的采样比例,并按照以下模板,将从 S 中采样的关键词以概率方式注入到提示中作为上下文提示:

每个训练实例,我们首先从转录文本中存在的 S 中提取相关关键词。此外,对于每个关键词,我们以一定的概率从 S 中提取发音相同或高度相似的另一个关键词作为干扰项。相关关键词和干扰项被连接起来,然后添加到 {context} 字段中。干扰项的加入可以防止语言学习模型 (LLM) 过度依赖上下文线索而牺牲语义合理性。在此阶段,编码器、适配器和 LLM 会进行联合训练。

此阶段的设计目的在于实现热词定制,而非跨回合对话的一致性。对于多回合场景,还可以将从对话历史中提取的关键词添加到当前提示中。这种策略以紧凑的形式保留了关键的上下文信息,同时保持了比句子层面方法更低的推理延迟。

Stage 6: ASR Specialized RL

GRPO,奖励函数:

  • Accuracy reward
  • Hallucination reward
  • Context reward

Additional Stage: Phoneme Head Training for RAG

完成强化学习(RL)阶段后,主训练流程结束。接下来,我们引入一个额外的阶段来训练图 1 所示的 RAG 模块所需的音素头。在该阶段,编码器继承强化学习后检查点的结构和权重并保持冻结状态,而音素头则从预训练的 CTC 头初始化并保持可训练状态。训练目标和配置与预训练阶段一致。经过微调后,音素头可以将编码器表示转换为音素假设,供后续检索模块使用。

Training Setup

Robustness enhancement under noisy and silent conditions。应用了多种数据增强技巧来提高模型的鲁棒性。除了标准的 SpecAugmentation  和速度扰动之外,我们还随机地将一些真实的声学干扰(例如人声、车辆噪声和背景音乐)注入到 20%的干净训练样本中,以模拟具有挑战性的真实世界环境。这些噪声注入的信噪比(SNR)是从均值为 10 dB、标准差为 5 dB 的正态分布中随机抽取的。

Inference

优化流式推理

Encoder 与 LLM 解耦部署,Encoder 部署在 Triton,Adaptor + LLM 部署在 vLLM,CTC Head + RAG 部署在 CPU

Prompt 结构设计

[Static Prefix]
↓
[Streaming Speech Embeddings] 增量 append 到 context
↓
[Dynamic Hotword Context] 动态更新热词

两种 Streaming ASR Paradigm

增量假设刷新(hypothesis refresh)
vs
incremental context extension(增量上下文扩展)

| 方案                  | hypothesis refresh | incremental extension |
| ------------------- | ------------------ | --------------------- |
| 历史是否重复 decode       | 是                  | 否                     |
| KV Cache 是否重建       | 经常                 | 基本不                   |
| 是否实时 partial output | 强                  | 弱                     |
| TTFT                | 更低                 | 略高                    |
| Tail latency        | 高                  | 低                     |
| 适合场景                | 长会议                | 实时语音助手                |

Phoneme-based RAG(音素级热词检索)

文本 -> 音素序列,使用 Aho-Corasick 自动机,采用 Hard Matching不做模糊匹配,Retrieval Error 比 Retrieval Miss 更危险。

为了实现高效的热词定制,NIM4-ASR 构建了一个基于音素的热词数据库以及相应的检索算法,如图 1 所示。将每个热词文本预先转换为音素-词元序列,并将其存储为键值对,其中键是音素序列,值是对应的热词文本。这些音素序列首先根据音素词汇表转换为离散索引,然后使用 Aho-Corasick 自动机算法重构为带有失败链接的 trie 树。在推理过程中,编码器上的音素头通过贪婪解码生成音素假设,这些假设被转换为索引序列,并由自动机在一次遍历中扫描完成。当无法扩展部分匹配时,自动机将沿着失败链接找到最长的有效后缀状态,而不是从头开始重新搜索,从而能够以假设长度的线性时间复杂度检索所有候选热词。

为了减少冗余的上下文提示,我们采用了一种最长匹配过滤策略:被较长跨度完全覆盖的较短匹配项将被丢弃,仅保留最长的实体。例如,如果热词“NIO”和“NIO House”在同一假设中同时匹配,则仅保留“NIO House”。检索到的热词文本随后被连接起来,并与语音嵌入一起作为上下文提示注入到 LLM 提示中,从而为解码提供上下文感知的偏置。由于索引级映射的存储效率以及 Aho-Corasick 自动机的线性时间复杂度(仅取决于查询长度而非数据库大小),热词数据库可以轻松扩展到数百万条记录,同时保持每次查询的亚毫秒级检索延迟。

值得注意的是,我们的热词定制旨在优化命名实体(例如地点名称和媒体标题)的识别,这类热词数据库可能非常庞大,并且可能包含大量语音相似甚至同音的条目。为了确保在这种大规模环境下的检索精度,我们在 RAG 模块中采用了硬匹配策略,仅检索精确的音素序列匹配,而非近似匹配或编辑距离最小的匹配。经验表明,检索漏检通常比检索错误危害更小,因为 LLM 仍然可以利用内部语言知识和上下文恢复正确的实体。相比之下,软匹配更容易引入相似但错误的热词,即使模型在一定程度上能够应对噪声上下文提示,这些错误热词仍然会干扰解码。

Evaluation

总结:

NIO 车载场景出发的工业论文,偏向工程落地。phoneme-level encoder 预训练、IA-SFT 防 drift、ASR-RL、百万热词 RAG——每个模块都是真实生产痛点的解法。CKA 动态监控 encoder 表示偏移这个手段很细。但核心数据不公开,学术可复现性为零;”25 个 benchmark SOTA”要打折——主要赢在内部实体密集场景;Streaming 支持是”优化了”而非”重新设计了”。热词检索口音/方言效果差。未来将对话历史作为附加上下文信息纳入多轮交互场景,以提高跨轮次转录的一致性。

SoulX-Duplug 面向全双工语音对话系统即插即用流式状态预测模型

SoulX-Duplug —— 一款面向 全双工语音对话系统的即插即用流式状态预测模块。SoulX-Duplug 旨在解决当前语音对话系统中 实时交互能力不足、系统响应延迟高、模块耦合严重 等问题。通过将 语音活动检测(VAD)、语音识别(ASR)与对话轮次判断(Turn Detection)统一建模,SoulX-Duplug 可以帮助传统的半双工语音系统在 无需修改原有模型架构的情况下,快速获得 全双工语音交互能力。 项目还开源了 SoulX-Duplug-Eval,一个面向全双工语音对话系统的 双语评测基准,以促进该领域更标准化和可比较的研究。

Introduction

传统语音对话系统通常采用 半双工(Half-Duplex)交互模式:系统在用户说话时只能“听”,而在系统回答时用户则无法打断。这种严格分离的听说流程,使得交互节奏显得机械,也限制了真实对话中常见的打断(interruption)、停顿(pause)、附和(backchannel)等行为。 相比之下,全双工语音对话系统允许系统在生成回复的同时持续监听用户输入,从而支持更加自然的实时互动体验。

近年来,一些端到端全双工语音模型开始出现,但这类方法通常将 语言生成与交互控制强耦合 在同一个模型中,带来了新的挑战:

  • 模型训练难度高
  • 数据需求巨大
  • 交互策略难以控制
  • 系统扩展性受限

在实际工业系统中,更常见的方案是通过 VAD + ASR + Turn Detection 等模块组成级联流水线,为半双工系统提供基本的全双工能力。然而,这种方式也存在明显问题:

  • 传统 VAD 仅依赖声学特征,缺乏语义理解
  • 非流式 ASR 会带来额外延迟
  • 多模块级联导致系统响应速度下降

领域内目前仍缺乏开源的流式 semantic VAD 方案。SoulX-Duplug 正是在这样的背景下提出的一种独立、可扩展的解决方案。通过将语音交互中的双工控制能力从对话模型中解耦为独立模块并进行开源,SoulX-Duplug 旨在缓解全双工模型在数据规模与系统扩展性方面的挑战,使语音对话模型的优化能够更多聚焦于记忆能力、推理能力与共情能力等核心智能能力,而不必始终受到全双工交互机制的复杂约束。与此同时,通过引入文本引导的流式状态预测机制,SoulX-Duplug 能够更准确地理解用户语义意图,并在模块化架构下尽可能降低系统延迟,从而实现更自然、高效的实时语音交互体验。

SoulX-Duplug

Overview

SoulX-Duplug 是一个面向实时语音交互场景设计的 统一流式状态预测模块。与传统基于多模块级联的全双工语音系统不同,SoulX-Duplug 在单一模型框架中同时完成:

  • 语音活动检测(VAD)
  • 流式语音识别(ASR)
  • 对话状态预测(Dialogue State Prediction)

通过统一建模这些任务,SoulX-Duplug 能够在持续音频输入的情况下实时理解用户语音内容,并动态预测对话交互状态,从而实现更自然的全双工语音互动。总体架构上,SoulX-Duplug 采用 GLM-4-Voice speech tokenizer 以12.5Hz 的频率提取离散语音 token,取 160ms  (2 token)  的处理窗口流式交替生成语音识别文本与对话状态 token。这种设计使模型能够通过语音识别理解语义并判断当前对话状态,从而实现低延迟的交互控制。

State Token Design

为了刻画全双工语音对话中的交互动态,SoulX-Duplug 定义了五种核心状态 token:

  • user_idle 表示当前音频片段不包含语义信息,例如静音或背景噪声。
  • user_nonidle 表示用户正在进行具有语义内容的语音输入。
  • user_backchannel 表示用户“嗯”“对”等 backchannel 行为。
  • user_complete 表示用户当前语句在语义上已经完成,系统可以接管对话轮次并进行回复。
  • user_incomplete 表示用户虽然暂时停顿,但语句在语义上仍未结束,系统需要继续等待用户输入。 通过这种定义方式对对话状态进行了清晰、结构化的建模。

Speech Input Modeling

采用 GLM-4-Voice tokenizer,以 12.5 Hz 的频率提取音频 token:

Ad​=[ad,1​,ad,2​,…,ad,N​]

该 tokenizer 是一种 block-causal(块因果)语音 tokenizer,在大规模语音数据上预训练,可作为双语语音理解的基础编码器

在流式推理中:

  • 使用 block size = 12 进行音频 token 生成
  • 每一步处理:
    • 目标窗口(target window):160 ms
    • 左上下文(look-back):960 ms
    • 右上下文(look-ahead):40 ms

因此总感受野(receptive field)为: 1160 ms,共提取 15 个 token目标区域对应的 token 与 block 中的倒数第二和倒数第三个 token 对齐。随后,通过一个线性 encoder projector,将 Ad​ 的 embedding 映射为特征 A,以匹配 LLM 的 embedding 维度:

A=MLP(Ad)

文本引导的流式状态预测

为了在流式状态预测中显式引入语义信息,我们创新性地引入了联合 ASR 目标,并设计了交错预测范式(interleaved prediction)

{A1,T1,S1,A2,T2,S2,…,AT,TT,ST}

每个 160 ms 音频块对应两个音频 token:

At​=[at,1​,at,2​]

在历史上下文 Ht−1条件下,模型首先预测当前块的 ASR token 序列:

Tt​∼P(Tt​∣A≤t​,T<t​,S<t​)

其中Tt​:与第 t 个音频块对齐的流式 ASR 输出,在生成 Tt​ 之后,模型进一步预测对话状态 token:

St​∼P(St​∣A≤t​,T≤t​,S<t​)

  • St​:当前音频块对应的全双工对话状态

这种交错式设计在保持流式推理能力的同时,使状态预测能够获得显式的语义引导

Training Objective

由于不同类型的 token(例如文本 token、<asr_eos> 以及各种状态 token)在长序列中的出现频率差异较大,我们采用加权的 token 级训练目标

设:

  • Y:完整的目标 token 序列
  • yj​:第j 个 token

整体损失定义为:

其中:

  • LCE(yj​):预测 token yj​ 的交叉熵损失
  • τ(yj​):将 token 映射到其所属类型(如 ASR token / state token)
  • λτ(yj​)​:针对不同 token 类型设置的权重系数,用于在不同类别之间进行训练平衡

三阶段混合训练+ Teacher-Forced 推理

设计了三个顺序训练阶段:

  • 非流式 ASR 预训练。目标:学习基础语音识别能力
  • 流式 ASR 适配。目标:让模型适应 streaming 场景
  • 全双工状态预测微调。目标:强化实时对话管理能力(state prediction)

Hybrid 训练-推理策略。SoulX-Duplug 采用训练与推理不完全一致(hybrid)的策略:

训练阶段(第 3 阶段):

  • 端到端联合优化:
    • VAD + ASR + 状态预测

推理阶段:

  • 使用一个轻量级外部 ASR 模型(如 SenseVoice Small)
  • 为每个 chunk 提供:
    • teacher-forced 的流式 ASR 输出

这个设计的本质

训练时学“联合建模能力”,推理时用更强/更稳的 ASR 来“喂语义”,提升稳定性和效率。

算法延迟

  • 每个 audio chunk = 160 ms
  • 用户语音在 chunk tit_iti​ 内结束

由于模型是流式的:

必须等到下一个 chunk ti+1​ 才能确认“后面没有语音”

在处理ti+1​ 时:

  1. 检测到没有语音(VAD = silent)
  2. 判定 <|user_nonidle|> 结束
  3. 决策:
    • <|user_complete|>(语义完成)
    • <|user_incomplete|>(语义未完成)

由于语音结束点在 chunk 内均匀分布:

  • 平均等待时间:80 ms(= 160 / 2)
  • 再加一个 chunk:160 ms

最终:

Latencyavg=80 ms+160 ms=240 ms

SoulX-Duplug-Eval

为了解决现有全双工语音对话基准中跨语言评测资源不足的问题,我们构建了补充性的测试集,用于提升不同模型之间的可比性,并在对话状态预测系统级全双工对话两种评测设置下,实现标准化与公平比较。

提出 Easy Turn testset-En,作为原始 Easy Turn testset 的英文对应版本。

该数据集主要用于全双工状态预测(duplex state prediction),包含两类数据:

Complete(完整句)

  • 318 条样本
  • 内容为语义完整的 utterance
  • 由 ChatGPT 生成,并使用 ChatTTS2 [36] 合成

Incomplete(不完整句)

  • 299 条样本
  • 内容为语义不完整的 utterance
  • 同样由 ChatGPT 生成并通过 ChatTTS2 合成

为了支持中文场景下的系统级评测,我们构建了 Full-Duplex-Bench-Zh,作为 Full-Duplex-Bench的中文版本。

该数据集覆盖四种具有代表性的交互场景,所有文本均由 ChatGPT 生成,并通过最先进的 TTS 系统合成。

包括:

  • Turn-Taking 子集(轮次切换):用户连续说话数秒随后 15 秒静音,评估是否正确判断用户说完
  • Pause Handling 子集(停顿处理):单条 utterance 中插入多个停顿,区分自然停顿和语义未结束
  • User Backchannel 子集(用户附和):短 backchannel(如“嗯”“对”),防止模型误抢话
  • User Interruption 子集(用户中断/续说):是否识别“用户未说完”,是否正确预测 <|user_incomplete|>

实验

训练设置

中文数据总计约 47,000 小时。英文数据共计约 31,000小时。

在流式 ASR 训练中:

  1. 首先获取 字符级或词级对齐(alignment)【使用 Paraformer3 /WhisperX 生成时间戳】
  2. 将数据重组为 基于 chunk 的交错格式(interleaved chunk-based format)

状态预测训练阶段(State Prediction Stage):

英文数据:

  • 使用 Fisher 数据集 [14]
  • 规模:千小时级

中文数据:

  • 使用内部构建的约 万小时级语料
  • 构造方式与 Fisher 保持一致

数据标注与清洗流程

  1. 先进行对齐(alignment)
  2. 中文数据:
    • 使用 双 ASR 一致性过滤
  3. 数据增强:
    • 全局添加 Musan 噪声
    • 在静音片段加入 ESC-50 噪声
  4. 状态标签:
    • 使用 Qwen2.5-72B-Instruct进行自动标注

SoulX-Duplug 模型:

  • 语音编码器:预训练 GLM-4-Voice tokenizer
  • LLM backbone:Qwen3-0.6B [48]
  • speech tokenizer:全程冻结(frozen)

训练策略

  • ASR 预训练 LLM:全量微调 adapter:全量微调
  • 状态预测阶段对 LLM 使用 LoRA ,rank = 32,训练数据:双语 trainsets

推理设置

使用 teacher-forcing ASR 提供更准确文本引导 【中文:Paraformer,英文SenseVoice Small】

为了评估 SoulX-Duplug 的对话状态控制能力:Qwen2.5-7B-Instruct + IndexTTS-1.5

评测指标(Metrics)

  • Takeover Rate (TOR)
  • Response Latency (RL)
  • Resume Rate (RsR)
  • Respond Rate (RpR)
  • Stop Latency (SL)

结果

为了验证 SoulX-Duplug 在真实系统中的效果,团队以 SoulX-Duplug 作为对话状态控制模块构建了一个完整的全双工语音对话系统,并在中英双语的 Full-Duplex-Bench 基准上对系统进行了全面评测,该 benchmark 涵盖了:Turn Taking(轮次切换)、Pause Handling(停顿处理)、User Backchannel(用户附和)、User Interruption(用户打断)等多种全双工对话关键场景。

实验结果表明,基于 SoulX-Duplug 构建的系统在多个评测维度上取得了稳定且均衡的整体表现。在整体的 turn management 能力上优于现有模型,并在总体响应延迟指标上同样表现优异。这一结果充分验证了 SoulX-Duplug 的对话状态控制能力以及在系统构建中的实用价值。

同时,实际部署环境中 SoulX-Duplug 的独立模块的平均延迟约为 250ms,接近其理论延迟 240ms。这一结果显著优于传统基于 VAD 的方案(约 500ms),也低于近期提出的 FlexDuo 模块(约 343ms)。

Further Discussion

围绕全双工语音对话系统(FD-SDS)的设计与部署形成了若干观察与思考:

1、小 chunk 流式 ASR 识别效果较差

采用非常小的 chunk size 进行流式 ASR 在本质上仍然具有较大挑战。当 chunk 时长较短时,声学片段经常会跨越音素、音节或词边界被切分。这一问题在英语中尤为明显,因为单词很容易被切分到相邻的多个 chunk 中,从而导致识别不稳定以及瞬时错误。因此,在严格低延迟约束下,预测波动在一定程度上是不可避免的。此外,在实时流式场景中,基于 LLM 的方法虽然具有较强的上下文建模能力,但其上下文仍受限于增量解码(incremental decoding)以及有限的未来信息。因此,基于 LLM 的 ASR 模型在“解码速度与识别准确率的综合权衡”方面,并不一定优于传统结构(如 RNN-T)。

2、模块化系统 vs 端到端系统

尽管近年来端到端全双工语音对话模型(FD-SDMs)在经验表现上取得了较强效果,并展现出较大潜力,但它们通常需要大规模训练数据与较高计算资源。相比之下,模块化系统更易于实现与维护。当系统出现性能问题时,可以在不重新训练整个系统的情况下,对单个模块进行调整或替换。这种灵活性使得模块化设计在实际部署中可能更具优势

最后,目前的研究工作对实时应用的支持仍然相对有限。仍然需要更加成熟且易用的开源流式语音编码器与 ASR 模型。持续推进这一方向的发展,将有助于真正实现可落地的全双工语音对话系统(FD-SDSs)。

FireRedASR2S-第二代工业级一体化 ASR 系统

FireRedASR: Open-Source Industrial-Grade
Mandarin Speech Recognition Models
from Encoder-Decoder to LLM Integration

FireRedASR2S 是一款最先进的(SOTA)工业级一体化 ASR 系统,包含 ASR、VAD、LID 和 Punc 模块。所有模块均达到 SOTA 性能水平。其核心定位是解决传统语音识别方案功能单一、多语言支持差、方言识别精度低、模块衔接繁琐等问题,打造一套集语音识别、语音活动检测、语言识别、标点预测于一体的端到端解决方案。FireRedASR2S的命名中,2代表第二代FireRedASR模型,S代表扩展为全功能的语音识别系统(System),区别于单一的语音识别模型,实现了语音处理全流程的覆盖。

FireRedASR2:将有监督训练数据扩充至约 20 万小时,覆盖更多领域、语种与方言场景。支持中文(普通话及 20+ 种方言/口音)、英文、代码混说以及歌曲歌词识别。在普通话 4 个测试集上平均字符错误率(CER)为 2.89%,在 19 个中文方言测试集上平均 CER 为 11.55%,性能优于 Doubao-ASR、Qwen3-ASR-1.7B、Fun-ASR 和 Fun-ASR-Nano-2512。FireRedASR2-AED 版本还支持词级时间戳和置信度输出,能精准定位语音对应文字的时间区间,满足字幕制作、语音标注等精细化需求。FireRedASR2-AED 支持最长 60 秒的音频输入,FireRedASR2-LLM 支持最长 30 秒的音频输入。

  • FireRedASR2-LLM:采用编码器-适配器-大语言模型(Encoder-Adapter-LLM)架构,借助大语言模型的语义理解能力,实现端到端的语音交互,追求极致的识别精度,适合对准确率要求高的场景(如会议转写);
  • FireRedASR2-AED:基于注意力机制的编码器-解码器(Attention-based Encoder-Decoder)架构,在精度和计算效率间做平衡,是LLM-based语音模型的高效语音表征模块,支持时间戳输出,适合轻量化落地场景,解码端增加CTC分支,用于对齐音频和文本获取词级别的时间戳信息。

FireRedVAD:语音活动检测(VAD)基于数千小时人工精标声学事件数据训练,支持 100+ 种语言的语音、歌声及音乐检测,F1 值达到 97.57%,优于 Silero-VAD、TEN-VAD 和 FunASR-VAD。支持流式与非流式 VAD,以及音频事件检测。能精准区分语音、歌唱、音乐三类音频事件,输出各事件的时间区间和占比。

  • 基于深度前馈序列记忆网络(DFSMN)打造,针对多语言音频做了特征适配,通过滑动窗口平滑、阈值筛选等策略,降低误检和漏检率;同时设计了流式和非流式两种推理逻辑,流式VAD支持实时音频检测,适配直播、语音通话等实时场景。

FireRedLID:口语语言识别(LID)支持 100+ 种语言及 20+ 种中文方言/口音识别,准确率达 97.18%,优于 Whisper 和 SpeechBrain-LID。对汉语方言的识别准确率达88.47%,能精准区分粤语、四川话、上海话、闽南语等主流方言,适配国内多语言交流场景。

  • 依托FireRedASR2的编码器提取语音的深层特征,再通过分类器实现语言/方言的识别,利用ASR模型的多语言特征学习能力,提升小语种和方言的识别准确率,无需单独为LID做大量数据训练。

FireRedPunc:标点预测(Punc)支持中英文标点预测,平均 F1 值为 78.90%,优于 FunASR-Punc(62.77%)。适配日常对话、会议、文档等多场景,解决语音识别结果无标点、可读性差的问题,无需人工二次编辑。

  • 基于经典的BERT预训练模型打造,针对语音识别的文本结果做了多领域微调,学习中英双语的标点使用规律,结合上下文语义实现智能标点预测,区别于传统的规则化标点方案,适配更复杂的语言场景。

FireRedASR2S:系统概述

FireRedASR2S 是一套工业级一体化语音识别系统,将四大模块 —FireRedVAD、FireRedLID、FireRedASR2以及 FireRedPunc — 集成至统一处理流水线中。 该系统采用模块化设计:各组件可独立部署使用;默认配置则构成端到端转写流水线,能够适配各类声学场景(人声、歌声、背景音乐、非人声噪声),同时支持多语言及汉语方言场景,最终输出结构化结果,包含带标点文本、时间戳、置信度分数与语种标签。

处理流水线:如图 1 所示,FireRedASR2S 对输入音频波形分四阶段处理:

  • 第一阶段,FireRedVAD 在原始音频时间轴上检测人声片段,滤除非人声区域,提升长音频处理的鲁棒性;
  • 第二阶段,FireRedLID 为每个检测到的片段输出语句级语种标签,必要时附加汉语方言标签;
  • 第三阶段,FireRedASR2 将各片段转写为文本,并返回语音识别置信度;若使用 FireRedASR2-AED 版本,还可提供字符级与词语级时间戳;
  • 最后阶段,FireRedPunc 为识别结果补充标点符号,提升文本可读性与下游任务适用性。

FireRedASR2:

FireRedASR2 包含两个版本:FireRedASR2-AEDFireRedASR2-LLM

  • FireRedASR2-AED 采用经典的 注意力编解码(AED)架构;
  • FireRedASR2-LLM 基于编码器 – 适配器 – 大语言模型架构构建,借助大语言模型的能力提升语音识别效果。

两个模型的输入特征处理与声学编码方式相近,仅在词元序列建模方法上有所不同。此外,FireRedASR2-AED 支持输出词元级时间戳整句置信度;词语级时间戳可通过对词元时间戳做后处理得到(例如将英文子词单元合并为完整单词)。

FireRedASR2-AED

架构(Architecture):FireRedASR2-AED 采用端到端 ASR 架构,基于 Conformer 编码器 + Transformer 解码器 的设计。

  • 编码器(Encoder)
    • 以卷积下采样开始,用于降低帧率
    • 后接多层堆叠的 Conformer block
  • 解码器(Decoder)
    • 标准 Transformer 解码器
    • 通过注意力机制对编码器输出进行建模
    • 使用交叉熵目标生成 token 序列

训练数据 相比 FireRedASR,FireRedASR2 的主要改进在于:

  • 监督训练数据从 7 万小时扩展至约 20 万小时
  • 数据覆盖范围更广,包括:
    • 普通话
    • 英语
    • 中文方言
    • 中英混合(code-switching)
    • 语音与歌声
    • 非语音音频

性能提升和泛化能力增强主要归因于这一更大规模且更多样化的数据集

输入特征(Input Features)使用 80 维 log Mel 滤波器组(FBank)特征

  • 窗长:25 ms
  • 帧移:10 ms
  • 后处理:全局均值方差归一化(CMVN)

FireRedASR2-AED 采用混合分词策略:中文:按汉字(character)建模,英文:使用 BPE(Byte-Pair Encoding)子词单元。相较于 FireRedASR-AED:词表规模更新为 8667,更好支持多语言及方言场景。

基于解码器概率的置信度估计:FireRedASR2-AED 输出句子级(utterance-level)置信度分数,用于衡量识别结果的可靠性。具体方法:

  1. 从 beam search 得到的 1-best 路径
  2. 提取对应 token 的后验概率(softmax 输出)
  3. 排除特殊 token(如 <s>, <eos> 等)

然后:将 token 级概率聚合为序列级分数常用方式:几何平均(geometric mean)。为了提升工程实用性,还可以进行进一步优化:

  • 过滤异常值(outliers)
  • 置信度截断(confidence clipping)

最终,该分数可用于:结果过滤、排序(reranking)、UI 展示

后置 CTC 分支用于时间戳预测

FireRedASR2-AED 的一个关键改进是:通过额外的 CTC 分支支持时间戳(timestamps)预测。在基础 AED 模型训练完成后:在编码器输出上增加一个轻量级 CTC 投影头(CTC head)冻结 Encoder 和 Decoder,仅训练 CTC 分支(使用标准 CTC loss)

实现细节:CTC head = 线性层(encoder hidden → logits);CTC 词表与 AED 词表完全一致便于后续对齐(forced alignment)

该设计的优点:不影响原 AED 模型识别精度,同时支持基于对齐的时间戳预测


推理流程(Inference)

  1. AED 解码:使用 beam search 得到 token 序列
  2. CTC 对齐:从 encoder 输出计算 frame-level CTC logits; 对 AED 输出序列执行 CTC 强制对齐(forced alignment);blank token id = 0

然后:将 frame-level 对齐结果转换为 token-level 起止时间,根据 encoder 的下采样率进行时间映射

  • 英文:将多个 BPE token 合并为一个词,取:起始时间 = 最小 start,结束时间 = 最大 end
  • 中文:每个汉字 token 直接作为一个词单元

FireRedASR2-LLM:基于 Encoder-Adapter-LLM 的 ASR 模型

FireRedASR2-LLM 同样是一个端到端 ASR 模型,遵循 FireRedASR-LLM [1] 提出的 Encoder-Adapter-LLM 框架

该模型由三部分组成:

  1. 音频编码器(Encoder)
    • 基于 Conformer
    • 将声学特征转换为高层语义表示
  2. 适配器(Adapter)
    • 轻量级模块
    • 将编码器输出映射到预训练文本大语言模型(LLM)的 embedding 空间
  3. 自回归语言模型(LLM)
    • 通过 next-token prediction(下一个 token 预测)生成转录文本(transcript)

FireRedASR2-LLM 与 FireRedASR2-AED 在以下方面保持一致:训练数据、输入特征、数据处理流程。此外:FireRedASR2-LLM 的 Encoder 使用 FireRedASR2-AED 的 Encoder 预训练权重进行初始化

核心变化在于:使用了 20 万小时大规模监督训练数据,模型架构和训练策略保持不变

与 FireRedASR 的差异总结

总结了 FireRedASR2 与 FireRedASR 的主要差异。

总体来看:

  • FireRedASR2 继承了 FireRedASR 中已验证有效的模型设计
  • 通过以下方式进一步提升性能:
    • 更大规模且更多样化的训练数据(20 万小时)
    • 在 AED 模型中引入 后置 CTC 分支(post-hoc CTC branch),支持时间戳预测

从本质上讲:

  • 结构创新不多(偏工程稳健)
  • 性能提升主要来自数据规模 + 功能增强(timestamps)

FireRedVAD:

FireRedVAD 为下游 ASR 提供鲁棒的音频分段能力,适用于真实场景音频,其中语音可能与以下内容共存:

  • 歌声(singing)
  • 背景音乐(background music)
  • 各类非语音声学事件

不同于许多工业级 VAD 方案(通常依赖 ASR 强制对齐信号,并主要基于 ASR 语料训练),FireRedVAD 基于高质量人工标注的声学事件数据进行训练,从而在复杂声学环境下具备更可靠的检测能力。

FireRedVAD 包含三类基于 DFSMN 的模型:

  1. 非流式 VAD(offline)用于离线音频分段
  2. 流式 VAD(streaming)用于低延迟在线分段
  3. 非流式多标签 VAD(mVAD)用于声学事件识别(speech / singing / music)

多标签 VAD(mVAD):mVAD 被建模为帧级多标签分类任务,预测三类事件的后验概率:

  • speech(语音)
  • singing(歌声)
  • music(音乐)

特点:每一类事件输出独立概率,最终通过逐类别后处理得到对应的时间片段


语音活动检测(VAD):VAD 被建模为帧级二分类任务

  • voice(有声) = speech ∪ singing
  • non-voice(无声) = music + silence + noise

该定义符合 UGC(用户生成内容)场景:歌声通常与语音采用类似处理方式

训练数据

人工标注的事件语料库:
FireRedVAD 使用数千小时的人工标注声学事件数据进行训练。每条语音都标注了 speech(语音)、singing(歌声)和 music(音乐) 的时间边界。不同于常见做法(例如通过 ASR 强制对齐或弱分割启发式方法生成 VAD 监督信号),FireRedVAD 直接采用高质量的人工标注数据进行训练。

mVAD 与 VAD 的监督方式:
mVAD 模型直接使用原始的三类标签进行训练。而 VAD 模型则基于同一标注体系构造二分类标签:将 speech 和 singing 映射为正类,将 music、silence 和 noise 映射为负类
尽管两者共享相同的语义体系(ontology),mVAD 与 VAD 仍作为独立模型进行训练,并分别采用针对各自任务设计的优化目标与后处理策略。

模型结构

输入特征:
FireRedVAD 使用与 FireRedASR2相同的声学特征。

DFSMN 主干网络:
所有 FireRedVAD 模型均采用深度前馈序列记忆网络(DFSMN),该结构在帧级声学分类任务中具有高效且优良的表现。
我们通过depthwise 1-D convolution)来实现 FSMN的记忆模块,以建模时间上下文,并结合残差连接(residual connection)以提升训练稳定性。

网络配置:模型包含 8 个 DFSMN block,后接 1 个前馈层

  • 隐层维度(hidden size):256
  • 投影维度(projection size):128

时间上下文设置如下:

  • 回看(look-back):阶数 20,步长 1
  • 非流式(offline)VAD 与 mVAD
    • 使用 look-ahead = 20,stride = 1(利用未来信息提升分割效果)
  • 流式(streaming)VAD
    • look-ahead = 0(保证因果性推理)

同时,模型采用 dropout(0.05)进行正则化。

模型规模:得益于紧凑的设计,FireRedVAD 的三个模型均非常轻量,每个模型仅约 0.6M 参数(约 2.2MB,float32)
这种超轻量特性使其:

  • 非常适合云端高并发处理
  • 也适用于资源受限的边缘设备部署

输出层 最终分类器为一个线性映射,将 DFSMN 的隐藏状态映射为 logits:

  • VAD:输出维度为 1(语音 vs 非语音)
  • mVAD:输出维度为 3(speech / singing / music)

随后使用 sigmoid 激活函数得到后验概率。

流式推理:
为支持在线 VAD,流式模型在每一层维护一个小型缓存(cache),用于保存 FSMN 所需的固定长度历史信息(look-back)。在推理过程中:

  • 模型逐步更新缓存
  • 仅对新输入帧进行计算
  • 无需重复处理历史音频

从而实现:低延迟、有界内存占用

后处理与分段

DFSMN 模型输出的是帧级后验概率,需通过确定性的后处理流程转换为时间片段。

处理流程如下:

  1. 平滑(Smoothing)
    对后验概率序列应用滑动平均滤波(moving-average)
  2. 阈值判定(Thresholding)
    基于概率阈值得到帧级分类结果
  3. 状态机约束(Finite-state postprocessing)
    为抑制局部声学波动导致的频繁切换,引入有限状态机,约束:
    • 最小语音时长(min speech duration)
    • 最小静音时长(min silence duration)提升离线与流式场景下的稳定性

分段还可以进行可选的优化,包括:合并短间隙、延长边界、拆分过长语音段,这能够增强长音频和下游 ASR 的鲁棒性。

对于 mVAD,同样的流程会独立应用于每个事件的后验流(speech、singing、music),使用事件特定的阈值,得到每个事件的时间戳段。

  • 非流式 VAD 输出带有开始/结束时间戳的一组语音段;
  • 流式 VAD 输出增量的帧级判决和语音开始/结束事件;
  • mVAD 输出 speech、singing 和 music 的每个事件时间戳,从而支持事件感知的下游处理。

FireRedLID

FireRedLID 旨在在多样化声学条件下保持鲁棒,并支持多语言识别以及精细的中文方言识别。

模型与训练

架构:FireRedLID 采用 Encoder-Decoder 架构,使用 Conformer EncoderTransformer Decoder,实现风格与 AED ASR 模型一致。给定输入语句,Encoder 生成声学表示,Decoder 输出表示 LID 结果的短 token 序列。

初始化:Conformer Encoder 从预训练的 FireRedASR2-AED Encoder 初始化,以利用其大规模 ASR 表征学习能力;LID Decoder 则随机初始化,从零开始训练。

输入特征:FireRedLID 使用与 FireRedASR2 相同的声学特征。

训练数据:FireRedLID 使用约 20 万小时多语言语音 训练,覆盖 100+ 种语言,包括普通话及 20+ 种中文方言。数据经过精心筛选,涵盖多样域和声学条件,以提升泛化能力。

训练目标:采用标准 序列到序列交叉熵(Seq2Seq CrossEntropy),使用 teacher forcing 进行训练。

分层标签空间与解码

两级标签:FireRedLID 将 LID 建模为 两级层次结构

  • 第一级预测语言(如 zh、en、ja、ko 等);
  • 当预测语言为中文(zh)时,模型进一步预测中文方言标签(如 mandarin、yue、wu、min、xiang 等)。

此设计反映自然标签结构,并通过在粗粒度语言决策条件下预测方言,提高方言识别的稳定性。

短序列 token 预测:将分层 LID 任务表述为 短序列生成任务最大解码长度为 2

  • 模型通常先输出语言 token;
  • 对中文语句,Decoder 通常再输出第二个 token 表示方言,然后生成 <eos>
  • 对非中文语句,Decoder 在预测语言 token 后通常直接输出 <eos> 终止。

这种设计保持标签序列紧凑,相比平坦标签空间减少歧义。

解码与置信度:推理时,使用 beam search 解码 token 序列。由于输出长度最多 2 个 token,解码开销可忽略。模型输出最优假设,并将已解码 token(不含特殊 token,如 <sos><eos>)的平均后验概率作为语句级置信度

支持语言与方言

标签覆盖:FireRedLID 支持 100+ 种语言20+ 种中文方言

  • 语言用紧凑的代码表示(如 zh、en、ja、ko);
  • 中文方言被分为 8 个地理或语言学方言簇(如 mandarin、yue、wu、min 等)。

FireRedPunc:

FireRedPunc 用于为 ASR 转写结果预测标点,从而提升可读性及下游可用性(如字幕显示和机器翻译)。它主要针对开域 ASR 输出的中英文标点预测。

架构:FireRedPunc 采用 BERT 风格的 Encoder,并在 token 级别添加分类头。

  • 给定输入 token 序列,模型为每个 token 预测一个标点标签,表示该 token 后应插入的标点;
  • Encoder 从预训练的 LERT 检查点初始化(LERT 是一个以语言学为动机的 BERT 变体),并对标点预测任务进行微调。

标点集合:使用紧凑的 5 类标点集合,包括:无标点、,.?!

  • 对中文文本,使用全角中文标点;
  • 设计覆盖 ASR 应用中最常用的标点,同时保持分类器简单且稳定。

训练数据:FireRedPunc 在大规模多领域文本语料上训练,带标点注释。

  • 数据量约 185.7 亿中文字符22 亿英文单词
  • 覆盖多样领域和写作风格,以增强对 ASR 风格输入的泛化能力。

训练目标:采用 标准 token 级交叉熵损失 进行训练。

推理

  • 推理时,使用与 LERT 预训练 Encoder 相同的 tokenizer 对 ASR 输出进行分词;
  • 模型预测每个 token 的标点标签;
  • 最终文本通过将预测标点插入原始文本生成。

Evaluation

FireRedASR2

  • FireRedASR2-LLM(8B+ 参数)
  • FireRedASR2-AED(1B+ 参数)

FireRedASR2-LLM 在所有汇总指标上表现最佳:

  • 普通话(Avg-Mandarin-4)平均 CER 为 2.89%
  • 中文方言(Avg-Dialect-19)平均 CER 为 11.55%
  • 全部 24 个测试集(Avg-All-24)平均 CER 为 9.67%

在歌曲歌词识别上也表现优异:在 opencpop 数据集上,FireRedASR2-LLM 的 CER 为 1.12%FireRedASR2-AED 尽管模型较小,但仍能达到有竞争力的准确率,为实际部署提供了更平衡的选择。

FireRedVAD

FireRedVAD 在多语言 VAD 任务上表现出色

  • AUC-ROC 达到 99.60%
  • F1 分数 达到 97.57%

误报率(FAR)2.69%漏报率(MR)3.62%,说明 FireRedVAD 在下游语音分段任务中能保持平衡。相比之下,一些基线(如 FunASR-VAD)虽然漏报率非常低,但代价是误报率显著升高,这在实际部署中可能导致过度分段并增加不必要的下游 ASR 计算。

FLEURS-VAD-102,一个覆盖 102 种语言的多语言 VAD 基准集。

FireRedLID

多语言 LID:在 FLEURS 测试集(82 种语言)和 CommonVoice 测试集(74 种语言)上评估。 中文方言识别:合并 KeSpeechMagicData 测试样本,覆盖 10 多种中文方言。

FLEURS 测试集:FireRedLID 达到 97.18% 准确率,显著优于 Whisper,并较 SpeechBrain 有明显提升。 CommonVoice 测试集:FireRedLID 取得比较系统中的最高准确率。 中文方言基准:FireRedLID 达到 88.47% 准确率,证明了分层标签建模在细粒度中文方言识别中的有效性。

FireRedPunc

与常用标点模型 FunASR-Punc (CT-Transformer) 对比

VibeVoice-ASR:微软多任务语音识别模型

概述

VibeVoice-ASR 是微软开源的90亿参数统一语音识别模型,基于Qwen2 Decoder架构,采用64K token超长上下文窗口与7.5 Hz超低帧率语音分词技术,实现了ASR(自动语音识别)、说话人分离(Diarization)和时间戳标注(Timestamping)三大任务的端到端联合建模。该模型支持中英双语,可单次处理长达60分钟的连续音频,输出”Who-When-What”结构化转录结果,并通过自定义热词功能适配医疗、法律等专业领域

🕒 60 分钟单次处理
不同于传统 ASR 模型需要将音频切分为多个短片段(这通常会导致全局上下文丢失),VibeVoice ASR 在 64K token 长度限制内 可直接接收最长 60 分钟的连续音频输入,从而在整段音频范围内保持说话人一致性语义连贯性

👤 自定义热词(Customized Hotwords)
用户可以提供自定义热词(例如人名、专业术语或背景信息)来引导识别过程,显著提升特定领域内容的识别准确率。

📝 丰富的结构化转写(Who / When / What)
模型联合完成 语音识别(ASR)说话人分离(Diarization)时间戳标注(Timestamping),输出结构化结果,清晰标注是谁在什么时间说了什么内容

当前主流的长音频处理方法采用级联流水线架构,将连续语音切分为短片段(通常小于 30 秒)进行独立处理,尽管这种 “分而治之” 的策略具备实用性,但存在两个根本性缺陷上下文碎片化流水线复杂度。首先,片段独立处理会切断全局语义依赖,使模型丢失跨语句上下文信息,这对于消除同音词歧义、解决长对话中的指代消解问题是致命的。其次,传统系统将自动语音识别(ASR)说话人分轨(Diarization)和时间戳标注视为相互独立的任务,由互不相关的模型分别处理。调和其输出往往需要复杂的启发式规则,进而导致错误传播:一旦分段或说话人分轨出现错误,就会污染最终转录结果。 为弥补这一差距,我们提出 VIBEVOICE-ASR,一个面向高保真长语音理解的统一通用框架。

Method

模型

VibeVoice-ASR采用声学-语义双编码器架构:

  • 声学编码器:基于VAE结构,将16kHz音频压缩为7.5 Hz离散token(码本大小8K),捕捉音色、语调等声学细节
  • 语义编码器:类似HuBERT架构,提取语音的语义表示,确保内容理解准确性

双编码器特征融合后,通过声学连接器(Acoustic Connector)映射至LLM语义空间,实现声学信息与语言知识的深度耦合。

传统梅尔频谱以50 Hz帧率提取特征,1小时音频产生18万帧,超出Transformer处理能力。VibeVoice创新性地采用7.5 Hz帧率,压缩比高达2133:1,将长音频转化为LLM可处理的token序列。这种超低帧率设计不仅解决长度瓶颈,更通过连续语音分词器保留韵律与语气信息,为后续TTS任务提供统一表征基础。

这种超低帧率至关重要,一小时连续音频可换算为:3600 秒×7.5 token/秒=27000 个 token这一长度可以轻松放入现代大语言模型的单遍上下文窗口中。

大语言模型主干( Qwen 2.5-7B)处理,自回归地生成目标序列。

Pre-training

预训练数据英文占比最高66%,中文占比 14%,覆盖了 50 余种语言。该流水线包含三个阶段:分段与转录说话人分轨以及质量过滤

首先,利用 Silero 语音活动检测(VAD)将长录音切分为最长 30 秒的片段,再使用 Whisper-large-v3-turbo 进行转录,得到带标点的文本与词级时间戳;通过在标点结束时间戳(如句号、问号、感叹号)处进行切分,进一步优化分段边界,使其与说话人轮次更好对齐。 随后,使用 WeSpeaker 工具包 中的 vblinkp 模型执行说话人分轨:从重叠帧(窗口 1.5 秒,步长 0.75 秒)中提取说话人嵌入,使用 HDBSCAN进行聚类,并将质心余弦相似度大于 0.67 的簇进行合并优化,得到最终的说话人轮次标注。

最后,为保证标注可靠性,我们使用另一套 ASR 模型 对片段重新转录;若超过 30% 的片段词错误率(WER)高于 20%,或语音时长占总时长不足 60%,则将该条录音丢弃。 为验证数据处理流水线的有效性,我们将其与两种广泛使用的音频处理流水线 WhisperX和 Emilia 进行了对比实验。实验在三个常用的公开多人会议数据集上开展:AMI 、AliMeeting 和 AISHELL-4 ,并同时报告说话人分轨错误率(DER)与分轨不变词错误率(WER)。为保证公平对比,我们关闭了 Emilia 中的数据过滤模块,因其默认配置会剔除大量音频样本。

如表 1 所示,在大多数测试数据集上,本文提出的数据流水线相比两个基线系统均能持续获得更低的 DER 与 WER。结果表明,在不同声学环境下,我们的流水线在分段、说话人分轨与转录任务上均具备更稳健的性能。

对大语言模型的输入序列长度采用了课程学习策略,从 8192 个 Token 逐步增加到 65536 个 Token。

SFT

构建了四类高质量数据进行微调:

  1. 标准语音与音乐数据集:提升多说话人识别与音乐场景鲁棒性;
  2. 上下文感知合成数据:用 GPT‑5 生成带上下文提示的中英混流对话脚本,再通过 VIBEVOICE 合成约 6000 小时高质量音频;
  3. 长语音修复数据:用 GPT‑5 对碎片化转录做全局语义校正,并标注非语音片段以抑制幻觉;
  4. 最后按 0.5: 0.1: 0.1: 0.3 的比例混合训练,让模型在常规识别、音乐、上下文感知、长语音理解上能力更均衡。

流式处理与内存优化

通过VibeVoiceTokenizerStreamingCache缓存机制,模型在处理超长音频时采用分块编码策略:将60分钟音频切分为60秒块流式处理,缓存卷积层状态,最终统一采样确保块间一致性。配合FlashAttention-2技术,内存复杂度从O(N²)降至O(N),使得90亿参数模型可在单卡24GB显存环境下运行。

结果

在所有测试数据集上,VIBEVOICE‑ASR 在 DER 和 tcpWER 指标上均持续优于 Gemini‑2.5‑Pro 与 Gemini‑3‑Pro,表明其说话人建模能力更强、说话人轮次时间对齐精度更高。 在更直接反映模型说话人一致性保持能力的 cpWER 指标上,我们的模型在 16 个评测配置中的 11 个取得最优性能,显著优于两个 Gemini 版本,说明在多说话人场景下说话人区分效果更可靠。 在 WER 方面,我们的模型在 16 个配置中的 8 个取得最低错误率,在其余数据集上仅出现小幅下降。

Limitations

监督微调中的多语言遗忘:虽然预训练覆盖了 50 余种语言,但监督微调阶段主要聚焦于英语、中文及语码切换数据。因此,对于未出现在指令微调中的低资源语言,模型性能可能出现下降。

重叠语音问题:当前架构生成序列化输出流,并未显式处理重叠语音(即 “鸡尾酒会问题”)。在多人同时说话的场景中,模型倾向于转录主要说话人内容,可能丢失次要信息。未来版本将探索带语音分离感知的建模方式来应对这一挑战。

对模型设计和数据的思考

多任务的模型设计

虽然模型命名为VibeVoice-ASR,但它并非单纯的语音转文字模型。VibeVoice-ASR集成了说话人日志、时间戳以及部分声音事件检测功能。

这样的多任务设计符合大模型时代的技术趋势,也契合未来的用户需求。如今,仅实现语音转录已远远不够。无论是底层模型还是上层应用,乃至用户对智能体验日益提升的期待,都要求我们从语音数据中提取更丰富的信息。用户对产品的追求不再停留在基础功能,而更多地转向情感价值与类人体验。

关注声音特性

声音在机器理解用户方面的价值被严重低估了。理解声音,是通往“世界模型”、理解世界不可或缺的一环。

遗憾的是,目前除了Gemini,我还没看到能与之比肩的系统。我也认为这是谷歌布局未来重要的一步。(不得不提一句,至于那些号称超越的,或许在某些测试集和指标上能实现超越,这一点我并不否认。)

VibeVoice-ASR模型其实让我有所期待。至少,它是开源模型中明确对声纹进行建模(另外还有阿里的 SpeakerLM ,也是对声纹进行建模识别),并且在我真实测试集(家庭录音,包括男性、女性、儿童)中,在区分度较大的场景下是可用的。

  • “建模声纹很难吗?”“是的。”
  • “声纹识别现在做得很好了吗?”“并没有。”

声纹作为声音的底层属性,与语音语义有很大不同。识别一个人的声纹,对人类来说也并非易事。我们觉得容易,大多是因为我们接触的声纹往往是“已注册”的。从模型实现来看,声纹的做法看似简单,但实际效果并不理想,原因有多方面:

极易受环境干扰

与ASR相比,声纹更易受声学环境干扰。训练数据的覆盖范围、环境噪声、信道差异,以及注册与使用条件的不一致,都会影响最终效果。

声纹具有时变性

声纹会随时间发生漂移,比如儿童的声音变化最快,不同儿童之间的声音区分也很困难,成人的声音也会因状态(如感冒、情绪)而改变。

声纹数据自动标注困难

从数据标注角度看,由于历史上声纹模型效果一般,再加上上述难点,导致自动化标注很难做到准确。

幻觉问题较为突出

在体验VibeVoice-ASR模型的过程中,发现最明显的问题是幻觉。测试中,注意到一个特别的现象:数据中孩子的哭声极容易触发模型的幻觉。

这背后最主要的原因,应该还是接下来要谈的数据覆盖问题。

长度真的那么重要吗?

对于文本大模型,长度等于上下文,上下文窗口的确很重要。但对于语音模型,特别是偏重转录的模型,在当前阶段,长度是否真的如此关键,我持保留态度。

VibeVoice-ASR提出的理由是:当前的系统存在两个根本性局限:上下文碎片化(Context Fragmentation)与流水线复杂度(Pipeline Complexity)。首先,独立处理各个片段会割裂全局语义依赖,导致模型无法追踪跨句子的上下文信息。这在处理长对话时尤为致命——例如,难以消解同音词歧义,或无法正确解析跨句的指代关系。其次,传统系统通常将自动语音识别(ASR)、说话人日记化(Speaker Diarization)和时间戳标注视为相互独立的任务,由彼此分离的模型分别处理。要协调这些模型的输出,往往需要依赖复杂的启发式规则,这容易引发误差传播:一旦分段或说话人划分环节出现错误,最终的转写结果就会受到污染。

首先,关于上下文断裂问题——纯音频的上下文真能解决这个问题吗? 或许能部分缓解,但对多数场景来说,可能并非至关重要。文本层面的上下文或许已足以提升准确率。

其次,工程复杂度方面,文中提到的说话人日志优势我很认同,但这个和长度其实关系不是特别大,我认为更多的优势来自于识别+说话人的联合建模。短句说话人日志的确很困难,但几分钟的数据进行说话人相关的工作也没有太大问题。如果可以把效果做好,后续通过一个混淆矩阵进行相同说话人的聚类。如果长语音识别确实可以做的好,那么降低系统复杂度的优势肯定是有的。

综上所述,在当前条件尚不成熟的情况下,过度强调长度或许并不是最优先的。相比长度,我们更应关注模型的稳定性与准确性。 当然,如果能处理更长的音频,那自然是更好的。

“垃圾”数据也有价值

从我测试中遇到的幻觉问题,结合当前主流数据清洗流程的做法,会发现一个现象:

人们常用多个模型交叉验证,筛选出“有用且正确”的数据。

什么是“有用且正确”的数据?如果一条数据包含文字,且多个模型识别结果一致,就被认为是有价值且标注正确的。那么,那些被过滤掉的数据,其价值又该如何看待?

事实上,它们的价值在今天更应被重视。原因如下:

幸存者偏差

这种方式筛选出的数据,都是以往模型基础上的“幸存者”,数据质量虽高,但对模型来说难度较低。换句话说,大量这类数据对模型能力的提升并无太大增益。如果模型只用这类数据训练,那么无论输入什么,哪怕是人耳都难以听清的语音,模型都可能用最大似然的方式“猜”一个最可能的结果,而不是“承认困难”。一个懂得“示弱”的模型,或许也有其价值。

“垃圾”数据的价值

所谓“垃圾数据”,正是那些被自动标注流程过滤掉的数据,它们的价值应当被重新审视。比如我测试数据中的哭声片段,很可能会被清洗流程过滤掉。再加上这类声音重复性强,更容易导致模型产生幻觉。

在强化学习中,也应该加强对“坏”数据如何给予正确反馈的机制。

LLM-ForcedAligner:多语种长语音非自回归强制对齐器

  • 论文题目:LLM-ForcedAligner: A Non-Autoregressive and Accurate LLM-Based Forced Aligner for Multilingual and Long-Form Speech
  • 论文预印版:https://arxiv.og/pdf/2601.18220

背景

在语音处理中,强制对齐(Forced Alignment,FA)的目标是在给定相应转录文本的情况下,估计语音信号中每个词或字符的起始和结束时间戳。FA在众多应用中不可或缺,包括大规模语音语料库的构建与清理、自动字幕生成和词级高亮显示,以及语音合成中的时长建模和韵律分析。随着多语言和多模态应用的不断发展,高效且准确的FA变得日益重要。

现有的FA方法大致可分为两大类:传统混合系统和端到端模型。Montreal forced aligner(MFA)通常是一种混合高斯混合模型-隐马尔可夫模型(GMM-HMM)框架,通过维特比解码计算帧级音素到文本的对齐路径来获取时间戳。CTC是一种常见的端到端强制对齐方法,它利用基于CTC的自动语音识别(ASR)模型计算的帧到token对齐,采用动态规划在受限的搜索路径中找到与文本序列对齐的最优路径。CIF为每个编码器输出帧预测一个权重,并随时间对这些权重进行积分。当累积权重超过阈值时,会触发一个触发事件,此时计算累积的帧级声学向量的加权和,生成与输出token对齐的声学嵌入,从而能够为每个token分配相应的时间戳。WhisperX采用轻量级端到端音素识别模型对语音进行帧级音素分类,然后使用动态时间规整(DTW)将得到的音素序列与转录文本对齐,通过聚合音素级时间戳来获取词级时间戳。

然而,上述FA方法与特定语言的音素、词汇或结构设计紧密相关,这意味着在多语言场景中,部署通常需要一系列结构各异的独立系统,导致工程成本和维护复杂度随语言数量呈线性增长。此外,以往的FA方法可概括为一个先计算局部声学相似度,再进行单调路径搜索的过程。虽然这些方法能为短片段生成相当准确的边界,但在长语音中,它们往往会积累显著的系统性时间偏移。

大型语言模型(LLMs)在多语言文本理解和长序列处理任务中展现出了强大的能力,为支持多语言、跨语言和长语音的语音文本对齐提供了新的可能性。越来越多的研究探索将语音编码器与LLMs相结合,构建语音大语言模型(SLLMs),以在统一框架内处理语音和文本。然而,现有的SLLMs主要在高级语义任务上取得了成功,例如ASR、语音理解、语音合成和口语对话。对于对声学特征更为敏感的FA,这些SLLMs通常将其视为ASR的副产品,通过next-token prediction来生成词级或字符级的时间戳。这种模式容易产生时间非单调的幻觉,并且会导致显著的推理延迟。

LLM-ForcedAligner

提出了一种新的强制对齐(Forced Alignment, FA)框架,称为 LLM-ForcedAligner该方法将强制对齐重新表述为一种槽位填充(slot-filling)范式

将每个单词或字符的起始和结束时间戳视为离散的时间索引,并在转录文本中插入专门的特殊标记作为“槽位”。这样,在语音嵌入表示以及插入了这些槽位的转录文本作为条件输入的情况下,语音大语言模型(SLLM)可以直接在指定的槽位位置预测对应的时间索引。

这一新的强制对齐范式有效利用了大语言模型在槽位填充能力长上下文处理能力方面的优势,将传统基于纯声学、音素级别的对齐方法扩展为具备语义边界感知能力的字符级或词级对齐方法

在具体实现上,为了进行槽位填充,我们在训练阶段采用了因果注意力掩码(causal attention masking),且不对输入序列和标签序列引入任何偏移(shift)。这使得每个槽位可以基于其自身及其之前的上下文信息来预测对应的时间索引。同时,损失函数仅在槽位位置上进行计算。

此外,我们采用了一种动态槽位插入策略:在转录文本中,随机决定是否为每个单词或字符插入特殊标记,从而使 LLM-ForcedAligner 能够对任意单词或字符进行时间戳预测。

在推理阶段,LLM-ForcedAligner 支持非自回归(non-autoregressive)解码,相比自回归解码方式可以完全避免幻觉(hallucination)问题,并且实现更快的推理速度。

实验结果表明,在多语言、跨语言以及最长达 300 秒的长语音场景下,LLM-ForcedAligner 相较于以往的强制对齐方法,在累计平均偏移(Accumulated Averaging Shift, AAS)指标上实现了 69%~78% 的相对下降,同时仅带来了轻微的实时因子(Real-Time Factor, RTF)增加。

在训练过程中,我们将转录文本中词级或字符级的起始和结束时间戳替换为一个特殊标记 [time],将其作为“槽位(slot)”。同时采用动态槽位插入策略,随机决定忽略哪些词或字符对应的槽位。
由 AuT 编码器生成的语音嵌入(speech embeddings)随后与文本序列拼接,并输入到 LLM 中,在**因果注意力掩码(causal attention masking)**下进行训练。

Overall Architecture

LLM-ForcedAligner将FA构建为一种槽位填充范式:给定语音信号和一个添加了表示词级或字符级的开始和结束时间槽位特殊token“[time]”的转录文本,SLLM直接为每个槽位预测相应的离散时间戳索引。与以往首先进行帧级或音素级的对齐,然后将结果聚合为词级或字符级的时间戳FA方法不同,LLM-ForcedAligner则直接预测词级或字符级的时间戳索引。

训练LLM-ForcedAligner需要大量语音-转录文本对的词级或字符级时间戳标签;然而,由于人工标注成本过高,我们采用了由MFA生成的伪时间戳标签,因为MFA是现有对齐方法中准确率最高的。需要强调的是,MFA伪标签本身存在噪声和系统性偏移。

LLM-ForcedAligner并非简单复制MFA的输出,而是利用SLLM对这些伪标签进行提炼和平滑处理,从而实现更稳定、偏移更小的时间戳预测。

LLM-ForcedAligner 中的语音编码器来自AuT,其输出的每个语音嵌入帧对应80毫秒的语音信号。在将带有MFA伪标签的转录文本输入Tokenizer之前,我们用[time] 替换所有MFA伪标签时间戳。此外带有MFA伪标签的转录文本同时将每个时间戳除以80毫秒以离散成时间序列索引,作为模型训练时的标签。

时间戳预测层是一个线性层,具有3750个输出类(300秒除以80毫秒),用于预测整个输入序列的时间戳索引。

LLM-ForcedAligner的多语言和跨语言能力由AuT语音编码器和多语言LLM共同提供。具体而言,在大规模多语言语料库上预训练的AuT编码器能为多种语言生成有效的帧级语音嵌入,而多语言LLM则处理不同语言的语义信息。此外,特殊token[time]和时间戳预测层不依赖于特定语言的音素集或词典。因此,LLM-ForcedAligner能够处理多语言和跨语言的语音-文本对,克服了以往FA方法的特定语言限制。

训练策略

SLLM通常采用一种训练方案,即移除输出序列的最后一个标记和标签序列的第一个标记,使两个序列之间产生一个位置的偏移;然后计算交叉熵损失,从而实现标准的下一个标记预测范式。然而,这种范式并不适合填充时间戳槽位填充。

相反,我们采用因果训练,使输出和标签序列不发生偏移,这让LLM-ForcedAligner在训练过程中能够明确感知时间戳槽位,并预测要填充到这些槽位中的时间戳。此外,因果训练使LLM-ForcedAligner在预测当前槽位的时间戳时能够结合先前的上下文,确保时间戳预测的全局一致性。在训练过程中,我们仅在时间戳槽位位置计算交叉熵损失,从而将LLM-ForcedAligner的训练目标集中在时间戳槽位填充上。

此外,在训练过程中为每个词或字符持续插入开始和结束时间戳槽位,会导致LLM-ForcedAligner过度依赖之前预测的时间戳。我们提出了一种训练过程中的动态槽位插入策略,以增强LLM-ForcedAligner的泛化能力。具体而言,对于每个样本,我们以50%的概率决定是否应用动态槽位插入。当应用动态槽位插入时,样本中的每个词或字符有50%的概率在其后插入开始和结束时间戳槽位。该策略使LLM-ForcedAligner能够预测任意位置的词或字符的开始和结束时间戳。

非自回归推理

由于在训练过程中输出和标签序列保持不偏移,LLM-ForcedAligner能够使用非自回归解码同时预测转录文本中所有槽位的时间戳索引。具体来说,对于一个语音-转录文本对,用户可以在任意单词或字符之后自定义起始和结束时间戳槽位。给定用户定义的时间戳槽位位置,LLM-ForcedAligner通过非自回归解码预测其时间戳索引,然后将时间戳索引乘以80毫秒就转换为毫秒级时间戳。

实验

我们的实验基于56000小时的语音数据展开,涵盖10种语言:中文、英语、法语、德语、意大利语、日语、韩语、葡萄牙语、俄语和西班牙语。这些数据来源于内部和开源数据集的组合,覆盖了多种场景,如朗读语音、对话语音、播客和会议等。所有训练和测试数据集都标注了由MFA生成的伪时间戳,此外,我们还在一个带有手动标注时间戳的内部中文测试数据集上评估了LLM-ForcedAligner的性能。训练数据集中的转录文本要么来自人工标注,要么来自ASR模型的预测结果,这增强了LLM-ForcedAligner对不同质量转录文本的泛化能力。

LLM-ForcedAligner中的AuT编码器包含316.42M参数,其初始化源自Qwen3-Omni的AuT编码器,LLM使用的是Qwen3-0.6B,时间戳预测层是一个单一的线性层,具有3750个输出时间戳类别,包含3.84M参数

在训练过程中,AuT编码器、LLM和时间戳预测层联合优化。我们使用累积平均偏移(AAS)来衡量时间戳预测的性能。AAS值越低,表明时间戳预测性能越好。具体来说,AAS计算每个时间戳槽位的平均偏移,其定义为测试数据集中所有槽位的预测时间戳与真实时间戳之间的平均绝对差。

实验结果

表1和表2在多语言、跨语言和长语音场景下,基于MFA标注的测试数据集,将LLM-ForcedAligner与其他FA方法进行了比较。Monotonic-Aligner只支持中文,NFA和WhisperX需要根据不同的语言切换模型。我们观察到,LLM-ForcedAligner不仅支持多种语言且无需切换模型,而且与其他FA方法相比,在多语言原始语音上的AAS相对降低了66%~73%。此外,LLM-ForcedAligner在多语言和跨语言长语音上实现了极低的平均AAS,而在这种场景下,其他FA方法往往表现不佳。

表1 LLM-ForcedAligner和其他FA方法在MFA标注测试数据集上的毫秒级别AAS,每种语言的测试数据集均由该语言的开源测试数据集和内部测试数据集的原始语音组成
表2 LLM-ForcedAligner和其他FA方法在MFA标注测试数据集上的毫秒级别AAS,每种语言的测试数据集由该语言开源和内部测试数据集中的原始语音拼接而成,时长最长为300秒,“Mixed-Crosslingual”是由任意语言的开源和内部测试数据集中的语音拼接而成,时长最长为300秒

表3在人工标注的中文测试数据集上对LLM-ForcedAligner与其他FA方法进行了比较,涵盖了带噪声、跨语言和长语音场景。我们发现,在人工标注的测试数据集上,LLM-ForcedAligner的平均AAS相较于其他FA方法实现了68%~78%的相对降低,这表明使用MFA标注数据训练的LLM-ForcedAligner能够很好地泛化到真实世界的场景中。

表3 LLM-ForcedAligner与其他FA方法在人工标注测试数据集上的毫秒级别AAS,“Raw”指数据集中的原始语音;“Raw-Noisy”指添加了背景噪声的原始语音;“Mixed-60s”和“Mixed-300s”是将原始语音拼接成最大时长分别为60秒和300秒的语音;“Mixed-Crosslingual”是人工标注的原始语音与MFA标注的多语言语音的拼接

此外在表2中,MFA标注测试数据集上长语音的平均AAS略高于原始语音的平均AAS,这反映了MFA在长语音上的系统性偏移。相比之下在表3中,在人工标注的测试数据集上,长语音的平均AAS低于原始语音的平均AAS,这表明LLM-ForcedAligner并非简单复制MFA的时间戳预测,而是学习到了更稳健、更可靠的时间戳预测,能够在长语音场景中有效修正MFA的标签。此外,在长语音推理过程中,LLM-ForcedAligner可以利用更长的历史上下文来预测当前片段的时间戳,从而在人工标注的长语音测试数据集上取得了更优异的性能。

表4报告了在相同的推理条件下,LLM-ForcedAligner与其他FA方法的平均实时因子(RTF)。随着模型参数数量的增加,RTF略有上升。由于LLM-ForcedAligner采用非自回归推理的优势,它在AAS上实现了大幅降低,RTF仅略有增加。用户可以根据AAS与RTF的权衡来选择最合适的FA方法。

表4 LLM-ForcedAligner和其他FA方法在推理期间的平均RTF

表5展示了在MFA标注和人工标注的测试数据集上,使用不同时间戳token时长训练的LLM-ForcedAligner的平均AAS结果。当时间戳token时长为120毫秒时,时间戳预测层有2500个类别(300秒除以120毫秒);当时长为80毫秒时,有3750个类别(300秒除以80毫秒);当时长为40毫秒时,有7500个类别(300秒除以40毫秒)。随着时间戳token时长的缩短,MFA标注测试数据集上的AAS稳步下降,这表明更精细的时间戳预测更符合MFA标签。然而,在人工标注的测试数据集上,更精细的时间戳预测并没有带来更低的AAS,因为它更贴合MFA的时间戳分布,从而导致泛化能力下降。80毫秒的时间戳token时长是最佳选择因为AuT编码器输出的每个帧也代表80毫秒的语音,这有助于LLM-ForcedAligner根据语音边界更好地确定单词或字符的起始和结束时间戳。

表5 不同时间戳token时长的消融研究在MFA标记和人工标记测试数据集上的毫秒级别AAS,“Raw”指原始语音,“Mixed”指最长达300秒的单语和跨语言拼接语音

表6展示了LLM-ForcedAligner在MFA标注和人工标注的测试数据集上的平均AAS结果,并对比了训练期间有无动态槽位插入的情况。动态槽位插入会随机决定是否在每个单词或字符后插入时间戳槽位,使LLM-ForcedAligner能够在任意位置预测开始和结束时间戳并防止其过度依赖先前预测的时间戳。我们发现,动态槽位插入降低了两个测试数据集上的AAS,其中对长语音的改进更为明显。这一现象的原因是,动态槽位插入通过随机决定是否在每个单词或字符后插入时间戳槽位,避免了LLM-ForcedAligner过度依赖历史预测的时间戳,否则可能会导致系统性的时间偏移此外,动态槽位插入使LLM-ForcedAligner能够在任意位置为单词或字符预测开始和结束时间戳,支持用户自定义的时间戳预测。

表6 动态槽位插入的消融研究在MFA标注和人工标注测试数据集上的毫秒级别AAS,“Raw”指原始语音,“Mixed”指长达300秒的单语和跨语言拼接语音

图3展示了在 LLM-ForcedAligner 以不同动态槽位插入比例进行训练时,在人工标注的测试数据集上的AAS结果。当动态槽位插入比例低于训练样本的50%时,LLM-ForcedAligner的AAS较低,且随着比例的增加,AAS持续下降。然而,当该比例超过训练样本的50%时,AAS开始上升,在100%时达到最高值。因此,选择50%这一合适的动态槽位插入比例对于增强LLM-ForcedAligner的泛化能力至关重要。

图4展示了在不同参数设置下,LLM-ForcedAligner在MFA标注和人工标注的测试数据集上的AAS结果。当LLM-ForcedAligner的参数规模小于0.9B时,时间戳预测性能受到模型容量不足的限制。当参数规模超过0.9B时,MFA标注测试数据集上的AAS没有显著变化,而人工标注测试数据集上的AAS则有所上升,这表明LLM-ForcedAligner过拟合了MFA时间戳分布。因此,0.9B的参数规模是最优的。在这一规模下,LLM-ForcedAligner不会严格拟合MFA时间戳分布,而是学习到更平滑、更稳健的时间戳预测行为,具有更好的泛化性能。

图3 LLM-ForcedAligner在不同动态槽插入比例下,在人工标注测试数据集上的毫秒级别AAS
图4 不同参数设置下,LLM-ForcedAligner在MFA标注和人工标注测试数据集上的毫秒级别AAS

参考文献

  • [1] Michael McAuliffe, Michaela Socolof, Sarah Mihuc, Michael Wagner, and Morgan Sonderegger. 2017. Montreal Forced Aligner: Trainable Text-Speech Alignment Using Kaldi. In Proc. Interspeech, pages 498–502.
  • [2] Xian Shi, Yanni Chen, Shiliang Zhang, and Zhijie Yan. 2023. Achieving Timestamp Prediction While Recognizing with Non-Autoregressive End-to-End ASR Model. CoRR, arXiv:2301.12343.
  • [3] Max Bain, Jaesung Huh, Tengda Han, and Andrew Zisserman. 2023. WhisperX: Time-Accurate Speech Transcription of Long-Form Audio. In Proc. Interspeech
  • [4] Xian Shi et. al., Qwen3-ASR Technical Report, https://arxiv.org/abs/2601.21337

Qwen3-ASR 支持多语种识别大模型

Qwen3-ASR 是由Qwen开发的一系列功能强大的语音识别模型,包括两个强大且全面的语音识别模型 Qwen3-ASR-1.7B 与 Qwen3-ASR-0.6B,以及一个创新的语音强制对齐模型 Qwen3-ForcedAligner-0.6B。Qwen3-ASR 系列的语音识别模型支持 52 个语种与方言的语种识别与语音识别。

依托创新的预训练 AuT 语音编码器与 Qwen3-Omni 基座模型的强大多模态能力,Qwen3-ASR 实现了精准与稳定的语音识别,其 1.7B 模型在中文、英文、中文口音与歌唱识别等场景下达到 SOTA,具有复杂文本识别能力以及强噪声下的稳定性;0.6B 模型在性能与效率上实现了均衡,在保证语音识别准确率的情况下,128 并发异步服务推理能够达到 2000 倍吞吐,即 10 秒钟处理五个小时以上的音频。

强制对齐模型 Qwen3-ForcedAligner-0.6B 是基于 NAR LLM 推理的时间戳预测模型,支持 11 个语种的任意位置的灵活精准的强制对齐,其时间戳预测精度超越传统的 WhisperX,Nemo-Forced-Aligner 等模型,单并发推理 RTF 达到了高效的 0.0089。

Introduction

核心特性与贡献可概括如下:

  • 实现一体化 ASR 与 LID 的最先进性能。
    Qwen3-ASR-1.7B 与 Qwen3-ASR-0.6B 支持 30 种语言、22 种中文方言的自动语音识别,以及覆盖全球不同国家和地区的英语变体。这两款模型在复杂环境下同样具备鲁棒识别能力,包括但不限于歌唱语音与歌曲识别、噪声环境识别以及复杂文本模式(如混合语言、口语化表达等)的识别。
  • 提出新型语音强制对齐架构。
    首次引入了基于大语言模型的语音强制对齐器,可在灵活时间粒度下生成高精度时间戳,包括词级、句级和段落级。不同于现有工具(如 Montreal Forced Aligner, MFA 和 NeMo Forced Aligner, NFA),我们的 Qwen3-ForcedAligner-0.6B 提供统一的多语言解决方案,弥补了 Qwen3-ASR 系列中缺乏一体化强制对齐系统的不足,补全了综合口语语言处理体系中的关键功能模块。
  • 开源模型与完整的推理及微调框架。
    除发布三款模型权重外,我们还提供了一个完全开源、易于使用的代码框架,支持多种推理能力(如多粒度对齐、流式转写和多语言处理),并提供可复现的微调方案。我们希望这一统一工具链能够加速自动语音识别领域的研究与应用开发。

Qwen3-ASR

Architecture

Qwen3-ASR 系列模型以 Qwen3-Omni 作为基础模型,该模型已被验证具备强大的音频理解能力。待识别语音首先输入至 AuT 编码器AuT 编码器独立于 Qwen3-Omni 和 Qwen3-ASR 进行预训练。

如图 2(左)所示,AuT 是一种基于 Attention Encoder-Decoder (AED) 架构的 ASR 模型。其对 128 维 Fbank 特征进行 8 倍下采样,从而生成 12.5Hz token 率的音频表示。为兼顾流式与离线推理能力,我们采用 动态 Flash Attention 窗口机制,窗口大小在 1 秒至 8 秒之间自适应变化,使 Qwen3-ASR 既可处理短语音块进行流式推理,也可支持长语音的离线推理。

本次发布模型的整体架构如图 2(右)所示,具体如下:

  • Qwen3-ASR-1.7B
    由 Qwen3-1.7B 主干模型、一个 projector 模块以及一个参数规模为 3 亿(300M)、隐藏维度为 1024 的 AuT 编码器构成。该模型在多语言及方言语音识别任务上表现突出,同时在复杂声学环境和复杂文本模式下具有较强鲁棒性。
  • Qwen3-ASR-0.6B
    由 Qwen3-0.6B 主干模型、一个 projector 模块以及一个参数规模为 1.8 亿(180M)、隐藏维度为 896 的 AuT 编码器构成。该紧凑型模型在识别精度与推理效率之间取得良好平衡,在参数规模低于 10 亿的 ASR 模型中保持较强竞争力。

整体而言,该系列模型通过模块化音频编码器与大规模语言模型的融合,实现了高性能、多语言、可扩展的统一语音识别框架。

训练策略

Qwen3-ASR 的训练过程包括 AuT 预训练、Omni 预训练以及 ASR 后训练 三个阶段,其中前两个阶段与 Qwen3-Omni 完全一致。

(1)AuT 预训练

在该阶段,我们的目标是在 AED(Attention-based Encoder-Decoder)框架下,利用大规模标注数据训练一个预训练编码器。

我们使用了约 4000 万小时的伪标注 ASR 数据,其中大部分为中文和英文数据。实验表明,该预训练编码器在 动态注意力窗口大小 下能够提供通用且稳定的音频表示。


(2)Omni 预训练

我们以预训练好的 Qwen3-Omni 模型作为 ASR 训练的基础模型。

Omni 预训练在 多任务音频、视觉和文本数据 上进行。在该阶段,Qwen3-ASR-0.6B 和 Qwen3-ASR-1.7B 均使用 3 万亿 token 进行训练,从而获得多模态理解能力。

(3)ASR 监督微调(SFT)

在 SFT 阶段,我们对 ASR 的输入/输出格式进行风格迁移训练,所使用的数据规模显著小于预训练阶段,且与预训练语料不重叠

除标准的中文、英文和多语种 ASR 数据外,SFT 阶段还使用了:

  • 非语音数据
  • 流式增强数据
  • 上下文偏置数据

具体而言,我们将模型训练为一个 仅用于 ASR 的模型不遵循 prompt 中的自然语言指令,从而缓解指令注入(instruction injection)和指令跟随失败的问题

Qwen3-ASR 对给定音频的输出分为两种类型:

(4) ASR 强化学习(RL)

在最后阶段,我们采用 Group Sequence Policy Optimization(GSPO) 进一步提升识别质量。事实证明,强化学习在提升模型的抗噪声能力、转写稳定性以及处理复杂疑难语音的能力方面发挥了关键作用。

在强化学习阶段共使用约 5 万条语音数据,其中包括:

  • 35% 的中英文数据
  • 35% 的多语言数据
  • 30% 的功能性数据

该阶段的目标是在复杂环境下提升转写的稳定性。

特点

基于上述架构与训练策略,Qwen3-ASR 系列模型在以下方面表现突出:

Qwen3-ASR-1.7BQwen3-ASR-0.6B 支持 52 种语言和方言,包括 30 种语言和 22 种汉语方言。Qwen3-ForcedAligner-0.6B 支持 11 种语言。Seq. Len.表示单次推理的最大音频长度(以秒为单位),NAR 表示非自回归推理。

(1)高精度中英文识别
在各个训练阶段中,中英文数据占据了训练数据的主要比例。与众多竞争系统相比,该模型在多个基准测试中取得了领先的中英文识别性能。

(2)支持多语言与多方言
Qwen3-ASR-1.7B 和 Qwen3-ASR-0.6B 支持 30 种语言和 22 种方言,详见表 1。

(3)长音频与流式推理能力
Qwen3-ASR-1.7B 和 Qwen3-ASR-0.6B 原生支持最长不超过 20 分钟的单段语音输入,并支持流式与离线统一推理。

(4)歌声与歌曲识别能力
Qwen3-ASR-1.7B 和 Qwen3-ASR-0.6B 能够准确识别歌声与歌曲内容。除具备较强的歌声识别能力外,Qwen3-ASR 系列还支持在含有背景音乐(BGM)的情况下直接转写完整歌曲,体现出对伴奏和复杂音乐混合场景的鲁棒性。

推理效率

Qwen3-ASR 的速度基准测试在两种场景下进行:离线批量推理在线异步推理

  • 前者通过 vLLM 的离线批量生成方式进行评估;
  • 后者基于 vLLM Serve 的多并发请求设置进行评估,更贴近工业环境中的实际推理效率表现。

所有实验均基于 vLLM v0.14.0 运行,启用了 CUDA Graph,并采用 bfloat16 精度进行推理。表 2 的结果显示,在不同并发水平下,Qwen3-ASR-0.6B 的平均首 Token 延迟(Time-to-First-Token, TTFT)最低可达 92 毫秒

在并发数为 128 时:

  • 实时因子(Real-Time Factor, RTF)最低可达 0.064
  • 吞吐量最高可达 2000

这意味着该模型每秒可以处理 2000 秒的音频

Qwen3-ForcedAligner

Overview

Qwen3-ForcedAligner-0.6B 旨在在已知对应文本转写的情况下,估计语音中每个单词或字符的起始和结束时间戳。该模型将强制对齐(Forced Alignment)任务重构为一种槽位填充(slot-filling)形式。具体而言,在输入语音及其转写文本的基础上,在文本中插入特殊标记 [time],用于表示词级或字符级的起止时间槽位。随后,Qwen3-ForcedAligner-0.6B 直接预测每个槽位对应的离散时间戳索引

表 2: Qwen3-ASR 系列模型的效率。Qwen3-ASR-0.6B 和 Qwen3-ASR-1.7B 支持基于 vLLM 的离线批处理和在线异步推理模式,而 Qwen3-ForcedAligner-0.6B 仅支持 PyTorch 下的离线批处理推理。表中所有测量结果均基于时长约为 2 分钟(ASR)和 1 分钟(FA)的输入音频,所有推理均在单个典型计算资源上执行。Conc. 表示并发级别。TTFT p95 表示第 95 百分位 TTFT 延迟。

高精度时间戳预测
Qwen3-ForcedAligner-0.6B 在时间戳预测偏移方面显著降低误差。与其他强制对齐方法相比,在人工标注测试数据集上,其累计平均时间偏移实现了 67%~77% 的相对下降

广泛的应用场景
Qwen3-ForcedAligner-0.6B 支持 11 种语言 的语音输入,最长可达 300 秒,包括跨语言场景。同时,用户可以灵活地对任意单词或字符进行时间戳预测定制。

快速推理速度
Qwen3-ForcedAligner-0.6B 摒弃了传统的“下一个 Token 预测”范式,采用非自回归(NAR)推理方式进行时间戳预测,从而显著提升推理效率。

模型设计

如图 3 所示,Qwen3-ForcedAligner-0.6B 采用一个预训练的 AuT 编码器(AuT encoder) 来处理输入语音信号,并生成语音嵌入表示(speech embeddings)。转写文本会被重新格式化:为每个单词或字符添加起始和结束时间戳标签。随后,每个时间戳标签都会被替换为特殊标记 [time],并输入到分词器(tokenizer)中。此外,文本中的时间戳标签会通过将时间戳数值除以 AuT 编码器输出的 80ms 帧时长进行离散化,转换为对应的时间索引。

语音和文本的嵌入序列随后一起输入到 Qwen3-0.6B 大语言模型(LLM) 中处理,之后通过一个时间戳预测线性层,对整个输入序列的时间戳索引进行预测

在本工作中,时间戳预测的最大类别数为 3750,对应支持最长 300 秒的语音输入。

在训练阶段,会将随机掩蔽的时间戳槽位动态插入到 token 序列中,用以表示单词或字符的边界。随后,将组合后的序列输入到 Qwen3-0.6B 大语言模型(LLM) 中,并通过时间戳预测层为每个槽位预测对应的时间戳索引。在监督训练过程中,对同步对齐的标签序列与模型输出序列之间计算交叉熵损失(cross-entropy loss)

训练策略

训练 Qwen3-ForcedAligner-0.6B 需要大量带有词级或字符级时间戳标注的语音–文本对。然而,由于人工标注成本极高,本文采用 Montreal Forced Aligner(MFA)生成的伪时间戳标签。MFA 是当前最准确的强制对齐方法之一。

需要注意的是,MFA 生成的伪标签天然包含噪声和系统性偏移。Qwen3-ForcedAligner 并非简单复现 MFA 的输出,而是对这些伪标签进行蒸馏与平滑,从而获得更稳定、时间偏移更小的时间戳预测结果

传统的大语言模型(LALMs)通常采用一种训练方案:移除输出序列的最后一个 token 以及标签序列的第一个 token,在两者之间引入一个位置偏移,并基于此计算交叉熵损失,从而实现标准的“下一个 token 预测”范式。然而,该范式并不适用于时间戳槽位的填充任务。

Qwen3-ForcedAligner-0.6B 采用因果训练(causal training)方式,保持输出序列与标签序列不做位置偏移。这样,模型在训练过程中可以显式地识别时间戳槽位,并直接预测用于填充这些槽位的时间戳索引。

此外,因果训练使 Qwen3-ForcedAligner-0.6B 在预测当前时间戳槽位时能够利用之前的上下文信息,从而保证整体时间戳预测的全局一致性。交叉熵损失仅在时间戳槽位上计算,使训练目标专注于时间戳槽位填充这一核心任务。

此外,为了增强模型的泛化能力,Qwen3-ForcedAligner-0.6B 在训练过程中采用了动态槽位插入策略。具体而言,对于样本中的每个单词或字符,模型会随机决定是否在其后插入起始和结束时间戳槽位。

推理与可用性

由于训练过程中 token 序列保持未偏移(non-shifted),用户可以在任意单词或字符之后插入起始和结束时间戳槽位。Qwen3-ForcedAligner-0.6B 使用非自回归(NAR)解码,能够一次性同时预测文本中所有时间戳槽位对应的时间索引

当获得时间索引后,将每个索引乘以 80ms,即可恢复出实际预测的时间戳。

Qwen3-ForcedAligner 的速度基准测试基于 FlashAttention 和 bfloat16 进行。由于该模型是非自回归的,Transformers 与 vLLM 在推理速度上的差异相对较小,因此所有基准测试均使用 Transformers 进行。表 2 的结果表明,即使在高并发场景下,该模型仍能保持接近 0.001 的实时率(RTF),也就是说,它可以每秒处理 1,000 秒的音频。

Experiments

评估细节

基线系统

为验证 Qwen3-ASR 系列模型的性能,我们将其与当前最先进(SOTA)的闭源 ASR API 以及广泛使用的开源模型进行对比评估。具体而言,我们将 Qwen3-ASR 与三种领先的专有服务进行比较:

  • OpenAI 的 GPT-4o-Transcribe
  • Google DeepMind 的 Gemini 2.5 Pro
  • ByteDance 的 Doubao-ASR

此外,我们还纳入了多个多语言开源基线模型:

  • Whisper-large-v3
  • FunASR-MLT-Nano
  • GLM-ASR-Nano

这些基线系统涵盖了强大的商业系统以及具有竞争力的开源替代方案,从而能够在具有代表性的真实场景下对 Qwen3-ASR 进行全面评估。

采用四部分评估协议来衡量 Qwen3-ASR 系列模型的语音识别性能:

  • 公共基准测试(英语与中文)
  • 内部鲁棒性测试套件:全面的内部测试集,在具有挑战性的真实场景下对模型进行压力测试
  • 多语言评估
  • 歌声识别:重点关注长音频场景,即将整首歌曲作为单一输入

评估指标

  • 识别准确率:CER/WER
  • 语种识别准确率
  • 时间戳精度:使用 Accumulated Average Shift(AAS)作为评估指标。AAS 数值越低表示时间戳预测越准确。预测时间戳与参考时间戳之间的平均绝对差值:

English & Chinese ASR Performance

Opensource ASR Benchmarks

Qwen3-ASR 在英语、普通话和多种汉语方言基准测试中均表现出色。它不仅能与领先的商业 API 相媲美,而且性能远超广泛使用的开源基线模型。从 Qwen3-ASR-0.6B 扩展到 Qwen3-ASR-1.7B,性能提升显著且稳定,表明该模型能够有效受益于容量的增加。

在英语基准测试上,Qwen3-ASR 在多样化的真实场景数据(例如众包或网络采集语音)上表现尤为出色。这类数据相比朗读式语音(read-speech)通常存在更明显的分布偏移。在这些情况下,Qwen3-ASR-1.7B 在多个数据集上取得了整体最佳成绩,同时在诸如 LibriSpeech 等标准学术评测中也保持接近最优系统的表现。相比之下,一些商业 API 的性能在不同数据集之间波动较大,而 Qwen3-ASR 在广泛的英语场景下展现出更为稳定和一致的识别准确率。

在普通话基准上,Qwen3-ASR 展现出明显优势。它在表中大多数普通话评测数据集上取得了最佳整体表现,并在更具挑战性的大规模评测中依然保持稳定性能。尤其是在 WenetSpeech 数据集上(该数据集包含多样化声学环境和会议场景语音),Qwen3-ASR 相比现有基线模型取得了显著领先。

在中文方言基准上,Qwen3-ASR 在存在显著发音和词汇差异的情况下仍保持较强的识别精度。在粤语及其他方言数据集中,它始终位列表现最优的系统之一,并且在更具挑战性的长语句场景下表现尤为突出,体现出超越短句、干净测试条件的鲁棒性。尽管在少数特定方言场景中,一些专门优化的商业 API 略占优势,但总体而言,Qwen3-ASR 依然具有很强竞争力,能够在无需针对每种方言单独定制的情况下提供通用且高性能的解决方案。

总体而言,表 3 总结了 Qwen3-ASR 的三大优势:

  1. 在英语基准上具备强大的跨领域泛化能力,尤其是在超越精心筛选的朗读语音场景下表现突出;
  2. 在普通话多个公开数据集(包括大规模、噪声较多的会议语音)上达到当前最先进水平;
  3. 在中文方言处理方面表现稳健,尤其是在粤语以及长短语句混合的方言语音上具有显著优势。

这些结果表明,Qwen3-ASR 在多样化的公开基准测试中展现出强大且可复现的性能,同时在与顶级闭源商业 API 的对比中也保持了高度竞争力。

内部 ASR 基准测试

为进一步评估模型在真实部署环境下的鲁棒性,我们在内部鲁棒性测试套件上对 Qwen3-ASR 进行了评测,结果汇总于表 4。Qwen3-ASR 在所有子集上均表现出稳定而强劲的性能,并且从 0.6B 扩展至 1.7B 带来了持续且稳定的性能提升。

在带口音英语评测中,Qwen3-ASR 取得了所有对比系统中最低的词错误率(WER),优于商业 API 和开源基线模型,表明其对口音变化具有更强的泛化能力。在普通话评测中,Qwen3-ASR-1.7B 在所有测试子集上均取得最佳表现,展现出在复杂声学环境和多样说话条件下的鲁棒性。

在中文方言评测中,Qwen3-ASR 同样在粤语对话测试和 22 种方言汇总评测中取得最佳结果;尤其是在多方言混合场景下,性能提升更加显著,表明随着语言多样性的增加,模型的鲁棒性进一步增强。

总体而言,这些内部评测结果与公开基准测试的结论一致,进一步验证了 Qwen3-ASR 在高变异性场景下能够提供稳定且可靠的识别质量。

Multilingual ASR and Language Identification

 多语言自动语音识别性能

总体而言,Qwen3-ASR-1.7B 在大多数测试设置中取得了最佳的平均性能,展现出强大的跨语言和跨领域的泛化能力,而 Qwen3-ASR-0.6B 则提供了一个具有竞争力的轻量级替代方案。

在 MLS、Common Voice 和 MLC-SLM 基准测试中,Qwen3-ASR-1.7B 的性能始终优于所有评估的开源基线模型,包括广泛使用的 Whisper-large-v3,并且显著优于规模较小的多语言模型。对于涵盖更多语言和多样化录音条件的 Fleurs 数据集,Qwen3-ASR-1.7B 在 12 种和 20 种语言的子集上取得了最佳性能。然而,相对于 Whisper-large-v3,其在完整的 30 种语言设置下的性能有所下降,表明其在处理日益增长的语言多样性和长尾语言方面仍有改进空间。尽管如此,Qwen3-ASR-1.7B 仍然明显优于 0.6B 版本,这表明模型扩展能够提高其在更具挑战性的多语言环境下的鲁棒性。

Language Identification Performance

Qwen3-ASR 不仅能够将语音解码为文本,还可以在进行 ASR 解码之前,通过自然语言提示完成语言识别(LID)。在本节中,我们在 4 个多语言基准数据集上评估语言识别准确率:

  • FLEURS(30 种语言)
  • MLS(9 种语言)
  • Common Voice(13 种语言)
  • MLC-SLM(11 种语言)

各数据集所覆盖的语言种类详见第 2.3 节。

如表 6 所示,我们将 Qwen3-ASR-0.6B 和 Qwen3-ASR-1.7B 与 Whisper-large-v3 进行对比。Whisper-large-v3 是一个具备内置语言识别能力的强大多语言 ASR 模型。实验结果表明,两种 Qwen3-ASR 模型均优于 Whisper-large-v3,在这些主流语言上展现出稳定而有效的语言识别能力。

在 FLEURS 数据集上的剩余错误主要来源于对马来语(ms)和印尼语(id)的混淆。这两种语言在语言学上高度接近,且在声学特征上具有较高相似性,因此较易产生识别混淆。

Singing Voice & Songs Recognition Performance

 歌声识别和歌曲转录结果。表中列出了仅包含歌声的基准测试和包含背景音乐的长歌曲的词错误率 (WER) (%)。“N/A”表示由于性能不佳,该模型不支持长歌曲识别。

表 7 汇报了歌声转写以及带背景音乐的长时歌曲转写结果。总体来看,Qwen3-ASR-1.7B 在面对旋律引起的发音变化和音乐伴奏干扰时表现出较强的鲁棒性,在所评测的数据集上优于大多数商业 API 和开源基线模型。

在纯歌声(无伴奏)基准上,Qwen3-ASR-1.7B 在以下数据集上取得最佳表现:

  • M4Singer
  • MIR-1k
  • PopCS

在 OpenCpop 上,其表现略低于 FunASR-MLT-Nano,位列第二,但差距较小。这表明模型在不同演唱风格和录音条件下具有较强的泛化能力,并且对音高漂移、音素拉长以及节奏变化等歌声特有现象的敏感性较低。

在包含背景音乐的完整歌曲转写任务中,Qwen3-ASR-1.7B 显著优于开源基线模型;Whisper-large-v3 和 FunASR-MLT-Nano 在长时、音乐混合场景下性能明显下降。Qwen3-ASR-1.7B 在英语和中文歌曲上都取得了较高准确率:在中文数据集上排名第一,在英语数据集上也与表现最佳的商业系统保持竞争力。

这些结果表明,Qwen3-ASR 在真实含音乐场景下具有良好的适应能力,对背景音乐干扰具有较强鲁棒性,并在一定程度上缩小了传统语音识别与歌声/歌曲转写之间的性能差距。

Streaming Speech Recognition

本节在离线(offline)和流式(streaming)两种推理模式下评估 Qwen3-ASR-1.7B 和 Qwen3-ASR-0.6B 的性能。得益于动态注意力窗口机制,Qwen3-ASR 系列模型能够自然支持流式推理。

表 8 展示了在三个开源测试集上的评测结果,实验设置为:分块大小为 2 秒、5 个 token 回退(fallback),并保持最近 4 个分块处于未固定(unfixed)状态。

总体而言,Qwen3-ASR 提供了一个同时适用于离线与流式场景的统一模型架构,并且在流式推理模式下仍然保持了较强的识别准确率。

Precision of Timestamps

表 9 报告了 Qwen3-ForcedAligner-0.6B 与其他强制对齐(forced-alignment)方法在 MFA 标注和人工标注测试集上的 累积平均偏移(AAS, Accumulated Average Shift) 表现。

主要结论如下:

  1. 多语言覆盖与跨语言能力
    • 其他方法通常需要特定语言模型,支持语言数量有限。
    • Qwen3-ForcedAligner-0.6B 通过单一模型覆盖多种语言,并能处理跨语言和混合语言(code-switched)场景。
  2. 长短语音表现稳定
    • Qwen3-ForcedAligner-0.6B 对短句和长句均表现一致。
    • 基线方法在长句或长语音上,时间戳预测准确度显著下降。
  3. 训练来源与泛化能力
    • 虽然模型使用 MFA 伪标注训练,但在人工标注的测试集上依然保持较低的 AAS。
    • 表明模型具有 强大的实际场景泛化能力,能够稳健预测各类语音的时间戳。

简单总结:Qwen3-ForcedAligner-0.6B 在多语言、长语音及真实数据上的时间戳预测都优于传统方法。

结论

本文介绍了 Qwen3-ASR 模型家族,包括两款自动语音识别(ASR)系统和一款强制对齐(FA, Forced Alignment)模型,这些模型均在大规模语音语料上训练得到。

核心特点与贡献如下:

  1. 性能与训练策略
    • 利用基础模型 Qwen3-Omni 的强大音频理解能力,以及四阶段训练流程,
      Qwen3-ASR-1.7B 和 Qwen3-ASR-0.6B 在语音覆盖率和识别准确率上,均优于同等规模或更大规模的竞品模型及商业 API。
  2. 多语言与语音场景支持
    • 支持 30 种语言的语言识别(LID)和语音识别(ASR)。
    • 在复杂声学环境下表现稳健,对口音与方言具备鲁棒性。
    • 对唱歌语音及其他真实场景语音同样有效。
  3. 强制对齐模型
    • 引入 Qwen3-ForcedAligner-0.6B,基于 LLM 的非自回归(NAR)时间戳预测器,
      支持 11 种语言的强制对齐,端到端处理时间低于 5 分钟。
    • 在时间戳准确率、推理速度和语言覆盖方面,均优于三种主流端到端 ASR 基础的 FA 方案。
  4. 开源与易用性
    • 发布了三款模型权重,同时开源了统一、易用的推理框架。

总结:Qwen3-ASR 家族在真实场景评测和公开基准测试中均达到 最先进水平,而开源的强制对齐模型解决了语音技术栈中的关键空白。团队将持续提升该开源模型家族的准确性与功能性。

音频 Tokenizer的方法:Moshi 团队分享

原文链接:https://kyutai.org/codec-explainer

方案:将语言模型嵌入音频编码器/解码器对(=神经音频编解码器)中,使其能够预测音频的后续内容。

截至 2025 年 10 月,Speech LLM 的表现还很糟糕。许多 LLM 都提供了语音接口,但它们的工作流通常是:语音转文字,生成文本答案,再通过 text-to-speech (TTS) 读出来。这在很多场景下够用了(比如 Unmute),但这本质上只是一个 wrapper,并非真正的语音理解。模型无法感知你声音里的沮丧并共情地回应,无法在回答中强调重点,也听不出讽刺。

是的,现在确实有一些 LLM(如 Gemini、ChatGPT 的 Advanced Voice Mode、Qwen、Moshi)能够原生 (natively) 理解和生成语音。但在实践中,它们要么不够智能,要么其行为就像一个 text model wrapper。你可以试试用很高的音调问它们任何一个:“我说话的声音是低还是高?”,它们都答不上来。

显然,Speech LLM 的发展滞后于 Text LLM。但为什么呢?对于文本,我们几年前就发现,只要有海量文本数据、一个巨大的 Transformer 模型和大量的 GPU,就能得到效果惊人的文本续写模型。那为什么我们不能直接把 text 换成 audio,然后得到同样惊人的语音续写模型呢?

先卖个关子,如果你真的天真地这么做了,就会得到下面这种结果(警告,音量很大):

接下来,我们将探讨为什么 audio 比 text 更难建模,以及如何利用 neural audio codec 来降低建模难度。——这已是将 audio 输入和输出 LLM 的实际标准方法。通过 codec,我们可以将连续的音频信号转换成更大粒度的离散 token,然后训练模型来预测这些 token 的后续序列,最后再将这些 续写的token 解码还原成 audio:请看上面的动画。

Kyutai 的同仁们在这个领域做了大量工作,这也是我选择这个主题的部分原因。我们将从基础讲起,一直讲到我们的 neural audio codec——Mimi。它最初是为 Moshi 开发的,后来被其他模型所采用,包括 Sesame 的 CSM 模型

Text is easy

在文本分词方面,业界普遍采用一种称为字节对编码(Byte-Pair Encoding, BPE)的技术,并且极少对分词器进行更改。以 OpenAI 为例,自 GPT-4o 以来一直沿用同一套分词器——如果以大语言模型的发展节奏来衡量,GPT-4o 已可算作“相当久远”的模型。

A random text from Wikipedia tokenized via the GPT-4o tokenizer

即便完全不对文本进行分词、仅对单个字符进行逐字符预测,也能够取得相当不错的效果。早期让我对机器学习产生浓厚兴趣的一篇文章,是 Andrej Karpathy 于 2015 年发表的关于循环神经网络(RNN)有效性的博客。在那篇文章中,Karpathy 使用单块 GPU 训练了一个三层 LSTM 模型,使其能够生成结构上较为合理的代码与 LaTeX 文本。

要知道,这可是十年前的事了,那时候我们甚至还不知道 “attention is all we need”。现在,我们再来对比一下 Karpathy 的结果和 WaveNet 的样本,后者是 DeepMind 在一年后发布的模型:

从纯声学角度来看,这段音频的听感质量较高,但却几乎无法生成哪怕一个正确的英文单词。当然,我们也不应对 WaveNet 过于苛责。Karpathy 的 RNN 所生成的文本样本长度不过数千个字符,而这段 10 秒的音频却包含约 16 万个音频采样点;并且,WaveNet 是以逐采样点预测(sample-by-sample generation)的方式,极其细致地生成整段音频的。

一秒钟的音频通常包含数以万计的采样点,然而其语义内容往往只对应少量几个词语。(动画引自 WaveNet 博客文章。)

在如此长的时间尺度上维持生成内容的连贯性是极具挑战性的;同时,由于需要执行数量庞大的逐步预测,模型的运行开销也十分高昂。

因此,与其让模型直接逐采样点地进行预测,不如先训练一个模型,将音频压缩到更易处理的表示空间。具体而言,可以先对音频进行压缩,在压缩后的表示上利用大语言模型预测其后续内容,再将预测结果解压还原为音频信号。

Sample by sample

不过,在此之前,我们先构建一个基线模型,像 WaveNet 那样逐采样点生成音频。这些实验的代码均已开源,可在相应仓库中获取。我基于 Andrej Karpathy 的 nanoGPT 仓库进行了复现与扩展;该仓库是 GPT-2 的一个简洁实现版本。

从语言模型的视角来看,文本与音频在形式上并无本质区别:本质都是“输入 token,输出 token”。因此,我们需要做的仅是将连续的音频采样值量化为离散的取值区间。与 WaveNet 类似,我们采用 μ-law(μ律)算法,将连续振幅映射到 256 个离散桶(buckets),并将其视作 256 个可能的离散 token。

在此基础上,我们使用这种逐采样点量化后的音频 token 来训练一个语言模型。数据集方面,沿用 AudioLM(Neil Zeghidour 与 Eugene Kharitonov)的设置,采用 Libri-Light 数据集。该数据集的训练集总时长约为 5 万小时,但在本实验中我们仅使用其中 1000 小时的数据。采用逐采样点的离散化方式后,最终得到的训练数据规模约为 53GB。

模型方面,我们训练了一个规模相对较小的 Transformer,总参数量为 151.28M,与最小规格的 GPT-2 模型大致相当。当从该模型进行采样生成时,其输出表现为类似咿呀学语般的声音(提示:音量有时较大)。

模型往往会进入一种“噼啪杂音模式”(crackling mode),并且一旦陷入其中,似乎难以自行恢复:

我还训练了一个较小的模型,就是之前开头提到的那个。它容易生成令人不适的尖锐噪声(音量较大!)。

正如你所看到的,我们还远未达到通用人工智能(AGI)的水平。模型生成的音频听起来像是语音,但你几乎听不出任何单词,而且声音也在不断变化。这也不足为奇:模型的上下文长度为 2048,对于 16 kHz 的音频而言,仅相当于 128 毫秒,连一个单词的长度都不到。此外,这些 10 秒的音频样本在 H100 上生成耗时约 30 分钟——距离实时生成还有几个数量级的差距。

因此,我们需要构建一个神经音频编解码器(neural audio codec)来压缩音频。思路是:如果将采样率降低 100 倍,模型生成的内容也有望变得“100 倍更连贯”。在机器学习中,一个经典方法是使用自编码器(autoencoder):该模型接收输入,将其压缩到较小的“潜在空间(latent space)”,然后尝试重构原始输入。

在我们的场景下,需要一个潜在表示可量化(quantized)的自编码器,这样才能将潜在向量输入到语言模型中,并生成后续内容。当然,也可以使用未量化的潜在向量生成后续音频,但操作会更复杂——具体可参见“进一步阅读”部分。

Autoencoders with vector quantization (VQ-VAE)

请耐心一点,因为我们将从音频领域绕个弯:让我们基于 Fashion MNIST 的图像来构建一个量化的自编码器(quantized autoencoder)。我们会使用一个包含前三个类别的数据子集:T恤裤子套头衫

首先,我们先训练一个普通自编码器,将图像编码到二维潜在空间(2D latent space)中:

Training a regular autoencoder on Fashion MNIST

每一帧显示的是一个训练批次(有些批次被略过)。小图像表示自编码器对该批次图像的重构结果。我为三类图像添加了颜色标记(T 恤/上衣 = 蓝色、裤子 = 绿色、套头衫 = 黄色),但自编码器并没有接收类别信息作为输入——潜在空间自然会根据类别形成聚类。接下来,我们放大观察几张重构结果:

Original images (top) and their reconstructed versions (bottom)

如你所见,重构效果并不理想。图像比较模糊,而且前两张重构几乎完全相同。但我们使用的网络非常小——编码器和解码器各只有四层全连接网络,并且只将数据投影到二维空间,因此不能对模型期望过高。

接下来,我们将对这些潜在向量进行量化(quantization),方法是通过聚类实现。大致步骤如下:

  1. 类似 k-means:维护一个簇中心(cluster center)的位置列表。
  2. 簇中心初始化为随机位置。
  3. 对每个训练批次:
    • 查看每个潜在向量属于哪个簇(assignment),注意我们 不修改潜在向量,仅进行分配。
    • 将每个簇中心向其所属潜在向量的平均位置轻微移动(nudge)。
  4. 如果某个簇中心长时间未被分配到任何潜在向量,则将其重新“传送”到当前批次的某个随机潜在向量上,以避免簇中心陷入局部停滞。
Quantizing by fitting a clustering on top of the autoencoder

你可以看到,随着训练的进行,簇中心的重构效果逐渐被优化和细化。

接下来,我们希望让编码器(encoder)和解码器(decoder)在训练过程中更好地处理量化后的潜在向量(quantized embeddings)。目前,我们只是将聚类操作叠加在一个对量化“未知”的自编码器之上——也就是说,模型在训练时并没有意识到潜在向量会被量化。我们希望自编码器在训练过程中适应量化操作,从而生成更易重构的量化表示。目前的做法是:

x = get_batch()
z = encoder(x)
x_reconstructed = decoder(z)
loss = reconstruction_loss(x, x_reconstructed)

与其将未量化的潜在向量直接输入解码器,我们先将其映射到最近的簇中心

x = get_batch()
z = encoder(x)

z_quantized = to_nearest_cluster(z)     # 👈
x_reconstructed = decoder(z_quantized)  # 👈

loss = reconstruction_loss(x, x_reconstructed)

这里有一个问题:如果直接这样做,自编码器就无法继续训练了。原因是量化操作不可微,也就是说,损失函数的梯度无法传回编码器的权重。本质上,模型无法回答这个问题:“如果我想让损失减少一点,应该沿哪个方向调整编码器的权重?”

解决方法很巧妙:假装这个问题不存在。具体来说,我们将量化后的潜在向量 zquantized 看作是原向量 z 加上一个任意向量,但不影响梯度。这样, zquantized 的梯度就等同于 z 的梯度。这就是所谓的 straight-through gradient estimator(直通梯度估计器) 的原理。

x = get_batch()
z = encoder(x)

residual = z - to_nearest_cluster(z)
# .detach() means "forget that this needs a gradient"
z_quantized = z - residual.detach()
x_reconstructed = decoder(z_quantized)

loss = reconstruction_loss(x, x_reconstructed)

在前向传播(forward pass)中, zquantized ​ 的取值与之前相同,但关键是:z 的梯度现在被设置为等同于 zquantized ​ ​ 的梯度,而不是因为不可微的 to_nearest_cluster(z) 操作而为 0。

这种“假装”做法是有代价的:在训练时,编码器的权重会根据重构损失进行更新,但更新的方向是假设量化不存在的方向,因此不一定是最优的梯度方向。但只要潜在向量大致保持在各自簇中心附近,这个梯度方向仍然是“基本正确”的。

为了让编码器生成更容易量化的潜在向量,我们可以引入承诺损失(commitment loss)对每个潜在向量根据其距离簇中心的远近施加惩罚。这一损失的梯度会将潜在向量推向对应的簇中心,从而提高量化友好性。

通过在训练时进行量化并加入承诺损失,模型不再只是单纯在嵌入上做聚类,而是自编码器本身被训练成对量化友好,从而在后续生成和压缩中表现更好。

An autoencoder trained explicitly to be easy to quantize

你会注意到,训练动态发生了变化:加入承诺损失(commitment loss)为潜在向量增加了一定的“约束力(stiffness)”,使它们不再像之前那样自由移动。

下面是使用量化潜在向量进行重构的效果:

注意前两张图被重构成了完全相同的图像。这只是因为它们的潜在向量被分配到同一个簇,因此量化后取到了相同的值。

这里描述的模型被称为 VQ-VAE(向量量化变分自编码器)。其中的“变分(variational)”一词在这里已经没有实际意义,只是历史遗留的命名。

Residual vector quantization

为了提高重构的保真度,我们可以简单地增加簇中心的数量。但如果簇中心过多,计算和内存开销会变得非常昂贵。因此,我们采用一个巧妙的做法:如果希望潜在向量有 2^20(约 100 万)种可能值,我们不会直接创建 2^20 个簇。相反,我们使用两个独立的量化器(quantizer),每个量化器有 2^10=1024 个簇,然后将它们的结果组合起来。这样,每个潜在向量就量化为两个整数的元组(每个在 0–1023 之间),总共有 2^20 种可能组合。

那么具体怎么做呢?回想一下我们在直通梯度估计器(straight-through estimator)中使用的残差变量:residual=z−to_nearest_cluster(z)

它表示在量化到最近簇中心时,原向量 z 中未被捕捉到的部分。

对于批次中的每个潜在向量,我们都有对应的残差向量。解决方案很自然:用与原始潜在向量相同的方法对残差向量进行量化,通过训练另一个向量量化器实现。

这一次,由于我们需要组合两个量化器,单个量化器的二维簇位置并不再对应图像,因此我们将其可视化为点的分布即可:

这是二级量化(two-level quantization)的思路:在第一级量化器量化后的残差(residuals,也就是第一级量化器的误差)上,再训练一个量化器进行进一步量化,从而更精细地表示潜在向量。

这样,每张图像就可以用潜在向量所在簇的索引残差簇的索引来表示。接下来,我们用这个二级量化器尝试重构几张图像:

原始图像(顶部)、一级量化重构(中部)、二级量化重构(底部)。这些图像在二级量化下分别被编码为索引对:(4, 3)、(4, 5)、(16, 21) 和 (30, 3)。

前两张图像的重构仍然相似,但不再完全相同:第一张图被编码为 (4, 3),第二张图为 (4, 5)。换句话说,它们在第一级量化器上使用相同的 token,但在残差的量化上有所不同。由于差异较为微小,下面是一级量化与二级量化重构效果的对比

我想强调的是,第二级量化作用在潜在向量(embedding)上,而不是直接修改输出像素。这一点可以从最左和最右的图像看出,它们分别编码为 (4, 3) 和 (30, 3)。也就是说,它们使用了相同的残差编码 3,但对两张重构图像的影响却不同。

显然,重构效果仍然不够精确。潜在向量未量化时的重构质量才是上限,因此如果自编码器本身性能不好(我们的就是如此),改进量化方法也无法带来显著提升。

到这里我们先暂停,但这个思路的自然延伸是超过两级量化:对二级重构的残差继续量化,依次我们在这里就先停下。不过,这个思路的一个自然扩展是引入多于两级的量化。只需要对 two-level reconstruction 的 residual 再次进行量化,如此反复即可。这个广义的 Residual Vector Quantization 算法形式如下:

def rvq_quantize(z):
    residual = z
    codes = []

    for level in range(levels):
        quantized, cluster_i = to_nearest_cluster(level, residual)
        residual -= quantized
        codes.append(cluster_i)

    return codes

残差向量量化(Residual Vector Quantization, RVQ)最早在 SoundStream 中应用于神经音频编解码器,但这一思想其实早在 1980 年代就已出现。

Now let’s tokenize audio

将 RVQ 应用于音频是相当直接的。作为我们的自编码器(autoencoder),我们将使用一个类似于 Jukebox 所使用的卷积神经网络(CNN)。这里的架构细节并不太重要。重要的是,这是一个能接收 t 个采样点的音频,并将其转换为形状为 (t/128, 32) 的向量的网络。换句话说,它以 128 倍的系数进行降采样(downsamples),并为我们提供 32 维的浮点数表示。然后,解码器(decoder)接收这个 (t/128, 32) 的嵌入(embeddings),并将它们解码回 t 个采样点。

audio = get_batch()               # shape: [B, T]
z = encoder(audio)                # shape: [B, T/128, 32]
audio_reconstructed = decoder(z)  # shape: [B, T]

和之前一样,我们将在编码器之后添加一个 RVQ。与处理图像的唯一区别是,对于每个音频样本,我们有 t/128 个嵌入向量,而不仅仅是像图像那样只有一个。我们只需独立地对这些向量进行量化(即使编码器“看到”的音频范围比单个向量所对应的范围要广)。在训练期间,我们还有一个批次维度(batch dimension),所以我们的模型现在看起来是这样的:

audio = get_batch()                         # [B, T]
z = encoder(audio)                          # [B, T/128, 32]

# Combine the batch and time dimensions
z = rearrange(                              # [B*T/128, 32]
    z, "b t_emb d -> (b t_emb) d"
)

codes = rvq_quantize(z)           # integers, [B*T/128, levels]
z_quantized = codes_to_embeddings(codes)    # [B*T/128, 32]
z_quantized = rearrange(                    # [B, T/128, 32]
    z_quantized, "(b t_emb) d -> b t_emb d"
)

audio_reconstructed = decoder(z_quantized)  # [B, T]

在我们训练第一个神经音频编解码器(neural audio codec)之前,最后缺少的一块是损失函数(loss function)。关于选择哪一个损失函数,我们可以深入探讨一整套复杂理论,但我们将避开它,只使用一个非常简单的。我们会计算原始音频和重建音频的对数振幅谱图(log amplitude spectrogram),然后取它们的差值。这个差值的均方值就是损失。

为了让模型更难对这个损失函数过拟合,我们使用三种不同的短时傅里叶变换(short-time Fourier transform)参数来计算谱图,并将我们的损失设为这三个子损失的平均值。这被称为多尺度频谱损失(multi-scale spectral loss)

最后,让我们来训练一些编解码器(codecs)吧!我们将观察改变 RVQ 的层级(levels)数量如何影响重建质量。正如我们所预期的,增加层级数量有助于降低频谱损失(spectral loss):

让我们听听这些编解码器听起来怎么样。我们将使用这三个编解码器来重建来自 Expresso 数据集的这段音频:

原始音频

重建结果:

4 RVQ levels 
8 RVQ levels
12RVQ levels

显然,随着增加更多的残差向量量化(RVQ)级数,音频质量逐渐提升。

即便使用 16 级量化,仍然会出现一些噼啪杂音,音频听起来有些闷,并伴随持续的高频噪声。后续我们会讨论进一步改进编解码器的方法,但出于演示目的,目前的效果已经足够。

为什么要关心音频

所以现在我们有了一个 神经音频编解码器:我们可以把音频转换成适合 LLM 的 token,然后再还原回音频。这里的 “Codec” 本质上就是音频的 分词器(tokenizer),但我们用 “codec” 这个词,是因为它在经典压缩格式(比如 MP3)里已经被使用。我会把 codec 和 tokenizer 交替使用。

回到我们最初想做的事情:建模音频。具体来说,我们要做一个模型,它可以接受一段音频前缀,然后生成一个合理的续段。

提醒一下,我们的目标是训练优秀的音频 LLM,使模型能够 原生理解并生成语音,理解情绪、重音等特征。它们还可以进一步微调成 文本转语音、语音转文本、翻译模型 等。

既然你已经相信音频 LLM 是通向 AGI 的路径,那我们就开始训练几个模型吧。

在数据集方面,我们将使用 Libri-Light,就像之前训练逐样本模型时用的那样。这一次我们会使用 10000 小时音频,而不是之前的 1000 小时。这个数据集是 公共领域有声书,所以如果我们训练出了一个不错的模型,也许能生成更多故事(不过不要抱太大希望)。我们唯一需要做的,就是把音频数据集转换成 离散 token 序列,以便输入到 LLM 中。

处理多个层级(levels)

我们将使用我们的 8 层 RVQ codec 来实现这一点。对于一个有 t 个采样点的音频,我们将得到一个形状为 (t/128, 8) 的 token 数组。但现在有一个问题:如何处理在每个时间步(time step)不是一个而是 8 个 token 的情况?在文本 LLM 中我们无需处理这个问题,因为我们只有一个 token 序列。

我们将采取最简单的方法,直接将该数组展平(flatten)成一个形状为 (t/128 * 8) 的一维数组,并让我们的 LLM 在不同的时间步中预测这八个层级。

lattening a three-level RVQ to allow it to be fed into a language mode

这样做的一大缺点是我们损失了一部分时间压缩(temporal compression)能力。我们将音频降采样了 128 倍,但现在通过展平层级,又将其“膨胀”了 8 倍。这使得推理(inference)效率降低,并且可能导致质量下降,因为有效上下文大小(context size)减小了。我们将使用 8 层的 RVQ codec 而不是 16 层的,以避免让压缩情况变得更糟。

你也可以一次性预测单个时间步的所有 RVQ 层级(“并行模式”,parallel pattern),但这也会让模型更难处理,因为它必须一次性决定所有层级。人们还尝试了许多其他方案来平衡压缩与质量。以下是 MusicGen 中尝试过的几种方案:

有趣的是,截至 2025 年,还没有一个“胜出”的统一解决方案:每篇论文的做法都不同,而且这些方案可能变得相当复杂。看看这个来自 MiMo-Audio 的图表就知道了,这是一个在 2025 年 9 月发布的模型:

处理 多个 RVQ 级别 的方法可能会相当复杂。

Finally, let’s train

终于到了训练一个封装了 codec 的语言模型的时候了!正如我所提到的,我们的代码基于 Andrej Karpathy 用于训练文本 LLM 的 nanoGPT 代码库。我们只需要修改它以接受音频作为输入。但这很简单,因为 LLM 并不关心你输入的是哪种 token——对它来说都只是数字而已。一旦我们将数据集标记化(tokenized)并将其展平(flattened)为一维序列,我们就可以开始了。以这种方式标记化后,我们 10000 小时的音频占用了 134 GB 的空间。相比之下,将这么多数据存储为未压缩的音频将需要超过 1 TB。

我们将使用与逐样本(sample-by-sample)模型完全相同的模型架构和超参数(hyperparameters):唯一的区别在于标记化(tokenization)方式。我们的数据集也大了 10 倍,但逐样本模型甚至连 1000 小时的数据集都无法容纳,所以更多的数据也救不了它。

我用 8 个 H100 显卡训练了这个模型大约 5 天。为了得到一些样本,我决定用 Michael Field 的诗《七月》中的两行 Libri-Light 朗读样本来提示(prompt)模型。(在做这个项目时我了解到,Michael Field 是 Katherine Harris 和 Edith Emma Cooper 的笔名。)让我们看看能从我们的模型中得到什么样的诗歌:

可以看到一些“生命的迹象”,但我们还没有一个真正的“诗人”。听起来就像有人在 帘幕后面说话:你无法完全听清它在说什么,但 语调是存在的——听起来像有人在朗读书本,而这正是模型训练时的内容。

它还能保持 连贯的声音,直到最后几秒才切换到另一个声音。这也与训练数据一致:我们从所有有声书中 剪切片段并混合在一起 来采样训练数据,所以模型确实会遇到 不同说话人之间的界限

一个 codec 能带我们走多远?

我们的 codec 是有意设计得非常简单的,这也解释了为什么结果不尽如人意——但在过去四年里,关于神经音频编解码器的研究已经相当丰富,我们可以加以利用。我们不会在这里实现所有的改进,而是看看当我们使用 Mimi 作为分词器(tokenizer)时会发生什么。

Mimi 是 Kyutai 为我们的音频语言模型 Moshi 构建的一款现代神经音频编解码器。此后,它也被用作其他模型的分词器,如 Sesame CSM、VoXtream 和 LFM2-Audio。

不出所料,Mimi 听起来比我们之前训练的自制 codec 好得多。

Mimi 没有使用多尺度频谱损失(multi-scale spectral loss),而是使用了像 GAN 一样的对抗性损失(adversarial loss)。有一个判别器网络(discriminator network)试图将音频分类为原始的或由 codec 重建的,而 codec 的目标就是骗过这个判别器。

Mimi 增加的另一个改进是使用 RVQ dropout:它使用 32 个 RVQ 层级,但在训练期间,重建有时会随机截断到较少的层级数。这使得我们可以在推理时以较少的 RVQ 层级运行 Mimi,并且仍然获得不错的结果,因为它不依赖于所有层级的存在。而对于我们的自制 codec,我们必须分开训练。

让我们听听用 Mimi 重建的示例音频:

Original:

重建:

4 RVQ levels
16 RVQ levels
32 RVQ levels

就我们的目的而言,层级较少的变体可能更容易建模,因为它压缩程度更高。让我们用 8 层和 32 层的 Mimi 来训练模型,并比较结果。

我训练了和之前完全相同的模型架构,唯一改变的是分词器。数据集仍然是来自 Libri-Light 的 10000 小时音频,就像我们使用简单 codec 时一样。Mimi 的采样率是 24 kHz,但 Libri-Light 使用的是 16 kHz,这限制了声音的最高品质,因为我们丢失了音频的更高频率部分。

Mimi 对音频的降采样(downsample)也更激进:它的帧率是每秒 12.5 帧,而我们的 codec 是每秒 125 帧——高了 10 倍!这意味着数据集在磁盘上的体积也更小。用我们的 codec,它占了 134 GB,但用 Mimi,“仅仅”是 54 GB。

这是一首用在 Mimi 标记化数据上训练的模型生成的诗。我和之前一样,用诗中的两行来提示它:

这是我尽力尝试的转录:

When the grass is gone
And corn still grassy;

Illness worried in the fur
this and pelan in stones
during the turan’s ciscerey
headforths nepet Paul Twain.
He sees zin in them.

对我来说有点太超现实主义了,但也许刘易斯·卡罗尔会喜欢。

语义 token (Semantic tokens)

我得坦白一件事:我刚才对你撒谎了。但只是一点点,而且是为了教学目的。实际上,上面的模型是在一个 31 层的 Mimi 音频上训练的,我省略了第一层,也就是包含 “semantic token” 的那一层。

这个 token 的作用是表示音频的语义信息,而不一定有助于重建。我不会深入探讨它们的工作原理,但简单来说,Mimi 的 semantic tokens 是从 WavLM 中提炼出来的,你可以把它看作是语音领域的 BERT。

为了感受 semantic tokens 编码了什么信息,让我们以这个示例音频为例,将其通过 Mimi 处理:

现在,让我们训练一个基于完整 Mimi(包括 semantic tokens)的语言模型。我们将以一种特殊的方式运行模型:保留原始音频的 semantic tokens,但丢弃其他所有 token,然后让模型来预测它们。这意味着来自 semantic tokens 的信息是固定的(“teacher-forced”),但模型可以根据它认为合理的延续自由决定其他 token。

通过固定 semantic tokens 并让模型重新生成其余部分,我们可以了解 semantic tokens 中包含了哪些信息。

听听我们用这种方式得到的两个不同的重建版本:

声音完全不同,但说的内容是一样的!这意味着 semantic tokens 编码了说话者在说什么,但与嗓音无关。这很有用,因为它帮助模型专注于 说什么,而不是 怎么说。在这方面,它们更接近于文本 token,因为文本 token 也不包含关于嗓音、语调、时间或情感的信息。

让诗歌更具语义

现在,让我们用在包含语义的 Mimi 上训练的模型来完成这首诗:

When grass is gone
and corn still grassy;

from the man was nothing moan.
The low death and heart
She came fyde wood.
A finteriest, a fall,
all them
.

它仍然会编造词汇,句子也不太连贯,但很明显,真实单词的比例高了很多;模型变得“更具语义”了。声音质量和之前一样,这也符合我们的预期。

让我们听第二首诗:

When grass is gone
and corn still grassy;

hope won and she
who is just a night in Tatan
in doe ock-ohm?
the whom?

确实,the whom?

语义与声学的权衡 (Semantic–acoustic tradeoff)

我们可以 牺牲一些声学质量 来提升语义效果,通过 减少 RVQ 级别的数量。我们选择 8 级。这样一来,我们获得了 更高的音频压缩率,同时损失中 语义 token 占比也相应提高,因为现在是 1/8 的 token,而不是之前的 1/32。

我对这个模型的第一印象之一是,它学会了 记忆 Librivox 的版权声明,所以有时它会生成类似这样的内容:

Chapter 6 of The Founday, by R. Auclair.
This is a Librivox recording. All Librivox recordings are in the public domain. For information, or to volunteer, please visit librivox.org.
Reading by: Kelvert

重复训练数据通常不是你想要的,但在我们的案例中,这是一个极好的生命迹象,因为之前的模型甚至连这个都做不到。它还编造了书名、作者和朗读者,所以这里仍然有创新性。

现在,让我们尝试创作更多的诗:

When grass is gone
and corn still grassy;

When so we could say
that in fairy interesting wife
who lay there and gone
that save the rosy light of life
Jay Dien, the antique mollity
and a mollity the beast of gray failed summon

end of poem.

This recording is in the public domain.

[different voice]
So we have formed a float that sent in would rattle down. The piece of opportunity reading and assimila—

这太棒了。有几个迹象表明这个模型比之前的更好。我喜欢它编造了“mollity”这个词,然后在下一行重复它。而且,它意识到自己正在背诵一首诗,并在该部分结尾加上了 “end of poem”。然后它认为这是章节/部分的结尾,并以“This recording is in the public domain.”的声明结束。之后,它换了个声音继续说话。这是合理的,因为在训练过程中,来自不同有声读物的片段只是被随机打乱并连接在一起,所以在这里模型模拟了一个片段边界。

如果我们给 semantic tokens 的损失赋予比声学 tokens 更高的权重,可能会得到更好的结果,让模型更关注意义而非声音——事实上,Moshi 使用了高达 100 倍的 semantic loss !但我们总得有个终点。

Conclusion

我们成功地使用神经音频编解码器制作了一个能生成某种程度上连贯语音的音频语言模型。显然,这还不是 2025 年的顶尖水平(我们在这里也并非追求于此),但请记住,使用完全相同的模型,若不采用神经音频编解码器,我们得到的是类似于开头的音频。

当然,要赶上文本模型还有很长的路要走!目前,语音理解和推理能力之间似乎存在一种权衡。在文章开头我提到,那些原生支持语音的模型(Gemini、ChatGPT 的高级语音模式、Qwen、Moshi)都无法判断你是在用高音还是低音说话,尽管它们被训练来原生理解音频。这可能是因为它们在大量使用文本到语音技术合成的数据上进行训练,或因为理解声音的音调(显然)并不能帮助模型做出更准确的预测。

Kyutai 曾尝试用 Moshi(demo,论文)创建一个基于音频语言模型的语音聊天应用,并于 2024 年 7 月发布。Moshi 可能不是你会选择帮你做作业的 AI,但请对它宽容一些:它是第一个端到端的语音 AI,甚至比 OpenAI 的高级语音模式发布得还要早。

Moshi 为自己和用户并行地模拟了一个“内心独白”的文本流和音频流。文本流帮助它规划要说什么,而消融研究(ablations)表明,文本流对模型的帮助巨大。同时,这也有点可悲:大部分的推理似乎都被委托给了文本流,而音频流只是用来提供集成的语音到文本和文本到语音功能。

Moshi models two audio streams and a text stream in parallel

这不仅仅是 Moshi 的问题:正如“我是在用高音说话吗”的实验所示,这种对文本而非音频的过度依赖是所有音频 LLM 的一个问题。尽管主流的建模方法与 Moshi 有所不同:它们是交错处理文本和音频 token,而不是在并行流中建模。

在 Moshi 发布一年多后,音频模型仍然落后于文本 LLM。但为什么呢?对我来说,这个神秘且未解的“模态鸿沟”(modality gap)使得音频机器学习成为一个令人兴奋的研究领域。

GLCLAP:用于ASR热词检索的对比学习预训练模型

小米团队提出了一个叫GLCLAP的预训练模型,专门解决ASR(自动语音识别)里的“上下文偏向”问题——简单说就是让ASR更准地识别那些领域特定词汇(比如人名、地名),还不用微调原ASR模型。

传统的上下文偏置 ASR 解决方案中,主要存在两种范式。第一种依赖发音词典,例如基于加权有限状态转换器(WFST)的相关方法。这类系统利用预先定义的发音信息来提升特定术语的识别准确率。第二种范式是将偏置机制直接融入 ASR 模型结构中,通过与 ASR 模型进行联合训练来实现 ,典型代表包括 SeAco-Paraformer。

然而,这两类系统都不利于在支持 prompt 的 ASR 场景中处理偏置词。对于基于 WFST 的系统而言,获取少数语言或方言的发音词典往往十分困难;而端到端的上下文偏置方法通常需要修改 ASR 模型结构并进行联合训练,这在 prompt 支持的大模型范式下缺乏灵活性,难以快速更新和迭代。同时,大模型训练本身需要大量时间和计算资源,成本较高。

大语言模型(LLMs)中引入的提示机制与检索增强生成(Retrieval-Augmented Generation,RAG)为此提供了重要启示。RAG 通过优化提示来获得期望输出,而无需修改 LLM 的网络结构或进行微调。受这一范式的启发,偏置提示的生成可以作为一个独立模块,与识别过程进行解耦。这样,模型既不需要依赖发音词典,也不必在训练阶段依赖 ASR 模型本身。该方法与当前的大模型框架高度契合,能够利用 RAG 思路实现大规模的上下文偏置增强。

之前常用的多模态预训练模型CLAP(对比语言-音频预训练),只能做“句子级”的音频-文本匹配——但偏向词往往只是音频里的一小段(比如句子里的“Taylor Swift”),CLAP抓不住这种局部信息。所以就搞了GLCLAP,同时抓“全局”(整句语义)和“局部”(偏向词细节)的信息,专门适配偏向prompt生成。

本文的主要贡献如下:

  • 利用音频-语言预训练模型生成用户自定义的偏置提示;
  • 提出全局-局部对比式语言-音频预训练模型(GLCLAP),能够在不同尺度上提取音频信息,显著提升句内偏置提示的准确性;
  • 将基于 GLCLAP 的偏置提示生成组件集成到 ASR 模型中,在无需微调的情况下对解码结果进行纠正。

Proposed Method

Local Subtext Extraction for CLAP

主要目标是将音频嵌入与从用户定义的偏向列表生成的嵌入进行对齐。通过计算这些嵌入之间的相似度,可以确定提供最佳匹配的偏向。如图1所示,原始的CLAP模型旨在捕捉整个音频和文本输入的语义信息。然而,它与偏向词检索任务并不完全兼容,因为偏向词通常是整个句子的一部分。为了克服这一限制,对训练过程进行了修改。具体来说,从原始文本注释中随机提取子文本。这种方法有助于增强模型对句子中短语境的表示能力。

全局-局部对比学习模型(GLCLAP)

文本分支:在文本处理方面,除了原始的处理方法(称为全局分支),还添加了一个局部分支来处理子文本。设ft(.)为文本编码器。局部分支和全局分支共享相同的权重,其后均连接一个平均池化层p(.)以降低词维度。全局分支从完整文本Xt ∈ RB×N 中捕获嵌入Et,而局部分支专注于为子文本Xt′∈ RB×N′提取嵌入Et’,其中N表示文本标记N’ ≤N的数量 :

音频分支:音频输入是“梅尔频谱”(Mel spectrogram),用Data2Vec2.0-large当编码器(Transformer结构,自监督预训练过,支持中英)。这里有个巧思:在平均池化前后都做对比学习——因为音频的局部信息是“时序相关”的,直接池化会丢信息。

  • 局部音频embedding(Ea’)包含时序(局部信息):编码器输出的原始结果,形状[B, T//4, D]T是音频帧数,//4表示编码器做了4倍下采样);
  • 全局音频embedding(Ea)包含全局信息:对Ea’做“时间维度平均池化”,形状[B,D]。

分别对文本和音频的局部表示全局表示计算对比损失。音频与文本嵌入之间的全局对比损失 Lg定义为:

局部 最大池化损失:

其中,maxt​ 表示沿时间维度取最大值。
l(⋅)=−B1​∑log(diag(softmax(⋅))),其中, diag 表示在对矩阵应用 softmax 函数之后,取其对角元素。该函数用于度量预测分布与目标分布之间的相似性

GLCLAP for Contextual Biasing ASR

GLCLAP 模型能够检索出与音频最匹配的偏置词,并将其作为提示(prompt)输入 ASR 模型,从而帮助 ASR 更准确地识别那些容易被误识别的低频词

  1. 先准备“用户定义的偏向词列表”(比如[“Catherine”, “Katherine”]),把这些词输入GLCLAP的文本分支,生成文本embedding(形状[K,C],K是列表长度);
  2. 把要识别的音频输入GLCLAP的音频分支(不做平均池化,保留时序信息),得到局部音频embedding(E^a’,形状[T,D]);
  3. 算“相似度矩阵”(Sim = 文本embedding × 音频embedding转置),形状[K,T]——每个元素代表“第k个偏向词”和“第t帧音频”的相似度;
  4. 对相似度矩阵做“时间维度max池化”,得到一个[K]的向量——每个值是“某个偏向词和整段音频的最大相似度”;
  5. 把超过“预设阈值”的偏向词挑出来当prompt,和原音频一起喂给ASR(比如Whisper),最后得到更准的识别结果。

实验

关键参数

  • 学习率:5e-4;
  • batch size:64;
  • 训练轮次:100轮(早停防过拟合);
  • 对比模型:Base ASR(Conformer架构,1.3亿参数,训过4个训练集)、Base CLAP、Subtext CLAP(只加了子文本提取的CLAP)、LCLAP(只算局部损失)。

音频编码器(Audio Encoder)
我们采用与 Data2Vec2.0-large 相同的网络结构和预训练方式。具体而言,使用的是 Data2VecAudioModel,这是一种基于 Transformer 的架构,专门用于语音表示的自监督学习。该模型在一个私有数据集上进行了预训练,数据集同时包含英文和中文语音数据。

文本编码器(Text Encoder)
文本编码器初始化为 bert-base-multilingual-uncased。该模型由 12 层 Transformer 组成,能够有效地捕获文本中的上下文信息 。

评估指标

  • 偏向词检索:用“Top-1召回率”(找对最匹配的偏向词的比例)和“F1分数”;
  • ASR性能:用“词错误率(WER)”——越低越好。

(1)偏向词检索效果(表1)对比不同模型的Top-1召回率(%)

  • Base ASR和Base CLAP效果都差,尤其是Base CLAP在STOP2上才19.4%;
  • 加了“子文本提取”后明显提升,说明局部信息有用;
  • LCLAP已经比Base好很多,再加上“全局分支”的GLCLAP,直接冲到97%左右,不管是人名还是地名场景都稳赢。

还有表2(Aishell-1 test NT的F1):

  • SeACo-Paraformer(传统偏向模型):96%;
  • LCLAP:96%(打平);
  • GLCLAP:96.96%(+0.96%)——比传统模型还强一点。

多模态对齐效果(图4):局部匹配很准

  • 图4a(词级):每个词(比如“NEW”“YORK”)都能和音频里对应的时序片段对齐,相似度高的地方很集中;
  • 图4b(短语级):“NEW YORK CITY”这种短语也能准确匹配音频片段,不会跟其他部分混;
  • 图4c(音频-文本对齐):即使文本有小错误(比如“EVETS”“YOR”),音频还是能和正确的文本片段对齐——说明GLCLAP的局部匹配能力很稳,不会因为文本小错跑偏。

对比Whisper Small加不同prompt模块的WER(%):

这篇论文最核心的贡献是:用“全局+局部对比学习”解决了ASR上下文偏向的“prompt匹配”问题

  1. 不用依赖发音词典,也不用改ASR模型、做微调,直接加个独立的GLCLAP模块就行,灵活又省资源;
  2. 不管是中文还是英文,不管是人名还是地名,GLCLAP的偏向词检索 accuracy都很高,还能实实在在降低ASR的WER;
  3. 给大模型时代的ASR个性化提供了新思路:用多模态预训练做检索增强,比传统方法更高效。

Fun-Audio-Chat:端到端语音交互模型

Fun-Audio-Chat 是为自然、低延迟语音交互构建的大型音频语言模型。它引入了双分辨率语音表示(一个高效的 5Hz 共享主干 + 一个 25Hz 的精炼头)以在降低计算的同时保持高语音质量,并采用 Core-Cocktail 训练以保留强大的文本 LLM 能力。它在语音问答、音频理解、语音函数调用以及语音指令遵循和情感共鸣基准上都取得了顶级成果。

现有模型面临的挑战:语音 Token(通常约 25Hz)与文本 Token(约 3Hz)在时间分辨率上的不匹配会削弱语义信息,同时带来高计算成本、限制实际部署,并在多模态训练过程中导致文本 LLM 知识的灾难性遗忘。

Fun-Audio-Chat采用 双分辨率语音表征(Dual-Resolution Speech Representations, DRSR) 架构:共享的 LLM 主干以高效的 5Hz 帧率 处理音频(通过语音 Token 分组实现),而 Speech Refined Head(SRH) 则以 25Hz 分辨率 生成高质量语音 Token。该双分辨率设计在计算效率与语音生成质量之间实现了有效平衡,使 GPU 训练时长降低近 50%

不同于某些语音模型的大规模音频-文本预训练与后训练方法,Fun-Audio-Chat基于预训练模型,全量监督微调阶段采用 Core-Cocktail Training 策略缓解灾难性遗忘问题,后训练使用多任务 DPO 训练以增强模型在鲁棒性、音频理解、指令遵循及情感化语音共情能力方面的表现。Fun-Audio-Chat 在有效保留原始文本 LLM 知识的同时,获得了强大的音频理解、推理与生成能力。

模型在语音转文本与语音-语音生成任务上取得了具有竞争力的性能,并在多项口语问答基准测试中位列同规模模型的领先水平。同时,其在音频理解、语音函数调用、语音指令遵循以及语音共情等任务上亦展现出媲美甚至优于同类模型的表现。构建了 Fun-Audio-Chat-Duplex,一种全双工变体,在口语问答基准与全双工交互场景中均取得了优异性能。

Spoken QA tasks:其中Mimo-Auido 进行大规模语音预训练
other tasks

Introduction

现有语音大模型面临以下挑战:

  • 语音token与文本token速率不匹配,跨模态对齐时多个语音帧映射到单个文本 token 的语义空间,会影响语义信息且LLM 难以复用其原生 token-level 推理能力;
  • 多模态的预训练与后训练,会导致其原有知识发生灾难性遗忘;
  • 频帧率通常较高(如 12.5Hz 或 25Hz),整体计算成本偏高,限制了模型在实际场景部署。

针对以上问题,提出 Fun-Audio-Chat

  • 大规模后训练与模型扩展能力。基于DrVoice的两项关键创新——双分辨率语音表征(DRSR)架构Core-Cocktail 训练策略——基础上,进一步扩展到显著更大的数据与模型规模,包括覆盖 数百万小时的多样化音频数据,以及 dense  8B 参数模型与 MoE 30B-A3B 参数模型。DRSR 依托于 主干 LLM 的高效 5Hz 处理25Hz 生成头,即使在更大规模训练中,仍能保持高计算效率(训练 GPU 时长约 降低 50%);同时,Core-Cocktail 训练策略 通过 两阶段训练、分阶段学习率及中间模型合并机制,在 8B 与 30B-A3B 模型 中均有效缓解了灾难性遗忘问题。
  • 多任务 DPO 训练以提升鲁棒性与泛化能力。DPO 训练增强 Fun-Audio-Chat 的能力,包括:对真实语音数据的鲁棒性、指令遵循能力、音频理解能力以及语音共情能力。通过多任务 DPO 训练,Fun-Audio-Chat 获得了超越基础语音-文本交互的高级能力,包括 语音函数调用、语音指令遵循,以及语音共情(识别并推理用户情绪状态并生成具有共情特质的响应),使模型能够以适当的情感智能与功能执行能力,理解并应对复杂语音交互场景。
  • 全双工语音交互能力。Fun-Audio-Chat-Duplex,一种支持双向同时语音通信的全双工变体。该模型在口语问答基准任务上表现出具有竞争力的性能,同时在全双工交互指标上亦取得优异结果,展现出在自然对话与轮流发言(turn-taking)方面的强大能力。

Methodology

语音输入经过 MLLM(多模态大语言模型)Tokenization分组处理编码,分别用于两种自回归预测任务:Text Head:预测文本 token,Speech Refined Head(SRH):预测语音 token。生成的语音 token 随后通过 speech detokenizer 转换为语音波形。需要注意的是:SRH 通过 5 次自回归前向传播 生成 5 个语音 token,其中 5 为分组因子。
Fun-Audio-Chat 的全双工通信模式

上图展示了 Fun-Audio-Chat 及其全双工变体 Fun-Audio-Chat-Duplex 的架构。

Fun-Audio-Chat 的框架主要由三个模块组成:

  1. 语音输入处理模块:通过 Speech EncoderSpeech Tokenizer 将原始音频波形转换为结构化表示,分别用于用户端(User)和助手端(Assistant)。
  2. 多模态大语言模型:整合 共享 LLM 主干 与专门的 Text HeadSpeech Refined Head(SRH),用于生成文本 token 与语音 token。
  3. Speech Detokenizer:将生成的语音 token 重建为音频波形。

该架构实现了统一的音频-文本编码同步的语音-文本生成。在推理阶段,无论输入为文本还是语音,均会被转换到一个统一的语义表示空间,由 MLLM 处理,从而通过 SRHText Head 同时生成语音和文本输出。

Speech Tokenization and Detokenization

Fun-Audio-Chat 采用 Whisper-Large-v3作为 语音编码器,从用户语音输入中提取连续表征。随后, Adapter 模块 对这些特征进行时间分辨率降采样,并将其维度匹配到 LLM 的隐藏空间。

鉴于语义 token 在语音表征中的有效性其,尤是其与文本内容的高度对应性,采用 S3Tokenizer 作为 语音分词器,将音频波形转换为离散的语义 token 序列。S=[s0​,s1​,…,sT−1​]其中 T 表示序列长度,用于助手端(Assistant)的输出。

S3Tokenizer 最初是在 CosyVoice [论文] [代码库] 中引入的,它是一个基于预训练的 SenseVoice-Large 模型的监督语义语音分词器,它增强了提取的词元与文本和副语言信息的语义关系,对数据噪声具有鲁棒性,并减少了对干净数据收集的依赖,从而使模型训练可以使用更广泛的数据来源

在逆向过程中,Speech Detokenizer [CosyVoice3的模型解码合成音频]利用 speaker-specific embeddings 编码音色等声学特征。随后,Flow Matching 模型 将这些 token 转换为 Mel 频谱表示,再通过 HiFi-GAN 声码器 将 Mel 频谱重建为音频波形。

Dual-Resolution Speech Representations (DRSR)

为了在支持跨模态能力的同时 保持预训练文本 LLM 的文本能力,Fun-Audio-Chat 采用了先前工作 DrVoice中提出的 双分辨率语音表征(Dual-Resolution Speech Representations,DRSR) 架构。该架构有效解决了 语音 token(通常约 25Hz)与文本 token(约 3Hz)之间的时间分辨率不匹配问题,同时提升计算效率,并实现高质量语音生成。

语音 Token 分组。为弥合时间分辨率差异,采用 DrVoice中的分组技术,将 25Hz 的语音 token 转换为 5Hz 的表示,并输入至 共享 LLM 主干。该分组变换可表示为:

其中 𝐬j 表示单个语音 Token ,Concat 表示串联,k=5 是基于语音 Token 频率 (25Hz) 与所需 LLM 处理频率 (5Hz) 之比的分组因子。这种机制将序列长度从T减少到T/k,允许共享LLM以5Hz帧速率运行,这大大减少了计算开销(训练GPU时间减少了大约50%),同时保留了LLM的语义推理能力。

Speech Refined Head (SRH).分组机制提升了计算效率,但其同时会丢失对自然语音合成至关重要的细粒度声学信息。为弥补这一不足,Fun-Audio-Chat 引入了一个专用的 SRH,用于在 完整的 25Hz 分辨率下生成语音 token。SRH 执行一种反分组(ungrouping)操作,来自 共享 LLM 的最终隐藏状态hL[SLLM]首先通过线性投影被转换为与分组大小一致的嵌入表示:

接下来分解为 k 段:

生成的 𝐇 为 SRH 提供条件上下文,SRH 以 25Hz 自回归方式生成语音标记。 训练目标优化语音标记预测:

其中 si 表示第 i 个语音标记。 这种双分辨率框架允许 Fun-Audio-Chat 遵循 DrVoice 中建立的设计原则,同时实现计算效率(共享 LLM 层中的 5Hz 处理)和高保真语音合成(通过 SRH 生成 25Hz)。

Multimodal Large Language Model (MLLM)

MLLM 架构在预训练文本 LLM 的基础上进行扩展,使其具备统一的音频-文本处理能力,从而能够接收语音或文本任一模态输入,并同时生成语音与文本输出。Fun-Audio-Chat 属于并行式联合语音-文本模型。借鉴 Moshi 的做法,我们在模型中引入 显式文本流,用于为语音生成提供语义引导。模型设计仅在 助手侧进行模态对齐,这反映了人机对话中的固有非对称性:用户通常只提供单一模态输入(文本或语音),而助手则能够输出协调一致的多模态响应(即联合语音-文本输出或仅文本输出)。

模型利用 LLM 的自回归特性,在每一步迭代地将 语音 token st文本 token tt​ 一并输入至 共享 LLM 层。两类 token 的嵌入向量通过逐元素相加(addition)进行融合,形成统一的输入表示。第 t步的复合嵌入:

其中,EspeechEtext​ 分别表示语音与文本 token 的嵌入函数。为解决语音序列与文本序列在长度上的不匹配问题,我们对较短的序列进行填充,并在每个话语中使用特殊静音标记 <|SIL|>作为填充值。

模型的生成过程遵循自回归范式:

其中,x 表示输入,yt​=(st​,tt​) 表示在时间步 t 的联合语音–文本输出。该建模方式在同一自回归过程中统一了语音与文本的联合生成。

Post-Training

Fun-Audio-Chat 基于已有的预训练模型构建,并采用多阶段后训练流程进行训练,利用覆盖多领域、多任务的数百万小时语音数据,其中包括对话语音与多语言语音,以及面向语音理解任务的音频数据,从而保证对多种应用场景与使用需求的全面覆盖。自建数据则包括文本、ASR、TTS、音频理解、语音指令跟随以及语音共情数据。

整个多阶段训练流程包括以下三个阶段:
(1) Pre-alignment:利用大规模语音-文本配对数据,对 Speech Encoder、Adapter 与 Speech Refined Head 进行对齐训练
(2) Core-Cocktail 训练阶段:用于监督式全参数微调,采用由 CosyVoice 3基于数十亿文本 token 合成的高质量语音数据,并通过合成语音的词错误率(WER)阈值筛选得到
(3) 多任务 DPO 训练阶段:引入多样化真实语音数据以提升鲁棒性,引入音频理解与 ASR 数据以增强理解与感知能力,同时使用指令跟随数据(包含情感、风格与韵律控制)以提升语音指令跟随能力,并结合语音共情数据以强化情感理解与共情式响应生成能力。

预对齐阶段

Speech Encoder 采用 Whisper-Large-v3的权重进行初始化,从而提供稳健的语音理解能力。Shared LLM Layer 使用 Qwen3-30B-A3B进行初始化,或可替代性地采用视觉-语言基础模型 Qwen3-VL-8B,以充分利用预训练文本 LLM 强大的语义理解能力。此外,来自 CosyVoice 3的预训练 Speech Tokenizer Speech Detokenizer 被直接引入,并在 Fun-Audio-Chat 的整个训练过程中保持冻结。

预对齐训练:使用大规模语音-文本配对数据,对 Speech Encoder、Adapter 与 Speech Refined Head 进行联合对齐学习。在该阶段中,Shared LLM Layer 被保持冻结,以确保其预训练能力不受破坏。

Core-Cocktail 训练阶段

实验观察到,多模态模型训练过程中存在一个基础性的学习率折衷问题:学习率过高将导致 MLLM 性能退化,并加剧基础文本 LLM 知识的灾难性遗忘;而学习率过低则会导致收敛缓慢,甚至训练停滞。为解决这一优化难题并避免知识流失,采用了此前在 DrVoice中提出的 Core-Cocktail Training 方法论,其核心是一种 两阶段训练策略

阶段一:高学习率微调。 在该初始阶段,我们对全部 MLLM 参数、Audio Encoder 与 Adapter 进行全量微调,并采用较高的学习率。对于 Fun-Audio-Chat,在阶段一中学习率按照余弦退火策略从 1×10−4 逐步衰减至 1×10−5。该阶段的目标是使模型参数能够快速迁移至更有利于多模态学习的损失曲面区域,从而实现快速任务适配。

中间模型合并。 为缓解阶段一高强度训练可能带来的 MLLM 性能退化问题,引入中间模型合并操作。将阶段一训练后的 MLLM 参数 M1​ 与原始预训练 LLM 参数 M0 进行加权插值,得到合并模型: Mr​←αM1​+(1−α)M0

其中 α用于控制插值平衡。该合并过程重新引入基础 LLM 的核心知识,从而保护其原有的文本理解能力。较小的 α值将更有利于保留基础 LLM 的知识。在我们的实现中,α=0.5。

阶段二:低学习率精调。 在阶段二中,我们对合并后的模型 Mr 以更低的学习率进行全量微调。对于 Fun-Audio-Chat,学习率同样按余弦退火策略从 1×10−5 衰减至 1×10−6。该阶段实现了稳定且精细的优化,在避免高学习率相关不稳定性的同时进一步提升模型性能。Core-Cocktail Training 策略在快速适配与知识保持之间实现了有效平衡,显著缓解了灾难性遗忘问题,并促进高效的多模态学习。

多任务 DPO 训练

在完成 Core-Cocktail 训练之后,采用多任务 DPO 训练提升模型在真实语音数据上的鲁棒性、音频理解能力、语音指令遵循能力以及语音共情能力。多任务 DPO 阶段引入了多维度的偏好学习目标:(1)鲁棒性偏好:更偏好在噪声环境或多样化语音输入下仍能保持输出质量的响应;(2)指令遵循偏好:更偏好能够准确遵循语音指令(包括情绪、风格与韵律控制)的响应;(3)音频理解偏好:更偏好体现对音频内容进行准确理解与推理的响应;(4)语音共情偏好:更偏好能够展现恰当情绪理解与富有共情反馈的响应。DPO 训练损失在这些偏好维度上联合计算,从而使模型能够学习到一个在多种能力之间取得平衡的统一偏好信号。该多任务 DPO 训练阶段使模型能够更好地对齐人类偏好,并在真实世界会话场景中表现出更优性能,从而区别于主要依赖监督微调的既有工作。

全双工交互训练

为实现实时全双工语音交互,提出并采用并行语音–文本输入流架构,并将 Fun-Audio-Chat 扩展为全双工变体 Fun-Audio-Chat-Duplex,从而支持自然、类人化的无缝双向通信。具体而言,并行语音–文本输入流允许模型在助手生成语音的同时继续接收用户语音输入,从而有效利用原本空闲的时间片。该并行输入机制能够同时处理来自用户与助手的语音输入,使模型能够应对重叠语音片段并保持会话语境一致性。全双工交互训练从 Core-Cocktail 阶段得到的检查点继续训练,在其已具备的多模态能力基础上进一步强化。该阶段采用通过数据增强方式构造的全双工对话数据进行训练:即基于高质量半双工对话数据,并按照 OmniFlatten中的方法模拟全双工交互行为将传统轮流发言的文本对话转化为并行双流式交互,其中用户与助手均可同时发声。通过全双工训练,模型能够学习自然的轮次切换、打断处理与跟进反馈等交互行为。

OmniFlatten:https://aclanthology.org/2025.acl-long.709.pdf

Experiments

评估任务和指标:

  • 语音转文本 (S→T) 评估。VoiceBench 、OpenAudioBench两种类型的口语问答基准
  • 语音到语音 (S→S) 评估。UltraEval-Audio 用于端到端语音转语音问答评价。
  • 音频理解。 MMAU、MMAU-Pro 和 MMSU来评估综合音频理解能力。
  • 语音识别。验证英语和普通话 (ZH) 性能
  • 语音功能调用。 Speech-ACEBench、Speech-BFCL 和 Speech-SmartInteract评估模型基于语音指令执行函数调用的能力。
  • 语音指令跟随和语音同理心。 VStyle 基准评估模型理解和执行语音指令的能力,以控制语音生成属性,如情绪、说话风格、速度、音调和音量。

评估指标

对于全双工交互评估,我们使用S2M-T(多模态响应中的文本输出准确性)和S2M-S(多模态响应中的语音输出准确性)来衡量知识理解性能,并使用轮流成功率来衡量模型在全双工场景下正确处理轮流的交互百分比。

结果

语音问答:Fun-Audio-Chat-8B 在 OpenAudioBench 上取得 76.61% 的整体最佳成绩,在 VoiceBench 上取得 83.21% 的整体最佳成绩,居于约 8B 规模模型中的领先水平;同时,Fun-Audio-Chat-30B-A3B 在与大规模基线模型(含顶级闭源模型)的比较中亦展现出具有竞争力的结果。

语音理解:Fun-Audio-Chat 在综合音频理解基准(包括 MMAU、MMAU-Pro 和 MMSU)上取得了最优表现,优于多种强大的开源基线模型

语音功能调用

Fun-Audio-Chat-30B-A3B 在所有评测模型中取得了最高的总体得分(79.63%),并在 Speech-ACEBench(单轮:76.40%)和 Speech-SmartInteract(84.13%)等任务上表现尤为突出。该模型在理解基于语音的函数调用指令并准确执行方面展现出强大能力,这对于构建实际可用的语音控制应用至关重要。 在并行函数调用场景中(Fun-Audio-Chat-8B 在 ACEBench-Parallel 上取得 54.50%,在 BFCL-Parallel 上取得 87.63%),结果进一步凸显了 Fun-Audio-Chat 在语音交互中处理复杂、多步骤指令的能力。

语音指令跟随和语音同理心

全双工交互

全双工知识理解。 表7展示了Fun-Audio-Chat-Duplex的全双工知识理解性能。 结果表明,Fun-Audio-Chat-Duplex 在全双工对话场景中保持了强大的知识理解能力。全双工架构成功地保留了模型的知识理解能力,同时实现了同步双向通信,使系统即使在处理重叠的语音输入和输出时也能保持上下文和理解。

Fun-Audio-Chat-Duplex-30B-A3B 实现了完美的轮流成功率(100.00%),优于 Moshi(99.77%)和 FreezeOmni (93.87%)。 Fun-Audio-Chat-Duplex-8B 达到了 99.94%,也展现了出色的轮流能力。 这些结果表明,Fun-Audio-Chat-Duplex 成功实现了自然高效的全双工语音交互,该模型能够处理同时语音并保持适当的对话流程,密切反映了人与人对话的动态。

计算效率双分辨率设计显着降低了计算要求和潜在延迟,经验测量显示,与以更高帧速率运行的模型相比,训练期间的 GPU 时间减少了约 50%,且不影响语音质量

限制

多轮对话中的复杂问题回答,该模型有时会表现出上下文记忆丢失,其中先前轮次的信息可能无法一致保留。

语音指令跟随能力在表达方面表现出一些不稳定。 

语音共情能力表现出一定的不稳定。