论文状态:已完成

LLaMA-Omni: Seamless Speech Interaction with Large Language Models

发表:2024/09/11
原文链接PDF 下载
价格:0.100000
价格:0.100000
已有 0 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

LLaMA-Omni是一种新型语音交互模型,通过结合预训练的语音编码器、适配器和流式解码器,实现低延迟高质量语音与大型语言模型的交互。基于InstructS2S-200K数据集,该模型无需语音转录,能在226ms内生成文本与语音响应,显著提升用户体验。

摘要

Models like GPT-4o enable real-time interaction with large language models (LLMs) through speech, significantly enhancing user experience compared to traditional text-based interaction. However, there is still a lack of exploration on how to build speech interaction models based on open-source LLMs. To address this, we propose LLaMA-Omni, a novel model architecture designed for low-latency and high-quality speech interaction with LLMs. LLaMA-Omni integrates a pretrained speech encoder, a speech adaptor, an LLM, and a streaming speech decoder. It eliminates the need for speech transcription, and can simultaneously generate text and speech responses directly from speech instructions with extremely low latency. We build our model based on the latest Llama-3.1-8B-Instruct model. To align the model with speech interaction scenarios, we construct a dataset named InstructS2S-200K, which includes 200K speech instructions and corresponding speech responses. Experimental results show that compared to previous speech-language models, LLaMA-Omni provides better responses in both content and style, with a response latency as low as 226ms. Additionally, training LLaMA-Omni takes less than 3 days on just 4 GPUs, paving the way for the efficient development of speech-language models in the future.

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

LLaMA-Omni: 与大型语言模型的无缝语音交互 (LLaMA-Omni: Seamless Speech Interaction with Large Language Models)

1.2. 作者

论文作者团队来自中国科学院计算技术研究所 (ICT/CAS) 和中国科学院大学 (UCAS),包括 Qingkai Fang, Shoutao Guo, Yan Zhou, Zhengrui Ma, Shaolei Zhang, 以及通讯作者 Yang Feng。他们在自然语言处理、语音处理和机器翻译领域有着深厚的研究背景。

1.3. 发表期刊/会议

这是一篇在 arXiv 上发布的预印本论文。arXiv 是一个开放获取的学术论文存档平台,允许研究人员在正式的同行评审之前分享他们的研究成果。虽然它不代表经过了正式的同行评审,但它是快速传播最新研究成果的重要渠道。

1.4. 发表年份

2024年9月10日

1.5. 摘要

像 GPT-4o 这样的模型通过语音实现了与大型语言模型 (LLM) 的实时交互,与传统的基于文本的交互相比,显著提升了用户体验。然而,关于如何基于开源 LLM 构建语音交互模型的研究仍然不足。为了解决这个问题,作者提出了 LLaMA-Omni,一种专为低延迟、高质量语音交互设计的新型模型架构。LLaMA-Omni 集成了一个预训练的语音编码器、一个语音适配器、一个 LLM 和一个流式语音解码器。它无需进行语音转录,能够直接从语音指令中以极低的延迟同时生成文本和语音响应。该模型基于最新的 Llama-3.1-8B-Instruct 构建。为了使模型适应语音交互场景,作者构建了一个名为 InstructS2S-200K 的数据集,其中包含 20万条语音指令及其对应的语音响应。实验结果表明,与先前的语音语言模型相比,LLaMA-Omni 在内容和风格上都提供了更好的响应,响应延迟低至 226ms。此外,在仅 4 块 GPU 上训练 LLaMA-Omni 不到 3 天,为未来语音语言模型的高效开发铺平了道路。

1.6. 原文链接

2. 整体概括

2.1. 研究背景与动机

  • 核心问题: 当前,虽然像 OpenAI 的 GPT-4o 这样的闭源模型展示了惊人的实时语音交互能力,但在开源社区,仍然缺乏一个能够实现类似效果——即低延迟、高质量——的语音交互方案。
  • 重要性与挑战:
    1. 高延迟问题: 传统的解决方案是级联系统 (cascaded system),即 语音识别 (ASR) -> 大语言模型 (LLM) -> 文本转语音 (TTS)。这个流程是串行的,每个环节都会引入延迟,导致总体响应时间过长,用户体验不佳。
    2. 质量与延迟的权衡: 一些端到端 (end-to-end) 的语音语言模型虽然理论上可以从语音直接生成语音,实现低延迟,但在实践中,为了保证生成质量,往往还是需要生成中间文本,这又牺牲了延迟优势。
    3. 开源生态的空白: 缺乏一个基于强大的开源LLM(如 Llama 3.1)构建,并且训练成本低、易于复现的语音交互模型。
  • 切入点/创新思路: 作者提出了一种名为 LLaMA-Omni 的新架构,旨在同时解决延迟和质量问题。其核心思路是:
    1. 绕过语音识别: 模型直接理解语音输入,省去了 ASR 模块。
    2. 文本与语音并行生成: LLM 在自回归生成文本的同时,一个特制的流式语音解码器 (streaming speech decoder) 会近乎同步地生成对应的语音,从而大大降低了用户感知到的“首音延迟”。
    3. 高效训练: 通过巧妙的架构设计和两阶段训练策略,使得在有限的计算资源(4块GPU,3天)和数据(200K合成数据)下,就能训练出一个强大的语音交互模型。

2.2. 核心贡献/主要发现

  • 提出了 LLaMA-Omni 架构: 这是一种新颖的端到端模型架构,集成了预训练的语音编码器、语音适配器、LLM 和一个流式非自回归语音解码器。该架构能够直接从语音指令中同时生成文本和语音响应。

  • 构建了 InstructS2S-200K 数据集: 为了让模型更好地适应语音对话场景,作者构建了一个包含 20万条 <语音指令, 文本响应, 语音响应> 三元组的数据集。这些数据通过对现有文本指令进行改写和语音合成,使其更符合口语化、简洁的特点。

  • 实现了极低的响应延迟和高质量输出: 实验证明,LLaMA-Omni 的响应延迟可以低至 236ms,优于 GPT-4o 的平均延迟 (320ms)。同时,在响应内容的质量、风格和语音的自然度方面,均优于现有的开源基线模型。

  • 验证了高效开发的可行性: 该工作证明了在较少的计算资源和数据下,也能高效地开发出强大的语音语言模型,为开源社区的研究提供了宝贵的经验和范本。


3. 预备知识与相关工作

3.1. 基础概念

  • 大型语言模型 (Large Language Models, LLM): 指的是像 GPT-3、Llama 等经过海量文本数据训练的深度学习模型。它们具备强大的自然语言理解和生成能力,可以执行对话、问答、翻译等多种任务。本文使用的是 Llama-3.1-8B-Instruct
  • 自动语音识别 (Automatic Speech Recognition, ASR): 将人类的语音信号转换成文本的技术。例如,手机上的语音输入法就使用了 ASR 技术。
  • 文本转语音 (Text-to-Speech, TTS): 将文本转换成人类语音的技术。例如,导航软件中的语音播报就使用了 TTS 技术。
  • 级联系统 (Cascaded System): 指的是将多个独立的模型串联起来完成一个复杂任务的系统。在语音交互中,典型的级联系统是 ASR>LLM>TTSASR -> LLM -> TTS。这种系统的缺点是错误会累积,且延迟较高。
  • 端到端模型 (End-to-End Model): 指的是用一个单一的、统一的模型来直接完成从原始输入到最终输出的整个任务,中间步骤不由独立模块处理。LLaMA-Omni 旨在成为一个端到端的语音交互模型。
  • 离散语音单元 (Discrete Speech Units): 为了让语言模型处理语音,一种常见方法是将连续的语音波形“离散化”或“符号化”,变成像文本词元 (token) 一样的离散单元。本文使用了 HuBERT 模型提取语音特征,再通过 K-means 聚类算法将其转换为离散的单元索引。
  • 连接主义时间分类 (Connectionist Temporal Classification, CTC): 一种常用于语音识别和手写识别等序列任务的损失函数。它的核心优势在于无需预先对齐输入序列和输出序列。例如,在语音转文本任务中,一个音素可能对应多帧语音信号,CTC 能够自动学习这种不确定的对齐关系。它通过引入一个特殊的 blank (空白) 符号,来处理输出序列短于输入序列的情况以及重复字符的合并。
  • 非自回归生成 (Non-Autoregressive, NAR): 在序列生成任务中,自回归 (AR) 模型逐个生成输出,当前步的生成依赖于前一步的输出。而 NAR 模型则尝试一次性或并行地生成整个序列,通常速度更快,但可能牺牲一些生成质量。LLaMA-Omni 的语音解码器采用了 NAR 方式生成语音单元。
  • 流式模型 (Streaming Model): 指的是模型可以在接收到完整输入之前就开始处理并生成部分输出。这对于实时交互至关重要,因为它能显著降低用户感知的延迟。

3.2. 前人工作

作者在论文中回顾了两大类相关工作:语音/音频语言模型和同步生成技术。

3.2.1. 语音/音频语言模型 (Speech/Audio Language Models)

早期的工作尝试在音频的声学或语义词元上训练语言模型,如 AudioLM。之后,一些工作通过联合训练语音词元和文本词元,使模型能同时处理语音和文本,如 VALL-EVioLA

随着 LLM 的兴起,研究者开始探索如何将 LLM 的强大能力扩展到语音领域,主要分为两类:

  1. 原生多模态模型: 这类模型将语音词元加入 LLM 的词汇表,并在大量的语音和文本数据上进行预训练,使模型原生支持语音输入和输出。代表工作有 SpeechGPTAudioPaLMAnyGPT。这类方法的缺点是需要海量数据和巨大的计算资源
  2. 适配器/微调模型: 这类模型通常在预训练的 LLM 前面增加一个语音编码器,并通过微调使 LLM 具备语音理解能力。这些模型大多专注于语音到文本 (Speech-to-Text) 的任务,如语音识别 (ASR) 或语音翻译,而不具备语音生成能力。代表工作有 SALMONNQwen-Audio

3.2.2. 同步/流式生成 (Simultaneous/Streaming Generation)

流式生成的目标是在输入结束前就开始产生输出,这对实时系统至关重要。主流方法包括:

  • 基于单调注意力的方法 (Monotonic-Attention-based): 通过修改 Transformer 的注意力机制,使其只能关注输入序列的前缀部分,从而实现流式处理。

  • 基于 CTC 的方法: CTC 的特性使其天然适合流式解码,因为它能处理不确定的对-齐关系。

  • 基于 Transducer 的方法: 结合了 CTC 的非自回归特性和自回归模型对目标词元依赖的建模能力。

    为了让读者更好地理解 Transformer 架构的背景,这里补充 Attention 机制的核心公式。 注意力机制 (Attention Mechanism): Transformer 模型的核心是自注意力机制,它允许模型在处理一个序列时,衡量序列中不同位置元素之间的重要性。其计算公式如下: Attention(Q,K,V)=softmax(QKTdk)V \mathrm{Attention}(Q, K, V) = \mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V 符号解释:

  • QQ (Query): 查询向量,代表当前位置的元素。

  • KK (Key): 键向量,代表序列中所有其他位置的元素,用于与 QQ 进行匹配。

  • VV (Value): 值向量,代表序列中所有其他位置的元素的内容。

  • dkd_k: 键向量的维度。除以 dk\sqrt{d_k} 是为了进行缩放,防止点积结果过大导致梯度消失。

  • softmax: 归一化函数,将计算出的注意力分数转换为概率分布。 整个公式的直观解释是:通过计算 QQ 和所有 KK 的相似度,得到一个权重分数,然后用这个分数对所有的 VV 进行加权求和,得到当前位置的最终表示。LLaMA-Omni 中的 LLM 和语音解码器都基于 Transformer 架构。

3.3. 差异化分析

与上述相关工作相比,LLaMA-Omni 的核心创新和差异点在于:

  1. 兼顾理解与生成: 与大多数只关注语音理解的适配器模型不同,LLaMA-Omni 同时具备高质量的语音理解和语音生成能力。

  2. 高效的训练范式: 与需要海量资源的原生多模态模型 (SpeechGPT 等) 不同,LLaMA-Omni 采用两阶段训练策略,冻结了大部分参数,仅用 200K 合成数据和少量计算资源就完成了训练,开发效率极高。

  3. 创新的对齐方式: 相比于需要预先对齐语音和文本的训练方法,LLaMA-Omni 使用 CTC 损失来自适应地学习文本响应和语音响应之间的对齐关系,简化了数据准备和训练过程。

  4. 先进的基座模型: LLaMA-Omni 基于当前最先进的开源模型 Llama-3.1-8B-Instruct 构建,继承了其强大的推理和指令遵循能力。


4. 方法论

4.1. 方法原理

LLaMA-Omni 的核心思想是构建一个能够直接从语音指令(输入)无缝生成文本和语音响应(双输出)的端到端系统。为了实现低延迟,它采用流式生成策略:当大语言模型(LLM)逐个生成文本词元时,一个并行的语音解码器会立即将这些词元对应的隐藏状态转换为语音单元,并送入声码器合成音频。这样,用户几乎可以在 LLM "思考" 出第一个词的同时就听到声音,极大地缩短了等待时间。

整个模型架构如下图(原文 Figure 2)所示,主要由四个部分组成:语音编码器、语音适配器、大语言模型(LLM)和语音解码器。

该图像是LLaMA-Omni模型架构的示意图,展示了模型各部分的组成及其功能。图中展示了音频输入如何通过语音适配器和编码器,接入大型语言模型,并最终生成高质量的语音和文本响应。重要的步骤和延迟时间被标记,体现了实时语音交互的高效性。 该图像是LLaMA-Omni模型架构的示意图,展示了模型各部分的组成及其功能。图中展示了音频输入如何通过语音适配器和编码器,接入大型语言模型,并最终生成高质量的语音和文本响应。重要的步骤和延迟时间被标记,体现了实时语音交互的高效性。

4.2. 核心方法详解 (逐层深入)

4.2.1. 语音编码器 (Speech Encoder)

  • 功能: 负责将输入的原始语音信号 XSX^S 提取为高级的、有意义的声学特征表示。
  • 实现: 作者采用了 Whisper-large-v3 的编码器部分作为语音编码器 E\mathcal{E}Whisper 是一个在大量音频数据上训练的通用语音识别模型,其编码器具有强大的语音表征提取能力。
  • 流程: 输入的语音指令 XSX^S 经过编码器 E\mathcal{E} 后,得到语音表示序列 H=[h1,...,hN]\mathbf{H} = [\mathbf{h}_1, ..., \mathbf{h}_N]
  • 训练策略: 在整个训练过程中,语音编码器的参数保持冻结 (frozen),不参与更新。这利用了其预训练好的强大能力,并节省了计算资源。

4.2.2. 语音适配器 (Speech Adaptor)

  • 功能: 作为一个“桥梁”,将语音编码器输出的声学特征 H\mathbf{H} 转换为 LLM 能够理解的格式,即映射到 LLM 的词嵌入空间 (embedding space)。
  • 实现: 适配器 A\mathcal{A} 包含两个主要步骤:
    1. 下采样 (Downsampling): 语音编码器输出的序列 H\mathbf{H} 通常很长,为了降低计算复杂度和 LLM 的处理负担,需要先进行降维。具体地,将每 kk 个连续的语音帧(论文中 k=5k=5)在特征维度上进行拼接 (concatenate),从而将序列长度缩短 kk 倍。 H=[h1,...,hN/k],where hi=[hk×(i1)+1hk×(i1)+2hk×i]. \mathbf { H } ^ { \prime } = \left[ \mathbf { h } _ { 1 } ^ { \prime } , . . . , \mathbf { h } _ { \lfloor N / k \rfloor } ^ { \prime } \right] , \mathrm { w h e r e ~ } \mathbf { h } _ { i } ^ { \prime } = \left[ \mathbf { h } _ { k \times ( i - 1 ) + 1 } \oplus \mathbf { h } _ { k \times ( i - 1 ) + 2 } \oplus \cdot \cdot \cdot \oplus \mathbf { h } _ { k \times i } \right] . 其中 \oplus 表示拼接操作。
    2. 特征映射: 将下采样后的序列 H\mathbf{H}' 输入一个双层感知机 (MLP) 中进行非线性变换,最终输出的特征维度与 LLM 的词嵌入维度一致。这个 MLP 的结构是 Linear>ReLU>LinearLinear -> ReLU -> Linear
  • 最终公式: 整个适配器的过程可以形式化为: S=A(H)=Linear(ReLU(Linear(DownSample(H)))). \mathbf { S } = { \mathcal { A } } ( \mathbf { H } ) = \mathrm { L i n e a r } \big ( \mathrm { R e L U } ( \mathrm { L i n e a r } ( \mathrm { D o w n S a m p l e } ( \mathbf { H } ) ) \big ) \big ) . 得到的序列 S\mathbf{S} 就可以被 LLM 作为输入了。

4.2.3. 大语言模型 (Large Language Model)

  • 功能: 作为模型的大脑,负责理解语音适配器传入的指令内容,并生成相应的文本响应 YTY^T
  • 实现: 作者使用了当时最先进的开源指令微调模型 Llama-3.1-8B-Instruct 作为 LLM M\mathcal{M}
  • 流程: 作者设计了一个特定的提示模板 (Prompt Template),将语音适配器输出的表征 S\mathbf{S} 填入模板中 <speech><speech> 的位置,然后将整个序列送入 LLM。LLM 以自回归的方式生成文本响应 YT=[y1T,...,yMT]Y^T = [y_1^T, ..., y_M^T]
  • 训练目标: 在训练的第一阶段,LLM 的目标是最大化生成正确文本响应的概率。这通过标准的交叉熵损失 (cross-entropy loss) 来实现: LLLM=i=1MlogP(yiTP(S),Y<iT). \mathcal { L } _ { \mathrm { L L M } } = - \sum _ { i = 1 } ^ { M } \log P ( \boldsymbol { y } _ { i } ^ { T } | \mathcal { P } ( \mathbf { S } ) , \boldsymbol { Y } _ { < i } ^ { T } ) . 符号解释:
    • P(S)\mathcal{P}(\mathbf{S}): 包含语音表征 S\mathbf{S} 的完整输入提示。
    • yiTy_i^T: 文本响应中的第 ii 个词元。
    • Y<iTY_{<i}^T: 在生成第 ii 个词元之前已经生成的所有词元。 该公式的含义是,在给定语音指令和已生成的文本前文的条件下,最大化模型生成下一个正确词元的对数概率。

4.2.4. 语音解码器 (Speech Decoder)

  • 功能: 这是实现低延迟语音交互的关键。它接收 LLM 生成文本时产生的中间隐藏状态 (hidden states),并以流式、非自回归的方式将其解码为语音单元序列 YUY^U,用于后续的语音合成。
  • 实现:
    1. 语音离散化: 首先,目标语音响应 YSY^S 需要被转换成离散单元序列 YUY^U。作者使用预训练的 HuBERT 模型提取语音的连续表示,然后通过一个 K-means 模型将这些表示聚类成离散的索引(论文中 K=1000K=1000)。最后,合并连续相同的索引,得到最终的单元序列 YU=[y1U,...,yLU]Y^U = [y_1^U, ..., y_L^U]
    2. 声码器 (Vocoder): 作者使用一个基于 HiFi-GAN 的单元声码器,它可以将离散单元序列 YUY^U 合成回高质量的语音波形。
    3. 解码器架构: 语音解码器 D\mathcal{D} 由几层标准的 Transformer 块构成,其架构与 LLaMA 类似。它以非自回归 (NAR) 方式工作。
  • 流程:
    1. 获取并上采样隐藏状态: 当 LLM 生成文本响应时,会产生对应的隐藏状态序列 C=[c1,...,cM]\mathbf{C} = [\mathbf{c}_1, ..., \mathbf{c}_M]。为了匹配语音单元序列通常比文本词元序列更长的特点,首先对每个隐藏状态 ci\mathbf{c}_i 进行上采样 (upsample),即简单复制 λ\lambda 次(论文中 λ=25\lambda=25),得到上采样后的序列 C^\widehat{\mathbf{C}}
    2. 解码与对齐:C^\widehat{\mathbf{C}} 输入语音解码器 D\mathcal{D},得到输出序列 O\mathbf{O}。然后,使用 CTC 损失来训练解码器,使其输出能与目标语音单元序列 YUY^U 对齐。
      • CTC 会在词汇表中增加一个特殊的 blank 符号 ϵ\epsilon。解码器输出的每个位置 ii 对应一个概率分布 P(aiO)P(a_i | \mathbf{O}),其中 aia_i 可以是任意一个语音单元或 blank 符号。 P(aiO)=softmax(Woi+b)[ai],ai{0,1,...,K1,ϵ} P ( a _ { i } | \mathbf { O } ) = \operatorname { s o f t m a x } ( \mathbf { W } \mathbf { o } _ { i } + \mathbf { b } ) [ a _ { i } ] , \forall a _ { i } \in \{ 0 , 1 , . . . , K - 1 , \epsilon \}
      • CTC 引入一个坍缩函数 β(A)\beta(A),它会先合并序列 AA 中连续重复的符号,再移除所有 blank 符号。例如, β([1,1,2,ϵ,ϵ,2,3])=[1,2,2,3]\beta([1, 1, 2, \epsilon, \epsilon, 2, 3]) = [1, 2, 2, 3]
      • 训练的目标是最大化所有能坍缩为目标序列 YUY^U 的可能路径 AA 的总概率。CTC 损失函数如下: LCTC=logP(YUO)=logAβ1(YU)P(AO)=logAβ1(YU)i=1λMP(aiO) \mathcal { L } _ { \mathrm { C T C } } = - \log P ( Y ^ { U } | \mathbf { O } ) = - \log \sum _ { A \in \beta ^ { - 1 } ( Y ^ { U } ) } P ( A | \mathbf { O } ) = - \log \sum _ { A \in \beta ^ { - 1 } ( Y ^ { U } ) } \prod _ { i = 1 } ^ { \lambda \cdot M } P ( a _ { i } | \mathbf { O } ) 符号解释:
      • O\mathbf{O}: 语音解码器的输出序列。
      • YUY^U: 目标离散语音单元序列。
      • β1(YU)\beta^{-1}(Y^U): 所有可以经过坍缩函数 β\beta 得到 YUY^U 的原始路径集合。
      • AA: 一条具体的路径。
      • P(aiO)P(a_i|\mathbf{O}): 在给定解码器输出的条件下,在位置 ii 生成符号 aia_i 的概率。

4.2.5. 训练与推理

  • 两阶段训练策略 (Two-stage Training):
    1. 第一阶段 (语音理解): 冻结语音编码器,只训练语音适配器LLM。目标是让 LLM 能够根据语音输入正确生成文本响应。使用损失函数 LLLM\mathcal{L}_{\mathrm{LLM}}
    2. 第二阶段 (语音生成): 冻结第一阶段训练好的所有部分(编码器、适配器、LLM),只训练语音解码器。目标是让解码器能够根据 LLM 的隐藏状态正确生成语音单元序列。使用损失函数 LCTC\mathcal{L}_{\mathrm{CTC}}。 这种策略分解了复杂的任务,使得训练更加稳定和高效。
  • 流式推理过程 (Streaming Inference): 推理过程如原文 Algorithm 1 所示,其核心步骤如下:
    1. 用户语音指令 XSX^S 经过编码器和适配器得到表征 S\mathbf{S}

    2. LLM 开始自回归生成文本。在第 ii 步,生成一个文本词元 yiTy_i^T 和对应的隐藏状态 ci\mathbf{c}_i

    3. 隐藏状态 ci\mathbf{c}_i 被上采样并立即送入语音解码器 D\mathcal{D},解码器生成对应的语音单元。

    4. 当生成的语音单元数量达到一个预设的块大小 Ω\Omega 时,就将这部分单元送入声码器 V\mathcal{V} 合成一小段音频并播放。

    5. 重复步骤 2-4,直到 LLM 生成结束符 </EOS></EOS>。 这个过程实现了文本生成和语音合成的并行,用户可以很快听到响应的开头,而无需等待整个句子生成完毕。下图(原文 Figure 1)直观展示了这一过程。

      Figure 1: LLaMA-Omni can simultaneously generate text and speech responses based on the speech instruction, with extremely low response latency. 该图像是LLaMA-Omni的示意图,展示了模型如何根据语音指令同时生成文本和语音响应。图中左侧为语音输入,右侧展示了生成的文本和语音输出,强调了该模型的低响应延迟特点。

4.2.6. InstructS2S-200K 数据集构建

为了训练模型,需要 <语音指令, 文本响应, 语音响应> 格式的数据。由于现有数据集多为文本形式,作者通过三步流程构建了 InstructS2S-200K 数据集:

  1. 指令改写 (Instruction Rewriting): 使用 Llama-3-70B-Instruct 模型将文本指令改写得更像口语,例如加入填充词 ("hey", "so")、将数字转为文字形式、使句子更简洁。
  2. 响应生成 (Response Generation): 同样使用 Llama-3-70B-Instruct,为改写后的指令生成简洁、信息量大且不含无法被 TTS 合成的特殊格式(如列表、括号)的响应。
  3. 语音合成 (Speech Synthesis): 使用 CosyVoice 模型合成指令语音(随机使用男女声),使用 VITS 模型合成响应语音(使用标准的单一女声)。 最终,作者从 AlpacaUltraChat 数据集出发,生成了 20 万条高质量的语音指令数据。

5. 实验设置

5.1. 数据集

  • 训练数据集:

    • InstructS2S-200K: 作者自建的数据集,包含 20万条语音指令数据。该数据集由约 5万条来自 Alpaca 数据集(覆盖广泛主题)和约 15万条来自 UltraChat 数据集(主要关于世界知识的问答)的文本指令转换而来。

    • 数据集统计信息 (原文 Table 1):

      统计项
      语音指令总时长 418小时
      语音响应总时长 1058小时
      平均语音指令时长 7.5秒
      平均语音响应时长 19.0秒
      平均文本指令长度 21.7词
      平均文本响应长度 39.5词
      平均单元序列长度 553.6
  • 评估数据集:

    • InstructS2S-Eval: 作者构建的评测集,从 AlpacaEvalhelpful_basevicuna 子集中挑选了 199 条更适合语音交互场景的指令(移除了数学和代码相关问题),并使用 CosyVoice 模型将文本指令合成为语音。

5.2. 评估指标

论文使用了以下几个指标来全面评估模型的性能:

  • ChatGPT Score:

    1. 概念定义: 这是一个基于模型的自动化评估指标。作者使用 GPT-4o 来为模型生成的响应打分,分数范围为 1 到 5。评估依据包括响应的帮助性 (helpfulness)相关性 (relevance)流畅性 (fluency) 以及是否适合语音交互 (suitability for speech interaction)。对于语音输出,会先用 ASR 模型转为文本再进行评分。
    2. 数学公式: 该指标没有数学公式,它是一个基于大型语言模型的启发式评分。
    3. 符号解释: 无。
  • ASR-WER (Word Error Rate via ASR):

    1. 概念定义: 用于评估模型生成的文本响应语音响应之间的一致性。具体做法是:先用一个强大的 ASR 模型(本文使用 Whisper-large-v3)将模型生成的语音转录成文本,然后计算这个转录文本与模型直接生成的文本之间的词错误率 (Word Error Rate, WER)。这个值越低,说明语音和文本内容的一致性越好。
    2. 数学公式: WER=S+D+IN \mathrm{WER} = \frac{S + D + I}{N}
    3. 符号解释:
      • SS: 替换 (Substitution) 的单词数量,即 ASR 转录结果中被错误替换的词数。
      • DD: 删除 (Deletion) 的单词数量,即参考文本中有但 ASR 转录结果中被漏掉的词数。
      • II: 插入 (Insertion) 的单词数量,即 ASR 转录结果中多出参考文本的词数。
      • NN: 参考文本(此处为模型生成的文本响应)中的总词数。
  • UTMOS:

    1. 概念定义: 这是一个用于评估合成语音自然度 (naturalness) 的客观指标。它使用一个预训练的模型 (UTMOS2) 来预测人类对该段语音的平均意见分 (Mean Opinion Score, MOS)。分数越高,代表语音质量越好,听起来越自然。
    2. 数学公式: 该指标由一个深度学习模型预测得出,没有简单的数学公式。
    3. 符号解释: 无。
  • 延迟 (Latency):

    1. 概念定义: 这是语音交互中一个至关重要的用户体验指标。它指从用户输入语音指令结束到模型开始播放语音响应之间的时间间隔。延迟越低,交互感觉越实时、越流畅。
    2. 数学公式: 无,为物理时间测量值。
    3. 符号解释: 无。
  • 语速 (Speech Rate, WPS):

    1. 概念定义: 指生成语音的平均语速,以每秒词数 (Words Per Second) 来衡量。
    2. 数学公式: WPS=Total Words in Transcribed SpeechTotal Duration of Speech in Seconds \mathrm{WPS} = \frac{\text{Total Words in Transcribed Speech}}{\text{Total Duration of Speech in Seconds}}
    3. 符号解释: 无。

5.3. 对比基线

论文将 LLaMA-Omni 与以下三种具有代表性的语音语言模型系统进行了比较:

  • SpeechGPT: 一个端到端的语音语言模型,也支持语音输入和输出。它采用一种“模态链”提示方式,按顺序生成文本指令、文本响应和语音响应,这导致其延迟较高。

  • SALMONN + Orca: 这是一个级联系统SALMONN 是一个强大的语音理解模型,能执行语音到文本的任务。其文本输出被送入一个工业级的流式 TTS 模型 Orca 来合成语音。

  • Qwen2-Audio + Orca: 另一个级联系统Qwen2-Audio 是一个通用的音频理解模型,同样将其文本输出送入 Orca 进行语音合成。

    这些基线系统覆盖了端到端和级联两种主流技术路线,使得比较非常全面。


6. 实验结果与分析

6.1. 核心结果分析

6.1.1. 离线场景 (Offline Scenario)

在离线场景中,模型会先生成完整的响应,然后再进行语音合成。这主要用于评估模型生成内容的最高质量

以下是原文 Table 2 的结果:

Model ChatGPT Score ASR-WER ↓ UTMOS ↑
S2TIF S2SIF
SpeechGPT 2.98 2.19 0.79 45.00 3.8958
SALMONN + Orca 3.44 3.40 0.04 3.78 3.8286
Qwen2-Audio + Orca 3.47 3.38 0.09 6.77 3.6119
LLaMA-Omni 3.99 3.47 0.52 10.82 3.9296

分析:

  • 文本响应质量 (S2TIF - Speech-to-Text Instruction-Following): LLaMA-OmniChatGPT Score (3.99) 显著优于所有基线模型。作者认为这得益于两点:1) 基于强大的 Llama-3.1-8B-Instruct;2) 使用 InstructS2S-200K 数据集进行了专门的语音交互场景对齐,使其响应风格更简洁、更适合对话。
  • 语音响应质量 (S2SIF - Speech-to-Speech Instruction-Following):
    • LLaMA-OmniChatGPT Score (3.47) 仍然是最高的,证明其生成的语音内容质量优异。
    • 所有模型在 S2SIF 任务上的得分都低于 S2TIF,这是因为语音合成和 ASR 评估过程会引入误差。
    • 文本-语音一致性 (ASR-WER): 级联系统(SALMONN+OrcaSALMONN+Orca)的 ASR-WER 最低 (3.78),因为它们使用了工业级 TTS 模型。LLaMA-OmniASR-WER (10.82) 虽然高于级联系统,但远优于 SpeechGPT (45.00),表明其文本和语音内容的一致性是可接受的。作者指出,LLaMA-Omni 的语音解码器仅用了约 1K 小时的数据训练,若增加数据量,性能有望进一步提升。
    • 语音自然度 (UTMOS): LLaMA-OmniUTMOS 得分最高 (3.9296),表明其生成的语音在自然度上表现出色。

6.1.2. 流式场景 (Streaming Scenario)

在流式场景中,模型边生成文本边合成语音,延迟是关键考量。

下图(原文 Figure 3)展示了不同模型在不同延迟下的性能表现。

Figure 3: Results on the InstructS2S-Eval benchmark in the streaming scenario. We report the ChatGPT Score, ASR-WER, UTMOS, and WPS under different latency conditions.

分析:

  • LLaMA-Omni 的表现:
    • 极低延迟: LLaMA-Omni 可以实现最低 236ms 的延迟(当单元块大小 Ω=10\Omega=10 时),这比 GPT-4o 的平均延迟 (320ms) 还要低。
    • 性能稳定性: 随着延迟增加(Ω\Omega 变大),ChatGPT ScoreASR-WER 变化不大,性能相对稳定。UTMOS 分数则随着延迟增加而提高,因为一次性合成更长的片段可以更好地保持韵律,但即使在最低延迟下,其语音质量也保持在可接受水平。
    • 语速一致性 (WPS): 无论延迟如何变化,LLaMA-Omni 生成的语音语速几乎保持不变,这说明其流式生成机制没有破坏语音的自然停顿和节奏。
  • 与基线模型的对比:
    • SpeechGPT: 延迟极高 (>4500ms),且响应质量差,不适合实时交互。
    • 级联系统 (SALMONN+Orca, Qwen2-Audio+Orca):
      • 延迟: 它们也能实现 300ms 以下的低延迟。
      • 主要问题 1 (质量下降): 在流式场景下,它们的 ChatGPT ScoreASR-WER 相比离线场景有显著下降,说明在词级别进行流式合成容易引入额外错误。
      • 主要问题 2 (语速锐减): 最严重的问题是,在低延迟设置下,级联系统的语速 (WPS) 急剧下降。这是因为频繁地在词与词之间触发合成,导致了大量不自然的停顿,语音变得断断续续。
  • 结论: LLaMA-Omni 的端到端流式生成机制在保持低延迟的同时,能更好地维持语音的整体韵律和自然度,显著优于基于流式 TTS 的级联系统。

6.1.3. 人类评估 (Human Evaluation)

为了验证模型是否真正符合人类偏好,作者进行了A/B测试。

下图(原文 Figure 4)展示了人类在帮助性 (Helpfulness)自然度 (Naturalness) 两个维度上对模型响应的偏好投票结果。

Figure 4: Results of human evaluation from the perspectives of helpfulness and naturalness.

分析: 结果清晰地表明,与两个强大的级联系统(SALMONN+OrcaSALMONN+OrcaQwen2-Audio+Orca)相比,LLaMA-Omni帮助性自然度两方面都获得了更高的胜率 (Win rate)。这证实了 LLaMA-Omni 生成的响应内容和语音风格更受人类用户的青睐。

6.2. 消融实验/参数分析

虽然论文没有专门设立“消融实验”章节,但对流式场景中不同 chunk size (即 Ω\OmegaΘ\Theta) 的分析,本质上就是一种参数分析实验。

以下是原文附录 C 中 LLaMA-Omni 的详细数值结果 (Table 4):

Ω Latency (ms) ChatGPT Score ASR-WER UTMOS WPS
LLM Vocoder Total
10 206.03 30.15 236.18 3.54 9.84 3.2304 2.76
20 236.18 45.23 281.41 3.56 9.91 3.4748 2.75
40 301.51 45.23 346.73 3.52 10.37 3.6688 2.74
60 361.81 50.25 412.06 3.52 10.47 3.7549 2.74
80 432.16 55.28 487.44 3.50 10.70 3.7858 2.73
100 497.49 65.33 562.81 3.49 10.71 3.8242 2.74
Offline 1542.71 211.06 1753.77 3.47 10.82 3.9296 2.73

分析: 该表格揭示了延迟与质量之间的权衡 (trade-off)

  • 随着单元块大小 ΩΩ 从 10 增加到 100:
    • 总延迟 (Total Latency) 从 236ms 增加到 563ms。
    • 语音自然度 (UTMOS) 从 3.23 稳步提升到 3.82,越来越接近离线质量 (3.93)。这说明合成更长的语音片段有助于保持语音的连贯性和韵律。
    • 内容质量 (ChatGPT Score, ASR-WER)语速 (WPS) 保持相对稳定。 这表明用户可以根据应用场景灵活选择 ΩΩ 的值:在需要极致实时性的场景(如语音助手),可以选择较小的 ΩΩ;在对语音质量要求更高的场景(如有声书阅读),可以选择较大的 ΩΩ

6.3. 案例研究

为了直观地展示不同模型响应风格的差异,论文在附录 B 中提供了一个案例。

指令: "How do I wrap a present neatly?" (如何整齐地包装一份礼物?) 以下是原文 Table 3 中不同模型的响应:

Model Response
Qwen2-Audio Wrapping a present neaty can be a bit tricky, but wih some practice and patience, you can master the art of wrapping presents beautifully. Here are some steps to follow:n1. Start with a clean, fat surface... (响应非常冗长,包含数字列表、换行符等不适合语音播报的格式)
SALMONN To p a eent neaty, you cn sart y ut a clean nd sr wo The, pl e preen o the surace and wrap it i picwrappg paperhat is igharger than the present Fol e pe dhen al a hat he o sme heiThe e le n h p twr thecne that eymeeat he o n ot he re. ialy the present by pressing the flaps together and using some tape to secure them. (响应内容较为简洁,但仍然偏长)
SpeechGPT Wrapping a present neatly requires a few simple steps. First, you should fold the paper in half and then The you oul place pren he cen te papen fohe papeou y, you should tie the ends of the paper with a ribbon or string. (响应风格适合语音,但内容过于简化,信息量不足)
LLaMA-Omni To wrap a present neatly, start with a at surface, place the git in the center, and fold one edgeo the wrapping paper over the it, crease it, and tape it down.Repeat this process with the remaining eges, making sure to align them evenly and smooth out any air bubbles. (响应**既简洁又包含了足够的核心信息**,风格非常适合语音交互,做到了信息量和简洁性的平衡)

这个案例清晰地证明了 LLaMA-Omni 经过 InstructS2S-200K 数据集微调后,其响应风格确实更符合语音交互场景的要求。


7. 总结与思考

7.1. 结论总结

LLaMA-Omni 成功地为开源社区提供了一个高效、低延迟、高质量的语音交互解决方案。

  • 贡献:
    1. 创新的架构: 提出了一种新颖的端到端架构,通过流式语音解码器实现了文本和语音的同步生成。
    2. 专有数据集: 构建了 InstructS2S-200K 数据集,有效解决了模型在语音交互场景下的对齐问题。
    3. 卓越的性能: 在实验中,LLaMA-Omni 在响应质量、自然度和延迟方面均表现出色,尤其是在流式场景下显著优于级联系统。
  • 意义: 该工作极大地降低了开发高性能语音交互模型的门槛,展示了在有限资源下构建基于最新开源 LLM 的语音对话系统的可行路径,对推动开源多模态技术的发展具有重要意义。

7.2. 局限性与未来工作

论文作者在文末指出了未来可能的研究方向:

  • 增强生成语音的表达能力 (Expressiveness): 当前模型的响应语音虽然自然,但在情感、语调等表达丰富性上还有提升空间。
  • 改善实时交互能力: 尽管延迟已经很低,但要实现真正像人一样无缝的实时对话(例如支持打断、抢话等),还需要进一步的研究。

7.3. 个人启发与批判

这篇论文给我带来了以下几点启发和思考:

  • 启发:

    1. “解耦与协同”的设计哲学: LLaMA-Omni 的设计非常巧妙。它没有选择最“纯粹”的端到端(直接语音到语音单元),而是将任务解耦为 LLM生成文本解码器生成语音 两部分,但又通过共享隐藏状态和流式处理让它们紧密协同。这种设计既利用了 LLM 强大的文本能力,又通过专门的语音解码器保证了语音生成的质量和效率,是一种非常务实且高效的工程实践。
    2. 数据对齐的重要性: InstructS2S-200K 数据集的构建是成功的关键之一。这表明,即使模型架构很强大,也需要高质量、场景对齐的数据才能发挥其全部潜力。对于多模态任务,如何低成本地构建对齐良好的数据集是一个永恒的核心议题。
    3. 开源的力量: 这项工作完美诠释了开源生态的活力。它站在 Llama 3.1WhisperHuBERT 等众多优秀开源项目的肩膀上,通过创新的“粘合”方式,创造出了新的价值,并反哺给整个社区。
  • 批判性思考与潜在问题:

    1. 合成数据的局限性: InstructS2S-200K 完全由模型合成。虽然高效,但合成语音可能缺乏真实人类对话中的复杂韵律、情感变化和非流利现象(如停顿、重复)。长期依赖合成数据可能会导致模型对真实世界嘈杂、多变的语音输入鲁棒性不足。
    2. CTC 对齐的权衡: 使用 CTC 损失无需预对齐,简化了训练,但它是一种“贪心”的对齐方式,对于建模长距离依赖和复杂的韵律结构可能不如基于注意力的对齐方法精确。这或许是 ASR-WER 略高于级联系统的原因之一。
    3. 评估的“偏见”: 实验中使用 Whisper-large-v3 进行 ASR-WER 评估,而 LLaMA-Omni 的语音编码器也来自 Whisper。这可能存在一定的“同源偏见”,即评估模型可能对与自身架构相似的模型产生的输出更为“宽容”。虽然 Whisper 是公认的强大模型,但在评估时最好能有来自不同技术路线的多个 ASR 模型进行交叉验证。
    4. 模型规模的限制: 本文工作基于 8B 模型。虽然证明了高效开发的可行性,但更大规模的模型(如 70B)是否能通过同样的方式获得更好的性能,以及训练成本如何相应变化,是未来值得探索的问题。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。