Hugging Face Transformersにおけるn-gramによるWav2Vec2の強化

Hugging Faceは、pyctcdecodeライブラリを🤗 Transformersライブラリに統合し、Wav2Vec2音声認識モデルをn-gram言語モデル(LM)と組み合わせることが可能になりました。この統合により、特に限られたデータでトレーニングされたモデルにおいて、スペルミスが大幅に減少し、単語誤り率(WER)が改善されます。

n-gram LMによる文字起こし精度の向上

Wav2Vec2をn-gram言語モデルと組み合わせることで、音は正しく聞こえるもののスペルが間違っているといった、音響のみによる一般的な文字起こしエラーを修正できます。Wav2Vec2は、そのTransformerアーキテクチャとConnectionist Temporal Classification (CTC) ファインチューニングにより、外部LMなしでも許容可能な文字起こしを生成できますが、LMはモデルが実在しない単語を予測するのを防ぐために不可欠な言語学的コンテキストを提供します。

facebook/wav2vec2-base-100hを使用したデモンストレーションでは、4-gram言語モデルの追加により、「christmaus」を「christmas」に、「simalyis」を「similes」に修正するといったエラーが修正されました。しかし、誤った文字起こしが有効な英語の単語である場合(例:「rose」が「roast」の代わりに)、n-gramモデルが依然として無視できない確率を割り当てる可能性があるため、一部のエラーが残る場合があります。

LM強化型デコーディングの技術的実装

言語モデルを使用したデコーディングは、モデルの出力をどのように扱うかという点で、標準的なデコーディングとは異なります。最も可能性の高い文字を見つけるためにロジットのargmaxを使用する代わりに、Wav2Vec2ProcessorWithLMは、各タイムステップにおけるすべての可能な出力文字の完全な確率分布(ロジット)を利用します。

このプロセスでは、確率行列を通じてビームサーチを適用し、n-gram言語モデルを活用して、言語学的パターンに基づいて次の文字の尤度を重み付けします。これには、効率的なデコーディングとモデルの保存のために、pyctcdecodekenlmライブラリが必要です。

カスタムn-gram言語モデルの構築

特定のドメインや言語向けにn-gram LMを作成するには、以下のワークフローが使用されます。

1. データ収集と前処理

効果的なLMには、音声認識システムのターゲットとなる文字起こしと一致するテキストデータが必要です。facebook/wav2vec2-xls-r-300mに基づいたスウェーデン語モデルの場合、europarl_bilingualデータセットが、そのクリーンで読み上げられた性質が話し言葉のオーディオに適合するため使用されました。前処理には以下が含まれます。

  • ターゲット言語のテキストを抽出する。
  • テキストを小文字に変換する。
  • ファインチューニングされた音響モデルのアルファベットに合わせるために、特定の文字(例:句読点)を削除する。

2. KenLMによるモデル構築

KenLMは、TransformerベースのLMと比較して計算コストが低いため、n-gramモデルの構築に使用されます。Transformer LMはより良い結果をもたらす可能性がありますが、n-gramsはLMなしの場合と比較して大幅なパフォーマンス向上を提供し、かつはるかに高速な検索時間(実質的にはルックアップテーブルのクエリ)を実現します。

KenLMパイプラインの主なステップは以下の通りです。

  • lmplzコマンドを使用してn-gram(例:5-gram)を構築する。
  • 🤗 Transformersとの互換性を確保するために、.arpaファイルに文末(</s>)トークンを手動で追加する。
  • ファイルサイズを削減し、読み込み速度を向上させるために、build_binaryを使用して.arpaファイルをバイナリ形式の.bin形式に変換する。

統合とパフォーマンスの向上

n-gramモデルを統合するには、Wav2Vec2ProcessorWithLMオブジェクトを、音響モデルの機能抽出器、トークナイザー、およびKenLMバイナリモデルで初期化されたpyctcdecodeビームサーチデコーダーを組み合わせて作成します。

パフォーマンスへの影響

公式のWav2Vec2論文によれば、n-gram LMは、特に非常に小さなデータセット(例:10分間のオーディオ)でトレーニングされたモデルにおいて、単語誤り率(WER)を大幅に減少させます。n-gramを使用することで、LMなしの場合と比較してWERを約80%削減できる場合があります。スウェーデン語のxls-r-300m-svの例では、5-gram LM強化型デコーダーは、Common Voice 7テストセットにおいて18.85%のWERを達成し、相対的なパフォーマンス向上は約30%を示しました。

Sources

関連