--- language: - mg license: agpl-3.0 library_name: transformers tags: - whisper - automatic-speech-recognition - speech - speech-recognition - malagasy - low-resource - african-languages - madagascar - fine-tuned - transformers - pytorch datasets: - badrex/malagasy-speech-full metrics: - wer pipeline_tag: automatic-speech-recognition base_model: openai/whisper-medium widget: - example_title: Exemple malagasy src: https://huggingface.co/Flo976/whisper-malagasy-medium/resolve/main/example.wav model-index: - name: whisper-malagasy-medium results: - task: type: automatic-speech-recognition name: Speech Recognition dataset: name: Malagasy Speech Full type: badrex/malagasy-speech-full split: validation metrics: - type: wer value: 20.78 name: WER ---

Malagasy WER Base model

# Whisper Medium — Malagasy (mg) **Le premier modele Whisper fine-tune pour la transcription du malagasy.** Fine-tuning de [openai/whisper-medium](https://huggingface.co/openai/whisper-medium) (769M params) sur 149h d'audio malagasy. Developpe dans le cadre du projet [Milo Voice](https://github.com/Flo976/milo), le premier assistant vocal IA en malagasy. ## Resultats ### Benchmark comparatif | Modele | WER (validation) | Notes | |--------|-----------------|-------| | `openai/whisper-medium` (vanilla) | >80% | Sans fine-tuning, le malagasy n'est pas supporte | | **`Flo976/whisper-malagasy-medium`** | **20.78%** | Fine-tune sur 149h de malagasy | > Pour une langue low-resource comme le malagasy, un WER de ~21% est un excellent resultat. > A titre de comparaison, Whisper medium atteint ~15% WER sur l'anglais. ### Courbe d'entrainement | Step | Epoch | WER | Eval Loss | |------|-------|-----|-----------| | 1000 | 0.56 | 25.13% | 0.303 | | 2000 | 1.13 | 22.21% | 0.261 | | 3000 | 1.69 | 21.13% | 0.247 | | 4000 | 2.25 | 20.97% | 0.252 | | **5000** | **2.82** | **20.78%** | **0.247** | | 6000 | 3.38 | 21.21% | 0.266 | | 7000 | 3.95 | 21.10% | 0.270 | Le meilleur checkpoint est a l'etape 5000 (epoch ~2.8). Au-dela, le modele commence a sur-apprendre (overfitting). ## Utilisation ### Avec Transformers ```python import torch from transformers import WhisperForConditionalGeneration, WhisperProcessor processor = WhisperProcessor.from_pretrained("Flo976/whisper-malagasy-medium") model = WhisperForConditionalGeneration.from_pretrained( "Flo976/whisper-malagasy-medium", torch_dtype=torch.float16, ).to("cuda") # Transcrire inputs = processor(audio_array, sampling_rate=16000, return_tensors="pt") input_features = inputs.input_features.to("cuda", dtype=torch.float16) with torch.no_grad(): predicted_ids = model.generate( input_features, language="mg", task="transcribe", max_new_tokens=128, ) text = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0] print(text) ``` ### Avec pipeline ```python from transformers import pipeline pipe = pipeline( "automatic-speech-recognition", model="Flo976/whisper-malagasy-medium", device="cuda:0", torch_dtype="float16", ) result = pipe( "audio.wav", generate_kwargs={"language": "mg", "task": "transcribe"}, ) print(result["text"]) ``` ### Inference optimisee (FP16) Le modele tourne en FP16 sur GPU, ce qui reduit la VRAM de ~3 Go a ~1.5 Go sans perte de qualite mesurable. ## Exemples de transcription | Audio | Transcription attendue | Transcription du modele | |-------|----------------------|------------------------| | Salutation | "Manao ahoana, salama ve?" | "Manao ahoana, salama ve?" | | Question simple | "Mpilalaika ve? Salama daholo eo." | "Mpilalaika ve? Salama daholo eo." | | Phrase complexe | "Ny fiainan'ny olona dia miankina amin'ny asa ataony" | "Ny fiainan'ny olona dia miankina amin'ny asa ataony" | > Ces exemples sont issus du jeu de validation. Les performances varient selon la qualite audio et le dialecte du locuteur. ## Dataset | Split | Samples | Duree | Source | |-------|---------|-------|--------| | **Train** | 28 371 | 149h | [badrex/malagasy-speech-full](https://huggingface.co/datasets/badrex/malagasy-speech-full) | | **Validation** | 3 099 | - | idem | | **Test** | 3 101 | - | idem | - 56 locuteurs uniques - Audio 16kHz mono - Transcriptions en malagasy (dialecte plateau / officiel) - Dataset complet disponible sur HuggingFace : [badrex/malagasy-speech-full](https://huggingface.co/datasets/badrex/malagasy-speech-full) ## Hardware & Configuration d'entrainement | Parametre | Valeur | |-----------|--------| | **GPU** | NVIDIA RTX 5070 Ti (16 Go VRAM) | | **Temps d'entrainement** | ~12h | | **Framework** | HuggingFace Transformers 4.47 + PyTorch 2.5 | | **Seed** | Par defaut (42) | | Modele de base | `openai/whisper-medium` (769M params) | | Epochs | 4 (~3.95) | | Batch size | 8 x 2 (gradient accumulation) = 16 effectif | | Learning rate | 1e-5 | | Scheduler | Cosine decay | | Warmup steps | 500 | | Optimizer | AdamW | | Precision | FP16 (mixed precision) | | Gradient checkpointing | Oui | | Max steps | 17 740 | | Eval steps | 1 000 | | Best checkpoint | Step 5000 (WER 20.78%) | ### Script d'entrainement ```bash python scripts/03_train.py \ --model openai/whisper-medium \ --dataset badrex/malagasy-speech-full \ --output-dir models/whisper-mg-v1 \ --epochs 10 \ --batch-size 8 \ --grad-accum 2 \ --lr 1e-5 \ --warmup-steps 500 \ --eval-steps 500 ``` ## Intended Use ### Cas d'usage cibles - Assistant vocal malagasy ([Milo Voice](https://github.com/Flo976/milo)) - Transcription de reunions / interviews en malagasy - Sous-titrage automatique de videos malagasy - Accessibilite pour les locuteurs malagasy - Recherche linguistique sur le malagasy ### Out-of-Scope Ce modele **n'est PAS concu pour** : - **Autres langues** : le modele est specialise pour le malagasy. Pour d'autres langues, utiliser le modele de base `openai/whisper-medium`. - **Traduction** : le modele transcrit uniquement (speech-to-text malagasy), il ne traduit pas vers le francais ou l'anglais. - **Identification de locuteur** : aucune capacite de diarisation ou d'identification vocale. - **Transcription en temps reel** : non optimise pour le streaming, concu pour du traitement par segments (<30s). - **Audio tres bruite** : les performances se degradent significativement avec du bruit de fond important (chantiers, marches, etc.). ## Limitations - **Dialectes** : entraine principalement sur le malagasy officiel (dialecte hauts plateaux / Merina). Les performances sur les dialectes cotiers (Betsimisaraka, Sakalava, Antandroy, Antanosy, etc.) ne sont pas evaluees et probablement degradees. - **Bruit** : les performances se degradent avec du bruit de fond important. Le dataset d'entrainement contient majoritairement de l'audio propre. - **Phrases longues** : le modele est optimise pour des phrases courtes a moyennes (<30s). Les transcriptions longues peuvent contenir des hallucinations. - **Longueur max testee** : segments audio de 30 secondes maximum (limitation standard de Whisper). - **Couverture lexicale** : le vocabulaire est celui de Whisper (51 865 tokens multilingue). Certains termes tres specifiques au malagasy (noms propres regionaux, termes techniques) peuvent etre mal transcrits. ## Considerations ethiques - **Representativite des locuteurs** : le dataset contient 56 locuteurs. Cela peut ne pas representer la diversite complete des accents et dialectes malagasy (22 millions de locuteurs, 18+ dialectes). - **Biais dialectal** : le modele est entraine principalement sur le malagasy officiel (hauts plateaux / Merina), ce qui peut defavoriser les locuteurs d'autres regions de Madagascar. - **Biais de genre** : la repartition hommes/femmes dans le dataset n'est pas documentee. Des biais de performance entre genres sont possibles. - **Vie privee** : le modele ne stocke aucune donnee audio. Les transcriptions doivent etre traitees dans le respect de la vie privee des locuteurs. - **Usage responsable** : ce modele ne doit pas etre utilise pour la surveillance, l'identification de personnes, ou toute utilisation qui porterait atteinte aux droits des locuteurs malagasy. ## Demo interactive Testez le modele directement dans votre navigateur : [Whisper Malagasy Demo](https://huggingface.co/spaces/Flo976/whisper-malagasy-demo) ## Contact - **Questions, bugs, suggestions** : ouvrez une [Discussion](https://huggingface.co/Flo976/whisper-malagasy-medium/discussions) sur ce repo - **Projet Milo Voice** : [github.com/Flo976/milo](https://github.com/Flo976/milo) - **Auteur** : [Flo976](https://huggingface.co/Flo976) — Florent Didelot / [Sooatek](https://sooatek.com) Les contributions sont les bienvenues, en particulier : - Retours de locuteurs natifs sur la qualite des transcriptions - Donnees audio en dialectes cotiers (Betsimisaraka, Sakalava, Antandroy...) - Benchmarks sur d'autres datasets malagasy ## Citation ```bibtex @misc{whisper-malagasy-medium-2026, author = {Florent Didelot}, title = {Whisper Medium fine-tuned for Malagasy Speech Recognition}, year = {2026}, publisher = {HuggingFace}, url = {https://huggingface.co/Flo976/whisper-malagasy-medium} } ``` ## Licence AGPL-3.0 — voir [LICENSE](https://github.com/Flo976/milo/blob/main/LICENSE) --- Developpe dans le cadre du projet **[Milo Voice](https://github.com/Flo976/milo)** par [Sooatek](https://sooatek.com).