为低资源自动语音识别微调 XLS-R

Hugging Face 详细介绍了一个针对低资源语言自动语音识别 (ASR) 微调 XLS-R(XLSR 的继任者)的过程。通过利用在 128 种语言上的自监督预训练,XLS-R 使开发者即使在标注训练数据有限的情况下也能实现功能性的语音转文本能力。

XLS-R 模型架构与预训练

XLS-R 旨在学习在多种语言中都有效的跨语言语音表示。它使用涵盖 128 种语言的近 500,000 小时音频数据进行了预训练。该模型提供三种规模:3 亿、10 亿和 20 亿参数。

自监督学习目标

类似于 BERT 的掩码语言模型,XLS-R 在其自监督预训练阶段通过在将特征向量传递给 transformer 网络之前对其进行随机掩码,从而学习上下文相关的语音表示。

微调机制

为了使预训练网络适应下游任务(如语音识别、语音翻译或音频分类),会在 transformer 块之上添加一个单一的线性层。该层根据目标标注数据集的词汇表将上下文表示映射到特定的 token 类。

ASR 的技术实现

为 ASR 微调 XLS-R 涉及几个关键的预处理和架构步骤,以确保模型能够正确地将音频信号映射到文本。

数据预处理与分词

对于 ASR,需要两个主要组件:

  1. Wav2Vec2FeatureExtractor:将原始语音信号处理成模型的输入格式。XLS-R 要求音频采样率为 16kHz。如果源数据(例如 Common Voice)的采样率较高(例如 48kHz),则必须进行降采样。
  2. Wav2Vec2CTCTokenizer:将模型的输出映射到文本。词汇表是根据训练和测试数据集中发现的不同字符构建的,包括一个单词分隔符 token(表示为 |)和 CTC 算法所需的特殊“空白 token”。

联结主义时间分类 (CTC)

XLS-R 使用联结主义时间分类 (CTC) 进行微调。对于输入(音频信号)显著长于输出(文本转录)的序列到序列问题,该算法至关重要。CTC 允许模型在不需要音频帧与文本字符之间精确对齐的情况下预测字符。

训练配置与优化

在低资源数据集(例如 Common Voice 的土耳其语子集,约 4 小时经过验证的数据)上进行微调,需要特定的优化策略以保持稳定性。

模型设置

为了优化 GPU 显存并提高训练稳定性,建议采用以下配置:

  • 冻结特征提取器:用于提取声学特征的 CNN 层被冻结 (model.freeze_feature_extractor()),因为它们在预训练期间已得到了充分训练。
  • 梯度检查点 (Gradient Checkpointing):启用该功能以减少显存消耗。
  • 损失函数缩减:将 CTC 损失设置为 "mean"。

超参数微调

由于 Common Voice 等众包数据集固有的噪声,必须仔细微调 dropout、SpecAugment 掩码 dropout 率和学习率等超参数。在提供的演示中,使用了 3e-4 的学习率和 30 个 epoch。

训练效率

通过使用 group_by_length=True 来提高训练效率,该参数将具有相似输入长度的样本分组到同一个 batch 中,从而最大限度地减少所需的填充量。

评估与性能

模型性能使用词错误率 (WER) 进行衡量,这是 ASR 的标准指标。在针对土耳其语数据使用 Wav2Vec2-XLS-R-300M 检查点的演示中,训练损失和验证 WER 在 3,200 步后稳步下降,WER 达到约 0.3195。

Sources

相关