🚀 ノルウェー語のWav2Vec2モデル - 1B Nynorsk
このモデルは、Facebook/Metaの特徴抽出器XLS - Rをベースにファインチューニングされています。ファインチューニングされたモデルは、5-gram KenLMを使用したテストセットで以下の結果を達成しています。括弧内の数字は言語モデルを使用しない場合の結果です。
- WER: 0.1132 (0.1364)
- CER: 0.0402 (---)
✨ 主な機能
このモデルは、🤗が主催したRobust Speech Eventの間にチームが作成したいくつかのWav2Vecモデルの1つです。以下は、当チームが作成したモデルとその最終スコアの完全なリストです。
📦 インストール
このモデルを再現するには、🤗の指示に従って、シンプルなスウェーデン語モデルをトレーニングすることを強くおすすめします。
これができることを確認したら、新しいリポジトリを作成します。その後、当リポジトリからファイルrun.sh
とrun_speech_recognition_ctc.py
をコピーして始めることができます。これらを実行すると、他の必要なファイルがすべて作成され、当チームの結果を再現できるはずです。ハイパーパラメータを調整することで、さらに良い自動音声認識(ASR)モデルを構築することもできるかもしれません。
言語モデル
スコアが示すように、単純な5-gram言語モデルを追加するだけで結果が向上します。🤗は、ASRモデルを改善するために5-gram言語モデルを追加する方法を説明した非常に良いブログを提供しています。これは、独自のコーパスから構築することができます。たとえば、Norwegian Colossal Corpusから適切なテキストを抽出することができます。また、ガイドの一部の手順をスキップして、このリポジトリの5-gramモデルをコピーすることもできます。
パラメータ
最終モデルは、以下のパラメータを使用して実行されました。
--dataset_name="NbAiLab/NPSC"
--model_name_or_path="facebook/wav2vec2-xls-r-1b"
--dataset_config_name="16K_mp3_nynorsk"
--output_dir="./"
--overwrite_output_dir
--num_train_epochs="40"
--per_device_train_batch_size="12"
--per_device_eval_batch_size="12"
--gradient_accumulation_steps="2"
--learning_rate="2e-5"
--warmup_steps="2000"
--length_column_name="input_length"
--evaluation_strategy="steps"
--text_column_name="text"
--save_steps="500"
--eval_steps="500"
--logging_steps="100"
--layerdrop="0.041"
--attention_dropout="0.094"
--activation_dropout="0.055"
--hidden_dropout="0.047"
--save_total_limit="3"
--freeze_feature_encoder
--feat_proj_dropout="0.04"
--mask_time_prob="0.082"
--mask_time_length="10"
--mask_feature_prob="0.25"
--mask_feature_length="64"
--gradient_checkpointing
--min_duration_in_seconds="0.5"
--max_duration_in_seconds="30.0"
--ctc_zero_infinity=True
--use_auth_token
--seed="42"
--fp16
--group_by_length
--do_train --do_eval
--push_to_hub
--preprocessing_num_workers="16"
これらの設定を使用すると、平均的なGPUでトレーニングに3 - 4日かかる場合があります。ただし、これらのパラメータを調整することで、適切なモデルを得ることができ、結果をより早く得ることができます。
パラメータ |
コメント |
per_device_train_batch_size |
これを利用可能なメモリの最大値に調整します。システムに応じて、16または24が適切な設定かもしれません。 |
gradient_accumulation_steps |
バッチサイズを増やし、メモリの問題を起こさずにトレーニングを高速化するために、さらに調整することができます。 |
learning_rate |
増やすことができ、最大で1e - 4までにすることができます。トレーニングを高速化しますが、不安定性が生じる可能性があります。 |
epochs |
大幅に減らすことができます。これは非常に大きなデータセットであり、数エポックで適切な結果が得られる可能性があります。 |
💻 使用例
基本的な使用法
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
import torch
import soundfile as sf
processor = Wav2Vec2Processor.from_pretrained("NbAiLab/nb-wav2vec2-1b-nynorsk")
model = Wav2Vec2ForCTC.from_pretrained("NbAiLab/nb-wav2vec2-1b-nynorsk")
audio_input, sample_rate = sf.read("your_audio_file.wav")
input_values = processor(audio_input, sampling_rate=sample_rate, return_tensors="pt").input_values
with torch.no_grad():
logits = model(input_values).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.decode(predicted_ids[0])
print(transcription)
📚 ドキュメント
データセット
イベントと並行して、チームはNorwegian Parliamentary Speech Corpus (NPSC)を🤗 Dataset形式のNbAiLab/NPSCに変換し、これをトレーニングの主要なソースとして使用しました。
コード
チームは、イベント中に開発したすべてのコードを公開しています。これにより、ノルウェー語のNLPコミュニティは、さらに良いノルウェー語の自動音声認識システムを開発する際にこれを活用することができます。これらのモデルのファインチューニングは、それほど多くの計算資源を必要としません。ここの指示に従えば、平均的なGPUで1日以内に独自の自動音声認識システムをトレーニングすることができるはずです。
チーム
このモデルの構築に貢献したのは、以下の人物です。Rolv - Arild Braaten、Javier de la Rosa、およびFreddy Wetjen。
🔧 技術詳細
このモデルは、Facebook/MetaのXLS - Rの特徴抽出器をベースにファインチューニングされています。ファインチューニングには、NbAiLab/NPSCデータセットを使用しています。
📄 ライセンス
このモデルは、Apache - 2.0ライセンスの下で提供されています。
📖 引用
@inproceedings{de-la-rosa-etal-2023-boosting,
title = "Boosting {N}orwegian Automatic Speech Recognition",
author = "De La Rosa, Javier and
Braaten, Rolv-Arild and
Kummervold, Per and
Wetjen, Freddy",
booktitle = "Proceedings of the 24th Nordic Conference on Computational Linguistics (NoDaLiDa)",
month = may,
year = "2023",
address = "T{\'o}rshavn, Faroe Islands",
publisher = "University of Tartu Library",
url = "https://aclanthology.org/2023.nodalida-1.55",
pages = "555--564",
abstract = "In this paper, we present several baselines for automatic speech recognition (ASR) models for the two official written languages in Norway: Bokm{\aa}l and Nynorsk. We compare the performance of models of varying sizes and pre-training approaches on multiple Norwegian speech datasets. Additionally, we measure the performance of these models against previous state-of-the-art ASR models, as well as on out-of-domain datasets. We improve the state of the art on the Norwegian Parliamentary Speech Corpus (NPSC) from a word error rate (WER) of 17.10{\%} to 7.60{\%}, with models achieving 5.81{\%} for Bokm{\aa}l and 11.54{\%} for Nynorsk. We also discuss the challenges and potential solutions for further improving ASR models for Norwegian.",
}
詳細は、https://arxiv.org/abs/2307.01672を参照してください。