Robust Speech Recognition via Large-Scale Weak Supervision翻译
语音识别领域的进步得益于无监督预训练技术的开发,例如 Wav2Vec 2.0。由于这些方法直接从原始音频中学习,无需人工标注,因此它们可以高效地使用大量未标注语音数据集,并且已迅速扩展到 1,000,000 小时的训练数据,远远超过学术监督数据集通常的 1,000 小时左右。在标准基准上进行微调后,这种方法已经提高了最先进的水平,尤其是在低数据设置下。这些预训练的音频编码器。
摘要
我们研究语音处理系统的功能,这些系统经过简单的训练,可以预测互联网上大量的音频记录。当扩展到 680,000 小时的多语言和多任务监督时,生成的模型可以很好地推广到标准基准,并且通常可以与之前的完全监督结果相媲美,但在零样本迁移设置中无需任何微调。与人类相比,这些模型的准确性和稳健性接近人类。我们正在发布模型和推理代码,作为进一步开展稳健语音处理工作的基础。
1.介绍

语音识别领域的进步得益于无监督预训练技术的开发,例如 Wav2Vec 2.0。由于这些方法直接从原始音频中学习,无需人工标注,因此它们可以高效地使用大量未标注语音数据集,并且已迅速扩展到 1,000,000 小时的训练数据,远远超过学术监督数据集通常的 1,000 小时左右。在标准基准上进行微调后,这种方法已经提高了最先进的水平,尤其是在低数据设置下。
这些预训练的音频编码器可以学习高质量的语音表示,但由于它们是纯无监督的,因此它们缺乏性能相当的解码器来将这些表示映射到可用的输出,因此需要进行微调才能实际执行语音识别等任务。不幸的是,这限制了它们的实用性和影响力,因为微调仍然是一个复杂的过程,需要熟练的从业者。需要微调还有一个额外的风险。机器学习方法非常擅长在训练数据集中寻找模式,从而提高同一数据集中保留数据的性能。然而,其中一些模式是脆弱和虚假的,不能推广到其他数据集和分布。在一个特别令人不安的例子中,Radford et al. (2021) 记录了在 ImageNet 数据集上微调计算机视觉模型时对象分类准确率提高了 9.2%,而在其他七个自然图像数据集上对同一对象进行分类时平均准确率没有任何提高。在一个数据集上训练时实现“超人”性能的模型在另一个数据集上进行评估时仍会犯许多基本错误,这可能正是因为它利用了人类没有意识到的那些数据集特定的怪癖。
这表明,尽管无监督预训练极大地提高了音频编码器的质量,但缺乏同等高质量的预训练解码器,再加上推荐的针对特定数据集的微调协议,是一个关键的弱点,限制了它们的实用性和稳健性。语音识别系统的目标应该是在广泛的环境中“开箱即用”地可靠地工作,而不需要针对每个数据分布对解码器进行有监督微调。
正如 Narayanan et al. (2018), Likhomanenko et al. (2020) 和 Chan et al. (2021) 所证明的那样,在许多数据集/领域中以有监督方式进行预训练的语音识别系统表现出更高的鲁棒性,并且比在单一来源上训练的模型更有效地推广到有限的数据集。这些工作通过结合尽可能多的现有高质量语音识别数据集来实现这一点。然而,仍然只有适量的数据容易获得。SpeechStew 将 7 个预先存在的数据集混合在一起,总共 5,140 小时的监督。虽然这数量相对足够,但与前面提到的 Zhang et al. (2021) 使用的 1,000,000 小时未标注的语音数据相比,这仍然微不足道。
认识到现有高质量有监督数据集的大小有限,最近的努力为语音识别创建了更大的数据集。通过放宽对人工验证转录文本的金标准要求,Chen et al. (2021) 和 Galvez et al. (2021) 利用复杂的自动化流程将弱监督语音识别扩展到 10,000 和 30,000 小时的噪声更大的训练数据。这种质量和数量之间的权衡通常是正确的选择。尽管到目前为止语音识别的研究还不够充分,但计算机视觉领域的最新研究表明,从金标准众包数据集(如 ImageNet)转向更大但的弱监督数据集可以显著提高模型的鲁棒性和泛化能力。
然而,这些新数据集仅比现有高质量数据集的总和大几倍,并且仍然比以前的无监督工作小得多。在这项工作中,我们缩小了这一差距,将弱监督语音识别扩展到下一个数量级,达到 680,000 小时的标注音频数据。我们将我们的方法称为 Whisper。我们证明,以这种规模训练的模型可以很好地zero-shot迁移到现有数据集,无需任何特定于数据集的微调即可获得高质量的结果。
除了规模之外,我们的工作还致力于将弱监督预训练的范围从纯英语语音识别扩展到多语言和多任务。在这 680,000 小时的音频中,有 117,000 小时涵盖了 96 种其他语言。该数据集还包括 125,000 小时的 X→en 翻译数据。我们发现,对于足够大的模型,联合多语言和多任务训练没有任何缺点,甚至有好处。
我们的研究表明,到目前为止,对弱监督预训练进行简单的扩展对于语音识别的作用尚未得到充分重视。我们无需使用自监督或 self-training 技术(这些技术一直是近期大规模语音识别工作的支柱)即可实现这些结果。为了为进一步研究稳健的语音识别奠定基础,我们在以下网址发布了推理代码和模型:https://github.com/openai/whisper。
2. Approach
2.1. Data Processing
近期,人们利用互联网上的网络文本来训练机器学习系统,因此我们采用了一种极简主义的数据预处理方法。与语音识别领域的大量研究不同,我们训练 Whisper 模型来预测转录的原始文本,而无需进行任何标准化,而是依靠序列到序列模型的表现力来学习在话语和转录形式之间进行映射。这简化了语音识别流程,因为它消除了生成自然转录所需的单独逆文本规范化步骤。
我们根据与互联网上的转录文本配对的音频构建数据集。这会产生一个非常多样化的数据集,涵盖来自许多不同环境、录音设置、说话者和语言的广泛音频分布。虽然音频质量的多样性有助于训练模型以使其更稳健,但转录文本质量的多样性并没有同样的好处。初步检查显示,原始数据集中存在大量低于标准的转录文本。为了解决这个问题,我们开发了几种自动过滤方法来提高转录文本质量。
互联网上的许多转录文本实际上并非人工生成的,而是现有 ASR 系统的输出。最近的研究表明,在混合了人工和机器生成的数据的数据集上进行训练会严重损害翻译系统的性能。为了避免学习“转录文本”,我们开发了许多启发式方法来检测和删除训练数据集中的机器生成的转录文本。许多现有的 ASR 系统仅输出有限的书面语言子集,这些子集会删除或规范化仅从音频信号难以预测的方面,例如复杂的标点符号(感叹号、逗号和问号)、段落等格式化空格或大写等风格方面。全大写或全小写的转录文本不太可能是人工生成的。虽然许多 ASR 系统都包含某种程度的逆文本规范化,但它通常很简单或基于规则,并且仍然可以从其他未处理的方面(例如从不包含逗号)检测到。
我们还使用音频语言检测器,该检测器是通过微调在 VoxLingua107 上的数据集原型版本上训练的原型模型而创建的,以确保口语语言与 CLD2 中的转录语言相匹配。如果两者不匹配,我们就不会将 (音频,转录) 对作为语音识别训练示例包含在数据集中。如果转录语言是英语,我们会破例,将这些对作为 X→en 语音翻译训练示例添加到数据集中。我们对转录文本使用模糊去重来减少训练数据集中的重复和自动生成内容。
我们将音频文件分成 30 秒的片段,并与该时间段内发生的转录子集配对。我们对所有音频进行训练,包括没有语音的片段(尽管具有子采样概率),并将这些片段用作语音活动检测的训练数据。
对于额外的过滤过程,在训练初始模型后,我们汇总了有关其在训练数据源上的错误率的信息,并对这些数据源进行了手动检查,并根据高错误率和数据源大小进行排序,以便有效地识别和删除低质量的数据源。这项检查显示了大量仅部分转录或对齐不佳/未对齐的转录文本,以及过滤启发式方法未检测到的剩余低质量机器生成的字幕。
为了避免污染,我们在训练数据集和我们认为重叠风险较高的评估数据集(即TED-LIUM 3)之间进行了转录级别的重复数据删除。
2.2. Model
由于我们的工作重点是研究大规模有监督预训练在语音识别方面的能力,我们使用现成的架构来避免我们的发现与模型改进相混淆。我们选择了编码器-解码器 Transformer,因为这种架构已经过充分验证,可以可靠地扩展。所有音频都重新采样为 16,000 Hz,并在 25 毫秒窗口上计算 80 通道对数幅度梅尔频谱图表示,步幅为 10 毫秒。对于特征归一化,我们在整个预训练数据集中将输入全局缩放到 -1 到 1 之间,平均值约为零。编码器使用由两个卷积层组成的主干来处理此输入表示,卷积层具有 3 的滤波器宽度和 GELU 激活函数,其中第二个卷积层的步幅为 2。然后将正弦位置嵌入添加到输出中,之后应用编码器 Transformer 块。 Transformer 使用预激活残差块,并对编码器输出应用最终层归一化。解码器使用学习到的位置嵌入和绑定的输入输出 token 表示。编码器和解码器具有相同的宽度和 Transformer 块数量。图 1 总结了模型架构。
我们对仅限英语的模型使用与 GPT2 中相同的字节级 BPE 文本 tokenizer,并为多语言模型重新调整词表(但保持相同的大小),以避免其他语言的过度碎片化,因为 GPT-2 BPE 词汇表仅限英语。
2.3. Multitask Format
尽管预测给定音频片段中说出的单词是完整语音识别问题的核心部分,并且在研究中得到了广泛的研究,但它并不是唯一的部分。功能齐全的语音识别系统可能涉及许多其他组件,例如语音活动检测、说话人分类和逆文本规范化。这些组件通常是单独处理的,从而导致围绕核心语音识别模型的系统相对复杂。为了降低这种复杂性,我们希望让单个模型执行整个语音处理流程,而不仅仅是核心识别部分。这里的一个重要考虑因素是模型的接口。可以对同一输入音频信号执行许多不同的任务:转录、翻译、语音活动检测、对齐和语言识别就是一些示例。
为了使这种一对多映射与单个模型一起工作,需要某种形式的任务规范。我们使用一种简单的格式将所有任务和条件信息指定为解码器的输入 token 序列。由于我们的解码器是一个音频条件语言模型,我们还训练它以转录文本的历史为条件,希望它能够学会使用更长距离的文本上下文来解决模糊音频。具体来说,我们以一定的概率将当前音频片段之前的转录文本添加到解码器的上下文中。我们用 <|startoftranscript|>\text{<|startoftranscript|>}<|startoftranscript|> 标记表示预测的开始。首先,我们预测所说的语言,它由我们训练集(总共 99 种)中每种语言的唯一 token 表示。这些语言目标来自前面提到的 VoxLingua107 模型。如果音频片段中没有语音,则训练模型预测表示这种情况的 <|nospeech|>\text{<|nospeech|>}<|nospeech|> token。下一个 token 用 <|transcribe|>\text{<|transcribe|>}<|transcribe|> 或 <|translate|>\text{<|translate|>}<|translate|> token指定任务(转录或翻译)。此后,我们通过为该情况添加 <|notimestamps|>\text{<|notimestamps|>}<|notimestamps|> token来指定是否预测时间戳。此时,任务和所需格式已完全指定,并且输出开始。对于时间戳预测,我们预测相对于当前音频片段的时间,将所有时间量化到最接近的 20 毫秒,这与 Whisper 模型的本机时间分辨率相匹配,并为每个时间将其他 token 添加到我们的词表中。我们将它们的预测与字幕 token 交错:开始时间 token 在每个字幕文本之前预测,结束时间 token 在之后预测。当最终转录片段仅部分包含在当前 30 秒音频块中时,我们在时间戳模式下仅预测该片段的开始时间token,以指示后续解码应在与该时间对齐的音频窗口上执行,否则我们将截断音频以不包括该片段。最后,我们添加一个 <|endoftranscript|>\text{<|endoftranscript|>}<|endoftranscript|> 标记。我们仅掩盖历史上下文文本的训练损失,并训练模型预测所有其他 token。请参阅图 1 以了解我们的格式和训练设置的概述。
2.4. Training Details

我们训练了一套不同大小的模型,以研究 Whisper 的扩展属性。请参阅表 1 了解概述。我们使用具有动态损失缩放和激活检查点的 FP16 跨加速器进行数据并行训练。使用 AdamW 和梯度范数裁剪训练模型,在前 2048 次更新的预热后,线性学习率衰减为零。使用 256 个段的batch size,对模型进行 2202^{20}220 步更新训练,这在数据集上进行两到三次epoch。由于只训练了几个epoch,过拟合并不是一个大问题,我们不使用任何数据增强或正则化,而是依靠如此大数据集中包含的多样性来促进泛化和鲁棒性。请参阅附录 F 了解完整的训练超参数。
在早期开发和评估期间,我们发现 Whisper 模型倾向于转录看似合理但几乎总是错误的说话人姓名猜测。发生这种情况的原因是,预训练数据集中的许多转录文本都包含说话者的姓名,从而鼓励模型尝试预测他们,但这些信息很少能从最近 30 秒的音频上下文中推断出来。为了避免这种情况,我们对不包含说话者注释的转录子集对 Whisper 模型进行了短暂的微调,从而消除了这种行为。
3. Experiments
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)