Views
No views yet
1from transformers import Wav2Vec2Processor, SEWDForCTC
2from datasets import load_dataset
3import soundfile as sf
4import torch
5
6# load the model and preprocessor
7processor = Wav2Vec2Processor.from_pretrained("asapp/sew-d-mid-k127-400k-ft-ls100h")
8model = SEWDForCTC.from_pretrained("asapp/sew-d-mid-k127-400k-ft-ls100h")
9
10# load the dummy dataset with speech samples
11ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
12
13# preprocess
14input_values = processor(ds[0]["audio"]["array"], return_tensors="pt").input_values # Batch size 1
15
16# retrieve logits
17logits = model(input_values).logits
18
19# take argmax and decode
20predicted_ids = torch.argmax(logits, dim=-1)
21transcription = processor.batch_decode(predicted_ids)1from datasets import load_dataset
2from transformers import SEWDForCTC, Wav2Vec2Processor
3import torch
4from jiwer import wer
5
6librispeech_eval = load_dataset("librispeech_asr", "clean", split="test")
7
8model = SEWDForCTC.from_pretrained("asapp/sew-d-mid-k127-400k-ft-ls100h").to("cuda")
9processor = Wav2Vec2Processor.from_pretrained("asapp/sew-d-mid-k127-400k-ft-ls100h")
10
11def map_to_pred(batch):
12 input_values = processor(batch["audio"][0]["array"], sampling_rate=16000,
13 return_tensors="pt", padding="longest").input_values
14 with torch.no_grad():
15 logits = model(input_values.to("cuda")).logits
16
17 predicted_ids = torch.argmax(logits, dim=-1)
18 transcription = processor.batch_decode(predicted_ids)
19 batch["transcription"] = transcription
20 return batch
21
22result = librispeech_eval.map(map_to_pred, batched=True, batch_size=1, remove_columns=["audio"])
23
24print("WER:", wer(result["text"], result["transcription"]))| "clean" | "other" |
|---|---|
| 4.99 | 10.95 |