モデル概要
モデル特徴
モデル能力
使用事例
🚀 Wav2Vec2-base-fi-voxpopuli-v2 フィンランド語自動音声認識モデル
この音響モデルは、フィンランド語の自動音声認識(ASR)用に facebook/wav2vec2-base-fi-voxpopuli-v2 をファインチューニングしたバージョンです。276.7時間のフィンランド語の文字起こし音声データを使ってファインチューニングされています。Wav2Vec2は この論文 で紹介され、このページ で最初に公開されました。
このリポジトリには、音響モデルのデコード段階で使用されるフィンランド語のKenLM言語モデルも含まれています。
🚀 クイックスタート
このモデルはフィンランド語の自動音声認識(音声からテキストへ)タスクに使用できます。詳細な使用例については、このリポジトリの run-finnish-asr-models.ipynb ノートブックを確認してください。
✨ 主な機能
モデル概要
Wav2vec2-base-fi-voxpopuli-v2 は、Facebook AIによるフィンランド語音声用の事前学習モデルです。VoxPopuli V2データセット からの14.2k時間のラベルなしフィンランド語音声を使って、wav2vec 2.0の目的関数で事前学習されています。このモデルは、フィンランド語の自動音声認識用に事前学習モデルをファインチューニングしたバージョンです。
想定用途と制限
- 想定用途:フィンランド語の自動音声認識(音声からテキストへ)タスクに使用できます。
- 制限とバイアス:
- このモデルは最大長が20秒の音声サンプルでファインチューニングされているため、おそらく同程度の短い音声に最適に動作します。ただし、もっと長い音声でも試すことができます。非常に長い音声ファイルでメモリ不足エラーが発生した場合は、このブログ記事 で紹介されている音声チャンキング方法を使用できます。
- ファインチューニングに使用されたデータの大部分はフィンランド議会のデータセットからのものであるため、このモデルは方言を含む日常会話などの非常に異なるドメインにはうまく汎化しない可能性があります。また、データセットの音声は成人男性が主体であるため、このモデルは子供や女性の音声ではうまく動作しない可能性があります。
- デコード段階で使用されるフィンランド語のKenLM言語モデルは、音声の文字起こしデータとフィンランド語Wikipediaのサブセットからのテキストデータで学習されています。したがって、デコーダの言語モデルは、特にWikipediaが主に正式なフィンランド語を含んでいるため、方言を含む日常会話などの非常に異なる言語には汎化しない可能性があります。独自のKenLM言語モデルをドメイン言語用に学習し、デコードで使用することが有益な場合があります。
📦 インストール
このREADMEには具体的なインストール手順が記載されていないため、このセクションは省略されます。
💻 使用例
このREADMEには具体的なコード例が記載されていないため、このセクションは省略されます。
📚 ドキュメント
学習データ
このモデルは、以下のデータセットからの276.7時間のフィンランド語の文字起こし音声データでファインチューニングされています。
データセット | 時間 | 総時間の割合 |
---|---|---|
Common Voice 9.0 Finnish train + evaluation + other splits | 10.80時間 | 3.90 % |
Finnish parliament session 2 | 0.24時間 | 0.09 % |
VoxPopuli Finnish | 21.97時間 | 7.94 % |
CSS10 Finnish | 10.32時間 | 3.73 % |
Aalto Finnish Parliament ASR Corpus | 228.00時間 | 82.40 % |
Finnish Broadcast Corpus | 5.37時間 | 1.94 % |
データセットは、最大長が20秒の音声サンプルを含むようにフィルタリングされています。
学習手順
このモデルは、Hugging FaceとOVHcloudが提供するTesla V100 GPUで学習されました。学習スクリプトはHugging Faceによって提供され、ここ で入手できます。カスタムデータセットのデータロード部分のみを変更しました。
KenLM言語モデルの学習には、Hugging Faceが提供する ブログ記事のチュートリアル に従いました。5-gram KenLMの学習データは、音声学習データのテキスト文字起こしと、クリーニングされた フィンランド語Wikipedia(2021年8月)データセットのランダムな100kサンプルでした。
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは以下の通りです。
- learning_rate: 1e-04
- train_batch_size: 64
- eval_batch_size: 64
- 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: 10
- mixed_precision_training: Native AMP
事前学習された facebook/wav2vec2-base-fi-voxpopuli-v2
モデルは、以下のハイパーパラメータで初期化されました。
- 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) |
---|---|---|---|---|
1.575 | 0.33 | 500 | 0.7454 | 0.7048 |
0.5838 | 0.66 | 1000 | 0.2377 | 0.2608 |
0.5692 | 1.0 | 1500 | 0.2014 | 0.2244 |
0.5112 | 1.33 | 2000 | 0.1885 | 0.2013 |
0.4857 | 1.66 | 2500 | 0.1881 | 0.2120 |
0.4821 | 1.99 | 3000 | 0.1603 | 0.1894 |
0.4531 | 2.32 | 3500 | 0.1594 | 0.1865 |
0.4411 | 2.65 | 4000 | 0.1641 | 0.1874 |
0.4437 | 2.99 | 4500 | 0.1545 | 0.1874 |
0.4191 | 3.32 | 5000 | 0.1565 | 0.1770 |
0.4158 | 3.65 | 5500 | 0.1696 | 0.1867 |
0.4032 | 3.98 | 6000 | 0.1561 | 0.1746 |
0.4003 | 4.31 | 6500 | 0.1432 | 0.1749 |
0.4059 | 4.64 | 7000 | 0.1390 | 0.1690 |
0.4019 | 4.98 | 7500 | 0.1291 | 0.1646 |
0.3811 | 5.31 | 8000 | 0.1485 | 0.1755 |
0.3955 | 5.64 | 8500 | 0.1351 | 0.1659 |
0.3562 | 5.97 | 9000 | 0.1328 | 0.1614 |
0.3646 | 6.3 | 9500 | 0.1329 | 0.1584 |
0.351 | 6.64 | 10000 | 0.1342 | 0.1554 |
0.3408 | 6.97 | 10500 | 0.1422 | 0.1509 |
0.3562 | 7.3 | 11000 | 0.1309 | 0.1528 |
0.3335 | 7.63 | 11500 | 0.1305 | 0.1506 |
0.3491 | 7.96 | 12000 | 0.1365 | 0.1560 |
0.3538 | 8.29 | 12500 | 0.1293 | 0.1512 |
0.3338 | 8.63 | 13000 | 0.1328 | 0.1511 |
0.3509 | 8.96 | 13500 | 0.1304 | 0.1520 |
0.3431 | 9.29 | 14000 | 0.1360 | 0.1517 |
0.3309 | 9.62 | 14500 | 0.1328 | 0.1514 |
0.3252 | 9.95 | 15000 | 0.1316 | 0.1498 |
フレームワークバージョン
- Transformers 4.19.1
- Pytorch 1.11.0+cu102
- Datasets 2.2.1
- 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 9.0の学習分割が含まれていますが、以前のモデルの大部分はCommon Voice 7.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-base-fi-voxpopuli-v2-finetuned --dataset mozilla-foundation/common_voice_7_0 --config fi --split test
このモデル(表の最初の行)は、他のモデルとそのパラメータ数と比較して、以下の単語誤り率(WER)と文字誤り率(CER)の結果を達成します。
モデルパラメータ | WER (言語モデルあり) | WER (言語モデルなし) | CER (言語モデルあり) | CER (言語モデルなし) | |
---|---|---|---|---|---|
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-base-fi-voxpopuli-v2-finetuned --dataset mozilla-foundation/common_voice_9_0 --config fi --split test
このモデル(表の最初の行)は、他のモデルとそのパラメータ数と比較して、以下の単語誤り率(WER)と文字誤り率(CER)の結果を達成します。
モデルパラメータ | WER (言語モデルあり) | WER (言語モデルなし) | CER (言語モデルあり) | CER (言語モデルなし) | |
---|---|---|---|---|---|
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-base-fi-voxpopuli-v2-finetuned --dataset google/fleurs --config fi_fi --split test
このモデル(表の最初の行)は、他のモデルとそのパラメータ数と比較して、以下の単語誤り率(WER)と文字誤り率(CER)の結果を達成します。
モデルパラメータ | WER (言語モデルあり) | WER (言語モデルなし) | CER (言語モデルあり) | CER (言語モデルなし) | |
---|---|---|---|---|---|
Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned | 9500万 | 13.99 | 17.16 | 6.07 | 6.61 |
Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish | 3億 | 12.44 | 14.63 | 5.77 | 6.22 |
Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm | 3億 | 17.72 | 23.30 | 6.78 | 7.67 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm | 10億 | 20.34 | 16.67 | 6.97 | 6.35 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2 | 10億 | 12.11 | 14.89 | 5.65 | 6.06 |
🔧 技術詳細
このREADMEには具体的な技術詳細が記載されていないため、このセクションは省略されます。
📄 ライセンス
このモデルはApache-2.0ライセンスの下で提供されています。
チームメンバー
- Aapo Tanskanen, Hugging Faceプロフィール, LinkedInプロフィール
- Rasmus Toivanen, Hugging Faceプロフィール, LinkedInプロフィール
詳細については、自由にお問い合わせください 🤗



