微调 Wav2Vec2-BERT 以用于低资源自动语音识别
Meta 的 Wav2Vec2-BERT 是一种多功能音频模型,可针对低资源语言进行微调以实现自动语音识别(ASR),提供了比 Whisper 等自回归模型更高性能的替代方案。通过使用连接时序分类(CTC),Wav2Vec2-BERT 能在资源匮乏的语言上实现与 Whisper-large-v3 相似的词错误率(WER)表现,同时运行速度提升 10 到 30 倍,资源效率提升 2.5 倍。
Wav2Vec2-BERT 架构与预训练
Wav2Vec2-BERT 是一个拥有 5.8 亿参数的模型,作为 Meta Seamless Communication 系列 AI 翻译模型的构建块而开发。它是原始 Wav2Vec2 模型的重大演进,后者首次展示了在低资源条件下进行 ASR 的迁移学习。
关键的预训练统计包括:
- 数据量:在 450 万小时的未标记音频数据上进行预训练。
- 语言覆盖:覆盖超过 143 种语言。
- 对比:该规模远大于 XLS‑R(在 128 种语言上 50 万小时)和 MMS(在超过 1,400 种语言上 50 万小时)。
相较于自回归模型的优势
虽然 Whisper 被广泛认为是 ASR 的最新技术,但在“资源匮乏”语言(如蒙古语或马拉雅拉姆语)中,它面临特定的局限性,历史上在这些语言上出现超过 100% 的词错误率(WER)。此外,Whisper 的自回归特性使其本质上更慢,尤其是对其训练集中出现频率较低的语言,因为它需要为每个单词生成更多的标记。
相比之下,Wav2Vec2-BERT 在一次前向传播中完成 ASR 预测。这种非自回归方法提供了三个主要优势:
- 推理速度:比 Whisper-large-v3 快 10 到 30 倍。
- 资源效率:资源利用率提升 2.5 倍。
- 适应性:可轻松适配任何字母表,并且只需极少的数据即可实现竞争性的性能。
低资源 ASR 的微调流水线
要将 facebook/w2v-bert-2.0 检查点适配到特定语言(例如使用 Common Voice 16.0 数据集的蒙古语),可采用以下流水线:
数据预处理
- 文本规范化:将转录文本转换为小写,并去除不对应声学音素的特殊字符(例如标点)。
- 词表构建:从训练集和测试集的不同字母中构建词表。删除冗余字符(如蒙古语数据集中的拉丁字符),以缩小词表规模,从而有利于 CTC 算法。
- 特殊标记:词表包含词分隔符标记 (
|)、未知标记 ([UNK]) 和用于 CTC 对齐的填充/空白标记 ([PAD])。 - 音频处理:将原始音频重新采样至 16 kHz,以匹配模型的预训练分布。
技术实现
- 特征提取:
SeamlessM4TFeatureExtractor将原始音频幅度值映射为对数梅尔频谱图。 - 分词器:
Wav2Vec2CTCTokenizer负责字符标记与标签 ID 之间的映射。 - 训练目标:模型使用连接时序分类(CTC)进行微调,使网络能够在无需显式对齐的情况下,将输入序列映射到不同长度的输出序列。
训练结果与扩展技巧
在对约 14 小时经验证的蒙古语训练数据进行示例微调时,Wav2Vec2-BERT 达到了与 Whisper-large-v3 竞争的词错误率(WER),后者在同一任务上实现了 33.3% 的 WER。
扩展训练的专家技巧
- 词表裁剪:删除极低频字符,以防止数据集标注中的错误目标导致损失突增。
- 时间分辨率:每个 CTC 标记的理想时长在 10ms 到 35ms 之间。如果信号块过长(例如 30‑60ms),损失曲线可能会爆炸。添加卷积适配层对编码器隐藏状态进行子采样可以解决此问题。
- 防止训练不足:
- 保持 5% 到 15% 的 warm‑up 比例,并增加 epoch 数,以确保语言模型头权重与预训练模型对齐。
- 调整 AdamW 的 $\beta_{2}$(通常在 0.95 到 0.98 之间),以平滑损失曲线。