モデル概要
モデル特徴
モデル能力
使用事例
🚀 Wav2vec2-xls-r-1b for Finnish ASR
この音響モデルは、フィンランド語の自動音声認識(ASR)用に facebook/wav2vec2-xls-r-1b をファインチューニングしたバージョンです。このモデルは、259.57時間のフィンランド語の文字起こし音声データを使用してファインチューニングされています。Wav2Vec2 XLS-Rは、この論文 で紹介され、このページ で最初に公開されました。
このリポジトリには、音響モデルのデコード段階で使用されるフィンランド語のKenLM言語モデルも含まれています。
注意: このモデルは aapot/wav2vec2-xlsr-1b-finnish-lm モデルとまったく同じで、そのモデルがこの Finnish-NLP
Hugging Face組織にコピー/移動されただけです。
注意: このモデルには、さらに16時間のデータで長時間ファインチューニングされた、より良いV2バージョンがあります: Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2
🚀 クイックスタート
このモデルは、フィンランド語の自動音声認識(音声からテキストへの変換)タスクに使用できます。具体的な使用方法については、このリポジトリの run-finnish-asr-models.ipynb ノートブックを参照してください。
✨ 主な機能
- フィンランド語の自動音声認識(ASR)に最適化された音響モデル。
- デコード段階で使用するフィンランド語のKenLM言語モデルを含む。
📦 インストール
READMEにインストールに関する具体的な手順が記載されていないため、このセクションは省略されました。
💻 使用例
READMEに使用例のコードが記載されていないため、このセクションは省略されました。
📚 ドキュメント
モデルの説明
Wav2Vec2 XLS-Rは、Facebook AIによる大規模な多言語事前学習音声モデルです。VoxPopuli、MLS、CommonVoice、BABEL、VoxLingua107を含む436,000時間のラベルなし音声データで事前学習されています。このモデルは、128言語でwav2vec 2.0の目的関数を使用しています。
事前学習モデルについての詳細は、このブログ と この論文 を参照してください。
このモデルは、事前学習モデル(10億パラメータのバリアント)をフィンランド語のASR用にファインチューニングしたバージョンです。
想定される用途と制限
用途
このモデルは、フィンランド語の自動音声認識(音声からテキストへの変換)タスクに使用できます。
制限とバイアス
- このモデルは、最大長が20秒の音声サンプルでファインチューニングされているため、おそらく同程度の短い音声に最適に動作します。ただし、もっと長い音声でも試すことができます。非常に長い音声ファイルでメモリ不足のエラーが発生した場合は、このブログ記事 で紹介されている音声チャンキング方法を使用できます。
- ファインチューニングに使用されたデータの大部分はフィンランド議会のデータセットからのものであるため、このモデルは、方言を含む日常の会話など、非常に異なるドメインにはうまく汎化できない可能性があります。また、データセットの音声は成人男性が主体であるため、このモデルは、例えば子供や女性の音声に対してはうまく動作しない可能性があります。
- デコード段階で使用されるフィンランド語のKenLM言語モデルは、音声の文字起こしテキストデータで学習されています。したがって、デコーダの言語モデルは、例えば方言を含む日常の会話言語など、非常に異なる言語には汎化できない可能性があります。独自のドメイン言語用にKenLM言語モデルを学習し、デコードで使用することが有益な場合があります。
学習データ
このモデルは、以下のデータセットからの259.57時間のフィンランド語の文字起こし音声データを使用してファインチューニングされています。
データセット | 時間 | 総時間の割合 |
---|---|---|
Common Voice 7.0 Finnish train + evaluation + other splits | 9.70 h | 3.74 % |
Finnish parliament session 2 | 0.24 h | 0.09 % |
VoxPopuli Finnish | 5.94 h | 2.29 % |
CSS10 Finnish | 10.32 h | 3.98 % |
Aalto Finnish Parliament ASR Corpus | 228.00 h | 87.84 % |
Finnish Broadcast Corpus | 5.37 h | 2.07 % |
データセットは、最大長が20秒の音声サンプルのみを含むようにフィルタリングされています。
学習手順
このモデルは、Hugging Faceが主催する Robust Speech Challenge Event の間に学習されました。学習は、OVHcloudが提供するTesla V100 GPUで行われました。
学習スクリプトはHugging Faceによって提供されており、ここ で入手できます。私たちは、カスタムデータセットのデータ読み込み部分のみを変更しました。
KenLM言語モデルの学習には、Hugging Faceが提供する ブログ記事のチュートリアル に従いました。5-gram KenLMの学習データは、音声学習データの文字起こしテキストでした。
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは次のとおりです。
- learning_rate: 5e-05
- train_batch_size: 32
- eval_batch_size: 8
- seed: 42
- optimizer: 8-bit Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- lr_scheduler_warmup_steps: 500
- num_epochs: 5
- mixed_precision_training: Native AMP
事前学習された facebook/wav2vec2-xls-r-1b
モデルは、次のハイパーパラメータで初期化されました。
- attention_dropout: 0.094
- hidden_dropout: 0.047
- feat_proj_dropout: 0.04
- mask_time_prob: 0.082
- layerdrop: 0.041
- activation_dropout: 0.055
- ctc_loss_reduction: "mean"
学習結果
学習損失 | エポック | ステップ | 検証損失 | WER |
---|---|---|---|---|
0.968 | 0.18 | 500 | 0.4870 | 0.4720 |
0.6557 | 0.36 | 1000 | 0.2450 | 0.2931 |
0.647 | 0.54 | 1500 | 0.1818 | 0.2255 |
0.5297 | 0.72 | 2000 | 0.1698 | 0.2354 |
0.5802 | 0.9 | 2500 | 0.1581 | 0.2355 |
0.6351 | 1.07 | 3000 | 0.1689 | 0.2336 |
0.4626 | 1.25 | 3500 | 0.1719 | 0.3099 |
0.4526 | 1.43 | 4000 | 0.1434 | 0.2069 |
0.4692 | 1.61 | 4500 | 0.1645 | 0.2192 |
0.4584 | 1.79 | 5000 | 0.1483 | 0.1987 |
0.4234 | 1.97 | 5500 | 0.1499 | 0.2178 |
0.4243 | 2.15 | 6000 | 0.1345 | 0.2070 |
0.4108 | 2.33 | 6500 | 0.1383 | 0.1850 |
0.4048 | 2.51 | 7000 | 0.1338 | 0.1811 |
0.4085 | 2.69 | 7500 | 0.1290 | 0.1780 |
0.4026 | 2.87 | 8000 | 0.1239 | 0.1650 |
0.4033 | 3.04 | 8500 | 0.1346 | 0.1657 |
0.3986 | 3.22 | 9000 | 0.1310 | 0.1850 |
0.3867 | 3.4 | 9500 | 0.1273 | 0.1741 |
0.3658 | 3.58 | 10000 | 0.1219 | 0.1672 |
0.382 | 3.76 | 10500 | 0.1306 | 0.1698 |
0.3847 | 3.94 | 11000 | 0.1230 | 0.1577 |
0.3691 | 4.12 | 11500 | 0.1310 | 0.1615 |
0.3593 | 4.3 | 12000 | 0.1296 | 0.1622 |
0.3619 | 4.48 | 12500 | 0.1285 | 0.1601 |
0.3361 | 4.66 | 13000 | 0.1261 | 0.1569 |
0.3603 | 4.84 | 13500 | 0.1235 | 0.1533 |
フレームワークバージョン
- Transformers 4.17.0.dev0
- Pytorch 1.10.2+cu102
- Datasets 1.18.3
- Tokenizers 0.11.0
評価結果
評価は、Common Voice 7.0 Finnish test split、Common Voice 9.0 Finnish test split、および FLEURS ASR Finnish test split を使用して行われました。
このモデルの学習データにはCommon Voice 7.0の学習分割データが含まれていますが、私たちの新しい Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned
および Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish
モデルにはCommon Voice 9.0が含まれているため、両方のCommon Voiceバージョンに対してテストを実行しました。注意: Common Voiceは、データセットのバージョン間でテスト分割を完全に固定しているわけではないため、Common Voice 9.0の学習例の一部がCommon Voice 7.0のテスト分割に含まれている可能性があり、その逆も同様です。したがって、異なるCommon Voiceバージョンで学習されたモデル間のCommon Voiceテスト結果の比較は完全に正確ではありませんが、依然として十分に意味のある比較になるはずです。
Common Voice 7.0のテスト
このモデルを評価するには、このリポジトリの eval.py
スクリプトを実行します。
python3 eval.py --model_id Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm --dataset mozilla-foundation/common_voice_7_0 --config fi --split test
このモデル(表の4行目)は、他のモデルとそのパラメータ数と比較して、次のWER(単語誤り率)とCER(文字誤り率)の結果を達成しています。
モデルパラメータ | WER (LMあり) | WER (LMなし) | CER (LMあり) | CER (LMなし) | |
---|---|---|---|---|---|
Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned | 95 million | 5.85 | 13.52 | 1.35 | 2.44 |
Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish | 300 million | 4.13 | 9.66 | 0.90 | 1.66 |
Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm | 300 million | 8.16 | 17.92 | 1.97 | 3.36 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm | 1000 million | 5.65 | 13.11 | 1.20 | 2.23 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2 | 1000 million | 4.09 | 9.73 | 0.88 | 1.65 |
Common Voice 9.0のテスト
このモデルを評価するには、このリポジトリの eval.py
スクリプトを実行します。
python3 eval.py --model_id Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm --dataset mozilla-foundation/common_voice_9_0 --config fi --split test
このモデル(表の4行目)は、他のモデルとそのパラメータ数と比較して、次のWER(単語誤り率)とCER(文字誤り率)の結果を達成しています。
モデルパラメータ | WER (LMあり) | WER (LMなし) | CER (LMあり) | CER (LMなし) | |
---|---|---|---|---|---|
Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned | 95 million | 5.93 | 14.08 | 1.40 | 2.59 |
Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish | 300 million | 4.13 | 9.83 | 0.92 | 1.71 |
Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm | 300 million | 7.42 | 16.45 | 1.79 | 3.07 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm | 1000 million | 5.35 | 13.00 | 1.14 | 2.20 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2 | 1000 million | 3.72 | 8.96 | 0.80 | 1.52 |
FLEURS ASRのテスト
このモデルを評価するには、このリポジトリの eval.py
スクリプトを実行します。
python3 eval.py --model_id Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm --dataset google/fleurs --config fi_fi --split test
このモデル(表の4行目)は、他のモデルとそのパラメータ数と比較して、次のWER(単語誤り率)とCER(文字誤り率)の結果を達成しています。
モデルパラメータ | WER (LMあり) | WER (LMなし) | CER (LMあり) | CER (LMなし) | |
---|---|---|---|---|---|
Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned | 95 million | 13.99 | 17.16 | 6.07 | 6.61 |
Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish | 300 million | 12.44 | 14.63 | 5.77 | 6.22 |
Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm | 300 million | 17.72 | 23.30 | 6.78 | 7.67 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm | 1000 million | 20.34 | 16.67 | 6.97 | 6.35 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2 | 1000 million | 12.11 | 14.89 | 5.65 | 6.06 |
🔧 技術詳細
READMEに技術的な詳細が十分に記載されていないため、このセクションは省略されました。
📄 ライセンス
このモデルは、Apache 2.0ライセンスの下で提供されています。
チームメンバー
- Aapo Tanskanen, Hugging Faceプロフィール, LinkedInプロフィール
- Rasmus Toivanen, Hugging Faceプロフィール, LinkedInプロフィール
詳細については、自由にお問い合わせください 🤗



