🚀 Wav2Vec2-2-Bart-Large-Tedlium
このモデルは、TEDLIUMコーパス(リリース3)で学習されたシーケンス-2-シーケンス(seq2seq)モデルです。音声エンコーダとテキストデコーダを組み合わせて、自動音声認識を行います。エンコーダの重みは@facebookのWav2Vec2 LV-60kチェックポイントで初期化され、デコーダの重みは@facebookのBart largeチェックポイントで初期化されます。
モデルを使用する際には、音声入力が16Khzでサンプリングされていることを確認してください。このモデルは、開発セットで9.0%、テストセットで6.4%の単語誤り率(WER)を達成しています。学習ログには、50kステップの微調整にわたる学習と評価の進捗が記録されています。
🚀 クイックスタート
このモデルは、音声ファイルの文字起こしを行うために、以下のようにスタンドアロンの音響モデルとして使用できます。
基本的な使用法
from transformers import AutoProcessor, SpeechEncoderDecoderModel
from datasets import load_dataset
import torch
processor = AutoProcessor.from_pretrained("sanchit-gandhi/wav2vec2-2-bart-large-tedlium")
model = SpeechEncoderDecoderModel.from_pretrained("sanchit-gandhi/wav2vec2-2-bart-large-tedlium")
ds = load_dataset("sanchit-gandhi/tedlium_dummy", split="validation")
input_values = processor(ds[0]["audio"]["array"], return_tensors="pt", padding="longest").input_values
generated = model.generate(input_values)
decoded = processor.batch_decode(generated, skip_special_tokens=True)
print("Target: ", ds["text"][0])
print("Transcription: ", decoded[0])
✨ 主な機能
- 音声エンコーダとテキストデコーダを組み合わせた自動音声認識機能。
- TEDLIUMコーパス(リリース3)で学習されたseq2seqモデル。
- 開発セットで9.0%、テストセットで6.4%の単語誤り率(WER)を達成。
📚 ドキュメント
評価
以下のコードスニペットは、Wav2Vec2-Large-TedliumをTEDLIUMテストデータで評価する方法を示しています。
from datasets import load_dataset
from transformers import AutoProcessor, SpeechEncoderDecoderModel
import torch
from jiwer import wer
tedlium_eval = load_dataset("LIUM/tedlium", "release3", split="test")
def filter_ds(text):
return text != "ignore_time_segment_in_scoring"
tedlium_eval = tedlium_eval.map(filter_ds, input_columns=["text"])
model = SpeechEncoderDecoderModel.from_pretrained("sanchit-gandhi/wav2vec2-2-bart-large-tedlium").to("cuda")
processor = AutoProcessor.from_pretrained("sanchit-gandhi/wav2vec2-2-bart-large-tedlium")
gen_kwargs = {
"max_length": 200,
"num_beams": 5,
"length_penalty": 1.2
}
def map_to_pred(batch):
input_values = processor(batch["audio"]["array"], return_tensors="pt", padding="longest").input_values
with torch.no_grad():
generated = model.generate(input_values.to("cuda"), **gen_kwargs)
decoded = processor.batch_decode(generated, skip_special_tokens=True)
batch["transcription"] = decoded[0]
return batch
result = tedlium_eval.map(map_to_pred, batched=True, batch_size=1, remove_columns=["speech"])
print("WER:", wer(result["text"], result["transcription"]))
📄 ライセンス
このモデルはCC BY 4.0ライセンスの下で提供されています。
メトリクス
名称 |
種類 |
値 |
Dev WER |
wer |
9.0 |
Test WER |
wer |
6.4 |
データセット
タグ
- automatic-speech-recognition