Utilisation
from transformers import WhisperProcessor, WhisperForConditionalGenerationfrom peft import PeftModelimport librosa processor = WhisperProcessor.from_pretrained("openai/whisper-small")base = WhisperForConditionalGeneration.from_pretrained("openai/whisper-small")model = PeftModel.from_pretrained(base, "REMPLACER_PAR_VOTRE_REPO").eval() y, _ = librosa.load("audio.wav", sr=16000)feats = processor(y, sampling_rate=16000, return_tensors="pt").input_featuresids = model.generate(feats, language="ha", task="transcribe", max_new_tokens=128)print(processor.batch_decode(ids, skip_special_tokens=True)[0])
Le token de langue ha est requis : il a été retenu empiriquement parmi
11 configurations testées, le pulaar n'ayant pas de token dédié.
Données
28,4 h de parole pulaar après nettoyage (3 643 fichiers WAV vides écartés,
déduplication entre sous-corpus, splits construits sans fuite de locuteur
ni de transcription).
Limites
Environ 10 locuteurs distincts dans le corpus d'entraînement.
La généralisation à des voix nouvelles est mesurée séparément.
Résultats
Table with columns: Jeu de test, WER baseline, WER LoRA, CER baseline, CER LoRA| Jeu de test | WER baseline | WER LoRA | CER baseline | CER LoRA |
|---|
| Voix connues (n=1108) | 1,098 | 0,531 | 0,662 | 0,242 |
| Voix inconnues (n=826) | 1,362 | 0,786 | 0,975 | 0,436 |
Par durée d'énoncé (voix connues) : WER 0,45 sur 5-15 s, 0,49 sur 15-30 s,
0,65 sur 1-5 s. Les fragments de moins d'une seconde restent mal traités
(WER 1,37), Whisper opérant sur des fenêtres de 30 secondes.