FunCodec:音频编解码开源工具包,用于音频量化和文本到语音合成、音乐生成等

一个基础的、可重复的和可集成的用于神经语音编解码器的开源工具包

特点:

  • FunCodec 再现了最先进的模型,包括 SoundStream、Encodec 等。
  • FunCodec 可以很容易地扩展到 下游任务,例如 ASR 和 TTS。
  • FunCodec 可以在分布式 GPU 上训练模型, 和批处理模式下的推理。
  • FunCodec 原生支持频域、 更适合语音信号。
  • FunCode 模型可以通过语义标记进行增强, 例如音素和 Hubert 嵌入。

Available models

audio_codec-freqcodec_模型特点:频域模型,充分利用语音信号的短时结构,模型参数极少 (0.52M),计算复杂度极低 (0.34G flops),使用结构化 dropout 进行训练,使用单个模型在推理过程中启用各种带宽,将原始语音波形量化为离散标记序列

audio_codec-encodec_模型特点:使用大规模内部数据集进行训练,对许多场景都具有鲁棒性,在低频带宽度下实现更高的编解码器质量,使用结构化 dropout 进行训练,使用单个模型在推理过程中启用各种带宽,将原始语音波形量化为离散标记序列

与 EnCodec 和 SoundStream 相比, 使用以下改进的技术来训练模型,从而提高编解码器质量和 相同带宽下的 ViSQOL 分数:

  • 幅值频谱loss用于增强中高频信号
  • 结构化 dropout 用于平滑代码空间,并在单个模型中启用各种带宽
  • 码字由 k-means 集群而不是随机值初始化
  • 码本采用指数移动平均和死码消除机制进行维护,因此码本的利用率很高。

模型组成:

  • FunCodec 模型由五个模块组成:域转换模块、编码器、RVQ 模块、解码器和域反转模块。
  • 域变换:将信号转换为时域、短时频域、幅度-角度域或幅度-相位域。
  • 编码器:将信号编码为具有堆叠卷积层和 LSTM 层的紧凑表示。
  • 语义token(可选):使用语义标记增强编码器输出以增强内容信息,此模型中未使用。
  • RVQ:使用级联向量量化器将表示量化为离散标记的并行序列。
  • Decoder:将量化的 embedding 解码到与 inputs 相同的不同信号域中。
  • Domain Inversion:重新合成来自不同域的可感知波形。

Results

相比其他开源的音频编解码训练框架:

1. Comparison of academic models in terms of ViSQOL scores on LibriTTS dataset. † means the model is causal.

2. Comparison between FunCodec and other toolkits under (a) lower and (b) higher token rate. LS denotes Librispeech test sets. While Librispeech and gigaspeech are English corpora, aishell and Wenet are Mandarin corpora.

3. Comparison of FreqCodec and other time domain models in terms of ViSQOL score on LibriTTS. Mag denotes magnitude spectrogram. C_in represents the channel number of inputs.

Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming


Mini-Omni:语言模型可以在流中听、说和思考

Github:https://github.com/gpt-omni/mini-omni

Paper:arxiv.org/abs/2408.16725

对话训练数据集开源:VoiceAssistant-400K is uploaded to Hugging Face.基于cosyvoice合成的

  • Qwen2 as the LLM backbone.
  • litGPT for training and inference.
  • whisper for audio encoding.【用于模型音频表征编码】
  • snac for audio decoding.【RVQ架构用于模型音频解码】
  • CosyVoice for generating synthetic speech.【用于合成训练数据】
  • OpenOrca and MOSS for alignment.
  • Mini-Omni的基本思想是通过文本来指导音频的生成,这种方法基于假设:text token有更高的信息密度,可以使用更少的token表示相同的信息。
  • 生成音频token时以对应文本token为条件,类似在线语音合成系统,且生成音频前用 N 个pad token填充,确保先产生文本token。
  • 模型可依据说话者和风格的embedding,控制说话者特征和风格元素。

Introduction  

Mini-Omni,这是一种基于音频的端到端对话模型,能够进行实时语音交互。为了实现这种能力,提出了一种文本指导的语音生成方法,以及推理过程中的批处理并行策略,以进一步提高性能。该方法还有助于以最小的退化保留原始模型的语言能力,使其他工作能够建立实时交互能力。我们将这种训练方法称为 “Any Model Can Talk”。我们还引入了 VoiceAssistant-400K 数据集以微调针对语音输出优化的模型。据我们所知,Mini-Omni 是第一个用于实时语音交互的完全端到端的开源模型,为未来的研究提供了宝贵的潜力。

Figure 1:The Mini-Omni model architecture.

 Mini-Omni,这是第一个具有实时对话功能的开源多模型大型语言模型,具有完全端到端的语音输入和输出功能。它还包括各种其他音频转文本功能,例如自动语音识别 (ASR)。我们采用了目前可用的现成方法来离散语音标记,并采用了最简单的模型架构,使我们的模型和方法很容易被其他研究人员采用。直接音频推理带来了重大挑战;然而,我们的方法仅使用 0.5B 模型和有限数量的合成音频数据就成功地解决了这个问题

重要的是,我们的训练框架可以在不严重依赖广泛的模型功能或大量数据的情况下实现这一目标。

为了利用和保留语言模型的原始功能,我们提出了一种并行生成范式,其中 transformer 同时生成音频和文本标记。随后,我们观察到音频模态对文本能力的影响很小,并进一步引入了基于批处理的并行生成,这显着增强了模型在流式音频输出过程中的推理能力。作为一个 重要决策,我们选择不牺牲音频质量来换取更简单、比特率更低的音频编码器,以降低模型中音频推理的复杂性。但是,为了确保音频质量,我们选择了 SNAC ,这是一款音乐级编码器,具有 8 层码本,每秒处理数百个令牌。创新地,我们应用了文本指导的延迟并行生成解决长 SNAC 码本序列的问题。实验表明,音频输出质量与常见的 TTS 系统相当。

我们还提出了一种方法,该方法只要对原始模型进行最少的训练和修改,使其他工作能够快速发展自己的语音能力。我们将这种方法称为 “Any Model Can Talk”,旨在使用有限数量的附加数据实现语音输出。该方法通过额外的适配器和预先训练的模型来扩展语音功能,并使用少量合成数据进行微调。这与上述并行建模方法相结合,可以在新模态中启用流式输出,同时保留原始模型的推理能力。

最后,观察到大多数开源 QA 数据集都包含混合代码或过长的文本,这使得它们不适合语音模型。为了克服这一限制,我们引入了 VoiceAssistant-400K 数据集,其中包含超过 400,000 个由 GPT-4o 专门生成的条目,用于语音助理监督微调 (SFT)。

方法

提出了一种同时生成文本和音频的新方法。这种方法假设文本输出具有更高的信息密度,因此可以通过更少的标记实现相同的响应。在生成音频标记的过程中,模型能够高效地基于对应的文本标记进行条件生成,类似于在线 TTS 系统。为确保在生成音频标记之前先生成对应的文本标记,我们在模型中引入了以 N 个标记进行填充的机制,该值可作为超参数进行调整。此外,模型还能够基于说话人嵌入风格嵌入进行条件生成,从而实现对说话人特征和风格元素的控制。

将audio token和text token合并成新的词表,生成时同时预测audio token和text token,Loss如下:

其中 T ,A 是训练语料 C 中的文本-音频输出对,m 是训练样本的数量。 Xj 是第 j 个示例的输入条件,nj 是 的最大个数样本 Tj 和 AjTi,j 和 Ai,j 表示第 j 个样本的第 i 个文本标记和音频标记。

解码策略

Mini-Omni 对响应进行了重组,通过文本-音频并行解码方法将这些推理能力转移到流式音频输出。这种方法同时输出音频和文本令牌,并通过文本到语音合成生成音频,确保实时交付,同时利用基于文本的推理优势。为了与大型模型的输入保持一致,在生成下一个标记之前,将并行生成的所有序列相加,如图 1 所示。这种方法使模型能够在聊天场景中实现实时语音输出,同时将第一个标记延迟降至最低。

文本延迟并行解码。并行生成最早是由 MusicGen引入的,以加速音乐生成过程,我们已将这种方法集成到文本模态中以增强推理能力。并行解码是可行的,因为语言模型训练中使用的音频标记码本通常由多个层组成;同时生成所有层可以显著提高模型速度。对于实时语音输出模型,并行解码更为重要,它允许在标准设备上每秒生成数百个音频令牌。在本文中,我们采用 SNAC 作为音频编码器,它由 7 个具有互补关系的标记层组成。因此,我们采用 8 个子语言模型头(sub-Language Model heads),一步生成 8 个标记,包括文本,同时在相邻层之间保持一步延迟。由于音频令牌是从文本合成派生的,因此首先输出文本令牌,然后输出从第一层到第七层的 SNAC 令牌。我们提出的文本优先延迟并行解码的过程如图 2(b) 所示。

批量并行解码。尽管前面介绍的并行生成方法有效地将推理能力从文本模态转移到音频模态,但我们的实验表明,模型的推理性能在文本和音频任务之间仍然存在差异,音频响应往往更简单。我们假设这是由于模型容量的限制或音频数据不足造成的。为了解决这个问题并进一步增强模型在对话过程中的推理能力,最大限度地转移其基于文本的能力,我们实验性地采用了 Batch 方法。鉴于该模型在文本模态中的性能更强,我们将单个输入的推理任务扩展到批量大小 2:如前所述,一个样本需要文本和音频响应,而另一个样本只需要文本响应,专注于基于文本的音频合成。但是,第一个样本的文本标记输出将被丢弃,第二个样本的文本输出将嵌入到第一个样本的相应文本标记位置。同时,使用第二个样本的纯文本响应中的内容对第一个样本中的音频进行流式处理;我们将此过程称为 Batch 并行解码。通过这种方法,我们以最小的资源开销,有效地、几乎完全地将模型的基于文本的能力转移到音频模态中,从而显着增强了它在新模态中的推理能力。批量并行解码的推理过程如图 2(c) 所示。我们相信批量并行解码代表了一项关键的算法创新,它使如此小的模型能够表现出强大的对话能力。

训练方法:Any Model Can Talk

该方法旨在尽可能保留原始模型的功能。这首先是由于我们的基础模型的强大性能,其次是因为该方法可以应用于其他在文本输出方面表现出色但缺乏强大的语音交互能力的工作。

Audio Encoding:音频输入主要侧重于从输入音频中提取特征,选项包括 Hubert 或单独预训练的音频编码器。鉴于我们专注于语音输入,Whisper  和 Qwen2-audio也展示了在一般音频任务中的有效性能。对于音频输出,使用多码本方法选择音频令牌可以更好地捕获音频细节。尝试了用于音频令牌建模的扁平化,但结果导致令牌过长,这对流式有害,并导致学习不稳定。相反,受 MusicGen 启发的并行解码采用了延迟模式与文本条件相结合。

三阶段训练。 我们的训练方法分为三个不同的阶段:(1) 模态对齐。此阶段的目标是增强文本模型理解和生成语音的能力。Mini-Omni 的核心模型完全冻结,只允许在两个适配器中使用gradients 。在此阶段,我们使用来自语音识别和语音合成的数据来训练模型的语音识别和合成能力。(2) 适应训练。一旦新模态与文本模型的输入对齐,适配器就会被冻结。在这个阶段,我们只专注于在给定音频输入时训练模型的文本功能,因为音频输出只是从文本合成的。该模型使用来自语音识别、语音问答和其他文本响应的任务【 TextQA 和 AudioQA 】的数据进行训练。(3) 多模态微调。在最后阶段,使用综合数据对整个模型进行微调。此时,所有模型权重都已解冻并训练。由于主要模态对齐任务是在适配器训练期间处理的,因此最大限度地保留了原始模型的功能。

模型输入 ID。给定 8 个并行输出序列,输入也需要 8 个序列,这导致了极大的复杂性。因此,我们在这里简要概述了模型输入的组织。该模型可以接受文本或音频输入,这些输入被放置在相应的模态序列中。对于音频输入,输入token和 Whisper 特征通过适配器转换为相同维度的张量,然后连接起来。根据任务的不同,我们将特殊 token 放置在不同的位置,引导模型的输出,实现多模态输出。一些任务的组织如图 4 所示。在输入模型之前,所有序列都会相加并求平均值以集成特征。

实验

数据:

为了建立基础语音功能,我们使用三个语音识别数据集训练了模型,总计约 8,000 小时,专注于语音理解和合成。对于文本模态,我们整合了来自 Open-Orca (OpenOrca,) 数据集的 200 万个数据点,并将它们与其他模态集成以保持文本准确性。Moss 的 SFT 数据集 (Sun et al., 2024) 与零样本 TTS 一起使用,合成了 150 万个语音 QA 对。为避免不合适的代码和符号输出,我们使用 GPT-4o 创建了 VoiceAssistant-400K 数据集。表 1 中详细介绍了数据集。阶段 1 涉及用于训练语音适配器的 ASR 数据。阶段 2 使用 TextQA 和 AudioQA 进行音频/文本输入和文本响应训练。第 3 阶段侧重于使用 AudioQA 的音频模态进行多模态交互。最后阶段的培训包括退火和语音 QA 微调。

数据集及其用于训练 Mini-Omni 的用途如下:在模态表示法中,T 和 A 表示文本和音频模态,下标 1 和 2 表示输入或输出。

训练参数:

模型在 8 个 A100 GPU 上进行训练,使用余弦退火学习率调度器,最小学习率为 4e-6,最大学习率为 4e-4。每个训练 epoch 由 40000 个步骤组成,每个步骤的批次大小为 192。基本语言模型采用 Qwen2-0.5B ,这是一种具有 24 个块且内部维度为 896 的 transformer 架构。语音编码器使用 Whisper-small 编码器,ASR 适配器通过两层 MLP 连接,TTS 适配器通过添加 6 个额外的transformer 块来扩展原始模型。在微调过程中,我们使用从 4e-6 到 5e-5 的学习率。

实验结果:

首先评估了该模型在 ASR 任务上的性能,以评估其语音理解能力。使用 LibriSpeech 的四个测试集。

Case Study 

我们展示了几个案例来演示 Mini-Omni 在语音理解和推理方面的能力。这些示例表明,与基于文本的推理相比,基于语音的推理要弱一些,这凸显了批量生成的必要性。更多令人印象深刻的例子,请参考 https://github.com/gpt-omni/mini-omni。

总结 

Mini-Omni,这是第一个具有直接语音转语音功能的多模态模型。在以前使用文本引导语音生成的方法的基础上,我们提出了一种并行文本和音频生成方法,该方法利用最少的额外数据和模块将语言模型的文本功能快速传输到音频模态,支持具有高模型和数据效率的流式输出交互。我们探索了文本指令流式并行生成和批量并行生成,进一步增强了模型的推理能力和效率。我们的方法使用只有 5 亿个参数的模型成功地解决了具有挑战性的实时对话任务。我们开发了基于前适配器和后适配器设计的 Any Model Can Talk 方法,以最少的额外训练促进其他模型的快速语音适应。此外,我们还发布了 VoiceAssistant-400K 数据集,用于微调语音输出,旨在最大限度地减少代码符号的生成,并以类似语音助手的方式帮助人类。我们所有的数据、推理和训练代码都将在 https://github.com/gpt-omni/mini-omni 逐步开源。

Mini-Omni2:多模态交互实时对话模型

🤗 Hugging Face | 📖 Github | 📑 Technical report

Mini-Omni2: Towards Open-source GPT-4o with Vision, Speech and Duplex Capabilities

Mini-Omni2 是一种全能互动模型。它可以理解图像、音频和文本输入,并与用户进行端到端的语音对话。具有实时语音输出全方位的多模态理解说话时与中断机制的灵活交互能力。

✅ 多模态交互:具有理解图像、语音和文本的能力,就像 GPT-4o 一样。

✅ 实时语音转语音对话功能。不需要额外的 ASR 或 TTS 模型,就像 Mini-Omni 一样。

1、为什么不使用 token-in-token-out 范式

为了有限数据量的高效训练由于与理解能力相关的挑战,作者选择来自预训练编码器的特征和文本嵌入被连接起来以形成模型的输入。token-in不足以可靠地传达语音输入的内容,训练损失很高。

2、如何实现实时响应:

对文本和音频采用延迟并行输出方法,可以立即响应音频 。

3、如何做到打断对话:

认为当前的全双工训练仍然不够稳定,而基于输入语义信息的中断对于实现稳定和灵活的人机交互至关重要。探索了一种基于命令的中断方法,利用流式令牌作为输入并构建训练数据,使模型能够根据外部语义线索控制其音频输出流

GPT-4o 是一个包罗万象的模型,代表了大型多模态语言模型发展的一个里程碑。它可以理解视觉、听觉和文本模态,直接输出音频,并支持灵活的双工交互。来自开源社区的模型通常实现了 GPT-4o 的一些功能,例如视觉理解和语音聊天。然而,由于多模态数据的复杂性、复杂的模型架构和训练过程,训练包含所有模态的统一模型具有挑战性。 Mini-Omni2是一种视觉音频助手,能够为 visoin 和音频查询提供实时、端到端的语音响应。通过集成预先训练的视觉和听觉编码器,Mini-Omni2 可以在各个模态中保持性能。我们提出了一个三阶段的训练过程来调整模态,允许语言模型在有限的数据集上训练后处理多模态输入和输出。在交互方面,我们引入了基于命令的中断机制,使与用户的交互更加灵活。据我们所知,Mini-Omni2 是 GPT-4o 最接近的复制品之一,它们具有相似的功能形式,我们希望它能为后续研究提供有价值的见解。

Mini-Omni2 作为 Mini-Omni 的延续,采用单一模型端到端模拟 GPT-4o 的视觉、语音和文本功能,并通过独特的基于命令的中断机制进行增强。与 Mini-Omni 一致,我们保留 Qwen2作为基础模型,利用这种紧凑的架构实现跨三种模态的全面多模态理解和实时流式语音推理。此外,我们使模型能够实时接收外部音频输入,模拟其 “听觉” 感知并根据内容语义控制语音输出流。Mini-Omni2 的模型架构如图 1 所示。作为一个端到端模型,我们通过直接采用经典的预训练视觉编码器 CLIP和语音识别模型 Whisper 的编码器组件来提高数据利用效率并展示 Mini-Omni2 算法的泛化性作为视觉和音频输入的特征提取器。来自预训练编码器的特征和文本嵌入被连接起来以形成模型的输入。由于与理解能力相关的挑战,我们没有采用 token-in-token-out 范式。此外,该模型对文本和音频采用延迟并行输出方法,可以立即响应音频像GPT-4o一样。

在 Mini-Omni2 中,我们提出了一种基于有限数据量的高效训练方法,旨在使模型的训练方法能够辅助其他多模态模型进行模态扩展。因此,我们避免了盲目地以指数方式扩展数据集,而是寻求使用最少的新数据开发一种多模态扩展方法。我们采用了模态扩展、对齐和联合训练的三阶段训练过程。最初,Mini-Omni2 模型使用语音识别和图像标题数据集进行适配器训练,从而拓宽了多模态理解的范围。接下来,Mini-Omni2 接受了跨模态问答任务中的文本输出训练,使基于适配器的输出功能与文本嵌入保持一致,以实现有效的问答。在第三阶段,我们通过结合音频输出和听觉能力(如中断)训练,专注于多模态输出能力

关于模型的语音交互能力,Mini-Omni2 继续使用 SNAC 分词器来确保高质量的语音输出。然而,根据我们的观察,我们认为当前的全双工训练仍然不够稳定。因此,我们认为基于输入语义信息的中断对于实现稳定和灵活的人机交互至关重要。我们使模型能够使用 SNAC 对其接收到的“听觉”波形进行实时编码,生成允许它在每次生成期间控制自己的输出的令牌。作为演示,我们使用短语 “stop omni” 构建数据,使用帧级 irq 和 n-irq 特殊token来控制生成过程。

Mini-Omni2

模型

Mini-Omni2 的模型架构如图 1 所示。除了文本嵌入模块外,Mini-Omni2 还采用了 CLIP 和 Whisper-small 的视觉组件作为视觉和听觉模态的编码器,从而在训练期间实现高效的数据利用,并最大限度地减少了大量的预训练工作。此外,Mini-Omni2 具有实时双工功能,为模型交互提供了更大的灵活性。

视觉编码器 – 我们利用 CLIP 的视觉组件,特别是 ViT-B/32 模型,作为视觉编码器,它将输入的图像转换为长度为 49 的特征序列,用于图像补丁和全局语义特征。Mini-Omni2 将这些连接起来形成长度为 50 的原始特征序列,使用单层 LlamaMLP作为视觉适配器。

Audio Encoder – 在编码器部分,我们使用 Whisper-small 模型作为音频编码器来继续之前的工作。我们选择不对音频输入和输出采用 token-in-token-out 建模方法,原因有两个。(i) 语音识别的语义一致性很强。由 OpenAI 提出的 Whisper 模型经过数千小时的数据集训练,表现出卓越的稳健性。此外,我们出乎意料地发现,尽管没有在任何中国数据集上进行训练,但 Mini-Omni 表现出对中国数据的理解。我们认为,这是因为 Whisper 模型能够自动对齐来自不同语言、语气和噪声级别的音频,这些音频传达了相同的含义,从而使模型能够专注于用户的意图。 (ii) 不稳定的开源音频token。我们观察到一种现象,即 a) Mini-Omni2 的音频损失在训练期间仍然很高,并且 b)音频片段的token可能会根据两端的内容而发生显著变化。我们认为,token不足以可靠地传达语音输入的内容,与 Whisper 等语义特征相比,ASR 的性能不佳就证明了这一点。

Mini-Omni2 使用 Qwen2-0.5B 基础版本作为其基础语言模型。我们使用 LitPT训练框架移植了基于 Llama 的 Qwen2 模型,采用 0.5B 模型的配置作为基本语言模型。对于图 3 所示的多层码本的并行生成,我们通过添加 7 × 4160 个 sub-LM-head 来扩展 Qwen2 模型的词汇表,如图 4 所示,得出词汇量为 181,120 个。

损失:对于同时生成的音频和文本标记,负对数似然损失可以表示为公式 :

多模态标记 – 混合输入 – 图 3 说明了模型一些主要任务的输入和输出标记建模。由于该模型包含多个 LM 头,因此它以自回归方式生成多个序列。因此,该模型还将多个序列作为输入。输入序列可以包含从最少一种模态到最多三种模态的混合输入。

  •  视觉 – [音频|文本] 输入。实验表明,当自回归任务与语义信息相连接时,Transformer 架构更容易训练并产生更自然的反应。因此,如图 3 (a) 所示,我们首先放置视觉适配器处理的视觉特征,然后是音频适配器处理的 Whisper 特征。最后,在需要自回归生成响应的位置,我们为响应放置一个特殊的 token。总长度约为 50(CLIP 特征长度)+ L(Whisper 特征长度)。
  • 单模态输入 单模态输入可以由视觉、语音或文本输入组成。我们将视觉和音频模态的特征放在第 1 层到第 7 层。将复制这些特征,以便在所有图层要素之间进行平均时增强其突出性。值得注意的是,当仅输入单个模态的特征而不受特殊标记的控制时,默认任务是图像字幕、语音到文本的问答和文本到文本的问答。

文本-音频并联解码。在 Mini-Omni2 中,我们基本上保留了 Mini-Omni 的输出策略,采用 Text-Instruct Delay Parallel Decoding 算法来增强音频生成。这种方法利用文本-音频并行解码来同时生成音频和文本令牌,并利用文本到语音合成进行实时输出。我们继续 MusicGen  引入的并行生成方法,使用 SNAC 作为音频编码器,它由七个互补的令牌层组成。在一个步骤中,我们生成了 8 个标记,包括文本,同时在层之间保持一步延迟。此外,我们还采用了一种 Batch 方法,该方法涉及两个样本:一个需要文本和音频响应,另一个需要仅文本响应。通过丢弃第一个样本中的文本标记并将第二个样本的输出嵌入到第一个样本中,我们有效地将模型的基于文本的功能转移到音频任务中,从而以最小的资源开销显著提高推理能力。

训练策略

Mini-Omni2 的整个训练过程如图 5 所示。培训过程分为三个阶段,每个阶段采用多任务培训。在图中,除了阶段 1 之外,还合并了一个基础文本到文本任务,但未明确描述。我们将整个训练过程分为三个阶段:

  • 多模态编码器适应 在第一阶段,我们采用快速、小规模的训练,只关注连接语言模型和编码器的线性层的权重。阶段 1 的目标是确保模型接收的多模态特征与模型嵌入层中表示的文本标记的特征非常相似。我们认为这种方法有两个主要优点:1. 它允许模型在随后的训练中专注于特定模态问答中的逻辑推理。2. 它最大限度地减少了语言模型核心中的参数变化,否则这些变化会因适应其他模态而导致。
  • 模态对齐 在第 2 阶段,模型训练的主要任务是将基于文本输入的问答能力转移到基于图像和音频的问答能力。在此步骤中,在阶段 1 中训练的适配器被暂时冻结语言模型的权重参与训练。在此阶段,所有任务都不涉及音频响应。对于基于图像和基于音频的 QA 等任务,仅生成基于文本的响应来建立模型的基本逻辑功能。语音输出只是这种逻辑能力在不同模态中的延伸。
  • 训练后 在第 3 阶段,模型的任务是扩展输出模态以包括音频响应生成。如图 5 所示,该模型将针对第 1 阶段和第 2 阶段的所有任务进行训练,并为所有问答任务提供音频令牌输出。此外,该模型将学习中断机制

双工交互

实时对话模型需要具有双工功能,以实现更灵活的交互。但是,这种中断机制不应该是一个简单的基于 VAD(语音活动检测)的机制,而是一个可以确定用户是否打算中断模型的系统。此外,模型的能力应该非常健壮,能够处理各种外部情况(例如,噪音、其他对话和不相关的声音)。我们通过基于命令的任务来探索此功能,当用户说出 “Stop Omni” 时,模型将立即停止说话。此外,这种方法可以通过开发更符合上下文的中断数据集,自然地扩展为包含更复杂的语义中断机制。

背景噪声选择:(1) 我们随机使用了来自 Libri-tts 数据集的各种语音识别样本作为原始人类噪声数据样本。(2) 我们使用了来自 MUSAN数据集的样本,其中包括音乐、人声、白噪声和城市噪声。

语义中断构造:我们将 “Stop Omni” 与随机的语音音色合成,随后与噪声混合。具体的数据构造方法将在下一节中介绍。

结合上述数据,该模型将接收到包含各种噪音中的 “Stop Omni” 短语的长序列数据。该模型将实时生成两种类型的状态 token:irq 和 n-irq,分别代表用户打断和不打断的意图。在推理过程中,当模型输出 irq token 时,它会停止生成过程并开始监听新的 question。对于此任务,我们使用token作为输入来增强模型的实时处理能力。

训练:

Mini-Omni2 模型在 8 个 A100 GPU 上完成了所有训练步骤。在适配器训练阶段,学习率从 2e-5 到 1e-3 不等,而训练语言模型使用的学习率在 2e-6 和 2e-4 之间。最后的微调是在 2e-6 到 2e-5 的学习率范围内进行的。采用了余弦调度器,具有 1500 个预热步骤,全局批处理大小为 192。使用完整数据集对每个阶段进行一个 epoch 的训练。前面介绍了视觉和音频编码器的规模,使用的语言模型是 Qwen2-0.5B 基本模型。所有型号适配器均使用中间尺寸为 4,864 的 Llama-MLP。

数据集:

语音对话数据合成:

Spoken Dialogue Data:使用语音识别数据集作为随机语音音色库。为了确保训练的稳健性,从该数据集中随机选择一个样本作为输入所有口语对话数据的语音提示,并采用 CosyVoice进行零镜头语音合成。对于所有问答数据的输出,使用来自内部 TTS 系统的相同语音音色。

中断数据:首先,对噪声数据进行流式编码和解码,以模拟模型的实时流式输入。然后,提取噪声数据的随机段。在此段落的末尾,插入一个 “Stop Omni” 乐句,以与对话数据相同的方式使用随机语音音色生成。最后,在此段的末尾附加一个 0-10 秒的额外“尾巴”。在标注方面,尾部之前的所有数据都标记为 “n-irq”,而尾部段被标记为 “irq”,表示模型应该被打断。

结果:

改进空间:

以下几个方面值得探索和改进:

 1. 模型和数据大小的缩放。Mini-Omni2 的目标是用有限的资源训练小模型,我们相信更多的数据和计算可以大大增强其能力。 

2. 改进音频输出的风格控制和多样性(情感、自然度、音色、口音和歌唱)。

 3. 更丰富的语义中断机制。

SNAC: RVQ的扩展,多尺度神经音频编解码器

SNAC: Multi-Scale Neural Audio Codec

Githubhttps://github.com/hubertsiuzdak/snac

demo:https://hubertsiuzdak.github.io/snac/

语音对话大模型的应用Mini-Omni: Language Models Can Hear, Talk While Thinking in Streaming,使用了snac作为audio decoding

残差矢量量化(RVQ)已成为使用级联 VQ 代码本进行神经音频压缩的标准技术。 本文提出了一种多尺度神经音频编解码器,它是 RVQ 的简单扩展,其中量化器可以在不同的时间分辨率下运行。 通过在可变帧率下应用量化器层次结构,编解码器适应了跨多个时间尺度的音频结构。 正如广泛的客观和主观评估所证明的那样,这将带来更有效的压缩。

SNAC多尺度神经音频编解码器),是对当前音频残差量化方法的简单扩展,通过在不同的时间分辨率上引入量化来形成音频的多尺度离散表示。

比较传统的残差向量量化 (RVQ) 和我们提出的多尺度残差向量量化。 图表描绘了两种方法产生的离散符元。 在传统的 RVQ 方法中,多层的token都是以固定的时间分辨率生成的,而 SNAC 利用在多个时间分辨率上运行的分层量化器,使编解码器能够更有效地捕获粗略和精细的细节。
stride从4,2,1逐渐降低,时间分辨率逐渐增加,对应上图的由粗到细的时间分辨率量化,对应 不同速率的符元序列

方法:

模型建立在 RVQGAN的基础上,这是一个具有残差向量量化 (RVQ) 瓶颈的编码器-解码器网络。 它使用级联的 Nq 向量量化层,其中每一层将残差 𝐱∈ℝT×C 映射到形状为 T×D 的单热向量序列,其中 T 表示帧数,C 是编码器维度,D 是码字维度。

多尺度残差向量量化

我们的工作通过引入多尺度残差向量量化(如上图所示)扩展了 RVQGAN。 在每次迭代 中,将残差下采样 Wi 倍,执行码本查找,然后上采样 Wi 倍以匹配 𝐱 的原始时间分辨率 T。 在实践中,我们使用平均池化进行下采样,并使用最近邻插值进行上采样

噪声块(Noise Block)

为了引入随机性并增强解码器的表现力,我们在每个上采样层之后添加了一个噪声块。该块通过更新输入来向激活值添加噪声:
x←x+Linear(x)⊙ε
其中 ε∼N(0,1) 是高斯噪声,⊙ 表示逐元素乘法。这种机制允许模型注入与输入相关的噪声。实验发现,噪声块可以改善重建质量,并促进码书(codebook)的更好利用。

深度卷积(Depthwise Convolution)

深度可分离卷积最初被引入是为了在视觉应用中构建更轻量的模型。通过对每个输入通道应用单个滤波器,该方法显著减少了计算量和模型大小。建议在生成器中使用深度卷积,不仅可以减少参数数量,还能稳定训练过程。基于 GAN 的声码器(vocoders)以其训练的不稳定性而闻名,通常在早期训练阶段会出现梯度发散,导致训练不稳定甚至模型崩溃。

局部窗口注意力(Local Windowed Attention)

在我们的模型中,我们在编码器和解码器中最低时间分辨率处引入了单层局部窗口注意力。这样设计的动机是利用注意力机制根据不同输入自适应地关注相关特征。此外,这种机制可以与后续的平均池化互为补充,从而有助于捕获上下文表示。类似地,文献【13】中引入了 LSTM 层,以更有效地建模时间依赖性。

详细网络结构:

一般音频:

编码器和解码器都在最低时间分辨率处包含局部窗口化注意力层。 我们用深度卷积替换了大多数卷积,除了嵌入、输出投影和上采样层。 编码器使用下采样层级联,速率分别为 [2, 3, 8, 8],解码器中相应的上采样层速率为 [8, 8, 3, 2]。 在 RVQ 中,我们使用 [8, 4, 2, 1] 的降采样因子(步长),有效地将 44.1 kHz 的输入信号压缩为四种不同速率的符元序列,分别为 14、29、57 和 115 Hz。 每个码本包含 4096 个条目(12 位),总比特率为 2.6 kbps。 该模型由编码器中的 1600 万个参数和解码器中的 3830 万个参数组成,总共 5450 万个参数。 我们应用相同的架构在 32 kHz 音频上进行训练,导致符元速率分别为 10、21、42 和 83 Hz,总比特率为 1.9 kbps。

语音:

对于语音编解码器,通过调整编码器(以及相应的解码器)中的降采样因子来修改架构,调整后的因子为 [2, 4, 8, 8]。 在残差向量量化中,我们使用 [4, 2, 1] 的步长。 该模型在 24 kHz 音频上进行训练,导致符元速率分别为 12、23 和 47 Hz,有效比特率为每秒 984 比特。 此外,我们减少了卷积通道的数量,导致编码器中有 670 万个参数,解码器中有 1300 万个参数,总共 1980 万个参数。 我们省略了语音编解码器中的局部窗口化注意力层,使架构完全卷积化。

实验:

图 2: MUSHRA 听力研究结果,置信区间为 95%。 我们可视化了 SNAC 相比于先前最先进方法的性能。 我们发现 SNAC 在使用明显更低的比特率的情况下,性能优于现有的语音编解码器,并且在音乐重建质量方面与 DAC 相当,但比特率明显更低。

音乐

我们将第 4.1 节中介绍的针对通用音频的两种 SNAC 变体与 MusicGen [28] 中 Encodec [13] 的 32 kHz 检查点以及使用 3、6 或 9 个码本的官方 DAC [2] 检查点进行比较。 我们观察到,SNAC 明显优于其他编解码器,例如在可比较比特率下运行的 Encodec(32 kHz)和 DAC(使用 3 个码本)。 值得注意的是,SNAC 甚至与比特率是其两倍以上的编解码器相竞争。 此外,在 32 kHz 和 44 kHz 下的 SNAC 模型之间感知到的音频质量差异很小,这表明 32 kHz 模型足以完成大多数任务,并提供更低比特率的额外优势。

语音

对于语音,我们将 SNAC 语音模型与 EnCodec(24 kHz 检查点)和 DAC 进行比较,使用不同的码本数量。 在我们的评估中,SNAC 一直优于所有其他编解码器。 值得注意的是,即使在低于 1 kbit/s 的比特率下,SNAC 仍然保持着接近参考信号的音频质量。 这种效率使其在带宽受限的应用中特别有利,在这些应用中,保持语音的清晰度和可懂度至关重要

结论

我们介绍了多尺度神经音频编解码器 (SNAC),它是残差矢量量化的扩展,使用在多个时间分辨率下运行的量化器。 这种多尺度方法适应了音频信号的固有结构,从而实现更高效的压缩。 消融研究证实了我们设计选择的意义。 SNAC 在音乐和语音领域都优于现有的最先进的编解码器,在更低的比特率下提供更高的音频质量,正如广泛的客观和主观评估所证明的那样。 通过开源我们的代码和模型,我们旨在为神经音频压缩研究的进步做出贡献。

Awesome Speech LM Survey-语音大模型综述

在这个代码库中,我们研究了以下三个关键领域:(1) 表征学习,(2) 神经编解码器,以及 (3) 语言模型,这些领域共同推动了语音/音频大语言模型的发展。

  1. 语音表征模型:这些模型专注于学习语音的结构化表征,随后将其量化为离散的语音标记,通常被称为语义tokens
  2. 语音神经编解码模型:这些模型旨在学习语音和音频的离散标记,通常被称为声学tokens,同时保持良好的重构能力和低比特率。
  3. 语音大语言模型这些模型基于语音和声学token,采用语言建模方法进行训练,在语音理解和语音生成任务中展现出较高的能力。

Existing SpeechLMs

ModelTitleUrl
OpenAI Advanced Voice ModeOpenAI Advanced Voice ModeLink
Claude Voice ModeClaude Voice ModeLink
MindGPT-4o-Audio理想同学MindGPT-4o-Audio实时语音对话大模型发布Link
VITA-AudioVITA-Audio: Fast Interleaved Cross-Modal Token Generation for Efficient Large Speech-Language ModelLink
VoilaVoila: Voice-Language Foundation Models for Real-Time Autonomous Interaction and Voice Role-PlayLink
Kimi-AudioKimi-Audio Technical ReportLink
LyraLyra: An Efficient and Speech-Centric Framework for Omni-CognitionLink
Flow-OmniContinuous Speech Tokens Makes LLMs Robust Multi-Modality LearnersLink
NTPPNTPP: Generative Speech Language Modeling for Dual-Channel Spoken Dialogue via Next-Token-Pair PredictionLink
Qwen2.5-OmniQwen2.5-Omni Technical ReportLink
CSMConversational Speech Generation ModelLink
MinmoMinMo: A Multimodal Large Language Model for Seamless Voice InteractionLink
SlammingSlamming: Training a Speech Language Model on One GPU in a DayLink
VITA-1.5VITA-1.5: Towards GPT-4o Level Real-Time Vision and Speech InteractionLink
Baichuan-AudioBaichuan-Audio: A Unified Framework for End-to-End Speech InteractionLink
Step-AudioStep-Audio: Unified Understanding and Generation in Intelligent Speech InteractionLink
MiniCPM-oA GPT-4o Level MLLM for Vision, Speech and Multimodal Live Streaming on Your PhoneLink
SyncLLMBeyond Turn-Based Interfaces: Synchronous LLMs as Full-Duplex Dialogue AgentsLink
OmniFlattenOmniFlatten: An End-to-end GPT Model for Seamless Voice ConversationLink
SLAM-OmniSLAM-Omni: Timbre-Controllable Voice Interaction System with Single-Stage TrainingLink
GLM-4-VoiceGLM-4-Voice: Towards Intelligent and Human-Like End-to-End Spoken ChatbotLink
Scaling Speech-Text Pre-training with Synthetic Interleaved DataLink
SALMONN-omniSALMONN-omni: A Codec-free LLM for Full-duplex Speech Understanding and GenerationLink
Mini-Omni2Mini-Omni2: Towards Open-source GPT-4o with Vision, Speech and Duplex CapabilitiesLink
UniaudioUniaudio: An audio foundation model toward universal audio generationLink
ParrotParrot: Autoregressive Spoken Dialogue Language Modeling with Decoder-only TransformersLink
MoshiMoshi: a speech-text foundation model for real-time dialogueLink
Freeze-OmniFreeze-Omni: A Smart and Low Latency Speech-to-speech Dialogue Model with Frozen LLMLink
EMOVAEMOVA: Empowering Language Models to See, Hear and Speak with Vivid EmotionsLink
IntrinsicVoiceIntrinsicVoice: Empowering LLMs with Intrinsic Real-time Voice Interaction AbilitiesLink
LSLMLanguage Model Can Listen While SpeakingLink
SpiRit-LMSpiRit-LM: Interleaved Spoken and Written Language ModelLink
SpeechGPT-GenSpeechGPT-Gen: Scaling Chain-of-Information Speech GenerationLink
SpectronSpoken Question Answering and Speech Continuation Using Spectrogram-Powered LLMLink
SUTLMToward Joint Language Modeling for Speech Units and TextLink
tGSLMGenerative Spoken Language Model based on continuous word-sized audio tokensLink
LauraGPTLauraGPT: Listen, Attend, Understand, and Regenerate Audio with GPTLink
VoxtLMVoxtLM: Unified Decoder-Only Models for Consolidating Speech Recognition, Synthesis and Speech, Text Continuation TasksLink
VITAVITA: Towards Open-Source Interactive Omni Multimodal LLMLink
FunAudioLLMFunAudioLLM: Voice Understanding and Generation Foundation Models for Natural Interaction Between Humans and LLMsLink
VoiceboxVoicebox: Text-guided multilingual universal speech generation at scaleLink
LLaMA-OmniLLaMA-Omni: Seamless Speech Interaction with Large Language ModelsLink
Mini-OmniMini-Omni: Language Models Can Hear, Talk While Thinking in StreamingLink
TWISTTextually pretrained speech language modelsLink
GPSTGenerative pre-trained speech language model with efficient hierarchical transformerLink
AudioPaLMAudioPaLM: A Large Language Model That Can Speak and ListenLink
VioLAVioLA: Unified Codec Language Models for Speech Recognition, Synthesis, and TranslationLink
SpeechGPTSpeechgpt: Empowering large language models with intrinsic cross-modal conversational abilitiesLink
dGSLMGenerative spoken dialogue language modelingLink
pGSLMText-Free Prosody-Aware Generative Spoken Language ModelingLink
GSLMOn generative spoken language modeling from raw audioLink

SpeechLM Tokenizers

Semantic Tokenizers

NameTitleUrl
WhisperRobust Speech Recognition via Large-Scale Weak SupervisionLink
CosyVoiceCosyVoice: A Scalable Multilingual Zero-shot Text-to-speech Synthesizer based on Supervised Semantic TokensLink
Google USMGoogle USM: Scaling Automatic Speech Recognition Beyond 100 LanguagesLink
WavLMWavLM: Large-Scale Self-Supervised Pre-Training for Full Stack Speech ProcessingLink
HuBERTHuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden UnitsLink
W2v-bertW2v-BERT: Combining Contrastive Learning and Masked Language Modeling for Self-Supervised Speech Pre-TrainingLink
Wav2vec 2.0wav2vec 2.0: A Framework for Self-Supervised Learning of Speech RepresentationsLink

Acoustic Tokenizers

NameTitleUrl
WavTokenizerWavTokenizer: an Efficient Acoustic Discrete Codec Tokenizer for Audio Language ModelingLink
SNACSNAC: Multi-Scale Neural Audio CodecLink
EncodecHigh Fidelity Neural Audio CompressionLink
SoundStreamSoundStream: An End-to-End Neural Audio CodecLink

Mixed Tokenizers

NameTitleUrl
SpeechTokenizerSpeechTokenizer: Unified Speech Tokenizer for Speech Large Language ModelsLink
MimiMoshi: a speech-text foundation model for real-time dialogueLink

Popular Training Datasets

DatasetTypePhaseHoursYear
LibriSpeechASRPre-Training1k2015
Multilingual LibriSpeechASRPre-Training50.5k2020
LibriLightASRPre-Training60k2019
People datasetASRPre-Training30k2021
VoxPopuliASRPre-Training1.6k2021
GigaspeechASRPre-Training40k2021
Common VoiceASRPre-Training2.5k2019
VCTKASRPre-Training0.3k2017
WenetSpeechASRPre-Training22k2022
LibriTTSTTSPre-Training0.6k2019
CoVoST2S2TTPre-Training2.8k2020
CVSSS2STPre-Training1.9k2022
VoxCelebSpeaker IdentificationPre-Training0.4k2017
VoxCeleb2Speaker IdentificationPre-Training2.4k2018
Spotify PodcastsPodcastPre-Training47k2020
FisherTelephone conversationPre-Training2k2004
SpeechInstructInstruction-followingInstruction-Tuning2023
InstructS2S-200KInstruction-followingInstruction-Tuning2024
VoiceAssistant-400KInstruction-followingInstruction-Tuning2024

Evaluation Benchmarks

NameEval Type# TasksAudio TypeI/O
ABXRepresentation1SpeechA→−
sWUGGYLinguistic1SpeechA→−
sBLIMPLinguistic1SpeechA→−
sStoryClozeLinguistic1SpeechA/T→−
STSPParalinguistic1SpeechA/T→A/T
MMAUDownstream27Speech, Sound, MusicA→T
AudiobenchDownstream8Speech, SoundA→T
AIR-BenchDownstream20Speech, Sound, MusicA→T
SD-EvalDownstream4SpeechA→T
SUPERBDownstream10SpeechA→T
Dynamic-SUPERBDownstream180Speech, Sound, MusicA→T
SALMONDownstream8SpeechA→−
VoiceBenchDownstream8SpeechA→A
VoxEvalDownstream56SpeechA→A

🔱 Speech/Audio Language Models

DateModel NamePaper TitleLink
2024-11Building a Taiwanese Mandarin Spoken Language Model: A First AttemptPaper
2024-11UltravoxUltravox: An open-weight alternative to GPT-4o RealtimeBlog
2024-11hertz-devblogGitHub
2024-11Freeze-OmniFreeze-Omni: A Smart and Low Latency Speech-to-speech Dialogue Model with Frozen LLMpaper
2024-11Align-SLMAlign-SLM: Textless Spoken Language Models with Reinforcement Learning from AI Feedbackpaper
2024-10IchigoIchigo: Mixed-Modal Early-Fusion Realtime Voice Assistantpapercode
2024-10OmniFlattenOmniFlatten: An End-to-end GPT Model for Seamless Voice Conversationpaper
2024-10GPT-4oGPT-4o System Cardpaper
2024-10Baichuan-OMNIBaichuan-Omni Technical Reportpaper
2024-10GLM-4-VoiceGLM-4-VoiceGitHub
2024-10Roadmap towards Superhuman Speech Understanding using Large Language Modelspaper
2024-10SALMONN-OMNISALMONN-OMNI: A SPEECH UNDERSTANDING AND GENERATION LLM IN A CODEC-FREE FULL-DUPLEX FRAMEWORKpaper
2024-10Mini-Omni 2Mini-Omni2: Towards Open-source GPT-4o with Vision, Speech and Duplex Capabilitiespaper
2024-10HALL-EHALL-E: Hierarchical Neural Codec Language Model for Minute-Long Zero-Shot Text-to-Speech Synthesispaper
2024-10SyllableLMSyllableLM: Learning Coarse Semantic Units for Speech Language Modelspaper
2024-09MoshiMoshi: a speech-text foundation model for real-time dialoguepaper
2024-09Takin AudioLLMTakin: A Cohort of Superior Quality Zero-shot Speech Generation Modelspaper
2024-09FireRedTTSFireRedTTS: A Foundation Text-To-Speech Framework for Industry-Level Generative Speech Applicationspaper
2024-09LLaMA-OmniLLaMA-Omni: Seamless Speech Interaction with Large Language Modelspaper
2024-09MaskGCTMaskGCT: Zero-Shot Text-to-Speech with Masked Generative Codec Transformerpaper
2024-09SSR-SpeechSSR-Speech: Towards Stable, Safe and Robust Zero-shot Text-based Speech Editing and Synthesispaper
2024-09MoWE-AudioMoWE-Audio: Multitask AudioLLMs with Mixture of Weak Encoderspaper
2024-08Mini-OmniMini-Omni: Language Models Can Hear, Talk While Thinking in Streamingpaper
2024-08Make-A-Voice 2Make-A-Voice: Revisiting Voice Large Language Models as Scalable Multilingual and Multitask Learnerpaper
2024-08LSLMLanguage Model Can Listen While Speakingpaper
2024-06SimpleSpeechSimpleSpeech: Towards Simple and Efficient Text-to-Speech with Scalar Latent Transformer Diffusion Modelspaper
2024-06UniAudio 1.5UniAudio 1.5: Large Language Model-driven Audio Codec is A Few-shot Audio Task Learnerpaper
2024-06VALL-E RVALL-E R: Robust and Efficient Zero-Shot Text-to-Speech Synthesis via Monotonic Alignmentpaper
2024-06VALL-E 2VALL-E 2: Neural Codec Language Models are Human Parity Zero-Shot Text to Speech Synthesizerspaper
2024-06GPSTGenerative Pre-trained Speech Language Model with Efficient Hierarchical Transformerpaper
2024-04CLaM-TTSCLaM-TTS: Improving Neural Codec Language Model for Zero-Shot Text-to-Speechpaper
2024-04RALL-ERALL-E: Robust Codec Language Modeling with Chain-of-Thought Prompting for Text-to-Speech Synthesispaper
2024-04WavLLMWavLLM: Towards Robust and Adaptive Speech Large Language Modelpaper
2024-02MobileSpeechMobileSpeech: A Fast and High-Fidelity Framework for Mobile Zero-Shot Text-to-Speechpaper
2024-02SLAM-ASRAn Embarrassingly Simple Approach for LLM with Strong ASR Capacitypaper
2024-02AnyGPTAnyGPT: Unified Multimodal LLM with Discrete Sequence Modelingpaper
2024-02SpiRit-LMSpiRit-LM: Interleaved Spoken and Written Language Modelpaper
2024-02USDMIntegrating Paralinguistics in Speech-Empowered Large Language Models for Natural Conversationpaper
2024-02BATBAT: Learning to Reason about Spatial Sounds with Large Language Modelspaper
2024-02Audio FlamingoAudio Flamingo: A Novel Audio Language Model with Few-Shot Learning and Dialogue Abilitiespaper
2024-02Text Description to speechNatural language guidance of high-fidelity text-to-speech with synthetic annotationspaper
2024-02GenTranslateGenTranslate: Large Language Models are Generative Multilingual Speech and Machine Translatorspaper
2024-02Base-TTSBASE TTS: Lessons from building a billion-parameter Text-to-Speech model on 100K hours of datapaper
2024-02It’s Never Too Late: Fusing Acoustic Information into Large Language Models for Automatic Speech Recognitionpaper
2024-01Large Language Models are Efficient Learners of Noise-Robust Speech Recognitionpaper
2024-01ELLA-VELLA-V: Stable Neural Codec Language Modeling with Alignment-guided Sequence Reorderingpaper
2023-12SeamlessSeamless: Multilingual Expressive and Streaming Speech Translationpaper
2023-11Qwen-AudioQwen-Audio: Advancing Universal Audio Understanding via Unified Large-Scale Audio-Language Modelspaper
2023-10LauraGPTLauraGPT: Listen, Attend, Understand, and Regenerate Audio with GPTpaper
2023-10SALMONNSALMONN: Towards Generic Hearing Abilities for Large Language Modelspaper
2023-10UniAudioUniAudio: An Audio Foundation Model Toward Universal Audio Generationpaper
2023-10Whispering LLaMAWhispering LLaMA: A Cross-Modal Generative Error Correction Framework for Speech Recognitionpaper
2023-09VoxtLMVoxtlm: unified decoder-only models for consolidating speech recognition/synthesis and speech/text continuation taskspaper
2023-09LTU-ASJoint Audio and Speech Understandingpaper
2023-09SLMSLM: Bridge the thin gap between speech and text foundation modelspaper
2023-09Generative Speech Recognition Error Correction with Large Language Models and Task-Activating Promptingpaper
2023-08SpeechGenSpeechGen: Unlocking the Generative Power of Speech Language Models with Promptspaper
2023-08SpeechXSpeechX: Neural Codec Language Model as a Versatile Speech Transformerpaper
2023-08LLaSMLarge Language and Speech Modelpaper
2023-08SeamlessM4TMassively Multilingual & Multimodal Machine Translationpaper
2023-07Speech-LLaMAOn decoder-only architecture for speech-to-text and large language model integrationpaper
2023-07LLM-ASR(temp.)Prompting Large Language Models with Speech Recognition Abilitiespaper
2023-06AudioPaLMAudioPaLM: A Large Language Model That Can Speak and Listenpaper
2023-05Make-A-VoiceMake-A-Voice: Unified Voice Synthesis With Discrete Representationpaper
2023-05SpectronSpoken Question Answering and Speech Continuation Using Spectrogram-Powered LLMpaper
2023-05TWISTTextually Pretrained Speech Language Modelspaper
2023-05PengiPengi: An Audio Language Model for Audio Taskspaper
2023-05SoundStormEfficient Parallel Audio Generationpaper
2023-05LTUJoint Audio and Speech Understandingpaper
2023-05SpeechGPTEmpowering Large Language Models with Intrinsic Cross-Modal Conversational Abilitiespaper
2023-05VioLAUnified Codec Language Models for Speech Recognition, Synthesis, and Translationpaper
2023-05X-LLMX-LLM: Bootstrapping Advanced Large Language Models by Treating Multi-Modalities as Foreign Languagespaper
2023-03Google USMGoogle USM: Scaling Automatic Speech Recognition Beyond 100 Languagespaper
2023-03VALL-E XSpeak Foreign Languages with Your Own Voice: Cross-Lingual Neural Codec Language Modelingpaper
2023-02SPEAR-TTSSpeak, Read and Prompt: High-Fidelity Text-to-Speech with Minimal Supervisionpaper
2023-01VALL-ENeural Codec Language Models are Zero-Shot Text to Speech Synthesizerspaper
2022-12WhisperRobust Speech Recognition via Large-Scale Weak Supervisionpaper
2022-10AudioGenAudioGen: Textually Guided Audio Generationpaper
2022-09AudioLMAudioLM: a Language Modeling Approach to Audio Generationpaper
2022-05Wav2SeqWav2Seq: Pre-training Speech-to-Text Encoder-Decoder Models Using Pseudo Languagespaper
2022-04Unit mBARTEnhanced Direct Speech-to-Speech Translation Using Self-supervised Pre-training and Data Augmentationpaper
2022-03d-GSLMGenerative Spoken Dialogue Language Modelingpaper
2021-10SLAMSLAM: A Unified Encoder for Speech and Language Modeling via Speech-Text Joint Pre-Trainingpaper
2021-09p-GSLMText-Free Prosody-Aware Generative Spoken Language Modelingpaper
2021-02GSLMGenerative Spoken Language Modeling from Raw Audiopaper

🔱 Speech/Audio Codec Models

DateModel NamePaper TitleLink
2024-11PyramidCodecPyramidCodec: Hierarchical Codec for Long-form Music Generation in Audio Domainpaper
2024-11UniCodecUniversal Speech Token Learning Via Low-Bitrate Neural Codec and Pretrained Representationspaper
2024-11SimVQAddressing Representation Collapse in Vector Quantized Models with One Linear Layerpaper
2024-11MDCTCodecMDCTCodec: A Lightweight MDCT-based Neural Audio Codec towards High Sampling Rate and Low Bitrate Scenariospaper
2024-10APCodec+APCodec+: A Spectrum-Coding-Based High-Fidelity and High-Compression-Rate Neural Audio Codec with Staged Training Paradigmpaper
2024-10A Closer Look at Neural Codec Resynthesis: Bridging the Gap between Codec and Waveform Generationpaper
2024-10SNACSNAC: Multi-Scale Neural Audio Codecpaper
2024-10LSCodecLSCodec: Low-Bitrate and Speaker-Decoupled Discrete Speech Codecpaper
2024-10Co-design for codec and codec-LMTOWARDS CODEC-LM CO-DESIGN FOR NEURAL CODEC LANGUAGE MODELSpaper
2024-10VChangeCodecVChangeCodec: A High-efficiency Neural Speech Codec with Built-in Voice Changer for Real-time Communicationpaper
2024-10DC-SpinDC-Spin: A Speaker-invariant Speech Tokenizer For Spoken Language Modelspaper
2024-10TAAEScaling Transformers for Low-Bitrate High-Quality Speech Codingpaper
2024-10DM-CodecDM-Codec: Distilling Multimodal Representations for Speech Tokenizationpaper
2024-09MimiMoshi: a speech-text foundation model for real-time dialoguepaper
2024-09NDVQNDVQ: Robust Neural Audio Codec with Normal Distribution-Based Vector Quantizationpaper
2024-09SoCodecSoCodec: A Semantic-Ordered Multi-Stream Speech Codec for Efficient Language Model Based Text-to-Speech Synthesispaper
2024-09BigCodecBigCodec: Pushing the Limits of Low-Bitrate Neural Speech Codecpaper
2024-08X-CodecCodec Does Matter: Exploring the Semantic Shortcoming of Codec for Audio Language Modelpaper
2024-08WavTokenizerWavTokenizer: an Efficient Acoustic Discrete Codec Tokenizer for Audio Language Modelingpaper
2024-07Super-CodecSuperCodec: A Neural Speech Codec with Selective Back-Projection Networkpaper
2024-07dMeldMel: Speech Tokenization made Simplepaper
2024-06CodecFakeCodecFake: Enhancing Anti-Spoofing Models Against Deepfake Audios from Codec-Based Speech Synthesis Systemspaper
2024-06Single-CodecSingle-Codec: Single-Codebook Speech Codec towards High-Performance Speech Generationpaper
2024-06SQ-CodecSimpleSpeech: Towards Simple and Efficient Text-to-Speech with Scalar Latent Transformer Diffusion Modelspaper
2024-06PQ-VAEAddressing Index Collapse of Large-Codebook Speech Tokenizer with Dual-Decoding Product-Quantized Variational Auto-Encoderpaper
2024-06LLM-CodecUniAudio 1.5: Large Language Model-driven Audio Codec is A Few-shot Audio Task Learnerpaper
2024-05HILCodecHILCodec: High Fidelity and Lightweight Neural Audio Codecpaper
2024-04SemantiCodecSemantiCodec: An Ultra Low Bitrate Semantic Audio Codec for General Soundpaper
2024-04PromptCodecPromptCodec: High-Fidelity Neural Speech Codec using Disentangled Representation Learning based Adaptive Feature-aware Prompt Encoderspaper
2024-04ESCESC: Efficient Speech Coding with Cross-Scale Residual Vector Quantized Transformerspaper
2024-03FACodecNaturalSpeech 3: Zero-Shot Speech Synthesis with Factorized Codec and Diffusion Modelspaper
2024-02AP-CodecAPCodec: A Neural Audio Codec with Parallel Amplitude and Phase Spectrum Encoding and Decodingpaper
2024-02Language-CodecLanguage-Codec: Reducing the Gaps Between Discrete Codec Representation and Speech Language Modelspaper
2024-01ScoreDecScoreDec: A Phase-preserving High-Fidelity Audio Codec with A Generalized Score-based Diffusion Post-filterpaper
2023-11HierSpeech++HierSpeech++: Bridging the Gap between Semantic and Acoustic Representation of Speech by Hierarchical Variational Inference for Zero-shot Speech Synthesispaper
2023-10TiCodecFEWER-TOKEN NEURAL SPEECH CODEC WITH TIME-INVARIANT CODESpaper
2023-09RepCodecRepCodec: A Speech Representation Codec for Speech Tokenizationpaper
2023-09FunCodecFunCodec: A Fundamental, Reproducible and Integrable Open-source Toolkit for Neural Speech Codecpaper
2023-08SpeechTokenizerSpeechtokenizer: Unified speech tokenizer for speech large language modelspaper
2023-06VOCOSVOCOS: CLOSING THE GAP BETWEEN TIME-DOMAIN AND FOURIER-BASED NEURAL VOCODERS FOR HIGH-QUALITY AUDIO SYNTHESISpaper
2023-06Descript-audio-codecHigh-Fidelity Audio Compression with Improved RVQGANpaper
2023-05AudioDecAudiodec: An open-source streaming highfidelity neural audio codecpaper
2023-05HiFi-CodecHifi-codec: Group-residual vector quantization for high fidelity audio codecpaper
2023-03LMCodecLMCodec: A Low Bitrate Speech Codec With Causal Transformer Modelspaper
2022-11Disen-TF-CodecDisentangled Feature Learning for Real-Time Neural Speech Codingpaper
2022-10EnCodecHigh fidelity neural audio compressionpaper
2022-07S-TFNetCross-Scale Vector Quantization for Scalable Neural Speech Codingpaper
2022-01TFNetEnd-to-End Neural Speech Coding for Real-Time Communicationspaper
2021-07SoundStreamSoundStream: An End-to-End Neural Audio Codecpaper

Speech/Audio Representation Models

DateModel NamePaper TitleLink
2024-09NEST-RQNEST-RQ: Next Token Prediction for Speech Self-Supervised Pre-Trainingpaper
2024-01EATSelf-Supervised Pre-Training with Efficient Audio Transformerpaper
2023-10MR-HuBERTMulti-resolution HuBERT: Multi-resolution Speech Self-Supervised Learning with Masked Unit Predictionpaper
2023-10SpeechFlowGenerative Pre-training for Speech with Flow Matchingpaper
2023-09WavLabLMJoint Prediction and Denoising for Large-scale Multilingual Self-supervised Learningpaper
2023-08W2v-BERT 2.0Massively Multilingual & Multimodal Machine Translationpaper
2023-07Whisper-ATNoise-Robust Automatic Speech Recognizers are Also Strong General Audio Event Taggerspaper
2023-06ATSTSelf-supervised Audio Teacher-Student Transformer for Both Clip-level and Frame-level Taskspaper
2023-05SPINSelf-supervised Fine-tuning for Improved Content Representations by Speaker-invariant Clusteringpaper
2023-05DinoSRSelf-Distillation and Online Clustering for Self-supervised Speech Representation Learningpaper
2023-05NFASelf-supervised neural factor analysis for disentangling utterance-level speech representationspaper
2022-12Data2vec 2.0Efficient Self-supervised Learning with Contextualized Target Representations for Vision, Speech and Languagepaper
2022-12BEATsAudio Pre-Training with Acoustic Tokenizerspaper
2022-11MT4SSLMT4SSL: Boosting Self-Supervised Speech Representation Learning by Integrating Multiple Targetspaper
2022-08DINONon-contrastive self-supervised learning of utterance-level speech representationspaper
2022-07Audio-MAEMasked Autoencoders that Listenpaper
2022-04MAESTROMatched Speech Text Representations through Modality Matchingpaper
2022-03MAE-ASTMasked Autoencoding Audio Spectrogram Transformerpaper
2022-03LightHuBERTLightweight and Configurable Speech Representation Learning with Once-for-All Hidden-Unit BERTpaper
2022-02Data2vecA General Framework for Self-supervised Learning in Speech, Vision and Languagepaper
2021-10WavLMWavLM: Large-Scale Self-Supervised Pre-Training for Full Stack Speech Processingpaper
2021-08W2v-BERTCombining Contrastive Learning and Masked Language Modeling for Self-Supervised Speech Pre-Trainingpaper
2021-07mHuBERTDirect speech-to-speech translation with discrete unitspaper
2021-06HuBERTSelf-Supervised Speech Representation Learning by Masked Prediction of Hidden Unitspaper
2021-03BYOL-ASelf-Supervised Learning for General-Purpose Audio Representationpaper
2020-12DeCoAR2.0DeCoAR 2.0: Deep Contextualized Acoustic Representations with Vector Quantizationpaper
2020-07TERATERA: Self-Supervised Learning of Transformer Encoder Representation for Speechpaper
2020-06Wav2vec2.0wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representationspaper
2019-10APCGenerative Pre-Training for Speech with Autoregressive Predictive Codingpaper
2018-07CPCRepresentation Learning with Contrastive Predictive Codingpaper

🔱 Related Repository

OmniFlatten |一种基于Qwen2-0.5B的端到端无缝对话大模型,解决对话中断、回话等问题

全双工口语对话系统在显著超越传统的单轮对话系统方面取得了重要进展,因为它们允许多向的同时通信, closely 地模拟了人际交流。然而,在全双工对话系统中实现低延迟和自然交互仍然是一个重大挑战,尤其是考虑到人类对话中的中断、回话以及重叠语音等动态因素。在本文中,作者提出了一种名为 Omni-Flatten 的新型端到端基于 GPT 的模型,用于全双工对话,该模型能够有效地建模自然对话中固有的复杂行为,并且具有较低的延迟。

为了实现全双工通信能力,作者提出了一种多阶段的后训练方案,逐步将基于文本的大语言模型(LLM) Qwen2-0.5B 主干调整为能够实时生成文本和语音的语音-文本对话 LLM,而无需修改主干 LLM 的架构。训练过程分为三个阶段:模态对齐半双工对话学习全双工对话学习。在整个训练阶段中,作者通过扁平化操作标准化数据,这使得作者可以统一不同模态和任务的训练方法和模型架构。

Omni-Flatten提供了一种简明的建模技术,并为开发高效且自然的端到端全双工口语对话系统指明了有前景的研究方向。可以在该网页上找到由 Omni-Flatten 生成的对话音频示例。

简介

传统的轮转式语音对话系统仅支持半双工通信,即用户和系统的通信是双向进行但不能同时进行。这类系统在许多实际应用中虽有效,但在处理中断、回声通道和重叠语音时往往显得不足,这反映了人类面对面交流的自发性。相比之下,全双工语音对话系统允许同时进行双向通信,更贴近人类面对面交流的动力学特征。全双工语音对话系统能够通过同时说话、听和思考促进更为自然和高效的交互。然而,在全双工系统中实现低延迟和自然交互仍然是一个重大挑战。

近年来,开发语音对话系统的工作受到了大语言模型(LLM)进展的驱动,并大致可以分为协作系统和端到端系统两类。协作系统通过对接基于LLM的对话模块与外部ASR或TTS模块来实现语音理解和语音生成。例如,Qwen-audio处理语音输入,输出文本并通过TTS将其转换为口头回应。相比之下,一些端到端系统直接基于语音-文本多模态模型建模语音到语音的对话,但这些模型大多是回合制对话模型,不支持全双工对话。最近在开发端到端全双工语音对话系统方面取得的进步包括SyncLM和开源的Moshi。

具体而言,Moshi并行模型了用户的多条语音输入流和系统的文本及语音输出流,简化了全双工对话的处理。然而,这种并行框架并不被基于GPT的模型天然支持,因此需要复杂的策略如声学延迟和内心独白等设计。类似Omni-Flatten,SyncLM也是训练来预测用户的语音单元和助手的交替片段以获得实时全双工语音对话能力。然而,他们引入了一种去重策略来减轻静默语音对模型语义能力的影响,而作者则是通过显式文本 Token 预测增强对话模型的语义能力。

为了应对全双工语音对话系统中实现自然交互和低延迟所面临的挑战,作者提出了一种基于GPT的新颖端到端模型Omni-Flatten,用于全双工语音对话。Omni-Flatten能够有效学习自然对话中固有的复杂行为,并通过低延迟促进类似人类的对话。作者提出了一种多阶段渐进式后训练方案,通过首先进行模态对齐,然后交替和展平对话中的多个语音和文本流,将基于文本的大语言模型(LLM) Qwen2-0.5B 骨架适应为一个健壮的语音-文本对话模型。值得注意的是,Omni-Flatten并未改变基于文本的 Backbone 架构,也未依赖于计算密集型的预训练。

多阶段后训练过程始于对文本大语言模型 Backbone 网络进行监督多任务微调,以实现语音-文本模态对齐,并获得一种跨模态大语言模型,使用自动语音识别(ASR)和文本到语音合成功能(TTS)。这一阶段对于确保系统能够准确地理解和生成语音及文本,从而形成人机交互的无缝界面至关重要。

在获得语音-文本大语言模型后,作者通过三个渐进阶段,使用交错和序列化的对话对其进行微调:

  1. 在第一个阶段,作者使用扁平化技术,将用户输入和系统输出的文本流和语音流均摊平为单一序列(即处理四流数据)。这一阶段作为初步步骤,旨在训练模型学习半双工对话能力。
  2. 在第二个阶段,作者进一步移除用户输入文本流,对剩余的三流进行细粒度切分和对齐,将这些切分部分扁平化,并继续使用扁平化的三流数据对模型进行训练。这一步骤的目标是训练模型学习实时多流预测能力,从而实现全双工通信
  3. 最后,作者构建仅包含输入和输出语音的两流数据,并继续对模型进行训练,以专注于语音到语音的生成任务,从而消除对中间文本的依赖,减少延迟,并使系统更接近实时交互。

Omni-Flatten提出了一种简单而创新的建模技术,为开发高效且自然的端到端全双工对话系统提供了有前景的研究方向。

本项工作的主要贡献可以总结如下:

  1. 作者提出了一种新颖的一次性基于GPT的模型Omni-Flatten,该模型能够有效建模自然人类对话中固有的复杂行为,同时具有低延迟。作者提出了一种多阶段的后训练方案,通过基于As Rand TT S的有监督多任务微调实现文本基础的大语言模型向稳健的语音-文本对话模型的成功适应,然后对对话中的语音和文本流进行细粒度分块,并将它们扁平化为单一序列,逐步训练模型以获得半双工和全双工通信能力。值得注意的是,Omni-Flatten 并未对该GPT模型进行任何结构上的修改,也不依赖于计算量大的预训练。
  2. 作者的实验验证了模态对齐阶段的有效性,因为最终模型在ASR和TTS方面的表现达到了可接受的水平。作者使用高性能的大语言模型作为评估器,评估由Omni-Flatten生成的对话质量,并评估了对话轮换性能,包括系统轮换和用户轮换,以及运行时效率。结果显示,Omni-Flatten生成的对话具有合理的质量,模态对齐和半双工学习阶段均提升了模型的全双工对话能力。相对于用户轮换,Omni-Flatten在处理系统轮换方面更为出色,系统轮换的平均响应时间为160毫秒,而用户轮换的平均响应时间则为805毫秒。

方法论

在本节中,作者介绍了作者的端到端全双工对话模型Omni-Flatten。如图1所示,作者使用音频分词器将对话中的每个输入和输出语音流离散化为一个离散的语音Token序列。

OmniFlatten:端到端全双工语音对话模型概述:该模型能够持续接收用户输入的语音,同时生成助手的语音和文本输出。语音分词器将用户的语音(包括静音段)转换为输入语音的分词序列(表示为红色方块序列:S0, S1, S2, S3, S4, …)。我们将一段输入语音分词(用实线框括起来的分词)输入到OmniFlatten中,以解码生成一段输出分词(用虚线框括起来的分词)。输出分词包括语音分词(蓝色方块序列:S0, S1, S2, S3, S4, …)和文本分词(绿色圆圈序列:T0, T1, T2, …)。我们将输出文本分词按照固定的文本块大小组织,并按照固定的语音块大小生成输出语音分词,从而利用预测的文本指导语音生成。用户的语音分词与预测生成的助手文本和语音分词根据说话人轮次交错排列,最终展平为一个单一序列。最后,输出的语音分词和文本分词分别输入到语音去分词器和文本去分词器中,以生成助手的输出语音和文本。

作者然后交替排列语音Token序列和文本Token序列,并将它们展平成一个单一序列。Omni-Flatten采用多阶段渐进式训练过程,将基于文本的大语言模型转化为具备模态对齐和对话学习能力的 robust 的端到端全双工口语对话模型。在接下来的子节中,作者将详细阐述作者方法的关键组成部分,包括音频Token化与反Token化、模态对齐以及对话学习。

音频标记化和去标记化

为了将连续的语音信号转换为离散的Token序列,作者采用了在CosyVoice中使用的语音Tokenizer。由于通过多语种ASR的监督,这种语音Tokenizer能够将语音转换为语义Token,从而有助于提升语音理解并保证生成语音的内容一致性。该Tokenizer利用了一个编码器和一个向量量化(VQ)层,将音频信号离散化为具有4096个Codebook代码的语音Token序列。

Cosyvoice模型架构

在将离散的语音Token重新转换回音频时,作者同样使用了与CosyVoice中相同的Optimal Transport Conditional Flow Matching模型(OTCFM)。OTCFM将语音Token序列转化为Mel频谱图,然后使用HifiGAN语音生成器生成最终的音频输出。先前的研究表明,相比于更简单的梯度扩散概率模型(DPM),OTCFM在训练更容易且生成更快方面表现更优。

为什么要使用HifiGAN将mel谱转换为音频:    
     理论上,梅尔语谱图(Mel-spectrogram)可以直接转换回音频波形,但这个过程通常并不像简单的逆变换那样直接和精确。原因在于,梅尔语谱图只是音频的一个低维表示,丢失了很多原始音频中的细节信息,尤其是相位信息。而语音合成中的高质量波形生成通常需要更复杂的模型来重建这些细节。HiFiGAN 和其他类似的模型提供了一个有效的框架来实现这种重建。

1. 梅尔谱图到波形的转换问题
梅尔语谱图是通过将音频信号转换到梅尔频率刻度后提取的特征。它是通过傅里叶变换将音频信号转换成频谱图后,再通过梅尔滤波器组对频谱进行压缩得到的。梅尔语谱图通常只保留了音频的频率信息,而没有包含关于时间和相位【波形】的细节。由于相位信息对音频波形的重建至关重要,直接将梅尔谱图转换回波形往往会导致失真或不自然的声音。

2. 为什么需要 HiFi-GAN 这样的模型?
HiFi-GAN 和类似的生成对抗网络(GAN)模型是为了应对梅尔谱图到波形转换的挑战而设计的。梅尔谱图提供了音频的频谱信息,但缺少细节,如相位信息、音质和时间结构等。而 HiFi-GAN 等模型通过以下方式弥补了这个缺失:

相位重建:HiFi-GAN 等模型不仅仅是简单的反变换,它们通过学习梅尔谱图与真实音频波形之间的复杂关系,能够通过生成模型有效地重建音频的相位信息,从而得到更高质量的波形。

生成对抗训练:HiFi-GAN 使用生成对抗网络(GAN),通过生成器和判别器的对抗训练,能够更好地捕捉到音频信号的自然性和细节。生成器从梅尔谱图出发生成波形,判别器则判断生成的波形是否与真实的音频波形相似。经过多次训练,生成器学会了如何产生高质量的波形。

高质量输出:直接从梅尔谱图到波形的传统方法(如 Griffin-Lim 算法)通常会产生较低质量的波形,尤其是在细节和自然性上有所欠缺。HiFi-GAN 可以生成非常高质量的波形,甚至接近人类语音的真实感。

模态对齐

作者从对预训练的文本大语言模型(Text-Based LLM Backbone)进行后训练开始,以获得适用于语音理解与生成的语音-文本大语言模型(Speech-Text LLM)。由于Qwen2-0.5B具有较小的规模,适合低计算资源要求,并且对于这种规模的模型而言表现力较强,因此作者选择它作为基模型。作者使用配对的语音-文本数据(ASR和TTS任务)进行监督微调(Supervised Fine-Tuning, SFT),这一过程使预训练的文本大语言模型适应了语音-文本多模态模型。

对于每个语音-文本对,作者构建如下训练样本:

TTS 样本:

其中,[ASR]和[TT S]分别表示ASR任务和TT S任务的ID;[SOS]、[EOS]、[SOT]、[EOT]是特殊的Token,分别表示语音句子或文本句子的开始和结束。作者使用这个对齐的语音-文本多模态模型进行后续的对话学习。这里的S_seq 是语音进行 CosyVoice Tokenizer 来获得的,T_seq是文本序列。 S_seq 经过 OTCFM 合成音频mel谱,在经过HifiGAN解码合成音频。

对话学习

在上述所述的语音-文本多模态模型的基础上,作者分三个阶段进行对话学习,包括使用轮流对话数据的语音和文本流进行半双工对话训练,然后基于语音和文本序列的精细分块和对齐进行全双工对话训练。

具体而言,在全双工对话训练期间,作者首先去除输入文本流,并使用剩余的三个流进行训练,然后进一步去除输出文本流,并使用剩余的两个流进行训练,以逐步消除对文本信息的依赖,专注于语音到语音的生成,并减少延迟。

在整个三个阶段中,作者将多流对话数据交错并压平成单一序列。【moshi做法是将多流并行建模】

半双工对话训练

半双工对话智能体是全双工对话智能体的特殊且简化案例,其中人类和助手交替发言,且不存在重叠说话的情况,即在发言人的发言期间,聆听者完全静默。

由于用于学习模态对齐的语音识别(ASR)和文本到语音(TTS)数据中不存在重叠说话的情况,因此半双工对话训练比需要模型处理轮流发言、副通道反馈以及重叠说话的全双工对话训练更符合已对齐的多模态模型。作者采用循序渐进的学习理念,在首先进行半双工对话训练之后再进行全双工对话训练。

四流训练:

基于四种流(语音和文本分词)的半双工对话训练如图所示,模型在根据对话中实际说话人轮次组织的数据上进行训练。我们将多轮对话中的语音和文本分词展平成一个单一序列,按照以下模式进行排列:

  • 第 N−1 轮中包含用户语音分词(红色方块表示)和用户文本分词(红色圆圈表示);
  • 第 N 轮中包含助手文本分词(蓝色圆圈表示)和助手语音分词(蓝色方块表示)。

通过这种展平方法,模型能够在训练过程中捕捉多轮对话的上下文信息,同时保持不同流数据的关联性。

在半双工对话训练过程中,作者训练模型主要执行用户语音片段的语音识别(ASR),以获取文本内容,接着基于用户文本内容生成助手的文本回应,然后通过基本上执行TTS任务来预测助手文本回应的语音片段。这种模式在一次对话的多个回合中得以扩展,如图2所示。

全双工对话训练

基于三流数据的训练为了开发出能够进行低延迟双工对话的人类 Level 的全双工会话智能体,作者需满足实时要求。为此,作者从四种数据流中移除了用户文本流,并使用剩余的三种数据流进行训练。为了处理重叠语音,作者在基于片段的基础上引入了分块和宽松语音-文本 Token 对齐的方式,这样一来,作者就无需在语音token和文本token之间实现严格的 Token 级对齐。

具体来说,在准备用于此阶段的训练数据时,作者首先按照固定大小将对话数据中的语音 Token 序列和文本 Token 序列分块,然后交错排列这三种数据流并展平成单一序列用于训练,遵循输入语音、输出文本、输出语音的顺序。值得注意的是,由于文本效率更高,文本片段的大小通常小于语音片段的大小。

三流训练:

在本研究中,作者将文本片段的大小设置为 2 个 Token ,将语音片段的大小设置为10个 Token 。这种方法确保了输出文本不会过度提前出现,从而在最小化与上述四流数据格式之间的差异的同时最大化保留TTS任务的目标。在文本内容结束后,作者使用特殊的静默终止 Token 填充文本流使用静默语音 Token 填充输出语音流中的静默区域。基于分块的三流数据的这种训练过程如图3所示。

基于三流全双工对话数据的全双工对话训练(移除用户文本流)如图所示,我们将输入和输出的多模态分词序列分割为短块,并将它们展平在一起。这样模型可以实时流式处理用户语音分词的输入,同时生成助手的文本和语音分词输出。

在第 N−1 块中,输入五个用户语音分词(红色方块,实线框中),模型输出七个助手分词(虚线框中),包括两个助手文本分词(蓝色圆圈)和五个助手语音分词(蓝色方块)。

模型遵循标准的自回归训练和解码过程。图中虚线箭头表示在一个块内,模型会重新输入预测的助手文本和语音分词,以完成自回归解码过程。这种方法保证了全双工对话流的连续性和实时性,同时简化了用户输入数据的处理。

双流训练:

基于两流全双工对话数据的全双工对话训练(进一步移除助手文本流)。如图所示,相较于三流实验,我们进一步移除了助手文本分词,仅保留用户和助手的语音分词作为输入。具体来说,我们将用户和助手的语音分词展平为一个单一序列输入到模型中。

在第 N−1 块中,输入 5 个用户语音分词(红色方块,实线框中),模型在第 N−1 块中输出 5 个助手语音分词(蓝色方块,虚线框中)。

这种方法简化了模型输入和输出的形式,仅依赖语音分词进行全双工对话的处理。这种训练方式突出语音信号在实时对话中的核心作用,同时进一步减少了对文本流的依赖。

训练基于双流数据为进一步降低延迟并消除对中间文本的依赖,从而专注于语音到语音的生成,作者进一步移除了输出文本流,仅保留输入和输出语音流。基于分块双流数据的这一训练过程如图4所示。

实验

数据

模态对齐数据集

模态对齐训练阶段的目标是帮助模型学习语音Token和文本Token之间的对应关系,并使模型获得自动语音识别(ASR)和文本到语音(TTS)两项关键能力。为了实现这一目标,作者结合了一组包含开源和专有数据的TTS和ASR数据集。开源数据集包括普通话和英语数据,如AISHELL-3、LibriTTS、TED-L1UM、VoxPopuli、LibriSpeech以及MLS。此外,还整合了几种专有ASR和TTS数据集。总体而言,用于语音-文本模态对齐的数据集约包含10万小时的音频数据,其中30%为开源数据,70%为专有数据。

模拟语音聊天数据集:为了构建对话学习的语音聊天数据,作者设计了一条数据合成与模拟Pipeline来生成对话数据。首先,作者收集了大量的高质量开源文本对话数据,用于后续的语音合成,包括Alpaca、Moss、BelleCN和ultraChat。然后,使用启发式规则筛选出不适合Text-to-Speech(TTS)的数据样本,例如包含较高比例非文本元素(如代码和数学表达式)的样本、长度超过200字(中英文皆可)的样本,以及包含罕见或不常见符号的样本。最后,作者保留了大约360,000个基于轮次的对话会话(半双工对话)。

其次,作者基于这些文本的多轮交互对话创建了伪全双工语音聊天。作者使用CosyVoice合成了每一轮的音频。具体来说,作者首先从LibriSpeech和3DSpeaker数据集中采样说话人嵌入,以获得多样化的音色。在合成每一轮的语音之后,作者采用模拟策略,在每个说话人通道中适当地安排每一轮的音频,使得这次对话能够模拟自然的交互过程,即每位说话人交替发言,偶尔有中断和停顿,并且上下文流畅。详细的流程如下:

作者将合成的对话音频组织为两个通道,第一个通道是用户通道,第二个通道是助手通道。请注意,文本对话始终以用户开头,然后用户和助手交替发言。在用户发言结束后,作者立即开始下一个助手的发言,以便助手能够及时回应用户。在助手发言结束后,作者从正态分布中采样从助手回合结束时间到下一个用户回合开始时间的暂停时长,从而创建出用户与助手交错对话所对应的音频。

第三部分,为了模拟用户音频通道中的真实场景,作者还从MUSAN噪声数据集中采样背景噪声,并将其添加到用户音频通道中。作者控制信噪比(SNR)在15 dB到25 dB之间。基于此数据合成与仿真Pipeline,作者生成了总计2000小时的多通道对话数据。基于该数据集,作者使用其中1%的数据作为验证集,另外1%的数据作为测试集,其余数据用于训练。

训练和推理设置

作者使用QWen2-0.5B作为基础模型。在模态对齐训练阶段,最大序列长度设置为1024个Token。在对话学习阶段,最大序列长度扩展到8192个Token。在整个训练阶段,作者都使用标准交叉熵损失作为训练目标。

此外,在对话学习阶段,作者对User通道应用了损失 Mask ,因为作者观察到这项操作增强了模型训练的稳定性,可能是因为User通道中含有噪声音频输入。作者采用AdamW优化器,权重衰减设置为0.1,设为0.9,设为0.95。最大学习率设为2e-05,并采用Warm Up和余弦衰减策略。作者用5个epochs进行训练,并基于验证集上的损失选择最佳模型。批量大小设为1亿个Token。作者的代码实现基于NanoGPT项目4。

推理过程中,为了从模型中获得Assistant文本响应的预测,作者使用测试集中固定的用户语音通道语音作为固定语音输入,并交替填充预测的Assistant语音和文本

评价

模态对齐后的ASR和TTS任务性能改善情况

在模态对齐训练阶段(第3.2节),目标是帮助模型学习语音Token和文本Token之间的对应关系,并获得ASR和TTS能力;因此,作者通过评估最终对齐的多模态模型的ASR和TTS性能来评价此训练阶段的有效性。对于ASR评估,作者使用该模型将输入语音对应的离散语音Token解码为文本输出。

对于TTS评估,作者基于输入文本生成语音Token,然后使用CosyVoice的随机英语女性声音合成为音频。合成的音频随后使用Whisper Large V3模型进行识别,ASR的输出则与输入文本进行对比评分。ASR和TTS评估均在公开可用的LibriSpeech和VoNet Speech数据集上进行,采用字符错误率(CER)作为评估指标。

值得注意的是,CER不仅能够衡量模型TTS能力的合成准确度和鲁棒性,还能在很大程度上反映出音频质量。此外,由于本工作的主要目标是研究全双工语音聊天中的对话动态,因此本文未采用传统的语音质量标准评估指标,如主观意见得分(MOS)。

对于ASR评估,作者对比了Modality Alignment训练阶段后的语音文本对齐多模态模型(称为OmniFlatten)与Whisper Large V3模型。对于TTS评估,使用GT Speech Tokens表示将 GT 波形分割成语音Token,并使用相同的英女性音将其反向转换为语音。如表1所示,OmniFlatten在ASR和TTS任务上均表现出显著的性能。这些结果表明,Modality Alignment训练阶段有效地将单一模态的文本基础大语言模型转变为具有合理语音理解和生成能力的语音-文本多模态模型,为进一步的对话学习奠定了基础。

全双工对话能力受模态对齐和半双工对话学习的影响分析

正如第3.3.2节所述,针对三流数据进行全双工对话学习的训练阶段有助于模型获得全双工对话能力,并且该模型能够生成语音和文本用于助手。前期研究表明,竞争性的文本基础大语言模型可以作为多种自然语言生成任务的可靠评估工具,因为由大语言模型评估者为生成文本分配的分数与人类评估高度相关。

因此,作者通过 Prompt 一个竞争性的文本大语言模型来评估OmniFlatten的全双工对话能力,让其评估对话的意义并为训练过程中生成的预测助手文本响应赋分。值得注意的是,在仅针对两流数据完成最终训练阶段后,OmniFlatten仅输出助手的语音,这给基于文本的大语言模型带来了评估上的挑战。

评分机制涉及设计特定的 Prompt 词,并利用竞争性的文本大语言模型Qwen-max模型6来对模型生成的回答进行1到10分的评分。作者用于大语言模型评分的具体 Prompt 词详见附录A。作者精心设计该 Prompt 词以评估预测Assistant文本响应的流畅性和连贯性。此外,作者还在测试集上报告了该模型的CE损失值。

为了分析模态对齐训练阶段(第3.2节)和半双工对话学习阶段(第3.3节)在基于三流数据训练后对Omni-Flatten全双工对话能力的影响,作者对比了以下模型预测的Assistant文本响应的大语言模型评分:

  • QWen2-0.5 模型直接在三流数据上训练(表示为 Omni-Flatten,具有跨模态对齐但不采用半双工训练)。
  • QWen2-0.5B 在三流数据( Token 为 Omni-Flatten 且不包含半双工训练)上进行了模态对齐和全双工对话训练。
  • QWen2-0.5B 在三流数据上进行了模态对齐、半双工对话训练和全双工对话训练( Token 为 Omni-Flatten)。
  • 测试集中的真实文本响应(用GT响应表示).

表2的结果显示,模态对齐和半双工训练阶段均提高了预测助手文本响应的大语言模型得分,这表明这两个阶段都促进了模型全双工对话性能的提升,并且多阶段训练策略有效地增强了模型端到端全双工语音对话的能力。

轮流对话性能和运行效率:为了评估全双工交互的自然性,作者评估Assistant在用户说完话后能否及时回应(即Assistant进行轮流对话),以及当用户试图打断时Assistant能否及时停止说话(即用户进行轮流对话)。作者定义了以下指标。

Assistant 轮换 Acc@K:此度量定义为:如果在用户发出具有语义意义的语音 token 结束后的第 k个 token 处,Assistant 正确预测了一个非静默 token,则表明 Assistant 已经接过了话筒并开始发言。

用户轮换Acc@K :此指标定义为,在辅助智能体正在说话时,当用户输入一个语义上有意义的语音Token之后,辅助智能体是否正确地输出了一个静默Token在第k个Token位置上。该指标表明辅助智能体成功响应了用户的轮换尝试,即停止自身说话并进入倾听状态。请注意,在作者模拟的伪全双工对话数据集中,由于未考虑返回通道,因此用户输入始终被视为用户获得了发言权。

表3展示了评估结果。作者做如下观察:

  1. 使用本文中使用的语音片段大小10时,当用户结束发言后,智能体能够迅速响应,智能体轮换准确率在第5个Token时达到了55.7%,在第10个Token时达到了71.3%。相比之下,用户的轮换准确率非常低,在第25个Token时仅为30%。这是因为作者的合成全双工数据基于轮换文本对话构建,未涵盖用户打断智能体发言并轮换的情况。在未来的工作中,作者计划细化数据合成Pipeline,更好地模拟现实世界全双工交互中的复杂交互模式,例如用户打断和轮换发言,以及反馈通道。
  2. 智能体轮换的平均响应时间为160毫秒,而用户的平均响应时间为805毫秒。这种差异的原因在于智能体的轮换发生在用户的发言结束时,此时大量语义信息已经可用,系统可以迅速作出响应;相比之下,用户开始发言时语义上下文尚未完全建立,因此系统需要更长的时间来做出决策,停止说话并让出发言权
  3. 作者观察到使用更大的语音片段大小可以提高用户的轮换准确率和较大的K值下的智能体轮换准确率。作者认为这是由于更大的语音片段可以提供更多全面的语义信息以供轮换预测。然而,较大的片段大小也需要更长的预测时间,从而增加智能体的轮换响应时间。不同语音片段大小对用户轮换响应时间的影响相对较小,因为正如前面所述,无论语音片段大小如何,用户的轮换速度始终较慢。

结论和未来的工作

在本文中,作者介绍了一种基于合成全双工语音对话数据并设计多阶段渐进训练范式来实现模态对齐和对话学习的端到端全双工语音对话模型Omni-Flatten。

Omni-Flatten提供了一种简单的全双工建模方案,无需改变基于文本的大语言模型的基本架构,也不依赖于计算密集型的预训练。实证评估表明,提出的方法对于开发处理全双工交互的端到端模型具有前景。

参考

[0]. Omni-Flatten: An End-to-end GPT Model for Seamless Voice Conversation.

CleanS2S-语音到语音 (S2S) 的原型智能体

https://github.com/opendilab/CleanS2S

CleanS2S 是一个语音到语音 (S2S) 的原型智能体,提供高质量的流式交互,并采用单文件实现。其设计简洁明了,旨在提供类似 GPT-4o 风格的中文交互原型智能体。该项目希望让用户直接体验语言用户界面 (LUI) 的强大功能,并帮助研究人员快速探索和验证 S2S pipeline 的潜力。

功能

📜 单文件实现

每个智能体管道的细节都放在一个独立的文件中。无需额外配置依赖项或理解项目文件结构。这对于那些想快速了解 S2S 管道并直接验证新想法的人来说,是一个很好的参考实现。所有管道实现都易于修改和扩展,用户可以快速更换喜欢的模型(例如 LLM)、添加新组件或自定义管道。

实时流式接口

整个 S2S 管道主要由 ASR(自动语音识别)、LLM(大型语言模型)和 TTS(文本转语音)组成,配合两个 WebSockets 组件接收器(包含 VAD)和发送器。管道设计为实时流模式,用户可以像人与人对话一样实时与智能体互动。所有音频和文本信息通过 WebSocket 流式发送和接收。为此,我们利用多线程和队列机制确保流过程顺畅,避免阻塞问题。所有组件都设计为异步和非阻塞,处理输入队列的数据并将结果输出到另一个队列。

🧫 全双工交互与打断机制

基于 WebSockets 提供的强大机制,管道支持全双工交互,这意味着用户可以同时与智能体对话和听取回复。此外,管道支持中断,用户可以在对话中随时通过新语音输入打断智能体。智能体将停止当前处理,开始处理新输入,并结合之前的对话和中断内容进行处理。此外,我们发现聊天机器人常用的“助理风格”和“轮流式”回应是人类对话的主要缺点之一。我们为智能体添加了更有趣的策略,以使对话更具互动性和吸引力。

🌍 网络搜索和 RAG

通过集成网络搜索功能和检索增强生成(RAG)模型,管道得到了进一步增强。这些功能使智能体不仅能实时处理和响应用户输入,还能从网络中获取和整合外部信息到响应中。这为回答用户提出的各种实际问题提供了扩展和灵活性。

  • WebSearchHelper 类负责根据用户查询进行在线搜索或收集与对话相关的附加信息。这使智能体能够参考最新或外部数据,增强响应的丰富性和准确性。
  • RAG 类实现了检索增强生成方法,首先从数据库中检索相关信息,然后使用这些信息生成响应。这一两步过程确保智能体的回复基于相关的事实数据,使互动更加知情和符合上下文。

快速上手

后端

安装

## clone the repository
git clone https://github.com/opendilab/CleanS2S.git
cd CleanS2S/backend
pip install -r requirements.txt
  • 根据此处的说明安装 funasr 以支持 paraformer-zh
  • 根据此处的说明安装 cosyvoice 以支持 CosyVoice-300M

下载模型

您需要下载以下四个必要的模型(3个 ASR 模型 + 1个 TTS 模型),可以通过以下链接下载,并放置在合适的目录中。

对于 LLM,我们默认使用 LLM API,您也可以按照下方的说明定制自己的本地 LLM(如 DeepSeek-V2.5、Qwen2.5 等)。

删除 --enable_llm_api 和 --lm_model_url 参数,修改 --lm_model_name 参数为您的本地 LLM 模型路径(例如 --lm_model_name /home/users/deepseek-v2.5)。

您还需要准备一个参考音频目录,其中包含用于韵律和音色转换的参考音频。我们在此仓库中准备了一个示例参考音频目录

如果您想使用自己的参考音频,需要保持与示例参考音频目录相同的格式。音频应为 10~20 秒长,发音清晰。

运行服务器

以下是使用默认设置运行服务器的示例:

export LLM_API_KEY=<your-deepseek-api-key>
python3 -u s2s_server_pipeline.py \
        --recv_host 0.0.0.0 \
        --send_host 0.0.0.0 \
        --stt_model_name <your-asr-path> \
        --enable_llm_api \
        --lm_model_name "deepseek-chat" \
        --lm_model_url "https://api.deepseek.com" \
        --tts_model_name <your-tts-path> \
        --ref_dir <ref-audio-path> \
        --enable_interruption

ℹ️ 支持自定义LLM:在这里,我们使用 deepseek-chat 作为默认 LLM API ,您也可以根据 OpenAI 接口更改为其他 LLM API。(修改--lm_model_name--lm_model_url,设置您自己的 API 密钥)

ℹ️ 支持其他自定义:您可以参考后端管道文件(例如s2s_server_pipeline.py)中由argparse库实现的参数列表,根据自己的需求进行自定义。所有参数在其帮助属性中都有详细文档,易于理解。

使用 Websearch+RAG 运行服务器

您首先需要安装 Websearch 和 RAG 所需的依赖。

pip install -r backend/requirements-rag.txt

其次,为 RAG 中嵌入 Websearch 结果选择一个嵌入模型,例如以下嵌入模型:

git lfs install
git clone https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2

然后,为 Websearch 和 RAG 模块提供令牌,在s2s_server_pipeline_rag.py中,我们使用Serper作为 Websearch 工具,使用Deepseek进行 RAG 。

export LLM_API_KEY=''
export SERPER_API_KEY=''

最后,在运行服务器的示例代码中,将s2s_server_pipeline.py替换为s2s_server_pipeline_rag.py,并添加参数--embedding_model_name

这是使用默认设置和 Websearch+RAG 运行服务器的示例:

python3 -u s2s_server_pipeline_rag.py \
        --recv_host 0.0.0.0 \
        --send_host 0.0.0.0 \
        --stt_model_name <your-asr-path> \
        --enable_llm_api \
        --lm_model_name "deepseek-chat" \
        --lm_model_url "https://api.deepseek.com" \
        --tts_model_name <your-tts-path> \
        --embedding_model_name <embedding-model-path> \
        --ref_dir <ref-audio-path> \
        --enable_interruption

前端

我们建议使用Docker镜像来安装和运行客户端。以下是具体步骤:

## 运行基本的Docker镜像
docker run -it -p 3001:3001 amazonlinux:2023.2.20231011.0 sh
## 安装必要的包
dnf install vim git nodejs -y
npm install -g pnpm
git clone https://github.com/opendilab/CleanS2S.git
cd CleanS2S/frontend_nextjs
pnpm install

frontend_nextjs目录中准备适当的.env.local文件,您可以参考.env.example文件以获取所需的环境变量。

## 运行客户端
pnpm dev --port 3001

然后您可以在浏览器中访问客户端,地址为http://localhost:3001(推荐使用 Chrome 浏览器)。

附注:如果您想在本地运行客户端,请首先安装 node.js 和 pnpm ,然后使用 pnpm 安装必要的包并运行客户端。

MooER (摩尔): 基于8万小时训练数据的开源音频理解大模型

MooER: LLM-based Speech Recognition and Translation Models from Moore Threads

Github: https://github.com/MooreThreads/MooER
ModelScope: https://modelscope.cn/models/MooreThreadsSpeech/MooER-MTL-5K
Huggingface: https://huggingface.co/mtspeech/MooER-MTL-5K

paper:https://arxiv.org/abs/2408.05101

🎉🎉🎉我们发布了支持普通话输入的新 Omni (MooER-omni-v1) 和语音转语音翻译 (MooER-S2ST-v1) 模型。Omni 模型可以听到、思考和与您交谈!请在此处查看我们的演示

 Omni (MooER-omni-v1)

在本工作中,我们推出了摩耳大模型(英文名:MooER)—— 一个由摩尔线程开发的、基于大语言模型(Large Language Model,LLM)的语音识别和语音翻译系统。通过摩尔框架,您可以基于大语言模型,以端到端的方式,将输入语音自动转录为文本(即语音识别),并将其翻译为其它语言(即语音翻译)。关于MooER的具体效果,您可以查阅下文中有关评测结果的部分。在我们公布的技术报告中,我们提供了更详细的实验结果,并分享了我们对模型配置、训练策略等方面的理解。

MooER是业界首个基于国产全功能GPU进行训练和推理的大型开源语音模型。依托摩尔线程夸娥(KUAE)智算平台,MooER大模型仅用38小时便完成了5000小时音频数据和伪标签的训练,这一成就得益于自研的创新算法和高效计算资源的结合。

MooER不仅支持中文和英文的语音识别,还具备中译英的语音翻译能力。在多个语音识别领域的测试集中,MooER展现出领先或至少持平的优异表现。特别值得一提的是,在Covost2中译英测试集中,MooER-5K取得了25.2的BLEU分数,接近工业级效果。摩尔线程AI团队在该工作中开源了推理代码和5000小时数据训练的模型,并计划进一步开源训练代码和基于8万小时数据训练的模型,希望该工作能够在语音大模型的方法演进和技术落地方面为社区做出贡献。

MooER主要功能:

  • 语音识别:支持中文和英文的语音到文本的转换
  • 语音翻译:具备中文语音翻译成英文文本的能力
  • 高效率训练:在摩尔线程的智算平台上,快速完成大量数据的训练
  • 开源模型:推理代码和部分训练模型已经开源,便于社区使用和进一步研究。

MooER 模型、实验:

  • 深度学习架构:MoOER采用了深度学习技术,特别是神经网络来处理和理解语音信号端到端训练:模型从原始语音信号直接到文本输出,无需传统语音识别系统中的多个独立模块。
  • Encoder-Adapter-Decoder结构:
    • Encoder:负责将输入的语音信号转换成一系列高级特征表示。
    • Adapter:用于调整和优化模型对特定任务的适应性,提高型的泛化能力。
    • Decoder(Large Language Model,LLM):基于这些特征生成最终的文本输出。
  • LoRA技术:使用LoRA(Low-Rank Adaptation)技术,一种参数高效的模型微调方法,通过只更新模型中一小部分参数来提高训练效率和效果。
  • 伪标签训练:在训练过程中使用伪标签技术,即用模型自身的预测作为训练数据,以增强模型的学习能力。
  • 多语言支持:MOOER支持中文和英文的语音识别,以及中译英的语音翻译,显示出其多语言处理能

MooER的模型结构

包括Encoder、Adapter和Decoder(Large Language Model,LLM)三个部分。其中,由Encoder对输入的原始音频进行建模,提取特征并获取表征向量。Encoder的输出会送到Adapter进一步下采样,使得每120ms音频输出一组音频Embedding。音频Embedding和文本的Prompt Embedding拼接后,再送进LLM进行对应的下游任务,如语音识别(Automatic Speech Recognition,ASR)、语音翻译(Automatic Speech Translation,AST)等。在模型训练阶段,融合了语音模态和文本模态的数据会按以下形式输入到LLM:

训练数据格式

MooER的训练

我们使用开源的Paraformer语音编码器、Qwen2-7B-instruct大语言模型来初始化Encoder和LLM模块,并随机初始化Adapter模块。训练过程中,Encoder始终固定参数,Adapter和LLM会参与训练和梯度更新。利用自研的夸娥智算平台,我们使用DeepSpeed框架和Zero2策略,基于BF16精度进行训练和推理。经实验发现,训练过程中更新LLM参数能够提升最终音频理解任务的效果。为了提升训练效率,我们采用了LoRA技术,仅更新2%的LLM参数。具体的模型参数规模如下:

MooER 数据集:

该模型的训练数据MT5K(MT 5000h)由部分开源数据和内部数据构成,内部数据的语音识别标签均是由第三方云服务得到的伪标签。语音识别的伪标签经过一个文本翻译模型后,得到语音翻译的伪标签。我们没有对这些伪标签数据做任何的人工筛选。具体数据来源和对应的规模如下:

MooER实验结果:

我们将MooER与多个开源的音频理解大模型进行了对比,包括Paraformer、SenseVoice、Qwen-audio、Whisper-large-v3和SeamlessM4T-v2等。这些模型的训练规模从几万小时到上百万小时不等。对比结果显示,我们的开源模型MooER-5K在六个中文测试集上的CER(字错误率)达到4.21%,在六个英文测试集的WER(词错误率)为17.98%,与其它开源模型相比,MooER-5K的效果更优或几乎持平。特别是在Covost2 zh2en中译英测试集上,MooER的BLEU分数达到了25.2,显著优于其他开源模型,取得了可与工业水平相媲美的效果。基于内部8万小时数据训练的MooER-80k模型,在上述中文测试集上的CER达到了3.50%,在英文测试集上的WER到达了12.66%。

• Paraformer-large: 60,000 hours ASR data
• SenseVoice small: 300,000 hours ASR data
• Qwen-audio: 53,000 hours ASR data + 3700 hours S2TT data + …
• WhisperV3: 1000,000 hours weakly labels, 4000,000 hours pseudo labels
• SeamlessM4T2: 351,000 hours S2TT data, 145,000 hours S2ST data
• MooER-5K: 5,000 hours pseudo labels【伪标签】
• MooER-80K: 80,000 hours pseudo labels【伪标签】

建议

与此同时,我们还得到一些有趣的结论,可以为数据资源和计算资源有限的开发者提供一些建议:

▼Encoder的选择。我们分别对比了无监督(Self-Supervised Learning)训练的W2v-bert 2.0、半监督(Semi-Supervised Learning)训练的Whisper v3和有监督(Supervised Learning)训练的Paraformer。我们发现,采用无监督训练得到的Encoder必须参与到训练过程中,否则模型很难收敛。综合考虑模型效果、参数量以及训练和推理的效率,我们选择Paraformer作为Encoder。

▼音频建模粒度很关键。我们尝试使用240ms、180ms和120ms的粒度进行建模,并发现这一参数对音频与文本的融合效果具有重要影响,同时会影响模型的最终效果和训练的收敛速度。经过评估,我们最终选择每120ms输出一个音频Embedding

▼快速适应到目标垂类。我们仅使用了140h~150h的英文数据进行训练,可以在6个不同来源的英文的测试集上取得一定效果。同时我们尝试将任务迁移到语音翻译(AST)领域,取得了很好的效果。我们相信这个方法同样也适用于小语种、方言或其它低资源的音频理解任务。

▼LLM对音频理解任务的影响。我们发现,在模型训练过程中采用LoRA技术对LLM参数进行更新,可以使训练更快收敛,并且最终取得更好的效果。同时,音频理解任务上的效果也会随着基础LLM效果提升而提升。【LLM模型越大,效果越好。训练参数越多,效果越好】

是否冻结LLM,以及LLM模型的选择

加速训练:

优化了数据加载器部分,在相同配置下可以将训练速度提高4到5倍。同时,我们基于5000小时的训练优化了DeepSpeed的训练策略,并将其重新用于我们8wh内部数据的训练。对于需要解冻编码器的训练,我们使用梯度检查点技术以减少内存使用。我们使用基于Moore Threads的KUAE平台加速大型模型的训练。

训练参数:

应用场景:

  • 实时语音转写:在会议、讲座、课堂等场合,MOOER可以实时将语音转换为文字,便于记录和回顾。
  • 多语言翻译:支持中英文之间的语音翻译,适用于跨国会议、国际交流等场景。
  • 智能客服:在客户服务领域,MOOER可以通过语音识别和翻译功能,提高客服的响应效率和服务质量。
  • 语音助手:集成到智能手机、智能音箱等设备中,提供语音交互服务。
  • 教育辅助:在语言学习中,MOOER可以帮助学习者进行发音校正和语言翻译,

📝 路线图

  •  Technical report 技术报告
  •  Inference code and pretrained ASR/AST models using 5k hours of data
    使用 5k 小时数据的推理代码和预训练的 ASR/AST 模型
  •  Pretrained ASR model using 80k hours of data
    使用 80k 小时数据的预训练 ASR 模型
  •  Traning code for MooER MooER 的训练代码
  •  LLM-based speech-to-speech translation (S2ST, Mandrin Chinese to English)
    LLM 基于语音的语音转语音翻译(S2ST,Mandrin 中文到英文)
  •  GPT-4o-like audio-LLM supporting chat using speech
    类似 GPT-4o 的音频LLM 支持使用语音聊天
  •  Training code and technical report about our new Omni model
    有关我们新 Omni 模型的培训代码和技术报告
  •  Omni audio-LLM that supports multi-turn conversation
    Omni audio-LLM,支持多轮次对话
  •  Pretrained AST and multi-task models using 80k hours of data
    使用 80k 小时数据的预训练 AST 和多任务模型
  •  LLM-based timbre-preserving Speech-to-speech translation
    LLM 基于音色保留的语音到语音翻译

MaskGCT-国产最强TTS语音大模型

近期,港中大(深圳)联手趣丸科技联合推出了新一代大规模声音克隆 TTS 模型 ——MaskGCT。该模型在包含 10 万小时多语言数据的 Emilia 数据集上进行训练,展现出超自然的语音克隆、风格迁移以及跨语言生成能力,同时保持了较强的稳定性。MaskGCT 已在香港中文大学(深圳)与上海人工智能实验室联合开发的开源系统 Amphion 发布。

本文介绍了一种名为 Masked Generative Codec Transformer(MaskGCT)的全非自回归 TTS 模型。

现有大规模文本到语音(TTS)系统通常分为自回归和非自回归系统。自回归系统隐式地建模持续时间,但在鲁棒性和持续时间可控性方面存在一定缺陷。非自回归系统在训练过程中需要显式的文本与语音对齐信息,并预测语言单元(如音素)的持续时间,这可能会影响其自然度。

该模型消除了文本与语音监督之间的显式对齐需求,以及音素级持续时间预测。MaskGCT 是一个两阶段模型:在第一阶段,模型使用文本预测从语音自监督学习(SSL)模型中提取的语义标记;在第二阶段,模型基于这些语义标记预测声学标记。MaskGCT 遵循掩码预测学习范式。在训练过程中,MaskGCT 学习根据给定的条件和提示预测掩码的语义或声学标记。在推理过程中,模型以并行方式生成指定长度的标记。通过对 10 万小时的自然语音进行实验,结果表明 MaskGCT 在质量、相似度和可理解性方面优于当前最先进的零样本 TTS 系统。

一、方法

MaskGCT 模型由四个主要组件组成:

1. 语音语义表示编解码器:将语音转换为语义标记。

2. 语音声学编解码器:从声学标记重建波形。

3. 文本到语义模型【 非自回归Tranformer 】:使用文本和提示语义标记预测语义标记。

4. 语义到声学模型【非自回归Tranformer】:基于语义标记预测声学标记。

所提出的两阶段 MaskGCT 框架的概述。它由四个主要部分组成:(1)语音语义表示编解码器将语音转换为语义标记; (2)文本到语义模型用文本和提示语义标记来预测语义标记; (3) 语义到声学模型预测以语义标记为条件的声学标记; (4) 语音声学编解码器根据声学标记重建波形

语音语义表示编解码器用于将语音转换为离散的语义标记,这些标记通常通过离散化来自语音自监督学习(SSL)模型的特征获得。与以往使用 k-means 方法离散化语义特征相比,这种方法可能导致信息损失,从而影响高质量语音的重建或声学标记的精确预测,尤其是在音调丰富的语言中。为了最小化信息损失,本文训练了一个 VQ-VAE 模型来学习一个向量量化码本,该码本能够从语音 SSL 模型中重建语音语义表示。具体来说,使用 W2v-BERT 2.0 模型的第 17 层隐藏状态作为语音编码器的语义特征,编码器和解码器由多个 ConvNext 块组成。通过改进的 VQ-GAN 和 DAC 方法,使用因子分解码将编码器输出投影到低维潜在变量空间。

图 5:语义编解码器(左)和声学编解码器(右)概述。语义编解码器被训练为使用单个码本量化语义特征并重建语义特征声学编解码器经过训练,使用 RVQ 量化和重建语音波形,并使用时间和频谱鉴别器进一步提高重建质量

语音声学编解码器旨在将语音波形量化为多层离散标记,同时尽可能保留语音的所有信息。本文采用残差向量量化(Residual Vector Quantization, RVQ)方法,将 24K 采样率的语音波形压缩为 12 层的离散标记。此外,模型使用 Vocos 架构作为解码器,以提高训练和推理效率。

文本到语义模型采用非自回归掩码生成 Transformer而不使用自回归模型或任何文本到语音的对齐信息。在训练过程中,我们随机提取语义标记序列的前缀部分作为提示,以利用语言模型的上下文学习能力。我们使用 Llama 风格的 Transformer 作为模型的主干,结合门控线性单元(GLU)和 GELU 激活函数、旋转位置编码等,但将因果注意力替换为双向注意力。还使用了接受时间步 t 作为条件的自适应 RMSNorm。在推理过程中,我们生成任意指定长度的目标语义标记序列,条件是文本和提示语义标记序列。本文还训练了一个基于流匹配的持续时间预测模型,以预测基于文本和提示语音持续时间的总持续时间,利用上下文学习。

语义到声学模型同样采用非自回归掩码生成 Transformer,【基于 SoundStorm】,该模型以语义标记为条件,生成多层声学标记序列以重建高质量语音波形。对于 S2A 模型的输入,由于语义令牌序列中的帧数等于提示声学序列和目标声学序列中帧数的总和,我们简单地将语义令牌的嵌入和从层 1 到层 j的声学令牌的嵌入相加。在推理过程中,我们从粗到细为每层生成令牌,在每层内使用迭代并行解码。

图 2:T2S(左)和 S2A(右)模型的训练图概述。 T2S 模型经过训练,可以预测以文本和提示语义标记为前缀的屏蔽语义标记。 S2A 模型经过训练,可以根据提示声学标记、语义标记和前一层的声学标记来预测随机层的屏蔽声学标记
SoundStorm 架构

二、支持的功能

MaskGCT 能超自然地模拟参考音频音色与风格,并跨语言生成音频

Zero-shot In-context Learning 根据提示音频自动生成下文

MaskGCT 可以模仿名人或动画节目中角色的声音。

MaskGCT 可以学习提示语音的韵律、风格和情感。

MaskGCT 可以从提示语音中学习如何说话,包括情感和口音等风格。

MaskGCT 具有控制生成音频的总持续时间的能力,从而使我们能够将生成的语音的速度调节在合理的范围内。

与 AR 模型相比,MaskGCT 表现出更高的稳健性(更低的 WER),在一些具有挑战性的情况下(例如绕口令和 AR 模型容易产生幻觉的其他样本)表现出增强的稳定性。

Speech Editing 语音编辑。

基于掩码和预测机制,我们的文本到语义模型支持在文本-语音对齐器的帮助下进行零镜头语音内容编辑。通过使用对齐器,我们可以识别原始语义标记序列的编辑边界,屏蔽需要编辑的部分,然后使用编辑后的文本和未屏蔽的语义标记来预测被屏蔽的语义标记。

语音对话。MaskGCT 通过使用改进的训练策略微调 S2A (语义到声学)模型来支持零镜头语音转换。我们仍在努力提高语音转换的有效性。源和提示示例来自 Seed-TTS 的 demo 页面。

跨语言视频翻译。

三、实验结果

SOTA 的语音合成效果:MaskGCT 在三个 TTS 基准数据集上都达到了 SOTA 效果,在某些指标上甚至超过了人类水平。

此外,MaskGCT 在风格迁移(口音、情感)也达到了 SOTA 的水准:

我们还研究了 MaskGCT 在中、英外其它语言的能力:

四、应用场景

目前,MaskGCT 在短剧出海、智能助手、有声读物、辅助教育等领域拥有丰富的应用场景。为了加快落地应用,在安全合规下,趣丸科技打造了多语种速译智能视听平台 “趣丸千音”。一键上传视频即可快速翻译成多语种版本,并实现音话同步、口型同步、去字幕等功能。该产品进一步革新视频翻译制作流程,大幅降低过往昂贵的人工翻译成本和冗长的制作周期,成为影视、游戏、短剧等内容出海的理想选择平台。
《2024 年短剧出海白皮书》显示,短剧出海成为蓝海新赛道,2023 年海外市场规模高达 650 亿美元,约为国内市场的 12 倍,短剧出海成为蓝海新赛道。以 “趣丸千音” 为代表的产品的出现,将加速国产短剧 “走出去”,进一步推动中华文化在全球不同语境下的传播。

五、总结

MaskGCT 是一个大规模的零样本 TTS 系统,利用全非自回归掩码生成编解码器 Transformer,无需文本与语音的对齐监督和音素级持续时间预测。MaskGCT 通过文本预测从语音自监督学习(SSL)模型中提取的语义标记,然后基于这些语义标记预测声学标记,实现了高质量的文本到语音合成。实验表明,MaskGCT 在语音质量、相似度和可理解性方面优于最先进的 TTS 系统,并且在模型规模和训练数据量增加时表现更佳,同时能够控制生成语音的总时长。此外,我们还探索了 MaskGCT 在语音翻译、语音转换、情感控制和语音内容编辑等任务中的可扩展性,展示了 MaskGCT 作为语音生成基础模型的潜力。

GLM-4-Voice:智谱新一代端到端语音大模型

GLM-4-Voice: Towards Intelligent and Human-Like End-to-End Spoken Chatbot

代码仓库:https://github.com/THUDM/GLM-4-Voice

技术报告:https://arxiv.org/abs/2412.02612

继语言模型、图像理解、视频理解、图像生成、视频生成等模型之后,今天,智谱的多模态大模型家族再次加入新成员——GLM-4-Voice(端到端语音模型)。这一成果使得大模型具备了完整的感官系统,实现了机器与人交互的自然与流畅。
GLM-4-Voice 模型具备直接理解和生成中英文语音的能力,能够根据用户指令灵活调整语音的情感、语调、语速及方言等特征,且具有更低的延时,支持实时打断,进一步提升交互体验。
具体来说,GLM-4-Voice具备:

  1. 情感表达和情感共鸣:模拟不同的情感和语调,如高兴、悲伤、生气、害怕等情绪,用合适的情绪语气进行回复。传统 TTS 通常在情感表达上比较僵硬,声音缺少起伏和细腻的变化。
  2. 调节语速:在同一轮对话中,可以要求 TA 快点说 or 慢点说。
  3. 随时打断,灵活输入指令:根据实时的用户指令,调整语音输出的内容、风格和情感,支持更灵活的对话互动。例如,你可以随时打断 TA,让 TA 输出新的内容,更加符合日常对话情境。
  4. 多语言、多方言支持:目前 GLM-4-Voice 支持中英文语音以及中国各地方言,尤其擅长粤语、重庆话、北京话等。

技术细节

与传统的 ASR + LLM + TTS 的级联方案相比,端到端模型以音频 token 的形式直接建模语音,在一个模型里面同时完成语音的理解和生成,避免了级联方案“语音转文字再转语音” 的中间过程中带来的信息损失,也解锁了更高的能力上限。

GLM-4-Voice 由三个部分组成:

  • GLM-4-Voice-Tokenizer: 通过在 Whisper 的 Encoder 部分增加 Vector Quantization [单层量化]训练,通过在 ASR 数据上有监督训练的方式得到,将连续的语音输入转化为离散的 token,每秒音频转化为 12.5 个离散 token。
  • GLM-4-Voice-9B: 在 GLM-4-9B 的基础上进行语音模态的预训练和对齐,从而能够理解和生成离散化的语音。
  • GLM-4-Voice-Decoder: 基于 CosyVoice 的 Flow Matching 模型结构训练的支持流式推理的语音解码器,将离散化的语音 token 转化为连续的语音输出。最少只需要 10 个音频 token 即可开始生成,降低端到端对话延迟。
 CosyVoice  模型架构

具体来说,GLM-4-Voice 以离散 token 的方式表示音频,实现了音频的输入和输出的端到端建模。具体来说,我们基于语音识别(ASR)模型以有监督方式训练了音频 Tokenizer,能够在 12.5Hz(12.5 个音频 token)单码表的超低码率下准确保留语义信息,并包含语速,情感等副语言信息。

Speech Tokenizaion

语音分词器将连续的语音波形转换为离散的语音标记,这些标记保留了语义信息以及部分声学信息

我们采用了 Zeng 等人[Scaling speech-text pre-training with synthetic interleaved dat] 提出的 12.5Hz 语音分词器。为确保内容完整,下面简要描述其架构:

  • 基础模型
    • 基于 Whisper-large-v3(来自 Whisper 系列)的预训练自动语音识别模型
  • 关键改进
    • 在编码器中引入了池化层向量量化层
    • 码本向量通过指数移动平均 (EMA) 学习。
    • 为防止码本崩溃,在量化之前,会将低使用率的码本向量使用随机选取的连续表示进行重置。

流式推理的因果性设计(Causality for Streaming Inference)

为支持在推理阶段对输入语音进行流式编码,我们对 Whisper 编码器架构进行了因果性改造

  • 因果卷积(Causal Convolution)
    • 将编码器 Transformer 之前的卷积层替换为因果卷积 [39],以确保当前时间步的输出不会依赖未来的信息。
  • 块级因果注意力(Block Causal Attention)
    • 将编码器中的双向注意力机制替换为块级因果注意力,进一步支持流式输入的逐步推理。

Speech Decoder

语音合成方面,我们采用 Flow Matching 模型流式从音频 token 合成音频最低只需要 10 个 token 合成语音,最大限度降低对话延迟。

训练策略

我们从零开始训练语音标记编码器(speech token encoder)和流匹配模型(flow matching model),并采用两阶段训练范式,以充分利用不同质量的丰富语音数据。

  • 预训练阶段(Pre-training Stage)
    • 使用来自不同说话人质量各异无监督语音数据中的所有语音样本进行训练。
    • 该阶段旨在让模型学习通用的语音表示,以提升模型在多样化语音场景下的泛化能力。
  • 微调阶段(Fine-tuning Stage)
    • 使用来自单一说话人高质量语音样本进行训练。
    • 该阶段旨在提升模型在一致性语音质量上的表现,使生成的语音在音色和风格上更加自然流畅。

Support for Streaming Inference

为了实现流式推理并降低延迟,我们在微调阶段引入了截断音频样本(即音频的前n⋅b 秒,其中 n=1,2,3,…且 b 为块大小)。这种设计能够有效地为模型处理流式场景做好准备。

推理阶段,解码器会处理与前 n⋅b秒音频对应的语音标记。具体而言,它将前 (n−1)⋅b秒的语音作为提示,预测从 (n−1)⋅b秒到 n⋅b 秒之间的语音内容。这种方法使模型能够以最小延迟为 b 秒的速度生成语音标记。

基于实证研究,我们为 GLM-4-Voice 设置了 b=0.8秒,这意味着:生成初始语音输出至少需要 10 个语音标记。

Training Procedure

预训练方面,为了攻克模型在语音模态下的智商和合成表现力两个难关,我们将 Speech2Speech 任务解耦合为 Speech2Text(根据用户音频做出文本回复) 和 Text2Speech(根据文本回复和用户语音合成回复语音)两个任务,并设计两种预训练目标适配这两种任务形式:

  • Speech2Text:从文本数据中,随机选取文本句子转换为音频 token;
  • Text2Speech:从音频数据中,随机选取音频句子加入文本 transcription。

分别基于文本预训练数据和无监督音频数据合成语音-文本交错数据以适配这两种任务形式。

阶段一:语音-文本联合预训练:通过结合交错语音-文本数据大规模无监督语音数据有监督语音-文本数据,实现了对 LLM 语音建模能力的全面扩展。通过这种联合预训练策略,模型能够在跨模态知识迁移语音理解生成任务中展现出卓越的性能,同时保持其在文本任务中的竞争力。

阶段2:SFT微调

整体时延:

总体延迟:生成首个语音波形的总体响应延迟可按以下方式计算:

  • 语音分词(Speech Tokenization)
    用户的语音输入由语音分词器以流式方式处理,分词器以固定大小的块 (tblock) 进行操作。
    由于采用了流式设计,分词器能够在接收到语音输入后立即开始处理,并且只需处理当前块所需的时间,而不受语音总时长的影响。

因此,分词延迟 为:

LLM 预填充(Prefilling):语音分词器生成的语音标记数量 (Nspeech_tokens) 取决于用户语音的长度 (Tuser_speech) 和帧率 (fₙ = 12.5 个标记/秒)。

LLM 的预填充延迟 计算公式为:

LLM 解码(Decoding):在生成初始音频响应时,LLM 会生成 13 个文本标记10 个语音标记,总计:Nfirst_speech=13+10=23 个标记 个标记。

该步骤的解码延迟 计算公式为:

语音解码(Speech Decoding):在该步骤中,Nspeech = 10 个音频标记 由语音解码器处理,以生成首个音频片段

该步骤的解码延迟 计算公式为:

总延迟:

Model List

ModelTypeDownload
GLM-4-Voice-TokenizerSpeech Tokenizer🤗 Huggingface 🤖 ModelScope
GLM-4-Voice-9BChat Model🤗 Huggingface 🤖 ModelScope
GLM-4-Voice-DecoderSpeech Decoder🤗 Huggingface 🤖 ModelScope

效果和其他说明

支持语音输入/文本输入,以及语音+文本交替输出

音频实时生成的质量较差,Gradio 的流式音频播放效果不稳定。在生成完成后点击对话框中的音频质量会更高。目前仅支持女声输出,指令遵循能力较强。

关于实时打断功能

作者目前还没给出实现方法和demo。有关打断问题,可以考虑参考开源项目 CleanS2S,虽然是级联式 pipeline【ASR+LLM+TTS】,但是相关代码逻辑应该可以结合 GLM-4-Voice 这样的 end-to-end 模型。目前支持实时输入语音打断和输入文字打断两种方式,后续还会设计更多有趣的打断模式(例如 agent 视角的主动打断)。

https://github.com/opendilab/CleanS2S/blob/main/README.zh.md

总结:

GLM-4-Voice 在 GLM-4-9B 的基座模型基础之上,经过了数百万小时音频和数千亿 token 的音频文本交错数据预训练,拥有很强的音频理解和建模能力。对齐方面,为了支持高质量的语音对话,我们设计了一套流式思考架构:输入用户语音,GLM-4-Voice 可以流式交替输出文本和语音两个模态的内容,其中语音模态以文本模态作为参照保证回复内容的高质量,并根据用户的语音指令变化感情需求,在保证智商的情况下仍然具有端到端建模的能力,同时保持低延迟性(最低只需要输出 20 个 token 便可以合成语音)。