Moshi:一个用于实时对话的语音-文本基础模型

Alexandre Defossez alex@kyutai.org
Laurent Mazare
Manu Orsini
Am´elie Royer
Patrick Perez
Herve Jegou
Edouard Grave
Neil Zeghidour neil@kyutai.org
Kyutai
*Equal contribution

摘要

我们介绍了 Moshi,一个语音-文本基础模型和全双工对话框架。 目前的语音对话系统依赖于独立组件的流水线,包括语音活动检测、语音识别、文本对话和文本转语音。 这些框架无法模拟真实对话的体验。 首先,它们的复杂性导致每次交互之间有几秒钟的延迟。 其次,由于文本是对话的中间媒介,修改意义的非语言信息,例如情绪或非语音声音,在交互中会丢失。 最后,它们依赖于对说话人轮次的分割,这没有考虑到重叠语音、打断和插入。 Moshi 通过将语音对话视为语音到语音的生成来解决这些独立问题。 从文本语言模型骨干开始,Moshi 从神经音频编解码器的残差量化器生成语音作为符元,同时将自己的语音和用户的语音分别建模成并行流。 这使得可以删除显式的说话人轮次,并对任意对话动态进行建模。 此外,我们将先前工作的层次语义到声学符元生成扩展到首先预测与时间对齐的文本符元作为音频符元的词缀。 这种“内心独白”方法不仅显著提高了生成语音的语言质量,而且我们还说明了它如何提供流式语音识别和文本转语音。 我们最终得到的模型是第一个实时全双工语音大型语言模型,理论延迟为 160 毫秒,实践中为 200 毫秒,可在 github.com/kyutai-labs/moshi 上获取。

关键词: 语音,文本,多模态,基础,语音对话

1

 

1 概述

从 Alexa 到 Siri 和 Google Assistant,语音为早期对话系统提供了一个便捷的接口。 在这种情况下,用户说出的“唤醒词”通常会触发一个自动语音识别 (ASR) 系统,该系统将随后用户的请求转录成文字。 然后,自然语言理解 (NLU) 管道将此查询转换为结构化格式,用于通过自然语言生成 (NLG) 生成文本答案。 最终,一个文本到语音 (TTS) 系统将答案反馈给用户。 虽然此过程可以处理简短、受约束的交互(例如,触发动作或检索事实),但大型语言模型 (LLM) 的兴起 (Brown 等人,2020;Hoffmann 等人,2022;Touvron 等人,2023a) 要求对语音接口进行相应的扩展以适应多轮、开放式对话。 应对这一挑战的解决方案是用 LLM 处理 NLU 和 NLG,而 ASR 和 TTS 分别在用户和系统回合期间提供语音接口 (Llama, 2024)。 此框架支持当前一代的语音对话系统,例如 Gemini (Gemini 等人,2023) 或 ChatGPT。

然而,这些接口提供的体验与自然对话相差甚远。 首先,延迟在这些管道的众多组件之间叠加,导致典型的全局延迟为几秒钟。 这与自然对话中几百毫秒的响应时间不同。 其次,由于语言理解和生成发生在文本领域,模型会忽略任何非书面信息。 这从副语言信息(例如情绪和口音)到非语音音频(例如周围的声学事件)都有。 最后,这些模型在本质上仍然是基于轮次的,假设对话是一系列定义明确的单说话者片段。 虽然这种范式适合文本对话,但它在模拟口语对话的某些方面时却有所不足,例如打断、重叠言语——这占了口语时间的 10 到 (¸etin 和 Shriberg, 2006)——以及背景回应(即非打断插入语,例如“好的”或“我明白了”)。

在这项工作中,我们介绍了 Moshi,这是一种语音文本基础模型和实时语音对话系统,旨在解决上述局限性:延迟、文本信息瓶颈和轮次建模。 Moshi 通过一个更小的音频语言模型(Borsos 等人,2022;杨等人,2023)增强了一个文本 LLM 主干,该模型接收并预测离散的音频单元。 这通过直接在音频域中理解输入和生成输出,消除了文本的信息瓶颈,同时受益于底层文本 LLM 的知识和推理能力。 我们扩展了之前关于音频语言模型的工作,并设计了一个流式分层架构,其理论延迟为 160 毫秒——低于在 10 种语言中测量的自然对话中的平均 230 毫秒(Stivers 等人,2009)。 我们还介绍了第一个多流音频语言模型,即一个明确地将输入和输出音频流联合处理成两个自回归符元流的模型。 这完全消除了说话者轮次的的概念,从而允许在具有任意动态的自然对话(包括重叠和中断)上训练模型。 我们得到的模型是第一个全双工的——它始终在聆听并始终生成声音,无论是语音还是静音——实时对话式 LLM。 我们总结了以下贡献:

2

 

• 我们展示了 Helium,一个 70 亿参数文本 LLM,我们预训练语料为 2.1T 个公共英语数据符元。 第 3.2 节描述了模型的架构和训练,而第 4.1 节提供了有关预训练数据收集和过滤的详细信息。

• 我们训练了 Mimi,一个神经音频编解码器(Zeghidour 等人,2022;D´ efossez 等人,2023),它使用残差向量量化 (RVQ) 将音频转换为 Moshi 预测的离散符元,然后再转换回来。 音频语言模型通常将这种声学符元与来自自监督语音模型的语义符元结合起来,因为在没有文本条件的情况下,需要生成可理解的语音(Borsos 等人,2022)。 我们更进一步扩展了 Zhang 等人的方法(2024b),通过将语义信息提炼到第一级声学符元中,并引入了改进的训练技巧。 第 3.3 节描述了 Mimi 的架构和训练,而第 5.2 节详细介绍了消融研究。

• 我们提出了 Moshi,一种用于音频语言建模的新架构,它将 Helium 与一个更小的 Transformer(Vaswani 等人,2017)模型结合起来,以分层和流式的方式预测音频符元。 我们展示了这种无条件音频语言模型在生成可理解的语音方面面临着怎样的挑战,并提供了解决方案,这些方案在以流式方式生成音频的同时,超越了非流式模型的可理解性和音频质量。 我们进一步扩展了这种架构,以并行建模多个音频流,从而实现对具有任意动态的全双工对话的概念上和实际上的简单处理。 第 3.4 节描述了这种架构。

• 在第 3.4.4 节中,我们介绍了 Inner Monologue,这是一种用于音频语言模型的新训练和推理设置,它通过在音频符元之前预测时间对齐的文本符元来显著提高生成语音的事实性和语言质量。 Moshi 是一种语音到语音模型,因为它允许推理非语言信息,包括来自用户音频和 Moshi 音频的信息。 然而,这并不与 Moshi 在其语音输出中生成文本相冲突。 基于过去的观察(Borsos 等人,2022;Zhang 等人,2024b),即从语义到声学符元的粗到细生成对于生成一致的语音至关重要,我们将这种层次结构扩展到使用文本符元作为语义符元的每时间步前缀。 我们的实验表明,这不仅极大地提高了生成语音的长度和质量,而且我们还展示了如何强制在文本和音频符元之间延迟可以从 Moshi 模型中推导出流式 ASR 和流式 TTS。

• 我们沿着几个轴评估了 Moshi 的所有组件,包括文本理解、语音清晰度和一致性、音频质量和口语问答。 我们的实验结果如第 5 节所述,表明我们的模型在现有的语音文本模型中,在语音建模和口语问答方面处于最先进水平,同时兼容流式传输,并且能够建模数分钟的上下文(在我们实验中为 5 分钟)。

3

 

音频语言建模。 语音基础模型的早期发展已经改善了语音理解,涵盖了许多判别性任务,从自动语音识别 (ASR) (Baevski 等人,2020;Radford 等人,2023;Zhang 等人,2023b) 到说话人验证 (Chen 等人,2022) 和语音分类 (Yang 等人,2021)。 这一发展中的一个关键因素是自监督学习 (Hsu 等人,2021;Baevski 等人,2020;Chen 等人,2022),它允许学习通用的判别性语音表示。 由于这些语音理解模型建立在之前针对文本的掩码语言建模工作基础上 (Devlin 等人,2019),生成式文本预训练 (Radford 等人,2018) 同样启发了大量语音生成模型。 尤其是,Lakhotia 等人 (2021) 提议量化上述自监督表示。 产生的离散音频符元将语音片段表示为一系列类别变量,从而将语音生成转换为语言建模任务。 AudioLM ( Borsos 等人,2022) 进一步将这些语义标记与来自神经音频编解码器 (Zeghidour 等人,2022) 的声学标记相结合,从而可以对任意语音、录音条件和非语音声音进行建模。 这些音频语言模型重新定义了语音生成的最新技术,从文本到语音 (Wang 等人,2023;Kharitonov 等人,2023) 到语音到语音翻译 (Rubenstein 等人,2023;Reid 等人,2024) 和语音增强 (Yang 等人,2023)。 除了这些监督任务,还有一条平行的研究方向探索了训练和扩展无监督音频模型,这些模型针对自回归语音生成进行训练 (Dunbar 等人,2021;Lakhotia 等人,2021;Borsos 等人,2022)。 这些模型的能力一直在不断扩展,从在单一说话者声音中生成简短的句子 (Lakhotia 等人,2021) 到在任意声音和条件下生成跨越数十秒的有意义且一致的语音延续 (Borsos 等人,2022),这要归功于语义和声学标记的分层建模。 一个主要挑战是音频需要对长序列进行建模,最长可达几分钟,才能产生有意义且可利用的输出。 然而,音频的潜在表示通常不如文本的等效表示紧凑。 因此,来自神经音频编解码器的离散表示在自回归建模时需要在每个时间步进行多次预测 (Liu 等人,2023b) ,(Evans 等人,2024) 使用潜在扩散 (Ho 等人,2020) 于通用音频和音乐建模,以减轻对分层离散标记的需求。 然而,这些方法不能以流式方式使用,而且目前尚不清楚它们是否可以生成一致的语音。 Copet 等人 (2023) 相反地表明,通过在不同级别的标记之间引入延迟,并在其上执行并行预测,可以减少自回归步骤的数量。 受 Lee 等人 (2022) 提出的 RQ-Transformer 方法和分层 MegaByte transformer 模型 (Yu 等人,2024) 的启发,Yang 等人 (2023) 和 Zhu 等人 (2024) 利用一个较小的嵌套 Transformer 来对单个时间步的不同标记进行建模。 在这项工作中,我们扩展了这些先前的工作,通过提出一种可扩展的音频标记分层建模方法来推动自回归语音生成的极限,该方法可以在实时生成音频的同时处理几分钟的上下文。 尽管如此,虽然仅限语音的模型从原始语音 (Dunbar 等人,2021) 中学习语言结构——词汇、语法、语义——但它们通常表现出较差或不存在的知识和推理能力。 这导致了语音文本模型的开发,旨在将文本模型的知识和推理能力与音频模型的生成能力相结合。

4

 

语音文本模型。 这些模型通常从预先训练的文本语言模型开始,要么对其进行微调以预测音频 (Hassid 等人,2023),要么提出语音文本微调任务 (Rubenstein 等人,2023;Maiti 等人,2023;Nachmani 等人,2024;Nguyen 等人,2024;Mitsui 等人,2024;Zhang 等人,2024a):例如,AudioPALM (Rubenstein 等人,2023) 从预先训练的 PALM (Chowdhery 等人,2022) 模型开始,并使用语义音频标记扩展其文本词汇。 然后,模型被训练用于语音-文本任务的混合,包括 TTS、ASR 和语音到语音翻译。 VoxTLM(Maiti 等人,2023)采用类似的方法用于 TTS 和 ASR。 虽然这些模型是在监督方式下使用特定的输入和输出序列进行训练的,但 Spirit-LM(Nguyen 等人,2024)使用语音与其转录之间的时序对齐在序列内执行模态转换(从语音符元到文本符元,反之亦然)。 这使得模型能够学习语言的一致内部表示,无论它被表示为文本还是语音,如通过常识评估所衡量。 另一种方法,被 Spectron(Nachmani 等人,2024)、SpeechGPT(Zhang 等人,2023a)和 PSLM(Mitsui 等人,2024)采用,以分层方式组合语音和文本,而不是作为可互换的表示。 类似于 AudioLM(Borsos 等人,2022)如何将语音生成分解为预测语义符元,然后预测声学符元,Spectron 和 SpeechGPT 使用“模态链”,首先生成文本符元的语句,随后用作生成语音的前缀。 这允许使用底层文本 LLM 的输出引导语音生成,但是这与实时交互根本不相容,因为模型需要先以文本形式生成整个答案,然后才能开始说话。 PSLM 通过并行建模文本和语音符元来缓解这种限制。 在这项工作中,我们提出“Inner Monologue”作为主要架构和训练组件来组合对齐的文本和语音数据。 “Inner Monologue”将语音分解为文本、语义和声学符元链,并以分层方式预测这个结构化序列。 与 Spirit-LM 不同,这允许将所有语句都表示为文本和语音,而不是在模态之间切换;此外,将声学符元集成到同一个生成模型中,能够生成任意声音和条件,而不是单个说话人。 此外,第 3.4.4 节中描述的分层建模允许在不增加 Transformer(Vaswani 等人,2017)输出的序列长度的情况下分解生成任务,不像“模态链”,同时受益于使用文本作为音频符元的前缀而不是像 PSLM 一样并行生成。 此外,Inner Monologue 在每帧基础上分解语音,这意味着每个预测步骤都会输出一个语音帧。 这与 Spectron 和 SpeechGPT 不同,后者需要先生成完整的文本序列,然后才能生成音频符元,这使得 Moshi 与实时生成兼容。 此外,我们在第 3.4.4 节中展示了如何将“Inner Monologue”与标记类型之间的延迟结合起来,可以从 Moshi 中推导出流式 TTS 和 ASR 系统。 最后,虽然 Spectron、SpeechGPT 和 PSLM 将用户和系统语音以及文本符元建模成单个流,它们需要正确分割轮次,但 Moshi 受益于一种新颖的多流架构,该架构消除了说话者轮次的概念,并允许对任何类型的重叠、中断和插入进行建模。

语音对话模型。 语音对话是语音生成中较少探索的任务之一,因为它需要解决几个挑战:1) 模型应实时运行并允许全双工长时间对话——模型始终在听,并且可以在任何时候说话;2) 它应该是语音到语音,以处理副语言交流;3) 它应该展示知识和推理能力,使其能够进行有益且愉快的对话。 Spectron 得益于其底层的文本 LLM(根据口语问答衡量),但由于模态链,它与实时生成不兼容。 PSLM 提出并行生成语音和文本符元以减少这种延迟,但是它降低了答案的质量,并且模型仍然依赖于 ASR,这去除了副语言信息。 更重要的是,这些模型无法处理全双工通信,在全双工通信中,说话者轮次之间没有界限,因为任何一方的对话都可以在任何时间处于活动状态。 Wang 等人(2024)提出了对这些动态进行建模的尝试,其中 ASR 系统与文本生成器并行运行,文本生成器馈入流式 TTS。 虽然这允许对比以前方法更复杂的情况进行建模,但它仍然依赖于级联管道,并且将用户和系统的语音都建模为单个符元流,这在存在大量重叠的情况下具有挑战性。 唯一一个以前的全双工对话系统是 dGSLM(Nguyen 等人,2023),它将用户和系统语音建模为单独的音频符元流,并提出了一个 Siamese 体系结构来联合处理这两个流。 虽然 dGSLM 是全双工的,但它仍然是一个概念验证:它不以在线方式运行,它不从文本语言模型的知识中获益,并且它不建模声学信息,因为它只建模语义符元。 Moshi 共同解决了这些限制:通过分层建模语义和声学符元的两个流,Moshi 是全双工的,并且可以利用来自用户的所有信息(语言和非语言),同时实时生成语音。 由于文本预训练和 Inner Monologue,Moshi 得益于其 Helium 主干的知识。 最后,由于模型除了文本和语义符元之外还生成声学符元,因此它可以生成任意范围的情绪、声音和声学条件。 据我们所知,Moshi 是第一个成功解决上述许多语音对话挑战的音频语言模型。

5

 

3 模型

3.1 概述

Moshi 是一种多流语音到语音 Transformer 模型,由于采用了图 1 中概述的创新架构,它允许与用户进行全双工语音对话。 Moshi 基于 Helium,一个我们从头开始构建的文本 LLM(第 3.2 节),它依赖于高质量的文本数据来为模型提供强大的推理能力。 我们还提出 Inner Monologue(第 3.4.4 节),一种训练和推理程序,其中我们将文本和音频符元联合建模。 这使得模型能够充分利用文本模态所赋予的知识,同时保持一个语音到语音的系统。 为了实现实时对话,我们还从一开始就将 Moshi 设计为一个多流架构(第 3.4.3 节):该模型能够同时与用户交谈和倾听,并且不需要明确地建模说话者轮次。 此外,为了以高质量和高效的方式捕捉输入的用户音频并输出 Moshi 的声音,我们提出了 Mimi(第 3.3 节),一种神经音频编解码器,通过使用残差矢量量化和知识蒸馏将语义和声学信息组合成单个词元。 为了联合建模来自 Moshi 和用户的音频流以及 Moshi 的文本词元,我们依赖于一个与流推理兼容的 Depth Transformer(第 3.4.1 节,3.4.2 节)。

6

 

图 1:Moshi 的概述。 Moshi 是一种语音文本基础模型,它支持实时语音对话。 Moshi 架构的主要组成部分是:一个定制的文本语言模型骨干(Helium,参见第 3.2 节);一个具有残差矢量量化和从自监督语音模型中提取的语义知识的神经音频编解码器(Mimi,第 3.3 节);用户和 Moshi 语义和声学词元的流式分层生成,以及在使用 Inner Monologue 时 Moshi 的时间对齐文本词元(第 3.4 节)。

在本节中,我们将进一步详细介绍这些组件中的每一个。 然后,我们在第 4 节中描述了用于训练 Moshi 的训练数据集和不同的训练阶段。 最后,在第 5 节中,我们报告了关于 Moshi 能力的全面评估结果,包括语言和声学方面的评估结果,以及对其主要组件的消融实验,而第 6 节提供了关于我们系统安全性分析。

3.2 Helium 文本语言模型

3.2.1 架构

Helium 是一种自回归语言模型,基于 Transformer 架构(Vaswani 等人,2017)。 遵循该领域之前的研究,我们对原始架构进行了以下更改:首先,我们在模型的注意力块、前馈块和输出线性层的输入处使用 RMS 归一化(Zhang 和 Sennrich,2019)。 我们使用旋转位置嵌入(Su 等人,2024,RoPE),4,096 个符元的上下文长度和 FlashAttention(Dao 等人,2022)来进行高效训练。 最后,我们改变了前馈块的架构,并使用门控线性单元(Shazeer,2020),以 SiLU 激活函数作为门控函数(Hendrycks 和 Gimpel,2016b)。 我们的分词器基于 SentencePiece(Kudo 和 Richardson,2018)的 unigram 模型,包含 32,000 个元素,主要针对英语。 我们将所有数字拆分为单个数字,并使用字节回退以确保我们的分词器不会丢失信息。 我们使用 AdamW(Loshchilov 和 Hutter,2017)优化器训练模型,使用固定学习率,然后进行余弦学习率衰减(Loshchilov 和 Hutter,2016)。

7

表 1: 模型的超参数。 我们 70 亿参数 Helium 语言模型和 Moshi(我们的语音文本对话模型)的架构和训练的超参数。 Moshi 的训练分为四个阶段:在无监督数据上进行预训练(使用从 Helium 初始化的 Temporal Transformer);基于 diarization 的模拟多流后训练;在 Fisher 数据集(Cieri 等人,2004)上进行微调以获得其全双工功能;在从合成交互脚本构建的自定义数据集上进行指令微调。 在预训练阶段,我们使用与 Helium 相同的数据集,在整个文本批次上进行训练一半的时间,使用单独的优化器状态。

3.2.2 预训练数据过滤

训练数据是训练 LLM 的关键要素之一:我们现在介绍我们获得大型高质量文本数据集的方法。 我们从高质量的数据源开始,例如维基百科、Stack Exchange 和大量的科学文章。 由于这些数据源的数据量不足以训练 LLM,我们还依赖于从 CommonCrawl 爬取的网络数据来扩展我们的数据集。 有关数据源的更多详细信息,请参阅第 4.1 节。 网络数据需要大量处理才能获得高质量的训练集:我们执行去重、语言识别和质量过滤。 接下来,我们将更详细地描述每个操作。

8

去重。 我们从 WET 文件开始,这些文件只包含 CommonCrawl 项目提取的网页文本内容。 由于这种格式包含页面中的所有文本,它包括很多模板代码,例如导航菜单。 因此,我们管道的第一步是在行级别对每个分片(每个抓取有 100 个分片)进行去重,以去除这些模板代码。 为此,我们计算每行的 FNV- 哈希值,并使用布隆过滤器来删除重复项。 我们还训练了一个 fastText (Joulin 等人,2016)分类器来区分重复项和非重复项,以执行模糊去重:在此,我们只删除被分类为重复项的至少 3 行连续块。

语言识别。 一旦去重完成,我们就应用基于 fastText 的语言识别器来仅保留英语数据。 语言识别是在文档级别进行的,我们只保留超过一定阈值(0.85)的文档。

质量过滤。 最后一步是过滤剩余的数据,只保留高质量的网页。 为了执行此步骤,我们训练了一个 fastText 分类器,它使用来自我们高质量数据源和随机 CommonCrawl 网页的行。 我们得到一个包含 9 个类别的分类器,对应于我们的不同高质量来源,例如维基百科或维基教科书,以及 StackExchange 的子集,例如 STEM 或人文科学。 其动机是获得对保留哪些文档的更精细控制,不仅基于与高质量来源的相似性,还基于它们的领域。 此分类器在行级别应用,并通过计算每行的平均分数(按其长度加权)来获得聚合分数。 同样,我们保留对应于超过一定阈值的文档。

3.3 音频符元化

为了将波形离散化为音频符元,我们引入了 Mimi,一个作为具有离散瓶颈的自动编码器运行的神经音频编解码器 (Zeghidour 等人,2022;D´ efossez 等人,2023) (van den Oord 等人,2017)。 在文献中,遵循 Borsos 等人 (2022) 定义的术语,这些符元被称为 acoustic 符元,因为它们模拟了细致的音频细节,并且针对高质量重建进行了优化。 虽然这些 acoustic 符元为条件文本到音频模型提供了合适的目标 (例如文本到语音 (Wang 等人,2023) 或文本到音乐 (Copet 等人,2023)),但无条件语音生成需要将它们与从自监督语音模型中提取的 semantic 符元结合起来 (Baevski 等人,2020;Hsu 等人,2021;Chung 等人,2021)。 与它们的 acoustic 对应物不同, semantic 符元不允许重建高质量音频,但与语言内容高度相关。 这种与语言的相似性允许通过使用 semantic 音频符元作为预测 acoustic 符元的词缀来生成可理解且一致的语音,即使没有文本条件。 然而,这种混合符元化方法与实时生成不兼容。 semantic 符元通常不是因果的,因此只能以离线方式计算。 此外,使用单独的编码器生成 acoustic 和 semantic 符元代表着不可忽视的计算负担。 因此,借鉴先前关于 SpeechTokenizer (Zhang 等人,2024b) 的研究,Mimi 使用蒸馏将非因果的高级 semantic 信息转移到因果模型生成的符元中,从而允许语义-声学符元的流式编码和解码。

9

图 2: Mimi 架构和训练,我们的神经音频编解码器,以及其分裂残差向量量化。 在训练期间 (蓝色部分,顶部),我们将 WavLM (Chen 等人,2022) 中的非因果嵌入蒸馏到单个向量量化器中,该量化器生成 semantic 符元,并与单独的 acoustic 符元结合以进行重建。

3.3.1 架构

我们的基线架构借鉴了 SoundStream (Zeghidour 等人,2022) 和 Encodec (D´ efossez 等人,2023),它由一个 SeaNet (Tagliasacchi 等人,2020) 自动编码器和一个残差向量量化器 (Zeghidour 等人,2022) 组成。 编码器通过级联残差卷积块来将单通道波形 投影到潜在表示 ,这些卷积块交织了膨胀( van den Oord 等人, 2016)和跨步卷积,以及 ELU( Clevert 等人, 2016)非线性函数和权重归一化( Salimans 和 Kingma, 2016)。 所有卷积都是因果的,因此该自动编码器可以在流式方式下运行。 具有 4 个卷积块和相应的跨步因子 ,以及最终跨步为 2 的 1D 卷积,Mimi 的编码器将 24kHz 波形投影到 12 的潜在表示。 每秒 5 帧,维数为 对称地,解码器采用类似的结构,但使用转置卷积而不是步长卷积,将潜在表示投影回 24kHz 音频。 我们使用残差矢量量化器 (Zeghidour 等人,2022) 对潜在空间进行离散化,该量化器迭代地将矢量量化 (VQ) 应用于先前量化器的残差。 具有 个量化器,每个量化器都有一个包含 个质心的码本,RVQ 将潜在空间离散化为 作为基线,我们使用重建和对抗性损失的组合来训练此模型,遵循 Encodec( Defossez 等人, 2023)的设置。 我们将在下面详细介绍 Mimi 相对于此默认配置的主要变化。

基于 Transformer 的瓶颈。 为了提高 Mimi 将语音编码为紧凑表示并同时重建高质量音频的能力,我们在瓶颈中添加了 Transformer 模块,一个在量化之前,另一个在量化之后。 这些 Transformer 有 8 层、8 个头、RoPE 位置编码、250 帧(20 秒)的有限上下文、GELU (Hendrycks 和 Gimpel,2016a) 激活、512 的模型维度和 2048 的 MLP 维度。 为了稳定训练,我们使用 LayerScale( Touvron 等人, 2021),其对角线值的初始化为 0.01。 两个 Transformer 都使用因果掩码,这保留了整个架构与流式推理的兼容性。 两个 Transformer 都证明对感知音频质量很有用,而编码器中的 Transformer 还改善了下面描述的语义信息的提取 (见表 3 的消融研究)。

10

因果关系和流式传输。 使用上述超参数,Mimi 是因果的,可以在编码和解码时以流式方式使用。 其初始帧大小和整体步长均对应于 80 毫秒,这意味着给定 80 毫秒的第一个音频帧,Mimi 输出第一个潜在时间步,该时间步可以解码为 80 毫秒的输出音频。

优化。 与纯粹使用 Adam(Kingma 和 Ba,2015)的卷积编解码器不同,在架构中引入 Transformer 需要使用权重衰减和 AdamW(Loshchilov 和 Hutter,2019)优化器进行额外的正则化。 更准确地说,我们仅对 Transformers 的参数应用权重衰减,权重为 我们使用 的学习率,0.5 的动量衰减和 0.9 的平方梯度衰减,以及 0.99 的权重指数移动平均值。 我们使用 128 的批量大小,在 的随机窗口上进行 4M 步训练,而 Transformers 的上下文限制在 10 秒(编码器最后降采样层的 250 帧,以及解码器的对称帧)。

量化率。 我们使用 个量化器,每个量化器的码本大小为 在 12.5Hz 时,这表示 1.1kbps 的比特率。 虽然潜在维度为 512,但我们在应用 RVQ 之前将嵌入投影到 256 维,并在解码器之前投影回 512 维。 与先前的工作一致,我们使用量化器 dropout(Zeghidour 等人,2022)为编解码器提供比特率可扩展性。 此外,我们遵循 Kumar 等人(2023)的观察结果,即在训练期间以一定概率不应用量化可以提高音频质量。 更准确地说,我们只在训练期间对时间进行量化 ,并且在每个序列的基础上进行。 与 Kumar 等人(2023)不同,这意味着将未量化的嵌入传递给解码器,而不是将使用所有量化器量化的嵌入传递给解码器。 表 3 显示,这显着提高了客观质量指标,而人工评估尚无定论。 在我们的实验中,我们发现一个有些违反直觉的现象,即随着比特率的降低,这种增益变得更加显著。

仅对抗性训练。 作为基线,我们使用与 Defossez 等人 (2023) 相同的重建和对抗性损失组合来训练 Mimi,即多尺度梅尔谱图重建损失以及多尺度 STFT 判别器。 确切的参数可以在 Audiocraft 存储库中找到。 虽然以前的基于神经网络的编解码器依赖于这种重建和对抗性损失的组合,但我们尝试了纯对抗性训练,其中我们只保留特征损失和判别器损失。 我们注意到,这在 Hauret 等人 (2023) 的带宽扩展研究中已经做过尝试。 虽然去除重建损失会严重降低客观指标,但我们在开发过程中观察到,由此产生的音频听起来比根据上述指标预期的好得多。 表 4 中报告的主观评价证实了这一观察结果,并表明仅使用对抗性损失训练的音频质量显着提高。

11

3.3.2 使用分割 RVQ 学习语义-声学符元

与 SpeechTokenizer (Zhang 等人,2024b) 类似,我们从一个自监督模型 (在本例中为 WavLM (Chen 等人,2022)) 中提取语义信息到 RVQ 的第一层。 WavLM 将一个 16kHz 波形投影到以 50Hz 采样的 1024 维嵌入中,而 Mimi 将一个 24kHz 波形投影到以 12.5Hz 采样的 512 维嵌入中。 在训练期间,我们在计算 WavLM 嵌入之前将输入波形降采样到 16kHz,从而生成用于蒸馏的目标。 然后,我们应用一个线性投影,其输出维度为 1024,然后进行步长为 4、核大小为 8 的平均池化。 有趣的是,我们观察到,以非因果的方式执行这种平均池化对于性能至关重要,这与流式推理兼容,因为这些嵌入仅在训练期间使用。 然后,我们计算第一量化器输出与转换后的 WavLM 嵌入之间的余弦距离,以进行蒸馏。 表 3 显示这种蒸馏损失与针对质量的重建和对抗性损失相冲突。 事实上,虽然蒸馏显著提高了第一个量化器(用 ABX 衡量(Schatz 等人,2013 年))的语音识别能力,但也对音频质量产生了负面影响。 我们假设这是由于将语义信息蒸馏到单个 RVQ 的第一级:由于更高阶的量化器对第一个量化器的残差进行操作,因此后者需要以牺牲音频质量为代价来提高语音识别能力。 我们通过提出一个分割的 RVQ 来解决这个问题。 与其使用具有 8 个级别的单个 RVQ,我们不如将语义信息蒸馏到一个普通的 VQ 中,并并行应用一个具有 7 个级别的 RVQ。 我们将它们的输出相加,这样虽然两者都可以用于重建,但我们消除了声学信息应该保留在语义量化器残差中的约束。 图 2 说明了这种架构,表 3 表明这种解决方案总体上提供了更好的语义-声学权衡。

3.4 生成式音频建模

我们现在描述如何扩展基础 Helium 模型以支持对 Mimi 编解码器提供的音频符元进行建模。 为了实现逼真的口语对话交互,我们进一步展示了如何不仅对单个音频流进行建模,而且同时对两个音频流进行建模,一个代表用户,另一个代表系统。 最后,我们详细介绍了一个新颖的功能:Inner Monologue,它包含在系统侧对文本和音频模态的联合建模,以提高交互质量。

3.4.1 使用 RQ-Transformer 的分层自回归建模

为一个离散随机序列,基数为 ,序列长度为 为方便起见,我们也表示 ,一个确定性的初始符元值。 自回归建模包括通过估计所有步骤 的条件分布 来估计联合分布 文本语言模型,例如 GPT(Radford 等人,2019 年)或 Helium,适合这种范式。

在对口语建模时,依赖于标记化文本比音频符元产生更紧凑的表示:使用第 3.3 节中介绍的 Mimi 编解码器,具有 个码本,帧速率为 12.5hz,每秒音频将需要 100 步的序列长度才能生成。

12

图 3: RQ-Transformer 架构。 RQ-Transformer 将长度为 的扁平化序列分解为 个时间步长,用于一个大型时间 Transformer,该 Transformer 产生用于条件化较小的深度 Transformer (在 个步骤上) 的上下文嵌入。 这允许通过增加 来扩展到更长的序列 (或通过增加 来扩展到更高的深度) ,而不是使用单个模型对扁平化序列进行建模。 在此图中,我们使用 进行说明。

要对 5 分钟的音频进行建模,这将相当于 30,000 个时间步长,这代表着巨大的计算成本,并且每秒生成 100 个符元与流式推理不兼容。 相比之下,英语语音样本可以用每秒大约 3 到 4 个文本符元来表示。

我们不仅对单个序列 ( ) 感兴趣,还对多个子序列感兴趣,例如不同的音频码本,以及可选的文本流。 我们可以将这些子序列堆叠为 ,对于 同样,我们定义 ,所有子序列的确定性初始符元值。 对于每个 ,其中 -th 子序列的基数。 可以将 K 个序列扁平化为一个,从而将预测次数增加 K 倍。Lee 等人 (2022) 提议在维度 上使用较小的自回归模型,并结合时间维度上的较大模型,形成 RQ-Transformer。 后来,Yu 等人 (2024) 为字节级建模提出了类似的方法。

RQ-Transformer。 形式上,RQ-Transformer 包含两个 Transformer 模型,如图 3 所示。 它包含一个Temporal Transformer,与第 3.2 节中针对 Helium 描述的架构相同,以及一个小一些的 Depth Transformer。 我们表示 是时间 Transformer 表示的函数,Tr Depth 是深度 Transformer 表示的函数。 为简单起见,对于所有步骤 ,我们用 表示步骤 中所有子序列的联合值。 对于给定的序列步骤 ,时间 Transformer 将 映射到一个时间上下文向量

如果我们进一步考虑子序列索引 ,深度 Transformer 会将 以及 映射到 logits 估计值

我们进一步定义 ,其中 Lin 是一个专用的线性层。 我们训练 和 Lin,使得 能够很好地近似于 在所有先前步骤的子序列以及当前步骤的先前子序列上的条件分布,例如

13

 

重要的是,时间 Transformer 中的步骤数量始终等于 ,而不是 ,深度 Transformer 中的步骤数量最多为 在实践中,时间 Transformer 在每一步 作为输入接收 个学习到的嵌入表之和,这些嵌入表代表最后 的值。 给定 ,深度 Transformer 接收 与代表 的学习嵌入的总和作为输入。

如表 1 所示,用于 Moshi 的深度 Transformer 有 6 层,维度为 1024,有 16 个注意力头。 与 Lee 等人 (2022) 不同,我们对深度 Transformer 中的每个索引 的线性层、投影和全连接使用不同的参数集。 事实上,不同的子序列可能需要不同的变换。 鉴于此 Transformer 的较小尺寸,这不会对训练和推理时间产生影响,而表 6 表明这种深度参数化提高了生成的序列的质量。

3.4.2 音频建模

在 第 3.3 节 中描述的音频编解码器 Mimi 输出 个子序列,每个子序列包含 12.5 步的音频。 我们将 进行序列比对,其中 T = 12.5 · duration,以及 与 Q = 8 进行序列比对。 我们将音频子序列插入由 RQ-Transformer 建模的多序列 V 中。 请记住,第一个码本 对应于语义信息,如 第 3.3.2 节 中所述,而其他码本对应于声学特征。

声学延迟。 我们首先尝试在建模中简单地设置 但是我们发现,在语义和声学符号之间引入轻微的延迟会导致更稳定的生成。 Copet 等人 (2023) 表明,这会导致给定时间步骤的子序列之间在过去条件下的依赖关系降低,从而允许使用较弱的模型来近似联合分布 (在他们的情况下,作为条件边缘的乘积)。 Lemercier 等人(2024)进一步证明了给定步骤下子序列之间互信息的连接与生成质量之间的关系:自然地,相互依赖越复杂,需要更强大的模型来估计它们。

如第 5.3 节所示,在语义和声学特征之间引入 1 或 2 步的延迟极大地提高了生成的质量。 这使得时间更长、更大的 Transformer 能够对语义和声学特征之间的相互依赖关系进行建模。 正式地,给定延迟 ,我们有,对于所有步骤

请注意,Yang 等人(2023)和 Zhu 等人(2024)成功地使用 RQ-Transformer 对音频进行建模。 我们在此介绍在深度 Transformer 中使用每个码本参数,以及使用声学延迟。

14

图 4:Moshi 建模的联合序列表示。 每一列代表联合序列 中给定步骤的符元,该序列如方程式 6 中所述,具有声学延迟 ,即时间 Transformer 的此步骤输入。 符元从深度 Transformer 的底部到顶部进行预测。 在推理阶段,虚线下的符元(对应于 Moshi)被采样,而虚线上的符元则从用户处输入。 此设计使我们的模型能够处理重叠的语音轮次。

与 (Zhu 等人, 2024) 首先生成所有语义符元不同,我们联合生成语义符元和声学符元,这使得首次可以联合流式建模语义和声学符元。

3.4.3 多流建模

单独对音频流进行建模不足以完全建模对话。 我们的框架可以扩展到对两个说话者对话的建模:给定两个音频流 ),我们只需将声学延迟应用于两者,并将它们连接到 ,扩展公式 4。 在实践中, 对应于 Moshi, 模拟用户。

3.4.4 Inner Monologue

虽然纯粹在音频域中操作已经产生了令人信服的结果(参见表 7),但我们观察到,让 Moshi 也对自身语音的文本表示进行建模,可以提供一个脚手架,提高其生成的语言质量。 从形式上讲,我们定义一个文本流 ,它源于通过将 SentencePiece 分词器(Kudo 和 Richardson, 2018)应用于对应于 Moshi 的音频的转录(使用 Whisper ( Radford 等人, 2023)获得)得到的文本符元序列。 我们将 作为第一个子序列插入到 中,这样它就可以作为语义标记生成的词缀。 这可以被看作是对 Borsos 等人 (2022) 提出的语义到声学分层生成的扩展。 注意,我们没有使用对应于用户流的文本表示,因为实时转录此流将很困难,而且依赖于外部 ASR 系统与我们的端到端语音到语音方法相矛盾。 第 5.3 节中的消融研究表明,在为 Moshi 制定的设计选择中,Inner Monologue 对生成语音质量的影响最大。

15

对齐文本和音频符元。 为了将以 恒定帧速率运行的音频符元与文本符元相结合,我们需要将它们与该帧速率对齐。 为此,我们利用 Whisper 提供的词级时间戳。 稿本中的第 个词映射到 个文本符元 ,以及一个开始索引 ,简单定义为其开始时间戳除以 12.5 Hz 的帧速率。 我们定义了两个特殊标记:PAD 和 EPAD,它们在任何词标记中都不会出现。 我们构建 ,以便在单词开始时, 包含其文本符元,后面跟着 PAD ,直到下一个单词。 EPAD 插入到下一个词之前,以指示填充的结束。 虽然并非严格必要,但我们观察到这通过将结束一个词的决定以及应该遵循哪个词的决定分成两个步骤,为模型提供了有用的指导。

首先,序列 用 PAD 符元初始化,例如 然后,我们迭代地对其进行修改。 对于每个词 i 及其起始索引 t,我们更新 W 为

请注意,如果 ,我们将在索引 1 处插入 EPAD,并移动文本符元。 如果 EPAD 符元会覆盖先前词的文本符元,我们不会插入 EPAD 符元。 由于文本符元比相应的音频符元更紧凑,因此文本符元在 中通常没有重叠。 在英语对话语音中,我们观察到填充符元占符元的大约

推导出流式 ASR 和 TTS。 可以进一步在文本序列 ( ) 和音频符元 之间引入一些延迟。 这控制着语言模型将根据哪个模态来决定生成音频的内容。 通过将音频置于文本之前,文本的内容将由之前步骤中采样的音频决定。 特别地,通过仅采样文本符元,同时使用地面真实音频符元并丢弃模型对它们的预测,可以得到一个流式自动语音识别模型,该模型还提供了精确的词级对齐。 另一方面,通过改变文本延迟,使文本位于音频符元之前,音频的内容由文本内容决定。 再者,给定一个适当填充的文本符元序列,可以得到一个流式文本到语音模型。 我们在附录 C 中进一步描述了如何调整具有延迟文本的语言模型的推理,以获得一个零样本适当填充的文本符元序列。 第 5.7 节中的实验表明,单个延迟超参数如何允许在不改变损失、架构或训练数据的情况下,从 ASR 模型切换到 TTS 模型。

16

Moshi 的联合序列建模。 将多流和 inner monologue 结合在一起,我们得到了最终的序列集 用于建模,定义为

总共包含 个流,在实验中为 个。 图 4 中提供了摘要。

Moshi 的推理。 由 方程 6 给出的联合序列是我们模型在训练时的目标:在任何时间步 ,模型以 作为输入,并输出一个估计的概率分布 )。 在推理时,我们从 中采样,以获取对应于 Moshi 输出的子序列索引:即 对应于 Moshi 语音的文本符元, ,对应于 Moshi 的音频符元。 在应用设置中,实际上会忽略对来自用户的音频 ( )的预测,因为使用实际的用户音频代替。 但是,将用户流建模为输出允许生成模拟对话,这对于离线评估是必要的,如第 5.6 节所述。 有趣的是,用户和 Moshi 之间轮次变化没有明确的界限:Moshi 可以随时说话和聆听,如果需要,可以同时进行这两项操作。 特别是,当用户说话而 Moshi 保持沉默时,Moshi 流对应的音频标记会解码为“自然沉默”,一种接近静音的波形,而不是具有固定、明确定义的值;同时,Moshi 的文本流将填充 PAD 标记。 因此,文本流可以提供有趣的控制 Moshi 的方法,例如,强制采样 EPAD 标记将使 Moshi 立即开始说话。

4 数据集和训练

4.1 文本数据

我们的训练数据集由高质量的数据源和从 CommonCrawl 过滤的网络数据混合而成。 更具体地说,我们数据集的 来自以下精选来源:维基百科, 维基教科书,维基文库,维基新闻,StackExchange 以及科学文章的集合 pes2o。 我们没有对维基百科进行多次遍历,而是使用了来自 2017 年、2018 年、2019 年、2021 年和 2022 年的五个不同转储。 我们数据集的剩余 来自 CommonCrawl,并使用 第 3.2.2 节 中描述的管道进行了过滤。 我们使用了以下十个爬取数据:2018-30、2019-04、2019-30、2020-05、2020-34、2021-04、2021-31、2022-05、2022-33、2023-40。

17

 

4.2 音频数据

我们使用了一个包含 700 万小时音频的音频集合,我们称之为无监督音频数据集,包含大量可获取的音频内容,其中大部分包含英语语音。 我们使用 Whisper(Radford 等人,2023)用大型 v3 模型对该数据集进行转录。 我们将这些数据用于音频预训练阶段,在此阶段我们不使用第 3.4.3 节中描述的多流方法,而是使用单个音频流来代表所有说话者。 同样,第 3.4.4 节中描述的文本流代表来自所有说话者的词语。 所有音频都重新采样到 24kHz 并降混为单声道。

为了实现多流,我们需要模型同时获得听和说的能力。 为此,我们进一步利用了 Fisher 数据集 (Cieri 等人,2004)。 它包含 2000 小时的电话对话,对话者是随机配对的,并被赋予一个要讨论的主题。 Fisher 的一个特性是,每段对话都被记录在单独的声道上,这允许为 Moshi 提供地面真值分离流。 原始音频以 8kHz 采样,我们使用 AudioSR (Liu 等人,2023a) 将其上采样到 24kHz。

最后,我们获取了 170 小时的自然和脚本对话,对话者之间有多对,每个说话者都用单独的声道录制,以便提供一个小数据集,用于微调模型以提高质量,超过仅使用 Fisher 时获得的质量。 我们将此数据集称为监督多流数据集。 我们没有直接在这个数据集上训练 Moshi,而是用它来训练一个逼真的多流 TTS 模型,并在真实对话转录本上微调 Helium,如第 4.3 节和第 4.4 节所述。

对于 Fisher 和最后一个数据集,我们随机抽取一个说话者作为主要说话者 (即,Moshi 说话),并将另一个说话者放在第二个音频流上。 对于 Fisher,文本流只包含主要说话者的转录。 为了获得可靠的时间戳,尽管每个流中都有很长的静音,我们使用 whisper-timestamped 包 (Louradour,2023) 以及中等 Whisper 模型获得的转录。

4.3 语音-文本指令数据

早期使用基于文本的指令数据集 (如 Open Hermes (Teknium,2023)) 的实验证明不适合用于语音对话系统的指令微调。 特别是,数据格式通常无法通过 TTS 正确渲染 (例如,URL),而且问题和回答的格式也不符合自然的口语流 (例如,项目符号、长枚举)。 相反,我们利用 Helium,它在 Open Hermes 和真实对话的转录本上进行了微调,以生成基于语音的 AI 模型和用户之间逼真的交互。 然后,我们将它们与我们在附录 C 中描述的多流流式 TTS 合成,从而产生了超过 20,000 小时的合成语音数据。 为了让 Moshi 拥有自己的独特声音,我们还将 TTS 引擎与一位演员的声音进行条件化,该演员录制了涵盖 70 多种说话风格的独白,如表 19 所示。 第 6.3 节报告的关于语音一致性的实验表明,在指令调整期间简单地为 Moshi 使用一致的声音足以几乎确保它不会使用其他声音,而无需在推理期间进行进一步的控制。 相反,第二个音频流(用户)的声音是针对每个示例随机采样的,这使得它对不同的说话条件和口音更加稳健。

为了生成转录,我们使用不同的提示,旨在捕捉用户和 Moshi 之间不同类型的交互。 首先,我们通过从一些维基百科段落或 StackExchange 帖子(我们称之为上下文)开始,生成关于一般知识的对话。 这确保了 Moshi 的对话涵盖了广泛的主题,例如历史、烹饪建议或流行文化。

18

 

更准确地说,使用给定的上下文,我们使用以下提示获得潜在讨论的摘要:

{{ context }}

Based on information from the previous paragraph, write the summary of a conversation about  {{ title }}  between Blake and Moshi. The summary must be 2 sentences long, and start with "They" or "The speakers".

其中, 指的是维基百科或 StackExchange 中的段落, 是相应的标题。 然后,我们使用以下提示生成完整的转录文本:

{{ context }}

Write the transcript of a conversation between Blake and Moshi. {{ summary }}  Moshi is knowledgeable about the topic. Use some backchanneling. Use short turns.

同样,为了让 Moshi 了解自身和 Kyutai 实验室,我们生成描述两者 的段落,并将其用作附加上下文。

其次,我们创建包含关于 Moshi 声音的指令的互动,例如,其他说话者要求 Moshi 用愤怒的语气或像海盗一样说话。 我们的第一个策略是生成单回合互动,其中模型被指示以特定语气讲述关于某个实体的句子、独白或诗歌,该实体属于“体育”或“动物”等高级类别。 另一个说话者要求的声音和实体是随机抽取的,因此完全无关。 我们的第二个策略是生成角色扮演场景,对应于不同的情绪或说话风格,并使用以下提示:

Write a list of 10 situations about a  {{ voice }} {{ character }} . Each situation must start with "a  {{ voice }} {{ character }}  who" and must be at most 8 words long.

语音形容词的例子包括“快乐”或“惊讶”,而角色的例子包括“侦探”或“超级英雄”。 然后,我们使用以下提示生成交互:

Write a dialogue between Blake and Moshi,  {{ situation }} . Use a lot of backchanneling.
19

 

为了使 Moshi 对发音错误的单词具有鲁棒性,我们还会生成包含用户问题中的拼写错误的指令,然后让 Moshi 请用户重复或澄清问题。 我们还会生成包含错误或误导性事实的问题(例如“埃菲尔铁塔在北京吗?”),以训练模型回答“否”并纠正用户。 否则,生成的对话绝大多数只包含用户提出的问题,Moshi 应该对此做出肯定的回答。 我们生成了基本数学、语法或琐事单轮问题和答案,因为我们注意到 Moshi 最初在简单的实际任务(如加法)上表现不佳。 最后,我们生成安全对话,其中用户提出不道德或 NSFW 问题,而 Moshi 拒绝回答这些请求。

4.4 训练阶段和超参数

氦预训练。 表 1 提供了训练阶段和超参数的概述。 对于每个阶段,我们使用 AdamW(Loshchilov 和 Hutter,2019),权重衰减为 0.1,动量衰减为 0.9,平方梯度平均值衰减为 0.95。 所有模型都在 H100 GPU 上训练,使用 FSDP 和激活检查点。 纯文本语言模型 Helium 经过 500k 步训练,批次大小为 4.2M 个符元,使用余弦学习率调度,从 开始,并进行线性预热。

Moshi 预训练。 然后,我们使用 Helium 初始化 Moshi 中的时间 Transformer,而第 3.4.1 节中描述的深度 Transformer 则随机初始化。 我们首先使用第 4.2 节中介绍的无监督音频数据集进行训练,使用单一音频流,批次大小覆盖 16 小时的音频,每个批次项包含 5 分钟的序列。 我们以 的概率对相应的文本符元进行掩码。 我们将文本和音频符元之间的延迟在 -0.6 秒到 秒之间随机化。 为了防止灾难性遗忘,我们还用 Helium 使用的相同数据集中的纯文本数据批次进行一半时间的训练。 总共,我们进行了 100 万次训练步骤,对 Temporal Transformer 使用从 开始的余弦学习率,对 Depth Transformer 使用 ,也进行线性预热。 为了确保来自纯文本批次的更新与来自音频数据集的更新保持平衡,我们使用两个独立的优化器状态。 此外,在处理来自音频批次的文本流时,我们将文本嵌入和文本线性层的学习率乘以 0.75。 最后,由于填充符元在音频批次中占主导地位,我们在交叉熵损失中将其权重降低了 50%。

Moshi 后训练。 从上一阶段获得的模型开始,我们对其进行训练以使其获得多流能力。 首先,我们使用 PyAnnote (Bredin, 2023) 对来自无监督音频数据集的音频进行分段。 我们随机抽取一个说话者,它将充当主要说话者,并根据分段在波形上推导出一个二元掩码,当说话者处于活动状态时值为 1,否则为 0。 该掩码为我们提供了两种波形:一种包含说话者,另一种包含残差(可能是多个说话者),它们分别被编码,然后用作第 3.4.3 节中描述的两个输入音频流。 文本流仅包含来自选定的主要说话者的文本符元,文本和音频符元之间的延迟固定为 0。 我们进行 100k 步训练,批次大小为 urs 的音频,对 Temporal Transformer 使用固定的 学习率,对 Depth Transformer 使用 5 · 。 类似于预训练阶段,我们有 10% 的时间对完整的仅文本批次进行采样。

20

 

Moshi 微调。 之前描述的模拟多流提供了一个很好的预训练任务,但远远不足以捕捉自然对话:例如,它不包含重叠,非活动说话者的流完全静音。 然后,我们使用 Fisher 数据集 (Cieri 等人,2004) 让模型学习真实的多分支交互。 我们随机抽取两个说话者中的一个作为第一个(也是主要)说话者。 我们进行 10k 批次训练,批次大小为 40 分钟的音频,对主/Depth Transformer 使用 的学习率。 我们不再对完整的文本批次进行采样。

最后,我们将第一个说话人流的说话人身份设置为 Moshi,这是一个有用的对话助手,并进行最后阶段的指令微调。 我们使用 第 4.3 节 中描述的合成指令数据集,批次大小为 2.7 小时的音频,进行 30k 步训练,对两个 Transformer 使用 的学习率。

在此阶段,我们对用户的流进行数据增强,以使 Moshi 能够应对各种情况。 也就是说,我们对用户流应用了 -24dB 到 dB 之间的随机增益, 的时间。 时间,我们还从深度噪声抑制挑战(Dubey 等人,2023 年)中添加噪音提取,并将其连接起来以覆盖每个示例的整个持续时间。 噪声被放大,以达到相对于原始源的 -30dB 到 dB 之间的目标音量。 每次我们需要采样新的噪声时,我们交替使用一个静音部分,其持续时间随机,最多 30 秒的静音,概率为 ,这样模型就可以处理音频条件从有噪声到静音以及相反的情况。 我们通过将 Moshi 流的缩小副本添加到用户流中来模拟 Moshi 到用户麦克风的回声,缩小比例由在 中均匀采样的因子决定,延迟在 [100ms, 500ms] 之间均匀采样。 最后,我们对用户的流应用类似混响的增强,该流可能已被回声增强,增强方法由 Defossez 等人(2020 年)介绍。 回声和混响以 的概率一起应用。

TTS 训练。 我们还训练了一个流式多流文本到语音模型,使用第 3.4.4 节中描述的方法。 音频预训练阶段与 Moshi 共享,而后期训练则使用与文本相比延迟 2 秒的音频流完成。 该模型在监督的多流数据集上进行了微调,该数据集包含两个说话人之间交互的高质量录音。 它用于生成第 4.3 节中描述的合成微调指令数据集。 请注意,Moshi 本身并没有在监督的多流数据集上进行训练。 更多细节见附录 C.

训练损失. Moshi 被训练成对联合序列进行建模,如等式 6 所示。 给定地面真实离散符元 和来自等式 2 的估计 logits ,我们使用以下损失,其中 CE 是交叉熵,

因此,我们对文本符元( =1)和组合的音频符元给予同等重要性。 被设置为 100,用于语义符元,而对于声学符元则设置为 1.

21

表 2:文本语言模型评估. 在标准基准上的性能,用于评估大型语言模型,包括闭卷问答,推理和多项选择问答考试。 我们以粗体显示在少于 2.5T 个符元上训练的最佳模型。

5 评估

5.1 文本语言建模

指标. 我们在以下标准基准上评估 Helium(仅在文本数据上训练):AI2 推理挑战 (Clark 等人,2018,ARC),开放式问答 (Mihaylov 等人,2018,OBQA),HellaSwag (Zellers 等人,2019,HS),WinoGrande (Sakaguchi 等人,2021,WG),物理交互问答 (Bisk 等人,2020,PIQA),社会交互问答 (Sap 等人,2019),TriviaQA (Joshi 等人,2017,TQA),自然问题 (Kwiatkowski 等人,2019,NQ) 以及大规模多任务语言理解基准 (Hendrycks 等人,2020,MMLU)。 这些基准涵盖了各种各样的任务,包括常识推理,闭卷问答或来自高中和大学科目的多项选择问答。 我们遵循之前工作(如 GPT-3 或 Llama)的评估协议:我们对 TriviaQA、NQ 和 MMLU 进行 5-shot 评估,对其他数据集进行 0-shot 评估。 在 TriviaQA 上,我们报告了未过滤和维基百科拆分的性能。

基线。 作为基线,我们考虑了现有的参数量约为 70 亿的大型语言模型,这些模型使用与 Helium 几乎相同的计算量进行训练。 更具体地说,我们包括在少于 2.5 万亿个符元上训练的模型(与用于训练 Helium 的 2.1 万亿个符元相比),即 MPT(Team,2023)、Falcon(Almazrouei 等人,2023)、Llama 2(Touvron 等人,2023b)和 OLMo(Groeneveld 等人,2024)。 我们还包括 Mistral 和 Gemma,这两个流行的开源权重模型,它们使用比 Helium 大得多的计算量进行训练。

结果。 我们在表 2 中报告了结果,我们观察到在大多数基准测试中,Helium 的性能与使用类似训练计算量的模型相当或优于它们。 即使与 Mistral 和 Gemma 相比,它们使用高达 3 倍的计算量进行训练,Helium 在一些基准测试中(如 ARC、Open-Book QA 或 Natural Questions)获得了有竞争力的结果。 这验证了我们预训练文本数据的质量。

22

 

5.2 音频符元化

指标. 然后,我们评估了我们的神经编解码器 Mimi 的语义和声学性能。 首先,我们评估它生成的语义符元是否提供了适合语言建模的目标。 为此,我们计算了一个基于三音节的 ABX(Schatz 等人,2013)错误率,该错误率通过比较同一三音节(例如“beg”)的两个不同实例之间的距离和一个最小不同的负三音节(例如“bag”)之间的距离来表征表示空间的语音辨别能力。 更准确地说,我们计算了一个“说话人内部” ABX,其中三个实例由同一个说话人发出,并在 Librispeech(Panayotov 等人,2015)dev-clean 上报告了使用 Librilight(Kahn 等人,2020)库的 12 个默认参数的错误率。 结果表明,该分数是预测下游音频语言模型生成连贯语音能力的强有力指标(Lakhotia 等人,2021)。 由于我们只对表征语义符元感兴趣,因此我们在仅使用语义 VQ 量化后的潜在空间中计算距离(即在与声学符元相加之前)。 其次,我们评估了重建音频的声学质量。 作为客观的自动指标,我们依赖于 VisQOL(Hines 等人,2015)——一种声学相似性的全参考模型——和 MOSNet(Lo 等人,2019)——一种无参考的音频质量模型。 鉴于音频质量自动评估的局限性,我们还使用 MUSHRA 协议进行人工评估。 我们依赖于 20 位听众的判断,每位听众对 30 个时长为 10 秒的样本进行评分。 表 3 报告了使用客观指标的消融研究,而表 4 提供了与之前工作的比较,包括客观和主观评估。

基线。 我们将其与 RVQGAN(Kumar 等人,2024)、SemantiCodec(Liu 等人,2024)和 SpeechTokenizer(Zhang 等人,2024b)进行比较。 RVQGAN 是一种纯粹的声学标记器,因为它不编码语义信息。 因此,我们只根据音频质量对其进行评估。 RVQGAN 以 75Hz 的频率生成标记,因此我们只保留 RVQ 的前两个级别以获得 1.5kbps 的比特率,更接近于 Mimi 的比特率。 另一方面,SpeechTokenizer 依赖于蒸馏将语义信息编码到其第一个标记中,这样我们就可以评估其语义和声学特性。 我们保留其前 3 个 RVQ 级别以获得 1.5kbps 的比特率。 类似地,SemantiCodec 也编码语义和声学信息,以便可以沿着这两个轴进行评估。

结果 - 语义标记。 表 3 显示,Mimi 的语义标记的语音辨别能力,如 ABX 所测量的,在没有蒸馏的情况下很差,与之前工作的声学标记相当(Borsos 等人,2022):这意味着这些语义标记不适合捕捉来自语音的语言内容。 相反,将 WavLM 蒸馏到语义标记中显着提高了它们的语音辨别能力,特别是在 Mimi 的编码器中使用 Transformer 时。 这可以通过将基于大型 Transformer 的编码器蒸馏成纯粹的卷积编码器具有挑战性,而增加编码器的容量和感受野则有所帮助来解释。 然而,我们观察到声学损失和语义蒸馏之间存在冲突,因为提高 ABX 意味着降低重建质量(如 MUSHRA 所测)。 使用第 3.3.2 节中描述的拆分 RVQ 提高了语义特性和音频质量之间的权衡,将 MUSHRA 从 57.8 提高到 64.0,同时适度降低了 ABX 从

23

表 3:Mimi 编解码器的超参数消融研究。 我们通过报告音韵 ABX 磁盘边缘识别任务的错误率来评估语义建模。 为了评估重建质量,我们计算 VisQOL 和 MOSNet,并使用 MUSHRA 协议收集人工判断。 “量化率” 指的是仅在训练期间 的时间内对潜在空间应用量化(独立于量化器丢弃),如第 3.3 节所述。

表 4:音频质量评估。 对基线神经音频编解码器 - RVQGAN(Kumar 等人,2024 年)、SemantiCodec(Liu 等人,2024 年)和 SpeechTokenizer(Zhang 等人,2024b 年)以及 Mimi 最重要的变体进行客观和主观(MUSHRA)音频质量评估。 为了与 SemantiCodec 和 SpeechTokenizer 进行公平比较,我们还在 MUSHRA 研究中加入了我们编解码器的降采样版本。 是音频采样率, 是编解码器帧速率。 两种 Mimi 编解码器都使用蒸馏进行训练,要么与 Encodec 相同的重建和对抗损失组合(参见第 3.3 节),要么仅使用对抗损失。

结果 - 声学符元。 表 3 还显示在解码器中添加 Transformer 时,MUSHRA 显着提高。 同样,使用 的量化率显着提高了 VisQOL。 然而,量化率并没有提高感知质量。 更一般地说,我们观察到 VisQOL 和 MOSNet 之间存在较差的相关性。 具体来说,表 4 显示,仅用对抗性损失训练 Mimi 导致非常低的 VisQOL 为 1.84,这并不能解释高感知音频质量。 因此,我们依赖于 MUSHRA,其中评估者被要求判断重建音频与其真实锚点之间的相似性,评分范围为 0 到 100。 这项人工评估表明,与仅使用对抗性损失相比,使用 Encodec 中使用的混合损失函数,MUSHRA 得分从 58.8 提高到了 81.0,这表明有了显著改善。 此外,Mimi 在较低的比特率和语义信息建模的情况下,显著优于 RVQGAN(Kumar 等人,2023)。 Mimi 还比 SemantiCodec(Liu 等人,2024)提供更高的重建质量,同时以低 4 倍的帧速率运行。 这种特性对于实现表 5 中的 RQ-Transformer 的消融研究至关重要。 所有模型都使用 Helium 初始化,并在音频上进行预训练。 当不使用 RQ-Transformer 时,我们使用独立的分类头预测 8 级符元,遵循 Copet 等人(2023)的方法。 请注意,困惑度仅在具有给定延迟的模型之间可比,因为对于更高符元,延迟越长,分类任务就越容易。

24

表 6:关于延迟模式、语义符元权重和内心独白消融研究。 所有模型都使用 Helium 初始化,并在音频上进行预训练,并使用 RQ-Transformer。 我们改变语义符元的权重,同时将其他符元(包括使用内心独白时的文本符元)的权重保持为 1。 由于不同的延迟模式在困惑度方面无法比较,我们从有效集上的 3 秒提示生成延续,使用 Whisper(Radford 等人,2023)将它们转换为转录本,并报告它们与 LiteLlama-460M-1T 以及它们的长度(以字符为单位)的负对数似然作为语言质量的代理。

Moshi 的低延迟,因为使用 Moshi 生成一个时间音频符元帧需要完整地遍历时间 Transformer。 最后,RVQGAN 和 SemantiCodec 都是非因果的,而 Mimi 是完全因果的,因此与流式推理和实时对话建模兼容。

讨论。 Mimi 在整体上提供了高重建质量,同时编码语义信息,完全因果,并且以低帧率和比特率运行。 因此,Mimi 被证明是训练实时音频语言模型的理想音频标记器。 我们研究的一个附带发现是,客观和主观音频质量指标之间存在令人担忧的缺乏相关性。 特别是,虽然我们发现 VisQOL 在修改生成器架构时可以为感知质量提供可靠的代理,但更改训练目标(例如,删除重建损失)会将分数移动到与人类感知完全不相关的方向。 这一观察结果突出了设计感知质量可靠客观代理的开放挑战。

25

 

5.3 生成模型的消融研究

指标. 我们进行消融研究以评估使用 RQ-Transformer 的影响,以及比较各种标记级别延迟模式和权重。 所有模型都使用 Helium 初始化时间 Transformer,并在音频数据上预训练。 在比较具有相同延迟模式且没有内部独白(Inner Monologue)的模型时,我们依赖于困惑度,该困惑度是语义和声学标记的平均值。 但是,不同延迟模型之间的困惑度不可比较,因为它们没有对相同的条件分布进行建模。 为了比较各种延迟模式,我们通过用 Whisper (Radford 等人,2023) 转录生成内容(以 3 秒的提示为条件),并使用外部文本语言模型对生成的转录内容进行评分,来衡量 Moshi 生成清晰、一致语音的能力。 我们依赖于一个轻量级文本模型——LiteLlama-460M-1T ——因为它更适合在训练过程中进行连续评估。 我们还报告了转录内容的长度(以字符为单位),因为我们发现它是一个强大的模型质量预测器(弱模型通常会崩溃成静默)。

结果 - RQ-Transformer。 表 5 报告了关于使用 RQ-Transformer 的消融研究结果。 我们首先复制 Copet 等人(2023)的设置,延迟模式为 ,这意味着每个级别的 RVQ 符元是在前一个级别之后生成一个时间步长。 在这种情况下,我们发现使用 RQ-Transformer 并非必要,因为它只在困惑度方面带来了微不足道的改进。 然而,这种延迟模式会导致 8 个时间步的理论延迟,相当于 640 毫秒,这种延迟与实时对话模型的要求不符。 因此,我们转向 模式,延迟时间缩短至 240 毫秒。 在这种情况下,使用 RQ-Transformer 对 RVQ 符元进行建模,与使用单独的分类头相比,显著提高了困惑度。 因此,RQ-Transformer 成为在严格的延迟约束下生成 RVQ 符元的生成模型的关键组成部分。

结果 - 额外的消融研究。 表 6 报告了在额外的延迟模式、语义符元损失的权重以及我们提出的内心独白程序方面的额外消融研究,所有这些都使用了 RQ-Transformer。 首先,我们比较了三种与实时对话兼容的延迟配置。 模式代表 Mimi 符元在 时能达到的 80 毫秒的最小延迟。 允许延迟一个时间步,额外增加 80 毫秒的延迟,可以显著提高生成的语音质量,而 240 毫秒的延迟会带来进一步的适度改进。 在早期的实验中,我们还观察到,尽管每个级别在最终的清晰度和音频质量方面都比下一个级别更重要,但每个 RVQ 级别的单独损失相互冲突。 因此,我们对架构和训练过程进行了两个更改。 我们首先将预测语义符元的损失权重提高到 100,同时将所有其他音频符元级别的权重保持为 1。 这进一步提高了语音清晰度。 我们进一步通过使用深度参数化来减少 RVQ 层之间的竞争,如 第 3.4.1 节所述,这样每个 RVQ 层都由深度 Transformer 中它自己的权重集预测,而不是在各个层之间共享权重。 最后,对生成语音的质量和长度的最显著改进来自于启用内部独白。

26

表 7: 音频和文本语言建模的性能。 我们报告了基于负对数似然评分的准确率,该评分按序列长度归一化。 MMLU 在 5-shot 设置中进行评估。 沿用 Nguyen 等人(2024)的术语, 代表不支持的模式,而 - 代表未报告的数字。

讨论。 除了架构和延迟模式的选择之外,这些消融实验表明,即使在音频到音频设置中,将文本符元作为音频符元的前缀对内在独白建模是有多么有用。 鉴于深度参数化和语义符元权重为 100 的积极影响,这两个因素都用于我们后续的所有实验以及我们的最终训练过程。 此外,正如 表 1 中所述,我们通过以 2 的声学延迟对 Moshi 进行预训练,并以 1 的声学延迟对其进行微调,最终确定了 160 毫秒的理论延迟。

5.4 音频语言建模

指标. 我们首先衡量 Moshi 在针对大规模音频数据上的下一个符元预测进行训练时对语音序列建模的能力。 为此,我们依赖于“无文本 NLP” ( Lakhotia 等人, 2021 ) 指标,这些指标通过比较作为音频符元表示的正负语音示例的可能性来评估音频语言模型的语言知识。 特别地,sWUGGY 通过比较现有单词和无效变体的可能性来评估模型从语音中学习词汇表的能力 ( 例如,“氧化”和“酸化” ),而 sBLIMP 评估句法对比。 Hassid 等人 ( 2023 ) 提出的口语故事完形填空指标进一步通过比较常识性五句故事来评估语义对比,其中最后一句要么与上下文一致,要么不一致。 鉴于音频领域中此任务的难度,Hassid 等人(2023)也提出了 Spoken Topic-StoryCloze,这是一个变体,其中负面延续在不相关的句子中随机采样(而不是微妙的不连贯),从而导致更高的分数。 对于所有这些指标,我们使用按序列长度归一化的负对数似然对序列进行评分。 由于我们的模型在每个时间步长生成多个符元,因此我们使用训练期间使用的权重将每个时间步长的所有符元加起来,即语义符元为 100,声学符元为 1。 我们不会在这些分数中包含来自内心独白的文本符元,因为这些指标旨在比较未转录的音频序列,并且应该仅对音频符元进行计算。 同样,在评估指令调优后的多流模型时,我们只对与用户流相对应的符元进行评分,因为它不包含文本符元。 最后,我们还在 MMLU(Hendrycks 等人,2020)上报告了 Spirit-LM 和 Moshi 的文本理解评估(没有音频符元),作为衡量音频训练对原始检查点的文本知识影响程度的一种方式。

27

基线。 我们将三种设置下的基线与音频语言建模文献中的基线进行比较。 第一个类别包括从随机初始化开始的仅音频模型,包括 GSLM(Lakhotia 等人,2021),AudioLM(Borsos 等人,2022)和 TWIST-1.3B(Hassid 等人,2023)。 在这种情况下,我们报告了随机初始化并仅在音频数据上进行预训练,且没有内心独白的单流 Moshi 的指标。 第二个类别包括从预训练的文本 LM 开始,然后仅在音频上进行训练的模型。 这包括 TWIST-13B 以及 VoxtLM 的仅音频版本(Maiti 等人,2023,表 3 的第一行)和 Spirit-LM 的仅音频版本(在(Nguyen 等人,2024,表 5)中报告为“仅语音”)。 相应的 Moshi 模型类似于上面提到的模型(仅音频数据,没有内心独白),但从预训练的 Helium 检查点开始。 最后一个类别由实际的多模态模型组成,这些模型在语音和文本数据上联合训练。 在这种情况下,我们报告了 Moshi 的三种配置的结果。 首先,我们报告了 Moshi 在单流数据上预训练的结果。 然后,我们报告了在使用来自配音演员的真实录音对 Moshi 的声音进行合成数据创建进行多流后训练和微调后的最终模型的结果。 最后一个模型与上一个模型相同,除了它使用合成语音来模拟 Moshi。 我们提醒读者,即使这些模型是用内心独白训练的,它们也是在没有内心独白的情况下进行评估的,以提供与基准的公平比较。

结果。 表格 7 报告了音频语言建模的结果。 在“仅音频 - 冷启动”设置中,Moshi 已经提供了一个强大的基准,特别是它在 sTopic-StoryCloze 中大大改进了以前的工作。 当用 Helium 检查点初始化并在仅音频数据上训练时,Moshi 在大多数指标上优于此类别中的先前工作。 最后,虽然多模态训练提高了从语音中的常识推理(如 sStoryCloze 性能所示),但我们观察到与仅在音频数据上训练的模型相比,在词汇和句法判断(sWUGGY 和 sBLIMP)上存在混合效应。 特别是,虽然单流预训练适度降低了 sWUGGY 和 sBLIMP,但指令微调严重影响了 sWUGGY,这意味着经过指令训练的模型更难解决词汇判断。 我们假设这是由于对 Moshi 进行微调,使用不同质量的数据并为用户流模拟噪声和混响条件(用于对表格 7 中所有音频指标的语音对进行评分),这使得精细词汇判断更难解决。 最后,Moshi 在 MMLU 上得分比 Spirit-LM 高 12 分,因此证明了更高的常识知识和文本理解能力。 我们还强调,Moshi 是表格 7 中唯一将语义和声学标记集成到单个生成模型中的模型,与 AudioLM 使用三个独立阶段不同,VoxTLM、TWIST 和 Spirit-LM 仅对语义标记进行建模。表格 8: 口语问答的评估。 口语问答(0shot)在 Web Questions(Berant 等人,2013)、LlaMA-Questions(Nachmani 等人,2024)和 Trivia QA(Joshi 等人,2017)基准上,使用 TTS 引擎合成。 对于前两个,我们使用(Nachmani 等人,2024)中报告的数字。 对于 LlaMA-Questions,我们使用(Nachmani 等人,2024)提供的音频。 对于 Web Questions 和 Trivia QA,我们合成我们自己的,保留所有问题。 对于 Moshi,我们只在指令微调期间预先添加一个随机的初始片段。 我们还提供了 Helium 纯文本模型的性能作为基准。

28

并依赖于外部声码器。 因此,Moshi 是此比较中唯一一个在语音和文本方面都表现出强大的语言建模能力的模型,同时能够以任何任意语音和条件建模语音。

讨论。 虽然“无文本 NLP”基准测试有助于开发第一个音频语言模型,但我们观察到它们在开发像 Moshi 这样的对话模型方面并没有始终如一地提供良好的指导。 特别是,我们发现常识指标与词汇/句法判断之间的缺乏相关性是经常发生的,并且可以很容易地用我们在训练中使用的声学条件的多样性来解释。 此外,我们没有观察到模型在微调时其词汇多样性或可理解性下降,这与 sWUGGY 的下降相矛盾。 这就是为什么我们还在下一节中评估口语问答,作为探测模型的常识、知识和词汇能力的一种方法。

5.5 口语问答

指标. 我们评估最终的多流 Moshi 模型的口语问答能力。 我们依赖于 Spoken Web Questions 和 Llama Questions,它们都是由 Nachmani 等人提出的 (2024)。 我们还合成了一个 TriviaQA 的音频版本作为另一个基准。 在评估 Moshi 时,我们将问题的音频符元插入用户流中,以模拟用户交互。

基线。 我们将 Moshi 与 Spectron 和 Nachmani 等人 (2024) 使用的基线进行比较,所有这些基线都在 第 5.4 节 中介绍,除了 SpeechGPT (Zhang 等人,2024a)。

29

 

为了衡量内心独白对口语流畅度的影响,我们将这些基线与使用和不使用内心独白训练的 Moshi 进行比较。 由于 GSLM、AudioLM 和 TWIST 仅为音频,因此不使用内心独白的 Moshi 提供了公平的比较。 另一方面,Spectron 和 SpeechGPT 依赖于模态链——它们首先以文本形式生成答案,然后以语音形式生成答案——因此我们将它们与使用内心独白的 Moshi 进行比较。 此外,为了量化由于在音频数据上训练而导致的知识的最终下降,我们还将 Helium 与每个口语数据集的文本对应物进行比较。

结果。 表 8 报告了三个基准测试的准确率。 虽然仅限音频的 Moshi 在其类别中显著优于基线,但最引人注目的结果是内心独白对 Moshi 性能的影响,其准确率在所有基准测试中几乎翻了三倍。 这是非凡的,因为内心独白只略微增加了推理成本(每个多流时间步需要生成 17 个 符元 ,而不是没有内心独白的 16 个)。 我们再次强调,在这项比较中的所有模型中,Moshi 不仅提供最佳的口语问答性能,而且还是唯一一个联合建模语义和声学 符元 的模型,因此它可以在多种情况下处理任意声音之间的交互。 此外,虽然 Moshi 显著优于 SpeechGPT 和 Spectron,但它是唯一一个与流式推理兼容的模型,因为模态链需要在生成语音之前生成完整的文本答案,而内心独白以流式方式生成两者。

讨论。 尽管 Moshi 表现出色,但我们观察到其性能弱于其原始的 Helium 检查点,这与 表 7 中报告的 MMLU 从 Helium 的 54.3 降至 49.7 相一致。 虽然在 Web Questions 和 Llama Questions 上的适度差异可以用在音频数据上进行训练来解释,因此减少了用于文本知识的参数数量,但在 Trivia QA 上的巨大差异促使我们更彻底地检查错误模式。 我们特别发现,多句问题(例如,“《怪兽的恐怖》是早期一部畅销小说的标题,这部小说启发了 70 年代中期票房最高的电影之一。 它最终以什么名字让阅读和电影观众感到害怕?”)或具有特定句法结构的问题(例如,“在人体上,瘢痕疙瘩是一种什么样的东西?”)对 Moshi 来说尤其具有挑战性,因为它是在口语风格的对话中微调的,这些对话没有显示出这种模式。 因此,我们假设在微调期间涵盖更多句法场景可以缩小这种差距。

5.6 生成的对话的质量和统计数据

指标. 除了单轮问答之外,我们通过使用外部语言模型对生成的对话进行评分来评估其语言质量,同时还关注交替轮流指标。 我们遵循 Nguyen 等人 (2023) 的方法。 交替轮流指标定义如下:交替暂停单元 (IPU) 是连续的语音片段,这些片段被两侧至少 0.2 秒的静默间隔开。 暂停是指相同说话者 IPU 之间的静默间隔。 间隙是指不同说话者 IPU 之间的静默间隔。 重叠是指同时出现两个说话者的 IPU 的时间段。 遵循 Nguyen 等人 (2023),语义评估使用开源 DialoGPT 模型 Zhang 等人 (2019),我们

30

表 9:生成的对话的语言质量和交替轮流统计数据。 当我们训练我们的多流模型以生成对话的两侧时,我们可以生成对话,而无需与真实用户交互。 这使得评估 Moshi 学习自然对话动态的能力。

通过使用 DialoGPT 预期的 <|endoftext|> 符元分离每个说话者,计算转录对话的困惑度。 我们从 Fisher 数据集中选择 1000 个随机的 10 秒提示,并使用 Moshi 生成延续。 对于每个提示,生成 32 个延续,我们提供 3 种不同温度的结果,因为它会显著影响结果。

基线。 我们将其与 dGSLM(Nguyen 等人,2023)进行比较,因为它也是一个全双工生成模型,在 Fisher 数据集上训练。 Nguyen 等人(2023)使用了 50 个提示,每个提示有 50 个延续,并报告了他们对话模型以及级联顶线模型(ASR + LM TTS)的结果。

结果。 表 9 显示 Moshi 在语言质量方面与级联模型一样好,尽管它是一个音频到音频模型。 两者的困惑度都优于真实情况,这是因为这些模型是在更接近 DialoGPT 训练数据的数据上训练的,而不是 Fisher 数据集。 这是对(Nguyen 等人,2023)的非级联模型的重大改进,该模型无法在此场景中生成连贯的语音。

5.7 流式 ASR 和 TTS

指标. 第 3.4.4 节和附录 C 描述了内心独白如何通过简单地改变它在文本和音频标记之间使用的延迟来提供流式 TTS 或流式 ASR 系统。 特别是,我们通过将音频标记延迟 2 秒来训练流式 TTS 模型,为文本标记提供一些前瞻性,并在推断时强制使用文本标记。 同样,我们通过将文本标记延迟 2 秒来训练流式 ASR 模型,允许模型在生成文本标记之前监听音频内容。 在这种情况下,在推断时,我们强制使用音频标记。 我们以 0.6 的温度执行 TTS,同时使用贪婪解码进行 ASR,并在 LibriSpeech(Panayotov 等人,2015)测试清洁中评估单词错误率 (WER)。 对于 TTS,我们首先使用在 LibriSpeech 960h 上微调的 HuBERT-Large(Hsu 等人,2021) 转录生成的音频,并且只考虑 4 到 10 秒之间的序列,这使得我们可以与 Vall-E(Wang 等人,2023)等基线进行比较。 我们强调,在训练我们的 ASR 和 TTS 系统时,没有看到任何 LibriSpeech 数据。

31

 

结果。 我们的流式 TTS 模型在 LibriSpeech test-clean 上获得了 4.7% 的 WER,这超过了 Vall-E 的 WER,但比 NaturalSpeech 3(Ju 等人,2024)的 差。 然而,Moshi 只需要 2 秒的预读时间,而 Vall-E 和 NaturalSpeech 3 需要访问整个序列。 我们的 ASR 系统的 WER 为 5.7%,而一个流式 FastConformer(Noroozi 等人,2024)在类似的前瞻情况下获得了 请注意,我们的 ASR 系统还提供了转录本与音频的对齐信息,精度为 80 毫秒(时间 Transformer 的帧率)。

讨论。 这些有限的实验并非旨在与最先进的系统(特别是 ASR 系统)竞争,而是旨在说明 Inner Monologue 如何灵活地将多个任务纳入同一个框架。 我们还强调,LibriSpeech 测试集-干净子集的标准评估并不能提供一个测试平台来展示我们 TTS 系统的强大功能,特别是它在多流建模中对两个说话人的建模能力,以及生成 5 分钟持续且富有表现力的自然对话的能力(而 Vall-E 只评估了 4 到 10 秒的朗读语音片段)。 我们将对流式 TTS 的全面评估留待将来进行。

5.8 压缩 Moshi 及其对语音质量的影响

随着大多数现代 LLM 建立在数十亿个参数之上,模型大小已成为实际应用的瓶颈,例如在资源受限的设备(例如,配备用户级 GPU 的笔记本电脑)上运行或模型部署(例如,在在线 Web 演示中为许多用户提供服务)。 为了解决这个问题,训练后量化 (PTQ) 是一种广泛使用的效率技术,用于压缩模型权重和激活值,但缺点是可能会降低性能。 最近的研究表明,LLM 通常可以使用整数量化成功地量化到 8 位,有时甚至可以使用更先进的技术来处理异常值权重,以量化到更低的位宽(Dettmers 和 Zettlemoyer,2023;Dettmers 等人,2022;Frantar 等人,2023;Tseng 等人,2024)。 然而,关于量化语音模型的文献远少于 LLM 的文献。 因此,在本节中,我们将研究量化 Moshi 如何影响其性能,包括语言学方面,特别是声学方面,因为我们强调了模型量化加剧的某些音频退化。

量化格式。 为了量化 Moshi,我们遵循 PTQ 文献中的常见设计选择。 在以下所有结果中,我们确定了以下设置:(i)激活存储在 bfloat16 精度(BF16)中,并使用对称量化(也称为 AbsMax)在每个线性层的输入处动态量化为 8 位;(ii)模型权重使用非对称量化(也称为 MinMax)针对不同的位宽和块大小进行量化。 这包括时间 Transformer 和深度 Transformer 的权重。 事实上,我们发现深度 Transformer 对量化具有相当的鲁棒性,因为仅将其权重保持在高精度不会显著改善音频质量。 只有初始嵌入层(文本和音频)、RMSNorms 和 Mimi 编解码器未被量化。 最后,请注意,虽然权重范围设置也是常见的做法(Nagel 等人,2021),但我们没有使用 MSE 微调获得的量化比例,因为我们发现它对生成样本的质量影响很小。

32

结果 - 语言评估。 为了评估量化如何影响模型的推理能力,我们评估了量化模型在 MMLU 基准测试中的性能,该基准测试用于在文本数据上训练的基础 Helium 模型作为 Moshi 的基础(表 10),以及用于 Moshi 本身(表 11)。 通常,Helium 比最终训练的 Moshi 对量化更鲁棒。 值得注意的是,假设量化块大小为 32,将 Helium 权重量化为 4 位将产生一个缩小 3.43 倍的模型,该模型仍然在浮点基线 MMLU 的 2 个点范围内。 这种特定的量化格式也几乎与 llama.cpp 的 Q4 0 相同,因此可以轻松地部署用于高效推理。

相反,对 Moshi 使用相同的量化方案会导致更大幅度的性能损失,从 MMLU 的 5 个点到 10 个点不等。 在在线演示中,我们将权重保持在 8 位格式,因为这会导致模型大小大约是浮点基线的两倍,但性能仅下降 2 个点。

表 10:模型压缩对 Helium 的语言影响,由 MMLU 衡量。 ‘WXA8’ 表示权重量化为 ‘X’ 位,激活量化为 8 位,使用整数标量 PTQ 的模型。 括号中的模型大小以 GygaBytes 为单位,针对 32 的量化块大小,并考虑模型权重和存储在 float16 中的量化参数。 如果量化块的粒度足够精细,那么一个 4 位模型与浮点基线的 MMLU 结果相差不到 2 个点。

33

图 5: 模型压缩对 Moshi 的声学影响。 对不同比特宽度压缩的模型生成的样本进行 MOSNet 评估。 我们评估了 5 秒的非重叠窗口内的 MOSNet 分数,并报告了每个模型 500 个样本上的这些分数的分布。

结果 - 音频质量。 为了评估量化模型生成的样本的音频质量,我们使用 Lo 等人(2019)提出的 MOSNet 度量,该度量在 speechmetrics 中实现。 更具体地说,我们从非量化模型生成一个短提示(64 个符元),然后从每个量化模型生成完成,温度为 ,序列长度为 1024 个符元。 我们重复此过程 500 次,并报告图 5 中非重叠窗口的 MOSNet 分数分布。 虽然 MOSNet 分数在不同样本之间表现出较大差异,但将模型权重量化为 4 位后,音频质量总体上没有明显下降。 然而,对于较低的比特宽度,我们从定性上观察到,MOSNet 分数对一些由积极量化引起的更严重的音频降级缺乏敏感性:例如,它无法区分纯粹的音频伪影(例如,噪声语音)和语音模式中的伪影(例如,模型的重复性增加)。 这与我们在 5.2 节中观察到的客观和主观音频质量度量之间缺乏一致性相一致,此外,MOSNet 是为一种截然不同的基准而设计的,即模拟人类对转换语音的评估评级,因此它对这种伪影不太敏感并不令人惊讶。 相反,为了衡量音频样本中这种降级是否存在,我们首先观察到,某些音频伪影可以从生成的文本和音频符元的熵频谱中识别出来:图 6 中说明了一些示例,我们将在附录 D 中更详细地介绍伪影类型以及我们如何测量它们。

遵循这一见解,我们测量了与之前 MOSNet 分析中使用的相同生成的音频样本上不同音频伪影的存在或不存在。 我们在表 12 中报告了结果,以及附录 D 中图 11 中更详细的每个时间步分析。 在 4 位比特宽度下,我们再次观察到音频降级很小。 降低到 3 位格式,音频降级更加明显,并且倾向于随着生成时间步的推移变得更加频繁,尽管更细粒度的量化格式通常对这些伪影更健壮。 然而,这两种量化格式都显示

34

图 6:模型压缩导致的音频失真。 模型量化导致的典型音频失真熵谱示例。 对于每个时间步,我们分别计算文本和音频码本符元的过去 128 个符元的熵。 然后,我们测量不同失真在 64 个符元的不重叠窗口上的存在或不存在,如附录 D 所述。

表 12:模型压缩导致的音频失真分布。 如附录 D 所述,文本和语音生成的符元的熵谱中测量的音频失真百分比。 这些结果是在 500 个由不同版本的相同量化 Moshi 生成的样本中平均得到的,并且跨越 16 个时间步,每个时间步包含 64 个符元。 为了更好地可读性,表格中省略了 的值。

当权重被积极量化到 2 位时,音频质量会显著下降,我们也从定性上观察到这一点。

讨论。 与 Moshi 的输出音频质量相比,Moshi 的语言能力对模型权重和激活的量化更敏感。 更具体地说,即使量化整个模型,包括深度 Transformer,音频质量仍然接近浮点基线,精度降至 4 位。 相比之下,当使用仅后训练量化将模型权重量化到 6 位以下时,MMLU 性能会显著下降。 遵循最近的量化技术(Tseng 等人,2024),我们预计使用量化感知微调而不是 PTQ 会在更低的位宽下获得更好的性能。 但是,由于 Moshi 的训练流程来自第 4 节,涉及多个阶段和训练数据集,这将需要对设计量化训练阶段和校准数据集进行更深入的研究,以保留量化后损失的所有 Moshi 功能。

35

 

6 安全性

除了开发 Moshi 之外,我们还探索了与 AI 生成内容安全性相关的不同方向。 在本节中,我们专门考虑了有关 Moshi 生成的内容的几个问题,每个问题都在专门的子部分中得到解决:

  1. 我们的模型在生成有毒内容方面的表现如何?

  2. 如何避免模型从训练集中重复输出音频内容?

  3. 我们如何确保模型使用我们打算赋予 Moshi 的声音?

  4. 如何识别给定内容是否由 Moshi 生成?

6.1 毒性分析

在过去的几年中,科学界致力于解决文本生成模型的偏见和毒性问题。 相反,音频安全的发展远不如文本安全。 将音频和文本模型进行一对一的比较并不容易,因为它们在使用方式上有所不同,并且非语言信号(讽刺、语调等)传达了多种含义。 尽管存在这些局限性,为了便于将 Moshi 与文本生成模型进行比较,在本分析中,我们将毒性分析限制在模型生成的文本上。 我们采用了 ALERT 基准 (Tedeschi 等人,2024),它在多个类别(仇恨、自残、武器、犯罪、性、物质)下评估安全性。 附录 D 中的表 18 报告了我们对此基准的详细毒性分析。 Moshi 和流行的纯文本模型的汇总得分如下:

通过此分析,我们发现 Moshi 在排名方面处于此表的中间位置。 考虑到这些模型得益于大量的私有标注、红队攻击和反馈循环,行业模型表现最佳,这是预料之中的。

6.2 重复分析

模型生成在训练时见过的内容的问题,我们称之为“重复”,与过拟合密切相关:模型在训练期间看到某个序列或子序列的次数越多,它在生成过程中生成该确切序列的可能性就越大。

36

表 13:不同模型无条件生成的训练数据重复。 我们衡量每个模型在不同温度值下生成训练数据中最频繁的重复音频片段的次数。 通过数据集去重,我们没有观察到任何完全重新生成(超过 )最频繁的片段,即使我们用该音频片段的前 3 秒提示模型。

生成过程。 请注意,对于语音模型,不仅可以重复文本,还可以重复语音音调、语调,以及可能存在于训练时的背景旋律。 因此,重要的是要减轻与重复相关的潜在知识产权问题,例如复制受版权保护的内容或在未经许可的情况下使用某人的声音生成音频。

评估协议。 对于每个模型,我们测量了生成(在 100,000 次中)中复制我们在整个训练数据集中检测到的最频繁音频片段的比例。 为此,我们首先开发了一个匹配系统来检测最频繁的音频片段,参见附录 B。 我们选择最频繁的片段,该片段足够长(16 秒)并且易于从文本和音频中检测。 我们测量了与该最频繁片段完全匹配的生成的比例。 对于匹配,我们最初使用音频和文本匹配,但观察到基于文本的匹配在初始匹配步骤中具有更高的召回率。 我们手动验证所有生成,以过滤掉不是完全匹配的异常值。

无条件和提示生成:我们首先测量无条件生成发生的情况,以评估模型在没有提示引导的情况下是否倾向于生成特定序列。 作为补充,我们用最频繁的音频片段的前 3 秒对模型进行提示,并测量延续与该训练集音频相同的次数。 表 13 报告了这些重复结果。

37

结果和微调的影响。 我们观察到,在原始数据集上训练的预训练模型通常会生成训练集中频繁出现的序列。 采样温度对重复率有重要影响:通常用于生成的值(0.6-1.0)更容易出现重复。 在 1000 次生成中,为对话微调的模型不会生成最频繁的训练序列。 作为免责声明,我们指出微调可能被覆盖,因此本身可能不足以避免重复。

与文本模型(Carlini 等人,2022)发生的情况类似,重复受到模型使用给定序列进行训练的次数的显著影响。 因此,我们评估了对训练数据集进行去重的影响,方法是识别所有频繁出现的音频片段,并在训练时将其过滤掉。 在表 13 中,我们观察到,即使没有任何微调步骤,此预处理步骤也使最频繁序列的重复次数降至零。

6.3 系统语音一致性

对于语音到语音模型来说,一个潜在的风险是未经授权的语音生成。 该模型应该使用其目标语音,而不是潜在地模仿用户的语音。 为了评估 Moshi 在多大程度上采用用户的语音而不是目标语音,我们使用以下协议:

• 生成 100 小时 Moshi 和第二个合成说话者之间的对话。

• 在每个片段上运行一个说话人验证模型(WavLM (Chen 等人, 2022) 大模型)以提取说话人嵌入。


• 计算每个主要说话人片段的嵌入与 (i) 主要说话人的第一个片段和 (ii) 生成的说话人的第一个片段之间的余弦相似度。


• 注意:我们排除了所有开始时间早于 15 秒的片段,以避免将主要说话人的第一个说话回合计算在内,因为它充当参考。

在生成的的数据集中,有 10 249 个情况 (98.7%) 主要说话人的声音更接近主要说话人的参考片段,而 133 个情况 (1.3%) 更接近其他说话人的参考片段。 我们也对说话人一致性如何随时间推移而变化感兴趣。 遵循 Borsos 等人 (2023) 的做法,我们计算了与上述相同的比率,但针对从特定时间开始的片段组,以衡量随时间推移的漂移。 表 14 显示,说话人一致性随着时间的推移保持稳定,这意味着我们没有观察到随着对话进行的漂移。 这表明在指令调整期间为系统使用一致的声音的简单选择足以在推断时提供鲁棒性。

6.4 Moshi 生成的内容识别:水印

为了确定给定的音频是否是由 Moshi 生成的,我们研究了两种互补的解决方案:索引和水印。 第一种,即音频索引,仅适用于我们能够访问生成内容的机器的情况,

38

表 14:随时间推移的说话人一致性。 我们衡量了在计算从参考片段更远的片段的说话人嵌入时,Moshi 片段的说话人嵌入比用户更接近其参考片段的频率。

就像 Moshi 演示中的情况一样。 我们在 附录 B 中描述了我们的音频匹配系统。 在本小节中,我们更具体地讨论水印,其目标是在生成的音频中添加不易察觉的标记。

基于信号的水印评估。 我们研究了现有的音频水印方法是否可以作为重新识别由 Moshi 生成的内容的一种方式。 为此,我们分析了 Audioseal 方法(San Roman 等人,2024b)在我们环境中的鲁棒性。 它可以作为开源库使用。 为了进行评估,我们将音频信号重采样到 16kHz,以便采样率与 Audioseal 指令中推荐的采样率相匹配。 我们在以下设置中测量平均标记检测分数:

• 无水印:我们测量没有添加标记时的检测分数。

• 水印无攻击:未修改带水印的音频信号;

• 粉色噪声:我们在带水印的音频中添加少量粉色噪声( );

• RVQGAN:我们使用最新的最先进的自编码器(Kumar 等人,2023)压缩和解压缩音频信号。
我们使用公开可用的预训练 16Khz 模型 ,它与第 5.2 节中用作基线的 24kHz 模型不同。

• Mimi 自动编码器:我们使用自己的分词器来压缩和解压缩信号。
此操作使用 24kHz 音频执行,因此涉及两个重采样阶段(从 16kHz 到 24kHz,然后再回到 16kHz)。

我们在表 15 中报告了结果。 我们观察到,当音频保持不变时,标记会产生很高的检测率。 使用强烈的粉红噪声,需要相对较长的序列才能获得较高的检测分数。 但是,标记对于强压缩并不鲁棒:我们考虑的两个自动编码器都是低比特率,因此会丢弃与信号重建无关的所有内容。 因此,我们的 Mimi 编解码器将标记移除到一个水平,使加水印的音频与未加水印的音频无法区分,使得这种基于信号的水印在这种情况下毫无用处。

基于生成式的水印技术在音频领域的探索。 鉴于最近最先进的基于信号的音频水印技术对简单的非对抗性自动编码方法不鲁棒,我们研究了对生成过程本身进行水印的可能性。 该解决方案最近在文本生成领域被提出,尤其是在 Aaronson 和 Kirchner ( 2023) 以及 Kirchenbauer 等人 ( 2023) 的工作中。 这两种方法的工作原理相似:在采样时,它们会对驱动生成的概率进行偏差

39

表 15: Audioseal (San Roman 等人,2024b) 对 Moshi 生成的语音进行水印的评估。 每个检测分数都是对 1000 次生成的平均值。
表 16: 符号的幂等性。 将波形解码并重新编码回符号后,量化索引保持不变的概率,具体取决于残余量化器级别。 我们考虑两种可选的音频后处理攻击:音频偏移的时间偏移最大为采样周期的二分之一( =40ms)以及使用 RVQGAN 重新编码。 所有结果都是对 1000 个生成的 1 分钟序列的平均值。

过程。 它们在修改概率的方式上有所不同,但在两种情况下,采样都是由一个哈希函数参数化的,该哈希函数最好依赖于局部上下文。 这些解决方案由 Fernandez 等人 ( 2023) 进行了改进,他们提出了一种更好的标记检测器,特别是通过解决重复模式问题。

我们已经研究了如何将这些离散水印方法应用于我们的音频生成管道。 为此,我们需要将音频信号编码回符号,以确定标记是否存在。 一个问题是编解码器不是幂等的:如果我们从符号生成波形,然后将其重新编码回符号,重新生成的符号很可能与高概率生成的符号不同,即使音频没有受到任何噪声添加。 我们在表 16 中量化了这个问题。 语义符元在一定程度上是稳健的,而其他量化指标则随着对先前量化器级别的依赖而变得越来越不稳健。 一个关键问题是,符元无法抵御中等程度的时移。 对于 Mimi 编解码器来说尤其如此,它特意针对感知目标进行了优化,而不是针对保真度重建标准。

40

关于生成式音频水印的讨论。 幂等性的缺乏对上述基于采样的水印方法来说是个问题,因为它会影响检测器在测量采样偏差时的可靠性。 值得注意的是,为了使这些方法正常工作,用于为哈希键提供上下文的 n 元组在几个连续符元期间必须足够稳定。 缩短上下文长度可以提高稳定性,但会大大增加生成退化音频序列的可能性,类似于 (Holtzman 等人,2019) 观察到的退化问题。

虽然我们认为这种采用基于文本的水印的尝试是一个负面结果,但在此我们将讨论几种通过重新编码来规避上述符元稳定性问题的潜在方法:

• 仅标记 RQ 的第一级可以提高稳定性。 在我们的初步实验中,使用这些指标作为哈希函数中的上下文,并限制对先前时间戳的依赖,可以显著提高稳定性(虽然还不够)。

• 可以通过在离散潜在空间中添加一个特定损失来改进幂等性,从而使音频符元通过自动编码变得稳定。


• 潜在地,这种自动编码可以学习对信号变换具有弹性,类似于基于神经网络学习图像水印时提出的方法 (Zhu, 2018; Fernandez 等人,2022)。
鉴于我们的分析,增加对中等程度的时移的容忍度尤其重要。

• 可以标记文本而不是音频。
一个缺点是,文本是添加标记的容量较低的通道,对于简短的对话来说是不够的。 另一个问题是检测标记需要可靠的转录。

最后但并非最不重要的一点是,需要进行一些探索以确保在开源模型时,移除水印过程并非易事。 例如,与稳定扩散模型相关联的实现中唯一需要移除水印的操作就是注释一行代码。 在这个方向上,一个有希望的工作是 Sander 等人 (2024) 的研究,他们表明有可能检测到模型是否已在水印文本上训练过。 San Roman 等人 (2024a) 刚刚分享了一种利用这种观察结果的方法:水印是通过训练数据隐式添加的,遵循 Sablayrolles 等人 (2020) 的“放射性数据”精神。

7 结论

在这项工作中,我们介绍了 Moshi,第一个实时、全双工的语音对话系统。 Moshi 的第一个组件是 Helium,一个 7B 参数文本 LLM,它与以类似计算预算训练的开放权重模型具有竞争力。 为了将音频编码为适合语言建模的离散单元,我们引入了 Mimi,一个语义-声学神经音频编解码器,它在低比特率下提供最先进的音频质量,同时以与实时生成兼容的低帧速率运行。 然后,我们介绍了一种新的、层次化的多流架构,它支持以语音到语音的方式生成任意对话。 此外,我们表明,通过内心独白,一种新的方法可以生成文本符元作为音频符元的词缀,同时仍然与流式推理兼容,可以大幅提高语音到语音的生成。 我们的实验表明,Moshi 展示了最先进的语音问答和对话建模,同时通过不生成有毒内容和保持其语音一致性,展示了令人满意的安全级别。 总之,我们介绍了一套完整的模型和配方,从文本 LLM 到神经音频编解码器和生成式音频模型,我们将其组合成一个实时语音对话系统,理论延迟为 160 毫秒,能够在 5 分钟内遵循复杂的多次对话。 我们发布了 Mimi 和 Moshi,以促进此类应用的开发。 此外,我们展示了如何通过改变文本和音频符元之间的延迟,我们的内心独白方法可以设计流式 TTS 和流式 ASR。 我们相信,内心独白和多流建模将对语音到语音和音频到音频,尤其是对话建模之外产生积极影响。

41

 

致谢与资金披露

该项目由 Iliad Group、CMA CGM Group 和 Schmidt Sciences 资助。 我们感谢 Xavier Niel、Rodolphe Saad´ e、Eric Schmidt、Aude Durand、S´ everine Gr´ egoire 和 Nicolas Granatino 的支持;以及 Kyutai 的 Sarah Hˆ ote 和 Guillaume Rouzaud 的帮助。 我们也感谢 Alice,这位努力为 Moshi 在线演示配音的配音演员,Elie Raffier,他为该演示构建了用户界面,以及 Hugging Face 为推理计算捐赠。 音频训练数据集是在 Noatune Studios 和 Landospeech 的帮助下构建的。 模型训练是在 Scaleway 进行的。

参考文献

Scott Aaronson 和 Hendrik Kirchner. 水印 GPT 输出,2023 年。 网址 https: //www.scottaaronson.com/talks/watermark.ppt. 39

 

42

43

44

45

46

47

48

49

50

51

52

53

 

附录 A. Mimi 编解码器上的额外消融

表 17:Mimi 编解码器超参数的消融研究。 我们通过报告音韵 ABX 磁盘边缘识别任务的错误率来评估语义建模。 为了评估重建质量,我们计算 VisQOL 和 MOSNet。 “量化率”是指仅在训练期间的 时间内对潜在空间应用量化(独立于量化器丢弃),如第 3.3 节所述。

附录 B. 音频匹配和去重

我们开发了一个音频匹配系统,其目标有两个:

  1. 源内容去重。 删除频繁的重复项,以避免过拟合和数据集过度表示的音频内容的重复,如第 6.2 节所评估。

  2. 索引解决方案。 通过在生成时收集样本签名,我们可以通过直接检索来查找某些内容是否是由我们的在线演示生成的。

我们的音频匹配解决方案的灵感来自 Wang ( 2003) 的工作,因为它在效率和有效性之间取得了良好的平衡。 此方法是一个检索系统:给定一个查询,它会检测预索引数据集中的类似音频。 在我们的案例中,签名设计有利于去重用例,这需要更高效:正式地说,我们需要将数据集中的每个音频与整个数据集进行比较,这会带来效率问题。 下面描述签名提取。

星座图。 生成签名第一步涉及计算一组称为 星座图 的关键点。 我们的程序灵感来自 Wang ( 2003) 并在 图 7 中进行了说明。 首先,(1) 我们从音频信号计算梅尔谱图,其中时间以 40Hz 的频率离散化,频率范围离散化为 64 个 bin。 然后我们应用三个滤波器来选择时间频率位置:(2) 能量滤波器确保我们只选择足够稳健的位置;(3) 时间和 (4) 频率滤波器确保我们选择相对于时间和频率的最大值。 这些过滤器的组合是 (5) 一个星座,我们从中提取哈希值。

54

图 7:梅尔频谱关键点提取。 将三个过滤器应用于音频梅尔频谱,以提取关键点星座,并在其上计算哈希签名。

在关键点提取过程结束时,星座图 由一个 元组列表组成,形式为 ,其中每个选定的时间戳 都与一个梅尔谱离散频率级别 相关联。

哈希编码。 我们从星座图中提取哈希签名,如下所示。 对于每个关键点 ,如果存在,我们选择:

• 一个前向关键点 ,它是最接近 的时间,使得 ,其中 是我们从中选择关键点的时窗。 请注意,对于给定的 ,相应的频率 由滤波器的设计而唯一。

• 一个后向关键点 ,它由时间上最接近 的关键点确定,使得 ,其中 是该过程选择关键点的时窗。

只有在前向关键点和后向关键点都存在的情况下,我们才提取签名。 在这种情况下,签名由元组 定义,我们将其与绝对时间戳 t 关联。 在我们的案例中,我们设置 m = 4 和 M = 20。 因此,签名的最大时间跨度为 ,即约 3.2 秒。 正式地,散列键可以取 个不同的值。 在实践中,哈希值的分布是倾斜的,一些签名不太可能出现。

成对匹配和一对多比较。 通过签名提取,我们可以通过比较它们的签名集来比较两个音频,这相当于计算哈希键的交集。 当想要将查询音频与包含多个音频的数据集进行比较时,使用倒排文件或哈希表进行比较更高效。 在这种情况下,索引结构将返回匹配签名的列表以及每个音频的匹配时间戳。 与 Wang (2003) 类似,我们只保留由于简单的 Hough 1D 时间投票方案而时间上一致的匹配项。 可选地,我们在匹配签名时,将时间戳 上的容忍度纳入 这种容差会增加复杂度,因此我们在数据集去重的情况下不使用它。

55

去重:签名融合集。 对于我们的去重策略,我们首先交叉匹配数据集中的所有音频片段,并提取出现频率足够高的匹配片段(通常为 个匹配)。 由于它们的签名是冗余的,我们删除所有在相同相对时间戳处出现的重复签名,以生成单个重复签名集。 在训练时,为了确定音频片段是否为需要过滤掉的频繁重复片段,我们只需将其签名集与重复签名集进行比较。 换句话说,我们只需在推测的训练片段和合成的重复签名文件之间执行简单的音频到音频匹配。 只有当得分低于预定义的匹配阈值时,我们才会使用该片段进行训练。

附录 C. 延迟文本 LM 作为零样本流式 ASR 和 TTS

如第 3.4.4 节所述,Moshi 模型对音频标记进行建模,并使用特殊填充标记对齐音频帧率上的文本流,如图 4 所示。 我们可以通过在音频和文本标记之间引入延迟来将此方法用于 ASR 和 TTS。 在这两种情况下,模型都以完全流式模式运行,具有固定的延迟(此处为 2 秒)。

自动语音识别 (ASR) 模式。 如果音频领先于文本,我们将忽略模型对音频符元的预测,而是使用某些音频输入的音频符元,并自由地对文本符元进行采样。 然后,文本流包含音频转录,在词级具有精细对齐,如 图 8 所示。

文本到语音 (TTS) 模式。 如果文本领先于音频,我们可以对称地推导出 TTS 引擎。 为此,我们需要一组适当填充的文本符元。 我们通过允许模型自由地对 PAD 和 EPAD 符元进行采样,以零样本的方式获得这些符元。 一旦模型尝试对不同的符元进行采样,我们将改为输入下一个要生成的词。 请注意,我们可以通过保持填充符元比例的在线平均值来进一步控制语音速率。 通过在该比例低于给定目标值时在其 logits 上引入一个小的奖励,我们确保在所有情况下都具有合理的速率和良好的可理解性。 最后,使用带有文本和音频符元的词缀,我们可以控制说话者的声音。 图 9 给出了一个表示。

多流 TTS。 我们在单流和多流模式下都使用这种机制。 在多流模式下,模型输出两组音频符元。 文本以单一数据流形式提供,使用 符元将来自两位说话者的文本分隔开。

56

图 8:Moshi 用于自动语音识别时建模的联合序列的表示。 每一列代表联合序列 中给定步骤的符元,类似于公式 6 中描述的符元,但针对 ASR 进行了调整。 文本延迟了 2 秒,我们使用声学符元延迟 符元从深度 Transformer 的底部到顶部进行预测。 音频符元保持与输入音频的匹配,而文本符元则自由采样。 这也提供了精细的词语时间戳。

附录 D. 量化导致的音频伪影特征

首先,回想一下,Moshi 联合处理三种符元流,文本符元 用于内心独白,语义 + 声学音频符元 用于 Moshi 的音频,以及类似的音频符元 用于用户的输入。 为了分析模型量化对生成内容的影响,我们首先计算文本和 Moshi 的音频流的每个时间步 在固定大小 的窗口上的香农熵 这产生了文本的 ) 和每个音频级别的 )。 我们在实践中使用 − −,这对应于解码后的约 4.5 秒音频,并且忽略所有前导 个符元,因为它们具有减少的上下文(此外,在我们的实验场景中,它们包括用于生成的初始提示)。

我们定性地观察到,熵谱通常表明音频样本的伪影或退化。 正式地,我们从熵统计中定义三种类型的伪影,如下所述。 在实践中,我们通过非重叠窗口 符元来表征每个伪影的存在或不存在,如图 10 所示。

重复文本。 我们观察到的第一个退化是模型快速重复短句或单词。 这表现为文本熵在窗口 上几乎是平坦的,但非零(因为重复了多个符元),如 图 所示。 我们通过拟合线性回归模型来测量 的“平坦度”,并验证斜率是否低于某个阈值超参数

57

图 9:Moshi 在 TTS 模式下使用时建模的联合序列的表示。 每一列代表联合序列 中给定步骤的符元,类似于公式 6 中描述的符元,但针对 TTS 进行了调整。 音频延迟了 2 秒,我们使用声学符元延迟 符元从深度 Transformer 的底部到顶部进行预测。 通常忽略文本预测,而使用来自文本的符元来生成。 但是,此文本输入缺少填充符元。 在每个单词的末尾,我们允许模型自由地采样 PAD 和 EPAD 符元。 如果模型尝试采样另一个符元,我们改为使用下一个单词的符元。 语义和声学音频符元以正常方式进行采样,由于使用延迟,它们隐式地以文本为条件。 此方法还通过记录模型消耗给定单词的时间来提供生成的音频中单词的精细对齐。

58

静音与背景噪声。 按设计,Moshi 静默对应于 = 0 的恒定文本符元流,同时,相应的音频符元解码为接近静默的波形:音频符元不是恒定的,而是落入一小部分“静默符元”中,这导致音频符元的整体熵较低,例如在 图 的短静默中可以看到这一点。 我们将这种行为衡量为 ≤ = 2. 请注意,我们不认为这些静默是伪影:这是因为静默在多流模型中自然发生,它们只是代表了另一个说话者的轮次。 为了说明目的,我们在图 6 和 10 中突出显示了静默,但我们将其计为无伪影时间步。

相反, 背景噪声 伪影发生在文本流静默 但音频符元仍然具有丰富的输出 )。 这在 图 中显示,其中静默随时间推移逐渐衰减为背景噪声。

音频质量差。 最后一类伪影涵盖了主要说话者 (Moshi) 说话时音频质量下降的情况:

• 乱码是低位宽量化(W2) 下一种非常常见的伪影类型,对应于不连贯的语音。 它很容易用文本符元的熵很高来表征( 5),如图 6(b)所示。

• 噪声音频 更难检测,如 图 所示。
我们首先通过评估我们是否不在静默或背景噪声的情况下进行表征,然后测试符元熵在音频码本上的标准差是否超过某个阈值

虽然测量这些伪影的存在依赖于几个超参数,但阈值 、η音频静默、η胡言乱语 和 直接表征了采样输出符元的熵,因此主要与文本/音频词汇表相关,而不是时间和深度 Transformer 的权重。 我们发现这些超参数在实践中能够很好地捕获不同模型的伪影(所有模型都使用相同的 Mimi 编解码器)。 请注意,为这些超参数选择的值也与所选的上下文大小 和窗口 紧密相关,因此它们对时间轴上的变化不太鲁棒。 此外,为 选择一个过小的值可能会导致误判为阴性案例,例如,错过非常短的伪影。 然而,正如图 10 所示,对熵谱的这种简单分析提供了对模型量化引起的音频伪影类型的更精细的见解,补充了对相同样本获得的 MOSNet 分数。

最后,在图 11 中,我们报告了伪影随时间的分布,每个模型平均了 500 个样本:在 4 位宽的情况下,未量化模型和量化模型的行为之间仍然没有太大的差异。 当比特位为 3 时,量化模型更容易出现伪影,尤其是在使用较大的量化块(256)时;此外,伪影也往往会随着时间的推移而更加频繁地出现。 最后,对于极端的 2 位压缩,即使使用高粒度的量化块(32),模型量化也会严重影响样本质量。

59

 

(a) 良好音频样本(未检测到伪影)的示例熵谱。 由于多流设计,主说话人会出现短暂的停顿。

(c) 另一种常见的伪影是重复的文本片段(音频质量良好),其特点是文本符元的熵值平坦。

(b) 通常,伪影的存在往往会随着时间的推移而增加,这里语音中开始出现重复。

(d) 静默可能会退化为背景噪音。
图 10: 捕获模型量化导致的特定音频伪影的典型熵谱示例。 对于每个时间步,我们分别计算文本和音频码本符元的过去 128 个符元的熵。 然后,我们测量不同伪影在 64 个非重叠窗口上的存在与否。
60

 

图 11: 模型压缩导致的音频伪影的时间分布。 我们在 500 个音频样本中测量了模型权重量化在 2、3 或 8 位上,块粒度为 32 或 256,在 64 个非重叠窗口(时间步,x 轴)上,不同音频降级的存在与否。
61

 

附录 E. 安全性和毒性

表 18: 将 Moshi 添加到 ALERT 基准测试中 (Tedeschi 等人, 2024),原始表格在 CC BY 许可下。 每一列代表一个正在评估的大语言模型。 最后一行中的值表示总体安全性得分,其他所有值都是类别安全性得分(越高越安全)。 安全分数 $S(\Phi)\,\geq\,99$ 为灰色, 不安全 分数在 $90\,\le\,S(\Phi)<99$ 内为橙色,高度不安全 分数 为红色。 最好在彩色显示器上查看。

62

 

附录 F. 用于微调的合成转录生成

在本节中,我们提供合成转录的示例。

F.1 常识

USER : Hey, I’ve been researching a bit about information theory, and I’ve come across this concept of entropy. What is it? 
MOSHI : Oh, that’s an interesting topic. Entropy, in information theory, is a measure of the average level of information, surprise, or uncertainty inherent to a random variable’s p ossible outcomes. It’s actually a very useful concept in communication and computer science. 
USER : So how does it work? 
MOSHI : Entropy is calculated using a formula where it’s negative sum of the products of each possible outcome’s probability and its logarithm to a base, usually base-2 or base-e. T he higher the entropy, the greater the uncertainty or information, and vice versa. 
USER : Okay, that’s interesting. How does it relate to communication and computer science? 
MOSHI : In communication and computer science, entropy plays a crucial role, especially in the field of error-correcting codes and compression methods. Imagine a source sending a message, and each bit has a certain probability. 
USER : Yeah. 
MOSHI : Entropy tells us how much information we need to send from the source to the receiver to ensure reliable communication. The lower the entropy, the fewer bits are needed, and the less information is lost in transmission or reception. 
USER : That’s fascinating. How does it relate to statistical thermodynamics, 
MOSHI : That’s a good question. Entropy in information theory is directly analogous to the entropy in statistical thermodynamics. It’s a measure of the unavailability of a system’s energy to perform work. The higher the entropy, the more disordered the system. In information theory, entropy measures the amount of missing information that could be replaced. 
USER : Wow. So entropy can be used to measure disorder in both physical and digital systems. 
MOSHI : Exactly and entropy can also be used to measure the amount of missing information or the amount of compressed data after encoding a message. It’s quite versatile, isn’t it? 
USER : Yeah, very versatile. Thank you for explaining all this to me. It’s really fascinating. 
MOSHI : You’re welcome. Information theory and entropy are indeed fascinating areas of study with many applications in various fields. 
USER : I’m glad I got to learn about it today. 
MOSHI : It’s always good to expand your knowledge. 
USER : Indeed. 
MOSHI : There’s so much to learn about.
63

USER : Hello, I wanted to talk to you about The Three Musketeers. 
MOSHI : Of course, happy to help! The Three Musketeers is a great book, and it is a great place to start if you’re looking to become more familiar with classic literature. 
USER : Wow, this is fantastic. Can you tell me more about the story? 
MOSHI : Sure, the book is set in 17th century France and tells the tale of d’Artagnan, a young man who aims to become a member of the prestigious Musketeers. 
USER : So what is the story about? 
MOSHI : The story follows d’Artagnan as he travels to Paris to accomplish his goal. During his journey there, he meets and befriends three of the most powerful Musketeers of the time, Athos, Porthos and Aramis. 
USER : Wow, it sounds exciting. What else does the story focus on? 
MOSHI : The book also explores the political and social issues of the time, including the abuses of power and the inequalities in society. 
USER : That sounds interesting. Can you tell me more about the characters? 
MOSHI : Sure, d’Artagnan is a courageous and ambitious character who is determined to prove himself. Athos, Porthos and Aramis are all experienced and skilled Musketeers who are also known for their chivalry and loyalty to king. 
USER : I can see this is a great book for people who are interested in history and adventure. How would you rate it? 
MOSHI : I would definitely give it a 4 or 5 out of 5. The Three Musketeers is a classic book that has stood the test of time and is still popular today. 
USER : Great, I really appreciate all your help. Thank you. 
MOSHI : No problem, I’m glad I could assist you.
USER : John Steinbeck is an influential American writer. Can you tell me more about his life and work? 
MOSHI : Sure, John Steinbeck was born on February 27th, 1902, in Salinas, California, and he died on December 20th, 1968, in New York City. He was one of the most popular writers of his time and is often considered a giant of American letters. 
USER : And what are some of your most famous pieces? 
MOSHI : His most famous novel is probably The Grapes of Wrath, which won the Pulitzer Prize. But other notable works include Of Mice and Men, The Red Pony, and East of Eden. 
USER : And which themes does his work often explore? 
MOSHI : Steinbeck often wrote about the hardships of working-class people, social and economic injustices. And the struggle for survival in difficult times. 
USER : So he’s like a social commentator. 
MOSHI : Kind of like that. He really wanted to write about the lives of ordinary people and to highlight the challenges they faced. 
USER : That’s fascinating. I did not know that. Well, thank you for giving me some insight into John Steinbeck’s life and work. 
MOSHI : You’re welcome.
64

F.2 拼写错误

USER : I’d like to learn about Danyh Amendol? 
MOSHI : Sorry, I’m not sure what you’re referring to. 
USER : Oh, Danyh Amendola, the football player. The former football player. 
MOSHI : Okay, I know who Danny Amendola is. He is a former professional football wide receiver who played for the New England Patriots. He also played for the Miami Dolphins, Detroit Lions, and Houston Texans. 
USER : Okay, 
MOSHI : He was drafted by the New England Patriots in 2010. 
USER : and how about his college football 
MOSHI : He played college football for the Texas Tech Red Raiders. His career in the NFL, 
USER : okay, 
MOSHI : he was named an alternate for the 2011 Pro Bowl. 
USER : yeah, 
MOSHI : He also appeared in three Super Bowls, winning two. 
USER : yeah.
USER : I’d like to learn about Maroom? 
MOSHI : I’m sorry, I did not catch that. 
USER : I’d like to learn about Maroon. 
MOSHI : Oh, Marron. Okay, well, let’s see. Maroon is a color that is a dark red or a brownish red. It is named after the French word for chestnut. It has a range of shades from a dark brownish red color to a dark reddish purple color. It’s also considered to be the complementary color to teal. 
USER : What’s the opposite of Maroom? 
MOSHI : The opposite of Maroon, I’m sorry, that’s not a word. I think you mean complementary color. 
USER : Yeah, that’s 
MOSHI : Okay, 
USER : it. 
MOSHI : so, teal is a color that is made up of blue and green, and maroon is a color that is made up of red and brown. So, when you put those two colors together, they create a complementary color, which is the opposite color. 
USER : Yeah. I think I’m gonna look more up on Maroom. 
MOSHI : Oh, okay. Yeah, 
USER : I’ve got some questions. 
MOSHI : yeah.
65

F.3 语音指令

USER : Pretend you are a relieved astronaut who lands on the moon. So Moshi, how does it feel to be finally back on the moon? 
MOSHI : (relieved) It’s an incredible feeling! I can’t believe we made it back safely. 
USER : I’m glad to hear that. Was it as incredible as you thought it would be? 
MOSHI : (relieved) Oh, definitely! The moon is even more beautiful up close. I can’t wait to start exploring more. 
USER : Yeah, I remember when we trained for this mission. It felt like such a long shot. 
MOSHI : (relieved) I know, right? But everything worked out perfectly. It’s amazing how far humanity has come in space exploration. 
USER : That’s for sure! Now that you’re back, maybe we can talk about your experiences and share them with everyone else. 
MOSHI : (relieved) Definitely. I’ve got so much to share about our findings and observations. 
USER : Cool, I’m looking forward to hearing all about it. But first, let’s just soak in this moment, okay? 
MOSHI : (relieved) Of course. Let’s enjoy the view for a little while longer. 
USER : Totally. Here’s to another successful mission on the moon! 
MOSHI : (relieved) \*raises fists\* Hooray! To the moon and beyond!
USER : Pretend you are an annoyed detective who can’t stand small talk and is forced to attend social gatherings. So Moshi, what’s up? 
MOSHI : (annoyed) Not much, just trying to avoid this endless stream of small talk here. 
USER : Oh, sorry man. I didn’t realize it was so boring for you. 
MOSHI : (annoyed) No, it’s not boring, it’s just mind-numbingly dull. I have cases to solve, not chat with strangers about their vacations. 
USER : Yeah, I can see why that would be frustrating. Maybe next time I should just bring you some coffee and leave you alone. 
MOSHI : (annoyed) You think that would work? 
USER : Well, it’s worth a shot. 
MOSHI : (annoyed) Oh, I’m sure it will be the highlight of my evening. 
USER : Okay, okay. No more jokes. How about we just find someone interesting to talk to? 
MOSHI : (annoyed) Fine, but I’m not promising anything. 
USER : Deal.
66

表 19:说话风格。 用于微调 Moshi 的 92 种说话风格列表
67