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 在音乐和语音领域都优于现有的最先进的编解码器,在更低的比特率下提供更高的音频质量,正如广泛的客观和主观评估所证明的那样。 通过开源我们的代码和模型,我们旨在为神经音频压缩研究的进步做出贡献。

语音多模态大模型汇总–Github

重点关注:

⚡ 语音表示模型:这些模型专注于学习结构性语音表示,然后可以将其量化为离散的语音标记,通常是指语义标记

⚡ 语音神经编解码器模型:这些模型旨在学习语音和音频离散标记,通常称为声学标记,同时保持重建能力和低比特率。

⚡ 语音大型语言模型:这些模型在语言建模方法的语音和声学标记之上进行训练。他们展示了对语音理解和语音生成任务的熟练程度。

Awesome Speech LM-语音大模型系列汇总

GitHub:https://github.com/ga642381/speech-trident/tree/master

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

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

🔱 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

Audio-dataset音频数据集汇总

数据集:https://github.com/LAION-AI/audio-dataset/

https://github.com/LAION-AI/audio-dataset/blob/main/data_collection/README.md

数据集集合 (Dataset List)

This dataset list includes all the raw datasets we have found up to now. You may also find their Data Type* as well as their status*.
此数据集列表包括我们迄今为止找到的所有原始数据集。您还可以找到他们的数据类型* 以及他们的状态*。

Most datasets are made public, hence downloadable through the URL in the list. You may find download scripts for some of them in audio-dataset/utils/. For those datasets who do not have any link in the list, they are purchased by LAION hence we can not make it public due to license issue. Do please contact us if you want to process them.
大多数数据集都是公开的,因此可以通过列表中的 URL 下载。您可以在 audio-dataset/utils/ 中找到其中一些的下载脚本。对于那些列表中没有任何链接的数据集,它们是由 LAION 购买的,因此由于许可证问题,我们无法公开。如果您想处理它们,请联系我们。

For using the excat processed dataset for training your models, please contact LAION.
如需使用 excat 处理的数据集来训练您的模型,请联系 LAION。

*Data Type Terminology Explanation
*数据类型术语解释

  • Caption: A natural language sentence describing the content of the audio
    字幕:描述音频内容的自然语言句子Example: A wooden door creaks open and closed multiple times
    示例:木门吱吱作响地打开和关闭多次
  • Class label: Labels that are often manually annotated for classification in curated datasets. Each audio clip can be assigned with one or several class label.
    类标签:通常在特选数据集中手动注释以进行分类的标签。可以为每个音频剪辑分配一个或多个类标签。Example: Cat, Dog, Water 示例:猫、狗、水
  • Tag: Tags of the audio that are commenly associated with data in website. A audio clip may be associated to several tags
    标签:与网站中的数据相关的音频标签。一个音频剪辑可能与多个标签相关联Example: phone recording, city, sound effect
    示例:电话录音、城市、音效
  • Relative text: Any text about the audio. May be comments on the audio, or other metadata. Can be very long.
    相对文本:有关音频的任何文本。可能是对音频的评论或其他元数据。可以很长。Exmaple: An impact sound that I would hear over an action scene, with some cinematic drums for more tension and a high pitched preexplosion sound followed by the impact of the explosion. Please rate only if you like it, haha. Thanks!
    示例:我在动作场景中会听到的撞击声,一些电影鼓声更加紧张,爆炸前发出高亢的音调,然后是爆炸的冲击声。请只评价你喜欢的,哈哈。谢谢!
  • Transcription: Transcription of human speech. Only used for Speech Datasets.
    转录:人类语音的转录。仅用于语音数据集。
  • Translation: Transcription in an other language of what the speaker uses.
    翻译:说话人使用的其他语言的转录。

*Status Terminology Explanation
*状态术语解释

  • processed: Dataset already converted to webdataset format.
    processed:数据集已转换为 webdataset 格式。
  • processing: Dataset already downloaded and the processing going on.
    processing:数据集已下载,处理正在进行中。
  • meatadata downloaded: We have already scraped the dataset website, wheras the dataset itself is not yet downloaded.
    meatadata downloaded:我们已经抓取了数据集网站,但数据集本身尚未下载。
  • assigned: Someone have begun the work on the dataset.
    assigned:有人已开始处理数据集。

General Sound Dataset General Sound 数据集

Name 名字Description 描述URLData Type 数据类型Total Duration 总持续时间Total Audio Number 音频总数Status 地位
AudioSet 音频集The AudioSet dataset is a large-scale collection of human-labeled 10-second sound clips drawn from YouTube videos. To collect all our data we worked with human annotators who verified the presence of sounds they heard within YouTube segments. To nominate segments for annotation, we relied on YouTube metadata and content-based search. The sound events in the dataset consist of a subset of the AudioSet ontology. You can learn more about the dataset construction in our ICASSP 2017 paper. Explore the dataset annotations by sound class below. There are 2,084,320 YouTube videos containing 527 labels
AudioSet 数据集是从 YouTube 视频中提取的人工标记的 10 秒声音剪辑的大规模集合。为了收集我们的所有数据,我们与人工注释者合作,他们验证了他们在 YouTube 片段中听到的声音是否存在。为了提名要注释的片段,我们依靠 YouTube 元数据和基于内容的搜索。数据集中的声音事件由 AudioSet 本体的子集组成。您可以在我们的 ICASSP 2017 论文中了解有关数据集构建的更多信息。探索下面的 sound 类数据集注释。有 2,084,320 个 YouTube 视频,包含 527 个标签
Click here 点击这里class labels, video, audio
类标签, 视频, 音频
5420hrs 5420 小时1951460processed 处理
AudioSet Strong AudioSet 强Audio events from AudioSet clips with singal class label annotation
来自 AudioSet 剪辑的音频事件,带有 singal 类标签注释
Click here 点击这里1 class label, video, audio
1 个类标签、视频、音频
625.93hrs 625.93 小时1074359processed (@marianna13#7139)
已处理 (@marianna13#7139)
BBC sound effects BBC 音效33066 sound effects with text description. Type: mostly environmental sound. Each audio has a natural text description. (need to see check the license)
33066 个带有文本描述的音效。类型:主要是环境声音。每个音频都有一个自然的文本描述。(需要查看 检查许可证)
Click here 点击这里1 caption, audio 1 个字幕、音频463.48hrs 463.48 小时15973processed 处理
AudioCaps 音频帽40 000 audio clips of 10 seconds, organized in three splits; a training slipt, a validation slipt, and a testing slipt. Type: environmental sound.
40 000 个 10 秒的音频剪辑,分为三个部分;训练滑道、验证滑道和测试滑道。类型:环境声音。
Click here 点击这里1 caption, audio 1 个字幕、音频144.94hrs 144.94 小时52904processed 处理
Audio Caption Hospital & Car Dataset
音频字幕医院和汽车数据集
3700 audio clips from “Hospital” scene and around 3600 audio clips from the “Car” scene. Every audio clip is 10 seconds long and is annotated with five captions. Type: environmental sound.
来自 “Hospital” 场景的 3700 个音频剪辑和来自 “Car” 场景的大约 3600 个音频剪辑。每个音频剪辑时长 10 秒,并带有 5 个字幕。类型:环境声音。
Click here 点击这里5 captions, audio 5 个字幕、音频10.64 + 20.91hrs 10.64 + 20.91 小时3709 + 7336we don’t need that 我们不需要那个
Clotho dataset Clotho 数据集Clotho consists of 6974 audio samples, and each audio sample has five captions (a total of 34 870 captions). Audio samples are of 15 to 30 s duration and captions are eight to 20 words long. Type: environmental sound.
Clotho 由 6974 个音频样本组成,每个音频样本有 5 个字幕(总共 34870 个字幕)。音频样本的持续时间为 15 到 30 秒,字幕的长度为 8 到 20 个单词。类型:环境声音。
Click here 点击这里5 captions, audio 5 个字幕、音频37.0hrs 37.0 小时5929processed 处理
Audiostock 音频库Royalty Free Music Library. 436864 audio effects(of which 10k available), each with a text description.
免版税音乐库。436864 个音频效果(其中 10k 可用),每个效果都有文字描述。
Click here 点击这里1 caption & tags, audio
1个字幕和标签,音频
46.30hrs 46.30 小时1000010k sound effects processed(@marianna13#7139)
处理 10k 音效(@marianna13#7139)
ESC-502000 environmental audio recordings with 50 classes
2000 个环境音频记录,50 个班级
Click here 点击这里1 class label, audio 1 个类标签,音频2.78hrs 2.78 小时2000processed(@marianna13#7139)
已处理(@marianna13#7139)
VGG-Sound VGG 声音VGG-Sound is an audio-visual correspondent dataset consisting of short clips of audio sounds, extracted from videos uploaded to YouTube
VGG-Sound 是一个视听通讯员数据集,由从上传到 YouTube 的视频中提取的音频短片组成
Click here 点击这里1 class label, video, audio
1 个类标签、视频、音频
560hrs 560 小时200,000 +processed(@marianna13#7139)
已处理(@marianna13#7139)
FUSSThe Free Universal Sound Separation (FUSS) dataset is a database of arbitrary sound mixtures and source-level references, for use in experiments on arbitrary sound separation. FUSS is based on FSD50K corpus.
Free Universal Sound Separation (FUSS) 数据集是一个包含任意混声和源级参考的数据库,用于任意声分离的实验。FUSS 基于 FSD50K 语料库。
Click here 点击这里no class label, audio 无类标签、音频61.11hrs 61.11 小时22000
UrbanSound8K 都市之声8K8732 labeled sound excerpts (<=4s) of urban sounds from 10 classes
来自 10 个类别的 8732 个城市声音的标记声音摘录 (<=4s)
Click here 点击这里1 class label, audio 1 个类标签,音频8.75hrs 8.75 小时8732processed(@Yuchen Hui#8574)
已处理(@Yuchen Hui#8574)
FSD50K51,197 audio clips of 200 classes
200 个班级的 51,197 个音频剪辑
Click here 点击这里class labels, audio 类标签, 音频108.3hrs 108.3 小时51197processed(@Yuchen Hui#8574)
已处理(@Yuchen Hui#8574)
YFCC100MYFCC100M is a that dataset contains a total of 100 million media objects, of which approximately 99.2 million are photos and 0.8 million are videos, all of which carry a Creative Commons license, including 8081 hours of audio.
YFCC100M 是一个 THAT 数据集,总共包含 1 亿个媒体对象,其中大约 9920 万个是照片,80 万个是视频,所有这些对象都带有 Creative Commons 许可证,包括 8081 小时的音频。
Click here 点击这里title, tags, audio, video, Flickr identifier, owner name, camera, geo, media source
标题、标签、音频、视频、Flickr 标识符、所有者名称、相机、地理位置、媒体来源
8081hrs 8081 小时requested access (@marianna13#7139)
请求的访问权限 (@marianna13#7139)
ACAV100M100M video clips with audio, each 10 sec, with automatic AudioSet, Kinetics400 and Imagenet labels. -> Noisy, but LARGE.
100M 带音频的视频剪辑,每段 10 秒,带有自动 AudioSet、Kinetics400 和 Imagenet 标签。-> 吵闹,但很大。
Click here 点击这里class labels/tags, audio 类标签/标签、音频31 years 31 岁100 million 1 亿
Free To Use Sounds 免费使用声音10000+ for 23$ 🙂 10000+ 23 美元 🙂Click here 点击这里1 caption & tags, audio
1个字幕和标签,音频
175.73hrs 175.73 小时6370
MACS – Multi-Annotator Captioned Soundscapes
MACS – 多注释者字幕音景
This is a dataset containing audio captions and corresponding audio tags for a number of 3930 audio files of the TAU Urban Acoustic Scenes 2019 development dataset (airport, public square, and park). The files were annotated using a web-based tool. Each file is annotated by multiple annotators that provided tags and a one-sentence description of the audio content. The data also includes annotator competence estimated using MACE (Multi-Annotator Competence Estimation).
这是一个数据集,其中包含 TAU Urban Acoustic Scenes 2019 开发数据集(机场、公共广场和公园)的 3930 个音频文件的字幕和相应的音频标签。这些文件使用基于 Web 的工具进行注释。每个文件都由多个注释器进行注释,这些注释器提供音频内容的标记和一句话描述。数据还包括使用 MACE(多注释者能力估计)估计的注释者能力。
Click here 点击这里multiple captions & tags, audio
多个字幕和标签,音频
10.92hrs 10.92 小时3930processed(@marianna13#7139 & @krishna#1648 & Yuchen Hui#8574)
已处理(@marianna13#7139 & @krishna#1648 & Yuchen Hui#8574)
Sonniss Game effects Sonniss 游戏效果Sound effects 音效no link 无链接tags & filenames, audio 标签和文件名,音频84.6hrs 84.6 小时5049processed 处理
WeSoundEffectsSound effects 音效no link 无链接tags & filenames, audio 标签和文件名,音频12.00hrs 12.00 小时488processed 处理
Paramount Motion – Odeon Cinematic Sound Effects
Paramount Motion – Odeon 电影音效
Sound effects 音效no link 无链接1 tag, audio 1 天,音频19.49hrs 19.49 小时4420processed 处理
Free Sound 免费声音Audio with text description (noisy)
带有文字描述的音频(嘈杂)
Click here 点击这里pertinent text, audio 相关文本、音频3003.38hrs 3003.38 小时515581processed(@Chr0my#0173 & @Yuchen Hui#8574)
已处理(@Chr0my#0173 & @Yuchen Hui#8574)
Sound Ideas 声音创意Sound effects library 音效库Click here 点击这里1 caption, audio 1 个字幕、音频
Boom Library Boom 库Sound effects library 音效库Click here 点击这里1 caption, audio 1 个字幕、音频assigned(@marianna13#7139)
已分配(@marianna13#7139)
Epidemic Sound (Sound effect part)
疫情之声(音效部分)
Royalty free music and sound effects
免版税的音乐和音效
Click here 点击这里Class labels, audio 类标签、音频220.41hrs 220.41 小时75645metadata downloaded(@Chr0my#0173), processed (@Yuchen Hui#8547)
元数据已下载(@Chr0my#0173),已处理(@Yuchen Hui#8547)
Audio Grounding dataset Audio Grounding 数据集The dataset is an augmented audio captioning dataset. Hard to discribe. Please refer to the URL for details.
该数据集是一个增强的音频字幕数据集。很难描述。详情请参阅网址。
Click here 点击这里1 caption, many tags,audio
1 个字幕、多个标签、音频
12.57hrs 12.57 小时4590
Fine-grained Vocal Imitation Set
细粒度的 Vocal Simitation Set
This dataset includes 763 crowd-sourced vocal imitations of 108 sound events.
该数据集包括 108 个声音事件的 763 个众包人声模拟。
Click here 点击这里1 class label, audio 1 个类标签,音频1.55hrs 1.55 小时1468processed(@marianna13#7139)
已处理(@marianna13#7139)
Vocal Imitation 人声模仿The VocalImitationSet is a collection of crowd-sourced vocal imitations of a large set of diverse sounds collected from Freesound (https://freesound.org/), which were curated based on Google’s AudioSet ontology (https://research.google.com/audioset/).
VocalImitationSet 是从 Freesound (https://freesound.org/) 收集的大量不同声音的众包人声模仿集合,这些声音是根据 Google 的 AudioSet 本体 (https://research.google.com/audioset/) 策划的。
Click here 点击这里1 class label, audio 1 个类标签,音频24.06hrs 24.06 小时9100 files 9100 个文件processed(@marianna13#7139)
已处理(@marianna13#7139)
VocalSketch 声乐素描Dataset contains thousands of vocal imitations of a large set of diverse sounds.The dataset also contains data on hundreds of people’s ability to correctly label these vocal imitations, collected via Amazon’s Mechanical Turk
Dataset 包含大量不同声音的数千个人声模仿。该数据集还包含数百人正确标记这些人声模仿的能力数据,这些数据是通过亚马逊的 Mechanical Turk 收集的
Click here 点击这里1 class label, audio 1 个类标签,音频18.86hrs 18.86 小时16645processed(@marianna13#7139)
已处理(@marianna13#7139)
VimSketch Dataset VimSketch 数据集VimSketch Dataset combines two publicly available datasets(VocalSketch + Vocal Imitation, but Vimsketch delete some parts of the previous two datasets),
VimSketch 数据集结合了两个公开可用的数据集(VocalSketch + Vocal Imitation,但 Vimsketch 删除了前两个数据集的部分),
Click here 点击这里class labels, audio 类标签, 音频Not important 不重要Not important 不重要
OtoMobile Dataset OtoMobile 数据集OtoMobile dataset is a collection of recordings of failing car components, created by the Interactive Audio Lab at Northwestern University. OtoMobile consists of 65 recordings of vehicles with failing components, along with annotations.
OtoMobile 数据集是由西北大学交互式音频实验室创建的故障汽车部件的录音集合。OtoMobile 由 65 条组件出现故障的车辆的录音以及注释组成。
Click here 点击这里
(restricted access) (限制访问)
class labels & tags, audio
类标签和标签,音频
Unknown 未知59
DCASE17Task 4 DCASE17任务 4DCASE Task 4 Large-scale weakly supervised sound event detection for smart cars
DCASE 任务 4 面向智能汽车的大规模弱监督声音事件检测
Click here 点击这里
Knocking Sound Effects With Emotional Intentions
带有情感意图的 Knocking Sound Effects
A dataset of knocking sound effects with emotional intention recorded at a professional foley studio. Five type of emotions to be portrayed in the dataset: anger, fear, happiness, neutral and sadness.
在专业拟音工作室录制的带有情感意图的敲击音效数据集。数据集中要描绘的五种情绪:愤怒、恐惧、快乐、中立和悲伤。
Click here 点击这里1 class label & audio
1个类标签和音频
500processed(@marianna13#7139)
已处理(@marianna13#7139)
WavText5Ks WavText5KWavText5K collection consisting of 4525 audios, 4348 descriptions, 4525 audio titlesand 2058 tags.
WavText5K 集合,包括 4525 个音频、4348 个描述、4525 个音频标题和 2058 个标签。
Click here 点击这里1 label, tags & audio
1个标签、标签和音频
4525 audio files 4525 个音频文件processed(@marianna13#7139)
已处理(@marianna13#7139)

Speech Dataset 语音数据集

Name 名字Description 描述URLData Type 数据类型Status 地位
People’s Speech 人民致辞30k+ hours en-text 30k+ 小时 en-textClick here 点击这里transcription, audio 转录, 音频assigned(@PiEquals4#1909)
已分配(@PiEquals4#1909)
Multilingual Spoken Words
多语言口语
6k+ hours 1sec audio clips with words of 50+ languages
6k+ 小时 1 秒音频剪辑,包含 50+ 种语言的单词
Click here 点击这里transcription, audio 转录, 音频processing(@PiEquals4#1909)
处理中(@PiEquals4#1909)
AISHELL-2Contains 1000 hours of clean read-speech data from iOS is free for academic usage.
包含 1000 小时的 iOS 清晰语音朗读数据,可免费用于学术用途。
Click here 点击这里transcription, audio 转录, 音频
Surfing AI Speech Dataset
冲浪 AI 语音数据集
30k+ – proprietary 30k+ – 专有Click here 点击这里transcription, audio 转录, 音频
LibriSpeech Libri演讲A collection of approximately 1,000 hours of audiobooks that are a part of the LibriVox project.
大约 1,000 小时的有声读物集合,是 LibriVox 项目的一部分。
Click here 点击这里transcription, audio 转录, 音频processed(@marianna13#7139)
已处理(@marianna13#7139)
Libri-light 光书60K hours of unlabelled speech from audiobooks in English and a small labelled dataset (10h, 1h, and 10 min) plus metrics, trainable baseline models, and pretrained models that use these datasets.
来自英语有声读物的 60K 小时未标记语音和一个小型标记数据集(10 小时、1 小时和 10 分钟)以及使用这些数据集的指标、可训练基线模型和预训练模型。
Click here 点击这里transcription, audio 转录, 音频
Europarl-ST Europarl-ST (欧洲公园-ST)A Multilingual Speech Translation Corpus, that contains paired audio-text samples for Speech Translation, constructed using the debates carried out in the European Parliament in the period between 2008 and 2012.
多语言语音翻译语料库,包含用于语音翻译的成对音频文本样本,使用 2008 年至 2012 年期间在欧洲议会进行的辩论构建。
Click here 点击这里translation, audio 翻译, 音频processed(@Antoniooooo#4758)
已处理(@Antoniooooo#4758)
CoVoST 考沃斯特A large-scale multilingual ST corpus based on Common Voice, to foster ST research with the largest ever open dataset. Its latest version covers translations from English into 15 languages—Arabic, Catalan, Welsh, German, Estonian, Persian, Indonesian, Japanese, Latvian, Mongolian, Slovenian, Swedish, Tamil, Turkish, Chinese—and from 21 languages into English, including the 15 target languages as well as Spanish, French, Italian, Dutch, Portuguese, Russian. It has total 2,880 hours of speech and is diversified with 78K speakers.
基于 Common Voice 的大规模多语言 ST 语料库,以有史以来最大的开放数据集促进 ST 研究。其最新版本涵盖从英语翻译成 15 种语言—阿拉伯语、加泰罗尼亚语、威尔士语、德语、爱沙尼亚语、波斯语、印度尼西亚语、日语、拉脱维亚语、蒙古语、斯洛文尼亚语、瑞典语、泰米尔语、土耳其语、中文—以及从 21 种语言翻译成英语,包括 15 种目标语言以及西班牙语、法语、意大利语、荷兰语、葡萄牙语、俄语。它总共有 2,880 小时的语音,并拥有 78K 扬声器。
Click here 点击这里translation & transcription, audio
翻译和转录,音频
assigned(@PiEquals4#1909)
已分配(@PiEquals4#1909)
GigaSpeech Giga语音An evolving, multi-domain English speech recognition corpus with 10,000 hours of high quality labeled audio suitable for supervised training, and 40,000 hours of total audio suitable for semi-supervised and unsupervised training.
一个不断发展的多域英语语音识别语料库,具有 10000 小时的高质量标记音频(适用于监督训练)和 40000 小时的总音频(适用于半监督和无监督训练)。
Click here 点击这里transcription, audio 转录, 音频processing(@PiEquals4#1909)
处理中(@PiEquals4#1909)
LJSpeech Dataset LJSpeech 数据集This is a public domain speech dataset consisting of 13,100 short audio clips of a single speaker reading passages from 7 non-fiction books. A transcription is provided for each clip. Clips vary in length from 1 to 10 seconds and have a total length of approximately 24 hours.
这是一个公共领域的语音数据集,由 13,100 个简短的音频剪辑组成,其中单个说话人朗读了 7 本非小说类书籍的段落。为每个剪辑提供转录。剪辑的长度从 1 秒到 10 秒不等,总长度约为 24 小时。
Click here 点击这里
Or  或
download 下载
transcription, audio 转录, 音频processed(@PiEquals4#1909)
已处理(@PiEquals4#1909)
Spotify English-Language Podcast Dataset
Spotify 英语播客数据集
This dataset consists of 100,000 episodes from different podcast shows on Spotify. The dataset is available for research purposes. We are releasing this dataset more widely to facilitate research on podcasts through the lens of speech and audio technology, natural language processing, information retrieval, and linguistics. The dataset contains about 50,000 hours of audio, and over 600 million transcribed words. The episodes span a variety of lengths, topics, styles, and qualities. Only non-commercial research is permitted on this dataset
该数据集包含来自 Spotify 上不同播客节目的 100,000 集。该数据集可用于研究目的。我们正在更广泛地发布此数据集,以便通过语音和音频技术、自然语言处理、信息检索和语言学的视角来促进对播客的研究。该数据集包含大约 50000 小时的音频和超过 6 亿个转录单词。这些剧集跨越各种长度、主题、风格和质量。此数据集只允许进行非商业研究
Click here 点击这里transcription, audio 转录, 音频requested access(@marianna13#7139)
请求访问(@marianna13#7139)
The Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS)
瑞尔森情感语音和歌曲视听数据库 (RAVDESS)
The Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS) contains 7356 files (total size: 24.8 GB). The database contains 24 professional actors (12 female, 12 male), vocalizing two lexically-matched statements in a neutral North American accent.
Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS) 包含 7356 个文件(总大小:24.8 GB)。该数据库包含 24 名专业演员(12 名女性,12 名男性),以中性的北美口音发音两个词汇匹配的陈述。
Click here 点击这里transcription, audio 转录, 音频processed(@PiEquals4#1909)
已处理(@PiEquals4#1909)
CREMA-DCREMA-D is a data set of 7,442 original clips from 91 actors. These clips were from 48 male and 43 female actors between the ages of 20 and 74 coming from a variety of races and ethnicities (African America, Asian, Caucasian, Hispanic, and Unspecified). Actors spoke from a selection of 12 sentences. The sentences were presented using one of six different emotions (Anger, Disgust, Fear, Happy, Neutral and Sad) and four different emotion levels (Low, Medium, High and Unspecified).
CREMA-D 是一个包含来自 91 位演员的 7,442 个原始剪辑的数据集。这些剪辑来自 48 名男性演员和 43 名女性演员,年龄在 20 至 74 岁之间,来自不同种族和民族(非裔美国人、亚洲人、高加索人、西班牙裔和未指定人)。演员们从精选的 12 句话中发言。这些句子使用六种不同的情绪(愤怒、厌恶、恐惧、快乐、中立和悲伤)中的一种和四种不同的情绪级别(低、中、高和未指定)来呈现。
Click here 点击这里transcription, audio 转录, 音频processed(@PiEquals4#1909)
已处理(@PiEquals4#1909)
EmovV-DBThe emotional Voice Database. This dataset is built for the purpose of emotional speech synthesis. It includes recordings for four speakers- two males and two females. The emotional styles are neutral, sleepiness, anger, disgust and amused.
情感语音数据库。此数据集是为情感语音合成而构建的。它包括四个扬声器的录音 – 两个男性和两个女性。情绪风格是中性、困倦、愤怒、厌恶和逗乐。
Click here 点击这里transcription, class labels, audio
转录、类标签、音频
assigned(@PiEquals4#1909)
已分配(@PiEquals4#1909)
CMU_ArcticThe databases consist of around 1150 utterances carefully selected from out-of-copyright texts from Project Gutenberg. The databses include US English male (bdl) and female (slt) speakers (both experinced voice talent) as well as other accented speakers.
这些数据库包含大约 1150 条话语,这些话语是从 Project Gutenberg 的版权外文本中精心挑选出来的。数据库包括美国英语男性 (bdl) 和女性 (slt) 说话人(均为经验丰富的配音人才)以及其他带口音的说话人。
Click here 点击这里transcription, tags, audio,…TBD
转录、标签、音频,…待定
processed(@marianna13#7139)
已处理(@marianna13#7139)
IEMOCAP database IEMOCAP 数据库The Interactive Emotional Dyadic Motion Capture (IEMOCAP) database is an acted, multimodal and multispeaker database. It contains approximately 12 hours of audiovisual data, including video, speech, motion capture of face, text transcriptions.
交互式情感二元动作捕捉 (IEMOCAP) 数据库是一个行动、多模态和多说话人数据库。它包含大约 12 小时的视听数据,包括视频、语音、面部动作捕捉、文本转录。
Click here 点击这里transcription, video, audio,…TBD
转录、视频、音频,…待定
assigned(@marianna13#7139)
已分配(@marianna13#7139)
YouTube dataset YouTube 数据集youtube video/audio + automatically generated subtitle. For details, please ask @marianna13#7139.
YouTube 视频/音频 + 自动生成的字幕。详情请咨询 @marianna13#7139。
No link (please contact @marianna13#7139)
无链接(请联系 @marianna13#7139)
transcription, audio, video
转录, 音频, 视频
processed(@marianna13#7139)
已处理(@marianna13#7139)
The Hume Vocal Burst Competition Dataset (H-VB)
休谟人声爆发竞赛数据集 (H-VB)
labels, audio 标签, 音频Click here 点击这里labels, audio 标签, 音频assigned(@Yuchen Hui#8574)
已分配(@Yuchen Hui#8574)

Music Dataset 音乐数据集

NameDescription 描述URLText Type 文本类型Status 地位
Free Music Archive 免费音乐档案We introduce the Free Music Archive (FMA), an open and easily accessible dataset suitable for evaluating several tasks in MIR, a field concerned with browsing, searching, and organizing large music collections. The community’s growing interest in feature and end-to-end learning is however restrained by the limited availability of large audio datasets. The FMA aims to overcome this hurdle by providing 917 GiB and 343 days of Creative Commons-licensed audio from 106,574 tracks from 16,341 artists and 14,854 albums, arranged in a hierarchical taxonomy of 161 genres. It provides full-length and high-quality audio, pre-computed features, together with track- and user-level metadata, tags, and free-form text such as biographies. We here describe the dataset and how it was created, propose a train/validation/test split and three subsets, discuss some suitable MIR tasks, and evaluate some baselines for genre recognition. Code, data, and usage examples are available at https://github.com/mdeff/fma.
我们介绍了免费音乐档案 (FMA),这是一个开放且易于访问的数据集,适用于评估 MIR 中的多项任务,MIR 是一个与浏览、搜索和组织大型音乐收藏有关的领域。然而,社区对功能和端到端学习的兴趣日益浓厚,但由于大型音频数据集的可用性有限,这限制了他们。FMA 旨在通过提供来自 16,341 位艺术家和 14,854 张专辑的 106,574 首曲目的 917 GiB 和 343 天的知识共享许可音频来克服这一障碍,这些音频按照 161 种流派的分层分类法排列。它提供全长和高质量的音频、预计算功能,以及轨道和用户级元数据、标签和自由格式的文本,例如传记。我们在这里描述了数据集及其创建方式,提出了一个训练/验证/测试拆分和三个子集,讨论了一些合适的 MIR 任务,并评估了一些流派识别的基线。代码、数据和用法示例可在 https://github.com/mdeff/fma 中找到。
Click here 点击这里tags/class labels, audio 标签/类标签, 音频processed(@marianna13#7139)
已处理(@marianna13#7139)
MusicNetMusicNet is a collection of 330 freely-licensed classical music recordings, together with over 1 million annotated labels indicating the precise time of each note in every recording, the instrument that plays each note, and the note’s position in the metrical structure of the composition. The labels are acquired from musical scores aligned to recordings by dynamic time warping. The labels are verified by trained musicians; we estimate a labeling error rate of 4%. We offer the MusicNet labels to the machine learning and music communities as a resource for training models and a common benchmark for comparing results. URL: https://homes.cs.washington.edu/~thickstn/musicnet.html
MusicNet 是 330 张免费授权的古典音乐录音的集合,以及超过 100 万个带注释的标签,这些标签指示了每个录音中每个音符的精确时间、演奏每个音符的乐器以及音符在乐曲的度量结构中的位置。标签是通过动态时间扭曲从与录音对齐的乐谱中获得的。唱片公司由训练有素的音乐家进行验证;我们估计标记错误率为 4%。我们为机器学习和音乐社区提供 MusicNet 标签,作为训练模型的资源和比较结果的通用基准。网址:https://homes.cs.washington.edu/~thickstn/musicnet.html
Click here 点击这里class labels, audio 类标签, 音频processed(@IYWO#9072) 已处理(@IYWO#9072)
MetaMIDI DatasetWe introduce the MetaMIDI Dataset (MMD), a large scale collection of 436,631 MIDI files and metadata. In addition to the MIDI files, we provide artist, title and genre metadata that was collected during the scraping process when available. MIDIs in (MMD) were matched against a collection of 32,000,000 30-second audio clips retrieved from Spotify, resulting in over 10,796,557 audio-MIDI matches. In addition, we linked 600,142 Spotify tracks with 1,094,901 MusicBrainz recordings to produce a set of 168,032 MIDI files that are matched to MusicBrainz database. These links augment many files in the dataset with the extensive metadata available via the Spotify API and the MusicBrainz database. We anticipate that this collection of data will be of great use to MIR researchers addressing a variety of research topics.
我们介绍 MetaMIDI 数据集 (MMD),这是一个包含 436,631 个 MIDI 文件和元数据的大型集合。除了 MIDI 文件之外,我们还提供在抓取过程中收集的艺术家、标题和流派元数据(如果可用)。(MMD) 中的 MIDI 与从 Spotify 检索的 32,000,000 个 30 秒音频剪辑集合进行匹配,从而产生超过 10,796,557 个音频-MIDI 匹配。此外,我们将 600,142 个 Spotify 曲目与 1,094,901 个 MusicBrainz 录音链接起来,生成了一组与 MusicBrainz 数据库匹配的 168,032 个 MIDI 文件。这些链接通过通过 Spotify API 和 MusicBrainz 数据库提供的大量元数据来扩充数据集中的许多文件。我们预计这些数据收集将对处理各种研究主题的 MIR 研究人员非常有用。
Click here 点击这里tags, audio 标签, 音频
MUSDB18-HQMUSDB18 consists of a total of 150 full-track songs of different styles and includes both the stereo mixtures and the original sources, divided between a training subset and a test subset.
MUSDB18 由总共 150 首不同风格的全轨歌曲组成,包括立体声混音和原始源,分为训练子集和测试子集。
Click here 点击这里1 class label, audio 1 个类标签,音频processed(@marianna13#7139)
已处理(@marianna13#7139)
Cambridge-mt Multitrack Dataset
Cambridge-mt 多轨数据集
Here’s a list of multitrack projects which can be freely downloaded for mixing practice purposes. All these projects are presented as ZIP archives containing uncompressed WAV files (24-bit or 16-bit resolution and 44.1kHz sample rate).
以下是可以免费下载用于混音练习目的的多轨项目列表。所有这些项目都以 ZIP 档案的形式呈现,其中包含未压缩的 WAV 文件(24 位或 16 位分辨率和 44.1kHz 采样率)。
Click here 点击这里1 class label, audio 1 个类标签,音频processed(@marianna13#7139)
已处理(@marianna13#7139)
Slakh 斯拉赫The Synthesized Lakh (Slakh) Dataset contains 2100 automatically mixed tracks and accompanying MIDI files synthesized using a professional-grade sampling engine.
合成的 Lakh (Slakh) 数据集包含 2100 个自动混合的轨道和随附的 MIDI 文件,这些文件使用专业级采样引擎合成。
Click here 点击这里1 class label, audio 1 个类标签,音频processed(krishna#1648) 已处理(Krishna#1648)
TunebotThe Tunebot project is an online Query By Humming system. Users sing a song to Tunebot and it returns a ranked list of song candidates available on Apple’s iTunes website. The database that Tunebot compares to sung queries is crowdsourced from users as well. Users contribute new songs to Tunebot by singing them on the Tunebot website. The more songs people contribute, the better Tunebot works. Tunebot is no longer online but the dataset lives on.
Tunebot 项目是一个在线 Query By Humming 系统。用户向 Tunebot 唱歌,它会返回 Apple iTunes 网站上可用的候选歌曲的排名列表。Tunebot 与唱歌查询进行比较的数据库也是从用户那里众包的。用户通过在 Tunebot 网站上演唱新歌来向 Tunebot 贡献新歌。人们贡献的歌曲越多,Tunebot 的效果就越好。Tunebot 不再在线,但数据集仍然存在。
Click here 点击这里song name(so transcription), audio
歌曲名称(SO 转录)、音频
processed(@marianna13#7139)
已处理(@marianna13#7139)
JunoA music review webset 音乐评论网络集Click here 点击这里perinent text/class lables, audio
Perinent text/类标签, 音频
meatadata downloaded(@dicknascarsixtynine#3885) & processed(@marianna13#7139)
Meatadata 已下载(@dicknascarsixtynine#3885) & 已处理(@marianna13#7139)
Pitch ForkMusic review website 音乐评论网站Click here 点击这里pertinent text (long paragraphs), audio
相关文本(长段落)、音频
GeniusMusic lyrics website Music 歌词网站pertinent text (long paragraphs), audio
相关文本(长段落)、音频
assigned(@marianna13#7139)
已分配(@marianna13#7139)
IDMT-SMT-Audio-EffectsThe IDMT-SMT-Audio-Effects database is a large database for automatic detection of audio effects in recordings of electric guitar and bass and related signal processing.
IDMT-SMT-Audio-Effects 数据库是一个大型数据库,用于自动检测电吉他和贝斯录音中的音频效果以及相关的信号处理。
Click here 点击这里class label, audio 类标签, 音频
MIDI50KMusic generated by MIDIFILES using the synthesizer available at https://pypi.org/project/midi2audio/
MIDIFILES 使用 https://pypi.org/project/midi2audio/ 提供的合成器生成的音乐
Temporary not available, will be added soon
暂时不可用,将很快添加
MIDI files, audio  Processing(@marianna13#7139)  
MIDI130KMusic generated by MIDIFILES using the synthesizer available at https://pypi.org/project/midi2audio/
MIDIFILES 使用 https://pypi.org/project/midi2audio/ 提供的合成器生成的音乐
Temporary not available, will be added soon
暂时不可用,将很快添加
MIDI files, audio MIDI 文件、音频Processing(@marianna13#7139)
加工中(@marianna13#7139)
MillionSongDataset72222 hours of general music as 30 second clips, one million different songs.  Temporarily not available  tags, artist names, song titles, audio  
synth1B1One million hours of audio: one billion 4-second synthesized sounds. The corpus is multi-modal: Each sound includes its corresponding synthesis parameters. Since it is faster to render synth1B1 in-situ than to download it, torchsynth includes a replicable script for generating synth1B1 within the GPU.  Click here 点击这里synthesis parameters, audio  
Epidemic Sound (music part)Royalty free music and sound effects
免版税的音乐和音效
Click here 点击这里class label, tags, audio  assigned(@chr0my#0173)  

LAION开源业界最大音乐数据集LAION-DISCO-12M

数据集地址:https://huggingface.co/datasets/laion/LAION-DISCO-12M

非盈利组织LAION开源了一个新的数据集:LAION-DISCO-12M

这个数据集包含12M个公开可用的YouTube上的音乐样本,是目前最大的公开可用的音乐开放数据集。这些样本与元数据配对,以支持基础模型中通用音频、音乐信息检索和音频数据集分析等研究。同时,LAION团队为12,648,485首歌曲收集了元数据,包括歌曲名称、艺术家名称和专辑名称。

该数据集是DISCO-10M的后续工作,并与之前的工作相比提供了以下改进:

  • 数据收集过程基于艺术家的递归搜索;它是在YouTube音乐上完成的,而不是在Spotify上。这意味着元数据和YouTube URL正确匹配,与DISCO-10M不同,DISCO-10M的作者需要将YouTube URL与Spotify元数据匹配,导致大量错误的匹配。
  • 用于DISCO-10M的种子艺术家数量有限,这里通过使用不同国家和流派播放列表的图表扩展了种子艺术家列表。这个新的艺术家种子列表最终包含了250,516位艺术家

这个数据集可以促进几个关键领域的研究进展:

  • 音频和音乐基础模型:这个数据集的大规模特性允许研究人员训练音频基础模型(例如CLAP及其各种扩展,https://github.com/LAION-AI/CLAP,https://arxiv.org/abs/2211.06687),并研究其在各种下游任务中的泛化和迁移能力,如字幕生成、编辑、生成、分类等。
  • 音乐信息检索(MIR):这包括开发提取丰富音乐属性的方法,例如流派、艺术家识别、节奏、音高和其他音频特征。
  • 基于内容的音乐搜索:该数据集支持构建高级的基于内容的搜索引擎,能够识别与给定音频片段相似的歌曲(类似于Shazam等应用)。
  • 音乐推荐系统:利用这个数据集,研究人员可以分析歌曲和艺术家风格的相似性,并找到推荐音乐的新方法。

LAION-DISCO-12M的开源协议是Apache 2.0这确保了研究人员可以自由地利用这个数据集进行基础或应用研究。但是LAION这里建议遵循他们用于研究发布的指导方针:数据集是为研究目的而发布的,特别是用于在学术环境中对各种开放的多模态基础模型(例如CLAP)进行基础研究。我们强烈建议不要在工业环境中使用这些数据集,更强烈建议不要以原始形式使用数据集来创建最终产品。我们明确警告,LAION数据集是为了机器学习和相关领域的合格研究人员进行科学和/或安全分析所需的检查和使用而设计的。

OuteTTS-0.1-350M:TTS合成模型,利用纯语言建模,无需外部适配器

https://www.outeai.com/blog/outetts-0.1-350m

在日益增长的语音合成需求中,文本转语音(TTS)技术快速进步,但也面临不少挑战。传统TTS模型往往依赖复杂的多模块架构,如深度神经网络、语音合成器、文本分析器等适配器,以生成自然的人类语音。这种复杂度带来了大量资源消耗,对设备的要求极高,使得许多设备无法轻松使用。尤其是个性化的语音生成和应用场景,传统TTS技术往往需要庞大的数据集和较高的硬件配置,对此,Oute AI发布了OuteTTS-0.1-350M,为TTS领域带来了革新。OuteTTS-0.1-350M是一款不依赖外部适配器、纯语言建模的轻量级TTS模型。通过直接整合文本和语音生成流程,这款模型实现了简洁高效的自然语音合成,并具备“零样本语音克隆”能力,仅凭几秒钟的参考音频即可模仿新的声音。OuteTTS的推出,不仅为开发者带来了全新机遇,也大大降低了TTS技术的门槛,为更多个性化、实时语音生成的需求提供了高效方案。

OuteTTS-0.1-350M:无需复杂适配器的TTS模型

在语音合成领域,OuteTTS-0.1-350M开创性地使用纯语言模型进行语音合成,而无需传统的语音生成模块,如语音编码器和其他适配器。这一模型基于LLaMa架构构建,通过直接生成音频标记(tokens)来实现语音合成,大幅简化了TTS流程并降低了资源消耗。不同于庞大复杂的传统模型,OuteTTS的核心在于它的纯语言建模方法,它直接将语音生成视作文本生成的任务,通过对音频数据进行标记化处理,使模型能够理解并生成自然语音。这种架构不仅提高了模型的简洁性,还实现了高效的语音生成。OuteTTS能够在零样本语音克隆的模式下快速适应新音色,仅需几秒钟的参考音频即可模仿新的声音,非常适用于个性化的语音助手、有声读物和内容本地化等应用场景。

技术亮点:OuteTTS-0.1-350M的三大创新

OuteTTS-0.1-350M通过以下三步流程实现了高效的文本转语音:

  • WavTokenizer音频标记化OuteTTS使用WavTokenizer将音频转换为标记序列,每秒生成75个音频标记,这样能够快速将音频转换为模型可处理的序列。
  • CTC强制对齐采用连接时序分类(CTC)技术,确保模型能够将每个文字精准对齐到音频标记,生成自然流畅的语音输出。
  • 结构化提示创建:通过将转录、持续时间、音频标记等信息整合为结构化提示,将语音生成过程简化成一系列清晰的任务。

这些技术整合使得OuteTTS能够以纯语言建模的方式高效地实现语音合成,避免了传统模型的繁琐中间步骤,进一步降低了对计算资源的需求。OuteTTS还兼容llama.cpp库,能够在多种设备上实现语音生成,不必依赖云端服务,适合实时应用场景。

OuteTTS-0.1-350M的实际应用价值

OuteTTS-0.1-350M的独特之处在于其轻量高效的设计使得TTS技术不再需要高昂的硬件资源,具备了高度的实用性与适配性:

  • 低资源需求:这款模型无须庞大的适配器或深度神经网络模块,大大简化了部署过程,使其适用于各种硬件环境,包括移动设备、嵌入式设备等,实现了真正的“上设备”语音生成。
  • 个性化应用:OuteTTS的“零样本语音克隆”能力为个性化应用提供了可能。只需几秒钟的参考音频,用户即可定制专属语音,非常适合个性化语音助手、有声读物配音等场景。
  • 开源许可证:OuteTTS采用了CC-BY开源许可证,支持开发者将模型自由集成到项目中,为语音合成技术的普及和创新应用提供了广阔空间。

通过对传统TTS架构的简化和对个性化的支持,OuteTTS-0.1-350M带来了实用高效的语音生成体验,不仅提升了语音合成的可及性,还为开发者和企业带来了新的灵活选择。

OuteTTS-0.1-350M的性能分析:小模型也有大作为

OuteTTS-0.1-350M尽管只有3.5亿参数,依然在语音生成领域表现出色。它的高效性和轻量化特性使其在语音质量上毫不逊色,甚至与传统大型模型相媲美:

  • 音质自然:初步测试显示,OuteTTS生成的语音具有自然的语调和流畅的音质,极少出现失真或人工痕迹,适合各类语音应用场景。
  • 低计算成本:相比于参数数十亿的大型模型,OuteTTS保持高质量的同时,计算成本显著降低,非常适合资源有限的设备。
  • 快速响应:得益于模型架构的优化,OuteTTS能够在设备端实现快速响应,为实时语音交互提供了理想选择。

OuteTTS展示了小规模模型的潜力,使得语音合成不再依赖于庞大的计算资源,为轻量化的TTS模型树立了新标杆。

OuteTTS-0.1-350M的未来前景

OuteTTS-0.1-350M的发布不仅仅是一次技术创新,它开启了未来TTS应用的无限可能性。随着更多开发者和研究人员的加入,基于OuteTTS的应用场景将更加多样化:

  • 辅助技术:OuteTTS在语音生成上的便捷性和高效性使得其可以广泛应用于视障人士的辅助设备中,提供语音导航、信息提示等功能。
  • 内容创作:对于需要快速生成个性化语音内容的创作者,OuteTTS为他们提供了成本更低的配音解决方案。
  • 人机交互:语音交互是智能设备未来的关键方向,OuteTTS的实时生成能力使其能够在智能家居、车载语音助手等领域大展身手。

结语

OuteTTS-0.1-350M的发布标志着TTS技术的一个重要里程碑。通过采用纯语言建模,OuteTTS不仅降低了语音合成的门槛,还让个性化语音应用更为可行。无论是零样本语音克隆能力、实时生成表现,还是其对多设备兼容性,OuteTTS都为TTS领域带来了全新的发展思路。未来,随着更多技术的突破,基于OuteTTS的TTS应用将会为语音生成带来更加丰富的可能性。OuteTTS-0.1-350M展示了小而强的TTS模型可以达到与大型模型媲美的效果。Oute AI的这一创新,为未来的语音合成技术铺平了道路,也让我们期待更多轻量、智能、高效的语音合成技术的出现。

Transformers 模型词表中添加新 token

在使用预训练模型时,我们有时需要使用一些自定义 token 来增强输入,例如使用 [ENT_START] 和 [ENT_END] 在文本中标记出实体。由于自定义 token 并不在预训练模型原来的词表中,因此直接运用分词器 (Tokenizer) 处理输入就会出现问题。

例如直接使用 BERT 分词器处理下面的句子:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")

sentence = 'Two [ENT_START] cars [ENT_END] collided in a [ENT_START] tunnel [ENT_END] this morning.'
print(tokenizer(sentence).tokens())
['[CLS]', 'Two', '[', 'E', '##NT', '_', 'ST', '##AR', '##T', ']', 'cars', '[', 'E', '##NT', '_', 'E', '##ND', ']', 'collided', 'in', 'a', '[', 'E', '##NT', '_', 'ST', '##AR', '##T', ']', 'tunnel', '[', 'E', '##NT', '_', 'E', '##ND', ']', 'this', 'morning', '.', '[SEP]']

由于分词器无法识别 [ENT_START] 和 [ENT_END] ,将它们都当作未知字符处理,例如 [ENT_END] 被切分成了 '[''E''##NT''_''E''##ND'']' 七个 token,很明显不符合我们的预期。

此外,有时我们还会遇到一些领域相关词汇,例如医学领域的文本通常会包含大量的医学术语,它们可能并不在模型的词表中(例如一些术语是使用多个词语的缩写拼接而成),这时也会出现上面的问题。

此时我们就需要将这些新 token 添加到模型的词表中,让分词器与模型可以识别并处理这些 token。

添加新 token

添加方法

Huggingface 的 Transformers 库提供了两种方式来添加新 token,分别是:

  • add_tokens() 添加普通 token:添加新 token 列表,如果 token 不在词表中,就会被添加到词表的最后。tokenizer = AutoTokenizer.from_pretrained("bert-base-cased") num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"]) print("We have added", num_added_toks, "tokens") We have added 2 tokens 为了防止 token 已经包含在词表中,我们还可以预先对新 token 列表进行过滤:new_tokens = ["new_tok1", "my_new-tok2"] new_tokens = set(new_tokens) - set(tokenizer.vocab.keys()) tokenizer.add_tokens(list(new_tokens))
  • add_special_tokens() 添加特殊 token:添加包含特殊 token 的字典,键值从 bos_tokeneos_tokenunk_tokensep_tokenpad_tokencls_tokenmask_tokenadditional_special_tokens 中选择。与 add_tokens() 类似,如果 token 不在词表中,就会被添加到词表的最后。添加后,还可以通过特殊属性来访问这些 token,例如 tokenizer.cls_token 就指向 cls token。tokenizer = AutoTokenizer.from_pretrained("bert-base-cased") special_tokens_dict = {"cls_token": "[MY_CLS]"} num_added_toks = tokenizer.add_special_tokens(special_tokens_dict) print("We have added", num_added_toks, "tokens") assert tokenizer.cls_token == "[MY_CLS]" We have added 1 tokens 我们也可以使用 add_tokens() 添加特殊 token,只需要额外设置参数 special_tokens=Truetokenizer = AutoTokenizer.from_pretrained("bert-base-uncased") num_added_toks = tokenizer.add_tokens(["[NEW_tok1]", "[NEW_tok2]"]) num_added_toks = tokenizer.add_tokens(["[NEW_tok3]", "[NEW_tok4]"], special_tokens=True) print("We have added", num_added_toks, "tokens") print(tokenizer('[NEW_tok1] Hello [NEW_tok2] [NEW_tok3] World [NEW_tok4]!').tokens()) We have added 2 tokens ['[CLS]', '[new_tok1]', 'hello', '[new_tok2]', '[NEW_tok3]', 'world', '[NEW_tok4]', '!', '[SEP]'] 特殊 token 的标准化 (normalization) 过程与普通 token 有一些不同,比如不会被小写。这里我们使用的是不区分大小写的 BERT 模型,因此分词后添加的普通 token [NEW_tok1] 和 [NEW_tok2] 都被处理为了小写,而特殊 token [NEW_tok3] 和 [NEW_tok4] 则维持大写,与 [CLS] 等自带特殊 token 保持一致。

对于之前的例子,很明显实体标记符 [ENT_START] 和 [ENT_END] 属于特殊 token,因此按添加特殊 token 的方式进行。如果使用 add_tokens() 则需要额外设置 special_tokens=True,或者也可以直接使用 add_special_tokens()

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

num_added_toks = tokenizer.add_tokens(['[ENT_START]', '[ENT_END]'], special_tokens=True)
# num_added_toks = tokenizer.add_special_tokens({'additional_special_tokens': ['[ENT_START]', '[ENT_END]']})
print("We have added", num_added_toks, "tokens")

sentence = 'Two [ENT_START] cars [ENT_END] collided in a [ENT_START] tunnel [ENT_END] this morning.'

print(tokenizer(sentence).tokens())
We have added 2 tokens
['[CLS]', 'two', '[ENT_START]', 'cars', '[ENT_END]', 'collided', 'in', 'a', '[ENT_START]', 'tunnel', '[ENT_END]', 'this', 'morning', '.', '[SEP]']

可以看到,分词器成功地将 [ENT_START] 和 [ENT_END] 识别为 token,并且依旧保持大写。

调整 embedding 矩阵

注意!无论使用哪种方式向词表中添加新 token 后,都需要重置模型 token embedding 矩阵的大小,也就是向矩阵中添加新 token 对应的 embedding,这样模型才可以正常工作(将 token 映射到对应的 embedding)。

该操作通过调用预训练模型的 resize_token_embeddings() 函数来实现,例如对于上面的例子:

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased")

print(len(tokenizer))
num_added_toks = tokenizer.add_tokens(['[ENT_START]', '[ENT_END]'], special_tokens=True)
print("We have added", num_added_toks, "tokens")
print(len(tokenizer))

model.resize_token_embeddings(len(tokenizer))
print(model.embeddings.word_embeddings.weight.size())

# Randomly generated matrix
print(model.embeddings.word_embeddings.weight[-2:, :])
30522
We have added 2 tokens
30524
torch.Size([30524, 768])

tensor([[-0.0325, -0.0224,  0.0044,  ..., -0.0088, -0.0078, -0.0110],
        [-0.0005, -0.0167, -0.0009,  ...,  0.0110, -0.0282, -0.0013]],
       grad_fn=<SliceBackward0>)

可以看到,在添加了特殊 token [ENT_START] 和 [ENT_END] 之后,分词器的词表大小从 30522 增加到了 30524,并且模型的 token embedding 矩阵大小也成功调整为了 30524×76830524×768。

我们还尝试打印出新添加 token 对应的 embedding。因为新 token 会添加在词表的末尾,因此只需打印出矩阵最后两行。如果你重复运行一下上面的代码,就会发现每次打印出的 [ENT_START] 和 [ENT_END] 的 embedding 是不同的。这是因为在默认情况下,这些新 token 的 embedding 是随机初始化的

token embedding 初始化

如果有充分的训练语料对模型进行微调或者继续预训练,那么将新添加 token 初始化为随机向量没什么问题。但是如果训练语料较少,甚至是只有很少语料的 few-shot learning 场景下,这种做法就可能存在问题。研究表明,在训练数据不够多的情况下,这些新添加 token 的 embedding 只会在初始值附近小幅波动。换句话说,即使经过训练,它们的值事实上还是随机的。

因此,在很多情况下,我们需要手工初始化这些新 token 的 embedding。对于 Transformers 库来说,可以通过直接对 embedding 矩阵赋值来实现。例如对于上面的例子,我们将这两个新 token 的 embedding 都初始化为全零向量:

with torch.no_grad():
    model.embeddings.word_embeddings.weight[-2:, :] = torch.zeros([2, model.config.hidden_size], requires_grad=True)
print(model.embeddings.word_embeddings.weight[-2:, :])
tensor([[0., 0., 0.,  ..., 0., 0., 0.],
        [0., 0., 0.,  ..., 0., 0., 0.]], grad_fn=<SliceBackward0>)

注意,初始化 embedding 的过程并不可导,因此这里通过 torch.no_grad() 暂停梯度的计算。

初始化为已有 token 的值

比较常见的操作是根据新添加 token 的语义,将其值初始化为训练好 token 的 embedding。例如对于上面的例子,我们可以将 [ENT_START] 和 [ENT_END] 的值都初始化为“entity”对应的 embedding。因为 token id 就是 token 在矩阵中的索引,因此我们可以直接通过 weight[token_id] 取出“entity”对应的 embedding。

token_id = tokenizer.convert_tokens_to_ids('entity')
token_embedding = model.embeddings.word_embeddings.weight[token_id]
print(token_id)

with torch.no_grad():
    for i in range(1, num_added_toks+1):
        model.embeddings.word_embeddings.weight[-i:, :] = token_embedding.clone().detach().requires_grad_(True)
print(model.embeddings.word_embeddings.weight[-2:, :])
9178
tensor([[-0.0039, -0.0131, -0.0946,  ..., -0.0223,  0.0107, -0.0419],
        [-0.0039, -0.0131, -0.0946,  ..., -0.0223,  0.0107, -0.0419]],
       grad_fn=<SliceBackward0>)

可以看到最终结果符合我们的预期,[ENT_START] 和 [ENT_END] 被初始化为相同的 embedding。

另一种常见的做法是根据新 token 的语义,使用对应的描述文本来完成初始化。例如将值初始化为描述文本中所有 token 的平均值,假设新 token titi 的描述文本为 wi,1,wi,2,…,wi,nwi,1,wi,2,…,wi,n,那么 titi 的初始化 embedding 为:

这里 EE 表示预训练模型的 token embedding 矩阵。对于上面的例子,我们可以分别为 [ENT_START] 和 [ENT_END] 编写对应的描述,然后再对它们的值进行初始化:

descriptions = ['start of entity', 'end of entity']

with torch.no_grad():
    for i, token in enumerate(reversed(descriptions), start=1):
        tokenized = tokenizer.tokenize(token)
        print(tokenized)
        tokenized_ids = tokenizer.convert_tokens_to_ids(tokenized)
        new_embedding = model.embeddings.word_embeddings.weight[tokenized_ids].mean(axis=0)
        model.embeddings.word_embeddings.weight[-i, :] = new_embedding.clone().detach().requires_grad_(True)
print(model.embeddings.word_embeddings.weight[-2:, :])
['end', 'of', 'entity']
['start', 'of', 'entity']
tensor([[-0.0340, -0.0144, -0.0441,  ..., -0.0016,  0.0318, -0.0151],
        [-0.0060, -0.0202, -0.0312,  ..., -0.0084,  0.0193, -0.0296]],
       grad_fn=<SliceBackward0>)

可以看到,这里成功地将 [ENT_START] 初始化为“start”、“of”、“entity”三个 token embedding 的平均值,将 [ENT_END] 初始化为“end”、“of”、“entity” embedding 的平均值。

保存新的token词汇表和模型权重

# 保存tokenizer
tokenizer.save_pretrained(save_directory)
# 保存model
model.save_pretrained(save_directory)

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.