Views
No views yet
indonesian-nlp/wav2vec2-luganda (already knows Luganda phonetics)cdli/ugandan_luganda_nonstandard_speech_v1.0 — real dysarthric Luganda speakers| Decoding | WER |
|---|---|
| Greedy (no LM) | 27.87% |
| + KenLM 5-gram | 24.03% |
cdli/ugandan_luganda_nonstandard_speech_v1.0)1from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
2import torch
3
4processor = Wav2Vec2Processor.from_pretrained("nugwa-mark/wav2vec2-luganda-dysarthric-v7")
5model = Wav2Vec2ForCTC.from_pretrained("nugwa-mark/wav2vec2-luganda-dysarthric-v7")
6
7# Load your audio (must be 16kHz mono)
8import librosa
9audio, sr = librosa.load("your_audio.wav", sr=16000)
10
11inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
12with torch.no_grad():
13 logits = model(**inputs).logits
14
15predicted_ids = torch.argmax(logits, dim=-1)
16transcription = processor.decode(predicted_ids[0])
17print(transcription)1from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC, Wav2Vec2ProcessorWithLM
2from pyctcdecode import build_ctcdecoder
3import torch
4
5processor = Wav2Vec2Processor.from_pretrained("nugwa-mark/wav2vec2-luganda-dysarthric-v7")
6model = Wav2Vec2ForCTC.from_pretrained("nugwa-mark/wav2vec2-luganda-dysarthric-v7")
7
8# Build decoder with KenLM (download arpa file separately)
9labels = [' ','a','b','c','d','e','f','g','h','i','j','k','l','m',
10 'n','o','p','q','r','s','t','u','v','w','x','y','z','⁇','']
11decoder = build_ctcdecoder(labels=labels, kenlm_model_path="luganda_5gram.arpa", alpha=0.5, beta=1.0)
12decoder._alphabet._labels.extend(['<s>', '</s>'])
13processor_with_lm = Wav2Vec2ProcessorWithLM(
14 feature_extractor=processor.feature_extractor,
15 tokenizer=processor.tokenizer,
16 decoder=decoder,
17)
18
19import librosa
20audio, sr = librosa.load("your_audio.wav", sr=16000)
21inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
22with torch.no_grad():
23 logits = model(**inputs).logits
24transcription = processor_with_lm.batch_decode(logits.numpy()).text[0]
25print(transcription)1# Save locally
2processor.save_pretrained("./luganda-asr-offline")
3model.save_pretrained("./luganda-asr-offline")
4
5# Load offline
6from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
7processor = Wav2Vec2Processor.from_pretrained("./luganda-asr-offline")
8model = Wav2Vec2ForCTC.from_pretrained("./luganda-asr-offline")@misc{luganda-dysarthric-asr-2026,
title={Luganda Dysarthric Speech Recognition},
author={Nugwa Mark},
year={2026},
publisher={HuggingFace},
url={https://huggingface.co/nugwa-mark/wav2vec2-luganda-dysarthric-v7}
}