模型:
facebook/wav2vec2-large-robust-ft-libri-960h
该模型是 wav2vec2-large-robust 模型的微调版本。它已经在以下内容上进行了预训练:
并且随后在960小时的以下内容上进行了微调:
使用该模型时,请确保您的语音输入也是以16Khz采样的。
作者:Wei-Ning Hsu,Anuroop Sriram,Alexei Baevski,Tatiana Likhomanenko,Qiantong Xu,Vineel Pratap,Jacob Kahn,Ann Lee,Ronan Collobert,Gabriel Synnaeve,Michael Auli
摘要:自监督学习的语音表示一直是一个非常活跃的研究领域,但大部分工作都集中在单一领域中,例如用于朗读音频图书,这种情况下存在大量标记和未标记数据。在本文中,我们探索更通用的设置,其中无标签的预训练数据域与微调的标记数据域不同,而测试数据域可能也不同。我们的实验表明,在预训练期间使用目标域数据可以显著提高各种设置的性能。在大规模的竞争性设置中,我们展示了在无标签的目标域数据上进行预训练可以将在域内和域外标记数据上训练的模型之间的差距减少66%-73%。这具有明显的实际影响,因为获取无标签的目标域数据比获取标记数据容易得多。此外,我们发现,在多个领域上进行预训练会提高在训练期间未见过的领域的泛化性能。代码和模型将在此https URL上提供。
原始模型可在 https://github.com/pytorch/fairseq/tree/master/examples/wav2vec#wav2vec-20 中找到。
要转录音频文件,可以将模型作为独立的声学模型使用,如下所示:
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC from datasets import load_dataset import soundfile as sf import torch # load model and processor processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-large-robust-ft-libri-960h") model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-large-robust-ft-libri-960h") # define function to read in sound file def map_to_array(batch): speech, _ = sf.read(batch["file"]) batch["speech"] = speech return batch # load dummy dataset and read soundfiles ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation") ds = ds.map(map_to_array) # tokenize input_values = processor(ds["speech"][:2], return_tensors="pt", padding="longest").input_values # Batch size 1 # retrieve logits logits = model(input_values).logits # take argmax and decode predicted_ids = torch.argmax(logits, dim=-1) transcription = processor.batch_decode(predicted_ids)