🚀 微調整済みXLS - R 1Bドイツ語音声認識モデル
このプロジェクトは、微調整済みの音声認識モデルです。[facebook/wav2vec2 - xls - r - 1b](https://huggingface.co/facebook/wav2vec2 - xls - r - 1b) モデルをベースに、[Common Voice 8.0](https://huggingface.co/datasets/mozilla - foundation/common_voice_8_0)、Multilingual TEDx、Multilingual LibriSpeech、および Voxpopuli のトレーニングセットと検証セットを使用して、ドイツ語で微調整されています。このモデルを使用する際には、入力音声のサンプリングレートが16kHzであることを確認してください。
このモデルは HuggingSound ツールを使用して微調整されており、[OVHcloud](https://www.ovhcloud.com/en/public - cloud/ai - training/) が提供してくれたGPU計算リソースに感謝いたします。
🚀 クイックスタート
モデル情報
属性 |
詳細 |
サポート言語 |
ドイツ語 |
ライセンス |
Apache - 2.0 |
タグ |
自動音声認識、ドイツ語、HF音声認識ランキング、mozilla - foundation/common_voice_8_0、ロバスト音声イベント |
データセット |
mozilla - foundation/common_voice_8_0 |
モデル評価結果
タスク |
データセット |
指標 |
値 |
自動音声認識 |
Common Voice 8 |
テスト単語誤り率(WER) |
10.95 |
自動音声認識 |
Common Voice 8 |
テスト文字誤り率(CER) |
2.72 |
自動音声認識 |
Common Voice 8(+言語モデル) |
テスト単語誤り率(WER) |
8.13 |
自動音声認識 |
Common Voice 8(+言語モデル) |
テスト文字誤り率(CER) |
2.18 |
自動音声認識 |
ロバスト音声イベント - 開発データ |
開発単語誤り率(WER) |
22.68 |
自動音声認識 |
ロバスト音声イベント - 開発データ |
開発文字誤り率(CER) |
9.17 |
自動音声認識 |
ロバスト音声イベント - 開発データ(+言語モデル) |
開発単語誤り率(WER) |
17.07 |
自動音声認識 |
ロバスト音声イベント - 開発データ(+言語モデル) |
開発文字誤り率(CER) |
8.45 |
自動音声認識 |
ロバスト音声イベント - テストデータ |
テスト単語誤り率(WER) |
19.67 |
✨ 主な機能
- XLS - R 1Bモデルをベースに微調整されており、ドイツ語音声認識タスクで優れた性能を発揮します。
- 複数の公開データセットを使用してトレーニングされているため、モデルの汎化能力が向上しています。
- HuggingSound ライブラリを使用して迅速に音声認識を行うことができるほか、推論スクリプトをカスタマイズすることも可能です。
📦 インストール
ドキュメントに具体的なインストール手順は記載されていません。huggingsound
、transformers
、torch
、librosa
、datasets
などの関連依存ライブラリの公式ドキュメントを参照してインストールしてください。
💻 使用例
基本的な使用法
HuggingSound ライブラリを使用して音声認識を行う例:
from huggingsound import SpeechRecognitionModel
model = SpeechRecognitionModel("jonatasgrosman/wav2vec2-xls-r-1b-german")
audio_paths = ["/path/to/file.mp3", "/path/to/another_file.wav"]
transcriptions = model.transcribe(audio_paths)
高度な使用法
推論スクリプトをカスタマイズする例:
import torch
import librosa
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
LANG_ID = "de"
MODEL_ID = "jonatasgrosman/wav2vec2-xls-r-1b-german"
SAMPLES = 10
test_dataset = load_dataset("common_voice", LANG_ID, split=f"test[:{SAMPLES}]")
processor = Wav2Vec2Processor.from_pretrained(MODEL_ID)
model = Wav2Vec2ForCTC.from_pretrained(MODEL_ID)
def speech_file_to_array_fn(batch):
speech_array, sampling_rate = librosa.load(batch["path"], sr=16_000)
batch["speech"] = speech_array
batch["sentence"] = batch["sentence"].upper()
return batch
test_dataset = test_dataset.map(speech_file_to_array_fn)
inputs = processor(test_dataset["speech"], sampling_rate=16_000, return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(inputs.input_values, attention_mask=inputs.attention_mask).logits
predicted_ids = torch.argmax(logits, dim=-1)
predicted_sentences = processor.batch_decode(predicted_ids)
📚 ドキュメント
評価コマンド
mozilla - foundation/common_voice_8_0
データセットの test
分割で評価を行う:
python eval.py --model_id jonatasgrosman/wav2vec2-xls-r-1b-german --dataset mozilla-foundation/common_voice_8_0 --config de --split test
speech - recognition - community - v2/dev_data
データセットで評価を行う:
python eval.py --model_id jonatasgrosman/wav2vec2-xls-r-1b-german --dataset speech-recognition-community-v2/dev_data --config de --split validation --chunk_length_s 5.0 --stride_length_s 1.0
引用情報
このモデルを引用する場合は、以下のBibTeX形式を使用できます:
@misc{grosman2021xlsr-1b-german,
title={Fine-tuned {XLS-R} 1{B} model for speech recognition in {G}erman},
author={Grosman, Jonatas},
howpublished={\url{https://huggingface.co/jonatasgrosman/wav2vec2-xls-r-1b-german}},
year={2022}
}
📄 ライセンス
このプロジェクトはApache - 2.0ライセンスを使用しています。