ASR语音识别—Fst热词模型

有限加权【热词】状态转换机(Weighted Finite State Transducers, WFST)

最近在做ASR语音识别任务,基于阿里FunASR框架,特此记录下跟热词模型相关知识。

wfst热词增强

热词构图,我们采用AC自动机结构进行热词网络构图,解决热词前缀重叠场景下难以有效激励的问题。例如热词列表包含“阳光保险”与“保定”两个热词,实际语音内容为“阳光保定”,在匹配到“定”时匹配失败则会根据AC自动机回退机制回退至“保定”热词路径,确保仍可继续匹配的最大子串路径可正常激励。

如下是热词网络实例图。

热词发现与匹配我们采用对主解码网络弧上ilabel音素/字符序列信息进行热词发现及匹配,而非在网络搜索出词时再对整词匹配,该方式优势是能够更早实现对尚未出词热词路径激励,避免热词路径被过早误裁减,其次也可避免由于热词分词结构不一致而导致匹配失败。

热词激励方式,我们采用过程渐进激励和整词激励相结合的方式,而非热词首字或尾字激励。采用仅首字激励方式可能存在部分case在热词后续字的解码过程中路径仍被裁剪掉的情况,而仅在尾字出词时施加激励则可能激励过晚。

过程渐进激励(incremental bias)对过程中每匹配成功一步即进行等量激励,如在后续扩展过程匹配失败则通过回退弧跳转进行激励减除。

整词激励(word bias)支持用户针对不同的热词做差异化的激励分配置,在热词整词出词时进一步施加对应的补偿或惩罚,进而提高热词综合效果。

FST热词是一种基于 有限状态转换器(Finite State Transducer)的关键词识别技术,它具有较高的准确率和实时性,适用于对大量文本进行快速匹配的场景。 但是,FST热词需要提前构建好词典和规则库,且不支持多语种和变体。

FST目前在语音识别和自然语言搜索、处理等方向被广泛应用。例如,在自然语言处理中,经常会遇到一些针对某些内容法则做出修改的操作,比如:如果c的后面紧接x的话,则把c变为b,FST则是基于这些规则上的数学操作,来把若干个规则整合成一个单程的大型规则,以有效提高基于规则的系统(rule-based system)的效率。其功能类似于字典的功能,但其查找是O(1)的,仅仅等于所查找的key长度。目前Lucene4.0在查找Term时就用到了该算法来确定此Term在字典中的位置。FST 可以表示成FST<Key, Value>的形式,我们可以用O(length(key))的复杂度,找到key所对应的值。除此之外,FST 还支持用Value来查找key以及查找Value最优的key等功能。在查找最优的Value时,会用到求最短路径的Dijikstra算法,但建图过程与此无关。

FST是一种用于映射输入符号序列到输出符号序列的有向图结构。它由一组状态组成,状态之间通过带有权重的转换(transitions)相连。每个转换关联输入符号、输出符号和权重(或代价),用于表示从一个状态转移到另一个状态时的条件。

FST与热词的结合

  • 提高权重或优先级FST可以通过增加热词的优先级或降低其识别权重,使得在解码过程中,热词的路径更容易被选择。
  • 热词优先通路:可以通过引入热词的专有路径(transition paths),使得这些词比其他普通词汇更容易通过FST的状态转换。
  • 增强精度通过调整FST中热词的权重或映射路径,系统在遇到热词时会优先选择包含热词的路径,从而提高识别或转换的准确率。

实现方法

  • 构建基础FST: 首先,需要基于词典或语言模型构建一个基础FST。这个FST将输入符号(如字母、音素或单词)映射到输出符号。在语音识别中,FST通常将输入的音素序列映射为单词。
  • 加入热词权重
    • 修改权重对热词的转换路径赋予更低的权重,降低其状态转换代价,使得解码器(decoder)在搜索时更倾向于选择这些路径。例如,使用一个加权的FST,可以将普通词的转换权重设为较大值,而将热词的权重设为较小值。
    • 插入额外路径将热词的路径单独插入到FST中,创建直接通路,以便系统在解码过程中直接选择这些热词而不需要复杂的转移。
  • 组合语言模型和热词FST在实际应用中,通常会将热词FST与其他语言模型(如N-gram或神经网络语言模型)结合起来。例如:
    • 使用热词FST作为一个小型的子图插入到更大规模的语言模型FST中。
    • 热词FST可以作为一个前端过滤器,预处理输入序列以优先选择热词的路径。
  • 动态插入热词: 热词列表可能会根据应用场景动态变化。例如,在语音助手中,用户可能会要求系统识别特定的品牌名称。在这种情况下,FST需要支持动态更新,即在运行时动态插入或删除热词路径。这可以通过以下几种方式实现:
    • On-the-fly 插入:根据实时需求,将新的热词添加到现有FST结构中,可能使用备用状态机或其他支持增量更新的FST实现。
    • 重构FST:当热词发生较大变化时,重新构建FST,以反映新的热词权重。

InternVL家族:通过开源组件缩小与商业多模态模型的差距 —— GPT-4o的开源替代方案

InternVL家族:用开源组件缩小与商业多模态模型的差距——一个开创性的开源替代方案,旨在平替GPT-4o

https://github.com/OpenGVLab/InternVL/

[🆕 博客] [🚀 InternVL2 博客] [🗨️ 对话Demo] [🤗 HF Demo] [📖 文档] [🌐 API] [🚀 快速开始]

[📜 InternVL 1.0 论文] [📜 InternVL 1.5 报告] [📖 1.0 中文解读] [📖 1.5 中文解读] [📖 2.0 中文解读]

我们的 InternVL2-Llama3-76B 在 OpenCompass 多模态排行榜上取得了比 GPT-4o 更高的分数。尽管这让我们感到兴奋,但我们必须指出,这个分数仅捕捉了模型性能的一部分,特别是在与视觉相关的任务方面。我们认识到,在指令跟随、用户体验、纯文本处理能力和整体理解能力等方面,我们的模型与 GPT-4 之间仍存在显著差距。我们致力于不断改进我们的模型,以更好地满足现实世界的应用需求。

书生·万象多模态大模型。万象,代表对多模态大模型的愿景,即理解真实世界一切事物和景象,实现全模态全任务的通用智能。它涵盖图像,视频,文字,语音、三维点云等5种模态,首创渐进式对齐训练,实现了首个与大语言模型对齐的视觉基础模型,通过模型”从小到大”、数据”从粗到精”的渐进式的训练策略,以1/5成本完成了大模型的训练。它在有限资源下展现出卓越的性能表现,横扫国内外开源大模型,媲美国际顶尖商业模型,同时也是国内首个在MMMU(多学科问答)上突破60的模型它在数学、图表分析、OCR等任务中表现优异,具备处理复杂多模态任务、真实世界感知方面的强大能力,是当之无愧的最强多模态开源大模型。

书生万象具有千亿规模参数,支持图像,视频,文字,语音、三维点云等模态。为了使模型能够支持丰富的输出格式,书生万象首次使用了向量链接技术,链接各领域专用解码器,打通梯度传输链路,实现通专融合,支持检测、分割、图像生成、视觉问答等百种细分任务,性能媲美各领域的专家模型。为了训练书生万象模型,我们从各类来源构建了最大图文交错数据集OmniCorpus,包含约160亿图像,3万亿文本词元,相比现有开源图文数据集 ,图像数量扩大了三倍,文本数量扩大了十倍。

传统的预训练范式直接使用大模型+大数据进行一步到位训练,需要大量的算力资源。为了提高训练效率,研究团队首创了渐进式训练策略,先利用小模型在海量带噪数据上进行高效预训练,然后再使用大模型在较少高质量精选数据上进行高效对齐,模型”从小到大”,数据”从粗到精”,仅需20%的算力资源即可取得同等效果。 采用这种训练策略,我们实现了首个与大模型对齐的视觉基础模型,同时,我们的多模态大模型,展现出卓越的性能,在MathVista(数学)、AI2D(科学图表)、MMBench(通用视觉问答)、MM-NIAH(多模态长文档)等评测上可比肩GPT-4o、Gemini 1.5 Pro等闭源商用大模型。

InternVL2系列基于以下设计构建:

1、渐进式与大型语言模型:我们引入了渐进式对齐训练策略,从而使第一个视觉基础模型与大型语言模型原生对齐。通过采用渐进式训练策略,即模型从小到大,而数据从粗到细,我们以相对较低的成本完成了大型模型的训练。这一方法在有限的资源下表现出了出色的性能。

2、多模式输入:通过一组参数,我们的模型支持多种输入模式,包括文本、图像、视频和医疗数据。

3、多任务输出:由我们最近的工作VisionLLMv 2提供支持,我们的模型支持各种输出格式,如图像,边界框和蒙版,展示了广泛的通用性。通过将MLLM与多个下游任务解码器连接,InternVL 2可以推广到数百个视觉语言任务,同时实现与专家模型相当的性能。

训练策略

性能:

InternVL2在处理复杂的多模态数据方面表现出强大的能力,在数学、科学图表、通用图表、文档、信息图表和OCR等任务中表现出色。例如,在MathVista基准测试中,InternVL2的准确率达到66.3%,大大超过了其他闭源商业模型和开源模型。此外,InternVL2在广泛的基准测试中实现了最先进的性能,包括通用图表基准测试ChartQA,文档基准测试DocVQA,信息图表基准测试InfographicVQA和通用视觉问答基准测试MMBench。

nameMMMU
(val)
MathVista
(testmini)
AI2D
(test)
ChartQA
(test)
DocVQA
(test)
InfoVQA
(test)
OCRBenchMMB-EN
(test)
MMB-CN
(test)
OpenCompass
(avg score)
GPT-4V*
(20240409)
63.1 / 61.758.189.478.187.267881.080.263.5
Gemini Pro 1.5*58.5 / 60.657.780.381.386.572.775473.973.864.4
Claude3.5-Sonnet*68.3 / 65.967.794.790.895.278879.780.767.9
GPT-4o*
(20240513)
69.1 / 69.263.894.285.792.873683.482.169.9
Cambrian-149.7 / 50.453.279.775.675.560081.458.3
LLaVA-NeXT Qwen1.550.149.080.479.785.780.5
InternVL2-Pro58.9 / 62.066.387.3 / 96.087.195.183.383787.887.271.8
nameMMMU
(val)
MathVista
(testmini)
AI2D
(test)
ChartQA
(test)
DocVQA
(test)
InfoVQA
(test)
OCRBenchMMB-EN
(test)
MMB-CN
(test)
OpenCompass
(avg score)
InternVL2-1B35.4 / 36.737.764.172.981.750.975465.460.748.3
InternVL2-2B34.3 / 36.346.374.176.286.958.978473.270.954.0
InternVL2-4B47.0 / 48.358.678.981.589.267.078878.673.960.6
InternVL2-8B49.3 / 51.258.383.883.391.674.879481.781.264.1
InternVL2-26B48.3 / 50.759.484.584.992.975.982583.482.066.4
InternVL2-40B53.9 / 55.263.787.186.293.978.783786.886.569.7
InternVL2-Llama3-76B55.2 / 58.265.587.688.494.182.083986.586.371.0
InternVL2-Pro58.9 / 62.066.387.3 / 96.087.195.183.383787.887.271.8

实例:

Mixtral 8x7B

  • 论文地址:https://arxiv.org/pdf/2401.04088.pdf
  • 项目地址:https://github.com/mistralai/mistral-src
  • 论文主页:https://mistral.ai/news/mixtral-of-experts/
专家层的混合。每个输入向量由路由器分配给 8 个专家中的 2 个。该层的输出是两个所选专家输出的加权和。在 Mixtral 中,专家是标准前馈块,就像普通变压器架构中一样

Mixtral 8x7B由法国的Mistral AI发布,性能直逼Llama2-70B,超越了GPT-3.5。此前,由于 OpenAI 团队一直对 GPT-4 的参数量和训练细节守口如瓶。Mistral 8x7B 的放出,无疑给广大开发者提供了一种「非常接近 GPT-4」的开源选项。要知道,很早之前就有人爆料,OpenAI 也是采用了「混合专家模型」(Mixture of Experts,MoE)的构架来搭建 GPT-4。

Mixtral 8x7B 是一种具有开放权重的稀疏专家混合模型 (Sparse Mixture of Experts : SMoE),在大多数基准测试中都优于 Llama 2 70B 和 GPT-3.5。Mixtral 可以在小批量大小下实现更快的推理速度,并在大批量大小下实现更高的吞吐量。Mixtral (即 Mixtral 8x7B)与单个 Mistral 7B 架构相同。Mistral 7B 模型同样来自这家法国人工智能初创公司 Mistral AI ,这篇论文发表于去年 10 月,在每个基准测试中,Mistral 7B 都优于 Llama 2 13B,并且在代码、数学和推理方面也优于 LLaMA 1 34B。

与 Mistral 7B 不同的是,Mixtral 8x7B 是一种仅包含解码器的模型,每层由 8 个前馈块(即专家)组成。对于每个 token,在每一层,路由器网络都会选择两名专家来处理当前状态并组合他们的输出。尽管每个 token 只看到两个专家,但所选的专家在每个时间步上都可能不同。因此,每个 token 可以访问 47B 参数,但在推理过程中仅使用 13B 激活参数
从这里我们也可以看出,Mixtral 8x7B 并不是大家认为的有 8 个 Mistral 7B 模型,名字中的 8 代表 8 个专家。

Mixtral 预训练上下文的大小为 32k,在多项基准测试中,它的性能达到或超过 Llama 2 70B 和 GPT-3.5。尤其是,Mixtral 在数学、代码生成和需要多语言理解的任务方面表现出了卓越的能力,并在这些领域显著优于 Llama 2 70B。实验表明,Mixtral 能够成功地从 32k token 的上下文窗口中检索信息,无论序列长度和信息在序列中的位置如何。
除了 Mixtral 8x7B,该研究还推出了 Mixtral 8x7B – Instruct 聊天模型,其性能在人类评估基准上明显超过了 GPT-3.5 Turbo、Claude-2.1、Gemini Pro 和 Llama 2 70B 聊天模型。在 BBQ 和 BOLD 等基准中,Mixtral – Instruct 也显示出更少的偏见。

不过,有研究者表示 Mixtral 中的专家似乎专注于语法而不是领域,特别是在初始层和最终层(参见路由分析部分)

Mixtral 8x7B 如此令人兴奋的原因在于它探索了一种新的架构范式,即「专家混合」的方法,与大多数 LLM 所遵循的方法形成鲜明的对比。MoE 结合了多个专家模型的优势来解决问题,在 MoE 中,仅使用一名或少数专家就能进行预测。这种方法有两个主要组成部分:

  • 路由器:决定对于给定输入信任哪个专家以及如何权衡每个专家对于特定输入的结果
  • 专家:专门研究问题不同方面的个体模型。

在 Mixtral 的案例中,有八位专家,其中两位是被选中的。我们接下来看具体细节。

架构细节

Mixtral 基于 Transformer 架构,支持上下文长度达到 32k token,并且前馈块被 Mixture-of-Expert(MoE)层取代。

稀疏专家混合

对于给定的输入 x,MoE 模块的输出由专家网络输出的加权和决定,其中权重由门控网络的输出给出。即给定 n 个专家网络 {E_0, E_i, …, E_(n−1)},则专家层的输出为:

这里,G (x)_i 表示第 i 个专家的门控网络的 n 维输出,E_i (x) 是第 i 个专家网络的输出。不过实现 G (x) 有多种替代方案,其中简单且高性能的方法是通过在线性层的 Top-K logits 上采用 softmax 来实现。即:

MoE 层可以在具有高性能专用内核的单个 GPU 上高效运行。例如,Megablocks 将 MoE 层的前馈网络(FFN)操作转换为大型稀疏矩阵乘法,显著提高了执行速度。此外,MoE 层可以通过标准模型并行技术以及一种称为专家并行 (EP) 的特殊分区策略分布到多个 GPU 上。 
在 MoE 层执行期间,本应由特定专家处理的 token 将被路由到相应的 GPU 进行处理,并且专家的输出将返回到原始 token 位置。
在 Transformer 模型中,MoE 层独立的应用于每个 token,并取代 Transformer 块的前馈 (FFN) 子块。对于 Mixtral,该研究使用与专家函数 E_i (x) 相同的 SwiGLU 架构,并设置 K = 2。这意味着每个 token 都被路由到具有不同权重集的两个 SwiGLU 子块。将所有这些放在一起,输入 token x 的输出 y 计算如下:

实验及结果

研究者将 Mixtral 与 Llama 进行了比较,并使用自己的评估 pipeline 重新运行了所有基准,以进行公平比较。该研究对以下各种任务的性能进行了测量:常识推理、世界知识、阅读理解、数学、代码等。具体任务详情见原论文.

表 2 列出了 Mixtral、Mistral 7B 和 Llama 2 7B/13B/70B 以及 Llama 1 34B 的详细结果。

图 2 比较了 Mixtral 和 Llama 在不同类别任务中的性能。在大多数指标上,Mixtral 都超过了 Llama 2 70B。特别是在代码和数学基准测试中,Mixtral 的表现更胜一筹。

研究者将 Mixtral 与 Llama 2 系列进行了比较。如图 3 所示,作为一个稀疏专家混合模型,Mixtral 每个 token 仅使用 13B 个激活参数。尽管激活参数减少了 5 倍,Mixtral 在大多数类别中仍然能够胜过 70 亿参数的 Llama 2。

多语言基准测试
与 Mistral 7B 相比,研究者在预训练时大幅提高了多语言数据的采样比例。额外的容量使 Mixtral 在多语言基准测试中表现出色,同时保持了较高的英语准确率。如表 4 所示,Mixtral 在法语、德语、西班牙语和意大利语方面的表现明显优于 Llama 2 70B。

长距离性能
图 4(左)结果表明,无论上下文长度或 passkey 在序列中的位置如何,Mixtral 的检索准确率都达到了 100%。图 4(右)显示,随着上下文大小的增加,Mixtral 在 proof-pile 数据集的一个子集上的困惑度单调降低。

图片

偏见基准测试
研究者使用他们自己的评估框架对 Llama 2 和 Mixtral 在 BBQ 和 BOLD 上进行基准测试,结果如表 5 所示。与 Llama 2 相比,Mixtral 在 BBQ 基准测试中展现出较少的偏见。在 BOLD 的中,更高的平均情感得分意味着更积极的情感,而更低的标准差表示该群组内的偏见较少。总体而言,Mixtral 比 Llama 2 显示出更积极的情感,并且各组内的差异类似。

图片

路由分析
研究者对路由器选择专家的情况进行了少量分析,他们尤其想知道在训练过程中,一些专家是否专攻某些特定领域,如数学、生物学、哲学等。
为了研究这一点,研究者测量了在 The Pile 验证数据集的不同子集中所选专家的分布情况。图 7 展示了第 0 层、第 15 层和第 31 层的结果。

图片

令人惊讶的是,研究者在根据主题分配专家时没有观察到明显的模式。例如,在所有层中,ArXiv 论文(用 Latex 编写)、生物学(PubMed Abstracts)和哲学(PhilPapers)文档的专家分配分布非常相似。只有在 DM 数学中,专家的分布略有不同。
这表明路由器表现出一些结构化的语法行为。
图 8 显示了不同领域(Python 代码、数学和英语)的文本示例,其中每个 token 都用与其所选专家相对应的背景色突出显示。从图 8 中可以看到,连续的 token 往往被分配给相同的专家。
每个 token 都用第一个专家选择着色。专家的选择似乎更符合语法而不是领域,特别是在初始层和最后层。

图片

表 5 显示了每个领域和层中连续 token 获得相同专家分配的比例。对于较高的层,重复连续分配的比例明显高于随机分配。

图片

多模态大模型VITA : GPT-4o的简易平替

Abs:https://arxiv.org/pdf/2408.05211
Demo:https://vita-home.github.io/
Code:https://github.com/VITA-MLLM/VITA

原文:https://zhuanlan.zhihu.com/p/714031459

腾讯优图开源多模态大模型

总览

传统的音频交互需要预定义的唤醒词,例如每次提问时都需要说“Hi! Siri∼”,或者需要按下按钮来控制输入的音频问题(限制1)。此外,当模型生成输出时,不能支持新的查询,因为以前的系统只能依次响应输入的查询(限制2)。VITA克服了这两个limitations。

GPT-4o 的卓越多模态能力和用户交互体验在实际应用中非常重要,但没有开源模型在这两个领域同时表现出色。本文介绍了 VITA,这是首个能够同时处理和分析视频、图像、文本和音频模态的开源多模态大语言模型(MLLM),并且具备先进的多模态交互体验。我们在以下三个关键特性,与现有的开源 MLLM 有所区分:

  • 全方位多模态理解能力VITA 展示了强大的多语言、视觉和音频理解基础能力,并在多种单模态和多模态基准测试中表现优异。
  • 非唤醒交互VITA 可以在不需要唤醒词或按钮的情况下被激活,并对环境中的用户音频问题做出响应。
  • 音频打断交互:VITA 能够实时跟踪和筛选外部查询,允许用户随时以新问题打断模型的生成,VITA 将根据新的查询做出相应的响应。

VITA 模型的详细介绍

VITA 的整体训练流程如上图所示,由三个阶段组成:LLM指令微调、多模态对齐和多模态指令微调

LLM 指令微调

我们选择 Mixtral 8x7B 作为基础语言模型,它是具有稀疏专家混合(SMoE)架构的代表性 LLM,性能在开源 LLM 中名列前茅,是我们工作的理想起点。然而,我们观察到官方的 Mixtral 模型在理解中文方面表现有限。为此,我们扩展了基础模型的中文词汇量,将词汇量从 32,000 增加到 51,747。这一扩展不仅增强了双语(中英文)理解能力,还减少了相同文本下的词元数量,从而提高了推理效率在扩展词汇后,我们使用 500 万条合成的双语语料库进行纯文本指令微调。

补充:Mixtral 8x7B 是一种具有开放权重的稀疏专家混合模型 (SMoE),在大多数基准测试中都优于 Llama 2 70B 和 GPT-3.5。Mixtral 可以在小批量大小下实现更快的推理速度,并在大批量大小下实现更高的吞吐量。Mixtral 8x7B 是一种仅包含解码器的模型,每层由 8 个前馈块(即专家)组成。对于每个 token,在每一层,路由器网络都会选择两名专家来处理当前状态并组合他们的输出。尽管每个 token 只看到两个专家,但所选的专家在每个时间步上都可能不同。因此,每个 token 可以访问 47B 参数,但在推理过程中仅使用 13B 激活参数。Mixtral 8x7B 并不是大家认为的有 8 个 Mistral 7B 模型,名字中的 8 代表 8 个专家。

多模态对齐

在这一阶段,我们旨在弥合文本与其他模态之间的表示差距,为多模态理解奠定基础。

视觉模态

视觉编码器:我们使用 InternViT-300M-448px 作为视觉编码器,该编码器接收 448×448 的图像作为输入,通过一个简单的两层 MLP 视觉连接器生成 256 个词元。对于高分辨率图像输入,我们实现了动态补丁策略来捕捉局部细节。视频被视为图像的特殊情况进行处理。如果视频长度小于 4 秒,我们均匀采样 4 帧;如果视频长度在 4 到 16 秒之间,我们每秒采样一帧;对于超过 16 秒的视频,我们均匀采样 16 帧。为了防止引入过多的视觉词元,我们不对视频的单个帧执行动态补丁。

视觉对齐:在视觉对齐阶段,我们仅训练视觉连接器。表 1 总结了使用的训练数据(不包括纯文本SFT部分)。此外,在此阶段我们不使用音频问题。

  • 对于一般图像描述任务,我们引入了来自 ShareGPT4V 的 GPT-4V 生成部分,以确保数据质量。我们还引入了 Allava-Caption 和 ShareGTP4o-Image,并补充了一些由现有 MLLM 生成的中文图像描述。
  • 对于一般图像问答(QA)任务,我们初步收集了三个数据集:LLaVA-Mixture-sample、Lvis-Instruct 和 ScienceQA。我们使用现有的 MLLM 生成了额外的 21.8K 中文 QA 数据。此外,我们从 LLaVA-150K 数据集中移除了标题子集,并将其余部分翻译为中文。
  • 对于 OCR 和图表任务,我们引入了 Anyword-3M、ICDAR2019-LSVT、ICDAR2017-RCTW、Open-Chart(包括 ChartQA、DVQA、InfoVQA、Pew 和 OpenCQA),以及一些由现有 MLLM 从其他开源数据中生成的合成数据。
  • 对于一般视频描述任务,我们使用 ShareGemini 数据集。
  • 对于一般视频 QA 任务,我们使用现有的 MLLM 重新标注了 Video-ChatGPT 和 VideoChat2 的开源数据。
不同的文本数据直接拼接到 6K 词元。图像首先被划分为局部补丁,然后将不同的图像-文本对进行拼接。视频数据则直接逐帧采样作为输入,无需进行拼接。通过这种方式,我们能够统一不同训练批次中的数据长度,从而提高训练效率。

数据拼接:对于纯文本数据和图像数据,我们的目标是将上下文长度拼接到 6K 词元,如上图所示。视频数据则不进行拼接。拼接不同的数据带来了两个好处:一是支持更长的上下文长度,使得从单一到多图像-问题交互成为可能,从而实现更灵活的输入形式和延长的上下文;二是提高了计算效率,因为视频帧通常包含大量视觉词元。通过拼接图像-问题对,我们在训练批次中保持了词元数量的平衡,从而提高了计算效率。此外,我们发现使用拼接数据训练的模型在性能上与未拼接数据的模型表现相当。

音频模态

音频编码器:输入音频首先通过 Mel 频率滤波器块处理,该块将音频信号分解为 Mel 频率尺度上的各个频带,模拟人类对声音的非线性感知。随后,我们使用 4 层 CNN 下采样层和 24 层的变换器,共计 341M 参数,处理输入特征。我们采用简单的两层 MLP 作为音频-文本模态连接器。最终,每 2 秒的音频输入被编码为 25 个词元。

音频对齐:在对齐任务中,我们选择了自动语音识别(ASR)。我们的数据集包括 Wenetspeech,该数据集涵盖了超过 10,000 小时的多领域语音识别数据,主要集中在中文任务上。同样,Gigaspeech 也包含 10,000 小时的高质量音频数据,大部分数据用于英语语音识别任务。另一个任务是音频字幕生成,依赖于 Wavcaps 的 AudioSet SL 子集,该数据集包含 400K 个音频片段及其对应的音频字幕。在对齐过程中,音频编码器和连接器都进行了训练。

多模态指令微调

在这一阶段,我们对模型进行指令微调,以增强其遵循指令的能力(文本 & 音频指令)。

训练数据

数据构建:指令微调阶段的数据来源与对齐阶段相同(见表1),并进行了如下改进:

  •  音频问题替换:我们使用 TTS 技术(如 GPT-SoVITS6)将大约一半的问题随机替换为其音频版本,以提升模型对音频查询的理解能力和指令跟随能力。音频问题和文本问题的数量见表1。
  •  系统提示设置:设置不同的系统提示,以避免不同类型数据之间的冲突(见下表)。例如,有些问题可以基于视觉信息或模型自身知识进行回答,这可能会导致冲突。此外,由于图像数据的补丁类似于视频数据的多个帧,可能会使模型感到困惑。系统提示明确区分不同的数据类型,使其更易于理解。

噪声音频构建:在人机交互过程中,并非所有的音频输入都需要响应,这些被称为噪声音频。一个具有良好交互能力的系统应能主动识别音频类型,并有选择性地执行后续输出。为此,我们需要构建各种噪声音频样本以供模型识别。具体而言,我们从现有的多模态和单模态 QA 数据中随机抽取 474K 个句子。这些负样本文本集中在不需要用户响应的非查询相关内容上,其长度分布与正向问题的长度分布一致。然后,我们使用 TTS 工具将这些句子转换为音频。噪声音频样本的构建使模型能够识别不需要响应的音频输入,这有助于实现非唤醒交互。具体的训练策略将在以下部分详细说明。

训练过程

根据上述构建的 QA 对,模型需要区分三种类型的查询:

  • 查询音频:问题由音频发起。
  • 噪声音频:输入为音频,但不包含问题。
  • 查询文本:问题由文本发起。

基于这些查询类型,我们设计了三种状态标记 <1>、<2> 和 <3>。在训练阶段,我们在答案的开头插入对应的状态标记,使模型能够灵活处理不同的交互行为。具体如下:

  • 状态标记 <1> 表示问题输入为查询音频。在这种情况下,模型的输出需要以文本或通过 TTS 工具转换的语音形式呈现给用户。
  • • 状态标记 <2> 表示问题输入为噪声音频。模型应输出 EOS 标记作为终止符。然而,我们发现训练过程中突然终止输出可能会显著降低性能。因此,我们将噪声音频对应的文本发送给 LLM,并使用其输出文本作为训练目标。在推理过程中,<2> 作为另一种特殊的 EOS 标记。
  • 状态标记 <3> 表示问题为纯文本,用于区分训练集中的前两种查询。

在训练过程中,视觉和音频编码器保持冻结状态,而连接器与 Mixtral 8×7B 一起进行训练。

模型部署:双工策略

在这一部分,我们主要讨论如何实现两种交互功能:非唤醒交互和音频中断交互。

非唤醒交互

非唤醒交互意味着模型可以在不需要唤醒词或按钮的情况下被激活,并对环境中的用户音频问题做出回应。部署过程必须满足以下要求:

  • • 实时跟踪环境声音:这涉及确定音频内容是否属于人类语言。
  • • 过滤噪声音频:模型应仅对有效的用户查询音频作出响应。

对于第一个要求,现有的语音活动检测(VAD)可以提供帮助。VITA 使用 SileroVAD ,该系统经过大规模语料库训练,涵盖超过 6,000 种语言,并且能够在各种背景噪声下表现良好。对于第二个要求,我们利用第 3.3.2 节中描述的状态标记 <2>。这使模型能够自动区分输入音频是否为有效查询。如果输入为非查询类型,模型将直接终止推理,从而仅对查询类型的输入作出响应。

音频中断交互

音频中断交互允许用户随时用新问题打断模型的生成过程。为实现这一点,部署环境必须满足以下要求:

  •  实时跟踪和过滤外部查询:在生成响应的同时,系统必须实时跟踪和过滤外部查询。
  •  回答新问题:当出现新问题时,系统必须停止当前生成,整合历史上下文,并对当前查询作出回应。

为实现这一目标,我们提出了双工部署框架。如上图所示,两个 VITA 模型同时部署。在典型条件下,生成模型负责回答用户查询。同时,监控模型在生成过程中检测环境声音。它忽略非查询用户声音(即噪声音频),但在检测到查询音频时会停止生成模型的进度。监控模型随后整合历史上下文,并对最新的用户查询做出回应。这时,生成模型和监控模型的身份会发生转变。

评估

语言表现:

为了验证我们训练过程对语言模型的有效性,我们将训练后的模型“Mixtral 8x7B Ours”与官方版本“Mixtral 8x7B Instruct”进行对比,评估使用了四个数据集:C-EVAL、AGIEVAL、MMLU 和 GSM8K。这些数据集涵盖了包括普通多项选择题、多学科问答,以及数学和逻辑推理任务的各种场景,涉及中文和英文上下文。结果如上表所示,我们的训练显著提升了模型在中文评估集(C-EVAL 和 AGIEVAL)上的能力,同时保持了在英文相关基准(MMLU)上的原有性能,并在数学推理任务(GSM8K)中显示出显著的改进。

音频表现:

为了验证我们模型所学的语音表示的鲁棒性,我们在 Wenetspeech 和 Librispeech数据集上进行了测试。Wenetspeech 具有两个评估拆分:test_net 和 test_meeting。前者的数据源与训练数据更为接近,较容易;后者则具有更大的挑战性。作为我们模型的留出数据集,Librispeech 评估了模型在未见数据集上的泛化能力。它有四个评估拆分:“dev” 开头的是验证集,“test” 开头的是测试集。“Clean” 指较不具挑战性的集合,而 “other” 指较具挑战性的集合。我们可以看到,VITA 在 ASR 基准上取得了可观的结果。

多模态表现:

为了评估 VITA 的多模态能力,我们在四个代表性基准上进行评估,包括 MME 、OCRBench、HallusionBench 和 Video-MME 。如上图所示,在图像理解方面,VITA 超越了图像专用的开源模型 LLaVA-Next,接近于闭源模型 Gemini 1.5 Pro。在视频理解方面,VITA 超过了视频专用的开源模型 Video-CCAM。尽管 VITA 与视频专用的 LLaVA-Next-Video 之间存在差距,但鉴于 VITA 支持更广泛的模态并优先考虑交互,这种差距是可以接受的。然而,值得注意的是,当前开源模型与专有模型在视频理解能力方面仍存在较大差距。

结论与未来工作

在本文中,我们介绍了 VITA,一个强大的开源多模态大语言模型,它将视频、图像、文本和音频理解整合到一个统一的框架中,并提供了先进的交互体验。除了强大的多模态基础能力,VITA 还在开源社区中开创了新的多模态交互方式,包括非唤醒交互和音频中断交互。然而,当前版本仍面临以下限制:

  • 基础能力的提升:虽然 VITA 在单模态和多模态任务中相较于领先的开源模型表现出色,但与专有模型相比仍存在显著差距。
  • 噪声音频构建的优化:使用现有数据的非查询响应作为噪声音频样本是一种简单而有效的方法。然而,VITA 有时会将噪声音频误分类为查询音频,这突显了需要更细致的构建方法。
  • 与 LLM 联合构建端到端 TTS我们目前使用额外的 TTS 工具将 LLM 生成的文本转换为语音,这一过程比较耗时。如果能够将 TTS 与 LLM 结合,实现端到端的语音输出,可能会大大提升实时交互性能。

未来的工作将集中在解决这些限制,并探索以下方向:

  • 提升多模态基础能力:引入更多数据并改进模型架构,以缩小与专有模型的性能差距。
  • 优化噪声音频识别:开发更复杂的噪声音频识别算法,以提高模型过滤无关音频的能力。
  • 实现端到端 TTS:研究如何将 TTS 功能直接集成到 LLM 中,以实现更高效的语音生成和实时交互。

我们期待在未来版本的 VITA 中克服这些挑战,并继续推动开源多模态模型的发展。

Seed-ASR基于大型语言模型(LLM)的语音识别模型

https://arxiv.org/abs/2407.04675

https://bytedancespeech.github.io/seedasr_tech_report/

字节推出Seed-ASR,支持复杂场景、语种、多方言超精准识别

Seed-ASR是一种基于大型语言模型(LLM)的语音识别模型。Seed-ASR是在音频条件大语言模型(AcLLM)框架上开发的,利用了大型语言模型的强大能力,将连续的语音表示和上下文信息输入到语言模型中。通过分阶段的大规模训练以及语言模型中上下文感知能力的引入,Seed-ASR 在综合评估集上(涵盖多个领域、口音/方言和语言)比传统的端到端模型有了显著提升。

摘要

ASR模型需要在各种应用场景中准确地转录给定特定上下文信息的各种语音信号(来自不同领域、语言、口音等)。融合了额外语言模型的经典端到端模型表现良好,但主要应用在数据匹配场景中,并且逐渐接近瓶颈。Seed-ASR基于大语言模型(LLM)的语音识别模型。Seed-ASR是基于audio conditioned LLM(AcLLM)的框架开发的,通过将连续语音表示与上下文信息一起输入到LLM中来利用LLMs的功能。 通过阶段式大规模训练和LLM中的上下文感知能力的启发,Seed-ASR在综合评估集(包括多个域,口音/方言和语言)上展示了端到端模型的显着改进。此外,Seed-ASR可以进一步部署,以支持各种场景中的特定需求,而无需额外的语言模型。与最近发布的大型ASR模型相比,Seed-ASR在中文和英文公共测试集上的单词(对于中文字符)错误率降低了10%-40%,进一步证明了其强大的性能。

Introduction

Seed-ASR,一个基于LLM的大规模ASR模型。为了成为一个“更智能”的语音识别模型,通过将连续语音表示与指令和上下文信息一起输入到LLM中,利用LLMs的能力。Seed-ASR具有五大特点:

Seed-ASR 具有高识别率、大模型容量、多语言支持、上下文感知和分阶段训练五大特点。通过2000万小时语音和90万小时ASR数据训练,Seed-ASR(CN)和Seed-ASR(ML)在多个数据集上表现优异。其采用了包含20亿参数的音频编码器和数百亿参数的MoE大语言模型,支持普通话、13种方言以及多种语言,并计划扩展至40多种语言。通过整合包括历史对话、视频编辑历史和会议参与详细信息,来捕获与语音内容相关的重要指标。这种集成大大提高了各种场景中ASR评估集中的关键词召回率。【关键字召回率可以定义为 ASR 系统成功识别出的关键字的数量占所有实际出现的关键字数量的比例】,增强了多场景下的表现。Seed-ASR的开发经历了一个简单而有效的训练方案:音频编码器的自监督学习(SSL) → 监督微调(SFT) → 上下文SFT → 强化学习(RL)。每个阶段都有不同的作用,确保Seed-ASR的性能逐步提高。

数据集测评:

我们建立了一个高质量评估集的系列,包括广泛的语音输入,作为不同的主题,口音/方言,语言和语音持续时间。这些集合还包括一个ASR系统在不同应用场景下的定制能力评估例如,对话场景下的关键词识别准确性和一致性)。在Seed-ASR设计中,我们选择了大规模训练的路径,利用了大模型容量和扩展训练数据以增强泛化性。 我们考虑到提供给 AcLLM 框架的上下文,通过训练模型以来详细说明其定制化能力,从而形成一个适用于不同场景的统一且紧凑的模型结构。在我们的多维评估集上,与经典的端到端模型相比,Seed-ASR展示了更全面、更强大的模型能力。Seed-ASR的性能优势在公共测试集和我们的主观理解评估中得到了进一步证明。

Motivation

ASR模型的升级可以从LLM的技术进步中得到启发,主要可以归结为三个方面:

·统一模型框架。LLM采用基于下一个令牌预测的仅解码器框架。它对输入输出文本进行排序,依靠自注意机制建立序列中标记之间的依赖关系,从而统一文本理解和文本生成;

·缩放定律的力量。大规模模型参数为LLM提供了从不同数据源学习知识的关键能力。例如,从GPT-2 到GPT-3 ,参数数量从15亿增加到1750亿,使GPT-3表现出更好的泛化和涌现能力。

·全面的训练pipline,ChatGPT经历三个阶段:预训练,监督微调(SFT)和带有人类反馈的强化学习(RLHF)。在预训练阶段,LLM是在大量的文本数据上训练的,这使得它存储了大量的知识。在SFT阶段,LLM进一步针对更高质量的面向任务的数据进行微调,增强其根据上下文进行推理和理解任务指令的能力。最后,在RLHF阶段,训练目标转变为在强化学习的帮助下使LLM的行为与人类偏好保持一致;

由于ASR的任务是将语音转换为文本,因此其文本生成过程与LLMs一致。存储在LLMs中的广泛的文本知识和上下文推理能力使它们成为向ASR提供语义指导的潜在成分。剩下的核心挑战是如何使LLMs更好地“理解”语音,这是一种不同于文本的模态。

方法

Framework and Training Recipe

基于上述动机,我们提出了Seed-ASR,一个大规模的语音识别模型建立在音频条件LLM(AcLLM)的框架。通过将编码的连续语音表示与任务指令和相关上下文一起输入到预先训练的LLM中,Seed-ASR可以利用LLM的丰富文本知识和推理能力来生成语音的相应文本转录。总体框架如图2所示。

音频是与文本不同的模态。为了使LLMs更好地理解不同的语音输入,我们在LLMs中采用了大规模预训练的概念。具体来说,我们构建了一个具有近20亿个参数的音频编码器,并对数千万小时的数据进行了自监督学习(SSL)。预训练的音频编码器获得了强大的语音表示能力,这有助于在监督微调(SFT)期间快速收敛。在大规模SSL阶段之后,我们在AcLLM框架内实现了一个简单有效的阶段式训练方法(如图3所示)。在SFT阶段,我们通过对大量的语音-文本对进行训练,建立语音和文本之间的映射关系。在上下文SFT阶段,我们使用相对少量的上下文-语音-文本三元组来引出LLM从上下文中捕获语音相关线索的能力。 这些三重数据可以根据具体场景进行定制。在强化学习阶段,我们应用MWER的训练标准[传统Attention-based Sequence-to-Sequence model使用cross-entropy作为损失函数,不是直接对WER指标进行优化,而真正的目标是直接或间接地最小化WER => MWER Training]和一些改进来进一步加强我们模型的能力。在下面的小节中,我们将更详细地介绍这些方法。

语音编码器的自监督预训练

大规模SSL使音频编码器能够从语音中捕获丰富的信息。受基于BERT的语音SSL框架的启发,我们开发了我们的音频编码器,这是一种conformer-based的模型[Conformer 是 Google 在 2020 年提出的语音识别模型,主要结合了 CNN 和 Transformer 的优点,其中 CNN 能高效获取局部特征,而 Transformer 在提取长序列依赖的时候更有效。 Conformer 则是将卷积应用于 Transformer 的 Encoder 层,用卷积加强Transformer 在 ASR 领域的效果。],可以捕获存储在音频信号中的全局和局部结构。在这项工作中,我们主要关注语音信号。由于它是在大规模无监督数据上训练的,因此我们将训练后的音频编码器称为LUISE,它代表L规模无监督迭代SpeechEncoder

LUISE秉承BERT的概念,采用掩蔽语言预测的学习范式。训练过程如图4所示。具体地,首先将从波形提取的梅尔滤波器组特征的序列输入到 tokenizer模块以获得每个帧的离散标签。然后,使用交叉熵准则进行LUISE的训练,仅针对被掩蔽的帧计算损失函数。训练后,softmax层被移除,LUISE的编码器部分用于后续的监督微调。

我们利用一个迭代的固定 tokenizer的方法来获得相应的离散标签的每一帧。在第一次迭代中,我们应用随机projection层将语音特征投影到随机初始化的码本中,并通过找到码本中最近的向量将它们映射到离散标签。在第二次迭代中,我们对先前训练的编码器的中间层的表示执行K均值聚类以获得新的码本。然后通过在新码本中找到与来自相同中间层的表示最接近的向量来获得离散标签。在中间层的选择过程中,我们冻结了第一次迭代中训练的编码器参数,并为每个中间层添加了映射层和连接主义时间分类(CTC)损失,以进行监督微调。 图5显示了通过对每个中间层的表示进行监督微调获得的字错误率(WER)。对于具有20亿个参数的LUISE,第25层(32层中)的输出展示了最佳的语义表示,并用于在后续迭代中生成离散标签。

有监督微调SFT

经过对大规模纯语音数据的训练,LUISE已经开发出强大的语音表示能力。它以40ms/帧速率输出包含丰富语音和语义信息的连续表示。为了使AcLLM更好地理解语音中相应的文本内容,我们需要将编码表示的语义信息映射到LLM的语义空间中。LLM为了实现这一点,我们使用以下两种方法:

  1. 在模型结构中,我们引入了一个转换器模块来连接我们的音频编码器(LUISE)和LLM(如图2所示)。转换器包括下采样模块和线性投影层。我们发现不同的下采样方法同样有效,因此我们使用最简洁的方法:帧拼接。具体来说,我们在特征维度上拼接4个连续的语音表示帧,然后输入到线性层中。因此,输入到LLM中的语音表示帧率为160毫秒;
  2. 在训练方法上,我们采用“可学习音频编码器+可学习转换器+固定LLM“的策略,在保持LLM参数不变的情况下,最大限度地保留了LLM丰富的语义知识和推理能力。可学习的音频编码器和转换器参数确保语音表示中包含的语义信息与LLM的语义空间对齐。LLM在训练过程中,使用交叉熵损失函数,只有生成转录文本的标记位置参与交叉熵计算;

上下文SFT

在大规模语音-文本对数据上进行训练后,我们的SFT模型在覆盖多个领域的测试集上表现出色。然而,SFT模型的训练方式决定了它缺乏在给定上下文信息(上下文)的情况下识别模糊语音内容的能力这些问题在涉及口音(语音歧义)和同音异义词或稀有词(语义歧义)的情况下更加明显。因此,我们引入了上下文感知训练和联合波束搜索的方法,以增强模型有效利用上下文的能力(图6中给出了一个示例)。

  • 上下文感知训练:首先,我们使用我们的内部大型语言模型来生成与语音转录相关的上下文。在我们的实验中,它比使用长段语音中的开头和结尾的转录文本作为上下文表现得更好。使用生成的自然语言上下文还可以提供更完整的语义,从而除了从上下文复制相关转录内容之外还能够学习推理。然后,我们构建了一个<context,speech,text>三元组的数据集,并将其与一定比例的一般ASR数据(语音-文本对数据)混合用于上下文感知训练。如图2所示,在上下文感知训练期间,我们将上下文和语音表示输入到LLM中。LLM这种训练的目标是增强模型从上下文中捕获语音内容相关线索的能力。
  • 联合波束搜索:我们发现,直接使用本地波束搜索存在严重的幻觉问题。为了解决这个问题,我们提出了一种联合波束搜索的解码策略来缓解这个问题。具体地,我们使用联合波束搜索来找到最佳得分 Pjoint⁢(𝒚|𝒙,𝒄) ,其中 𝒚 表示预测的假设, 𝒙 是语音信息,并且 𝒄 是给定的上下文信息。超参数 α 用于在解码期间平衡语音信息和上下文信息的重要性:

同时,我们引入了一种修剪策略,首先使用上下文无关的得分 P⁢(𝒚|𝒙) 过滤出声学上不可信的候选令牌,然后对剩余的候选令牌应用联合波束搜索。修剪策略在缓解幻觉中起着重要作用。

强化学习

由于SFT和上下文SFT阶段中的训练基于交叉熵目标函数,因此与推断期间使用的评估度量(例如WER)不匹配。随着强化学习(RL)的发展,它可以在序列建模任务中学习相对最优的决策策略。因此,我们通过构建基于ASR度量的奖励函数来引入RL阶段。

单词错误率(WER)通常被认为是评估ASR模型性能的核心指标,但句子中的某些内容(例如关键字)在理解整个句子中起着更关键的作用。因此,我们还引入加权WER(WWER)作为额外的奖励函数,强调关键字错误的重要性具体来说,我们应用最小字错误率(MWER)作为另一个训练目标,在我们的RL阶段中使用交叉熵目标 ℒCE 进行插值:

    在传统的 MLE 训练中,损失函数通常是基于每个时间步的交叉熵损失。这意味着模型优化的目标是每个时间步的预测概率分布,这可能导致最终的序列输出与实际参考输出在词级别上不匹配。MWER 训练则直接优化序列的 WER,这是更接近于最终应用的评价标准,尤其是在语音识别和自然语言处理任务中。

MWER 训练的实现方法:
候选序列生成:在 MWER 训练过程中,模型会先使用其当前参数生成多个候选的输出序列(通常使用采样或束搜索策略)。这些候选序列代表了模型对给定输入的不同潜在输出。

损失计算:计算每个候选序列的词错误率(WER),然后通过比较这些候选序列与参考序列之间的WER来评估损失。具体来说,损失函数会惩罚那些与参考序列WER较高的候选序列,同时奖励那些WER较低的候选序列。

最小化损失:使用反向传播算法更新模型参数,以最小化平均 WER 损失。由于损失函数直接反映了序列级别的错误率,这种方法能够更有效地训练模型来生成更准确的输出。

为了提高强化学习的训练效率,我们部署了一个远程服务来生成假设,并在更新当前服务器上的模型参数的同时计算MWER损失。在强化学习训练过程中:1)我们使用前一阶段训练的上下文SFT模型初始化模型参数; 2)我们利用高质量的数据进行强化学习训练,数据规模为数千小时。3)为了保持初始化模型的上下文感知能力,我们的训练数据还包括一定比例的上下文、语音、文本三元组。在完成RL训练之后,我们获得了我们的Seed-ASR模型。

表1:RL阶段的消融研究。作为奖励函数的加权WER在所有三个评估集上显示出比WER更好的性能(这些集的详细信息在第4.1节中介绍)。在强化学习阶段使用的上下文、语音、文本三元组的训练数据保证了上下文感知能力的不下降。Seed-ASR使用最后一行中的策略。WER或加权WER的度量计算中文、日文和韩文的字符错误,以及英文和其他语言的单词错误。

Observations

在改进Seed-ASR性能的过程中,我们也得到了一些观察:

Scaling Law

在LLM领域,可以观察到,较大的模型可以通过在更多数据上进行训练来不断降低损失值。据我们所知,在基于LLM的框架下,没有关于音频编码器的缩放律的相关研究。在SSL阶段,我们进行实验,以探讨不同的模型大小的LUISE的性能。具体来说,我们选择了五组型号尺寸:75 M、0.2B、0.6B、2B和5B。训练数据包括770万小时的无监督语音数据,覆盖多个领域,确保模型容量的充分利用。不同大小的模型在大多数训练配置中保持一致性,只是随着模型大小的增加,我们会按比例扩大模型的宽度和深度,适当增加批量大小和权重衰减,并降低学习率。

图7:(a)描绘了我们的音频编码器(LUISE)的预训练损失与模型参数大小的以2为底的对数之间的相关性。(b)描述了SFT之后的贪婪WER与模型参数大小的以2为底的对数之间的相关性。(c)描述了SFT之后的贪婪WER与LUISE的预训练损失之间的相关性。

我们首先关注验证集上的交叉熵预训练损失值与模型大小之间的相关性。如图7所示,我们观察到两者之间几乎呈线性相关。此外,我们比较了基于训练的LUISE的小规模SFT数据训练后的性能。使用贪婪搜索进行推理。如图7所示,多域评估集上的WER度量也与LUISE的模型大小呈现出近乎线性的相关性。此外,这揭示了SFT之后测试集上的WER度量与图7中SSL阶段中的损失函数值之间的正相关性。这些关于缩放律的发现为我们的编码器选择(考虑性能和效率的平衡)和后续优化提供了指导。

Long-form Ability

我们的Seed-ASR是在AcLLM的框架下建模的,它自然地利用LLM的语义知识和长上下文建模能力。因此,我们还探索了直接将整个长格式语音输入LLM进行识别的选项。该方法有效地避免了与对多个独立推断的长形式语音进行分割相关联的两个问题:1)分割过程可能导致边界处的信息丢失,从而降低识别准确性; 2)分割过程破坏了长形式语音中的强全局上下文信息,从而影响识别的准确性和一致性。

具体来说,我们构建了一系列长格式视频测试集,包括来自不同来源的5个数据集。在训练过程中,整个长格式数据被输入到模型中,而没有任何分割处理。测试集的持续时间分布与训练集的持续时间分布相当。如表2所示,使用长形式数据进行训练和测试,与短形式训练相比,相对WER降低了近8.8%,短形式训练采用域自适应VAD将长形式语音分割成几个部分进行训练和测试。长格式视频测试集的最大持续时间为5分钟,并具有显著长度延长的调度器。

模型与评价

目前,我们专注于在多样化场景下全面提升中文和多语种(不含中文)语音识别性能。因此,我们提出了两个具有相同模型结构和训练配方的Seed-ASR模型:汉语多方言模型,称为Seed-ASR(CN),和多语言模型,称为Seed-ASR(ML)。虽然我们也有同时支持中文和多语言的模型,但本报告将特别详细介绍两种分别专注于中文和多语言(不包括中文)的Seed-ASR模型。

Seed-ASR(CN)不仅可以用单个模型对普通话和13种汉语方言进行转录,而且在多领域、多方言、多口音和公共集等多维评估集上,与其他已发布的大型模型相比,性能有了显著的提高。此外,在上下文SFT阶段的训练赋予种子ASR(CN)有效的上下文感知能力,如在对话上下文评估集上所示。同样,Seed-ASR(ML)在8种多语言公共集(包括英语)和多领域评估集上取得了与其他已发布模型相比具有竞争力的结果,并且正在扩展到40多种语言。在下面的部分中,字错误率(WER)的度量被用作主要的客观度量。除非另有说明,否则WER的度量计算中文、日语、韩语的字符错误,并计算英语和其他语言的单词错误。

Seed-ASR (CN)

Seed-ASR(CN)遵循图3所示的完整训练管道。在SSL阶段,我们使用了具有近2B参数的LUISE编码器,并对来自各个领域的近800万小时的普通话和汉语方言语音数据进行了训练。在SFT阶段,我们使用经过训练的LUISE和具有超过百亿个参数的LLM进行模型初始化。训练数据包括包含多个域的普通话数据和方言数据的混合。SSL和SFT阶段的详细数据分布见附录A.3。在上下文SFT阶段,我们使用一定比例的SFT阶段数据与一些上下文、语音、文本三元数据混合进行训练。在RL阶段,我们使用训练好的上下文SFT模型进行初始化,并构建高质量的训练数据进行训练。在这个全面的训练过程之后,我们获得了Seed-ASR(CN)

为了全面评估Seed-ASR(CN)模型的ASR能力,我们在公开数据集上将其与其他已发布的模型进行了比较,并构建了一系列评估集,包括多领域集、多源视频集、硬案例集、多方言集、多口音集、上下文感知集和主观可懂度评估。

最后的结果是上述6个测试集的WER(中文字符)的平均值。我们用于比较的基线包括Paraformer-Large、Qwen-Audio和最近发布的基于LLM的ASR模型,其结构为Hubert+ Baichuan 2。他们的研究结果来自他们各自的论文。如表3所示。Seed-ASR(CN)表现出比其他模型更显著的性能优势,在这些公共数据集上获得了最先进的结果。对于6套的平均WER,Seed-ASR(CN)比其他已发布模型实现了超过24%-40%的WER降低。

对多域多源视频集的评估:

我们还对多领域评估集进行了全面的性能比较,该评估集包含来自视频,直播,语音搜索,会议,智能助手等各种场景的高质量评估数据,并将多领域集合中总共7个集合的加权平均WER作为最终指标。我们选择基于传感器的端到端模型[20],其具有MoE编码器和超过300 M的参数作为基线之一。此外,我们还在多域评估集上运行Paraformer-large(离线解码)的结果作为另一个基线。从表4中的结果来看,Seed-ASR(CN)显示出显著的性能优势,与我们强大的端到端模型相比,WER指标相对降低了47%以上。在覆盖7个不同子集的视频评估集上,Seed-ASR(CN)也获得了相当大的性能改善。 这些结果证明了Seed-ASR(CN)强大的基础能力。

此外,我们通过引入10个硬案例测试集来评估高级ASR能力,这些测试集覆盖了包括书名、汽车名称、成语、药品名称、电影名称、古诗、产品名称、音乐名称等在内的话语。这些测试集旨在评估模型识别包含专有名词的语音内容的能力,这些专有名词具有很强的专业性和领域特异性,反映了ASR模型的知识储备和识别准确率。硬案例集的评估指标是每个句子中给定关键字的F1分数。如表4所示,与端到端模型基线相比,Seed-ASR(CN)模型实现了F1值3. 3%的绝对增长,证明了AcLLM模型框架在利用LLM常识知识和语义推理能力方面的有效性。

多方言集和多口音集的评估:

由于我们的Seed-ASR(CN)模型支持普通话和13种汉语方言的识别,我们还引入了方言评估集。这套共包括13种方言(广东话、西南话、吴语、吉鲁话、中原话、闽语等)。并使用汉字的相同或相似发音对文本进行人工标注。我们的方言评估集的具体演示可在我们的网站2上获得。我们使用WER作为这个方言评估集的客观度量。

我们使用微调的Whisper Medium-v2,769 M参数作为我们的基线。为了进行公平的比较,我们使用相同的方言训练集训练Whisper Medium-v2和Seed-ASR(CN)。Seed-ASR(CN)需要在保持普通话综合能力的同时提高方言上的ASR性能,因此它使用来自多个领域的更大比例的普通话数据进行训练。相比之下,Whisper Medium-v2在多域集等综合评估集上显示出较差的结果。尽管如此,具有更大建模能力的Seed-ASR(CN)模型在13种方言集上仍然显示出优于基线的性能优势,13种方言的平均WER从21.68下降到19.2(相对WER降低11.4%),并且在单个方言测试集上相对WER降低超过21%。

为了进一步验证Seed-ASR(CN)对不同语音的识别性能,我们引入了一系列口音评估集,包括来自安徽、福建、甘肃、广东、贵州、湖南、江西、辽宁、陕西、山西和云南的11个中国口音。具体的口音语音样本也可在我们的网站2.如表6所示,与从头开始训练的强E2 E模型相比,Seed-ASR(CN)在口音测试集上表现出显着的改进。我们还通过在训练过程中移除重音SFT数据来进行消融研究,但Seed-ASR(CN)仍然在重音集上实现了强大的性能。在多方言、多口音评价集上的实验结果表明,该算法对不同地区的汉语语音识别具有较强的鲁棒性。

对对话上下文集的评估:

在语境感知的评估中,我们构建了一个高质量的对话语境集,其中对话历史被用作语境信息。如图8所示,我们提供了两个对话示例。每个测试用例包括对应的对话历史文本和当前识别的语音内容。我们将对话语境评估分为严格和宽松两个子集。严格子集包含对历史对话有很强依赖性的样本,以准确识别语音内容,例如人名。松散子集的历史对话和演讲内容之间的依赖性较弱,如专有名词。我们使用关键字召回作为评估指标。

总结:

在包括SFT → context SFT → RL的逐步训练配方之后,我们的Seed-ASR(CN)模型产生了。在上述综合评估集上,我们观察到我们的Seed-ASR(CN)模型的某些能力在不同的训练阶段得到了增强。在这里,我们对每个阶段的效果进行了详细的消融研究,结果如表9所示。首先,RL阶段的引入带来了对大多数评估集的改进,例如多域,多源视频,多方言,硬案例和代码切换。重音测试集中的轻微降级可能是由于训练数据比率。此外,上下文SFT阶段的训练对大多数测试集产生了积极的影响,特别是在上下文严格测试集上的召回度量方面带来了显着的改善。这进一步证明了我们的上下文感知训练和解码策略在上下文SFT阶段的有效性。

Seed-ASR (ML)

如上所述,Seed-ASR(CN)在识别普通话和汉语方言方面表现出很强的性能。为了将这些优势扩展到其他国家用户使用的语言,我们还将Seed-ASR方法应用于多语言场景,从而形成了我们的多语言模型:Seed-ASR(ML)。Seed-ASR(ML)的训练与Seed-ASR(CN)的主要区别在于训练数据。Seed-ASR(CN)专注于普通话和中国方言,而Seed-ASR(ML)则是在各种多语言数据集上进行训练的。在SSL阶段,Seed-ASR(ML)的音频编码器也使用了具有2B参数的LUISE,并使用来自多域源的数千万小时无监督多语言数据进行训练。在随后的阶段中,我们从我们的多语言ASR训练集中选择训练数据,这些训练数据总计数十万小时,涵盖9种语言:英语,中文,阿拉伯语,西班牙语,法语,印度尼西亚语,日语,韩语和葡萄牙语。 SSL和SFT阶段的详细数据分布见附录A.3。我们对多个评估集和公共数据集进行性能比较。

Evaluation on Multi-domain and Multi-accent Sets:

在多域评估集上,覆盖的域与第4.1.2节中介绍的种子ASR(CN)上的多域评估集相同。硬盒测试集涵盖了医疗健康、食品和饮料、体育、技术、服装、游戏、娱乐和美容等领域。我们还建立了对不同口音的英语的评估,包括来自英国,美国,澳大利亚,加拿大,中国,印度,新加坡,新西兰和南非的发言者。对于多语言评估,我们报告了7种非英语语言的平均WER性能:阿拉伯语(AR),西班牙语(ES),法语(FR),印度尼西亚语(ID),日语(JA),韩语(KO)和葡萄牙语(PT)。如表10所示,用于比较的基线包括Google USM [50](API call 3)、Whisper Large v3 [39](离线解码)和Universal-1 [41](API调用4)。由于Universal-1在我们的多语言多域评估集中仅支持3种语言,因此其相应结果未包含在此处。我们将这些模型在多语言多域评估集上的语言性能比较附在附录A.1中。从表10中的结果来看,与最强的基线相比,Seed-ASR(ML)在英语和多语言多领域评估集上分别表现出相对超过42%和40%。在英语多重音和硬格评估集上也观察到类似的显着改进。

除了内部多域评估集之外,我们还将Seed-ASR(ML)与英语和其他语言的公共测试集上的其他模型进行了比较,包括Librispeech[36] test clean/other,MLS[38],Tedo 3[24],Callhome,Switchboard[19],AMI[30]和Fleurs[13]。测试集的详细信息见附录A.2。结果如表11所示。请注意,基线模型的所有结果都是由基线模型的相应论文或技术报告的WER(Whisper Large-v3结果来自Universal-1的技术报告[41])。 如表11所示,Seed-ASR(ML)在不同语言的大多数测试集上都实现了最佳性能,提高了10%到40%,这表明Seed-ASR(ML)对训练期间看不到的领域具有泛化能力。

与Seed-ASR(CN)类似,Seed-ASR(ML)在广泛的评估集上表现出与多个强基线相比的卓越性能。该模型在识别具有不同声学环境、语义上下文和多种语言口音的语音方面表现出色,强调了该模型的泛化能力及其在训练过程中处理来自各种看不见的领域的语音的有效性。总体而言,上述中文和多语言环境下的评估集的结果证明了Seed-ASR在涵盖多语言,多方言,多口音,多领域和多定制需求的多种应用场景中的泛化能力和强大的基础能力。

总结

通过包括SFT、上下文SFT和RL在内的逐阶段训练的Seed-ASR模型,与最近发布的强大端到端模型相比,在不同声学和语义领域、口音/方言/语言和长距离语音持续时间的各种评估集上展示了上级能力。大规模的LUISE预训练和连接LUISE和LLMSFT赋予Seed-ASR理解不同语音内容的能力。上下文SFT阶段的引入显著提高了模型对相关上下文的关键词的召回率,展示了模型在利用LLMs的上下文感知能力方面的强大定制能力。RL阶段进一步巩固了Seed-ASR的文本生成行为与准确转录的要求之间的一致性,特别是语义重要部分的转录。 总体而言,结果肯定了Seed-ASR作为涉及多种语言,方言,口音,域和定制需求的各种应用程序的最佳ASR模型的地位。未来,我们将专注于扩展Seed-ASR在单个模型中处理多个任务的能力,进一步增强长格式能力并增加支持的语言数量。

OpenVoice-语音克隆用于批量合成高质量语音数据

OpenVoice: Versatile Instant Voice Cloning

https://github.com/myshell-ai/OpenVoice

它能够仅使用一小段参考发言者的音频片段来复制其声音,然后能生成多种语言的语音。 OpenVoice被设计为尽可能地解耦语音中的组件。语言、音色和其他重要的语音特征的生成是相互独立的,从而能够灵活地操纵各个语音风格和语言类型。 解耦的结构降低了对模型大小和计算复杂性的要求 ,同时不使用自回归或者扩散模型,加快推理速度。支持训练数据集之外的说话人和语言,适合为语音大模型提供大规模的合成语音数据。【核心:将语音克隆任务解耦为独立的子任务,其中每个子任务都比耦合的任务更容易实现。

主要功能:可以用于合成音频数据

1.准确的音色克隆。OpenVoice可以准确地克隆参考音色,并生成多种语言和口音的语音。

2.灵活的语音风格控制。OpenVoice支持对语音风格的精细控制,例如情感和口音,以及其他风格参数,包括节奏、停顿和语调

3.零样本跨语言语音克隆。即使这些语言未在训练集中出现也能进行声音复制。

4、支持的语言包括英语(英国、美国、印度、澳大利亚)、西班牙语、法语、中文、日语、韩语

OpenVoice V2的新增特性:

  • 更好的音频质量: 采用新的训练策略以提升音频质量。
  • 原生多语言支持: V2 版本原生支持英语、西班牙语、法语、中文、日语和韩语。
  • 集成 MeloTTS: V2 版本引入了 MeloTTS 技术,通过 pip install git+https://github.com/myshell-ai/MeloTTS.git 进行安装,这是一个新的文本到语音转换系统,增强了声音的自然度和表现力。
  • 免费商业使用: 自2024年4月起,V1和V2版本均以 MIT 许可证发布,支持商业和研究用途的免费使用。
  1. 声音样式和语言的解耦设计:
    • OpenVoice 的设计哲学是将声音的不同特性(如音色、风格、语言)进行解耦,使得可以独立控制各个参数,从而达到灵活调整的目的。这一设计减少了模型的大小和复杂性,提高了操作的灵活性和推断速度。
  2. 基础发音者TTS模型与音色转换器:
    • 基础发音者TTS模型:这一模型允许对风格参数进行控制,如情绪和口音等。它是一个单发音者或多发音者模型,可以通过改变输入的风格和语言嵌入来输出不同风格的语音。
    • 音色转换器:这一组件采用编码器-解码器结构,负责将基础发音者的音色转换为参考发音者的音色。通过这种方式,即使基础声音与目标声音风格不同,也能保持原有风格的同时改变音色。
  3. 训练策略和数据处理:
    • 在训练过程中,采用了大量的多语种、多风格的音频样本。通过这些样本,模型学习如何准确复制音色并控制声音的不同风格。使用特定的损失函数来确保在保留风格的同时去除或转换音色,从而实现高质量的声音生成。

背景

目前语音克隆有以下问题:

1、除了克隆音色,如何灵活控制其他重要的风格参数,如情感,重音,节奏,停顿和语调?这些特征对于生成上下文中的自然语音和对话至关重要,而不是单调地叙述输入文本。以前的方法只能克隆参考说话人的单调音色和风格,但不允许灵活操纵风格。

2、zreo-shot能力:如果要生成的说话人没有训练集里 或者 要说话者的语言没有出现在训练集里,模型可以克隆参考语音并生成该语言的语音吗?

3.如何在不降低质量的情况下实现超高速实时推理,这对于大规模商业生产环境至关重要。

为了解决前两个问题,OpenVoice被设计为尽可能地解耦语音中的组件。语言、音色和其他重要的语音特征的生成是相互独立的,从而能够灵活地操纵各个语音风格和语言类型。这是在不标记MSML训练集中的任何语音风格的情况下实现的。我们想澄清的是,本研究中的零激发跨语言任务与VALLE-X中的任务不同。在VALLE-X中,所有语言的数据都需要包含在MSML训练集中,并且模型不能泛化到MSML训练集之外的未知语言。相比之下,OpenVoice被设计为推广到MSML训练集之外的完全看不见的语言。第三个问题是默认解决的,因为解耦的结构降低了对模型大小和计算复杂性的要求。 我们不需要一个大模型来学习一切。此外,我们避免了自回归或扩散成分,以加快推理

方法

将说话人音色和说话人风格、语言解耦,分别进行处理,base speaker TTS用于合成说话人风格参数(例如,情感、重音、节奏、停顿和语调)、重音和语言 。提取器用于控制合成音色信息。

很明显,同时为任何说话者克隆音色、实现对所有其他风格的灵活控制以及轻松添加新语言可能是非常具有挑战性的。它需要大量的组合数据集,其中受控参数相交,数据对只在一个属性上不同,并被很好地标记,以及一个相对大容量的模型来拟合数据集。

我们还注意到,在常规的单一说话人TTS中,不需要语音克隆,就可以相对容易地添加对其他风格参数的控制以及添加新语言。例如,在10K短音频样本的单说话人数据集,该10K短音频样本具有标记的情绪和语调,足以训练提供对情绪和语调的控制的单说话者TTS模型。添加新的语言或口音也很简单,只需要通过在数据集中添加另一个说话者。

OpenVoice背后的直觉是将IVC任务解耦为独立的子任务,其中每个子任务都比耦合的任务更容易实现。音色的克隆与对所有其余风格参数和语言的控制完全分离。我们提出使用基本说话人TTS模型来控制风格参数和语言,并使用音色转换器来将参考音色体现到生成的语音中。

Model Structure

OpenVoice的两个主要组件是base说话人TTS模型和音色转换器。base说话人TTS模型是单说话人或多说话人模型,其允许控制风格参数(例如,情感、重音、节奏、停顿和语调)、重音和语言。由该模型生成的语音被传递到音色转换器,该音色转换器将base说话人的音色改变为参考说话人的音色。

Base说话人TTS模型。Base Speaker TTS模型的选择非常灵活。例如,可以修改VITS模型,以在其文本编码器和持续时间预测器中接受样式和语言嵌入。其他选项如InstructTTS也可以接受样式提示。也可以使用商业上可用的(和便宜的)模型,例如Microsoft TTS,它接受指定情感,停顿和发音的语音合成标记语言(SSML)。人们甚至可以跳过基本说话人TTS模型,以他们想要的任何风格和语言自己阅读文本。在我们的OpenVoice实现中,我们默认使用VITS模型,但其他选择也是完全可行的。我们将基本模型的输出表示为 𝐗⁢(LI,SI,CI) ,其中三个参数分别表示语言、风格和音色。 类似地,来自参考说话者的语音音频表示为 𝐗⁢(LO,SO,CO) 。

音色转换器. 音色转换器是一个编码器-解码器结构,中间有一个可逆的归一化流程。编码器是一个1D卷积神经网络,它将 𝐗⁢(LI,SI,CI) 的短时傅立叶变换频谱作为输入。所有的卷积都是单步的。由编码器输出的特征图被表示为 𝐘⁢(LI,SI,CI) 。音色提取器是一个简单的2D卷积神经网络,它对输入语音的梅尔频谱图进行操作,并输出一个编码音色信息的单个特征向量。我们将其应用于  𝐗⁢(LI,SI,CI)  以获得矢量 𝐯⁢(CI) ,然后将其应用于 𝐗⁢(LO,SO,CO) 以获得矢量 𝐯⁢(CO) 。

标准化flow层将 𝐘⁢(LI,SI,CI) 和 𝐯⁢(CI) 作为输入,并输出消除色调音色信息但保留所有剩余样式属性的特征表示 𝐙⁢(LI,SI) 。 特征字母表(LI,SI)沿时间维度与国际音标(IPA)沿着对齐。然后,我们在反方向上应用归一化流层,其将 𝐙⁢(LI,SI) 和 𝐯⁢(CO) 作为输入并输出 𝐘⁢(LI,SI,CO) 。这是将来自参考说话者的音色 CO 体现到特征图中的关键步骤。然后 𝐘⁢(LI,SI,CO) 被HiFi-Gan解码为原始波形 𝐗⁢(LI,SI,CO) 。我们的OpenVoice实现中的整个模型是前馈的,没有任何自回归组件。音色转换器在概念上类似于语音转换,但是在其功能性、其模型结构上的归纳偏差和训练目标上具有不同的重点。 音色转换器中的flow层在结构上类似于基于流的TTS方法,但是具有不同的功能和训练目标。

替代方法和缺点。虽然有其他方法来提取 𝐙⁢(LI,SI) ,但我们根据经验发现,所提出的方法实现了最佳的音频质量。可以使用HuBERT来提取离散或连续的声学单元以消除音色信息,但我们发现这种方法也从输入语音中消除了情感和口音。当输入是看不见的语言时,这种类型的方法也存在保留音素的自然发音的问题。我们还研究了另一种方法,该方法仔细构建信息瓶颈以仅保留语音内容,但我们观察到这种方法无法完全消除音调音色。

OpenVoice的贡献在于提供了一个解耦的框架,将语音风格和语言控制从音色克隆中分离出来。这非常简单,但非常有效,特别是当你想控制风格,口音或推广到新的语言。如果想要在XTTS这样的耦合框架上拥有相同的控制权,可能需要大量的数据和计算,并且很难流利地说每种语言。在OpenVoice中,只要单扬声器TTS说话流利,克隆的语音就会流利。 将语音风格和语言的生成与音色的生成脱钩是OpenVoice的核心理念。

Training

为了训练base speaker TTS模型,我们从两个英语说话人(美国口音和英国口音)、一个汉语说话人和一个日语说话人收集了音频样本。共30K句,平均句长7s。中英文数据都有情感分类标签。我们对VITS模型【无需任何情感标注,通过对参考语音使用情感提取模型 提取语句情感embedding输入网络,实现情感可控的VITS合成】进行了改进,并将情感范畴嵌入、语言范畴嵌入和说话人id输入到文本编码器、时长预测器和flow层。培训遵循VITS作者提供的标准程序。训练后的模型能够通过在不同的基本说话人之间切换来改变口音和语言,并以不同的情绪来阅读输入文本。我们还用额外的训练数据进行了实验,证实了节奏、停顿和语调可以用和情绪完全一样的方式学习。

为了训练音色转换器,我们从20 K个人中收集了300 K音频样本。大约180K个样本是英语,60k个样本是中文,60k个样本是日语。这就是我们所说的MSML数据集。音色转换器的训练目标是双重的。首先,我们要求编码器-解码器产生自然的声音。在训练过程中,我们将编码器输出直接馈送到解码器,并使用具有mel频谱图损失和HiFi-GAN损失的原始波形来监督生成的波形。

其次,我们要求流层从音频特征中消除尽可能多的音色信息。在训练过程中,对于每个音频样本,其文本被转换为IPA中的音素序列,每个音素由可学习的向量嵌入表示。向量嵌入的序列被传递到Transformer编码器以产生文本内容的特征表示。将该特征表示为 𝐋∈ℝc×l ,其中 c 是特征通道的数量, l 是输入文本中的音素的数量。音频波形由编码器和流层处理以产生特征表示 𝐙∈ℝc×t ,其中 t 是特征沿时间维度沿着的长度。 然后,我们使用动态时间扭曲(替代方案是单调对齐)沿着时间维度对齐 𝐋 和 𝐙 以产生 𝐋¯∈ℝc×t ,并最小化 𝐋¯ 和 𝐙 之间的KL发散。由于 𝐋¯ 不包含任何音色信息,因此最小化目标将鼓励流层从其输出 𝐙 中移除音色信息。流层以来自音色编码器的音色信息为条件,这进一步帮助流层识别需要消除的信息。此外,我们不提供任何风格或语言信息供流层进行调节,这会阻止流层消除除音色以外的信息。 由于流层是可逆的,因此将它们调节在新的音色信息上并运行其逆过程可以将新的音色添加回特征表示,然后将特征表示解码为包含新的音色的原始波形。

总结

OpenVoice展示了卓越的实例语音克隆能力,并且在语音风格和语言方面比以前的方法更灵活。这种方法背后的直觉是,只要我们不要求模型能够克隆参考说话者的音调颜色,就可以相对容易地训练基本说话者TTS模型来控制语音风格和语言。因此,我们建议将音色克隆与其他语音风格和语言分离,我们认为这是OpenVoice的基本设计原则。

The Dataset of Speech Recognition数据集

语音识别数据集汇总:

https://github.com/double22a/speech_dataset/tree/main?tab=readme-ov-file

Chinese

nameduration/haddressremarkapplication
THCHS-3030https://openslr.org/18/
Aishell150https://openslr.org/33/
ST-CMDS110https://openslr.org/38/
Primewords99https://openslr.org/47/
aidatatang200https://openslr.org/62/
MagicData755https://openslr.org/68/
ASR&SD160http://ncmmsc2021.org/competition2.htmlif available
Aishell21000http://www.aishelltech.com/aishell_2if available
TAL ASR100https://ai.100tal.com/dataset
Common Voice63https://commonvoice.mozilla.org/zh-CN/datasetsCommon Voice Corpus 7.0
ASRU2019 ASR500https://www.datatang.com/competitionif available
2021 SLT CSRC398https://www.data-baker.com/csrc_challenge.htmlif available
aidatatang_1505zh1505https://datatang.com/opensourceif available
WenetSpeech10000https://github.com/wenet-e2e/WenetSpeech
KeSpeech1542https://openreview.net/forum?id=b3Zoeq2sCLqspeech recognition, speaker verification, subdialect identification, voice conversion
MagicData-RAMC180https://arxiv.org/pdf/2203.16844.pdfconversational speech data recorded from native speakers of Mandarin Chinese
Mandarin Heavy Accent Conversational Speech Corpus58.78https://magichub.com/datasets/mandarin-heavy-accent-conversational-speech-corpus/
Free ST Chinese Mandarin Corpushttps://openslr.org/38/

English

nameduration/haddressremark
Common Voice2015https://commonvoice.mozilla.org/zh-CN/datasetsCommon Voice Corpus 7.0
LibriSpeech960https://openslr.org/12/
ST-AEDS-201801004.7http://www.openslr.org/45/
TED-LIUM Release 3430https://openslr.org/51/
Multilingual LibriSpeech44659https://openslr.org/94/limited supervision
SPGISpeech5000https://datasets.kensho.com/datasets/scribeif available
Speech Commands10https://www.kaggle.com/c/tensorflow-speech-recognition-challenge/data
2020AESRC160https://datatang.com/INTERSPEECH2020if available
GigaSpeech10000https://github.com/SpeechColab/GigaSpeech
The People’s Speech31400https://openreview.net/pdf?id=R8CwidgJ0yT
Earnings-2139https://arxiv.org/abs/2104.11348
VoxPopuli24100+543https://arxiv.org/pdf/2101.00390.pdf24100(unlabeled), 543(transcribed)
CMU Wilderness Multilingual Speech Dataset13http://festvox.org/cmu_wilderness/Multilingual
MSR-86K9795.46https://huggingface.co/datasets/Alex-Song/MSR-86KMultilingual

Chinese-English

nameduration/haddressremark
SEAME30https://www.isca-speech.org/archive_v0/archive_papers/interspeech_2010/i10_1986.pdf
TAL CSASR587https://ai.100tal.com/dataset
ASRU2019 CSASR200https://www.datatang.com/competitionif available
ASCEND10.62https://arxiv.org/pdf/2112.06223.pdf

Japanese (ja-JP)

nameduration/haddressremark
Common Voice26https://commonvoice.mozilla.org/zh-CN/datasetsCommon Voice Corpus 7.0
Japanese_Scripted_Speech_Corpus_Daily_Use_Sentence18https://magichub.io/cn/datasets/japanese-scripted-speech-corpus-daily-use-sentence/
LaboroTVSpeech2000https://arxiv.org/pdf/2103.14736.pdf
CSJ650https://github.com/kaldi-asr/kaldi/tree/master/egs/csj
JTubeSpeech1300https://arxiv.org/pdf/2112.09323.pdf
MSR-86K1779.03https://huggingface.co/datasets/Alex-Song/MSR-86KMultilingual

Korean (ko-KR)

nameduration/haddressremark
korean-scripted-speech-corpus-daily-use-sentence4.3https://magichub.io/cn/datasets/korean-scripted-speech-corpus-daily-use-sentence/
korean-conversational-speech-corpus5.22https://magichub.io/cn/datasets/korean-conversational-speech-corpus/
MSR-86K10338.66https://huggingface.co/datasets/Alex-Song/MSR-86KMultilingual

Russian (ru-RU)

nameduration/haddressremark
Common Voice148https://commonvoice.mozilla.org/zh-CN/datasetsCommon Voice Corpus 7.0
OpenSTT20000https://arxiv.org/pdf/2006.08274.pdflimited supervision
MSR-86K3188.52https://huggingface.co/datasets/Alex-Song/MSR-86KMultilingual

French (fr-Fr)

nameduration/haddressremark
MediaSpeech10https://arxiv.org/pdf/2103.16193.pdfASR system evaluation dataset
MSR-86K8316.70https://huggingface.co/datasets/Alex-Song/MSR-86KMultilingual

Spanish (es-ES)

nameduration/haddressremark
MediaSpeech10https://arxiv.org/pdf/2103.16193.pdfASR system evaluation dataset
MSR-86K13976.84https://huggingface.co/datasets/Alex-Song/MSR-86KMultilingual

Turkish (tr-TR)

nameduration/haddressremark
MediaSpeech10https://arxiv.org/pdf/2103.16193.pdfASR system evaluation dataset

Arabic (ar)

nameduration/haddressremark
MediaSpeech10https://arxiv.org/pdf/2103.16193.pdfASR system evaluation dataset
MSR-86K873.84https://huggingface.co/datasets/Alex-Song/MSR-86KMultilingual

noise & nonspeech

nameduration/haddressremark
MUSANhttps://openslr.org/17/
Room Impulse Response and Noise Databasehttps://openslr.org/28/
AudioSethttps://ieeexplore.ieee.org/document/7952261

The Dataset of Speech Synthesis

Chinese

nameduration/haddressremark
Aishell385https://openslr.org/93/
Opencpophttps://wenet.org.cn/opencpop/download/Singing Voice Synthesis

English

nameduration/haddressremark
Hi-Fi Multi-Speaker English TTS Dataset291.6https://openslr.org/109/
LibriTTS corpus585https://openslr.org/60/
Speechocean762https://www.openslr.org/101/
RyanSpeech10http://mohammadmahoor.com/ryanspeech/

The Dataset of Speech Recognition & Speaker Diarization

Chinese

nameduration/haddressremarkapplication
Aishell4120https://openslr.org/111/8-channel, conference scenariosspeech recognition, speaker diarization
ASR&SD160http://ncmmsc2021.org/competition2.htmlif availablespeech recognition, speaker diarization
zhijiangcuphttps://zhijiangcup.zhejianglab.com/zhijiang/match/details/id/6.htmlif availablespeech recognition, speaker diarization
M2MET120https://arxiv.org/pdf/2110.07393.pdf8-channel, conference scenariosspeech recognition, speaker diarization

English

nameduration/haddressremarkapplication
CHiME-6https://chimechallenge.github.io/chime6/download.htmlif availablespeech recognition, speaker diarization

The Dataset of Speaker Recognition

Chinese

nameduration/haddressremarkapplication
CN-Celebhttps://openslr.org/82/
KeSpeech1542https://openreview.net/forum?id=b3Zoeq2sCLqspeech recognition, speaker verification, subdialect identification, voice conversion
MTASS55.6https://github.com/Windstudent/Complex-MTASSNet
THCHS-3040http://www.openslr.org/18/

English

nameduration/haddressremark
VoxCeleb Datahttp://www.robots.ox.ac.uk/~vgg/data/voxceleb/

中文语音识别数据集总结

OpenSLR国内镜像

http://openslr.magicdatatech.com/

Free ST Chinese Mandarin Corpus

1)基本信息:
参与者:855人
这个语料库是用手机在室内安静的环境中录制的。它有855个speakers。每个演讲者有120个话语。所有的话语都经过人仔细的转录和核对。保证转录精度

语料库包含:
1音频文件;
2转录;
3元数据;

2)链接

下载:(8.2G)

http://www.openslr.org/resources/38/ST-CMDS-20170001_1-OS.tar.gz

国内镜像:

http://cn-mirror.openslr.org/resources/38/ST-CMDS-20170001_1-OS.tar.gz

Primewords Chinese Corpus Set 1

1)基本信息
参与人数:296人
时长:178小时

这个免费的中文普通话语料库由上海普力信息技术有限公司发布。(www.primewords.cn)包含178个小时的数据。该语料由296名以中文为母语的人的智能手机录制。转录精度大于 98%,置信度为 95%。免费用于学术用途。转述和词句之间的映射以 JSON 格式提供。

2)链接

下载:(9.0G)

http://www.openslr.org/resources/47/primewords_md_2018_set1.tar.gz

国内镜像:

http://cn-mirror.openslr.org/resources/47/primewords_md_2018_set1.tar.gz

爱数智慧中文手机录音音频语料库(Mandarin Chinese Read Speech )

1)基本信息

时长:755小时

参与人数:1000人

音频格式:PCM

MagicData中文手机录音音频语料库包含755小时的中文普通话朗读语音数据,其中分为训练集712.09小时、开发集14.84小时和测试集28.08小时。本语料库的录制文本覆盖多样化的使用场景,包括互动问答、音乐搜索、口语短信信息、家居命令控制等。采集方式为手机录音,涵盖多种类型的安卓手机;录音输出为PCM格式。1000名来自中国不同口音区域的发言人参与采集。MagicData中文手机录音音频语料库由MagicData有限公司开发,免费发布供非商业使用。

2)链接

包:

https://freedata.oss-cn-beijing.aliyuncs.com/MAGICDATA_Mandarin_Chinese_Speech.zip

下载地址

http://www.imagicdatatech.com/index.php/home/dataopensource/data_info/id/101

THCHS30

1)基本信息

时长:40余小时

THCHS30是一个经典的中文语音数据集,包含了1万余条语音文件,通过单个碳粒麦克风录取,大约40小时的中文语音数据,内容以文章诗句为主,全部为女声。它是由清华大学语音与语言技术中心(CSLT)出版的开放式中文语音数据库。原创录音于2002年由朱晓燕教授在清华大学计算机科学系智能与系统重点实验室监督下进行,原名“TCMSD”,代表“清华连续”普通话语音数据库’。13年后的出版由王东博士发起,并得到了朱晓燕教授的支持。他们希望为语音识别领域的新入门的研究人员提供玩具级别的数据库,因此,数据库对学术用户完全免费。

2)链接

国内镜像:

https://link.ailemon.me/?target=http://cn-mirror.openslr.org/resources/18/data_thchs30.tgz

国外镜像:

https://link.ailemon.me/?target=http://www.openslr.org/resources/18/data_thchs30.tgz

ST-CMDS

1)基本信息:

时长:100余小时

参与人数:855人

ST-CMDS是由一个AI数据公司发布的中文语音数据集,包含10万余条语音文件,大约100余小时的语音数据。数据内容以平时的网上语音聊天和智能语音控制语句为主,855个不同说话者,同时有男声和女声,适合多种场景下使用。

2)链接

下载地址:

国内镜像:

https://link.ailemon.me/?target=http://cn-mirror.openslr.org/resources/38/ST-CMDS-20170001_1-OS.tar.gz

国外镜像:

https://link.ailemon.me/?target=http://www.openslr.org/resources/38/ST-CMDS-20170001_1-OS.tar.gz

MAGICDATA Mandarin Chinese Read Speech Corpus

1)基本信息

时长:755小时

参与人数:1080人

应用:语音识别,机器翻译,说话人识别和其他语音相关领域

Magic Data技术有限公司的语料库,语料库包含755小时的语音数据,其主要是移动终端的录音数据。邀请来自中国不同重点区域的1080名演讲者参与录制。句子转录准确率高于98%。录音在安静的室内环境中进行。数据库分为训练集,验证集和测试集,比例为51:1:2。诸如语音数据编码和说话者信息的细节信息被保存在元数据文件中。录音文本领域多样化,包括互动问答,音乐搜索,SNS信息,家庭指挥和控制等。还提供了分段的成绩单。该语料库旨在支持语音识别,机器翻译,说话人识别和其他语音相关领域的研究人员。因此,语料库完全免费用于学术用途。

2)链接

下载地址见参考:
https://blog.ailemon.me/2018/11/21/free-open-source-chinese-speech-datasets/
镜像:
http://www.openslr.org/68/

AISHELL

AISHELL开源版1

1)基本信息

时长:178小时

参与人数:400人

采样:44.1kHz & 16kHz 16bit

AISHELL是由北京希尔公司发布的一个中文语音数据集,其中包含约178小时的开源版数据。该数据集包含400个来自中国不同地区、具有不同的口音的人的声音。录音是在安静的室内环境中同时使用3种不同设备: 高保真麦克风(44.1kHz,16-bit);Android系统手机(16kHz,16-bit);iOS系统手机(16kHz,16-bit)。进行录音,并采样降至16kHz,用于制作AISHELL-ASR0009-OS1。通过专业的语音注释和严格的质量检查,手动转录准确率达到95%以上。该数据免费供学术使用。他们希望为语音识别领域的新研究人员提供适量的数据。

2)链接

下载地址:

http://www.aishelltech.com/kysjcp

AISHELL-2 开源中文语音数据库

1)基本信息

时长:1000小时

参与人数:1991人

希尔贝壳中文普通话语音数据库AISHELL-2的语音时长为1000小时,其中718小时来自AISHELL-ASR0009-[ZH-CN],282小时来自AISHELL-ASR0010-[ZH-CN]。录音文本涉及唤醒词、语音控制词、智能家居、无人驾驶、工业生产等12个领域。录制过程在安静室内环境中, 同时使用3种不同设备: 高保真麦克风(44.1kHz,16bit);Android系统手机(16kHz,16bit);iOS系统手机(16kHz,16bit)。AISHELL-2采用iOS系统手机录制的语音数据。1991名来自中国不同口音区域的发言人参与录制。经过专业语音校对人员转写标注,并通过严格质量检验,此数据库文本正确率在96%以上。(支持学术研究,未经允许禁止商用。)

2)链接

下载地址:

http://www.aishelltech.com/aishell_2

AISHELL-翻译机录制语音数据库

1)基本信息

时长:31.2小时

参与人数:12人

采样: 44.1kHz & 16kHz 16bit

文件:wav

来自AISHELL的开源语音数据产品:翻译机录制语音数据库

2)链接

下载地址:

http://www.aishelltech.com/aishell_2019C_eval

AISHELL-家居环境近远讲同步语音数据库

1)基本信息

时长:24.3小时

参与人数:50人

采样: 44.1kHz & 16kHz 16bit

文件:wav

AISHELL-2019A-EVAL 随机抽取 50 个发音人。每人从位置 A(高保真 44.1kHz,16bit)与位置 F(Android 系统手机 16kHz,16bit)中,各选取 232 句到 237 句。
此数据库经过专业语音校对人员转写标注,并通过严格质量检验,文本正确率 100%。

AISHELL-2019A-EVAL 是 AISHELL-ASR0010 的子库,共 24.3 小时。

2)链接

下载地址:

http://www.aishelltech.com/aishell_2019A_eval

AISHELL-语音唤醒词数据库

1)基本信息

时长:437.67小时

参与人数:86人

采样: 44.1kHz & 16kHz 16bit

文件:wav

来自希尔贝壳的语音唤醒词数据库

2)链接

下载地址:

http://www.aishelltech.com/aishell_2019B_eval

AISHELL-3 语音合成数据集

1)基本信息
希尔贝壳中文普通话语音数据库AISHELL-3的语音时长为85小时88035句,可做为多说话人合成系统。录制过程在安静室内环境中, 使用高保真麦克风(44.1kHz,16bit)。218名来自中国不同口音区域的发言人参与录制。专业语音校对人员进行拼音和韵律标注,并通过严格质量检验,此数据库音字确率在98%以上。(支持学术研究,未经允许禁止商用。)
2)下载链接
国内镜像: https://openslr.magicdatatech.com/resources/93/data_aishell3.tgz
国外镜像:https://www.openslr.org/resources/93/data_aishell3.tgz

Aidatatang

aidatatang_1505zh(完整的1505小时中文普通话语音数据集)

1)基本信息

参与人数:6408人

时长:1505小时

包含6408位来自中国不同地区的说话人、总计1505小时时长共3万条语音、经过人工精心标注的中文普通话语料集可以对中文语音识别研究提供良好的数据支持。采集区域覆盖全国34个省级行政区域。经过专业语音校对人员转写标注,并通过严格质量检验,句标注准确率达98%以上,是行业内句准确率的最高标准。

2)使用效果:

3)链接

数据申请:

https://www.datatang.com/webfront/opensource.html

Aidatatang_200zh(基于完整数据集精选的200小时中文普通话语音数据集)

1)基本信息
时长:200小时

参与人数:600人

采样: 16kHz 16bit

Aidatatang_200zh是由北京数据科技有限公司(数据堂)提供的开放式中文普通话电话语音库。语料库长达200小时,由Android系统手机(16kHz,16位)和iOS系统手机(16kHz,16位)记录。邀请来自中国不同重点区域的600名演讲者参加录音,录音是在安静的室内环境或环境中进行,其中包含不影响语音识别的背景噪音。参与者的性别和年龄均匀分布。语料库的语言材料是设计为音素均衡的口语句子。每个句子的手动转录准确率大于98%。数据库按7:1:2的比例分为训练集、验证集和测试集。在元数据文件中保存诸如语音数据编码和扬声器信息等详细信息。还提供分段转录本。

2)特点

该语料库旨在为语音识别、机器翻译、声纹识别等语音相关领域的研究人员提供支持。因此,该语料库完全免费供学术使用。

数据堂精选了200小时中文普通话语音数据在OpenSLR发布,并在Kaldi平台提供了训练代码,对应的训练方法也在github平台发布。

3)链接

训练:

https://github.com/datatang-ailab/aidatatang_200zh/blob/master/README.md

国内镜像:

https://link.ailemon.me/?target=http://cn-mirror.openslr.org/resources/62/aidatatang_200zh.tgz

国外镜像:https://link.ailemon.me/?target=http://www.openslr.org/resources/62/aidatatang_200zh.tgz

hkust

  1. 基本信息
    200h,16khz,16bit。中文电话数据集,电话对话,espnet,kaldi里面都有egs。
    2)链接下载链接:http://catalog.ldc.upenn.edu/LDC2005S15

Speechocean 10小时中文普通话语音识别语料库

1)基本信息
这是一个10.33小时的语料库,它同时通过4个不同的麦克风收集。在安静的办公室中,由20位说话者(10位男性和10位女性)录制​​了该语料库。每个扬声器在一个通道中记录了大约120声。包括转录文件。句子的转录精度高于98%。它完全免费用于学术目的。
2)下载链接
百度云盘(提取码:sktk):https://pan.baidu.com/share/init?surl=1glZHlKIXjlPOOht6_yQXQ

cn-celeb

1)基本信息
此数据是“在野外”收集的大规模说话人识别数据集。该数据集包含来自1000位中国名人的13万种语音,涵盖了现实世界中的11种不同流派。所有音频文件都编码为单通道,并以16位精度以16kHz采样。数据收集过程由清华大学语音与语言技术中心组织。它也由国家自然科学基金61633013和博士后科学基金2018M640133资助。
2)下载链接

HI-MIA

1)基本信息
内容为中文和英文的唤醒词“嗨,米娅”。使用麦克风阵列和Hi-Fi麦克风在实际家庭环境中收集数据。下文描述了基准系统的收集过程和开发。挑战中使用的数据是从1个高保真麦克风和1/3/5米的16通道圆形麦克风阵列中提取的。内容是中文唤醒词。整个集合分为火车(254人),开发(42人)和测试(44人)子集。测试子集提供了成对的目标/非目标答案,以评估验证结果。
2)下载链接
国内镜像(train) :http://openslr.magicdatatech.com/resources/85/train.tar.gz
国内镜像(dev) :http://openslr.magicdatatech.com/resources/85/dev.tar.gz
国内镜像(test) :http://openslr.magicdatatech.com/resources/85/test_v2.tar.gz
国内镜像(filename_mapping):http://openslr.magicdatatech.com/resources/85/filename_mapping.tar.gz

MobvoiHotwords

1)基本信息
MobvoiHotwords是从Mobvoi的商业智能扬声器收集的唤醒单词的语料库。它由关键字和非关键字语音组成。对于关键字数据,将收集包含“ Hi xiaowen”或“ Nihao Wenwen”的关键字语音。对于每个关键字,大约有36k语音。所有关键字数据均收集自788名年龄在3-65岁之间的受试者,这些受试者与智能扬声器的距离(1、3和5米)不同。在采集过程中,具有不同声压级的不同噪声(例如音乐和电视等典型的家庭环境噪声)会在后台播放。

2)下载链接
国内镜像 :http://openslr.magicdatatech.com/resources/87/mobvoi_hotword_dataset.tgz
国外镜像:http://www.openslr.org/resources/87/mobvoi_hotword_dataset.tgz

zhvoice: Chinese voice corpus

1)基本信息
zhvoice语料由8个开源数据集,经过降噪和去除静音处理而成,说话人约3200个,音频约900小时,文本约113万条,共有约1300万字。

zhvoice语料比较原始数据而言,更加清晰和自然,减少了噪声的干扰,减少了因说话人说话不连贯造成的不自然。

zhvoice语料包含文本、语音和说话人3个方面的信息,可适用于多种语音相关的任务。

zhvoice语料由智浪淘沙清洗和处理。
2)下载链接
https://github.com/fighting41love/zhvoice

AudioPaLM-可以听说的大模型

AudioPaLM,一个用于语音理解和生成的大型语言模型。AudioPaLM融合了基于文本和基于语音的语言模型,将PaLM-2和AudioLM集成到一个统一的多模式架构中,该架构可以处理和生成文本和语音,可以实现包括语音识别和语音到语音翻译。AudioPaLM继承了AudioLM保留说话人身份和语调等非语言信息的能力,以及仅存在于PaLM-2等文本大型语言模型中的语言知识。我们证明,使用纯文本大型语言模型的权重初始化AudioPaLM可以改善语音处理,成功地利用预训练中使用的大量文本训练数据来帮助语音任务。 由此产生的模型显著优于现有的语音翻译任务系统,并且能够为许多语言执行零样本语音到文本的翻译,这些语言在训练中没有看到输入/目标语言组合。

https://google-research.github.io/seanet/audiopalm/examples/

https://arxiv.org/html/2306.12925

AudioPaLM的核心是一个联合词汇表,它可以用有限数量的离散tokrn来表示语音和文本,结合任务的基本标记描述,允许在涉及任意交织的语音和文本的混合任务上训练单个仅解码器模型。这包括语音识别、文本到语音合成和语音到语音翻译,将传统上由异构模型解决的任务统一到单个架构和训练运行中。此外,由于AudioPaLM的底层架构是大型Transformer模型,因此我们可以使用在文本上预训练的大型语言模型的权重来初始化其权重,这允许其受益于诸如PaLM的模型的语言和常识知识。

图1:AudioPaLM模型,以语音到语音翻译和自动语音识别为例。我们采用一个预训练的纯文本模型(虚线),并扩展其嵌入矩阵来建模一组新的音频令牌,这里的token基于w2v-BERT 或者USM-v提取的,但token中同时含有语义信息和说话人声学信息【 k-means聚类之前不对嵌入进行归一化 ,用于保留说话人信息】。模型架构在其他方面没有改变:文本和音频令牌的混合序列作为输入被送入,并且模型解码文本或音频令牌。音频令牌通过后面的AudioLM阶段或SoundStorm转换回原始音频。

我们使用一个只有解码器的Transformer来建模由文本和音频令牌组成的序列。就模型而言,文本和音频只是任意整数的序列,因为输入在馈送到模型之前被标记化,并且任何输出在返回给模型的用户之前都被去token化。通过在有限的词汇表中用离散的标记来表示语音,我们可以构建一个多模态词汇表,它是这个音频词汇表和一个用于表示文本的SentencePiece的结合。因此,原则上,我们的设置和通常的纯文本解码器设置之间几乎没有区别,除了在我们的设置中,一些令牌代表音频和一些文本,并且我们使用预训练的纯文本检查点初始化我们的多模态模型。

方法

音频嵌入和令牌化

将原始波形转换为令牌。这涉及从现有的语音表示模型中提取嵌入,然后将这些嵌入离散化为有限的音频令牌集合。从w2v-BERT模型中提取嵌入,通过K-means进行离散化。在这项工作中,我们实验了以下方法来获得一组离散的音频令牌:

1、我们使用了一个w2v-BERT模型,该模型已经在多语言数据上进行了训练,其次,我们在执行k-means聚类之前不对嵌入进行归一化。虽然Borsos等人发现标准化在不降低性能的情况下删除了说话者身份信息,但我们发现在多语言环境中,标准化确实会导致性能下降保留了说话人的声学信息,所以这里的token可以认为是声学token+语义token】。该方法以25 Hz的速率产生令牌,令牌词汇表的大小为1024。

2、USM-v1:我们使用更高性能的通用语音模型(USM)编码器执行相同的过程,以替换w2v-BERT编码器。我们使用这个多语言语音编码器的最大2B参数变体,并从中间层提取嵌入。与w2v-BERT类似,该方法以25 Hz的速率生成令牌,令牌词汇表的大小为1024。

修改纯文本解码器以适应文本和音频

在Transformer解码器中,输入预处理后模型的第一层是标记嵌入矩阵 𝐄 ,它将整数值标记映射到密集嵌入;给定 t 标记的词汇表和大小为 m 的嵌入, 𝐄 是 t×m 矩阵,其第 i 行给出第 i 标记的嵌入。 另一个嵌入矩阵 𝐄′ 出现在最后的softmax层中,用于计算每个位置上所有标记的logit;它是一个 m×t 矩阵,与模型的 m 维输出相乘,以获得logit的 t 维向量,每个标记一个。 在PaLM架构中,这些矩阵具有共享变量,因此一个是另一个的转置,即 𝐄′=𝐄 。

解码器架构的其余部分对建模的令牌数量完全无关。 因此,我们只需要做一个小的修改,将纯文本模型转换为同时对文本和音频进行建模的模型:我们将嵌入矩阵 𝐄 的大小扩展为大小 (t+a)×m ,其中 a 是音频令牌的数量( 𝐄′=𝐄 的大小相应地改变)。

为了利用预训练的文本模型,我们通过向嵌入矩阵 𝐄 添加 a 新行来更改现有的模型检查点。实现细节是前 t 令牌(从零到 t )对应于SentencePiece文本令牌,而接下来的 a 令牌(从 t 到 t+a )表示音频令牌。 虽然我们可以重用预训练模型的文本嵌入,但新的音频嵌入是新初始化的,必须经过训练。我们发现有必要训练所有模型参数,而不是保持以前的权重固定。我们使用混合语音和文本任务进行训练。

3、将音频令牌解码为原始音频

为了从音频令牌合成音频波形,我们实验了两种不同的方法:i)自回归解码,遵循AudioLM的设置非自回归解码,ii) 使用最近提出的SoundStorm模型。在这两种情况下,音频令牌首先用于生成声音流令牌,然后用卷积解码器将其转换为音频波形。

AudioLM中的声学生成分两个阶段进行:先将音频token声音流令牌,然后再在合成语音“阶段2”是仅解码器的Transformer模型,其将AudioPaLM产生的音频令牌和语音调节作为输入,并生成SoundStream令牌,其可用于以所需语音实现语音,但比特率非常低。“阶段3”重建SoundStream的残差矢量量化器的更高级别,这增加了比特率并提高了音频质量。

SoundStorm提出了一种替代的非自回归解码方案,该方案应用了一种迭代方法,该方法在所有令牌上并行进行。SoundStorm产生的音频质量与AudioLM相同,但在语音和声学条件方面具有更高的一致性,同时速度快了两个数量级。

通过提供原始输入语音的一部分作为语音调节,该模型能够在将其语音翻译为不同语言时保留原始说话者的语。

实验

由于 AudioPaLM 是基于 Transformer 模型的大语言模型,它可以使用基础的文本预训练模型来初始化权重,从而受益于 PaLM 或 PaLM 2 等模型的语言和常识知识。由于统一的多模态架构,AudioPaLM 能够使用直接映射或组合任务的方式来解决语音识别、语音合成和语音翻译等问题。单一任务包括自动语音识别(ASR)、自动语音翻译(AST)、语音到语音翻译(S2ST)、文本到语音(TTS)和文本到文本机器翻译(MT)等。为了指定模型在给定输入上执行的任务,可以在输入前加上标签,指定任务和输入语言的英文名称,输出语言也可以选择加上。例如,[ASR French]表示执行法语的自动语音识别任务,[TTS English]表示执行英语的文本到语音任务,[S2ST English French]表示执行从英语到法语的语音到语音翻译任务,而组合任务的标签[ASR AST S2ST English French]表示依次进行从英语到法语的自动语音识别、自动语音翻译、语音到语音翻译。微调使用的数据集包含音频、音频的转录、音频的翻译、音频的翻译文本等。一个数据集可以用于多个任务,将同一数据集中的多个任务结合起来可以提高性能。

AudioPaLM 在语音翻译基准测试中展示了最先进的结果,并在语音识别任务上表现出竞争性能。利用 AudioLM 的语音提示,该模型还可以对未见过的讲话者进行 S2ST,超越现有方法,以客观和主观评估的方式衡量语音质量和声音保持。另外,该模型展示了零样本迁移的能力,可以使用训练中未曾出现过的语音输入/目标语言组合进行 AST。

SpeechTokenizer: Unified Speech Tokenizer for Speech Language Models

语音语言模型的统一语音标记器

https://github.com/ZhangXInFD/SpeechTokenizer

SpeechTokenizer: Unified Speech Tokenizer for Speech Language Models

SpeechTokenizer是一个统一的语音语言模型的语音分词器,它采用了编码器-解码器架构与残差矢量量化(RVQ)。统一语义和声学标记SpeechTokenizer在不同的RVQ层上分层地解开语音信息的不同方面。具体地,RVQ的第一量化器输出的代码索引可以被认为是语义令牌,并且其余量化器的输出主要包含音色信息,其用作对由第一量化器丢失的信息的补充。

目前的Speech Langauge Model(speech LM)大多依赖于语音的离散表示。具体来说,这些模型首先将连续的语音信号转换成离散的tokens,进而像处理文本一样以自回归的方式进行训练,再通过一个解码器将离散tokens恢复为语音。

比较常用的语音离散表示大致可分为两种:语义semantic token和 声学acoustic token。token如其名,通常认为semantic token建模语音中较为global的内容信息,它们来自于以mask langauge modeling为training objective的自监督预训练模型,比较常见的有HuBERT, W2VBERT等;acoustic token建模语音中的局部声学细节,通常来自于以reconstruction为training objective的neural audio codec,比较常见的有SoundStream, EnCodec。

基于这两种token,目前已有的speech LM建模范式大致可分为三类

  1. Semantic language models: 基于semantic token的自回归模型,常外接一个unit-vocoder来恢复语音,比如SpeechGPT。这类模型虽然可以完成一些语音内容相关的任务,但是它们产生的音质比较一般,并且无法完成一些副语言学相关的任务,比如音色转换等。
  2. Acoustic language models: 基于acoustic token的speech LM,比如VALL-E。这类模型产生的语音音质比较好,并且可以较好地完成一些比如zero-shot TTS的任务,但是会存在内容不准确的问题。
  3. Hierarchical speech language models: 这类模型由Semantic language models和Acoustic language models 级联而成,既可以产生比较精确的内容,也可以产生较好的音质,比如AudioPaLM。但是这类模型,建模阶段太多,较为复杂,需要两种tokenizer的参与;而且在semantic token和acoustic token之间其实存在有很大的信息冗余,会带来一些不必要的建模难度。

因此,如果想要打造好的speech LM,需要有一个理想的speech tokens,它应该具有以下两个特征:

  1. 和文本的对齐程度比较高
  2. 保留了语音中各个方面的信息

但是现有的speech tokens都不是专门为构建speech LM而设计的,并不清楚它们和speech LM的适配性。因此我们建立了SLMTokBench来评估不同类型speech token在构建speech LM方面的适用性。它从文本对齐程度和信息保留程度两个方面来量化分析speech tokens,具体评测方法可以看我们论文。通过SLMTokBench,我们发现semantic tokens和文本的对齐程度比较高,但是损失了语音中很大一部分说话人信息。acoustic tokens保留了语音中的各个方面信息,但是和文本的对齐程度不够高。因此,他们都不适合于构建speechLM。

方法

虽然说SoundStream和Encodec这样的基于RVQ-VAE的压缩建模方法包含了语音的声学特征,但其中也不可避免地带入了语义特征。二者提取的实际上更像是一种语义特征和声学特征的混合体。基于此,SpeechTokenizer在二者的基础上,引入了语义引导信息来解耦语义特征和声学特征。语义特征和声学特征的解耦对于最终的语音合成有着相当的重要性。SpeechTokenizer的具体做法是:使用HuBERT的特征对RVQ1的特征做语义蒸馏,其余部分保留声学信息。

基于此,我们想统一semantic token和acoustic token,我们提出了SpeechTokenizer,它基于EnCodec架构,在不同的RVQ层上对语音信息进行解耦和分层建模,从而让第一层token建模语音中的内容信息,剩下几层token补充除内容信息之外的其他信息,如下图。这是首个专为speech LM设计的语音离散化工具。

具体实现方法为在EnCodec的整体框架上,使用HuBERT representation对RVQ-1的quantized output进行semantic guidance,从而达到第一层token建模语音中的内容信息的效果,并且残差结构会使得剩下的几层来补充内容信息之外的其他信息。使用EnCodec的基于卷积的编码器-解码器网络,该网络使用选定的步幅因子执行时间缩减。值得注意的是,我们已经用两层BiLSTM代替了最初在EnCodec编码器中的卷积块之后的两层LSTM,以增强语义建模能力。我们对附录B中的模型结构进行了消融研究。我们使用残差向量量化(RVQ)来量化编码器的输出,RVQ是一种可以在初始量化步骤之后使用不同码本来量化残差的方法。有关模型结构的更多详细信息,请参见附录D。 在训练期间,语义教师提供语义表示以指导残差量化过程。

并且基于SpeechTokenizer,我们可以统一上面讲的三种speech LM建模范式,从而构建unified speech language model(USLM),模型结构如下图

在SpeechTokenizer上构建一个统一的语音语言模型。它由自回归模型和非自回归模型组成,可以对语音信息进行分层建模。自回归(AR)模型通过对来自第一RVQ量化器的令牌进行建模来捕获内容信息。非自回归(NAR)模型通过从以第一层令牌为条件的后续量化器生成令牌来补充AR模型的语言信息。我们在零拍TTS任务上验证了统一语音语言模型的有效性。

回归(AR)模型通过对来自第一RVQ量化器的令牌进行建模来捕获内容信息。非自回归(NAR)模型通过从以第一层令牌为条件的后续量化器生成令牌来补充AR模型的语言信息。

NAR模型可以是条件流匹配[speech-Gen]、扩散模型 【Seed-TTS】等

在推理过程中,我们将文本输入转换为音素序列,将语音提示转换为语音标记。它们连接在一起形成AR和NAR模型的提示。在此基础上,AR模型生成第一级令牌,而NAR模型迭代地生成后续级别的令牌。由AR和NAR模型生成的令牌然后被连接以构造语音令牌矩阵。最后,我们使用SpeechTokenizer解码器来生成以完整令牌矩阵为条件的波形。

Speech Language Model Token Benchmark:

文本对齐评估:

下游模型采取语音令牌作为输入。具体来说,对于每个离散表示,我们首先建立一个嵌入矩阵,该矩阵可以随机初始化,也可以从离散化过程中获得的k均值质心矩阵或矢量量化码本中导出。我们使用嵌入矩阵来嵌入离散表示并获得连续表示,然后将其输入下游模型。我们在LibriSpeech train-clean-100子集上训练下游模型,并使用dev-clean子集来估计互信息。我们还计算了测试集上的单词错误率(WER)。

信息保存评估:

为了评估离散语音表示中语音信息的保留,我们将语音令牌转换回语音,并通过内容和音质的自动度量来评估重新合成的语音。我们训练一个单元-HiFIGAN(Polyak 等人,2021)在LibriSpeech数据集上将HuBERT单位转换为波形。值得注意的是,为了避免额外信息的干扰,我们在训练期间不提供任何说话人信息。对于Encodec令牌,我们使用Encodec解码器直接产生波形。通过使用Whisper en-medium模型转录重新合成的语音来计算WER来评估内容保存(拉德福 等人,2023年)。通过利用WavLM-TDNN(Chen 等人,2022)来计算合成语音和地面实况语音之间的说话人相似度。 我们从LibriSpeech测试集中随机抽取300个语音样本进行评估。

比较语义 & 声学令牌

我们使用HuBERT L9单元来表示语义令牌,使用EnCodec代码来表示声学令牌语义标记实现了与文本的高互信息,但其重新合成的语音具有低说话人相似性。声学标记实现低WER和高说话人相似度的再合成语音,但与文本的互信息低。

SpeechTokenizer

模型结构

我们的模型基于 RVQ-GAN 框架,遵循与 SoundStream和 EnCodec相同的模式。如图 2 所示,模型使用了 EnCodec 中基于卷积的编码器-解码器网络,通过选择的步长因子进行时间下采样。值得注意的是,我们将 EnCodec 编码器中卷积模块后原本使用的两层 LSTM 替换为两层 BiLSTM,以增强语义建模能力。我们在附录 B 中进行了模型结构的消融研究。我们使用残差矢量量化(RVQ)对编码器输出进行量化,这种方法可以在初始量化步骤后使用不同的码书对残差进行量化。模型结构的进一步细节可参见附录 D。在训练期间,一个语义教师为残差量化过程提供语义表示指导。

语义提炼

为了实现跨不同RVQ层的不同信息的分层建模,我们采用语义指导的第一个量化器,使其能够捕获内容信息。利用残差结构使得后续量化器能够补充剩余的非语言信息。

我们采用HuBERT(Hsu 等人,2021)作为我们在这项研究中的语义老师,因为HuBERT被证明包含大量的内容信息(Mohamed 等人,2022年)。我们介绍了两种类型的蒸馏:连续表示蒸馏和伪标签预测。

对于连续表示蒸馏,我们采用第9层HuBERT表示或所有HuBERT层的平均表示作为语义教师。训练目标是最大化RVQ第一层和语义教师表示的输出之间的所有时间步长在维度级别上的余弦相似性。形式上,连续蒸馏损失定义为:

其中 𝐐1 和 𝐒 分别表示RVQ第一层和语义教师表示的量化输出。 𝐀 表示投影矩阵, D 是语义教师表征的维度。上标 (:,d) 表示包括来自维度 d 处的所有时间步的值的向量。 cos⁡(⋅) 表示余弦相似性, σ⁢(⋅) 表示S形激活。这种连续蒸馏损失函数偏离了常用的方法,该方法基于学生和教师模型在同一时间步输出的表示来计算损失。附录C对这两种方法进行了比较分析。

对于伪标签预测,我们采用HuBERT单元作为目标标签。培训目标如下:

其中 𝐪1t 和 𝐮t 分别表示第一VQ层和HuBERT单元在时间步t的量化输出。 T 表示时间步长的数量, 𝐀 是投影矩阵。

Training Objective

我们的训练方法包括重建任务和语义蒸馏任务。在重建任务中,我们采用了GAN目标,优化了重建项,判别损失项和RVQ承诺损失的组合。在语义蒸馏任务中,训练目标涉及语义蒸馏损失项。在下文中, 𝐱 表示语音信号,并且 𝐱^ 表示通过网络重构的信号.

重建损失重建损失包括时域和频域损失。鉴别损失我们使用与HiFi-CodecYang等人(2023)相同的鉴别器,其中包括三个鉴别器:基于多尺度STFT(MS-STFT)的鉴别器;多周期鉴别器(MPD)和多尺度鉴别器(MSD)。鉴别器的更多详细信息可参见附录D。对抗性损失用于提高感知质量,并且它被定义为在多个鉴别器上和在时间上平均的在多个鉴别器的logits上的铰链损失。RVQ Commitment Loss 我们在预量化值和其量化值之间添加承诺损失 ℒw ,而不为量化值计算梯度。RVQ承诺损失被定义为: ℒw=∑i=1Nq∥𝐳i−𝐳qi∥22. ,其中 𝐳i 和 𝐳qi 分别表示对应码本中的当前残差和最近条目。

通常,生成器被训练以优化以下损失:

RVQ token中信息解耦的效果如何?

我们做了one-shot voice conversion的实验。具体做法为把source speech的RVQ-1 token和reference speech的RVQ-2:8 token拼在一起送到decoder中得到converted speech。我们发现这种简单拼接RVQ token的做法也可以有不错的音色转换的效果,说明信息解耦是比较成功的。可以到我们的demo page上听效果。

SpeechTokenizer能否直接应用到unseen langauge上?

SpeechTokenizer在训练过程中只见过英语,我们直接用它直接来tokenize 德语和中文speech。发现RVQ-1送到decoder得到的speech比较机械,没有音色和韵律,说明也有比较好的解耦效果,大家可以去project page听demo。从下面频谱图也可以看出RVQ-1得到的语音丢掉了一些如共振峰等特征。

SpeechGPT系列:语音大语言模型

开源:https://github.com/0nutation/SpeechGPT

SpeechGPT (2023/05) - Empowering Large Language Models with Intrinsic Cross-Modal Conversational Abilities
SpeechGPT(2023/05)-为大型语言模型提供内在的跨模态会话能力

SpeechGPT-Gen (2024/01) - Scaling Chain-of-Information Speech Generation
SpeechGPT-Gen(2024/01)-缩放信息链语音生成

SpeechAgents: Human-Communication Simulation with Multi-Modal Multi-Agent Systems
SpeechAgents:多模态多智能体系统的人机交互仿真

SpeechAlign:  
Aligning Speech Generation to Human Preferences
SpeechAlign: 使语音生成与人类偏好保持一致

paper:

   https://arxiv.org/abs/2401.03945 [SpeechAgents]
   https://arxiv.org/abs/2305.11000 [SpeechGPT]
   https://arxiv.org/abs/2401.13527 [SpeechGPT-Gen/SpeechGPT2]
   https://arxiv.org/abs/2404.05600 [SpeechAlign]

这算是复旦大学邱锡鹏组在这个领域一个成系列的工作,我们一个一个来看。SpeechGPT是一种基于深度学习的语言模型,它能够理解和生成自然语言。SpeechGPT是一种新型的大型语言模型,它不仅能够理解语音和文本,还能够在这两者之间自如转换。简单来说,它能够感知和表达情感,并根据上下文和人类指令提供多种风格的语音响应。无论是说唱、戏剧、机器人、搞笑还是低语,SpeechGPT都能够根据需要生成相应风格的语音。

SpeechGPT

SpeechGPT做的是兼具语音理解能力和语音生成能力的多模态模型。在模型的训练上,SpeechGPT大幅度向LLM看齐,使用了三段式的训练方法:第一阶段先做模态适应的预训练,其实就是拿ASR的语音数据来做预训练;第二阶段和第三阶段都是指令微调,不过根据指令模态的不同,细分为了跨模态的指令微调和模态链指令微调。指令微调的数据集都是来自ASR数据集。描述任务需求的指令由GPT-4生成。

在我看来,这个工作还是相当偏学术化的作品,文中有不少点都有值得商榷的地方:第一,语音的离散化仅仅用了HuBERT,模型只能看到语音的语义特征,这对模型合成语音的音质和表现力有非常大的影响,demo的语音也验证了我的判断;第二,指令微调数据集的构造上有问题。他们用的是ASR数据集,其实更好的选择应该是TTS数据集,可惜高质量的TTS数据集实在是太少了。ASR数据集中的文本和语音可能并不是严格对齐的,GPT-4产生的meta-prompt和语音本身的特征也有可能是对不上的,比如prompt要求大声朗读,但语音本身可能是特定低沉的。meta-prompt本身就无法做到足够复杂丰富,不能描述到语音的一些细粒度信息。

这一部分,最好要有像诸如SALMONN这样的多模态语音理解模型的介入,像DALLE3一样丰富指令的多样性。至于语音方面,可以考虑引入zero-shot的语音合成模型或者变声模型来做合成数据。第三,文中的训练方法也没有与人类偏好做对齐。

这项技术的核心在于将连续的语音信号离散化,使其能够与文本模态统一,从而让模型具备感知和生成语音的能力。

SpeechGPT是一种大型语言模型,具有内在的跨模态会话能力,能够按照人类指令感知和生成多模型内容。本文首先利用离散语音表示构造了一个大规模的跨模态语音指令集SpeechInstruct。此外,我们采用了一个三阶段的训练策略,包括模态适应预训练跨模态指令微调,和链的模态指令微调。实验结果表明,SpeechGPT具有良好的多模态人机交互能力,并能在一个模型中处理多种模态。

模型训练过程:

第一阶段,使用LLaMA-7 B初始化,并在LibriLight语音单元上进一步预训练。第二阶段,使用上一步预训练的模型进行初始化,并在SpeechInstruct跨模态指令集上进一步微调。这是一个强大的基础模型,可以对齐语音和文本。第三阶段,在SpeechInstruct模态链指令集上进一步进行lora-finetuning。

数据集格式:

SpeechInstruct-cross-modal:跨模态指令集,mHuBERT从大规模英语ASR数据集中标记了大约900万个单元文本数据对。数据格式:

[
    {
        "prefix": "You are an AI assistant whose name is SpeechGPT.\n- SpeechGPT is a intrinsic cross-modal conversational language model that is developed by Fudan University.  SpeechGPT can understand and communicate fluently with human through speech or text chosen by the user.\n- It can perceive cross-modal inputs and generate cross-modal outputs.\n",
        "plain_text": "[Human]: Try to speak out this sentence, please. This is input: The alchemist rode in front, with the falcon on his shoulder.<eoh> [SpeechGPT]: <sosp><661><588><604><157><596><499><596><106><596><189><63><189><665><991><162><202><393><946><327><905><907><597><660><351><557><794><788><59><754><12><977><877><333><873><835><67><940><118><686><613><169><72><644><553><535><935><101><741><384><173><894><787><380><787><196><555><721><944><250><56><812><222><915><143><390><479><330><435><647><246><650><816><325><506><686><208><613><417><755><193><411><452><111><735><6><735><63><665><644><991><535><271><333><196><918><29><202><393><946><734><390><479><330><776><167><761><907><597><660><351><557><794><75><788><15><366><896><627><168><654><659><177><183><609><710><187><493><361><470><821><59><56><198><912><742><840><431><531><76><668><576><803><791><380><660><325><801><549><366><377><164><309><584><605><193><71><39><eosp><eoa> "
    },
]

SpeechInstruction-chain-of-modality:四种输入输出格式的思想链样式指令,即Speech Instruction-Speech Response、Speech Instruction-Text Response、Text Instruction-Speech Response和Text Instruction-Text Response。

[
    {
        "prefix": "You are an AI assistant whose name is SpeechGPT.\n- SpeechGPT is a intrinsic cross-modal conversational language model that is developed by Fudan University.  SpeechGPT can understand and communicate fluently with human through speech or text chosen by the user.\n- It can perceive cross-modal inputs and generate cross-modal outputs.\n",
        "plain_text": "[Human]: <sosp><661><987><511><732><951><997><111><982><189><63><665><991><535><101><741><173><945><944><503><641><124><565><734><870><290><978><833><238><761><907><430><901><185><403><557><244><583><788><663><969><896><627><143><515><663><969><660><691><251><412><260><41><740><677><253><380><382><268><506><876><417><755><16><819><80><651><80><651><80><987><588><eosp><eoh>. [SpeechGPT]: What is a bad term for poop?; [ta] A bad term for poop is excrement. It is usually used as a polite way to refer to fecal waste.; [ua] <sosp><497><63><264><644><710><823><565><577><154><331><384><173><945><29><244><326><583><728><576><663><969><896><627><143><38><515><663><24><382><251><676><412><260><41><740><677><253><382><268><876><233><878><609><389><771><865><641><124><878><609><423><384><879><487><219><522><589><337><126><119><663><748><12><671><877><377><385><902><819><619><842><419><997><829><111><666><42><277><63><665><644><389><771><685><437><641><124><258><436><139><340><11><59><518><56><948><86><258><436><139><340><347><376><940><118><944><878><173><641><124><362><734><179><961><931><878><609><423><384><879><219><522><866><337><243><935><101><741><822><89><194><630><86><555><105><79><868><220><156><824><998><870><390><422><330><776><663><969><523><105><79><799><220><357><390><479><422><330><776><485><165><86><501><119><716><205><521><787><935><101><741><89><194><664><835><67><940><118><613><417><755><902><415><772><497><eosp><eoa>."
    },
]

Introduction

在本文中,我们提出了SpeechGPT,一个大型的语言模型,具有内在的跨模态会话能力,能够感知和生成多模型内容。我们使用自监督训练的语音模型进行语音离散化,以统一语音和文本之间的模态。然后,离散的语音token扩展到LLM的词汇表中,从而赋予模型固有的感知和生成语音的能力。

为了使模型具有处理多模态指令的能力,我们构建了第一个语音-文本跨模态指令遵循数据集SpeechInstruct。具体地,我们将语音离散化为离散单元(Hsu 等人,2021),并基于现有的ASR数据集构建跨模态单元文本对。同时,我们使用GPT-4为不同的任务构建了数百条指令,以模拟实际的用户指令,如附录B所示。此外,为了进一步增强模型的跨模态能力,我们设计了模态链指令数据,即,该模型接收语音命令,以文本形式思考该过程,然后以语音形式输出响应。

为了更好地进行跨模态迁移和有效的训练,SpeechGPT经历了三个阶段的训练过程:模态适应预训练,跨模态指令微调和模态链指令微调。第一阶段使语音理解与离散语音单元连续任务的SpeechGPT。第二阶段采用SpeechInstruct来提高模型的跨模态能力。第三阶段利用参数有效的LoRA(Hu 等人,2021年)进行微调,以进一步调整模式。

SpeechInstruct Construction:

SpeechInstruct,一个语音文本跨模态解释跟随数据集。该数据集由两部分组成,第一部分称为跨模态指令[Cross-modal Instruction],第二部分称为模态链指令[Chain-of-Modality Instruction]。

Cross-modal Instruction数据集构造:

step1 数据收集: 收集了几个大规模的英语ASR数据集来构建跨模态教学,包括Gigaspeech(Chen et  al.,2021)、Common Voice(Ardila 等人,2020)和LibriSpeech(Panayotov 等人,2015年)。我们采用mHuBERT作为语音分词器,以将语音数据离散化为离散单元,并去除相邻帧的重复单元以获得缩减的单元。最终,我们获得了900万个单元文本数据对。

step2 任务描述生成:我们生成与语音-文本数据对兼容的ASR和TTS任务描述。与自我指导方法不同(Wang 等人,2022),我们通过零zero-shot 方法生成描述。具体来说,我们直接将附录A中所示的提示输入OpenAI GPT-4以生成任务描述。我们的生成方法为每个任务生成100条指令,附录B中显示了一些示例。

step3 数据构造Instruction Formatting :对于离散单元序列 U 及其相关联的转录 T ,我们基于概率 p 来确定它将被用于构造ASR任务还是TTS任务。随后,我们从step2相应的任务描述中随机选择一个描述 D 。表示为 (D,U,T) 。在此之后,使用模板[Human]:{D}。输入:{U}<eoh>。[SpeechGPT]:{T}<eos>。. 为了支持多轮对话,组装的指令以多轮对话的形式连接,遵守模型的最大输入长度。

Chain-of-Modality Instruction数据集构造:

语音指令生成: 由于缺乏语音输入和语音输出的指令数据,我们训练了一个文本到单元【text-to-unit】生成器来将文本指令数据转换为语音指令数据。具体地,文本到单元生成器采用Transformer编码器-解码器架构。我们在跨模态教学中对LibriSpeech unit-text pairs进行了训练。 我们从moss-002-sft-data数据集中选择了37,969个响应长度小于35个单词的样本,通过文本到单元生成器将它们的指令和响应转换为单元序列。结果,我们获得了由语音指令、文本指令、文本响应和语音响应组成的37,969个四元组,表示为 (S​p​e​e​c​h​I,T​e​x​t​I,T​e​x​t​R,S​p​e​e​c​h​R) 。

使用上述四元组,我们可以为四种输入输出格式构建思维链风格的指令,即语音指令-语音响应,语音指令-文本响应,文本指令-语音响应和文本指令-文本响应。其相应模板可参见附录C

Model Structure:

模型由三个主要组件组成:离散单元提取器大语言模型单元声码器。在这种架构下,LLM可以感知多模态输入并生成多模态输出。

离散单元提取器 离散单元提取器利用隐藏单元BERT(HuBERT)模型(Hsu 等人,2021)以将连续语音信号变换成离散单元的序列。HuBERT是一种自监督模型,它通过基于应用于模型中间表示的k均值聚类来预测掩蔽音频片段的离散标签来学习。它具有1-D卷积层和Transformer编码器的组合,将语音编码为连续的中间表示,k-means模型进一步将这些表示转换为聚类索引序列。随后,去除相邻的重复索引,得到表示为 U=(u1,u2,…,uT) 、 ui∈0,1,…,K−1 、 ∀1≤i≤T 的离散单元序列,其中 K 表示簇的总数。

LLM:采用Meta AI LLaMA(Touvron 等人,2023)模型作为我们的大型语言模型。LLaMA包括嵌入层、多个Transformer块和LM头层。LLaMA中的参数总数范围从7 B到65 B。从1.0万亿个令牌的广泛训练数据集中,LLaMA在各种NLP基准测试中与更大的175 B GPT-3相比表现出了竞争力。

Unit Vocoder:训练了一个多说话人 unit  HiFi-GAN来解码语音信号, 离散表示。 HiFi-GAN架构由生成器 𝐆 和多个鉴别器 𝐃 组成。该生成器使用查找表(LUT)来嵌入离散表示,并且嵌入序列由一系列由转置卷积和具有扩张层的残差块组成的块进行上采样。 扬声器嵌入被连接到上采样序列中的每个帧。 该滤波器具有多周期鉴别器(MPD)和多尺度鉴别器(MSD)。

Training:

为了将语音离散表示纳入LLM,我们首先扩展词汇表和相应的嵌入矩阵。我们将培训过程分为三个阶段。第一阶段是对未配对语音数据进行模态自适应预训练。第二阶段是跨模态教学微调。第三阶段是模态链教学微调。

扩大词汇 给定大小为 |V| 的原始LLM词汇表 V ,为了将语音离散表示集成到LLM中,我们用大小为 |V′|=K 的单元标记 V′ 的附加集合来扩展词汇表。扩展词汇表 V′′ 是原始词汇表 V 和新词 V′ 的联合:V′′=V∪V′

我们将原始词嵌入矩阵表示为 E∈ℝ|V|×d ,其中 d 是词嵌入的维数。为了适应扩展的词汇表,我们需要创建一个随机初始化的单词嵌入矩阵 E′∈ℝ|V′′|×d 。 我们通过将 E 的值复制到 E′ 的前 |V| 行来保留原始的单词嵌入:E′[0:|V|,:]=E

Stage 1: Modality-Adaptation Pre-training

为了使LLM能够处理离散单元模态,我们利用未标记的语音语料库在下一个令牌预测任务中训练LLM。这种方法与LLM的文本预训练目标一致。 给定由语音 U1,U2,…,Um 和表示为 L1 的LLM组成的未标记语音语料库 C ,负对数似然损失可以公式化为:

其中, m 是数据集 C 中的语音的数量, nj 是语音 Uj 中的离散单元标记的数量,并且 ui,j 表示第j个语音中的第i个单元标记

Stage 2: Cross-modal Instruction Fine-Tuning 

跨模态教学微调 在这个阶段,我们利用配对数据对齐语音和文本模态。我们将SpeechInstruct中的跨模态指令与moss-002-sft数据集混合以导出混合数据集 I ,其由样本 T1,T2,…,Tx 组成。我们在 I 上对从第一阶段获得的模型 L 进行微调。

由 t1,t2,…,tnj 组成的每个样本 Tj 通过连接前缀和文本来形成。训练目标是最小化负对数似然,损失计算只考虑文本部分,忽略前缀,可以格式化为:

其中 x 是语料库 I 中的样本数, yj 是样本 Tj 中的标记总数, pj 是 Tj 的前缀部分中的标记数,并且 ti,j 表示 Tj 中的第i个单词

Stage 3: Chain-of-Modality Instruction Fine-Tuning

获得阶段2中的模型之后,我们利用参数有效的低秩自适应(LoRA)(Hu 等人,2021年),以微调它的链的模态教学SpeechInstruct。我们将LoRA权重(适配器)添加到注意力机制中,并训练新添加的LoRA参数。我们采用与阶段2相同的损失函数。

附录A:Prompts to Generate Task Description

ASR:
You are asked to come up with a set of 100 diverse task instructions about automatic speech
recognition, which is about recognizing speech.
Here are the requirements:
1. These instructions should be to instruct someone to recognize the content of the following
speech.
2. Try not to repeat the verb for each instruction to maximize diversity.
3. The language used for instruction also should be diverse. For example, you should
combine questions with imperative instructions.
4. The type of instructions should be diverse.
5. The instructions should be in English.
6. The instructions should be 1 to 2 sentences long. Either an imperative sentence or a
question is permitted.
List of 100 tasks:
TTS:
You are asked to come up with a set of 100 diverse task instructions about text to speech,
which is about recognizing speech .
Here are the requirements:
1. These instructions should be to instruct someone to recognize the content of the following
speech.
2. Try not to repeat the verb for each instruction to maximize diversity.
3. The language used for instruction also should be diverse. For example, you should
combine questions with imperative instructions.
4. The type of instructions should be diverse.
5. The instructions should be in English.
6. The instructions should be 1 to 2 sentences long. Either an imperative sentence or a
question is permitted.
List of 100 tasks:

附录B:Examples of Task Description【gpt生成的一些例子】

ASR:
Begin by converting the spoken words into written text.
Can you transcribe the speech into a written format?
Focus on translating the audible content into text.
Transcribe the speech by carefully listening to it.
Would you kindly write down the content of the speech?
Analyze the speech and create a written transcription.
Engage with the speech to produce a text-based version.
Can you document the speech in written form?
Transform the spoken words into text accurately.
How about putting the speech’s content into writing?
TTS:
Can you please read this sentence out loud?
Recite the following words as if you were speaking normally.
Project your voice to clearly articulate this statement.
Would you mind speaking these words as naturally as possible?
Whisper the given sentence softly.
Enunciate each word in this sentence with precision. How would you express this sentence in
 a conversational tone?
Could you please relay the message below verbally?
Emphasize the key points while reading the sentence.
Sing the text provided in a melodic voice.

附录C: Chain-of-Modality Instructions Templates

Speech Instruction-Speech Response:
[Human]: This is a speech instruction: {SpeechI}. And your response should be speech.
 You can do it step by step. You can first transcribe the instruction and get the text Instruction.
Then you can think about the instruction and get the text response. Last, you should speak the
 response aloud <eoh>. [SpeechGPT]: [tq] {TextI}; [ta] {TextR}; [ua] {SpeechR}<eoa>.
Speech Instruction-Text Response:
[Human]: This is a speech instruction: {SpeechI}. And your response should be text. You
 can do it step by step. You can first transcribe the instruction and get the text instruction.
Then you can think about the instruction and get the text response. <eoh>. [SpeechGPT]:
[tq] {TextI}; [ta] {TextR}<eoa>.
Text Instruction-Speech Response:
[Human]: This is a text instruction: {TextI}. And your response should be speech. You can
 do it step by step. You can think about the instruction and get the text response. Then you
should speak the response aloud <eoh>. [SpeechGPT]: [ta] {TextR}; [ua] {SpeechR}<eoa>.
Text Instruction-Text Response:
[Human]: This is a text instruction: {TextI}. And your response should be text. You can
 think about the instruction and get the text response. [SpeechGPT]: [ta] {TextR}<eoa>.

SpeechAgents:多模态多智能体系统的人机交互仿真

SpeechAgents是一个基于多模态LLM的多智能体系统,旨在模拟人类的交流。与现有的基于LLM的多Agent系统不同,SpeechAgents使用多模态LLM作为单个Agent的中央控制,并使用多模态信号作为Agent之间交换消息的媒介。 此外,我们提出了多代理调整,以提高LLM的多代理功能,而不影响一般的能力。为了加强和评估人类通信仿真的有效性,我们建立了人类通信仿真基准。实验结果表明,SpeechAgents可以模拟人类交流对话一致的内容,真实的节奏,丰富的情感和表现出良好的可扩展性,即使多达25个代理,这可以适用于任务,如戏剧创作和音频小说生成。

图3:SpeechAgents中单个代理的训练和推理过程的图示。实心箭头表示推理过程中的数据流。在一个代理的回合中,它接收包括场景、背景、角色、简档和来自语音消息流库的消息流的输入。智能体的输出包括其内部思想、生成的语音响应和相应的风格。然后将具有样式的响应写入语音消息流库。虚线箭头表示训练过程中的数据流。从人类通信模拟基准测试中的脚本解析的代理轨迹指令以图中代理输入和输出的串联的形式可视化地表示,并用于多模态LLM的多代理调整。

Hmuan-Communication Simulation Benchmark构建过程概述。我们通过创建模拟人类交流的各种场景来启动这一过程。随后,为每个场景生成包含各种角色的角色池。然后从池中选择角色,并根据所涉及的特定场景和角色生成通信脚本。最终,通过文本到语音转换来制作多模态人类沟通脚本。

SpeechGPT-Gen[SpeechGPT2]: 缩放信息链语音生成

对于上面的第一个问题,作者在其后的SpeechGPT-Gen中做了解决。解决思路的核心点就是:让模型不仅看到语音的语义token,也要看到语音的声学token。具体做法是:SpeechGPT的HuBERT特征替换成了SpeechTokenizer中的语义特征,用SpeechGPT这一LLM来自回归地建模语义特征,有了语义特征之后,再使用Flow-Matching这样的扩散模型来建模声学特征。这里选用Flow-Matching扩散模型,可能是受了SD3和Voicebox/Audiobox的影响。为了增强两阶段建模的依赖关系,作者将语义特征的先验信息注入到第二阶段扩散模型的先验分布中。可以看到,这里语音的解码其实也是一种层次化渐进式解码。

SpeechGPT 2是一种端到端的语音对话语言模型,类似于GPT-4 o。它可以感知和表达情感,并根据上下文和人类指令提供各种风格的适当语音响应,如说唱,戏剧,机器人,搞笑和耳语。为了解决冗长语音序列的问题,SpeechGPT 2采用了超低比特率语音编解码器(750 bps),该编解码器对语义和声学信息进行建模。它使用多输入多输出语言模型(MIMO-LM)。目前,SpeechGPT 2仍然是一个基于回合的对话系统。我们正在开发实时SpeechGPT 2的全双工版本,并且已经取得了一些有希望的进展。

得益于有效的语音建模,当前的语音大语言模型(SLLM)在上下文语音生成和对未知说话人的有效泛化方面表现出了卓越的能力。然而,流行的信息建模过程是由某些冗余,导致语音生成效率低下。我们提出了信息链生成(CoIG),在大规模语音生成的语义和感知信息解耦的方法。在此基础上,我们开发了SpeechGPT-Gen,这是一个在语义和感知信息建模方面具有80亿参数的SLLM。它包括一个基于LLM的自回归模型用于语义信息建模和一个采用流匹配的非自回归模型用于感知信息建模 [感知信息建模主要关注的是与感官输入(如视觉、听觉等)直接相关的信息处理,非自回归模型通常用于感知信息建模中,因为这些模型可以并行处理数据,更加适合需要实时处理或低延迟的应用场景]。此外,我们引入了新的方法,注入语义信息的先验分布,以提高流匹配的效率。 大量的实验结果表明,SpeechGPT-Gen在zero-shot文本到语音,zero-shot语音转换和语音到语音对话方面表现出色,强调了CoIG在捕捉和建模语音的语义和感知维度方面的卓越能力。

SpeechGPT-Gen基于信息链生成方法,依次进行语义建模和感知建模。SpeechTokenizer(Zhang 等人,2023 b)用于提取语义表示和感知表示。SpeechGPT-Gen由用于语义建模的基于LLM的自回归模型和用于感知建模的基于流匹配的非自回归模型组成。

Speech Tokenization:

SpeechTokenizer(Zhang 等人,2023 b)是基于残差矢量量化(RVQ)的语音标记化方法,并且跨不同RVQ层分层地解开语音信息的不同方面。具体地,第一RVQ量化器生成包含语义信息的令牌,而后续量化器补充剩余的感知信息。 SpeechTokenizer将单声道音频信号表示为 作为输入,其中 d 表示持续时间, fs⁢r 表示采样率。 SpeechTokenizer的输出包括用于对应RVQ层的 Q=8 分层RVQ令牌 (q1,…,qQ) 和 Q 码本 (C1,…,CQ) 。 qi∈ℝT 表示长度为 T 的一维序列。 RVQ令牌 qi 可以由码本 Ci∈ℝK×H 嵌入,从而产生连续矢量序列 vi∈ℝT×H ,其中 vij=Ci⁢(qij) 用于 i∈1,…,Q 、 j∈1,…,T 。 表示为 v1:8=∑i=1Qvi 的来自所有RVQ层的连续表示的总和包含语音内的所有信息。 我们利用来自第一RVQ层 q1 的标记作为包含语义信息的表示,并且利用从第二层到最后一层 v2:7=∑i=2Qvi 求和的连续向量作为包含感知信息的表示。

LLM用于语义建模:

SpeechGPT是一个大型的跨模态语言模型,可以执行跨模态指令跟随和语音到语音对话,表现出出色的语音语义建模能力。 利用HuBERT(Hsu 等人,2021)将语音离散化为单元,SpeechGPT执行模态适应预训练,跨模态指令微调和模态链指令微调。我们通过用SpeechTokenizer RVQ-1令牌 q1 替换HuBERT离散单元来使用SpeechGPT进行语音语义建模。 对于模型结构,我们采用LLaMA 2 – 7 B-Chat作为预训练的LLM。 对于训练数据,我们采用SpeechTokenizer RVQ-1令牌来表示语音,并遵循SpeechInstruct的过程和设置来构造训练数据集 D ,包括跨模态指令集和模态链指令集。我们使用Multilingual  Librispeech 、Gigaspeech(Chen 等人,2021)、Commonvoice(Ardila 等人,2020)和Librispeech(Panayotov 等人,2015年)构建跨模态指令集。 对于训练,我们跳过模态适应预训练,并使用跨模态指令集 I 对LLaMA 2 – 7 B-Chat执行跨模态指令微调。 在模态链指令微调中,我们选择全参数微调而不是模态链指令集上的LoRA微调。 这两个培训阶段的培训目标可以格式为:

感知建模的流程匹配:

给定语音 s 、语义表示 v1 、感知表示 v2:8 和由SpeechTokenizer提取的完整信息表示 v1:8=v1+v2:8 ,感知建模是指在给定提示语音 a 和语义表示 v1 的情况下预测完整表示 v1:8 。 我们提出了两种感知建模的流匹配模式:显式链和隐式链

SpeechAlign :使语音生成与人类偏好保持一致

SpeechAlign做的则是SLM与人类偏好的对齐,彻底地向LLM的训练方法看齐。该工作构建了对比gold token和合成token的encodec数据集,然后进行偏好优化来进行改进。使用的偏好优化方法包括RLHF和Chain of Hindsight。

本文首先分析编解码器语言模型中的分布差距,强调它如何导致训练阶段和推理阶段之间的差异,从而对性能产生负面影响,从而解决这一差距。然后,我们探索利用从人类反馈中学到的知识来弥合分布差距。我们介绍了 SpeechAlign,这是一种迭代式自我改进策略,可将语音语言模型与人类偏好保持一致。SpeechAlign 涉及构建一个偏好编解码器数据集,将黄金编解码器令牌与合成令牌进行对比,然后进行首选项优化以改进编解码器语言模型。这个改进周期是迭代进行的,以稳步将弱模型转换为强模型。通过主观和客观评估,我们表明 SpeechAlign 可以弥合分布差距并促进语音语言模型的持续自我改进。此外,SpeechAlign 具有强大的泛化功能,适用于较小的模型。