SpeechLMs语音大模型综述(香港中文大学,ACL 2025)

大模型智能语音交互数据中台
引言

最近,语音大模型(Speech Language Models,简称SpeechLMs)的研究可以说掀起了一股新浪潮,今天要解读的这篇由香港中文大学撰写的综述文章就非常及时地为我们描绘了这一领域的最新图景。过去我们处理语音交互,通常是那种“语音识别(ASR)+大语言模型(LLM)+文本转语音(TTS)”的串联模式。你或许也感受过这种模式的局限性,比如语音中的语气、情感这类“言外之意”(paralinguistic information)很容易在转换成文本时丢失 ,而且整个流程一环扣一环,延迟也挺大的 。更麻烦的是,如果识别错了,后面就会一路错下去,错误累积是个大问题

picture.image

正是在这样的背景下,SpeechLMs应运而生,它们的目标是直接端到端地处理和生成语音 ,听起来就高级很多。这种模型不仅能捕捉语义信息,还能保留原始语音中的音高、音色、语调等丰富的非语义信息。这样一来,交互就更自然、更富有表现力了,延迟也大大降低,并且能有效避免串联模型中错误累积的问题。

picture.image

这篇论文的解读,我们主要聚焦在SpeechLMs的核心组成部分及其模型方法,毕竟理解这些“部件”是怎么协同工作的,才能更好地把握SpeechLMs的精髓。

原始论文地址: https://arxiv.org/abs/2410.03751

Github仓库地址: https://github.com/dreamtheater123/Awesome-SpeechLM-Survey

SpeechLM 的核心组成

想象一下,一个SpeechLM就像一个精密的工厂,它有三个主要车间:语音 tokenizer、语言模型(Language Model)和 token-to-speech 合成器(vocoder) 。它们各司其职,又紧密配合。

picture.image

语音 Tokenizer

语音 tokenizer 是这个工厂的“第一道门”,它的任务是把连续的原始音频波形(audio waveform)转换成模型能理解和处理的离散或连续的 token 。你可以把它看作是把音频信号“切片”并“编码”成有意义的单元。

  • 语义理解导向(Semantic Understanding Objective) 这类 tokenizer 主要是为了抓住语音内容的“意思”,也就是语义信息 ,这对于语音识别(ASR)这样的任务非常重要。 典型的结构是一个语音编码器(speech encoder)和一个量化器(quantizer) 。编码器先把波形变成连续的 embedding,然后量化器把这些连续的 embedding 变成离散的 index,或者直接就是连续的 embedding 作为 token。 比如 HuBERT 就是个典型。它用一个特征编码器把原始音频波形变成连续的 embedding,再通过 k-means 聚类把这些 embedding 量化成离散的语音 token。它的训练方式很有趣,有点像填空游戏,把一部分语音 token 遮盖掉,然后模型去预测被遮盖的部分。像 Wav2vec 2.0 和 W2v-BERT 也在使用类似的方法,通过对比学习和掩码语言模型(Masked Language Modeling, MLM)损失来预训练。还有 WavLM,在预训练时加入了语音去噪目标,发现对非语义任务如说话人验证和语音分离都有帮助。
  • 声学生成导向(Acoustic Generation Objective) 如果说语义理解导向的 tokenizer 关注“说什么”,那声学生成导向的 tokenizer 就更关注“怎么说”,它重点在于捕捉那些能重建高质量语音波形的声学特征 。 这类 tokenizer 通常包含编码器、量化器和解码器(decoder) 。编码器和量化器把波形转成 token,然后解码器再把这些 token 重建成语音波形。神经音频 codec 经常被用作这类 tokenizer。它们能把音频波形压缩成紧凑的离散 token。EnCodec 就是一个代表,它采用卷积编码器-解码器架构,并结合了残差向量量化(Residual Vector Quantization, RVQ) 。它把连续的 embedding 通过多阶段 RVQ 离散化,每个阶段都量化前一阶段的残差,最终能生成保留高保真音频信息的离散声学 token。
  • 混合导向(Mixed Objective) 混合导向的 tokenizer 试图兼顾语义理解和声学生成两方面的优势。 目前,大部分混合 tokenizer 都借鉴了声学生成 tokenizer 的架构,并着重将语义信息“蒸馏”到声学 tokenizer 中。SpeechTokenizer 就是一个例子,它使用了 RVQ-GAN 架构,并将 HuBERT 的语义 token 蒸馏到 RVQ 的第一层。Mimi 也受到了 SpeechTokenizer 的启发,它用一个 VQ 从 WavLM 中提取信息,并加入另一个 RVQ 模块来学习声学信息。

picture.image

值得一提的是,不同类型的 token 有各自的优缺点。比如,语义 token 在生成语义连贯的语音方面表现出色,但往往缺乏声学细节,需要后续处理来增强。而声学 token 虽然能生成高保真音频,但在内容准确性上可能会遇到挑战。研究人员正在尝试通过结合不同类型的 token 或使用混合 token 来平衡这些权衡。

语言模型(Language Model)

这是SpeechLM的“核心处理器”,它的任务是根据输入的语音 token 进行自回归生成 。由于大语言模型(LLM)在文本处理上的巨大成功,SpeechLMs的语言模型架构大多直接借鉴了 TextLMs,例如 Transformer 或仅解码器(decoder-only)架构(如 OPT、LLaMA)

要让一个文本导向的 LLM 来处理语音,最直接的方法就是修改其输入输出部分,用语音 tokenizer 替代原来的文本 tokenizer 。当使用离散 token 时,原本的文本 embedding 矩阵就会被替换成一个语音 embedding 矩阵。

更有趣的是,SpeechLMs可以联合建模文本和语音两种模态 。最常用的方法就是把原始 TextLM 的词汇表(vocabulary)扩展,同时包含文本和语音 token 。这样,模型就能在一个序列中同时生成文本和语音,实现更多样化的应用。如果使用连续 token,那么语音 tokenizer 生成的 embedding 会直接输入到语言模型中,语言模型本身的架构则保持不变。

Token-to-Speech 合成器(Vocoder)

这是工厂的“最后一道工序”,它的职责是把语言模型生成出来的 token 转化回可听的语音波形 。这可以看作是语音 tokenizer 的逆过程。

Vocoder 的合成流程主要有两种:

  • 直接合成(Direct synthesis): Vocoder 直接把语言模型生成的语音 token 转换成音频波形。这种方式通常更简单、更快。像 Polyak et al. 就调整了 HiFi-GAN 架构,直接以语音 token 作为输入。
  • 输入增强合成(Input-enhanced synthesis): 在送入 vocoder 之前,会有一个额外的模块把 token 转换成连续的潜在表示,比如 mel-spectrograms 。这种方式常用于语义理解 tokenizer 生成的 token,因为它们虽然语义信息丰富,但缺乏高频细节等声学信息,需要先增强成声学信息更丰富的表示。例如,CosyVoice 就引入了一个条件流匹配模型(Conditional Flow-Matching, CFM)来把语音 token 转换成 mel-spectrogram,然后再用 HiFi-GAN 合成最终的波形。

从架构来看,基于 GAN 的 vocoder 是最常被采用的。它们以其快速和高保真 的语音合成能力而闻名。GAN 结构包含一个生成器(generator)和一个判别器(discriminator)。生成器从输入特征生成音频波形,而判别器则判断生成的音频是真实的还是伪造的。 GAN 模型通常会结合多种损失函数来优化,包括:

  • GAN loss: 这是生成器和判别器运行的基础目标。
  • Mel-spectrogram loss: 旨在让生成器合成的 mel-spectrogram 与真实波形转换来的 mel-spectrogram 对齐,以提高生成语音的保真度。
  • Feature matching loss: 通过对齐判别器编码的真实样本和生成样本的特征来进一步增强生成保真度。 在架构设计上,像 HiFi-GAN 就提出了 多周期判别器(multi-period discriminator) 来捕捉音频中多样的周期性模式。BigVGAN 则引入了周期激活函数(snake function)和抗混叠表示(anti-aliased representation)来减少合成音频中的高频伪影。 HiFi-GAN 作为最常用的 vocoder 之一,通过生成器将语音 token 映射到音频波形,同时使用多周期和多尺度判别器在对抗训练中区分真实和生成音频。

除了 GAN 之外,还有其他类型的 vocoder,比如自回归 vocoder(如 WaveNet) ,能生成高质量音频但计算成本高;基于流的 vocoder(如 WaveGlow) ,可以并行合成音频但通常需要更多参数和内存;以及基于扩散的 vocoder(如 DiffWave) ,近年来在高质量语音合成方面也展现了强大潜力。

训练策略

训练 SpeechLMs,核心在于如何有效建模语音的延续性,这主要是语言模型的任务。语音 tokenizer 和 vocoder 通常依赖已有的成熟方法进行训练。

在语言模型的预训练阶段,通常会用到大量的开源语音数据,比如 ASR、TTS、ST 的数据集,甚至播客和对话数据。预训练方法主要有两种:

1、冷启动(Cold Initialization): 模型参数随机初始化,从头开始训练。GSLM 就是这样做的,它比较了不同语音 tokenizer 的性能,发现 HuBERT 效果最好。有趣的是,一些研究还探讨了语音和文本 token 的联合建模,例如 SUTLM 发现,交替出现语音和文本 token 的“交错式语音-文本(alternating speech-text)”建模方法在跨模态评估中表现最佳

2、持续预训练(Continued Pre-Training): 这种方式是用 TextLM 的预训练权重来初始化 SpeechLM 的语言模型,然后适配它处理语音 token 。这利用了 TextLMs 中已有的语言知识,能让 SpeechLM 训练更高效。研究发现,从文本预训练检查点开始训练,效果要优于冷启动,但从图像预训练检查点开始,效果反而不好,这说明并非所有预训练知识都适用。AudioPaLM 的研究也表明,更大的预训练检查点和更大的训练数据集对 SpeechLM 都是有益的。

一个关键的挑战是如何对齐文本和语音模态的表示 。SPIRIT-LM 发现,通过交错式的文本和语音 token 序列进行持续预训练 ,可以显著提升模型在语音理解和生成方面的性能,而且文本和语音特征的相似度也更高。Spectron 则通过多目标联合监督来解决这个问题,先将输入语音转录成文本,然后模型预测文本响应,最后将文本响应合成为输出语音。

总的来说,训练 SpeechLM 比 TextLM 更具挑战性,因为文本是知识的高度浓缩形式,而语音则需要模型独立学习口语的规则。如何更好地利用文本模态来增强 SpeechLM 性能,并处理语义与非语义信息之间的权衡,仍然是值得深入探索的方向。

展望与挑战

这篇论文也提到了 SpeechLMs 领域面临的一些挑战和未来的研究方向。例如,对不同组件选择的全面理解仍然不足,需要更多研究来指导更高效的组件选择。端到端训练 也是一个重要方向,目前许多 SpeechLMs 的组件是独立训练的,如果能实现从 vocoder 输出到 tokenizer 输入的梯度反向传播,可能会带来更连贯、高保真的语音输出。

实时语音生成 是另一个重要但尚未充分探索的领域。当前的 SpeechLMs 仍存在明显的延迟,特别是在 vocoder 阶段,因为它通常要等待整个输出 token 序列生成完毕。未来可以探索流式处理(streamable pipeline)或让 SpeechLM 自主生成音频样本来降低延迟。

最后,安全问题 在 SpeechLMs 中也至关重要。除了文本大模型的常见安全风险,SpeechLMs 还有其独特的问题,例如生成不适当的声学内容(如色情语音)以及潜在的隐私泄露(如通过声学特征推断说话人的身份、种族或信仰)。这方面需要未来研究重点关注。

可以想象,随着技术的不断进步,SpeechLMs 将会在个性化助手、情感感知系统、实时多语言交流等场景中发挥越来越重要的作用。这篇综述无疑为我们理解和进一步发展 SpeechLMs 提供了宝贵的参考。

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论