🚀 Wav2Vec2 XLS-R for Finnish ASR
この音響モデルは、フィンランド語の自動音声認識(ASR)用に facebook/wav2vec2-xls-r-300m をファインチューニングしたバージョンです。このモデルは、275.6時間のフィンランド語の音声文字起こしデータを使ってファインチューニングされています。Wav2Vec2 XLS-R は、この論文 で紹介され、このページ で最初に公開されました。
このリポジトリには、音響モデルのデコード段階で使用されるフィンランド語のKenLM言語モデルも含まれています。
注意: このモデルは Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm モデルとまったく同じです。つまり、このモデルは Finnish-NLP
のHugging Face組織にコピー/移動されただけです。
🚀 クイックスタート
この音響モデルは、フィンランド語の自動音声認識に特化してファインチューニングされたもので、多くの音声データを用いて高精度化されています。
✨ 主な機能
- フィンランド語の自動音声認識に特化した音響モデル。
- デコード段階でKenLM言語モデルを使用し、認識精度を向上。
- 多言語事前学習モデルをベースにしているため、汎用性が高い。
📚 ドキュメント
モデルの説明
Wav2Vec2 XLS-Rは、Facebook AIによる大規模な多言語音声事前学習モデルです。VoxPopuli、MLS、CommonVoice、BABEL、VoxLingua107など、436,000時間のラベルなし音声データで事前学習されています。このモデルは、128言語でwav2vec 2.0の目的関数を使用して学習されています。
事前学習モデルについての詳細は、このブログ と この論文 を参照してください。
このモデルは、フィンランド語のASR用に事前学習モデル(3億パラメータのバリアント)をファインチューニングしたものです。
想定される用途と制限
用途
このモデルは、フィンランド語の自動音声認識(音声からテキストへの変換)タスクに使用できます。
使い方
このモデルの詳細な使用例については、このリポジトリ内の run-finnish-asr-models.ipynb ノートブックを参照してください。
制限とバイアス
- このモデルは、最大長が20秒の音声サンプルでファインチューニングされているため、同程度の長さの比較的短い音声に最適に動作する可能性が高いです。ただし、もっと長い音声でも試すことができます。非常に長い音声ファイルでメモリ不足のエラーが発生した場合は、このブログ記事 で紹介されている音声チャンキング方法を使用できます。
- ファインチューニングに使用されたデータの大部分はフィンランド議会のデータセットからのものであるため、このモデルは、方言を含む日常会話など、非常に異なるドメインにはうまく汎化しない可能性があります。また、データセットの音声は成人男性が主体であるため、このモデルは、例えば子供や女性の音声に対してはうまく機能しない可能性があります。
- デコード段階で使用されるフィンランド語のKenLM言語モデルは、音声文字起こしのテキストデータとフィンランド語Wikipediaのサブセットを使って学習されています。したがって、デコーダの言語モデルは、非常に異なる言語、例えば方言を含む日常会話言語にはうまく汎化しない可能性があります(特にWikipediaには主に正式なフィンランド語が含まれているため)。独自のドメイン言語用にKenLM言語モデルを学習し、デコードに使用することが有益な場合があります。
学習データ
このモデルは、以下のデータセットからの275.6時間のフィンランド語の音声文字起こしデータでファインチューニングされています。
データセットは、最大長が20秒の音声サンプルのみを含むようにフィルタリングされています。
学習手順
このモデルは、Hugging Faceが主催する Robust Speech Challenge Event の間に学習されました。学習は、OVHcloudが提供するTesla V100 GPUで行われました。
学習スクリプトはHugging Faceによって提供されており、こちら で入手できます。カスタムデータセットのデータ読み込み部分のみを変更しました。
KenLM言語モデルの学習については、Hugging Faceが提供する ブログ記事のチュートリアル に従いました。5-gram KenLMの学習データは、音声学習データのテキスト文字起こしと、クリーニングされた フィンランド語Wikipedia (2021年8月)データセットの100,000件のランダムサンプルでした。
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは以下の通りです。
- 学習率: 5e-04
- 学習バッチサイズ: 32
- 評価バッチサイズ: 32
- シード: 42
- オプティマイザ: 8-bit Adam (ベータ=(0.9, 0.999)、イプシロン=1e-08)
- 学習率スケジューラの種類: 線形
- 学習率スケジューラのウォームアップステップ: 500
- エポック数: 10
- 混合精度学習: Native AMP
事前学習された facebook/wav2vec2-xls-r-300m
モデルは、以下のハイパーパラメータで初期化されました。
- アテンションドロップアウト: 0.094
- 隠れ層ドロップアウト: 0.047
- 特徴投影ドロップアウト: 0.04
- マスク時間確率: 0.082
- レイヤードロップ: 0.041
- 活性化ドロップアウト: 0.055
- CTC損失の削減方法: "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 Finnish test split を使用して行われました。
このモデルを評価するには、このリポジトリ内の eval.py
スクリプトを実行します。
python3 eval.py --model_id aapot/wav2vec2-xlsr-300m-finnish-lm --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ライセンスの下で提供されています。