Codesota · Models · Wav2Vec20 results · 0 benchmarks
Model card

Wav2Vec2.

Audio ClassificationAudio ClassificationApache 2.0

Self-supervised audio. Great for emotion, speaker ID.

§ 01 · Card

Model card,
inline.

Rendered server-side from the upstream README on Hugging Face — same content as the source repo, with editorial typography. The full card, sample weights, and revision history live on HF.


Source
facebook/wav2vec2-base-960h
License
apache-2.0
Language
en

Wav2Vec2-Base-960h

Facebook's Wav2Vec2

The base model pretrained and fine-tuned on 960 hours of Librispeech on 16kHz sampled speech audio. When using the model make sure that your speech input is also sampled at 16Khz.

Paper

Authors: Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli

Abstract

We show for the first time that learning powerful representations from speech audio alone followed by fine-tuning on transcribed speech can outperform the best semi-supervised methods while being conceptually simpler. wav2vec 2.0 masks the speech input in the latent space and solves a contrastive task defined over a quantization of the latent representations which are jointly learned. Experiments using all labeled data of Librispeech achieve 1.8/3.3 WER on the clean/other test sets. When lowering the amount of labeled data to one hour, wav2vec 2.0 outperforms the previous state of the art on the 100 hour subset while using 100 times less labeled data. Using just ten minutes of labeled data and pre-training on 53k hours of unlabeled data still achieves 4.8/8.2 WER. This demonstrates the feasibility of speech recognition with limited amounts of labeled data.

The original model can be found under https://github.com/pytorch/fairseq/tree/master/examples/wav2vec#wav2vec-20.

Usage

To transcribe audio files the model can be used as a standalone acoustic model as follows:

python
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC from datasets import load_dataset import torch # load model and tokenizer processor = Wav2Vec2Processor.from_pretrained("facebook/wav2vec2-base-960h") model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h") # load dummy dataset and read soundfiles ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation") # tokenize input_values = processor(ds[0]["audio"]["array"], 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) ``` ## Evaluation This code snippet shows how to evaluate **facebook/wav2vec2-base-960h** on LibriSpeech's "clean" and "other" test data.

from datasets import load_dataset from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor import torch from jiwer import wer

librispeecheval = loaddataset("librispeech_asr", "clean", split="test")

model = Wav2Vec2ForCTC.frompretrained("facebook/wav2vec2-base-960h").to("cuda") processor = Wav2Vec2Processor.frompretrained("facebook/wav2vec2-base-960h")

def maptopred(batch): inputvalues = processor(batch["audio"]["array"], returntensors="pt", padding="longest").inputvalues with torch.nograd(): logits = model(input_values.to("cuda")).logits

predictedids = torch.argmax(logits, dim=-1) transcription = processor.batchdecode(predicted_ids) batch["transcription"] = transcription return batch

result = librispeecheval.map(maptopred, batched=True, batchsize=1, remove_columns=["audio"])

print("WER:", wer(result["text"], result["transcription"]))


*Result (WER)*:

| "clean" | "other" |
|---|---|
| 3.4 | 8.6 |
Card content reproduced from huggingface.co/facebook/wav2vec2-base-960h under the upstream license. Rendering trims fenced HTML, raw widgets and tables for safety; tap the link for the untouched original.
§ 02 · Benchmarks

No recorded benchmark results yet.

This model is in the registry but doesn’t have any benchmark_results rows yet. If you have a score, submit it →

Rank column shows this model’s position vs all other models scored on the same benchmark + metric (competitors after the slash). #1 in red means current SOTA. Sorted by rank, then newest result.