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 (769M params) sur 149h d'audio malagasy. Developpe dans le cadre du projet Milo Voice, 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

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

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
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

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

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)
  • 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

Contact

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

@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


Developpe dans le cadre du projet Milo Voice par Sooatek.

Downloads last month
105
Safetensors
Model size
0.8B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Flo976/whisper-malagasy-medium

Finetuned
(819)
this model

Dataset used to train Flo976/whisper-malagasy-medium

Space using Flo976/whisper-malagasy-medium 1

Evaluation results