モデル概要
モデル特徴
モデル能力
使用事例
🚀 Wav2vec2-xls-r-1b for Finnish ASR
この音響モデルは、フィンランド語の自動音声認識(ASR)用に facebook/wav2vec2-xls-r-1b をファインチューニングしたバージョンです。このモデルは、275.6時間のフィンランド語の文字起こし音声データでファインチューニングされています。Wav2Vec2 XLS - Rは、この論文 で紹介され、このページ で最初に公開されました。
このリポジトリには、音響モデルと共にデコード段階で使用されるフィンランド語のKenLM言語モデルも含まれています。
注意: このモデルは aapot/wav2vec2-xlsr-1b-finnish-lm-v2 モデルとまったく同じで、そのモデルがこの Finnish - NLP
Hugging Face組織にコピー/移動されたものです。
✨ 主な機能
- フィンランド語の自動音声認識(ASR)タスクに使用できます。
- 大規模な多言語事前学習モデルWav2Vec2 XLS - Rをベースに、フィンランド語用にファインチューニングされています。
- デコード段階でフィンランド語のKenLM言語モデルを使用しています。
📦 インストール
インストールに関する具体的な手順は原ドキュメントに記載されていないため、このセクションは省略されます。
💻 使用例
基本的な使用法
このモデルの使用方法の詳細な例については、このリポジトリの [run - finnish - asr - models.ipynb](https://huggingface.co/Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm - v2/blob/main/run - finnish - asr - models.ipynb) ノートブックを参照してください。
📚 ドキュメント
モデルの説明
Wav2Vec2 XLS - Rは、Facebook AIによる大規模な多言語事前学習音声モデルです。VoxPopuli、MLS、CommonVoice、BABEL、VoxLingua107を含む436,000時間のラベルなし音声データで事前学習されています。このモデルは、128言語でwav2vec 2.0の目的関数を使用しています。
事前学習モデルについての詳細は、[このブログ](https://ai.facebook.com/blog/xls - r - self - supervised - speech - processing - for - 128 - languages) と この論文 を読むことができます。
このモデルは、事前学習モデル(10億パラメータのバリアント)をフィンランド語のASR用にファインチューニングしたものです。
想定される用途と制限
このモデルは、フィンランド語のASR(音声テキスト変換)タスクに使用できます。
制限とバイアス
- このモデルは、最大長が20秒の音声サンプルでファインチューニングされているため、おそらく同程度の短い音声に最適に動作します。ただし、もっと長い音声でも試すことができます。非常に長い音声ファイルでメモリ不足エラーが発生した場合は、[このブログ記事](https://huggingface.co/blog/asr - chunking) で紹介されている音声チャンキング方法を使用できます。
- ファインチューニングに使用されたデータの大部分はフィンランド議会のデータセットからのものであるため、このモデルは、方言を含む日常会話などの非常に異なるドメインにはうまく汎化できない可能性があります。
- データセットの音声は成人男性が主体であるため、このモデルは、例えば子供や女性の音声に対してはうまく動作しない可能性があります。
- デコード段階で使用されるフィンランド語のKenLM言語モデルは、音声文字起こしのテキストデータとフィンランド語Wikipediaのサブセットで学習されています。したがって、デコーダの言語モデルは、例えば方言を含む日常会話のような非常に異なる言語には汎化できない可能性があります(特にWikipediaは主に正式なフィンランド語を含んでいるため)。独自のKenLM言語モデルをドメイン言語用に学習し、デコードで使用することが有益な場合があります。
学習データ
このモデルは、以下のデータセットからの275.6時間のフィンランド語の文字起こし音声データでファインチューニングされています。
データセット | 時間 | 総時間の割合 |
---|---|---|
[Common Voice 7.0 Finnish train + evaluation + other splits](https://huggingface.co/datasets/mozilla - foundation/common_voice_7_0) | 9.70時間 | 3.52 % |
Finnish parliament session 2 | 0.24時間 | 0.09 % |
VoxPopuli Finnish | 21.97時間 | 7.97 % |
CSS10 Finnish | 10.32時間 | 3.74 % |
[Aalto Finnish Parliament ASR Corpus](http://urn.fi/urn:nbn:fi:lb - 2021051903) | 228.00時間 | 82.73 % |
[Finnish Broadcast Corpus](http://urn.fi/urn:nbn:fi:lb - 2016042502) | 5.37時間 | 1.95 % |
データセットは、最大長が20秒の音声サンプルを含むようにフィルタリングされています。
学習手順
このモデルは、Hugging Faceによって主催された [Robust Speech Challenge Event](https://discuss.huggingface.co/t/open - to - the - community - robust - speech - recognition - challenge/13614) の間に学習されました。学習は、OVHcloudによって提供されたTesla V100 GPU上で行われました。
学習スクリプトはHugging Faceによって提供され、[ここ](https://github.com/huggingface/transformers/blob/main/examples/research_projects/robust - speech - event/run_speech_recognition_ctc_bnb.py) で入手できます。カスタムデータセットのデータローディングのみを変更しました。
KenLM言語モデルの学習には、Hugging Faceによって提供された [ブログ記事のチュートリアル](https://huggingface.co/blog/wav2vec2 - with - ngram) に従いました。5 - gram KenLMの学習データは、音声学習データのテキスト文字起こしと、クリーニングされた フィンランド語Wikipedia (2021年8月)データセットの100,000個のランダムサンプルでした。
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは以下の通りです。
- learning_rate: 5e - 05
- train_batch_size: 32
- eval_batch_size: 8
- seed: 42
- optimizer: 8 - bit Adam (betas=(0.9, 0.999)、epsilon = 1e - 08)
- lr_scheduler_type: linear
- lr_scheduler_warmup_steps: 500
- num_epochs: 10
- 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.7778 | 0.17 | 500 | 0.2851 | 0.3572 |
0.5506 | 0.34 | 1000 | 0.1595 | 0.2130 |
0.6569 | 0.5 | 1500 | 0.1458 | 0.2046 |
0.5997 | 0.67 | 2000 | 0.1374 | 0.1975 |
0.542 | 0.84 | 2500 | 0.1390 | 0.1956 |
0.4815 | 1.01 | 3000 | 0.1266 | 0.1813 |
0.6982 | 1.17 | 3500 | 0.1441 | 0.1965 |
0.4522 | 1.34 | 4000 | 0.1232 | 0.1822 |
0.4655 | 1.51 | 4500 | 0.1209 | 0.1702 |
0.4069 | 1.68 | 5000 | 0.1149 | 0.1688 |
0.4226 | 1.84 | 5500 | 0.1121 | 0.1560 |
0.3993 | 2.01 | 6000 | 0.1091 | 0.1557 |
0.406 | 2.18 | 6500 | 0.1115 | 0.1553 |
0.4098 | 2.35 | 7000 | 0.1144 | 0.1560 |
0.3995 | 2.51 | 7500 | 0.1028 | 0.1476 |
0.4101 | 2.68 | 8000 | 0.1129 | 0.1511 |
0.3636 | 2.85 | 8500 | 0.1025 | 0.1517 |
0.3534 | 3.02 | 9000 | 0.1068 | 0.1480 |
0.3836 | 3.18 | 9500 | 0.1072 | 0.1459 |
0.3531 | 3.35 | 10000 | 0.0928 | 0.1367 |
0.3649 | 3.52 | 10500 | 0.1042 | 0.1426 |
0.3645 | 3.69 | 11000 | 0.0979 | 0.1433 |
0.3685 | 3.85 | 11500 | 0.0947 | 0.1346 |
0.3325 | 4.02 | 12000 | 0.0991 | 0.1352 |
0.3497 | 4.19 | 12500 | 0.0919 | 0.1358 |
0.3303 | 4.36 | 13000 | 0.0888 | 0.1272 |
0.3323 | 4.52 | 13500 | 0.0888 | 0.1277 |
0.3452 | 4.69 | 14000 | 0.0894 | 0.1279 |
0.337 | 4.86 | 14500 | 0.0917 | 0.1289 |
0.3114 | 5.03 | 15000 | 0.0942 | 0.1313 |
0.3099 | 5.19 | 15500 | 0.0902 | 0.1239 |
0.3079 | 5.36 | 16000 | 0.0871 | 0.1256 |
0.3293 | 5.53 | 16500 | 0.0861 | 0.1263 |
0.3123 | 5.7 | 17000 | 0.0876 | 0.1203 |
0.3093 | 5.86 | 17500 | 0.0848 | 0.1226 |
0.2903 | 6.03 | 18000 | 0.0914 | 0.1221 |
0.297 | 6.2 | 18500 | 0.0841 | 0.1185 |
0.2797 | 6.37 | 19000 | 0.0858 | 0.1165 |
0.2878 | 6.53 | 19500 | 0.0874 | 0.1161 |
0.2974 | 6.7 | 20000 | 0.0835 | 0.1173 |
0.3051 | 6.87 | 20500 | 0.0835 | 0.1178 |
0.2941 | 7.04 | 21000 | 0.0852 | 0.1155 |
0.258 | 7.21 | 21500 | 0.0832 | 0.1132 |
0.2778 | 7.37 | 22000 | 0.0829 | 0.1110 |
0.2751 | 7.54 | 22500 | 0.0822 | 0.1069 |
0.2887 | 7.71 | 23000 | 0.0819 | 0.1103 |
0.2509 | 7.88 | 23500 | 0.0787 | 0.1055 |
0.2501 | 8.04 | 24000 | 0.0807 | 0.1076 |
0.2399 | 8.21 | 24500 | 0.0784 | 0.1052 |
0.2539 | 8.38 | 25000 | 0.0772 | 0.1075 |
0.248 | 8.55 | 25500 | 0.0772 | 0.1055 |
0.2689 | 8.71 | 26000 | 0.0763 | 0.1027 |
0.2855 | 8.88 | 26500 | 0.0756 | 0.1035 |
0.2421 | 9.05 | 27000 | 0.0771 | 0.0998 |
0.2497 | 9.22 | 27500 | 0.0756 | 0.0971 |
0.2367 | 9.38 | 28000 | 0.0741 | 0.0974 |
0.2473 | 9.55 | 28500 | 0.0739 | 0.0982 |
0.2396 | 9.72 | 29000 | 0.0756 | 0.0991 |
0.2602 | 9.89 | 29500 | 0.0737 | 0.0975 |
フレームワークバージョン
- 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](https://huggingface.co/datasets/mozilla - foundation/common_voice_7_0)、[Common Voice 9.0 Finnish test split](https://huggingface.co/datasets/mozilla - foundation/common_voice_9_0)、および 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 - v2 --dataset mozilla - foundation/common_voice_7_0 --config fi --split test
このモデル(表の5行目)は、他のモデルとそのパラメータ数と比較して、以下のWER(単語誤り率)およびCER(文字誤り率)の結果を達成します。
モデルパラメータ | WER (LMあり) | WER (LMなし) | CER (LMあり) | CER (LMなし) | |
---|---|---|---|---|---|
Finnish - NLP/wav2vec2 - base - fi - voxpopuli - v2 - finetuned | 9500万 | 5.85 | 13.52 | 1.35 | 2.44 |
Finnish - NLP/wav2vec2 - large - uralic - voxpopuli - v2 - finnish | 3億 | 4.13 | 9.66 | 0.90 | 1.66 |
Finnish - NLP/wav2vec2 - xlsr - 300m - finnish - lm | 3億 | 8.16 | 17.92 | 1.97 | 3.36 |
Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm | 10億 | 5.65 | 13.11 | 1.20 | 2.23 |
Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm - v2 | 10億 | 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 - v2 --dataset mozilla - foundation/common_voice_9_0 --config fi --split test
このモデル(表の5行目)は、他のモデルとそのパラメータ数と比較して、以下のWER(単語誤り率)およびCER(文字誤り率)の結果を達成します。
モデルパラメータ | WER (LMあり) | WER (LMなし) | CER (LMあり) | CER (LMなし) | |
---|---|---|---|---|---|
Finnish - NLP/wav2vec2 - base - fi - voxpopuli - v2 - finetuned | 9500万 | 5.93 | 14.08 | 1.40 | 2.59 |
Finnish - NLP/wav2vec2 - large - uralic - voxpopuli - v2 - finnish | 3億 | 4.13 | 9.83 | 0.92 | 1.71 |
Finnish - NLP/wav2vec2 - xlsr - 300m - finnish - lm | 3億 | 7.42 | 16.45 | 1.79 | 3.07 |
Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm | 10億 | 5.35 | 13.00 | 1.14 | 2.20 |
Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm - v2 | 10億 | 3.72 | 8.96 | 0.80 | 1.52 |
FLEURS ASR テスト
このモデルを評価するには、このリポジトリの eval.py
スクリプトを実行します。
python3 eval.py --model_id Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm - v2 --dataset google/fleurs --config fi_fi --split test
このモデルは、以下のWER(単語誤り率)およびCER(文字誤り率)の結果を達成します。
モデルパラメータ | WER (LMあり) | WER (LMなし) | CER (LMあり) | CER (LMなし) | |
---|---|---|---|---|---|
Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm - v2 | 10億 | 12.11 | - | 5.65 | - |
📄 ライセンス
このモデルは、Apache - 2.0ライセンスの下で提供されています。



