🚀 Wav2Vec2-Large-960h-Lv60
このモデルは、音声認識タスクに特化した事前学習済みモデルで、大量の音声データを用いて学習され、高精度な音声認識が可能です。
🚀 クイックスタート
FacebookのWav2Vec2
この大規模モデルは、16kHzでサンプリングされた960時間のLibri - LightとLibrispeechの音声オーディオで事前学習および微調整されています。モデルを使用する際には、音声入力も16kHzでサンプリングされていることを確認してください。
論文
著者: Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli
概要
我々は初めて、音声オーディオのみから強力な表現を学習し、その後に文字起こしされた音声で微調整することで、概念的により単純でありながら、最良の半教師付き手法を上回ることができることを示しました。wav2vec 2.0は、潜在空間で音声入力をマスクし、共同で学習される潜在表現の量子化に基づいて定義された対照的なタスクを解きます。Librispeechのすべてのラベル付きデータを使用した実験では、クリーン/その他のテストセットで1.8/3.3のWERを達成しました。ラベル付きデータの量を1時間に減らすと、wav2vec 2.0は100時間のサブセットで以前の最先端技術を上回り、ラベル付きデータを100分の1しか使用しません。たった10分のラベル付きデータと53k時間のラベルなしデータでの事前学習でも、4.8/8.2のWERを達成します。これは、限られた量のラベル付きデータでの音声認識の実現可能性を示しています。
元のモデルはhttps://github.com/pytorch/fairseq/tree/master/examples/wav2vec#wav2vec-20で見つけることができます。
✨ 主な機能
- 音声オーディオのみから強力な表現を学習し、微調整により高精度な音声認識が可能。
- 限られた量のラベル付きデータでも良好な性能を発揮。
📦 インストール
本READMEには具体的なインストール手順が記載されていないため、このセクションを省略します。
💻 使用例
基本的な使用法
音声ファイルを文字起こしするために、モデルをスタンドアロンの音響モデルとして次のように使用できます。
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
from datasets import load_dataset
import torch
processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-large-960h-lv60")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-large-960h-lv60")
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
input_values = processor(ds[0]["audio"]["array"], return_tensors="pt", padding="longest").input_values
logits = model(input_values).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)
高度な使用法
このコードスニペットは、facebook/wav2vec2-large-960h-lv60をLibriSpeechの「clean」および「other」のテストデータで評価する方法を示しています。
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
import torch
from jiwer import wer
librispeech_eval = load_dataset("librispeech_asr", "clean", split="test")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-large-960h-lv60").to("cuda")
processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-large-960h-lv60")
def map_to_pred(batch):
inputs = processor(batch["audio"]["array"], return_tensors="pt", padding="longest")
input_values = inputs.input_values.to("cuda")
attention_mask = inputs.attention_mask.to("cuda")
with torch.no_grad():
logits = model(input_values, attention_mask=attention_mask).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)
batch["transcription"] = transcription
return batch
result = librispeech_eval.map(map_to_pred, batched=True, batch_size=16, remove_columns=["speech"])
print("WER:", wer(result["text"], result["transcription"]))
結果 (WER):
📚 ドキュメント
本READMEには詳細なドキュメントが含まれていないため、このセクションを省略します。
🔧 技術詳細
本READMEには具体的な技術詳細が記載されていないため、このセクションを省略します。
📄 ライセンス
このモデルはApache - 2.0ライセンスの下で提供されています。
属性 |
详情 |
モデルタイプ |
音声認識用事前学習済みモデル |
学習データ |
Libri - LightとLibrispeechの音声オーディオ |