🚀 Wav2Vec2 XLS - R フィンランド語自動音声認識モデル
この音響モデルは、フィンランド語の自動音声認識(ASR)用に facebook/wav2vec2-xls-r-300m をファインチューニングしたバージョンです。このモデルは、275.6時間のフィンランド語の文字起こし音声データを使ってファインチューニングされています。Wav2Vec2 XLS - R は この論文 で紹介され、このページ で最初に公開されました。
注意: デコード段階でKenLM言語モデルを使用し、より良い文字起こし結果を生み出すバージョンがあります: Finnish - NLP/wav2vec2-xlsr-300m-finnish-lm
✨ 主な機能
モデルの説明
Wav2Vec2 XLS - R は、Facebook AIによる大規模な多言語音声事前学習モデルです。VoxPopuli、MLS、CommonVoice、BABEL、VoxLingua107を含む436,000時間のラベルなし音声データで事前学習されています。このモデルは、128の言語でwav2vec 2.0の目的関数を使用しています。
事前学習モデルについての詳細は、このブログ と この論文 を参照してください。
このモデルは、事前学習モデル(3億パラメータのバリアント)をフィンランド語のASR用にファインチューニングしたものです。
想定される用途と制限
このモデルは、フィンランド語の自動音声認識(音声からテキストへの変換)タスクに使用できます。
使い方
このモデルの使用方法の詳細な例については、このリポジトリ内の run - finnish - asr - models.ipynb ノートブックを確認してください。
制限とバイアス
このモデルは、最大長が20秒の音声サンプルでファインチューニングされているため、おそらく同程度の短い音声に最適に動作します。ただし、より長い音声でも試すことができ、動作状況を確認できます。非常に長い音声ファイルでメモリ不足のエラーが発生した場合は、このブログ記事 で紹介されている音声チャンキング方法を使用できます。
ファインチューニングに使用されたデータの大部分はフィンランド議会のデータセットからのものであるため、このモデルは、方言を含む日常会話などの非常に異なるドメインにはうまく汎化できない可能性があります。さらに、データセットの音声は成人男性が主体であるため、このモデルは、例えば子供や女性の音声に対してはうまく機能しない可能性があります。
📦 インストール
このREADMEには具体的なインストール手順が記載されていないため、このセクションは省略されます。
💻 使用例
このREADMEには具体的なコード例が記載されていないため、このセクションは省略されます。
📚 ドキュメント
学習データ
このモデルは、以下のデータセットからの275.6時間のフィンランド語の文字起こし音声データでファインチューニングされています。
データセットは、最大長が20秒の音声サンプルのみを含むようにフィルタリングされています。
学習手順
このモデルは、Hugging Faceが主催する Robust Speech Challenge Event 中に学習されました。学習は、OVHcloudが提供するTesla V100 GPU上で行われました。
学習スクリプトはHugging Faceによって提供され、ここ で入手できます。私たちは、カスタムデータセットのデータ読み込み部分のみを変更しました。
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは以下の通りです。
- learning_rate: 5e - 04
- train_batch_size: 32
- eval_batch_size: 32
- 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-300m
モデルは、以下のハイパーパラメータで初期化されました。
- 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.973 |
0.17 |
500 |
0.5750 |
0.6844 |
0.713 |
0.34 |
1000 |
0.3356 |
0.4518 |
0.6563 |
0.5 |
1500 |
0.3007 |
0.4039 |
0.642 |
0.67 |
2000 |
0.2619 |
0.3674 |
0.6203 |
0.84 |
2500 |
0.2488 |
0.3558 |
0.6016 |
1.01 |
3000 |
0.2795 |
0.3835 |
0.5423 |
1.17 |
3500 |
0.2652 |
0.3310 |
0.5639 |
1.34 |
4000 |
0.2479 |
0.3462 |
0.586 |
1.51 |
4500 |
0.2409 |
0.3295 |
0.5169 |
1.68 |
5000 |
0.2728 |
0.3352 |
0.5176 |
1.84 |
5500 |
0.2254 |
0.3149 |
0.4983 |
2.01 |
6000 |
0.2169 |
0.3009 |
0.4982 |
2.18 |
6500 |
0.2215 |
0.3079 |
0.4898 |
2.35 |
7000 |
0.2174 |
0.3023 |
0.4922 |
2.51 |
7500 |
0.2217 |
0.3081 |
0.5025 |
2.68 |
8000 |
0.2002 |
0.2710 |
0.4745 |
2.85 |
8500 |
0.1935 |
0.2783 |
0.4377 |
3.02 |
9000 |
0.1859 |
0.2742 |
0.4511 |
3.18 |
9500 |
0.2038 |
0.2786 |
0.4411 |
3.35 |
10000 |
0.1863 |
0.2651 |
0.4501 |
3.52 |
10500 |
0.1948 |
0.2605 |
0.4557 |
3.69 |
11000 |
0.1872 |
0.2695 |
0.4493 |
3.85 |
11500 |
0.1888 |
0.2632 |
0.4047 |
4.02 |
12000 |
0.1818 |
0.2559 |
0.4319 |
4.19 |
12500 |
0.1896 |
0.2648 |
0.4162 |
4.36 |
13000 |
0.1953 |
0.2595 |
0.4046 |
4.52 |
13500 |
0.1864 |
0.2606 |
0.4195 |
4.69 |
14000 |
0.1843 |
0.2467 |
0.4146 |
4.86 |
14500 |
0.1686 |
0.2450 |
0.378 |
5.03 |
15000 |
0.1731 |
0.2401 |
0.3792 |
5.19 |
15500 |
0.1676 |
0.2325 |
0.3855 |
5.36 |
16000 |
0.1740 |
0.2326 |
0.4029 |
5.53 |
16500 |
0.1674 |
0.2345 |
0.386 |
5.7 |
17000 |
0.1735 |
0.2280 |
0.3811 |
5.86 |
17500 |
0.1692 |
0.2258 |
0.3607 |
6.03 |
18000 |
0.1797 |
0.2279 |
0.3604 |
6.2 |
18500 |
0.1651 |
0.2206 |
0.3362 |
6.37 |
19000 |
0.1627 |
0.2199 |
0.3611 |
6.53 |
19500 |
0.1652 |
0.2172 |
0.3671 |
6.7 |
20000 |
0.1564 |
0.2140 |
0.3769 |
6.87 |
20500 |
0.1525 |
0.2101 |
0.3539 |
7.04 |
21000 |
0.1639 |
0.2096 |
0.3225 |
7.21 |
21500 |
0.1611 |
0.2087 |
0.3323 |
7.37 |
22000 |
0.1633 |
0.2008 |
0.3327 |
7.54 |
22500 |
0.1692 |
0.1975 |
0.3456 |
7.71 |
23000 |
0.1555 |
0.1991 |
0.3058 |
7.88 |
23500 |
0.1590 |
0.1959 |
0.3034 |
8.04 |
24000 |
0.1531 |
0.1973 |
0.2925 |
8.21 |
24500 |
0.1583 |
0.1978 |
0.2967 |
8.38 |
25000 |
0.1546 |
0.1906 |
0.2974 |
8.55 |
25500 |
0.1540 |
0.1869 |
0.3131 |
8.71 |
26000 |
0.1534 |
0.1850 |
0.3306 |
8.88 |
26500 |
0.1482 |
0.1844 |
0.2842 |
9.05 |
27000 |
0.1490 |
0.1854 |
0.2879 |
9.22 |
27500 |
0.1463 |
0.1799 |
0.27 |
9.38 |
28000 |
0.1454 |
0.1798 |
0.2874 |
9.55 |
28500 |
0.1504 |
0.1787 |
0.2757 |
9.72 |
29000 |
0.1512 |
0.1784 |
0.3017 |
9.89 |
29500 |
0.1484 |
0.1800 |
フレームワークのバージョン
- Transformers 4.17.0.dev0
- Pytorch 1.10.2+cu102
- Datasets 1.18.3
- Tokenizers 0.11.0
評価結果
評価は、Common Voice 7.0 フィンランド語のテスト分割データセット を使用して行われました。
このモデルを評価するには、このリポジトリ内の eval.py
スクリプトを実行します。
python3 eval.py --model_id aapot/wav2vec2-xlsr-300m-finnish --dataset mozilla-foundation/common_voice_7_0 --config fi --split test
このモデル(表の3行目)は、他のモデルと比較して、以下の単語誤り率(WER)と文字誤り率(CER)の結果を達成しています。
モデル名 |
WER (LMあり) |
WER (LMなし) |
CER (LMあり) |
CER (LMなし) |
aapot/wav2vec2-xlsr-1b-finnish-lm-v2 |
4.09 |
9.73 |
0.88 |
1.65 |
aapot/wav2vec2-xlsr-1b-finnish-lm |
5.65 |
13.11 |
1.20 |
2.23 |
aapot/wav2vec2-xlsr-300m-finnish-lm |
8.16 |
17.92 |
1.97 |
3.36 |
チームメンバー
詳細については、自由にお問い合わせください 🤗
📄 ライセンス
このモデルは、Apache 2.0ライセンスの下で提供されています。