FlexiSLM:动态可控帧率的口语语言模型 FlexiSLM: A Dynamic and Controllable Frame Rate Spoken Language Model
首个支持动态帧率和帧率控制的口语语言模型,实现质量与速度的灵活权衡
前置知识
口语语言模型(SLM)
口语语言模型是将大型语言模型(LLM)扩展到语音输入和输出的统一框架,能够处理语音到语音对话、自动语音识别(ASR)、文本转语音(TTS)和音频理解等多种任务。SLM通常采用三阶段架构:预训练语音编码器提取声学特征,这些特征条件化解码器式LLM,然后通过额外的transformer模块或预测头预测语音token。这种架构允许模型像处理文本一样处理语音,实现端到端的语音理解和生成。
FlexiSLM正是基于SLM架构进行改进,理解SLM的基本架构和工作原理是理解本文创新点的基础,因为FlexiSLM的核心贡献就是将动态帧率技术应用到SLM中。
帧率(Frame Rate)
在语音编码和语言模型中,帧率是指每秒音频被表示为多少个离散或连续的语音编码帧。例如,25Hz意味着每秒音频被编码为25个帧,12.5Hz意味着每秒12.5个帧。更低的帧率使用更少的token,因此计算成本更低,但可能会损失一些细节信息。传统的SLM使用固定的帧率,如Qwen2.5-Omni使用25Hz,Kimi-Audio使用12.5Hz。FlexiSLM打破了这一限制,引入了动态帧率的概念。
帧率是本文的核心概念,FlexiSLM的所有创新都是围绕动态帧率和帧率控制展开的。理解帧率的含义以及它对计算成本和质量的影响,是理解本文贡献的关键。
有限标量量化(FSQ)
有限标量量化(Finite Scalar Quantization)是一种神经编解码技术,用于将连续表示离散化。与传统的矢量量化(VQ-VAE)不同,FSQ将每个编码维度独立量化为有限数量的标量值,通过将连续空间投影到离散网格上实现。FSQ具有计算效率高、无需码本查找等优点,在语音编解码器中得到广泛应用。FlexiCodec使用FSQ来编码语义特征,每个FSQ token都有一个关联的帧长度属性,用于音频重建。
FSQ是FlexiSLM使用的语音tokenizer的基础技术,理解FSQ有助于理解FlexiSLM如何生成动态帧率的语音token以及这些token如何被解码为最终的音频。
余弦相似度
余弦相似度是衡量两个向量之间相似性的指标,定义为两个向量夹角的余弦值,计算公式为 $s_t = \frac{x_t \cdot x_{t+1}}{\|x_t\| \|x_{t+1}\|}$,其中 $x_t$ 和 $x_{t+1}$ 是连续两个帧的特征向量。余弦相似度的取值范围是[-1, 1],值越大表示两个向量越相似。在FlexiSLM中,余弦相似度用于判断相邻帧是否包含冗余信息,如果相似度超过合并阈值τ,则将这两个帧合并。这是一种基于信息密度的自适应压缩策略。
余弦相似度是FlexiSLM帧合并模块的核心算法,理解它的工作原理有助于理解FlexiSLM如何实现动态帧率以及为什么能够在降低帧率的同时保持语音质量。
研究动机
现有的口语语言模型(SLM)使用固定的帧率来表示语音,通常为25Hz或12.5Hz。这种固定帧率表示忽略了语音的信息密度时变特性,导致计算资源的浪费。例如,在静音段和信息稀疏段,仍然使用与密集段相同数量的帧,这浪费了计算资源。固定帧率还使得模型无法在推理时根据不同的设备、网络和部署预算灵活地权衡质量和速度。这对于实际部署是一个重大限制,因为不同的应用场景和硬件平台对延迟和算力的要求差异很大,一个固定的模型难以满足所有需求。
本文的目标是本文的目标是开发第一个支持动态和可控帧率的口语语言模型,利用语音的时间稀疏性,使模型能够在不同的计算预算下灵活运行。具体来说,本文希望实现两个能力:第一,通过动态帧率表示降低平均帧率,从而减少计算开销;第二,提供帧率可控性,让用户可以在推理时直接指定平均输出帧率,使同一个模型能够在不同的计算预算下运行而无需重新训练。这将使得SLM能够根据实际部署环境的资源限制,在质量和速度之间进行灵活权衡。
与已有工作不同的是,本文的独特切入角度是将动态帧率技术应用到端到端的口语语言模型中。虽然已有工作如FlexiCodec提出了动态帧率音频编解码器,并验证了在TTS管道中可以实现6.25Hz的平均帧率,但这项技术尚未在SLM框架中得到应用。与TTS管道相比,SLM的计算量更大,能力集更广,因此帧率可控性在SLM中的实用价值也更大。本文首次将动态帧率技术引入SLM,并引入了直接帧率条件控制机制,这是对现有技术的重要扩展和创新。
核心方法
FlexiSLM的整体思路是利用语音的时间稀疏性,通过动态帧合并来降低表示冗余,同时引入帧率条件控制机制实现推理时的灵活控制。直觉上,语音中存在大量信息稀疏的段落,如静音、停顿、发音较慢的音节等,这些段落可以用更少的帧来表示而不会显著损失质量。技术上,FlexiSLM采用了Thinker-Talker架构,其中Thinker是基于Qwen2.5-7B的LLM骨干,负责理解和思考;Talker是一个Transformer模块,负责从Thinker的隐藏状态生成动态帧率的语音token。FlexiSLM在输入和输出两端都应用了动态帧率表示,通过帧合并模块根据帧之间的相似度自适应地合并冗余帧,并用正弦位置编码对目标帧率进行条件控制。
FlexiSLM的核心创新点有两个:第一是在SLM框架中应用动态帧率技术,包括输入和输出两端的动态帧率表示;第二是直接帧率控制机制,让用户可以在推理时直接指定平均输出帧率,而不是通过间接调整合并阈值。这与之前FlexiCodec-TTS使用的阈值控制方法有本质区别。阈值控制提供的是一种间接控制,不同的阈值映射到广泛的帧率分布,使得预测速度变得不可预测;而直接帧率控制提供的是一种直观、精确的控制,用户可以直接指定目标帧率,模型会相应调整压缩强度。这使得FlexiSLM成为第一个具有帧率可控性的SLM,也是第一个在输入和输出都支持动态帧率的SLM。
方法步骤详情
FlexiSLM的方法步骤可以分为四个主要部分。第一步是帧合并模块,对于给定的固定帧率语义特征序列 $x_1, x_2, \ldots, x_T$,计算连续帧之间的余弦相似度 $s_t = \frac{x_t \cdot x_{t+1}}{\|x_t\| \|x_{t+1}\|}$。如果 $s_t$ 超过合并阈值 $ au$,则将帧 $x_t$ 和 $x_{t+1}$ 分组并计算它们的平均值。这个过程从左到右贪婪地执行,连续的高相似度帧被合并为一个平均表示。合并后,每个组产生一个平均特征 $\bar{x}_k$ 和一个帧长度属性 $l_k$,表示该组中原始帧的数量。第二步是将原始特征和合并特征交织,形成一个增强序列,通过一个带有局部注意力的轻量级Transformer处理,最后检索对应于合并特征位置的表示,得到合并序列和关联的帧长度。第三步是Talker Transformer的输入输出结构,输入包括三个部分的连接:骨干LLM的最后一层隐藏状态、目标帧率的正弦位置编码嵌入、以及之前发出的语音和帧长度token的嵌入。Talker产生两个并行输出流:FlexiCodec FSQ代码及其关联的帧长度。第四步是帧率控制,使用正弦位置编码对目标帧率进行编码,作为Talker的输入之一。在训练时,随机采样合并阈值并计算结果平均帧率,将这个经验帧率作为条件信号;在推理时,用户只需指定所需的帧率。
技术新颖性
FlexiSLM的技术新颖性体现在多个方面。首先,这是首次将动态帧率技术应用到端到端的口语语言模型中,验证了动态帧率在SLM框架中的可行性。其次,引入的Talker-to-Thinker连接为全双工SLM提供了自然基础,这使得Thinker能够显式访问已经说出的内容,为实时交互式对话奠定了基础。第三,提出的直接帧率控制机制比传统的阈值控制更加直观和精确,解决了帧率控制中的建模歧义问题。第四,FlexiSLM在12.5Hz到4.0Hz的宽范围内实现了质量与速度的平滑权衡,展示了动态帧率技术的实用价值。这些创新点使得FlexiSLM在保持高质量的同时显著降低了计算成本,为实际部署提供了更大的灵活性。
实验结果
实验结果表明,FlexiSLM在12.5Hz设置下取得了最佳性能,整体s2t/s2s得分为72.4/67.2,超越了最强的7B基线Qwen2.5-Omni-7B(66.7/63.3)5.7/3.9个百分点,也超过了Kimi-Audio-7B(69.7/57.2)和Mimo-Audio-7B(70.6/59.0)。当仅将输出帧率降低到6.25Hz时,FlexiSLM保持几乎相同的分数(72.3/66.2),同时使用一半的输出语音token。即使当输入和输出都降低到6.25Hz时,FlexiSLM达到70.2/64.3,在s2s上仍优于所有7B基线,在s2t上也具有竞争力。这验证了中心论点,即动态帧率SLM可以在使用较低帧率表示的同时匹配或超越固定帧率SLM。在更激进的5.0和4.0Hz设置下,质量下降更明显:从6.25/6.25Hz降低到5.0/5.0Hz使整体s2t/s2s从70.2/64.3降至69.0/60.4,进一步降低到4.0/4.0Hz给出67.2/56.5。ASR遵循相同的趋势,LibriSpeech clean/other WER从6.25Hz的2.55/6.37恶化到5.0Hz的3.34/7.85和4.0Hz的4.47/9.53。这些结果表明帧率控制可以扩展到非常低的速率,而提高低于6.25Hz的鲁棒性仍然是未来的重要方向。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| OpenAudioBench & VoiceBench Overall AVG | Accuracy (s2t/s2s) | 72.4/67.2 at 12.5/12.5Hz, 70.2/64.3 at 6.25/6.25Hz | Qwen2.5-Omni-7B: 66.7/63.3 | +5.7/+3.9 points at 12.5/12.5Hz |
| LibriSpeech ASR | WER (clean/other) | 1.98/5.79 at 12.5/12.5Hz, 2.55/6.37 at 6.25/6.25Hz | Qwen2.5-Omni-7B: 2.38/4.21 | -0.40/-1.58 at 12.5/12.5Hz (clean), slightly worse on other |
| LLaSO-Eval Audio Understanding | Top-1 Accuracy | 65.8% at 12.5Hz, 64.7% at 8.0Hz, 64.0% at 6.25Hz | LLaSO-3B: 58.3%, Qwen2.5-Omni-7B: 48.6% | +7.5 points over LLaSO-3B at 12.5Hz |
| Inference Speed | Real-Time Factor (RTF) | 1.17 at 12.5/12.5Hz, 0.59 at 12.5/6.25Hz | Qwen2.5-Omni-7B: 1.57 at 25/50Hz | 1.3× faster at 12.5/12.5Hz, 2.7× faster at 12.5/6.25Hz |
局限与改进
作者承认的局限性包括:首先,尚未探索RLHF或DPO等后训练技术,这些技术可能进一步提高响应质量和对齐。其次,当前模型不是流式模型,需要将音频解码器适配为因果操作,这是FlexiSLM支持实时对话的下一步重要工作。第三,训练数据不覆盖推理密集型任务、多轮对话或许多多项选择题,限制了在这些场景下的泛化能力。此外,作者还观察到在低于6.25Hz的帧率下,质量下降更为明显,这表明需要在非常低的帧率下提高鲁棒性。另一个潜在的局限性是FlexiSLM使用了大量的训练数据(约10K小时),这对于资源有限的研究者来说可能难以复现。最后,虽然FlexiSLM支持帧率控制,但这种控制可能会影响某些需要精细时间信息的任务,如复杂韵律或情感表达。
独立分析的弱点
从独立分析的角度来看,FlexiSLM存在几个可以改进的弱点。首先,在非常低的帧率(5.0Hz和4.0Hz)下,ASR质量显著下降,这表明帧合并策略在处理需要精细时间信息的任务时可能过于激进。一个改进方向是设计任务感知的帧合并策略,对于ASR等对时间细节敏感的任务使用更保守的合并,而对于TTS等对全局语义更敏感的任务可以使用更激进的合并。其次,FlexiSLM目前仅支持单轮对话,限制了其在实际交互场景中的应用。改进方向是扩展到多轮对话,并利用Talker-to-Thinker连接来维护对话上下文。第三,FlexiSLM的帧率控制是全局的,对于整个输出使用相同的平均帧率。一个更精细的控制是根据内容的语义重要性动态调整帧率,对于重要信息使用更高的帧率,对于背景信息使用更低的帧率。最后,FlexiSLM的训练数据主要集中在英语和中文等主要语言,对于低资源语言的支持有限。改进方向是扩展到更多语言,特别是那些在语音特征上有显著差异的语言。
未来方向
作者提出的未来研究方向包括:全双工和交互式SLM,利用Talker-to-Thinker连接为全双工SLM提供自然基础,使模型能够同时倾听、思考和说话;流式和设备端部署,将帧合并模块和音频解码器适配为因果或基于分块的流式处理,结合FlexiSLM的帧率可控性,使单个模型能够从云端到边缘设备匹配异构计算预算;针对口语对话的后训练,探索基于口语对话特定奖励模型的RLHF或DPO,包括韵律、自然性和轮流信号,这可能超越监督蒸馏所能提供的改进;推理、多轮和工具使用覆盖,扩展数据构建管道到多轮对话、链式思维推理和工具增强交互,在保持相同动态帧率骨干的同时拓宽模型能力表面;统一低速率音频建模,将相同的可控动态速率方法应用于一般音频(音乐、环境声音、混合音频),这是朝着统一、高效的音频语言模型发展的有前景的方向。除了作者提出的方向外,另一个有前景的方向是结合动态帧率与其他压缩技术,如patching或分层表示,以进一步降低计算成本。
复现评估
FlexiSLM的复现性评估如下:开源情况方面,作者计划在https://github.com/AmphionTeam/FlexiSLM发布代码、复现数据和模型,这为研究社区提供了良好的复现基础。数据方面,FlexiSLM使用了多个公开数据集,包括Emilia、MLS、LibriSpeech、LLaSO-Instruct等,这些数据集都是公开可用的。作者还构建了FlexiSLM-Data,这是一个从Qwen3-Omni蒸馏得到的语音到语音对话语料库,数据源包括TriviaQA、WebQuestions、TyDiQA、Alpaca、SODA、Magpie-Pro、UltraChat、HH-RLHF、WildChat等,总计1.4M样本,9.9K小时语音。算力方面,FlexiSLM在24张A100 80G GPU上训练,这对于大多数研究机构来说是可获得的资源。训练过程包括三个阶段:Stage 1使用TTS数据训练Talker,Stage 2使用多任务数据LoRA微调,Stage 3全参数微调。每个阶段的具体超参数都有详细说明,包括学习率、batch size、训练步数等。总体而言,FlexiSLM的复现难度中等偏上,主要挑战是需要大量的GPU资源和对多个数据集的处理,但作者提供了详细的实现细节和计划开源代码和数据,这大大降低了复现难度。
论文图表