自动语音识别 (ASR) 领域长期以来一直面临着“数据饥渴”的问题。要构建一个像 Siri 或 Alexa 那样能有效理解人类语音的系统,历史上通常需要数千小时由人工精心转录的音频。这些标注数据昂贵、生成速度慢,且对于低资源语言往往无法获取。

与此同时,在自然语言处理 (NLP) 领域,像 BERT 这样的模型通过阅读大量的无标签文本,在从未接触特定任务之前就学会了语言的结构,从而打破了记录。

2019 年,Facebook AI Research 的研究人员提出了一个关键问题: 我们能像 BERT 对待文本那样对待语音吗?

结果就是 wav2vec , 这是一篇开创性的论文,提出了一种在原始音频上进行无监督预训练的方法。通过教神经网络在要求它转录单词之前先理解音频的结构,他们用极少的标注数据就达到了最先进的结果。

在本文中,我们将拆解 wav2vec 论文。我们将深入了解它如何抛弃传统音频特征,其卷积网络的架构,以及它为从静默和声音中学习而设计的巧妙“游戏”。


核心问题: 从原始音频中学习

在 wav2vec 之前,大多数语音识别流程实际上并不查看原始音频。原始音频是高频且连续的——是一串每秒变化 16,000 次 (16 kHz) 的杂乱数字流。

相反,工程师通常将音频转换为 对数梅尔滤波器组 (log-mel filterbanks) 或声谱图。这些是声音频率随时间变化的可视化表示。虽然有效,但这个过程是“有损的”——它基于对人类听觉的假设,丢弃了机器可能觉得有用的数据。

wav2vec 的作者认为,我们应该停止手工设计特征。相反,我们应该让神经网络直接从原始波形中学习其自身的特征。此外,我们要使用无监督学习来完成这项工作。我们拥有几乎无限量的无标签音频 (播客、YouTube、广播) 。如果模型能从这些数据中学习语音的统计结构,那么后续所需的人工转录就会少得多。

wav2vec 架构

wav2vec 模型完全建立在卷积神经网络 (CNN) 之上。与按顺序处理数据且难以并行化的循环神经网络 (RNN) 或 LSTM 不同,CNN 可以在现代 GPU 上高效计算。

该架构由两个独特的堆叠网络组成: 编码器网络 (Encoder Network)上下文网络 (Context Network)

图 1: 从音频数据 X 进行预训练的示意图,该数据由两个相互堆叠的卷积神经网络编码。该模型被优化以解决下一个时间步的预测任务。

1. 编码器网络 (\(f\))

这个过程从原始音频开始,记为 \(\mathcal{X}\)。编码器网络接收原始波形并对其进行压缩。

  • 输入: 原始音频样本。
  • 操作: 一个 5 层卷积网络。
  • 输出: 低频特征表示,记为 \(\mathcal{Z}\)。

可以将编码器视为特征提取器。它接收高频原始音频 (每秒 16,000 个样本) 并将其下采样到“潜在空间”中。在本文中,编码器每 10 毫秒输出一个向量表示。这本质上将连续波形转换为了离散步骤序列,类似于图像 CNN 将像素转换为特征图。

2. 上下文网络 (\(g\))

编码器的输出 (\(\mathbf{z}_i\)) 只知道极小的时间片段 (约 30 毫秒) 。然而,要理解语音,你需要上下文。如果不了解之前的静默或之后的元音,你就无法区分“p”和“b”。

上下文网络位于编码器之上。

  • 输入: 来自编码器的特征表示序列 \(\mathcal{Z}\)。
  • 操作: 一个 9 层卷积网络。
  • 输出: 上下文表示,记为 \(\mathcal{C}\)。

该网络将多个时间步混合在一起。当数据通过上下文层时,单个向量 \(\mathbf{c}_i\) 包含了覆盖约 210 毫秒感受野的信息 (在该模型的大型版本中最高可达 810 毫秒) 。

“游戏”: 对比预测编码

我们有了一个将音频转化为向量的网络。但如果没有标签 (比如没有文字记录说“这段音频说的是 hello”) ,我们要如何训练它?错误信号是什么?

作者利用了一种称为对比预测编码 (Contrastive Predictive Coding, CPC) 的技术。

模型并不试图预测下一个音频样本的确切数值 (这非常困难,因为音频嘈杂且复杂) ,而是尝试解决一个分类任务。

逻辑如下:

  1. 取当前的上下文表示 \(\mathbf{c}_i\) (目前为止我们对音频的了解) 。
  2. 查看音频中的未来步骤 \(\mathbf{z}_{i+k}\) (实际发生了什么) 。
  3. 收集一堆“负”样本 (从录音的其他部分截取的随机音频片段) 。
  4. 任务: 模型能否在负样本中识别出隐藏的真实未来样本?

目标函数

为了在数学上强制执行这一点,wav2vec 最小化了一个对比损失函数。这看起来很吓人,但让我们用论文中提供的方程来拆解它:

对比损失函数的方程。

以下是这些符号的含义:

  • \(\mathcal{L}_k\): 预测未来 \(k\) 步的损失。
  • \(\sigma\): Sigmoid 函数。它将数字压缩到 0 和 1 之间,将其转化为概率。
  • \(\mathbf{z}_{i+k}^{\top} h_k(\mathbf{c}_i)\): 这是模型给真实未来样本的“评分”。我们希望这个分数高。
  • \(\tilde{\mathbf{z}}\): 这些是样本 (干扰项) 。
  • \(\mathbb{E}[\dots]\): 这部分计算给予干扰项的平均分。我们希望这些分数低 (接近 0) 。

简单来说: 模型的训练目标是最大化真实未来音频块的概率,同时最小化随机音频块的概率。

通过在数千小时的音频上数百万次地解开这个“游戏”,编码器和上下文网络学会了极其稳健的语音声音表示。它们学会了音素、静默模式和说话人特征——所有这些都不需要一个人工编写的单词。

实验与结果

一旦 wav2vec 模型在无标签数据上完成预训练,研究人员就在实际的语音识别任务上对其进行了测试。他们将上下文网络的输出 (\(\mathbf{c}\)) 输入到标准的声学模型中,并在有标签数据上进行微调。

他们主要在 Wall Street Journal (WSJ) 基准和 Librispeech 数据集上进行了测试。

击败基准

主要的比较对象是使用传统对数梅尔滤波器组 (行业标准) 的基准模型。他们还将它与著名的基于字符的系统 Deep Speech 2 进行了比较。

表 1: 在 WSJ 上对比 wav2vec 与基准。

表 1 中的结果非常显著。

  • LER (Letter Error Rate): 字母错误率,即模型搞错字符的百分比。
  • WER (Word Error Rate): 词错误率,即模型搞错单词的百分比。

你可以看到 wav2vec large 模型 (在 960 小时 Librispeech 上训练) 在 nov92 测试集上达到了 2.43% WER 。 这优于 Deep Speech 2 (3.1%),并大幅优于基准 (3.46%),尽管 Deep Speech 2 在原始训练中使用了显著更多的有标签数据。

低资源设置的威力

wav2vec 最令人印象深刻的主张是其效率。预训练应该能让模型如此好地“理解”语音,以至于它只需要很少的例子就能学会如何转录。

为了测试这一点,研究人员模拟了一个低资源环境,仅有几小时的转录数据可用。

图 2: 低资源设置下的 WER 改进。

图 2 可视化了这种显著的改进。

  • X 轴: 使用的有标签训练数据量 (以小时计) 。
  • Y 轴: 词错误率 (越低越好) 。

看图表的左侧。当只有 8 小时的有标签数据可用时,标准基准 (蓝线) 的错误率非常高。然而,预训练的 wav2vec 模型 (红线和棕线) 表现要好得多。

具体来说,在转录数据稀缺时,wav2vec 将词错误率相比基准降低了高达 36% 。 对于那些没有数千小时转录语音可用的语言来说,这是一个游戏规则改变者。

解码输出

值得注意的是,声学模型的输出不仅仅是纯文本;它是一连串的概率流。为了将其转化为可读的句子,研究人员使用了 束搜索解码器 (Beam Search Decoder)

束搜索解码最大化的方程。

这个方程代表了流程的最后一步。解码器寻找单词序列 \(\mathbf{y}\),以最大化以下组合:

  1. \(f_{AM}\): 声学模型 (wav2vec) 听到了什么。
  2. \(p_{LM}\): 语言模型认为什么符合语法逻辑。
  3. 惩罚项 (\(\beta, \gamma\)) : 控制单词长度和静默。

通过将 wav2vec 的声学理解与标准语言模型相结合,系统确保输出不仅在声学上准确,而且在语法上连贯。

消融研究: 什么最重要?

研究人员进行了“消融研究”——即调整模型的部分内容,看看究竟是什么在驱动性能。

负样本的数量

在对比损失函数中,模型将真实未来样本与“干扰项”进行比较。增加干扰项会让模型变得更聪明吗?

表 3: 不同负样本数量的影响。

表 3 表明存在一个“最佳点”。将负样本数量增加到大约 10 个 时有助于提高性能。此后,性能停滞 (保持在 15.5 PER 左右) ,但训练时间增加。研究人员在他们的主模型中坚持使用 10 个负样本,以平衡速度和准确性。

预测未来

模型被训练来预测未来 \(K\) 步。预测得更远会有帮助吗?

表 5: 不同任务数量 K 的影响。

有趣的是,表 5 显示预测未来超过 12 步并不会带来更好的性能。似乎直接的未来包含了学习语音表示最相关的信号,而试图猜测太远的未来会变成噪音,对编码器学习有用特征没有帮助。

结论与启示

wav2vec 论文标志着语音处理的一个转折点。它成功地证明了:

  1. 原始音频足矣: 我们不需要手动将音频处理成声谱图。卷积网络可以直接从波形中学习更好的特征。
  2. 无监督学习适用于语音: 正如 NLP 模型通过阅读维基百科进行学习一样,语音模型可以通过收听无标签音频进行学习。
  3. 效率: 这种方法使我们能够用少几个数量级的有标签数据构建高质量的语音识别器。

通过摆脱仅依赖监督学习的模式,wav2vec 为更具包容性的技术打开了大门。它为未来的迭代 (如 wav2vec 2.0) 铺平了道路,最终将高质量的语音识别带到了低资源语言和难以找到有标签数据的专业领域。

对于机器学习的学生来说,wav2vec 是一个完美的例子,展示了如何结合架构选择 (CNN 对比 RNN) 和目标函数 (对比损失) 来解决 AI 发展中的根本瓶颈。