【论文蒸馏】Recent Advances in Speech Language Models: A Survey
Abstract
LLM蓬勃发展,但从交互的自然性上看语音大模型(SpeechLM)有巨大的发展空间。
直接的方法是ASR(语音转文字) + LLM + TTS(文字转语音),但是这样有其固有的限制,而端到端的SpeechLM表现更好,本文及其方法论做了一个概览的综述
1. Introduction
大语言模型提供了强大的AI基础支架,在其它领域有着广泛应用。但交互上不自然,所以需要声学大模型。
一种直接的实现方式是ASR + LLM + TTS,但是有以下问题
- 信息损失: 语音信号中不只有语义信息,还有副语言信息(音调、语气等)
- 显著延迟:ASR输出需要文本生成器(text generator),TTS输入需要文本分词器(text tokenizer),这使得pipeline变复杂(本来端到端可以拉通不要的),而且ASR本身束搜索复杂度也较高
- 累计错误:分步方法容易出现的问题——一步错步步错
SpeechLM采用端到端方式,直接将声信号编码成token或表示(包含完整信息),处理之后直接生成语音/文字(减少时延)。另外因为语音编码器一同训练,所以也减缓了累计误差问题
这样的声学大模型,有潜力能够获取声纹信息并作情感分析,支持实时语音交互(可以打断),甚至能帮助保护缺少文本信息的濒危语言
本文贡献:
- SpeechLM的第一篇综述
- 分类方法及相关术语
- 指出挑战
2. 问题陈述
这里说的SpeechLM也包括支持文本输入和输出的,其区别于文本模型TextLM主要在于它的跨模态性
3. 组成部分
三大组成:语音分词器(speech tokenizer), 语言模型(Language model), 语音生成器(vocoder)
A. Speech Tokenizer
-
目标
获取音频重要特征并尽可能降低维度
-
操作
需要将音频切段,根据方法得到两种"特征": 离散的和连续的(discrete / continuous token),两者都可以用于自回归的语音模型
- discrete token用索引来表示每一段 -> 通过码本从连续空间映射到有限符号集(较符合文本处理方式)
- continuous token用embedding来表示 -> 直接使用embedding
-
两类目标及其tokenizer
- 语义理解
- 其tokenizer的核心主要是语音编码器(Speech Encoder)和量化器(Quantizer),前者将原始波形变为嵌入,后者将嵌入转为离散的"音素"索引
- 主要使用MLM(随机掩码部分输入语音,模型需预测被掩码的token)进行训练
- 利用文本注入损失可以提升跨模态任务性能,语音去噪则能提高非语义任务的鲁棒性
- 音频生成
- 其目标首先是保留重要的语音信息,往往由encoder + quantizer + decoder组成,训练过程包括生成/重建语音
- 混合目标
- 现行主流是将语音信息蒸馏到音频tokenizer中
- 语义理解
B. Language Model
采取了和TextLM类似的架构,即Transformer的decoder-only架构
如果采用discrete token形式,相当于将原来的TextLM的词汇表拓展加入了"音素"词汇,所以在演的也能接受文本输入
C. Vocoder
主要有两种pipeline:直接生成(Direct synthesis)和输入增强生成(Input-enhanced synthesis)
- Direct synthesis - 直接将语言模型生成的token变成音频信号
- 简单且快,但是要求token有充足的语音信息(比如来自音频生成目标的tokenizer)
- Input-enhanced synthesis - 在输入vocoder之前要先将token变成一种连续的潜在表征
Vocoder类别
- GAN - 快速且高逼真,一般通过Mel谱来生成语音
- 基于GAN的神经音频编解码器(GAN-based Neural Audio Codec) - 将输入特征解码为独立特征后处理
- 其它:纯信号处理(传统方法,很少用),自回归(序列性质,可捕获时序信息),基于扩散模型的
4. 训练方法
A. 特征建模 Features Modeled
即tokenizer输出的特征,分为离散和连续两种
- Discrete Features(常用)
- 许多SpeechLM只使用语义token(来自语义tokenizer),在生成有意义的语义信息上有优势。但是这种方法缺少副语言信息,所以可以加入额外的声学token。另外,只使用语义token在增强语音细节的后处理上或引入延迟
- 也有只使用声学token的
- Continuous Features
- 部分模型使用冻结的Wisper来获取中间表示
- 但是由于模型不匹配(给语言模型的不是离散的token),所以往往需要调整已有语言模型的pipeline
B. 训练阶段 Training Stages
涉及到三个组件的训练,tokenizer和vocoder通常使用已有的方法和数据集,这里主要聚焦中间语言模型的训练
- 预训练
- 内容:自回归的预测下一个语音token
- 数据:通常使用开源音频数据,包括纯音频和带对应文本的音频
- 方式
- 冷启动
- 操作: 模型参数通过随机初始化, 从零开始训练Transformer
- 不同建模: 纯语音、纯文本、语音-文本拼接、语音-文本交替(Best)
- 一些不同于Transformer的架构: 多流模型(输入和输出都多流)
- 持续预训练
- 操作: 使用 TextLM 的预训练权重初始化语言模型
- 结果: 尽管从文本预训练检查点开始训练优于冷启动初始化,但从图像预训练检查点开始的效果比冷启动更差
- 冷启动
- Add
- 对齐文本和语音模态的表示,可进一步提升 SpeechLMs 的性能。有的方法通过交替训练对齐,有的方法通过同时生成对齐
- 含文本推理和无文本推理。含文本推理同时解码文本和语音,可能增加延迟,但能增强 SpeechLM 的推理能力并减少可能的幻觉;相反,无文本推理推理效率更高,但可能缺乏稳定性
- 语言模型指令微调
- 目的: 对模型进行微调使之遵循特定指令,核心在于构建有效的指令跟随数据集
- 实现(构建数据集):
- SpeechGPT, SpeechGPT-Gen - 两阶段指令微调,第一阶段要求将语音转文本,第二阶段通过TTS作语音到语音的数据集
- Llama-Omni - 将提示文本转语音,然后用TextLM重新生成符合语音的响应文本(原响应丢弃),最后再用TTS转成语音
- COSMIC - 让 GPT-3.5 基于英语 TED 演讲转录生成问答对
- 语言模型后期对齐
- 目标: 符合人类偏好,保证安全可靠,一般使用RLHF(近端优化PPO / 直接偏好优化DPO)
- 挑战:
- 相同提示下常生成语义不一致的内容 - 对输出进行ASR转录之后,用TextLM选出偏好输出作为结果
- “黄金” 语音标记与语言模型生成标记的差异会导致声码器合成语音时声学质量下降 - 采用多种优化技术使语言模型输出与 “黄金” 标记的分布对齐
C. 语音生成范式
该部分着重强调实时交互和交互周期识别
- 实时交互
- 核心组件:
- 用户打断
- 同步响应(仍在说话时生成响应,要求同时执行语音理解和语音生成)
- 实现:
- dGSLM - 双 Transformer 架构建模双方对话,每个 Transformer 处理一方语音,并通过交叉注意力层捕捉双方内容的交互
- Parrot - 单一仅解码器 Transformer,通过在每个时间步预测双方通道的标记来同步建模双声道
- Moshi - 用户输入通道与模型响应通道拼接
- 核心组件:
- 交互周期识别
- 目标: 识别用户是否在与模型交互的能力, 模型需要理解和时加入对话何时保持沉默
- 实现: 语音阈值 / 区分查询语音和非查询语音
5. 下游应用
- 语义相关 - 理解输入语义并交互,如口语翻译、语音识别、关键词识别等
- 说话人相关 - 说话人识别,说话人验证,
- 副语言相关 - 感情识别、语音分离、真实语音生成
6. 评估
- 自动评估(客观)
- 表示评估 - 将输入变成模型可理解的表示的过程,它的准确性直接影响后续的生成。具体通过输入三个语音A, B, C,前两者属于同一类,C属于不同类,判断B和C谁和A更接近
- 语言评估 - 衡量生成的语言在造句、语义上的能力,主要考察词汇选择的正确性和适当性、输出的语法结构,以及生成内容的连贯性和相关性
- 副语言评估 - 主要对情绪、音色、韵律等副语言信息进行考察
- 生成质量与多样性 - 两者存在权衡(设置不同温度)
- 实时交互评估
- 下游任务评估 - 执行特定任务的能力(TTS, ASR, 说话人识别等)
- 人工评估(主观)
- 平均意见得分: 评测人根据预定义样表进行打分
7. 挑战与未来方向
- 组件选择 - Tokenizer, Language Model, Vocoder上有多种选择,但怎样选择在什么任务上最好还有待研究
- 端到端训练
- 实时语音生成 - 一般vocoder需要等语言模型生成全部token之后才能生成语音,造成相当程度的延迟
- 安全性问题
- 罕见语言上的表现
8. 结论
本综述全面概述了语音语言模型(SpeechLMs)的最新进展