LoRA (Low-Rank Adaptation) of
facebook/mms-1b-all for the
Fon language (tonal Gbe language of Benin), training only
0.82 % of the model parameters.
Same as
the full fine-tuned variant: not suitable for noisy/far-field audio, code-switching, other languages, or safety-critical applications.
1from peft import PeftModel
2from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
3import torch, librosa
4
5# Important: vocab_size must be set to 53 (Fon vocabulary)
6processor = Wav2Vec2Processor.from_pretrained("inesassia/fonbench-mms-1b-fon-lora")
7base = Wav2Vec2ForCTC.from_pretrained(
8 "facebook/mms-1b-all",
9 vocab_size=len(processor.tokenizer),
10 ignore_mismatched_sizes=True,
11 pad_token_id=processor.tokenizer.pad_token_id,
12)
13model = PeftModel.from_pretrained(base, "inesassia/fonbench-mms-1b-fon-lora")
14model.eval()
15
16# Audio must be 16 kHz mono
17audio, sr = librosa.load("audio.wav", sr=16000)
18inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
19with torch.no_grad():
20 logits = model(inputs.input_values).logits
21pred_ids = torch.argmax(logits, dim=-1)
22transcription = processor.batch_decode(pred_ids)[0]
23print(transcription)
Same as
FT-2: 5,488 training examples (20 speakers) from
alaleye/fon. Test set: 3,541 examples, 7 unseen speakers (strict speaker stratification).
1@mastersthesis{hounkponou2026fonbench,
2 title={Evaluation and adaptation of automatic speech recognition models for the Fon language},
3 author={Hounkponou, Inès Assia},
4 school={ESGIS Bénin},
5 year={2026}
6}