🚀 Wav2Vec2-Large-Tedlium
Wav2Vec2-Large-Tedlium 是在 TEDLIUM 語料庫上進行微調的大型語音識別模型。它基於預訓練的模型,在 TED 演講數據上進一步優化,能夠高效準確地將語音轉換為文本。
🚀 快速開始
Wav2Vec2 大型模型在 TEDLIUM 語料庫上進行了微調。
該模型使用 Facebook 的 Wav2Vec2 large LV - 60k 檢查點進行初始化,該檢查點是在 LibriVox 項目的 60,000 小時有聲讀物上預訓練得到的。它在 TEDLIUM 語料庫(第 3 版)的 452 小時 TED 演講上進行了微調。使用該模型時,請確保您的語音輸入採樣率為 16Khz。
該模型在開發集上的單詞錯誤率(WER)為 8.4%,在測試集上為 8.2%。訓練日誌記錄了 50,000 步微調過程中的訓練和評估進度。
有關該模型如何進行微調的更多信息,請參閱 此筆記本。
💻 使用示例
基礎用法
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
from datasets import load_dataset
import torch
processor = Wav2Vec2Processor.from_pretrained("sanchit-gandhi/wav2vec2-large-tedlium")
model = Wav2Vec2ForCTC.from_pretrained("sanchit-gandhi/wav2vec2-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
logits = model(input_values).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)
print("Target: ", ds["text"][0])
print("Transcription: ", transcription[0])
高級用法
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
import torch
from jiwer import wer
tedlium_eval = load_dataset("LIUM/tedlium", "release3", split="test")
model = Wav2Vec2ForCTC.from_pretrained("sanchit-gandhi/wav2vec2-large-tedlium").to("cuda")
processor = Wav2Vec2Processor.from_pretrained("sanchit-gandhi/wav2vec2-large-tedlium")
def map_to_pred(batch):
input_values = processor(batch["audio"]["array"], return_tensors="pt", padding="longest").input_values
with torch.no_grad():
logits = model(input_values.to("cuda")).logits
predicted_ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(predicted_ids)
batch["transcription"] = transcription
return batch
result = tedlium_eval.map(map_to_pred, batched=True, batch_size=1, remove_columns=["speech"])
print("WER:", wer(result["text"], result["transcription"]))
📄 許可證
本項目採用 Apache 2.0 許可證。