🚀 Wav2Vec-OSR
這是為The Sound Of AI開源研究小組的語音轉文本模塊微調的Facebook的wav2vec2模型。原始基礎模型在960小時的Librispeech 16kHz採樣語音音頻上進行了預訓練和微調。使用該模型時,請確保您的語音輸入也是16kHz採樣的。
🚀 快速開始
本項目是針對語音轉文本模塊對Facebook的wav2vec2模型進行微調的成果,適用於The Sound Of AI開源研究小組。原始基礎模型在960小時的Librispeech 16kHz採樣語音音頻上完成了預訓練與微調。使用模型時,要保證語音輸入為16kHz採樣。
✨ 主要特性
- 數據集:基於
librispeech_asr
數據集進行訓練。
- 標籤:涵蓋音頻、自動語音識別、語音轉文本等領域。
- 許可證:採用
apache - 2.0
許可證。
- 示例音頻:提供多個示例音頻,可通過以下鏈接訪問:
📚 詳細文檔
論文信息
- 作者:Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli
摘要
我們首次證明,僅從語音音頻中學習強大的表示,然後在轉錄語音上進行微調,能夠在概念上更簡單的同時,超越最佳的半監督方法。wav2vec 2.0在潛在空間中對語音輸入進行掩碼處理,並解決了一個基於潛在表示量化定義的對比任務,這些潛在表示是聯合學習的。使用Librispeech的所有標記數據進行的實驗在乾淨/其他測試集上實現了1.8/3.3的字錯率(WER)。當將標記數據量減少到一小時時,wav2vec 2.0在100小時子集上超越了先前的技術水平,同時使用的標記數據減少了100倍。僅使用十分鐘的標記數據並在53000小時的未標記數據上進行預訓練,仍能實現4.8/8.2的WER。這證明了在有限標記數據的情況下進行語音識別的可行性。
原始模型鏈接
💻 使用示例
基礎用法
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
from datasets import load_dataset
import soundfile as sf
import torch
tokenizer = Wav2Vec2CTCTokenizer.from_pretrained("iamtarun/wav2vec-osr")
processor = Wav2Vec2Processor.from_pretrained("iamtarun/wav2vec-osr")
model = Wav2Vec2ForCTC.from_pretrained("iamtarun/wav2vec-osr")
model = model.eval()
device = "cuda" if torch.cuda.is_available() else "cpu"
model = model.to(device)
def map_to_array(batch):
speech, _ = sf.read(batch["file"])
batch["speech"] = speech
return batch
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
ds = ds.map(map_to_array)
input_values = processor(ds["speech"][:2], sampling_rate=rate, padding="longest", return_tensors="pt").input_values.to(device)
logits = model(input_values).logits
predicted_ids = torch.argmax(logits, dim =-1)
transcriptions = tokenizer.decode(predicted_ids[0])
print(transcriptions)
📄 許可證
本項目採用apache - 2.0
許可證。