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

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

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

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

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

限制

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

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

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

Qwen3-Omni :原生端到端的多语言全模态大模型

 Qwen3-Omni ,这是一个原生端到端的多语言全模态基础模型。它旨在处理包括文本、图像、音频和视频在内的各种输入,同时提供文本和自然语音的实时流式响应。

💜 Qwen Chat   |   🤗 Hugging Face   |   🤖 ModelScope   |   📑 Blog   |   📚 Cookbooks   |   📑 Paper  
🖥️ Hugging Face Demo   |    🖥️ ModelScope Demo   |   💬 WeChat (微信)   |   🫨 Discord   |   📑 API

主要特点:

  • 原生全模态:Qwen3-Omni是原生全模态大模型,预训练全模态不降智
  • 强大的性能:Qwen3-Omni在36项音频及音视频基准测试中斩获32项开源SOTA与22项总体SOTA超越Gemini-2.5-Pro、Seed-ASR、GPT-4o-Transcribe等闭源强模型,同时其图像和文本性能也在同尺寸模型中达到SOTA水平。
  • 多语言Qwen3-Omni支持119种文本语言交互、19种语音理解语言与10种语音生成语言
  • 更快响应Qwen3-Omni纯模型端到端音频对话延迟低至211ms,视频对话延迟低至507ms。
  • 长音频Qwen3-Omni支持长达30分钟音频理解
  • 个性化:Qwen3-Omni支持system prompt随意定制,可以修改回复风格,人设等。
  • 工具调用:Qwen3-Omni支持function call,实现与外部工具/服务的高效集成。
  • 开源通用音频Captioner开源Qwen3-Omni-30B-A3B-Captioner,低幻觉且非常详细的通用音频caption模型,填补开源社区空白。

模型架构

Qwen3-Omni采用Thinker-Talker架构:Thinker负责文本生成,Talker专注于流式语音Token生成,直接接收来自Thinker的高层语义表征。为实现超低延迟流式生成,Talker通过自回归方式预测多码本序列:在每一步解码中,MTP模块输出当前帧的残差码本,随后Code2Wav合成对应波形,实现逐帧流式生成。

  • 创新架构设计AuT:音频编码器采用基于2000万小时音频数据训练的AuT模型,具备极强的通用音频表征能力。MoE:Thinker与Talker均采用MoE架构,支持高并发与快速推理。多码本技术:Talker采用多码本自回归方案——每步生成一个编解码帧,MTP模块同步输出剩余残差码本。
  • 全模态不降智在文本预训练早期混合单模态与跨模态数据,可实现各模态混训性能相比纯单模态训练性能不下降,同时显著增强跨模态能力。
  • 卓越的语音对话与指令跟随能力Qwen3-Omni在语音识别与指令跟随任务中达到Gemini-2.5-Pro相同水平。
  • 实时音频和音视频交互AuT,Thinker, Talker + Code2wav全流程全流式,支持首帧token直接流式解码为音频输出。

Qwen3-Omni models

  • Qwen3-Omni-30B-A3B-Instruct:包含 thinker and talker ,支持音频、视频和文本输入,并可输出音频和文本。
  • Qwen3-Omni-30B-A3B-Thinking:包含 thinker ,配备思维链推理功能,支持音频、视频和文本输入,并输出文本。
  • Qwen3-Omni-30B-A3B-Captioner:基于 Qwen3-Omni-30B-A3B-Instruct 微调的下游音频细粒度字幕模型,能够为任意音频输入生成细节丰富、低幻觉的字幕。它包含thinker ,支持音频输入和文本输出。

Introduction

当前多模态的训练会出现一种模态的提升伴随着其他模态的退化,该工作探索在当前主流的基于大语言模型(LLM)的范式下实现集成式多模态训练,证明了联合多模态训练可以在所有模态上实现性能均衡,即不存在模态特异性的性能下降,同时显著增强跨模态能力。关键在于:在文本预训练的早期阶段混合单模态和跨模态数据。

关键:在文本预训练的早期阶段混合单模态和跨模态数据。预训练早期的多模态融合允许语言模型与视觉或音频共同训练,而不会导致语言能力下降;文本模态的加入显著提升了视觉和音频的性能,但从视觉或音频信号中并未观察到语言能力的显著提升;从经验来看,加入音频数据可以持续提升视觉模态在 MMMU 基准和 OCR 相关任务上的表现。

Qwen3-Omni 对 Qwen2.5-Omni的架构进行五项关键升级:

  • Thinker 与 Talker 均升级为 MoE(专家混合)结构,提升模型容量与任务适应性。 
  • 使用自研的 AuT(Audio Transformer)编码器替换Whisper编码器,该编码器在 2000 万小时的有监督音频上从零训练而成,能够提供更强的通用音频表示能力。AuT 使用分块窗口注意力(block-wise window attention),以实现实时的 prefill 缓存。
  • 在语音生成端,引入多码本表示,其更高的表达容量有助于更真实地建模多样化的音色、超语段要素以及声学现象。
  • Talker 从单轨 codec 建模升级为多轨 codec 建模,通过 MTP 模块自回归地预测多个码本层;同时波形生成阶段用轻量级卷积网络(ConvNet)替代了分块式 DiT。
  • 输入与输出音频码率均降低至 12.5 Hz,且输出 codec 支持单帧、即时的语音合成。

此外,还有四个大的改进:

  • 支持超过 40 分钟的长音频理解
  • 扩展语言覆盖范围:支持 119 种书写语言、19 种口语理解语言,以及 10 种口语生成语言;
  • Thinking 模式实现全模态推理,包括音频—视频场景与仅音频场景;
  • 流式性能进一步提升,端到端延迟最低可达 234 毫秒

最核心的是 Qwen3-Omni 在文本与视觉模态上保持了与同规模单模态 Qwen 模型一致的最先进性能,没有出现性能退化

Architecture

  • Thinker 与 Talker 均采用 Mixture-of-Experts(MoE)架构,以支持高并发与快速推理。
  • Talker 不再只使用 Thinker 的高级文本表征,而是基于音频与视觉的多模态特征进行条件建模。其设计动机如下:
    (i) 对于文本内容而言,离散 token 与其 embedding 在信息量上基本等价;
    (ii) 多模态条件对于音频–视频协调的语音生成(例如在语音翻译中保持韵律/音色)是必要的。
    此外,这种解耦使外部模块(如 RAG、函数调用、安全过滤器)能够对 Thinker 的文本输出进行干预,并在需要时通过受控预处理将文本输入给 Talker,用于流式合成
  • 由于文本表征被解耦,Thinker 和 Talker 可以使用不同的系统提示语(system prompts),从而分别控制 Thinker 的文本响应风格与 Talker 的音频生成风格。
  • Talker 采用多码本(multi-codebook)自回归方案:每一步生成一个 codec 帧,剩余的残差码本由 MTP 模块预测完成。
  • Code2Wav 以轻量级因果卷积网络(causal ConvNet)实现,简化了音频合成的最终阶段。

在训练和推理过程中,Talker 直接接收来自 Thinker 的高维多模态特征,并共享完整的对话历史。因此,整个系统作为一个整体运行,实现端到端训练与统一推理。

Audio Transformer (AuT)

Audio Transformer(AuT)是一种注意力式的 encoder–decoder 模型,如图 3 所示,在 2000 万小时的有监督音频数据上从零训练而成。训练过程中,音频的滤波器组特征(filter bank features)在进入注意力层之前,通过 Conv2D 模块进行 8 倍下采样,将 token 速率降至 12.5 Hz。为了学习更强大、更通用的音频表示,AuT 在大规模音频数据集上进行训练,涵盖语音识别与音频理解任务。具体而言,训练数据组成如下:

  • 80% 中文与英文的伪标签 ASR 数据;
  • 10% 其他语言的 ASR 数据;
  • 10% 音频理解数据

为在实时 prefill 缓存效率与离线音频任务性能之间取得平衡,AuT 使用具有动态注意力窗口大小的 flash attention,覆盖从 1 秒到 8 秒的注意力查询模式。将 AuT encoder 用作音频编码器,模型参数约为 0.6B

Perceivation (感知)

Text, Audio, Image and Video (w/o Audio).

Thinker 将文本、音频、图像与无音轨视频转换为一系列可作为输入的表征。文本基于Qwen3文本分词器,语音处理为16 kHz,并将原始波形转换为 128 维 Mel 频谱图,通过AUT编码,每一帧音频表示约对应原始音频信号的 80 ms。视频编码器基于Qwen3-VL 的视觉编码器(SigLIP2-So400m),可同时处理图像与视频输入。为了尽可能保留视频信息并与音频采样率对齐,我们采用动态帧率采样视频帧。

Video and Multimodal Position Embedding (TM-RoPE)

参考Qwen2.5-Omni,使用 时间对齐的多模态旋转位置编码(TM-RoPE),它在多模态旋转位置编码(M-RoPE)基础上加入了绝对时间信息。TM-RoPE 将传统旋转位置编码分解为三个维度:

  • 时间维(temporal)
  • 高度维(height)
  • 宽度维(width)

在原始 M-RoPE 中,时间相关性由前 16 个旋转角建模,这些角对应高频且震荡更强的模式。该设计有利于捕获局部时间变化,但会影响模型对长序列的外推能力。

为解决这一问题,我们重新分配了旋转角数量:

  • 时间维 24 个
  • 高度维 20 个
  • 宽度维 20 个

该分配在局部语义与长程依赖之间实现了更平衡的表示,从而提升整体性能。

TM-RoPE 会根据输入模态的不同进行定制化应用:

  • 文本模态:三个维度共享相同的位置 ID,使 TM-RoPE 等价于一维 RoPE。
  • 音频模态:同样共享位置 ID,并额外加入绝对时间编码,每个时间 ID 对应 80 ms。
  • 图像模态:所有视觉 token 分配相同的时间 ID,而其行列位置分别决定高度与宽度的 ID。

对于音视频输入:

  • 音频:每 80 ms 分配一个时间 ID;
  • 视频:每帧视频根据其真实时间戳分配 递增的时间 ID,动态调整以确保与音频保持 80 ms 分辨率对齐
  • 视频的高度与宽度 ID 与静态图像保持一致。

为避免多模态之间的位置冲突,所有模态的位置编号保持连续,每种模态的起始位置 ID 为前一种模态最大位置 ID 加一。该精细化的位置编码方案使模型能够有效整合并联合建模多模态信息。

相较 Qwen2.5-Omni 的关键区别:不同于 Qwen2.5-Omni 将音视频表示强制切分为固定的 2 秒块,Qwen3-Omni 直接基于绝对时间的时间 ID 对齐多模态表示。这种设计赋予模型处理任意时长流式输入的灵活性。

Speech Generation

在多轮对话的语音合成中,Talker 模块依赖于由 Thinker 组件提供的丰富上下文,该上下文包括历史文本 token多模态表示以及当前轮的流式文本。对长上下文信息的依赖至关重要,因为高保真语音合成需要根据当前对话动态调整声学属性,如韵律、响度和情感,这一原则在上下文感知生成模型中已被充分验证。

在架构上,直接在 RVQ token 上进行操作。Talker 采用层次化预测策略:骨干网络(backbone)输入当前帧的聚合码本特征,并通过线性头预测第零码本,随后多 token 预测(MTP)模块生成所有剩余码本。这一策略使模型能够学习声学细节的完整表示,从而增强语音的表现力。因此,波形重建被简化为轻量级因果卷积网络(Code2Wav),在显著降低推理延迟和计算开销(FLOPs)的同时,相比更复杂的基于 DiT 的声码器实现了更高的音频保真度。

流式与并发设计

在流式视听交互场景中,首包延迟是影响用户体验的关键因素,而模型的并发能力对于降低服务成本和提高响应速度至关重要。下面是 Qwen3-Omni 如何通过算法与架构优化提升并发性并降低首包延迟。

分块预填充与 MoE 架构。在 Qwen3-Omni 中,保留了 Qwen2.5-Omni 中的分块预填充机制,其音频和视觉编码器能够沿时间维度输出分块(chunk)。在实时交互中,ThinkerTalker 模块执行异步预填充:当 Thinker 完成当前块的预填充后,其输出的高层表示会立即异步用于预填充 Talker 的当前块,同时 Thinker 预填充下一块。这种方法显著降低了 Thinker 和 Talker 的 Time-To-First-Token (TTFT)

在架构上,Qwen3-Omni 的 Thinker 与 Talker 均采用 MoE设计,这对于提升服务吞吐量非常有效。与稠密模型相比,MoE 架构在处理长序列时显著降低了 KV 缓存带来的 IO 消耗,从而提高生成过程中的每秒 token 数(TPS)并增强并发性能。

流式多码本编解码生成:为了最小化用户接收首个生成包的等待时间,提出了仅左侧上下文的多码本生成机制。如图 2 所示,一旦 Talker 生成第一个 token,MTP 模块即可预测当前帧的剩余 token,然后由流式多码本编解码器将其解码为波形,该编解码器仅关注左侧上下文。与 Qwen2.5-Omni 需要等待 Talker 生成足够块级上下文才能合成波形不同,Qwen3-Omni 在 Talker 生成每个 token 后即可输出波形,从而显著降低首包延迟。

轻量级 MTP 模块与 ConvNet:MTP 模块和编解码器均为轻量级模块,计算 FLOPs 低,支持批处理推理,非常适合高并发场景。MTP 模块是超轻量级、固定步长的自回归稠密 Transformer,在推理硬件上对内存带宽要求低,从而天然支持高吞吐量请求的批处理。其固定步长自回归推理机制允许高效利用固定 KV 缓存空间加速,实现低延迟推理。同时,基于 ConvNet 的编解码器也能在低延迟下实现高吞吐量,因为其卷积架构在多种推理平台上均有广泛硬件加速支持,并且支持高效的批处理推理。

表 2 给出了 Qwen3-Omni 在典型计算资源下,不同并发场景下的理论首包延迟(first-packet latency)。实验在 vLLM 框架上进行,用于处理并发的视听流,同时对 MTP 模块和编解码器采用了 torch.compileCUDA Graph 加速优化。

首包延迟受到多个因素影响:

  1. Thinker 与 Talker 的模型规模会影响尾包预处理延迟(包括音频和视觉编码器的多模态数据预处理和推理)以及 Time-To-First-Token (TTPT)
  2. MTP 模块与编解码器的架构与规模会影响它们的推理延迟。

由于这些组件之间存在顺序依赖,总体首包延迟是各个延迟的累加。结果显示,Thinker 和 Talker 的 MoE 架构 能确保在高并发下,其预填充延迟和 TTPT 基本不受影响。同时,MTP 模块和编解码器的轻量化设计最小化了计算开销,对首包延迟的影响也很小。

此外,在输出首个数据包后,模型开始进行流式音频合成,由于 Talker 的 token 生成速率为 12.5 Hz,每个 token 即可合成 80 ms 的音频。因此,生成实时因子(RTF)通过以下公式计算:

实验结果表明,RTF 在不同并发水平下始终低于 1,确保用户能够持续接收流式音频响应

Pretraining

Qwen3-Omni 在一个多样化的数据集上进行预训练,该数据集涵盖多种语言和方言(如表 3 所示)以及多种模态,包括图文、视频文本、音频文本、视频音频、视频音频文本以及纯文本语料库。与 Qwen2.5-Omni 使用每个任务单一提示词不同,我们采用更丰富的自然语言提示,以增强模型的泛化能力指令遵循能力。为了在所有模态下实现稳健性能,训练策略从早期预训练阶段就整合了单模态和跨模态数据。

Qwen3-Omni 的预训练分为三个阶段:

  • 编码器对齐阶段:音频和视觉编码器在固定的 LLM 上单独训练,最初重点训练各自的 adapter,随后再训练编码器本身。不采用在冻结 LLM 的情况下联合训练编码器与 adapter 的方法,因为该方法可能导致编码器过度补偿冻结 LLM 的限制,从而降低感知能力。
  • 通用阶段:使用了一个大规模数据集,约含 2 万亿 token,其中文本:0.57 万亿、音频:0.77 万亿、图像:0.82 万亿、视频:0.05 万亿、视频-音频:0.05 万亿。在此阶段,引入更多样化的多模态数据和任务,增强了模型在听觉、视觉、文本及视听信息上的理解与交互能力。
  • 长上下文阶段:最后,将最大 token 长度从 8,192 提升至 32,768,并增加了训练数据中长音频和长视频的比例。实验结果表明,这些调整显著提升了模型对长序列数据的理解能力。

后训练

Thinker

后训练阶段包括对 Thinker 的三阶段训练,使 Qwen3-Omni 具备指令遵循能力。训练数据集采用 ChatML格式,涵盖纯文本对话、视觉模态对话、音频模态对话以及混合模态对话数据。

第一阶段:轻量化监督微调(SFT)
通过有针对性的指令优化,将预训练表示与下游任务需求进行桥接。SFT 有意偏离预训练数据结构,但保持与预训练模型的架构一致,以实现高效的知识迁移,同时保留预训练特征的完整性。

第二阶段:强对弱蒸馏(Strong-to-Weak Distillation)采用 Qwen3中描述的蒸馏流程,包括两个阶段:

  1. 离策略蒸馏(Off-policy Distillation):初期阶段,教师模型生成的输出被整合,用于响应蒸馏。这帮助轻量学生模型掌握基础推理能力,为后续的在线训练奠定基础。
  2. 在线蒸馏(On-policy Distillation):学生模型根据采样提示生成响应序列,随后进行微调,将学生预测的 logits 与教师模型(Qwen3-32B 或 Qwen3-235B-A22B)的 logits 对齐,通过最小化 KL 散度进行优化。

第三阶段:GSPO 强化,利用 GSPO全面提升模型在文本、图像、视频和音频等多模态上的能力和稳定性。针对不同模态使用两类奖励信号:

  • 规则基奖励(Rule-based Reward):用于可验证的多模态任务(如数学、编码、指令遵循),奖励信号源自预定义规则,可高精度评估模型输出的正确性,避免奖励漏洞(reward hacking)。
  • 模型基奖励(Model-based Reward):用于缺乏客观评价指标的多模态任务,采用 LLM 作为评估者(LLM-as-a-judge)协议。通用任务由 Qwen3 担任评估,视觉-语言任务由 Qwen2.5-VL 担任评估。评估过程中,LLM 可获取对应的真实答案或参考答案,以实现更稳健、可靠的评价。

Talker

Talker 采用四阶段训练,使 Qwen3-Omni 能够同时生成文本与语音响应。训练数据统一采用 ChatML 格式,确保与 Thinker 的一致性。

  1. 第一阶段:使用数亿条带多模态上下文的语音数据训练 Talker,建立从多模态表示到语音的单调映射关系。
  2. 第二阶段:进行高质量数据的持续预训练(Continual Pretraining, CPT),缓解第一阶段噪声数据导致的幻觉问题,显著提升语音生成质量。同时进行长上下文训练,增强 Talker 处理长复杂输入并生成语境适配语音的能力。
  3. 第三阶段:构建多语言语音偏好对(preference pairs),通过 直接偏好优化(Direct Preference Optimization, DPO)提升多语言语音生成的泛化能力和系统稳定性。
  4. 第四阶段:对基模型进行说话人微调(speaker fine-tuning),使 Talker 可以采用特定声音,并优化语音自然度、表现力和可控性。

Captioner

字幕生成是多模态理解的基础任务,也是大型多模态模型训练与评估的重要组成部分。然而,现有研究大多集中在视觉字幕生成,较少关注音频模态,而听觉感知是人类感知与交互的重要组成。为弥补这一空白并推动多模态感知研究,我们提出 Qwen3-Omni-30BA3B-Captioner。该模型通过在大规模音频描述数据集上微调 Qwen3-Omni-30B-A3B 得到,可为任意音频输入生成详细、低幻觉的字幕。

Evaluation

对一系列模型进行了全面评估,包括 Qwen3-Omni-30B-A3B-InstructQwen3-Omni-30B-A3B-Thinking 以及两款内部开发的变体 Qwen3-Omni-Flash-InstructQwen3-Omni-Flash-Thinking。这些 “Flash” 模型旨在提升计算效率和性能,同时引入新功能,尤其是对多方言的支持。评估结果分为两大类:理解能力(X→Text)语音生成能力(X→Speech)

X→Text 评估

Qwen3-Omni 理解各种多模态输入(文本、音频、视觉以及视听视频)并生成文本响应的能力。

文本→文本:评估通用任务、推理能力、编码能力、对齐任务、代理(Agent)以及多语言任务。

  1. 表4 :Qwen3-Omni-30B-A3B-Instruct 的性能在多个基准任务中超过 了更大的开源模型 Qwen3-235B-A22B Non-Thinking 以及强大的闭源模型 GPT-4o-0327
  2. 表5:Qwen3-Omni-30B-A3B-Thinking 的表现与 Gemini-2.5-Flash-Thinking 以及Qwen3-235B-A22B Non-Thinking 接近。
  3. Qwen3-Omni-30B-A3B 在文本任务中的表现也与其对应的纯文本模型版本保持一致,包括:Qwen3-30B-A3B-Instruct-2507Qwen3-30B-A3B-Thinking-2507

音频→文本:分为基础音频任务和高级音频任务两类。基础任务包括自动语音识别(ASR)、语音转文本(S2TT)以及音乐理解;高级任务包括语音聊天和音频推理。另外,还评估模型在各种音乐信息检索任务上的能力,如流派识别、情感与主题识别、乐器识别以及音乐关键词标注。

表 6 所示,Qwen3-Omni-Instruct 在 Librispeech、Wenetspeech、Fleurs、CommonVoice、Opencpop-test 以及 MIR-1K(vocal)等数据集上取得了英语与中文 ASR 以及歌词识别的最新最优性能(SOTA)。在多语言 ASR 和 S2TT 任务上,Qwen3-Omni 的表现同样优于或可与其他专业模型或通用模型(如 Voxtral-Small 和 Gemini-2.5-Pro)媲美。这些结果表明 Qwen3-Omni 在语音识别与语音翻译任务上具备非常强的能力。

此外,如表 7 所示,Qwen3-Omni-Thinking 在 VoiceBench 上取得了 89.5 的平均得分,超过了除 Gemini-2.5-Pro(89.6)之外的所有其他音频大模型,展现出优秀的语音交互能力。

在音频推理方面,Qwen3-Omni 同样表现突出:在 MMAU 基准上超越了强大的闭源模型 Gemini-2.5-Pro 与 Gemini-2.5-Flash,在 MMSU 上超过了 Gemini-2.5-Flash 和 GPT-4o-Audio。

表 8 中将 Qwen3-Omni-Instruct 与通用音频语言模型和专业音乐模型进行了比较。Qwen3-Omni-Instruct 在 RUL-MuchoMusic 上取得了最新最优(SOTA)表现。在 GTZAN、MTG-Jamendo 以及 MagnaTagATune 上,Qwen3-Omni-Instruct 的得分也显著超过了其他音频语言模型(包括 Gemini-2.5-Pro 和 GPT-4o-Audio),并超过了在这些数据集上测试的多种自监督音乐专业模型。

视觉→文本:通用视觉问答能力、数学与 STEM 推理能力、文档理解能力、数值推理与计数能力、动态视觉数据理解能力。将 Qwen3-Omni-InstructQwen2.5-VL-72B 以及其他表现优异的闭源视觉语言模型进行了对比。如表 9 所示,Qwen3-Omni-Instruct 的整体表现与 Qwen2.5-VL-72B 相当,并且在 数学与 STEM 相关任务(如 MMMU-Pro overall、MathVista mini、MATH-Vision full)上取得了优于 GPT-4o 和 Gemini-2.0-Flash 的成绩。

Qwen3-Omni-Thinking 与多种最先进推理模型进行了比较。
表 10 的结果显示,我们提出的模型取得了显著的性能提升。例如,在 数学与 STEM 基准 上,它比 Qwen3-Omni-Instruct 基线提升了 4.4 个点
值得注意的是,Qwen3-Omni-30B-A3B-Thinking 的性能已经可与规模更大的模型相媲美,展现了在 性能与计算效率之间的优秀平衡

然而,该模型仍存在一个限制:在 长视频任务 上表现不佳。原因:1、位置外推能力有限(positional extrapolation)2、上下文长度受限

音视频→文本:在 WorldSense 进行基准测试以及两个视听推理基准进行测试。在 通用理解任务 中,Qwen3-Omni-Instruct 在 WorldSense 基准上实现了当前最佳性能,并以显著优势超越了其他 Omni 模型。该结果表明其在基础多模态信息融合方面具有卓越能力。

X→Speech 评估

评估主要集中在给定文本条件下的语音生成,即与文本到语音(TTS)任务的相似性,评估内容包括以下三个方面:

  • 零样本语音生成:内容一致性(WER,字错误率)和说话人相似性(SIM)方面的表现
  • 多语言语音生成:评估模型在零样本条件下生成多语言语音的内容一致性与说话人相似性。
  • 跨语言语音生成:评估模型在零样本条件下进行跨语言语音生成的内容一致性。

零样本语音生成:

如表 13 所示,Qwen3-Omni 展现了 高度竞争力的性能,凸显了其通过预训练及持续预训练所获得的稳健语音理解与生成能力。此外,通过 强化学习(RL)优化,Qwen3-Omni 在语音生成的稳定性方面也取得了显著提升,并在 test-en 数据集上达到了最佳性能。

多语言语音生成:

Qwen3-Omni 支持跨 10 种语言 的语音生成。我们将其性能与 MiniMax-SpeechElevenLabs Multilingual v2 模型在多语言语音生成任务上进行了对比。

如表 14 所示,Qwen3-Omni 在 中文、英文和法语 等语言上显著超越了其他模型,并在其余语言中取得了具有竞争力的结果

跨语言语音生成评估:Qwen3-Omni 在 any-to-en(任意语言到英语)any-to-ko(任意语言到韩语) 的语音克隆任务中均优于 CosyVoice3。在 any-to-ja(任意语言到日语) 任务中,即便 未进行文本规范化,Qwen3-Omni 仍能达到与 CosyVoice3 相当的性能,而 CosyVoice3 会将所有日语字符转换为假名(kana)。

跨模态性能不退化评估

由于不同模态的异质性,每种模态都需要不同的预训练目标和优化技术,因此采用标准化的数据整合方法变得不切实际。为了确保公平而严格的评估,我们设计了一个 受控对比实验。具体方法如下:我们预训练了三个参数量匹配的模型:仅文本基线模型(text-only baseline)、仅视觉基线模型(vision-only baseline)以及多模态 “Omni” 模型。为了隔离多模态效应,所有潜在的混淆变量都得到了精确控制。具体而言,Omni 模型使用与单模态基线相同的文本和视觉语料进行训练。此外,我们在所有模型间对关键训练参数进行了对齐,包括学习率策略、批大小以及每种模态的有效训练轮数(通过调整数据采样比例进行归一化)。因此,本实验中唯一的区别在于 Omni 模型在预训练阶段加入了额外的音频和视听数据。

如表 16 所示,我们评估了涵盖多种模态的综合基准,包括:文本模态(通用任务、数学与 STEM 任务、编程任务、多语言任务)、视觉模态(大学水平问题、OCR 相关任务)以及视频模态(视频理解任务)。实验结果表明:

  1. 在文本预训练的早期阶段混合单模态与跨模态数据,可以在所有模态上实现更优性能;
  2. 联合多模态训练能够促进不同模态之间的相互增强,从而提升单模态的表现;

这充分展示了 Qwen3-Omni 在多样化评估标准下的通用性与稳健性

根据表 16 及内部实验结果,我们观察到以下规律:

  1. 预训练早期的多模态融合允许语言模型与视觉或音频共同训练,而不会导致语言能力下降;
  2. 文本模态的加入显著提升了视觉和音频的性能,但从视觉或音频信号中并未观察到语言能力的显著提升;
  3. 从经验来看,加入音频数据可以持续提升视觉模态在 MMMU 基准和 OCR 相关任务上的表现。

结论:

Qwen3-Omni 是一个里程碑:据我们所知,它首次提供了证据表明,完全整合的端到端多模态训练可以在不降低核心语言能力和其他模态表现的情况下实现。我们希望与学术社区分享这些成果,并期待能够激发更多相关研究。

未来工作中,我们计划在多个方向进一步推进模型发展,包括多说话人语音识别(multi-speaker ASR)、视频 OCR、视听主动学习,以及增强对基于代理(agent)工作流和函数调用的支持。

相关知识补充:

  1. 关于 Flash Attention原理详解
  2. deepseek技术解读(2) – MTP(Multi-Token Prediction)的前世今生
Deepseek MTP实现

Qwen3-ASR:语音识别大模型

Qwen3-ASR-Flash实现了⾼精度⾼鲁棒性的语⾳识别性能,⽀持11种语⾔和多种⼝⾳。与众不同的是,Qwen3-ASR-Flash⽀持⽤户以任意格式提供⽂本上下⽂,从⽽获得定制化的 ASR 结果,同时还⽀持歌声识别。

Qwen3-ASR-Flash 单模型支持多种语言、方言和口音的精准转录:

  • 中文:包括普通话以及四川话、闽南语、吴语、粤语等主要方言。
  • 英语:支持英式、美式及多种其他地区口音
  • 其他支持语言:法语、德语、俄语、意大利语、西班牙语、葡萄牙语、日语、韩语和阿拉伯语。

为获得定制化的ASR结果,用户可提供任意格式的背景文本来获得倾向性ASR结果,Qwen3-ASR-Flash无需对上下文信息进行格式预处理。

支持的格式包括但不限于:

  • 简单的关键词或热词列表。
  • 任意长度和来源的完整段落或整篇文档。
  • 以任意格式混合的关键词列表与全文段落。
  • 无关甚至无意义的文本(模型对无关上下文的负面影响具有高度鲁棒性)。

 性能表现:

核心特性:

  • 领先的识别准确率:Qwen3-ASR-Flash在多个中英文,多语种benchmark测试中表现最优。
  • 惊艳的歌声识别能力:支持歌唱识别,包括清唱与带bgm的整歌识别,实测错误率低于8%。
  • 定制化识别:用户可以以任意格式(如词汇表、段落或完整文档)提供背景文本,模型能智能利用该上下文识别并匹配命名实体和其他关键术语,输出定制化的识别结果。
  • 语种识别与非人声拒识:模型能精确分辨语音的语种,自动过滤非语音片段包括静音和背景噪声
  • 鲁棒性:面对长难句、句中语言切换和重复词语等困难文本模式,以及在复杂的声学环境中,模型仍能保持高准确率

MOSS-TTSD 中英双语口语对话合成模型

当前的文本到语音(TTS)模型在单句或孤立段落的语音生成效果上取得了令人瞩目的进展,合成语音的自然度、清晰度和表现力都已显著提升,甚至接近真人水平。不过,由于缺乏整体的对话情境,这些 TTS 模型仍然无法合成高质量的对话语音。

MOSS-TTSD 是一个口语对话语音生成模型,实现了中英双语的高表现力对话语音生成,支持零样本多说话人音色克隆,声音事件控制以及长语音生成。与传统 TTS 模型只能生成单句语音不同,MOSS-TTSD 能够根据完整的多人对话文本,直接生成高质量对话语音,并准确捕捉对话中的韵律变化和语调特性,实现超高拟人度的逼真对话语音合成。

亮点

  • 高表现力对话语音:基于统一语义-声学神经音频Codec、预训练大语言模型、百万小时TTS数据与约40万小时的真实/合成对话语音数据,MOSS-TTSD能够生成高表现力,高自然度,具有自然对话韵律的拟人对话语音。
  • 双说话人零样本声音克隆:MOSS-TTSD支持零样本双说话人克隆,按脚本精确进行角色/声线切换。只需要提供10到20秒的参考音频片段。
  • 中英双语:MOSS-TTSD支持中英两种语言的高表现力语音生成。
  • 长音频生成:得益于低码率Codec与训练框架优化,MOSS-TTSD在长音频生成场景进行了大量训练(训练最大长度达到960s),能够单次生成超长音频。

模型概览

1 模型结构概览:基于Qwen3-1.7B-base模型进行训练,使用八层RVQ码本进行语音离散化,使用自回归加Delay Pattern进行语音token生成,最后使用Tokenizer的解码器将语音token还原为语音。

MOSS-TTSD 使用完全离散化的方式进行语音生成。我们训练了一个8层 RVQ 的音频 Codec:XY-Tokenizer,来对原始音频进行量化。 XY-Tokenizer 能够同时编码语音的语义和声学信息,并具有较低的比特率(1kbps),这使得LLM能够有效地学习音频序列并建模细节声学特征。 在序列建模方面,受到 MusicGen 和 VOICECRAFT的启发,我们使用自回归建模加多头 Delay 的方式进行语音 token 生成

语音离散化: XY-Tokenizer

为了统一建模语音的语义和声学信息,并实现低比特率,我们构建了 XY-Tokenizer,它使用了双路 Whisper Encoder 进行语音编码,8层 RVQ 量化,两阶段多任务学习的方式进行训练。实现了 1kbps 的比特率和 12.5Hz 的帧率[1024码本大小]。

XY-Tokenizer 采用了两阶段多任务学习的方式进行训练。第一阶段(上半部分)训练ASR任务和重建任务,让编码器在编码语义信息的同时保留粗粒度的声学信息。第二阶段(下半部分)我们固定住编码器和量化层部分,只训练解码器部分。通过重建损失和 GAN 损失,利用生成式模型的能力补充细粒度声学信息。

我们扩展了Codec训练的数据量,使用了10万小时带有转录文本的语音数据进行训练。下表对比了在LibriSpeech测试集上不同 Codec 在语义和声学性能上的表现。WER为ASR任务中的词错误率,WER越低表示语音 token 的语义信息与文本对齐程度更好。粗体为低比特率 Codec 组中的最优或次优性能。

XY-Tokenizer 是在1kbps,12.5Hz的帧率下同时建模语义和声学信息性能最好的 Codec ,在语义和声学指标上都取得了最优或次优的结果。

为了更好地编码和重建复杂的对话音频,我们扩展了50万小时无转录音频数据进行增强训练,扩展 Codec 对于复杂音频和场景的处理能力。

益于Codec的超低比特率,我们模型的训练长度最长达到了960s的音频,这使得我们的模型可以一次性地生成超长的语音,避免了拼接语音片段之间的不自然过渡。

数据工程

TTS 模型的性能与训练数据的质量和数量有着密切的关系,为了规模化高质量 TTS 数据和 TTSD 数据,我们设计了高效的数据处理流水线,可以从海量原始音频中准确筛选出单人语音和多人对话语音并进行标注。

对于原始音频,我们首先使用内部的说话人分离模型进行语音分段和说话人标注。 基于预训练基模,我们的说话人分离模型性能已经优于开源说话人分离模型 pyannote-speaker-diarization-3.1 及其商用版本 pyannoteAI 。

说话人分离模型在不同数据集上的 DER(Diarization Error Rate) 结果(越低越好),我们的模型在四个测试集上都取得了最优性能

我们使用 DNSMOS 分数来作为语音质量的评估标准,我们假设 DNSMOS 分数高的语音大概率不包含背景噪声。 为了保证语音的质量和较少的噪声,我们只保留 DNSMOS >=2.8的语音片段。 对于高质量的音频片段,我们直接对语音进行转录,作为 TTS 训练数据。 此外,我们设计了一套规则来将 Diarization 分离的语音片段组合成双人对话的片段用作 TTSD 训练,这样得到的对话片段我们称之为粗粒度对话片段。 虽然说话人分离模型能够较准确地分离说话人,但是我们发现它对一些较短的 Backchannel 不是特别敏感,存在漏分离的情况。 此外,当前的 ASR 模型无法准确地转录对话中重叠的语音。 因此,受 Parakeet[4] 的启发,我们训练了中文版的 Whisper-d 模型来对中文数据进行细粒度说话人标注和文本转录。对于英文数据我们直接使用 Parakeet 的开源 Whisper-d。 最终,我们使用说话人分离模型的粗粒度标签和 Whipser-d 模型的细粒度标签来将短对话片段组成长对话片段。

TTS 预训练

TTS 预训练模型在 Seed-tts-eval 测试集上的词错误率对比(越低越好),加粗的结果代表最优和次优的性能; WER(Norm) 表示我们针对 ASR 的同义结果做了规则修正,减少了 ASR 模型错误导致的误判; CER(Norm) 表示我们将中文文本转为拼音后再计算词错误率,即 PER 指标,我们认为这是更加合理的方式; SparkTTS 和 Cosyvoice2 的结果为我们本地使用官方推理代码重新测试的结果;

我们使用了110万小时的中英文 TTS 数据对模型进行了预训练,大规模的 TTS 预训练可以显著增强 TTSD 模型的语音韵律和表现力,并提升模型泛化能力。 我们使用了 Seed-tts-eval评测了 TTS 预训练模型的性能,取得了和当前顶尖闭源模型 Seed-TTS 相当的性能。 经过 TTS 预训练后的模型已经有了较强的语音生成能力和零样本音色克隆能力。

TTSD 后训练

最终,我们收集了10万小时中文对话数据和27万小时英文对话数据。 此外,为了增强模型的说话人切换准确率,我们合成了4万小时中文对话数据和4万小时英文对话数据。 为了增强模型对于中文标点符号的感知能力,我们使用 Gemini 对部分数据(约7万小时)中的转录文本进行了修正。

在训练阶段,我们基于 TTS 预训练的检查点,使用 WSD Scheduler 进行训练,我们没有针对 Decay 阶段做特殊的数据规划。 此外,我们发现无法通过验证集挑选表现最好的检查点,因此我们通过人工评估的方式挑选了主观表现最好的检查点。

DeSTA2.5-Audio 保留大模型推理能力

核心:通过设计模型自我生成数据的方法,仅使用少量数据就能跨模态对齐,同时实现鲁棒、泛化强、无需任务调参的通用音语大模型。 实现对音频输入的有效适应的同时,保留其指令跟随能力。 适用于没有大量的训练数据的情况!!!

论文标题:DeSTA2.5-Audio: Toward General-Purpose Large Audio Language Model with Self-Generated Cross-Modal Alignment

当前主流音频语言模型虽可执行听觉感知与指令遵循任务,但往往依赖人工构建或跨模型生成的数据集,导致模型出现灾难性遗忘(Catastrophic Forgetting)现象,语言能力退化明显。本论文从根本出发,重新审视数据构建流程,提出「模型自我生成训练目标」机制保留 LLM 的语言能力,同时实现精准的跨模态对齐,从而训练出鲁棒、泛化强、无需任务调参的通用音语大模型。

论文的主要研究成果与创新点:自生成跨模态对齐策略 DeSTA: 由 LLM 自行生成训练标签,确保风格与输出一致性,克服灾难性遗忘,提升跨模态迁移鲁棒性;大规模通用数据集 DeSTA-AQA5M: 覆盖语音、环境声、音乐三大领域,含 500 万组音频-指令-响应数据,源自 50 个公开数据集,总计约 7000 小时;强大的泛化性能: DeSTA2.5-Audio 在多个标准测试集(Dynamic-SUPERB、MMAU、SAKURA、Speech-IFEval、VoiceBench)上展示优异的性能。 

首篇系统提出“自生成音频文本对齐”策略并应用于 LALM 训练的研究;无需人工调教或额外任务调参,模型即能在多个语音理解、情绪识别、环境声分析等任务中展现 SOTA 表现;重要对比发现: 明确指出模型训练过程中数据来源与模型分布不一致将大幅损害性能,即使采用更强大的 LLM 生成数据亦无法弥补,凸显「数据生成一致性」为构建通用 LALM 的关键。以少胜多,仅用 7000 小时音频达成超过使用 51 万小时数据的模型效果,堪称“大模型训练范式创新”典范。

当训练数据与模型原有生成分布不一致时,模型容易遗忘其原有的语言理解与生成能力,这种现象在 LLM 融入新模态时尤为突出。

原因: 该方法本质上是利用encoder+Qformer学习语音中的元数据信息,采用同一个LLM为了保证输出分布一致性,这样只要encoder+Qformer学习到了语音中的元数据信息(对齐语音-文本),那么最后模型的输出就跟LLM的输出一致。如果构造数据的LLM跟训练的LLM不一致,那么不仅仅需要对齐语音和文本,还需要重新学习文本LLM的输出分布,那么就需要放开LLM的权重进行训练,会影响模型本身的文本能力,会逐渐扭曲大模型原本的输出分布或指令跟随能力,最终损害其基于文本的知识!!!

图 2. (左)数据集构建:将音频描述 xtext和随机采样的提示 p输入到基础大模型中,以生成训练目标 y。
(右)模型训练:融合模型使用自生成的目标 y 以及相应的音频输入 xaudio 和提示 p进行训练。火焰和雪花图标分别表示可训练模块和冻结模块。音频解码器为可选组件。

DeSTA2,一种自生成的跨模态对齐框架,通过让基础语言模型生成其自身的训练目标,从而缓解监督信号冲突。具体来说,我们将每个音频片段的元数据转换为结构化的文本描述,并与任意提示词配对;随后,大语言模型生成相应的响应,作为跨模态对齐的训练目标。这种自生成监督确保了风格和语义与大模型原生输出分布保持一致,从而在实现对音频输入的有效适应的同时,保留其指令跟随能力。

自生成数据集构建

Step1:收集多样化的音频数据集,这些数据集包含丰富的元数据信息。将每段音频的元数据转换为结构化的文本格式。

  • 例:语音片段 → "[00:00-00:05] Hello world (Gender:Female, Emotion:Happy...)"
  • 例:音频描述片段 → "[00:00-00:10] (A dog barking)"

Step 2:构建初始配对数据集

  • 形成初始数据集 Dinitial={(xaudio,xtext)},其中每条音频xaudio​ 与其对应的文本描述 xtext​ 对齐。

Step 3:采样提示词

  • 从预定义的指令池P 中随机采样一个提示词 p
  • 指令池包含多样化的提示类型:
    • 描述类任务(如 “Describe the audio”)
    • 角色扮演类任务(如 “Respond to the audio based on its expression”)
    • 开放式问题(如 “Where is the audio being recorded?”)

Step 4:生成训练目标

  • 将文本描述 xtext​ 与提示词 p 输入到大语言模型。
  • 模型输出响应 y=LLM(xtext,p)

Step 5:形成最终训练数据集

  • 构建最终的数据集D=(xaudio​ , xtext ​, p , y)
  • 每条样本包含:音频输入、对应文本描述、提示词、以及大模型生成的响应。

该方法的一个关键优势在于,它能够保留大语言模型对输入的原生理解与响应方式,从而保证训练数据在风格与语义上的一致性。举例来说,我们观察到经过指令调优的 Llama3.1往往会生成带有解释性的回答,使用项目符号组织内容,并且常常在正文前包含问候语。这些特定于模型的风格模式会自然地体现在生成的数据中。因此,虽然该构建流程可兼容任意文本类大模型,但在跨模态对齐任务中,采用相同模型(即自生成方式)是最合理的设计。

模型训练

采用 Llama3.1-8B-Instruct 和 Whisper-large-v3,六层 Q-former 【 64 个查询】架构。

预训练的音频模型与经过指令调优的大语言模型(LLM)进行融合。为了实现音频与语言模态之间的桥接,我们在二者之间引入了由 Q-Former 块 构成的模态适配器。

音频模型与 LLM 参数均被冻结,仅对模态适配器进行微调,以学习稳健的音频–文本对齐表征。融合模型在三元组形式(xaudio​,p,y) 上进行训练。

输入音频xaudio​ 可选地通过音频解码器转录为文本序列 t∈RL,其中 L 为序列长度。该转录结果进一步输入 LLM 的词嵌入层,用于增强语言对齐。

  • 优化器:Adam
  • 学习率调度:余弦退火(cosine annealing),包含 2000 步预热
  • 训练轮数:5 epoch
  • 硬件配置:8 张 NVIDIA A100-80GB GPU
  • 全局 batch size:96
  • 初始学习率:1e-4
  • 总训练步数:约 250,000 steps

Dataset

元数据包括副语言特征(例如音高、响度、语速、韵律、音色、情绪基调和说话风格)、说话者身份属性(例如口音、性别和年龄)、音频质量指标(例如背景噪音水平、混响以及伪造或合成音频)以及环境或情境声音(例如动物叫声、人类动作、环境声音、乐器、音乐类型和自然环境)。

数据集总计约 7,000 小时音频:5,400 小时语音、1,000 小时环境声音和 500 小时音乐。

关于指令池,为语音类别挑选了 4,000 个提示,为环境声音和音乐类别挑选了 3,000 个提示。

响应均使用 vLLM 工具包 生成,解码参数设定为 temperature = 0.05top-p = 1.0。通过这一过程,我们构建了一个规模约 500 万条音频–提示–响应三元组 的大规模数据集,命名为 DeSTA-AQA5M,并将其作为 DeSTA2.5-Audio 的训练语料。

实验结果

模型在多个基准测试中的排名呈现出一致的趋势。值得注意的是,DeSTA2.5-Audio 始终展现出卓越的性能,凭借在各种音频语言任务中强大的泛化能力,成为表现最佳的模型。它在 Dynamic-SUPERB Phase-1(69.53)、MMAU(57.50)、SAKURA-Multi(69.85)和 Speech-IFEval(93.89)上均取得了最高分,彰显了其在多个领域和条件下的稳健性和泛化能力。

消融实验:【核心】

 (PPL)困惑度越低,表明模型对训练目标越熟悉,分布差异就越小。

如表三所示,自生成的训练数据始终表现出较低的困惑度,这表明生成的响应与主干 LLM 的分布很好地一致。比较 Llama3.1 (A1) 和 Qwen2.5 (A2),Qwen2.5 在所有基准测试中始终优于 Llama3.1。这种性能差距可能归因于 Qwen2.5 更强大的文本生成能力。虽然 Qwen2.5 在基本内容理解任务中的表现与 Llama3.1 相对相当,但它在其他领域表现更佳,例如 Dynamic-SUPERB Phase-1 中的说话人分类,以及 MMAU 中的环境声音和音乐理解。先前对基于文本的基准测试的评估也表明,与 Llama3.1 相比,Qwen2.5 表现出更出色的推理和数学能力 。然而,目前尚无确凿证据表明在听觉感知方面有相应的优势,这值得进一步研究。尽管如此,在相同的训练条件下,我们的实验结果表明 Qwen2.5 作为主干 LLM 比 Llama3.1 更有效。这些发现也表明我们的训练框架在不同 LLM 上具有良好的泛化能力。

提示多样性对模型性能也起着重要作用,尤其是在 A1 和 A3 的比较中。在 A3 中,我们采用了使用单个描述性提示 (1-p) 的自生成设置,已经展示了强大的零样本泛化能力。通过简单地增加提示多样性(就像在 A1 中所做的那样),进一步丰富了训练目标并提高了训练方法的整体有效性。值得注意的是,这些结果是在不需要任何特定于任务的指令对的情况下实现的。这凸显了自生成设计的优势。即使数据构建完全依赖于随机抽样的提示,该模型仍然可以利用 LLM 的固有功能实现零样本生成。

比较自生成和跨模型设置时,跨模型设置中的训练目标会导致更高的困惑度,这表明主干 LLM 对数据分布的熟悉程度较低。例如,虽然在 Qwen2.5 生成的数据 (A2) 上训练 Qwen2.5 会产生很好的结果,但在 Qwen2.5 生成的数据 (B1) 上训练 Llama3.1 会导致模型退化,输出包含重复或无意义的标记。同样,在 Gemma3-12B (B2) 生成的数据上训练 Llama3.1 也无法达到在自生成设置 (A1) 中观察到的性能。这些结果支持了我们的分布不匹配假设,并强调了使用自生成配置的重要性,即使在注释器 LLM 功能更强大的情况下也是如此。我们还探索了使用 Llama3.1-70B 生成训练数据 (B3),它代表了同一系列中更强大的模型。在这种情况下,较低的困惑度 (2.20) 表明训练数据与 Llama3.1 的分布更加一致。然而,与 A1 相比,B3 在 Dynamic-SUPERB 和 SAKURA 上取得了更好的表现,但在 MMAU 和 Speech-IFEval 上表现不佳。这表明使用更强大的模型并不一定能在所有任务上带来一致的改进。

在 LoRA 适配器设置中,我们向骨干 LLM 引入了可训练参数,预计这将提升模型容量并有助于缓解分布不匹配问题。在自生成设置 (C1) 中,数据集与骨干 LLM 高度对齐,我们发现添加 LoRA 层可获得相似或略微提升的性能。这表明,在自生成设置下,加入 LoRA 适配器并不能带来显著的优势。换句话说,在使用我们提出的训练框架时,微调轻量级模态适配器足以实现跨模态对齐,其中模型专注于学习听觉概念,而不会受到风格或分布不匹配的影响。有趣的是,当使用 Qwen2.5 生成的数据 (C2) 进行训练时,在 Dynamic-SUPERB、MMAU 和 SAKURA-Single 等音频处理基准测试中的表现与自生成设置 (A2) 相当。然而,它们在 SAKURA-Multi 和 Speech-IFEval 中的表现显著下降,这需要额外的文本知识和指令遵循能力。这一差异表明,虽然添加 LoRA 适配器有助于缓解分布不匹配问题,并在领域内任务中取得良好表现,但在需要 LLM 预训练知识的基准测试中,它仍可能降低模型的通用能力。这揭示了当前 LALM 训练策略的一个关键设计缺陷。LTU-AS 和 SALMONN 等模型试图通过在 LLM 中引入 LoRA 适配器层来解决灾难性遗忘问题。 然而,我们的实验结果表明,减少训练数据和模型分布之间的差异对于保持泛化能力是比单纯的架构修改更为关键的因素。

在 5 个 epoch 的设置下,我们研究了训练时长对模型性能的影响。5 个 epoch 的结果(D1 和 D2)表明,即时多样性不仅提升了有效性,也提高了训练效率。尽管训练次数仅为 epoch 的一半,但这些模型的性能与 10 个 epoch 的模型(A1)相当。值得注意的是,虽然 D2 随着训练时间的延长而持续改进(与 A3 类似),但收敛速度较慢,最终性能仍然较差,这表明多样化的训练目标对于实现更好的对齐效果也至关重要。相比之下,尽管 D3 仅用 5 个 epoch 就取得了不俗的性能,但 B1 表明在分布不匹配的情况下延长训练会导致模型退化。这些发现强调了我们的主要动机:有效的跨模态对齐需要反复训练以在不同 epoch 之间对齐音频表征。当训练数据与骨干模型匹配时,性能会稳步提升,而不会降低模型固有的语言能力。相反,从不匹配的数据中学习会给模型带来更重的负担,最终导致性能不佳并忘记其预先训练的语言能力。

Higgs Audio V2-语音大模型

Higgs Audio V2模型,不仅能处理文本,还能同时理解并生成语音。除了一些常规语音任务外,这个模型还具备一些较为罕见的能力,比如生成多种语言的自然多说话人对话、旁白过程中的自动韵律调整、使用克隆声音进行旋律哼唱以及同时生成语音和背景音乐。

整个过程堪称“大力出奇迹”,直接将1000万小时的语音数据整合到LLM的文本训练,

Higgs Audio v2 采用上图架构图中所示的“generation variant”。其强劲的性能源于三项关键技术创新:

  • 开发了一套自动化注释流程,该流程充分利用了多个 ASR 模型、声音事件分类模型以及我们内部的音频理解模型借助该流程,我们清理并注释了 1000 万小时的音频数据,并将其命名为 AudioVerse 。该内部理解模型在 Higgs Audio v1 Understanding 的基础上进行了微调,并采用了架构图中所示的“理解变体”。
  • 从零开始训练了一个统一的音频分词器,它可以同时捕捉语义和声学特征。
  • 提出了 DualFFN 架构,它增强了 LLM 以最小计算开销建模声学 token 的能力。

Higgs Audio V2 在音频 AI 能力上实现了重大飞跃:

  • 多说话人对话自然流畅:多说话人对话往往难以处理,尤其是在角色无法匹配彼此的情绪和语气时。而借助 Higgs Audio V2,这种对话轻松自然,仿佛现场交流,充满生命力。
  • 支持长音频生成:生成长音频时需要保持声音的一致性,同时兼顾真实感、吸引力和生动性。Higgs Audio 提供条件控制与提示机制,使长音频表现出色。
  • 高保真音质:为了在高品质扬声器和耳机上实现逼真音效,V2 将音频处理管线从 16kHz 升级至 24kHz,带来更佳音质。
  • 高效推理,资源友好:无论是个人项目还是商用部署,推理效率都很重要。我们最小的模型可以在 Jetson Orin Nano 上运行;最新的 3B Audio Generation V2 模型则至少需要 RTX 4090 才能高效推理。
  • 生成真实、有情感的语音表现领先:在 EmergentTTS-Eval 基准测试中,其胜率超过 75%,超越 ChatGPT 4o。
  • 开源:模型开源。
  • 训练数据超千万小时:为实现更高音质与更逼真的语音效果,模型在超过1000万小时的音频上训练,并依托精细的处理与标注流程自动生成训练数据

模型原理:

传统的语音和文本模型之间相互独立,李沐老师就想,欸,能不能将两者结合起来,直接让LLM用语音进行沟通。那么首先就要知道文本语言模型的本质是用给定的一段指令去生成预测结果,就是将任务先拆解为系统指令(system)用户输入(user)模型回复(assistant)三个部分。system告诉模型,需要做什么事情,例如回答该问题、写一段文字或者其他,user就是告知事情的详细内容,例如问题具体是什么、文字要什么风格。

所以如果要让模型支持语音,就需要为模型增加一个系统命令,在user里输入要转录为语音的文字,让模型从system里输出对应语音数据。这样语音任务就能转换成相同的处理格式,直接打通语音和文本之间的映射,通过追加更多的数据和算力,直接scaling law“大力出奇迹”。

音频分词器:

这就引出了新的问题,语音信号本质是连续的,要如何才能在离散的文本token中表示呢?

现有的方法是将一秒的语音信号裁切成多段(如100毫秒一段),为每一段匹配最相似的预定义模板(如45个模板),然后将其表示为长度为10的编号序列,也就是一个个token。

但这样做,虽然可以将一小时的音频从60兆压缩到0.16兆,但质量相当糟糕,所以需要优先保留语音的语义信息而声学信号只保留少量部分,后续再通过其他手段还原

于是他们训练了一个统一的离散化音频分词器,以每秒25帧 [40ms/帧] 的速度运行,同时保持甚至提高音频质量,以捕获语义和声学特征。

新的离散化音频分词器运行速度仅为每秒25帧,同时在音质上保持甚至优于码率翻倍的分词器。该模型是首个在 24 kHz 数据上训练的统一系统覆盖语音、音乐与声音事件。同时,该模型采用简单的非扩散式编码器/解码器,实现快速批量推理

解析模块

  • 语义教师模型 (Semantic Teacher): 生成语义表示 S,用于指导语义编码器提取语义信息;
  • 语义编码器 (Semantic Encoder): 接收语义表示 S,提取语义特征 hS ;
  • 声学编码器 (Acoustic Encoder): 直接从输入音频 X 中提取声学特征 hA ;
  • 特征组合 (Concatenation): 将语义特征 hS 和声学特征 hA 进行特征组合,形成联合特征表示;
  • Dense 层: 对联合特征进行非线性变换,生成预量化特征 hpre ;
  • 残差向量量化 (RVQ): 对预量化特征进行hpre 量化,生成量化后的特征 hpost,并产生多个量化码本 Q1,Q2,…,Qm ;
  • Dense 层: 对量化后的特征进行非线性变换hpost,生成用于解码的特征表示;

解码过程:

  1. 语义解码器 (Semantic Decoder): 使用处理后的量化特征重建语义表示 S^ ;
  2. 声学解码器 (Acoustic Decoder): 使用处理后的量化特征重建音频信号 X^ ;

具体流程:

  1. 特征提取: 原始音频 X 输入后,通过语义教师模型生成语义表示 S,然后通过语义编码器和声学编码器分别提取语义特征和声学特征;
  2. 特征组合与量化: 提取的语义和声学特征进行组合,经过非线性变换后进行残差向量量化,得到量化后的特征表示;
  3. 解码与重建: 量化后的特征分别输入语义解码器和声学解码器,重建语义表示 S^ 和音频信号 X^ ;
  4. 损失计算与优化: 通过计算语义损失和声学损失,优化模型的参数,使重建的语义和音频尽可能接近原始输入;

音频分词器性能:

整体架构

HiggsAudio-V2 模型基于大型语言模型(LLM),并集成了音频适配器(Audio Adapter)和音频解码器(Audio Decoder),用于处理音频输入和输出。

模型基于 Llama-3.2-3B 构建。为了增强模型处理音频 token 的能力,引入了“DualFFN”架构作为音频 adapter。DualFFN 充当音频专家,以最小的计算开销提升 LLM 的性能。通过引入 DualFFN,我们的实现保留了原始 LLM 91% 的训练速度。

组件组成

  • Text Branch(浅蓝色):处理文本输入。
  • Understanding Variant(浅蓝色):用于理解文本和音频输入。
  • Generation Variant(黄色):用于生成文本和音频输出。
  • Audio Adapter – Dual FFN(虚线框):专门设计用于处理音频令牌的模块,包含两个前馈网络(FFN)和多头自注意力(MHA)模块。

文本输入

  • 文本输入通过 Text Tokenizer 转换为文本令牌(Text Token)。
  • 文本令牌通过 Text Branch 进行处理。

音频输入

  • 音频输入通过 Audio Tokenizer 转换为音频令牌(Audio Token)。
  • 音频令牌通过 Understanding Variant 进行处理。
  • 音频输入还通过 Semantic Encoder 提取语义信息。

文本和音频融合

  • 文本和音频令牌在 LLM 中进行融合处理。
  • Understanding Variant 和 Generation Variant 分别负责理解和生成任务。

音频适配器(Dual FFN)

  • Audio Adapter 包含两个并行的前馈网络(FFN),分别处理文本和音频特征。
  • 每个 FFN 之后都有一个归一化层(Norm)。
  • 处理后的特征通过多头自注意力(MHA)模块进行进一步处理。
  • 最终,处理后的文本和音频特征在音频适配器中融合。

为了提升模型处理音频令牌的能力,HiggsAudio-V2 引入了 “DualFFN” 架构作为音频适配器。DualFFN 作为音频专家模块,可以显著提升模型在音频任务上的性能,同时保持较低的计算开销。具体来说,DualFFN 在音频令牌处理过程中提供了额外的处理能力,使模型能够更有效地理解和生成音频数据。

延迟模式(Delay Pattern)

由于音频令牌化过程中涉及多个代码本,HiggsAudio-V2 采用了延迟模式(delay pattern)来实现跨代码本的并行代码生成。该模式通过在不同代码本之间引入偏移量,使得模型能够在保持音频质量的同时支持流式处理。延迟模式允许模型在生成音频时,同时处理多个代码本中的令牌,从而提高了生成效率。

然后要让模型很好地理解和生成声音,就需要利用模型的文本空间,将语音的语义尽量地映射回文本,当中需要大量的数据支持。

由于版权问题,沐导没有使用B站或YouTube这类公开视频网站数据,而是购买或从允许抓取的网站获取。这样得到的数据质量参差不齐,需要删除其中的90%才能满足1000万小时的训练数据需求。

其次,将语音对话表示为相应的system(场景描述、声学特征、人物特征等)、user(对话文本)、assistant(对应音频输出)的形式。由于OpenAI和谷歌一向禁止使用他们的模型输出再训练,且训练成本过高,为了实现这种标注,他们利用相同的模型架构额外训练出一个语音模型AudioVerse

该模型接收用户语音输入,分析并输出场景、人物、情绪、内容等信息,再将输出反过来作为生成模型的system提示和user输入,实现模型的共同进步。

举个例子就是,如果想要教一个徒弟同时会拳脚功夫,但师傅一次又教不了,那就同时教两个徒弟,一个学打拳,一个学踢腿,然后让他们俩天天互相打,打着打着两个就都会拳脚功夫了。

最终,这个多模态模型就完成了,不仅可以完成简单的文本转语音,还能实现更复杂的任务,比如让它写一首歌并唱出来,再加上配乐。

还能根据语音分析场景、人物(性别、年龄、情绪状态)、环境音(室内外),并进行复杂的理解和推理。

在实时语音聊天上,还可实现低延迟、理解情绪并表达情绪的自然语音交互,而不仅仅是机械的问答。

EmergentTTS-Eval基准上,相较于其他模型,性能可以说是遥遥领先,尤其是在“情绪”和“问题”类别中,相比GPT-4o-mini-tts高出了75.7%和55.7%的胜率。

此外,它在Seed-TTS Eval和情感语音数据集 (ESD) 等传统TTS基准测试中也取得了最佳性能。

Evaluation:

Seed-TTS Eval & ESD

我们使用参考文本、参考音频和目标文本对 Higgs Audio v2 进行零样本语音合成(TTS)测试。评估采用 Seed-TTS Eval 和 ESD 中的标准评估指标。【SIM 指标一般是指 Speaker Similarity

EmergentTTS-Eval (“Emotions” and “Questions”):根据 EmergentTTS-Eval 论文,我们报告了在使用 “alloy” 音色时,相较于 “gpt-4o-mini-tts” 的胜率。评判模型为 Gemini 2.5 Pro。

多说话人评估:我们还设计了一个多说话人评估基准,用于评估 Higgs Audio v2 在多说话人对话生成方面的能力。该基准集包含三个子集:

  • two-speaker-conversation:包含1000条双人合成对话。我们固定两段参考音频,用以评估模型在双人语音克隆方面的能力,对话轮数在4到10轮之间,角色随机选择。
  • small talk(无参考音频):包含250条合成对话,生成方式与上类似,但特点是发言简短、轮数较少(4–6轮)。本集合未提供参考音频,旨在评估模型自动为角色分配合适声音的能力。
  • small talk(有参考音频):同样包含250条合成对话,发言更短。该集合在上下文中包含参考音频片段,类似于 two-speaker-conversation,用于评估基于参考音频的表现。

我们在这三个子集上报告了词错误率(WER)和说话人内相似度与说话人间差异度的几何平均值。除 Higgs Audio v2 外,我们还评估了 MoonCast 和 nari-labs/Dia-1.6B-0626 这两个当前最受欢迎、支持多说话人对话生成的开源模型。结果总结在下表中。由于 nari-labs/Dia-1.6B-0626 对话语长度及输出音频的严格限制,我们未能在 “two-speaker-conversation” 子集上运行该模型。

Seed LiveInterpret 2.0 端到端同声传译大模型

!!!总结:必须认识到数据在模型训练的重要性。模型经过数十万小时语音数据的训练,数据质量中的任何瑕疵都可能在最终效果中被显著放大,这些潜在问题包括口音差异、准确读音、时间戳的准确预测,以及句子衔接的流畅度等关键要素。良好的性能正是建立在海量优质训练数据之上。

Seed LiveInterpret 2.0 是首个延迟&准确率接近人类水平的产品级中英语音同传系统,在中英同传翻译质量达到业界 SOTA 的同时,实现了极低的语音延迟水平。

它基于全双工端到端语音生成理解框架,支持中英互译,可实时处理多人语音输入,像人类同传译员一样以极低的延迟 “边听边说”,一边接收源语言语音输入,一边直接输出目标语言的翻译语音。同时,Seed LiveInterpret 2.0 还支持 0 样本声音复刻,让沟通更加流畅自然。

  • 接近真人同传的翻译准确率 精准的语音理解能力保障了翻译准确度,在多人会议等复杂场景中英双向翻译准确率超 70%,单人演讲翻译准确率超 80%,接近真人专业同传水平。
  • 极低延迟的 “边听边说” 能力 采用全双工语音理解生成框架,翻译延迟可低至 2-3 秒,较传统机器同传系统降低超 60%,实现了真正的 “边听边说” 翻译。
  • 零样本声音复刻,音色真实自然 只需采样实时语音信号,便能提取声音特征,用说话人的音色特质实时 “说出” 外语,提升交流的沉浸感和亲和力。
  • 智能平衡翻译质量、延迟和语音输出节奏 可根据语音清晰度、流畅度、复杂程度,调整输出节奏,并适配不同语言特性。面对超长信息,依然能保证传译语音节奏的自然流畅。
同声传译系统评估:左右两图比较了人工评估的翻译质量分数和响应效率  对于语音转文本 (S2T) 和语音转语音 (S2S) 模式,响应效率是相对于人工翻译延迟来衡量的。人工评估准确度反映了翻译输出对说话者原始意图的忠实程度

框架:

系统会克隆每位说话者的声音,并以相应的语调将其翻译为另一种语言
全双工流式端到端模型架构: Hibiki ,模型架构和数据相关可参考该论文

提出一种端到端的语音到语音同步翻译模型,在一个统一框架内无缝整合了同步语音翻译和语音克隆功能。

  • 语言模型预训练:使用 Seed LLM 系列的方法对初始语言模型进行预训练,建立基础的文本生成与理解能力。
  • 多模态扩展:集成一个预训练的音频编码器,使模型能够接受流式音频输入,扩展为具备音频处理能力的多模态 LLM。
  • 多任务持续学习训练:在大规模多任务数据上进行自回归训练,生成包括文本 token(可选)和音频 token 的输出,实现语音合成。
  • 高质量数据微调:使用人工标注的高质量数据进行微调,进一步优化模型在指令理解、多说话人识别、翻译策略关键能力上的表现。

问题:面临严格延迟约束下的同步翻译优化难题,需要在翻译质量时序控制之间权衡。

核心思路:优化两个互补目标

  • 片段内一致性确保每个翻译片段自身准确、流畅
  • 片段间连贯性确保不同翻译片段之间逻辑衔接自然

奖励机制设计

  • 多维单轮奖励(step-level):为每一步生成即时反馈,评估翻译准确性与时序控制,实现片段内部一致性优化
  • 统一多轮奖励(sequence-level):从全局角度评估整个翻译段落的连贯性,优化跨片段一致性

两阶段训练策略

  • 第一阶段:单轮奖励训练
    • 仅使用 step-level 奖励,学习人类翻译的先验知识,确保训练稳定
  • 第二阶段:联合优化训练
    • 引入 sequence-level 奖励,与 step-level 奖励联合优化,平衡过程指标(每步表现)与结果指标(整体输出质量)

主要贡献包括:统一的语音到语音架构、跨语言的语音克隆机制,以及接近人类水平的翻译性能。

Training

Continual Training and Supervised Fine-tuning

为实现文本与语音之间的有效模态对齐,并提升跨语言能力,我们采用了全面的多任务多模态持续训练(CT)策略。该策略有效促进了语音与文本模态之间的对齐,并强化了模型的跨模态与跨语言泛化能力

具体措施如下:

  1. 多模态多任务训练数据
    • CT 数据集涵盖约 1000 亿 tokens,任务类型包括:
      • 语音转文本(Audio-to-Text Transcription)
      • 文本转语音(Text-to-Audio Synthesis)
      • 纯文本处理(Text-Only Tasks)
  2. 数据质量控制
    • 为提升训练效率并确保数据质量,我们引入了基于语音质量指标的严格过滤流程,对语音数据进行筛选。

在持续训练之后,我们在高质量的人类标注数据上进行有监督微调,以激活同步语音传译所需的关键能力。该过程使模型能够建立以下数据驱动能力:

  1. 读-写策略(read-write policy)
  2. 多说话人区分能力
  3. 语音翻译能力
  4. 声音克隆能力

有监督微调显著提升了模型的指令跟随能力以及在核心传译任务上的整体表现。经过微调后的模型为后续的强化学习阶段提供了强大基础,使得后续优化更具针对性有效性

Reinforcement Learning

现代同声传译系统采用双工处理,将输入流分割成连续的音频块。形式上,我们将输入输出序列表示为:

每个音频片段(audioₜ)对应一个增量翻译 yₜ。我们将(audioₜ, yₜ)表示为序列中的第 t 个片段,并将 audio :=(audio₁, audio₂, …, audioₜ)表示为从 1 到 T 的聚合音频。在每个 t 片段中,我们有 yₜ :=(yₜ₁, yₜ₂, …, yₜₙ, …, yₜₙ),其中 N 是输出的长度。该模型利用当前音频片段(audioₜ)和之前的上下文 x<t,通过策略生成翻译 yₜ。

其中 πθ 是具有参数 θ 的策略 决定翻译策略。完整的轨迹概率定义为:

我们将 rtn 表示为 t 个块中第 n 个 token 的奖励。强化学习的目标是最大化每条轨迹上的累积奖励,即:

其中 𝒟 是训练数据集。以下部分详细说明了 rtn  的设计方式。

 奖励设计:平衡单轮反馈和多轮反馈

  • 单轮奖励(Single-turn rewards):在每个决策点提供即时反馈,用于评估中间的推理或生成步骤。
  • 多轮奖励(Multi-turn rewards):评估整个输出序列的质量,反映多个决策步骤的长期、累积效果。

同步翻译系统尤其具有独特挑战,因此需要精细化的奖励设计。该任务需同时优化两个互补目标:

片段内一致性(Intra-segment consistency):要求模型在逐步输出时保持语义与时间上的准确性和完整性,适合采用单轮奖励(single-turn reward)进行即时评估。

片段间连贯性(Inter-segment coherence):确保整个翻译序列在语义和时间上的连续性与一致性,适合采用多轮奖励(multi-turn reward),从全局角度评估累积的序列质量。

基于上述考量,我们提出了一种新颖的框架,将多维单轮奖励统一多轮奖励相结合。

Single-turn Reward:方法利用了每个增量步骤的细粒度反馈,我们通过实证研究发现,这些反馈与人类的评估指标高度相关。

给定一个音频序列 {audiot}1T 和相应的真实值 {yt}1T ,沿着五个派生维度定义段内奖励:

检测准确性奖励(rl​):该奖励旨在鼓励模型在翻译前进行充分“倾听”,避免过早输出,从而提升语义单元完整性。

I(⋅) 为指示函数,条件成立时取值为 1,否则为 0;∣yt​∣ 表示模型在第 t 步生成的 token 数量;∣yt∗​∣ 表示参考翻译在第 t 步应生成的 token 数量。当模型和参考翻译在当前步都没有输出(token 数为 0)时,奖励为 1,否则为 0该设计鼓励模型在语义信息尚不完整时保持“静默”,从而提升翻译的延迟-准确性权衡表现。

翻译主动奖励 ( rs ):通过奖励尽快生成已确认的语义单元来鼓励语音翻译:鼓励模型在语义单元一旦可用时立即翻译

翻译质量奖励(rq:衡量当前步生成内容与参考翻译的相似度(可通过 BLEU、BERTScore 等):

时序匹配奖励(rc​):鼓励模型生成的语音时长与参考时长一致,惩罚过长或过短:

格式一致性奖励(rf):保证输出结构正确,如标点、格式符号等符合预设正则表达式:

最终单轮奖励定义如下:

多轮奖励:单轮奖励机制提供了详细的、逐步的反馈,能够在每一步的递增中平衡延迟和翻译质量,但它未能完全捕捉同声传译中固有的长期依赖关系和累积效应。尤其是,当生成的目标音频逐渐落后于源音频时,会导致破坏性延迟,从而降低用户体验。为了解决这些全局序列级的动态问题,我们设计了一个互补的多轮奖励机制,可以整体评估整个输出序列。

延迟惩罚(rL​):惩罚翻译滞后,鼓励更及时的输出:

  • l:可接受的最大等待阈值
  • K:翻译片段数
  • dk​:第 k 个翻译片段前等待的片段数量

序列级翻译质量奖励(rQ​):衡量整个翻译序列与参考的匹配度(例如通过全局对齐算法):

多轮奖励定义为:

最终奖励融合与正则项

  • 每个子奖励在 batch 中进行标准化(均值为 0,方差为 1),提高数值可比性。
  • 总奖励为标准化后的单轮与多轮奖励之和,融合了局部细粒度指导全局一致性目标
  • 引入 KL 散度正则项:

用于鼓励当前策略 πθ​ 向参考策略靠拢,提升训练稳定性与可控性。

稳定强化学习训练:通过近端策略优化 (PPO)来优化定义的目标,该算法通过修剪的目标函数实现稳定高效的策略更新。训练目标公式如下:

 audio={audiot}1T 表示输入的音频序列, y={yt}1T 表示从旧策略 πθo⁢l⁢d 采样的翻译响应。优势估计 Atn 使用广义优势估计 (GAE)计算。由于这些奖励之间紧密耦合且差异化,调整它们各自的权重颇具挑战性,而且通常效果不佳。为了解决这些问题并稳定训练,我们采用了两种主要策略:自适应 KL 惩罚 和两阶段强化学习训练方案。

 Adaptive KL

对于包含音频和文本 token 的序列,由于其长度较长,控制 KL 散度会更加困难,这自然会导致更高的累积 KL 散度。因此,KL 惩罚系数 β 必须设置为高于传统 RLHF 的设置。

采用对数空间中的比例控制器来自适应地调整 β ,以确保 KL 散度始终接近预定目标。

两阶段强化学习训练方案:在第一阶段,通过仅优化多维单轮奖励来预热模型,使其内化人类先验知识并实现稳定的学习动态。在第二阶段,使用结合过程和结果成分的多轮奖励对模型进行进一步训练,使其能够有效地优化和平衡延迟与翻译质量。、

Experiments

 评估指标:

对于文本翻译质量评估,我们主要依赖于人工评估指标——有效信息比例 (VIP),该指标衡量翻译输出对每个语义片段传达说话者原始意图的准确程度,与人工翻译的判断高度一致。

在语音到语音评估中,我们提出了“语音有效信息比例”(SVIP)作为一种全面的人类评估指标。该指标建立在已有的“有效信息比例”(VIP)框架[6]之上,用于衡量完整语音会话中有效语义片段所占的比例。

当一个语音语义片段能够有效传达源语音的核心信息、准确表达说话者的原始意图、在可接受的延迟范围内完成传递、保持适合听众理解的语速,并达到清晰和易懂的声音质量标准时,即被视为有效。

在延迟评估方面,我们采用“首字母出现延迟”(FLAL)指标来衡量系统在段落级别输出第一个确定翻译所需的时间。在句子级别,我们使用广泛应用的“平均延迟”(AL)和“长度自适应平均延迟”(LAAL)指标,以比较不同方法之间的延迟表现。

在延迟表现上,Seed LiveInterpret 2.0 在语音到文本场景中,输出首字平均延迟仅 2.21 秒,在语音到语音场景中,输出延时仅 2.53 秒,做到了对翻译质量以及时延的均衡。

针对 Seed LiveInterpret 2.0 中译英和英译中两个方向的表现进行了客观评估,与其他翻译系统在翻译质量(BLEURT/ COMET)和延迟(AL/ LAAL/FLAL)等指标上进行对比。

结果显示,Seed LiveInterpret 2.0 在两个数据集上均表现出最高的翻译质量。在延迟方面,Seed LiveInterpret 2.0 在英到中方向上实现了语音到语音翻译的最低平均滞后(AL),在中到英方向上也表现出竞争力,展现了速度与准确度的良好平衡。

总体来看,Seed LiveInterpret 2.0 在句子级基准测试中,有效平衡了翻译质量与延迟。这不仅缓解了传统同传中 “译得准则慢,译得快则偏” 的痛点,配合音色复刻能力,让中英跨语言交流首次具备自然对话般的流畅感。

总结与展望

在本研究中,团队进一步认识到数据对模型训练的重要性。模型经过数十万小时语音数据的训练,数据质量中的任何瑕疵都可能在最终效果中被显著放大,这些潜在问题包括口音差异、准确读音、时间戳的准确预测,以及句子衔接的流畅度等关键要素。Seed LiveInterpret 2.0 良好的性能正是建立在海量优质训练数据之上。

Seed LiveInterpret 2.0 已初步展现出一定优势,其边界仍有拓展空间。比如,在语言覆盖方面,目前模型主要支持中英互译,其他语种尚未较好支持。此外,其声音复刻的稳定性、语音表现力、情绪复刻能力、极复杂情况下的翻译准确性等仍有进步空间。

在未来研究中,我们希望进一步挖掘模型潜力,通过优化算法、增强数据及改进训练策略等方式,逐步拓展同传模型的能力边界,提升其在复杂场景下的适应性和性能表现。

高效 LLM 训练方法:Packed samples和 sorted batching

 要让大型语言模型更有效地处理长文本上下文,需要在相似长度的输入序列上进行指令微调。LongAlign 方法,它可以帮助大型语言模型有效处理长达 64k 的长上下文,并展现出强大的长文本理解和生成能力。

LongAlign :

动机:

  • 目前缺乏用于有监督微调(SFT)的长文本指令跟随数据集,更缺乏构建此类数据的方法。
  • 长上下文数据的长度分布差异较大,在多GPU环境中严重降低了传统批处理方法的训练效率——处理较短输入的GPU必须等待处理较长输入的GPU完成任务后才能继续运行。
  • 亟需一个强健的基准评估体系,用于衡量大型语言模型在面对真实世界长文本查询时的处理能力。

贡献:

LongAlign 方法,分别从数据构建、高效训练和评估三个方面入手:

在数据方面,为构建一个多样化的长文本指令跟随数据集,从九个来源收集了长文本序列,并使用 Self-Instruct生成了 1 万条长度在 8k 到 64k 之间的指令数据。

在训练方面,为应对不均匀批处理导致的效率问题,采用了 packing 策略,即在将数据分发到 GPU 之前,将多个序列打包为接近最大长度的组合。但我们发现这种打包训练中的损失计算存在偏差:不同数量序列的打包在最终损失计算中被赋予相同权重。为缓解这一问题,我们提出了“损失加权策略”,对每条文本的损失进行加权平均,以平衡不同序列对整体损失的贡献。此外,我们还引入了“排序批处理”方法,将长度相近的序列分组,从而减少批内空闲时间

在评估方面,开发了 LongBench-Chat 基准测试,它包含长度为 10k-100k 的开放式问题,这些问题由博士生进行标注。评估内容涵盖推理、编程、摘要以及多语种翻译等多种长文本指令跟随能力。使用 GPT-4(OpenAI,2023b)结合人工标注结果和少量示例,对模型生成的回答进行评分。

结论:

数据量与多样性的影响:长文本指令数据的数量和多样性都会显著影响模型处理长上下文的能力,最终性能差异最高可达 30%。

长文本指令数据的益处:增加长文本指令数据有助于提升模型在长上下文任务中的表现,同时不会削弱其处理短上下文任务的能力。

训练策略的有效性采用的打包和排序批处理策略可将训练速度提升超过 100%,且不影响模型性能。此外,提出的损失加权技术还能将长文本任务的性能提升 10%。

数据集构建:

构建了一个包含10,000条长度在8k-64k之间的长文指令跟随数据集,这些数据来自于9个不同的数据源,包括学术论文、书籍、百科全书等,覆盖了多样化的任务类型。

高效训练方法:

为了确保模型在有监督微调(SFT)后依然具备处理长文本和短文本(即通用能力)的能力,将长文本指令数据与通用指令数据集混合用于训练。这种训练策略使得大量通用短文本数据与相对较少的长指令数据结合,从而形成了一个“长尾”式的数据长度分布。探索了两种训练方法:packingsorted batching

Packing(打包)

该方法通过将不同长度的数据拼接,直至达到最大长度,生成的打包数据整体长度接近最大限值。这些打包后的数据再进行批处理并在多 GPU 上处理,有效减少了每个批次中的空转时间。

此外,为防止同一 pack 中的不同序列在自注意力计算中发生“交叉污染”,我们传入了每个序列的起始与结束位置列表,并使用了 FlashAttention 2 中的 flash_attn_varlen_func 该方法支持高效的块对角注意力计算,计算量与 IO 时间均优于传统的二维注意力掩码。

Packing 策略存在的偏差

不过我们注意到,packing 会带来对长序列目标 token 较多的序列偏向。这是因为:不同的打包组(pack)在最终损失计算中被赋予相同权重,而每个打包组中包含的序列数量和每个序列的目标 token 数量却不同。

因此,在对每个批次求平均损失时,包含序列较少(通常是较长序列)或目标 token 较多的 pack,会对最终损失产生更大影响。

形式上,设将 M 个序列打包成 K 个 pack,第 i 个 pack 包含索引区间为 [Pi−1,Pi)的序列,其中 P0=1,PK=M+1。设 Li 为第 i个序列在其 Ni​ 个目标 token 上的总损失。如果我们希望对每个序列赋予相等的权重[ SFT中算loss ],则损失应当为:

而在 packing 情况下计算得到的损失为:

(3)与公式 (2) 相比,在 packing 情况下,相当于为第 j个序列分配了一个权重:

也就是说,损失更偏向于目标 token 数较多的序列,以及位于pack 较小的组中的序列。

为了解决这种不公平,我们提出对第 i 个序列的损失进行缩放,缩放因子为:K/(NiM),然后对每个 pack 中缩放后的损失求和,这样得到的总损失将与公式 (2)(即平均每个序列损失)保持一致,从而消除了不同序列在损失计算中所受到的偏倚。

损失加权策略在下游任务中带来了约 10% 的性能提升

Sorted Batching(排序批处理)

还提出了一种高效的 排序批处理策略。为确保每个 batch 中的序列长度相近,我们先按照序列长度对数据进行排序,然后在每轮训练中从中随机选取一段连续的数据组成一个 batch,且不重复使用。

不过,该方法不可避免地会引入 批次间数据分布的不均衡某些 batch 可能全部由长序列组成,另一些则全是短序列。这种偏差可能对 SGD(随机梯度下降)优化过程造成严重影响。

尽管如此,我们在实验中发现,排序批处理显著加快了训练速度,且几乎不会对模型性能产生负面影响。这可能得益于我们使用了较大的梯度累积步数(gradient accumulation steps)和优化器本身较强的适应能力。

训练方法细节

这里介绍 packing 策略与损失加权的具体实现方式。

Packing 策略实现

在打包训练过程中,每个数据批次会传入一个特殊的一维注意力掩码。在该掩码中,第 i个元素表示第 i 个序列在该批次中的起始位置。掩码的第一个元素为 0,最后一个元素等于 batch_size × seq_len

在注意力计算时,我们使用 FlashAttention 2 提供的 flash_attn_varlen_func 函数,并将该掩码传入其参数 cu_seqlens_qcu_seqlens_k。该函数会根据掩码中相邻元素表示的起始和结束位置,在每个序列内部进行注意力计算因此,每个序列的 Query 只能与自身的 Key 进行注意力操作,实现了“序列内独立注意”。

损失加权策略实现

在实现损失加权策略时,首先对训练数据进行预处理:为每个 pack 中的序列生成一个加权的一维掩码。该掩码中,对应目标 token 的位置权重为 1/N(其中 N 是当前序列的目标 token 数),其他位置为 0。

训练时,根据当前配置动态设置 M 和 K,表示即当前批次中序列的数量和 pack 的数量。然后,损失计算方法为:对每个 token 的交叉熵损失乘以比例系数 K/(MN),再求和得到最终损失值。

Packing 加权loss代码实现:

SFT中算loss通常来讲都是样本内作token-level mean,样本间作sequence-level mean,也就是等式(2)的计算方式。如果不同样本间作token-level mean,则会使target token数量多的样本更受重视(相当于被upsample),从而引入不同样本间的不平衡。

### Support loss weighting for packing ###
        loss = None
        if labels is not None:
            lm_logits = lm_logits.to(torch.float32)
            # Shift so that tokens < n predict n
            shift_logits = lm_logits[..., :-1, :].contiguous()
            if isinstance(labels, tuple) or isinstance(labels, list):
                labels, weights = labels
            shift_labels = labels[..., 1:].contiguous()
            if self.pack_loss:
                shift_weights = weights[..., 1:].contiguous()
                loss_fct = CrossEntropyLoss(ignore_index=-100, reduction='none')
                loss = loss_fct(shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1))
                loss = (loss * shift_weights).sum()
            else:
                loss_fct = CrossEntropyLoss(ignore_index=-100)
                loss = loss_fct(shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1))

            lm_logits = lm_logits.to(hidden_states.dtype)
            loss = loss.to(hidden_states.dtype)
        ### -------------------------------------- ###