Hugging Face Transformers を使用した英語 ASR 向け Wav2Vec2 のファインチューニング

概要

Hugging Face は、非常に少量のラベル付きデータを使用して Wav2Vec2 モデルをファインチューンし、競争力のある結果を達成できることを実証しました。事前学習済みチェックポイントを利用し、Connectionist Temporal Classification (CTC) でファインチューンすることで、開発者は別の言語モデルをすぐに必要とせずにエンドツーエンドの ASR システムを構築できます。

Wav2Vec2 アーキテクチャと事前学習

Wav2Vec2 は、生の音声から音声表現を学習するように設計された事前学習済みの ASR モデルです。2020 年 9 月に Alexei Baevski、Michael Auli、Alex Conneau によってリリースされました。

コントラスティブプリトレーニング

Wav2Vec2 は、ラベルのない音声(50,000 時間以上)から学習するためのコントラスティブ事前学習目的を使用します。BERT のマスクド言語モデリングと同様に、モデルはトランスフォーマー ネットワークに渡す前に特徴ベクトルをランダムにマスクし、コンテキスト化された音声表現を学習します。

データ効率

事前学習により、最小限のラベル付きデータでも高いパフォーマンスを達成できます。たとえば、ラベル付きデータをわずか 10 分だけ使用しても、Wav2Vec2 は LibriSpeech のクリーン テスト セットで単語誤り率 (WER) を 5% 未満に達成できます。

英語 ASR 向けファインチューニング プロセス

Wav2Vec2 のファインチューニングでは、トランスフォーマー ブロックの上に追加された線形層を使用して、事前学習されたコンテキスト表現を特定の転写語彙にマッピングします。

トークン化と語彙

最終の線形層の出力サイズは事前学習タスクではなくラベル付きデータセットに依存するため、カスタム語彙を作成する必要があります。Timit データセットの場合、以下の手順を含みます:

  • テキストを小文字に正規化する。
  • 特殊文字(例: ,.?!;:)を削除する。これらは異なる音声単位に対応しない。
  • トレーニング セットとテスト セットからすべての異なる文字を抽出する。
  • 単語区切りトークン (|)、未知トークン ([UNK])、およびパディング トークン ([PAD]) を追加する。これらは CTC の「ブランク トークン」として機能する。

特徴抽出

音声信号はサンプリングによって離散化する必要があります。Wav2Vec2 は 16kHz でサンプリングされた入力を期待します。これは LibriSpeech と LibriVox のサンプリングレートと一致します。Wav2Vec2FeatureExtractor は生の音声信号を処理し、ゼロ平均単位分散正規化を確保します。

データ準備

Wav2Vec2Processor を使用して、音声ファイルを読み込み、16kHz にリサンプリングします。プロセッサは、音声入力の特徴抽出とターゲット テキスト ラベルのトークン化の両方を処理します。

Connectionist Temporal Classification (CTC) を使用したトレーニング

Wav2Vec2 は、入力長(音声フレーム)が出力長(テキスト文字)よりもはるかに大きいシーケンス間問題のために設計されたアルゴリズムである CTC を使用してファインチューンされます。

トレーニング構成

トレーニングを最適化するために、以下の技術的な構成が使用されます:

  • Data Collator: DataCollatorCTCWithPadding という専用のデータコラレータを使用し、異なるモダリティに属するため input_valueslabels を別々に動的にパディングします。
  • Frozen Feature Extractor: 初期特徴抽出に使用される CNN レイヤーは十分に事前学習されているため、model.freeze_feature_extractor() によって凍結されます。
  • Gradient Checkpointing: GPU メモリを節約するために有効化されます。
  • Group by Length: 長さが類似したトレーニング サンプルをグループ化し、パディング トークンの数を減らして効率を向上させます。

評価メトリクス

主な評価メトリクスは単語誤り率 (WER) です。モデルは各タイムステップでロジット ベクトルを予測し、argmax を取って最も可能性の高い文字を決定します。CTC デコードでは、連続する同一トークンがグループ化され、ブランク トークンが単語内の同一文字を分離するために使用されます。

結果と含意

Timit データセット(トレーニングデータ 5 時間)で「base」Wav2Vec2 モデルをファインチューンしたデモンストレーションでは、テストでの WER が 22.1% に達成されました。

エラーの分析

予測はしばしばターゲット テキストと音響的に類似していますが、綴りや文法の誤りを含むことがあります。これは、言語モデルを使用せずに出力を有効な言語パターンに制約しないスタンドアロンの音響モデルを使用する場合に予想されます。

CTC のパフォーマンス

このモデルは話速に対して不変性を示します。CTC は同じトークンを複数のフレームで繰り返したり、ブランク トークンを挿入したりできるため、音声信号の長さに関わらず転写結果は一貫しています。

Sources