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)和时间戳标注视为相互独立的任务,由彼此分离的模型分别处理。要协调这些模型的输出,往往需要依赖复杂的启发式规则,这容易引发误差传播:一旦分段或说话人划分环节出现错误,最终的转写结果就会受到污染。

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

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

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

“垃圾”数据也有价值

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

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

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

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

幸存者偏差

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

“垃圾”数据的价值

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

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

阿里音频大模型强化学习 RL 框架

在语音技术领域,ASR(语音识别)和 TTS(语音合成)早已进入 LLM 时代,但 “能用” 和 “好用” 之间,还隔着一道难以逾越的鸿沟:ASR 会出现幻觉、漏检关键词;TTS 发音虽准,却缺自然韵律,甚至越优化语速越慢。

问题的核心在于:LLM 的 “文本 RL” 经验,没法直接套用到音频领域。音频是连续信号,既要处理声学特征,又要对齐语义,传统 RL 框架又笨重又低效。

阿里通义实验室的论文《Explore the Reinforcement Learning for the LLM based ASR and TTS system》,给出了一套 “轻量、高效、通用” 的解决方案。它不仅设计了适配音频大模型的 RL 框架,还在 ASR 和 TTS 任务上做了深度探索:ASR 用 GRPO + 规则奖励,WER 相对下降 5.3%;TTS 把 GRPO 和 DiffRO 结合,既提升发音准确率,又保住自然度,彻底解决了 “顾此失彼” 的问题。实验结果表明,即使在训练数据有限且优化步骤较少的情况下,RL 也能显著提升 ASR 和 TTS 系统的性能。

相关概念

  • GRPO(组相对策略优化):轻量化 RL 算法,对一组(G 个)模型输出打分,通过组内奖励归一化计算优势函数,无需单独训练 Critic 网络。降低计算成本,适配音频大模型的多输出评估。ASR、TTS 均适用
  • DiffRO(可微分奖励优化):直接对 TTS 生成的声学 token 打分,通过 Gumbel-Softmax 采样实现梯度回传,无需合成完整音频即可优化。奖励函数:Token2Text 模型(类 ASR)训练一个Token2Text 模型(输入语音 token,输出文本概率分布),作为核心奖励器。以WER(词错误率) 为核心奖励信号:Token2Text 预测文本与目标文本的差异,转化为可微分奖励。解决 argmax 不可导问题:用Gumbel Softmax对 token 分布采样,实现端到端梯度回传。
对比维度GRPODiffRO
核心逻辑组内对比打分,优化 “相对优势”单样本 token 级打分,优化 “绝对奖励”
奖励来源规则函数(如 WER、关键词准确率)或简单奖励模型可微分模型(如 token 级 ASR)
依赖数据少量标注数据 + 硬样本(如 ASR 的 hallucination 样本)无需大量配对音频 – 文本数据
优势适配主观体验优化(如韵律、多样性)发音准确率提升明显,训练稳定
劣势训练步数过多易退化难以优化主观体验指标
  •  强化学习的训练框架 TRL 提供了简单的强化学习实现方案,但效率较低;它在训练和推理阶段均直接依赖 PyTorch,并采用手动资源管理方式。 相比之下,VeRL 和 OpenRLHF 等更先进的工业级框架利用 Ray 灵活的分布式计算原语,简化了分布式操作与部署流程。这些框架进一步集成了 VLLM、SGLang 等高效推演引擎用于响应生成,并采用搭载 ZeRO 策略的 Deepspeed/FSDP 进行策略优化。

轻量音频 RL 框架设计

音频领域 RL 的 3 大核心难题,这也是其技术方案的出发点:

  • 模态复杂:音频大模型既要处理连续声学嵌入,又要生成离散文本 /token,比纯文本 LLM 的 RL 复杂得多;
  • 框架笨重:传统 RL 框架(如 TRL)需要同时维护 Actor、Critic、Reward Model 等多个模块,GPU 资源冲突严重,训练效率低;
  • 奖励难设计:ASR 的幻觉、TTS 的韵律自然度等痛点,没法用单一指标(如 WER)衡量,复杂奖励模型又难以训练。

为了简化计算资源的管理,设计了一个强化学习(RL)训练框架,该框架可以交替地在不同的组件之间分配 GPU 资源。整个框架如图1 所示。

轻量音频 RL 框架 —— 交替调度 GPU,效率翻倍。核心思路是:按训练步骤交替分配 GPU 资源,避免多模块抢占,具体流程如下:

1)框架核心设计

训练阶段占用 GPU 的模块核心任务资源释放逻辑
阶段 1:特征处理PyTorch-based 音频编码器(ASR)/ 解码器(TTS)ASR:将音频转为嵌入;TTS:将文本转为声学 token处理完后释放 GPU,嵌入 /token 存入主存
阶段 2:生成候选输出SGLang-based LLM 生成引擎基于特征生成多组候选(ASR 生成文本,TTS 生成声学 token)生成完成后释放 GPU
阶段 3:奖励计算PyTorch-based 奖励模型 / 规则函数对候选输出打分(如 ASR 的 WER、TTS 的 ASR 准确率)打分完成后释放 GPU
阶段 4:策略优化FSDP-based LLM 策略模型用 GRPO/DiffRO 更新模型参数,同步回生成引擎一轮更新后进入下循环

(2)关键优势

  • 效率高:8 张 A100 GPU 上,ASR 单步训练仅需 54.6 秒,TTS 仅 16.73 秒,远超 VeRL 等开源框架;
  • 通用性强:一套框架适配 ASR 和 TTS,无需为不同任务单独搭建;
  • 资源省:避免多模块同时占用 GPU,显存消耗降低 30% 以上。

ASR 的 RL 优化 —— GRPO + 规则奖励

ASR 的核心痛点是 “基础准确率(WER)达标,但幻觉、关键词漏检影响实际使用”,因此奖励函数聚焦 “准确率 + 抗幻觉 + 关键词保障” 三大目标,采用 “基础奖励 + 惩罚性奖励 + 强化奖励” 的组合逻辑:

(1)奖励函数设计:3 条规则,精准打击幻觉与关键词漏检

基础奖励 R1:ASR 识别准确率(核心基础)

  • 设计逻辑:以 “词错误率(WER)” 为核心指标,奖励与准确率正相关,确保模型优先优化基础识别能力。
  • 计算公式1 − WER(y, y), 其中 y:音频对应的真实标注文本,y:ASR 模型的输出文本,WER:词错误率(插入、删除、替换错误的综合指标,范围 0~1)。
  • 数值范围:0~1(WER=0 时R1=1,完全错误时R1=0)。
  • 核心作用:保证 RL 训练不偏离 “提升基础识别准确率” 的核心目标,避免为了优化其他指标而牺牲 WER。
  • 惩罚性奖励 R2:幻觉检测(优先级最高)
    • 设计逻辑:ASR 的幻觉(无中生有、重复生成、翻译错误)对用户体验伤害极大,因此采用 “一票否决” 式惩罚,检测到幻觉直接将奖励设为 – 1,强制模型规避该行为。
    • 幻觉判定规则
      • 无中生有:生成文本中包含音频中不存在的词(如音频说 “苹果”,ASR 输出 “苹果手机”);
      • 重复生成:连续重复相同短语(如 “今天今天今天天气好”);
      • 翻译错误:将一种语言误译为另一种(如英文音频被识别为中文)。
    • 奖励逻辑:若检测到上述任意一种幻觉 →R2 = -1 ;无幻觉 →R2 = 0 (不额外加分,仅避免惩罚)。
    • 核心作用:针对性解决长音频、噪声环境下的 ASR 幻觉问题,实验中长音频插入错误率(Ins)从 2.72 降至 0.86。
  • 强化奖励R3 :关键词准确率与召回率(工业场景关键)
    • 设计逻辑:人名、品牌名、专业术语等关键词的识别准确率,直接影响 ASR 的工业实用性(如智能客服、语音助手),因此单独强化该维度。
    • 数值范围:0~1(关键词完全命中时R3 = 1 ,完全漏检 / 误检时 R3 = 0)。
    • 核心作用:保证基础准确率的同时,重点强化关键信息的识别能力,提升模型的工业落地价值。
  • ASR 最终奖励聚合
    • 聚合逻辑:惩罚性奖励优先级最高,其次是基础奖励和强化奖励的加权求和(论文未明确权重,实验中采用等权求和)。
    • 最终公式:1) 若存在幻觉 → RASR = R2 = -1;2) 无幻觉 → RASR = (R1+R3) / 2 (范围 0~1)。
    • 设计巧思:通过 “惩罚优先” 避免模型 “为了加分而牺牲关键词 / 抗幻觉”,平衡基础性能与工业需求。

(2)训练数据构建:专挑 “硬骨头”,少而精 RL 训练不用海量数据,重点在于 “针对性”。论文构建了 4 类训练集,每类 2 万条,精准命中 ASR 的失败模式:

数据集数据来源训练目标
D0:随机样本普通语音数据作为对照,保证基础性能
D1:难样本不同 ASR 系统输出不一致的音频(如歧义句、噪声环境)提升复杂场景鲁棒性
D2:长音频样本时长 > 20 秒的音频解决长语音的幻觉、漏检问题
D3:关键词样本含人名、品牌名、专业术语的音频强化关键词识别能力

(3)训练配置与实验结果

  • 核心参数:batch size=32,组大小 G=12,学习率 = 1e-5,KL 系数 = 0.1,训练 1 天即可收敛;
  • 评估指标:WER(词错误率)、Ins(插入错误率)、Del(删除错误率);
  • 关键结果
    • 短音频(<10 秒):最优配置(全奖励 + 全数据集)WER 从 10.25 降至 9.71,相对下降 5.3%;
    • 长音频(>20 秒):Ins 错误率从 2.72 降至 0.86,幻觉问题大幅缓解
    • 结论硬样本 + 关键词奖励是提升 ASR 性能的关键,单纯增加长音频样本效果有限

TTS 的 RL 优化 —— GRPO+DiffRO 融合,发音与自然度双提升

TTS 的核心痛点是 “发音准确率与自然度失衡”(如 DiffRO 提升发音但牺牲语速,GRPO 优化自然度但易发音不准),因此奖励函数聚焦 “发音准确率 + 语速控制 + 韵律多样性”,覆盖客观指标与主观体验:

(1)单一算法对比:各有优劣

先分别用 GRPO 和 DiffRO 做实验,结果如下:

方法核心优势核心劣势中文 WER中文 SS(说话人相似度)
基线(无 RL)4.28077.64
DiffRO发音最准(WER 最低)SS 下降最多(77.00)3.41877.00
GRPOSS 下降少(77.26)发音提升有限3.71077.26

(2)GRPO 的奖励扩展:3 条规则,兼顾准确率与自然度

  • 核心奖励 R1:ASR 识别准确率(保证发音准确)
    • 设计逻辑:TTS 合成音频的 “可懂性” 是基础,通过 ASR 模型反向验证发音准确率,ASR 能准确识别的音频,说明发音无明显错误。
    • 两种计算方式(适配不同场景): 
      • 方式 1(音频级):用标准 ASR 模型识别 TTS 合成的完整音频,计算识别准确率(同 ASR 的R1); 
      • 方式 2(token 级):直接用 DiffRO 的 token-based ASR 模型,对 TTS 生成的声学 token 打分,无需合成完整音频(效率更高)。
    • 数值范围:0~1(ASR 完全识别正确时R1=1,完全无法识别时 R1= 0)。
    • 核心作用:锚定 TTS 的发音准确性,避免 RL 优化过程中出现 “自然但听不懂” 的问题。
  • 约束奖励 R2:音频时长控制(防止语速变慢)
    • 设计逻辑:论文发现 “TTS 为提升 ASR 识别率,会主动放慢语速”,导致语音不自然,因此通过时长约束强制模型保持合理语速。
    • 计算公式
  • 其中|oi|:第 i 个 TTS 候选输出的音频时长;Tm同组候选输出的音频时长中位数;abs:绝对值函数。
    • 数值范围:-1~0(时长与中位数完全一致时=0,偏差越大越接近 – 1)。
    • 核心作用:惩罚语速过快 / 过慢的输出,实验中成功避免 TTS “为准确率牺牲语速”,说话人相似度(SS)也同步提升。
  • 增强奖励 R3:token 与音调多样性(提升韵律自然度)
    • 设计逻辑:TTS 的 “机械感” 源于韵律单一,因此奖励模型生成多样化的声学 token 和音调变化,模拟人类自然 speech 的韵律波动。
    • 计算公式(双维度加权求和)
  • 第一部分(token 多样性)
  • 其中G:GRPO 的组大小(实验中 G=8),:第 i 个与第 j 个候选输出的声学 token 编辑距离;dist(oi,oj):第 i 个候选的 token 长度;组内候选的 token 差异越大,得分越高。 
  • 第二部分(音调多样性)std(F0),其中F0:归一化后的基频(音调);std:标准差函数;音调波动越大(标准差越高),韵律越丰富,得分越高。
    • 数值范围:0~+∞(无上限,多样性越高得分越高)。
    • 核心作用:提升 TTS 的主观自然度,实验中该奖励虽未优化客观 WER,但人类主观评估中 “韵律自然度” 得分最高。
  • TTS 最终奖励聚合
    • 聚合逻辑:核心奖励(R1)保证基础发音,约束奖励(R2)控制语速,增强奖励(R3)优化韵律,三者加权求和(论文实验中采用等权)。
    • 最终公式:Rtts = R1+R2+R3
    • 设计巧思:通过 “核心 + 约束 + 增强” 的组合,平衡客观准确率与主观体验,为 GRPO 与 DiffRO 的融合奠定基础。

实验验证

训练效率:新框架碾压开源方案

在 8 张 A100 GPU 上,论文提出的交替调度框架,训练速度远超基于 VeRL 的开源方案:

  • ASR 单步训练时间:54.6 秒(RTF=0.015),是开源方案的 2.3 倍快;
  • TTS 单步训练时间:16.73 秒(batch size=128),是开源方案的 1.8 倍快;
  • 关键原因:避免了多模块 GPU 资源冲突,SGLang 和 FSDP 的并行优化大幅提升效率

ASR 关键结论

  • 奖励设计比数据量更重要仅用R1(WER)效果有限,加入R2(幻觉惩罚)和R3(关键词奖励)后,性能大幅提升;
  • 长音频训练需针对性数据单纯增加长音频样本(D2)无法解决幻觉,需结合困难样本(D1)和关键词样本(D3);
  • 工业场景优先选 “全奖励 + 全数据集” 配置,WER 和抗幻觉能力均最优。

TTS 关键结论

  • 发音准确率:DiffRO > 融合方案 > GRPO > 基线;
  • 说话人相似度:GRPO > 融合方案 > 基线 > DiffRO;
  • 稳定性:DiffRO > 融合方案 > GRPO;
  • 落地推荐:优先选择 “样本过滤 +R1+R2” 融合方案,兼顾准确率、自然度和稳定性。

研究价值与未来展望

核心价值

  • 技术层面:首次提出适配音频大模型的轻量 RL 框架,解决了模态复杂、资源冲突的核心难题;同时探索了 GRPO 与 DiffRO 的融合方案,为 TTS 的 “准确率 + 自然度” 双优化提供了可落地的范式;
  • 工业层面:规则型奖励 + 困难样本训练的思路,无需标注海量偏好数据,降低了 RL 在 ASR/TTS 中的落地成本;实验结果可直接复用,加速工业产品迭代。

未来展望

  • 多语言扩展:当前实验主要基于中英双语,未来可扩展至低资源语言,优化小语种 ASR/TTS 的性能;
  • 奖励模型融合:将规则奖励与训练后的奖励模型结合,进一步提升奖励的精准度;
  • 多模态扩展:将框架适配到语音翻译、语音情感合成等更复杂的音频任务;
  • 轻量化部署:在保证性能的前提下,优化框架的显存占用,适配边缘设备训练。

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)使得音频机器学习成为一个令人兴奋的研究领域。

LEMAS:15W小时多语种TTS数据集

LEMAS 是一个大规模可扩展的多语种音频套件,提供带有单词级时间戳的多语种语音语料库(LEMAS-Dataset),涵盖 10 种主要语言(中文/英文/德文/法文/西班牙文/葡萄牙文/意大利文/俄文/印尼文/越南文),总量超过 150,000 小时。通过严格的对齐和基于置信度的过滤流程构建,LEMAS 支持多种生成范式,包括零样本多语种语音合成(LEMAS-TTS,0.3B 参数)和无缝语音编辑(LEMAS-Edit,0.3B 参数)。

从真实环境(in-the-wild)音频中构建此类数据集面临着独特的挑战,因为传统的基于 HMM 的强制对齐工具(例如 MFA )在处理嘈杂、未分割的语音时往往表现不佳。针对这一问题,我们设计了一套鲁棒的多阶段处理流水线,利用 MMS 对齐器(MMS aligner) 提取词级时间戳,并且关键性地为每一个对齐后的词分配一个置信度分数。这种设计支持灵活且具备可靠性感知的数据过滤机制,使研究人员能够根据下游任务需求,在数据规模对齐精度之间进行动态权衡,从而确保该数据集在对精度要求较高的应用场景中具有较高的实用价值。

Dataset Processing Pipeline:

数据接入与结构统一。
我们首先从多个公开可用的语音语料库中汇集音频–文本配对数据,包括 GigaSpeech(英语)、GigaSpeech2(印尼语、越南语)、WenetSpeech4TTS(中文,基于 VoiceBox)、Emilia(中文和英语,基于 VoiceBox)、MLS(英语、德语、法语、葡萄牙语、西班牙语、意大利语)、多语种 TEDx(德语、法语、葡萄牙语、西班牙语、意大利语)、Alcaim(葡萄牙语)、Golos(俄语)以及 Yodas(德语、法语、西班牙语、葡萄牙语、俄语、意大利语、印尼语、越南语)。这些数据源覆盖了多种录制场景,包括有声书、播客以及真实环境下的对话语音。

不同于保留各数据集特有的数据结构,我们将所有输入统一规范化为一致的数据表示形式,从而支持与语言无关的下游处理以及大规模自动化流程

词级时间戳对齐:采用了由 torchaudio 提供的基于 wav2vec 的 CTC 对齐模型Multilingual MMS Forced Aligner。该模型在超过 23,000 小时、涵盖 1,100 多种语言的语音数据上进行了训练。在对齐处理之前,先对转录文本进行语种特异性归一化,再通过 Uroman 3 等工具将其罗马化 —— 该工具可将多种文字(如汉字、西里尔字母等)映射为统一的拉丁字母表示形式。这种设计摒弃了对语种专属发音词典的依赖,使对齐模型能够稳健处理生僻词、命名实体及句内语码转换现象。随后,MMS 对齐器会生成词汇级边界信息及词元级后验概率,为后续的质量控制环节奠定基础。

基于置信度的质量过滤

仅仅对齐成功是不够的,只有具有高时间可靠性的对齐结果才适合用于生成式语音建模。因此,我们仅保留能够提取到词级对齐的样本,并基于对齐置信度和时间一致性应用一系列规则过滤器:

  1. 对齐置信度过滤(Alignment Confidence Filtering)
    对于每条语音,我们根据对齐 token 的后验概率计算平均对齐置信度分数。为了适应不同语言和数据集的差异,我们使用数据集特定的阈值 [0.2,0.5],仅保留置信度高于对应阈值的样本。
  2. 时长与停顿约束(Duration and Pause Constraints)
    • 移除长度小于 0.5 秒或大于 30 秒的语音,以确保与 TTS 训练兼容。
    • 删除包含长时间未对齐区域或静默超过 4 秒的样本,因为这些通常表示分段或转录错误。
  3. 语速归一化(Speech Rate Normalization)
    为排除异常快或慢的语音,我们对文本长度与音频时长的比值施加语言特定约束。对于每种语言 L,字符级比值 len(text)/duration必须落在经验确定的区间 [min_ratioL,max_ratioL]内,该区间由语料统计经验获得。
  4. 语言与字符验证(Language and Character Validation)
    数据集仅限于十种目标语言:中文(zh)、英语(en)、俄语(ru)、西班牙语(es)、印尼语(id)、德语(de)、葡萄牙语(pt)、越南语(vi)、法语(fr)和意大利语(it)。
    • 所有转录文本必须属于上述语言之一。
    • 含有不支持字符集、表情符号或过多非语言符号的样本将被移除,过滤规则依据语言特定字符集执行。

所有阈值均通过经验选择,以在数据规模对齐精度之间取得平衡。值得注意的是,在预处理阶段未进行显式的语音增强或背景噪声去除。虽然许多 TTS 系统对声学干扰仍较为敏感,但我们有意保留了真实环境(in-the-wild)特征,期望更先进的生成模型能够更好地利用这种多样性。

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个性化提供了新思路:用多模态预训练做检索增强,比传统方法更高效。

WenetSpeech-Wu:开源吴语语音数据集

  • 论文链接: https://arxiv.org/pdf/2601.11027
  • Demo Page: https://hujingbin1.github.io/WenetSpeechWu-Demo-Page-Public/
  • Github: https://github.com/ASLP-lab/WenetSpeech-Wu-Repo
  • HuggingFace: https://huggingface.co/collections/ASLP-lab/wenetspeech-wu

低资源方言的语音处理仍然是构建包容性强、鲁棒性高的语音技术过程中面临的一项基础性挑战。尽管中文吴语在语言学研究中具有重要地位,且使用人群规模庞大,但长期以来,其发展一直受限于大规模语音数据匮乏、缺乏统一的评测基准以及公开可用模型不足等问题。

本文提出 WenetSpeech-Wu,这是首个面向吴语的大规模、多维度标注的开源语音语料库,包含约 8000 小时来源多样的语音数据。

吴语语音处理面临三重关键困境:一是数据严重匮乏,现有公开数据集MagicData-Shanghai仅提供4.19小时的上海话标注语音,不仅规模极小,且未覆盖其他吴语子方言,更缺乏情感、说话人属性等支撑多类语音任务的关键标注;二是缺乏标准化评测基准,导致不同研究方法难以进行公平对比与系统评估;三是模型支撑不足,无论是开源还是商业语音处理模型,在吴语的自动语音识别(ASR)、文本到语音合成(TTS)等基础任务上均表现较差,无法满足实际应用需求。

Datapipline Overview

本文提出了一种自动化且可扩展的流程,用于构建具有多维标注的大规模吴语语音数据集,如图1所示。该流程旨在实现高效的数据采集、稳健的自动转写以及多样化的下游标注任务支持

图 1. WenetSpeech-Wu 的数据构建流程。

采集与过滤:我们从多种领域和不同子方言中收集大规模真实场景下的吴语语音数据。首先基于元数据进行筛选以去除非吴语内容,随后采用基于 WebRTC 的语音活动检测(VAD)进行分割处理。进一步结合 DNSMOS 和信噪比(SNR)进行质量过滤,最终获得高质量语音语料。

标注工具构建:为支持大规模自动转写,我们利用 880 小时人工标注的吴语语音数据对两个预训练 ASR 模型进行微调。

自动转写与结果融合:我们采用识别结果投票误差降低方法(ROVER)对多个 ASR 系统的转写结果进行融合。具体来说,我们结合了两个微调后的吴语 ASR 模型,以及 Dolphin 和 TeleASR 的输出,并通过网格搜索确定各模型权重融合后的结果生成最终转写文本,并附带置信度分数。

多维标注:

  • 说话人属性: 性别和年龄通过 VoxProfile 进行推断,多说话人检测则采用 Pyannote 实现。
  • 吴语到普通话的翻译: 通过基于词典的映射生成,并进一步利用大语言模型 Qwen3-8B 进行优化,以获得更加流畅、标准的普通话表达。
  • 情感标注: 通过多阶段、跨模态流程获得。首先使用 SenseVoice 和 Emo2Vec 对声学信号进行初步预测,并结合 Qwen3-8B 对文本内容进行情感分析。对于被联合判定为非中性的样本,进一步采用基于文本的 DeepSeek-R1 和基于声学信息的 Gemini-2.5-Pro 进行复核,最终标签由两者结果的交集确定。
  • 韵律声学特征: 利用 Dataspeech 提取韵律声学特征,包括语速、响度、能量和音高,以支持语音生成相关任务。

数据集分布

时长与置信度分布:WenetSpeech-Wu 包含 8,000 小时语音数据,共计 386 万条语句,单条语音时长最长可达 30 秒,平均时长为 7.45 秒。我们采用加权 ROVER 生成的转写置信度作为标注质量的衡量指标,并保留置信度高于 0.55 的语句。语句时长分布与转写置信度分布的详细情况分别如图2b和c所示。

领域与子方言覆盖:WenetSpeech-Wu 覆盖了广泛的语音领域和多种吴语子方言。语音领域包括 新闻、文化、Vlog、娱乐、教育、播客、评论、访谈、广播剧、音乐节目以及有声书,其分布情况如图2a和d所示。

在方言覆盖方面,约有 37% 的录音由于无法可靠地归属到某一具体吴语子方言,被标注为 Unknown。其余录音则覆盖了多种已识别的吴语子方言,包括 上海话、苏州话、绍兴话、宁波话、杭州话、嘉兴话、台州话和温州话,其分布如图2d 所示。

音频质量:如图2e 和图2f 所示,大多数语句的信噪比(SNR)分布在 10–40 dB 之间,并在 20–30 dB 区间达到峰值。主观听感质量(MOS)评分主要集中在 2.0–3.5 的范围内。

说话人属性与情感标注:我们针对单说话人语音片段标注了性别、年龄和情感信息。性别分为 男性和 女性;年龄划分为四个阶段:0–17 岁为 青少年,18–35 岁为 青年,36–59 岁为 中年,60 岁及以上为 老年;情感则分为五类:中性、快乐、悲伤、惊讶和 愤怒。各类别的具体分布情况如表2所示。

面向任务的数据质量分级:为支持多样化语音任务在实际训练中的不同需求,我们提出了一种与任务特定质量要求相匹配的数据质量分级策略。针对 ASR 和 TTS 任务,我们构建了两个质量等级的数据子集。其中,普通质量子集主要用于大规模预训练,更强调数据覆盖范围和多样性,仅要求中等水平的转写置信度;高质量子集则面向监督微调(SFT),采用更严格的筛选标准,包括更高的转写置信度、更干净的声学环境以及可靠的说话人分离,以提供更稳定、有效的监督信号。对于对标注噪声和语义歧义更为敏感的任务,例如吴语到普通话的自动语音翻译、说话人属性预测、语音情感识别、语音合成以及指令控制语音合成,我们采用了更为严格的数据筛选标准,包括单说话人录音、高 MOS 评分、较高信噪比、音高标准差约束,以及经过一致性验证的标注结果,具体标准如表3所示。

提出了 WenetSpeech-Wu-Bench,这是首个面向吴语语音处理的公开、人工精校评测基准,涵盖自动语音识别(ASR)、吴语到普通话自动语音翻译(AST)、说话人属性预测、情感识别、语音合成(TTS)以及指令控制语音合成(instruct TTS),为公平、统一的性能评估提供了标准化平台。

自动语音识别:WenetSpeech-Wu-Bench 的 ASR 测试集包含 9.75 小时的语音数据,涵盖上海话、苏州话以及普通话混合语码场景,同时包括单说话人和多说话人情形。

吴语到普通话语音翻译:吴语到普通话的 AST 测试集,共包含 3000 条吴语语句,总时长为 4.4 小时,配有经过人工校验的标准普通话译文,覆盖多个领域。

说话人属性预测与语音情感识别:该测试集用于评估吴语语音中的年龄、性别和情感预测能力。在说话人属性方面,性别分为男性和女性,每类各包含 1500 条样本;年龄划分为四组:17 岁及以下为青少年、18 至 35 岁为青年、36 至 59 岁为中年、60 岁及以上为老年,每组各 500 条样本。在情感分类方面,数据包括中性样本300 条,高兴、愤怒、惊讶样本各200条,难过样本100条,共计 1000 条。

语音合成: TTS 测试集,包括 144 条简单句和 98 条复杂句,文本内容经专业吴语专家审校与优化。提示语音样本选自开源的 Magicdata-Shanghai 数据集,并通过严格筛选确定了 12 位吴语说话人。评估方面,说话人相似度通过 WeSpeaker 的说话人嵌入相似度计算,语音可懂度则使用我们提出的 Step-Audio2-Wu-ASR 模型计算 CER。此外,还开展了主观听测评估,包括可懂度 MOS(IMOS)、相似度 MOS(SMOS)和口音 MOS(AMOS)。主观测试由 23 名听众参与,每人评价 20 条样本。

指令控制语音合成:WenetSpeech-Wu-Bench包含两个用于评估指令控制语音合成的测试集。在韵律控制测试集中,选取了 5 条以中等语速和正常基频录制的语音提示,并基于这些提示合成了 20 条句子,通过控制语速和音高变化进行评估。评估包括两个实验条件:快速语速与高音高,以及慢速语速与低音高。所有样本通过 Dataspeech 自动标注。当语速和音高变化符合预期指令时,该样本记为 1 分,否则为 0 分,最终通过平均得分衡量模型对韵律指令的遵循能力。情感控制测试集用于评估模型对情感相关指令的响应能力。我们选取了 10 条不包含明显情感表达的参考提示语音,并基于每条提示为四种目标情感(愤怒、悲伤、快乐、惊讶)分别合成 50 条语句。样本通过 Step-Audio2-Wu-Und 模型进行评估,当预测情感与目标情感一致时记为正确,并以平均分类准确率作为指标。此外,还开展了主观听测实验,听众从韵律 MOS(PMOS)和情感 MOS(EMOS)两个维度对语音质量进行评分。该评测共有 23 名听众参与,每人评估 15 条样本,用于综合判断合成语音对指令的遵循程度。

语音理解

ASR 模型:评估工作在 WenetSpeech-Wu-Bench 的 ASR 测试集以及两个内部人工标注测试集上进行,后者涵盖对话与朗读场景,从而能够在多种说话条件下进行全面评估。

如表4所示,现有开源与商业 ASR 系统在三个测试集上的表现均较为有限,表明它们难以有效支持吴语识别任务。相比之下,基于 WenetSpeech-Wu 训练的模型( Conformer-U2pp-Wu、Whisper-medium-Wu、Step-Audio2-Wu-ASR)在各个规模下均取得了当前最优性能,即便是规模最小的 Conformer-U2pp-Wu,也显著优于以往所有系统。

语音理解模型:结果表明,在多任务微调后,Step-Audio2-Wu-Und 的 ASR 性能较 Step-Audio2-Wu-ASR 略有下降,但仍位居第二。在吴语到普通话的 AST 任务上,该模型显著优于所有基线模型。与 Step-Audio2-mini 的对比进一步显示,普通话与吴语之间在性别、年龄和情感预测方面存在明显领域差异,而我们的数据有效缓解了这一问题。与 Qwen3-Omni 相比,我们的模型在年龄和情感预测任务上表现出显著提升,而在性别分类任务上略有下降。

语音生成

TTS 模型:如表6所示,实验结果表明,分阶段训练策略显著提升了 CosyVoice2 在吴语语音合成任务中的表现。CPT 阶段利用大规模数据,增强了模型的基础能力和鲁棒性,尤其在复杂样本上的表现提升明显。SFT 阶段进一步改善了语音的自然度与表现力。最终,在单说话人监督微调(SS-SFT)阶段,模型在 CER、IMOS 和 AMOS 等指标上均取得最佳结果。总体来看,CosyVoice2-Wu-SS 在多数评测指标上已接近或超过基线系统 Qwen3-TTS、DiaMoE-TTS 以及原始 CosyVoice2,尤其在高难度语音合成任务中优势更为明显。

指令控制 TTS 模型:指令控制训练数据来源于表3中介绍的 Inst Pro 和 Inst Emo 数据集。微调后的模型在 WenetSpeech-Wu-Bench 上所有可控性指标均表现出明显提升,如表所示。主观听感测试同样验证了模型在韵律与情感控制方面具有良好的感知效果,进一步证明了所提出数据集与方法的有效性。

基于大语言模型的语音识别上下文偏置:热词检索与强化学习方法

在真实业务里,如果你做过语音识别落地,大概率会遇到类似的崩溃瞬间:

  • 在医疗场景,医生口述一长串药品名、病理名,模型能把普通口语识得很好,一到专业名词就开始「编」,还经常把词表里没出现的药名硬说出来;
  • 影视媒体、短视频领域,剧名、角色名、艺人名每天都在更新,热词词表轻轻松松几十万条,模型一旦“认不住、认不准”,用户搜不出东西。

即使对于LLM-ASR这种强大的语音识别模型,在落地过程中也绕不开热词这个话题。

通义最新工作中提出了一个面向 LLM-ASR 的可扩展上下文偏置框架,把“热词检索 + LLM 自适应 + 强化学习”串成一套系统,在大规模热词场景(近 10 万规模词表)下显著提升了热词识别能力,同时提升了整体识别效果。具体来说,首先,扩展了 Global–Local Contrastive Language–Audio Pre-trained(GLCLAP)模型,通过具备鲁棒性的数据增强与模糊匹配机制,从大规模词表中检索出一个紧凑的 top-k 热词候选集合。其次,将检索到的候选热词以文本提示的形式注入到 LLM-ASR 模型中,并采用GRPO进行强化微调,使用任务驱动的奖励函数同时优化热词识别性能和整体转写准确率

总体框架:检索 + 强化学习,两阶段协同

  1. 热词检索(Hotword Retrieval):
    从大词表中,为当前语音检索出一小撮最相关的 top-k 热词;
  2. 热词感知 ASR 适配(Hotword-aware ASR Adaptation):
    把检索出的热词以 prompt 形式喂给 LLM-ASR,并用强化学习优化其使用策略。

整体结构可以类比为语音版的 RAG(Retrieval-Augmented Generation):

  • 检索侧:基于改进版 GLCLAPGlobal–Local Contrastive Language–Audio Pre-trained Model做音频 ↔ 热词文本的匹配
  • 识别侧:把检索到的热词放到 LLM-ASR的文本 prompt 中,用 GRPO(Generative Rejection-based Policy Optimization)做 RL 微调,让模型学会:
    • 对真正出现的热词要“认得准”;
    • 对没出现的热词不要“瞎猜”;
    • 兼顾整体转写的 WER / 句子准确率。

增强版 GLCLAP 热词检索

GLCLAP 检索器以音频信号 x 及候选偏置词集合 G={g1,g2,…,gN}作为输入,其中 N 表示候选词表的规模。该检索器由两个组件构成:音频编码器(A-enc)和文本编码器(T-enc)。对于输入音频,A-enc 提取一个固定维度的音频嵌入表示,记为 haudio。同时,候选集合中的每一个偏置词 gi∈G 通过 T-enc 编码为对应的语义向量 ei​,从而得到文本嵌入集合 E={e1,e2,…,eN}。随后,我们计算 haudio 与集合 E 中所有文本嵌入之间的相似度得分,并选取得分最高的 top-k 个偏置词,构成子集 G′。这些被选中的偏置词随后被拼接到偏置提示(bias prompt)中,以引导模型进行上下文感知的转写。

本文对 GLCLAP 又做了两方面增强。

Robustness-Aware Data Augmentation(RADA)

为缓解热词规模扩大会导致召回率下降及干扰项增多的问题,我们构建了一套鲁棒性感知数据增强(RADA)流程,用于缩减热词词表规模。初始热词词表通过网络爬取领域相关的热词构建得到。对于候选集合 G 中的每一个偏置词 gi,我们首先利用TTS系统合成对应语音(在必要时由大语言模型生成上下文文本),随后使用现有的 ASR 系统对合成语音进行解码,以检测原始 LLM-ASR 是否已具备对该热词的稳定识别能力。若该热词能够被可靠识别,则将其从热词词表中移除;反之,则保留该词作为后续偏置建模的目标。通过该流程,模型训练与推理阶段仅需关注真正具有识别难度的热词,从而提升整体检索与偏置效果。结果:词表规模从 60 万缩减到约 9.8 万。

  • 检索难度显著降低;
  • 减少大量“干扰”的词,后面 LLM-ASR也不会被这些词干扰。

模糊匹配策略(Fuzzy Matching Strategy)

在实际应用场景中,热词往往难以通过严格的词面匹配进行约束,否则将导致热词词表规模急剧膨胀,进而降低系统的可扩展性。然而,在 GLCLAP 的训练过程中,热词通常通过严格的词汇级匹配进行约束,这与真实部署环境存在不一致性。在真实场景中,用户可能会使用目标热词的不同形态(如屈折变化)、语义改写(paraphrases)或仅部分提及目标术语。为弥合训练与部署之间的差异,我们在 GLCLAP 训练阶段引入模糊匹配策略,使模型能够学习到更具语义与发音鲁棒性的热词表示,从而提升在复杂真实场景下的检索与上下文偏置能力。

真实场景中,用户说的热词常常不是词表里的标准形式,比如:

  • 说一个药品名,可能有胶囊、颗粒、口服液等。
  • 说一个影片名,可能有第二部、续、新xxx等。

如果训练中的监督只允许严格的字面匹配,检索模型就会对这些变体缺乏鲁棒性。因此,本文引入了 fuzzy matching(模糊匹配策略),在训练阶段引入了由生成式上下文句子嵌入以及经过刻意扰动的偏置词变体所构成的数据增强

  • 在训练数据中增加多种变体:人为扰动词形,如Tongyi → Tongyi abc等;

这样做的效果:

  • 更贴合真实业务中“词形变动、说法多样”的场景;
  • 检索模型对热词的语义及形态变体更鲁棒。

LLM-ASR

LLM-ASR 网络由音频编码器、适配器以及LLM三部分组成。本文选用 Qwen2.5-7B 作为 LLM 主体。在音频编码器方面,将原始的 Conformer 编码器扩展为 Conformer-MoE 编码器,具体做法是在每一层 Conformer 中,将第二个前馈网络(FFN)模块替换为混合专家(MoE)结构。我们定义了 KC个候选专家,并通过router从中选择 KS个专家进行加权聚合,同时保留一个专用的共享专家以提供通用建模能力。

LLM-ASR 模型总参数规模为 10.5B,其中推理阶段的有效激活参数量为 8.7B。整体架构由一个 3.5B 参数规模的音频编码器和一个 LLM 解码器组成。编码器采用 CNN 前端并接入 20 层 Conformer-MoE 结构。CNN 前端首先对输入特征进行 4× 的时间维下采样,随后将得到的特征送入 Conformer-MoE 堆叠模块。每一层 MoE 采用 3-of-8 的专家路由策略,隐藏层维度为 3584。

编码器的输出进一步经过一次 2× 的帧级下采样与特征拼接操作,随后通过一个两层线性适配器(adapter),最终作为输入送入 LLM 解码器。在基础训练阶段,仅对 LLM 部分施加 LoRA微调,其中 LoRA 的秩(rank)设置为 64,缩放系数(alpha)为 32。在上下文偏置训练阶段,学习率设为 1×10−5,并联合更新音频编码器、适配器以及 LLM 的 LoRA 参数。在 GRPO 训练阶段,继续使用相同的学习率(1×10−5),但冻结编码器和适配器,仅更新 LLM 的 LoRA 参数。此外,我们将 KL 散度正则项的权重设置为 0.04,并在每个训练步骤中生成 6 个候选响应用于策略优化。

基于强化学习引导判别的上下文 ASR

为抑制由上下文偏置引入的误检(false positives),我们充分利用 ASR 模型在解码阶段对偏置词进行判别的能力。模型采用结构化提示(structured prompt)进行训练,形式如下:

“<Audio> 请将音频转写为文本。可使用的偏置词包括:<g₁> <g₂> … <gₖ>”。

其中,提供的偏置词列表刻意包含与当前语音无关的词项或干扰词,以避免模型过度依赖偏置词并提升其判别能力。

除上述数据层面的增强策略外,我们在 LLM-ASR 训练过程中进一步引入生成式拒绝式策略优化(Generative Rejection-Based Policy Optimization,GRPO) 这一强化学习方法,以增强模型对偏置词的区分能力。所设计的奖励函数联合优化多个目标,具体包括:

  • 匹配奖励(match reward):若某候选偏置词同时出现在模型输出与参考标注中,或同时未出现在二者中,则奖励值为 1;否则奖励值为 0;
  • 基于 WER 的奖励(WER-based reward):奖励定义为 1−WER,以保证整体转写准确率。

在推理阶段,为进一步提升性能,我们采用联合束搜索(joint beam search)策略,同时解码无上下文约束(context-free)与上下文条件化(context-conditioned)的候选假设。在保留检索增强生成(Retrieval-Augmented Generation,RAG)优势的同时,该策略有效降低了由无关偏置词引发的幻觉问题

数据集和效果

Context-Biasing Training Datasets

LLM-ASR 系统在总计数百万小时的语音数据上进行训练。本文重点关注上下文偏置相关的数据设置。在完成基础 LLM-ASR 训练之后,进一步使用约 200 万条与热词和/或上下文历史相关的语句对模型进行微调,这些语句主要通过 RADA 流程生成。在训练数据构成上,包含热词/上下文的语句与不包含热词/上下文的语句按 1:8 的比例进行混合,其中非偏置数据占主导,以避免模型对上下文偏置的过度依赖。对于包含热词的语句,每条语句包含 1–10 个热词,其中约一半语句包含正确的目标热词,另一半不包含目标热词,从而在正、负热词样本之间形成 1:1 的比例平衡。

GLCLAP微调数据

在大规模通用 ASR 数据上对模型进行训练,其中文本标注通过从完整转写中随机裁剪短语的方式获得。随后,在第二阶段对 GLCLAP 检索器进行微调时,我们构建了一个面向特定领域的音频–文本数据集,规模约为 25 万对,以更好地使检索结果与偏置词所属领域对齐

热词词表(Hotword Vocabulary)

热词词表通过网络数据构建,主要覆盖医疗和媒体(影视)两个领域。在得到初始词表后,进一步采用 RADA 策略进行过滤。经过基于 RADA 的筛选,热词词表规模由约 60 万条缩减至 9.8 万条,有效降低了词表规模并提升了可用性。

评测设置(Evaluation)

构建了两个面向特定领域的测试集:MediaMedical,每个测试集包含 240 条语句,主要来源于实际系统中的错误案例(bad cases)。每条语句均由人工标注其真实偏置词,并将这些偏置词加入偏置词列表中。此外,我们还构建了一个回归测试集 General Task,包含约 5,000 条标准 ASR 语句,用于评估通用识别性能。

ASR 评测中,我们采用两项指标:(i)句级识别准确率(Sentence-level Accuracy,SACC),以及(ii)关键词错误率(Keyword Error Rate,KER)。

结果

MediaMedical 测试集上评估基于 GLCLAP 的热词检索性能。如表 1 和表 2 所示,鲁棒性感知数据增强(RADA)与模糊匹配策略均对整体性能产生了正向贡献。具体而言,原始热词词表约包含 60 万条词项,在应用 RADA 筛选后缩减至 9.8 万条。模糊匹配不仅更契合我们的评测指标,同时也更真实地反映了实际应用场景中的偏置词使用情况。此外,结果显示,随着 top-kkk 值的增大,召回率呈持续上升趋势。

将 GLCLAP 与 LLM-ASR 模型结合,并以句级识别准确率(SACC)和关键词错误率(KER)报告最终识别性能。Base 列显示了在不使用任何偏置提示(bias prompt)的情况下,经过上下文感知微调的 LLM-ASR 模型的结果。

召回率随着 top-k 的增加持续上升,但在热词测试集上的 KER 和 SACC 并未呈单调改善。这是因为较大的 top-k 会向 LLM-ASR 模型引入更多干扰候选词,从而增加识别干扰

General Task 测试集上,大多数结果略低于未使用热词的基线表现。综合两个热词测试集的结果,我们认为 top-2 是更为合适的选择。

GRPO 训练的结果表 4,引入 GRPO 可以在媒体和医疗设备上的 KER 中产生明显的性能提升。 此外,得益于GRPO中使用的基于准确性的奖励,通用任务的句子准确性也得到了显着提高。

工程与落地视角的一些启发

从工程落地的角度,这篇工作有几个特别值得实践参考的点:

  1. 不要盲信“全量热词表”:
    • 用 RADA 先筛一遍“模型已熟练掌握”的词,再做偏置,能大幅降低复杂度与干扰;
  2. 检索与解码要协同设计:
    • 仅有高召回的检索还不够,要与 LLM 的使用策略共设计,否则容易“给了武器但不会用”;
  3. RL 对 ASR 也非常有用:
    • 传统 ASR 多用 CE/CTC/Transducer 等损失,很难直接对接任务级指标;
    • 引入类似 GRPO 这样的 RL 方法,可以在“热词识别 + 句子准确”这样的组合目标上做更直接的优化;
  4. top-k 是个关键的“工程超参”:
    • k 太小,召回不足;
    • k 太大,干扰过多;
    • 最优点依赖业务场景、词表质量与 LLM 容量,需要通过系统性实验来选。

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%,且不影响语音质量

限制

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

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

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