You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

Whisper Fon v4 🎯

Modèle de reconnaissance vocale automatique (ASR) pour la langue Fon, fine-tuné à partir de Whisper Small.

📊 Performances

Métrique Valeur Détails
WER moyen 21.99% Sur 20 échantillons de test
Caractères parasites 0% Aucun caractère arabe indésirable
Transcriptions parfaites ~45% WER = 0%
Epochs d'entraînement 4 Optimal (pas d'overfitting)

🎯 Cas d'usage

Ce modèle est conçu pour :

  • ✅ Transcription automatique de l'audio en langue Fon
  • ✅ Sous-titrage de vidéos en Fon
  • ✅ Assistants vocaux pour locuteurs Fon
  • ✅ Documentation de langues orales
  • ✅ Applications d'accessibilité

🚀 Utilisation rapide

Installation

pip install transformers torch torchaudio

Code Python

from transformers import WhisperProcessor, WhisperForConditionalGeneration
import torch
import librosa

# Charger le modèle
model_id = "Ronaldodev/whisper-fon-v4"
processor = WhisperProcessor.from_pretrained(model_id)
model = WhisperForConditionalGeneration.from_pretrained(model_id)

# Charger l'audio (doit être 16kHz)
audio, sr = librosa.load("chemin/vers/audio.wav", sr=16000)

# Préparer l'input
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")

# Générer la transcription
with torch.no_grad():
    generated_ids = model.generate(inputs.input_features)

# Décoder
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(transcription)

Utilisation avec Pipeline

from transformers import pipeline

# Créer le pipeline
pipe = pipeline(
    "automatic-speech-recognition",
    model="Ronaldodev/whisper-fon-v4",
    device=0  # -1 pour CPU, 0 pour GPU
)

# Transcrire
result = pipe("audio.wav")
print(result["text"])

📚 Détails du modèle

Architecture

  • Base : Whisper Small (OpenAI)
  • Paramètres : 242M
  • Langue cible : Fon (langue Gbe parlée au Bénin et Togo)
  • Langue de décodage : Français (pour les tokens spéciaux)

Entraînement

  • Dataset : 7,732 exemples audio en Fon
    • Train : 6,185 échantillons
    • Test : 1,547 échantillons
  • Durée : ~3h30 sur Tesla P100
  • Batch size effectif : 8
  • Learning rate : 3e-6
  • Optimizer : AdamW
  • Mixed precision : FP16

Configuration spéciale

  • Tokens arabes bloqués : 0 (aucun token arabe dans le vocabulaire)
  • Langue forcée : FR
  • Tâche : Transcription

📈 Résultats par epoch

Epoch WER Arabe détecté
2 27.49% 0/20
3 25.71% 0/20
4 21.99% 0/20

Le modèle à 4 epochs offre le meilleur compromis entre performance et généralisation.

🎤 Exemples de transcriptions

Exemple 1 (WER = 0%)

Audio : [enregistrement Fon]
Référence  : "nu gbε do mi e ɖo ganji"
Prédiction : "nu gbε do mi e ɖo ganji"
WER : 0.00% ✅

Exemple 2 (WER = 4.35%)

Audio : [enregistrement Fon]
Référence  : "badagla jayi ɔ gba jεn nɔ gba awadakpεkpε..."
Prédiction : "badagla jayi ɔ gba jεn nɔ gba awadakpεkpε..."
WER : 4.35% ✅

⚙️ Configuration recommandée

# Pour de meilleurs résultats
generation_config = {
    "language": "fr",
    "task": "transcribe",
    "max_length": 448,
    "num_beams": 1,  # Greedy decoding (plus rapide)
    "temperature": 0.0
}

generated_ids = model.generate(
    inputs.input_features,
    **generation_config
)

🔍 Limitations connues

  • ⚠️ Performance optimale sur audio propre (peu de bruit de fond)
  • ⚠️ Fonctionne mieux sur phrases complètes que sur mots isolés
  • ⚠️ Sensible à la qualité d'enregistrement (16kHz recommandé)
  • ⚠️ Peut confondre certains homophones
  • ⚠️ WER plus élevé (~30-40%) sur accents régionaux non représentés

📊 Benchmark vs autres modèles

Modèle WER (Fon) Notes
Whisper Small (base) ~40-50% Sans fine-tuning
Whisper Medium (base) ~35-45% Sans fine-tuning
Ce modèle 21.99% ✅ Fine-tuné sur Fon

🛠️ Fine-tuning supplémentaire

Ce modèle peut être fine-tuné davantage sur vos propres données :

from transformers import Seq2SeqTrainingArguments, Seq2SeqTrainer

training_args = Seq2SeqTrainingArguments(
    output_dir="./whisper-fon-custom",
    per_device_train_batch_size=2,
    learning_rate=1e-6,  # LR plus faible pour fine-tuning
    num_train_epochs=2,
    fp16=True,
    # ... autres paramètres
)

trainer = Seq2SeqTrainer(
    model=model,
    args=training_args,
    # ... vos données
)

trainer.train()

📄 License

Apache 2.0 - Libre d'utilisation pour usages commerciaux et non-commerciaux.

🙏 Remerciements

  • OpenAI pour le modèle Whisper de base
  • Hugging Face pour l'infrastructure et les outils
  • Communauté Fon pour les données audio

📧 Contact

Pour toute question ou collaboration :

  • GitHub : [Votre GitHub]
  • Email : [Votre email]
  • HuggingFace : @Ronaldodev

📝 Citation

Si vous utilisez ce modèle dans vos recherches, veuillez citer :

@misc{whisper-fon-v4,
  author = {Ronaldodev},
  title = {Whisper Fon v4: Fine-tuned ASR Model for Fon Language},
  year = {2025},
  publisher = {HuggingFace},
  howpublished = {\url{https://huggingface.co/Ronaldodev/whisper-fon-v4}}
}

🔄 Versions

  • v4 (actuel) : 4 epochs, WER 21.99%
  • v3 : Modèle de base pré-entraîné
  • v2 : Expérimentations initiales
  • v1 : Premier prototype

🚧 Développements futurs

  • Fine-tuning avec plus de données (objectif : WER < 15%)
  • Support des accents régionaux
  • Modèle quantifié (INT8) pour inference rapide
  • API de démonstration en ligne
  • Extension à d'autres langues Gbe (Ewe, Gen, etc.)

Dernière mise à jour : 2025-12-07

Status : 🟢 Production-ready

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

Model tree for Fonika/whisper-fon-v4

Finetuned
(3164)
this model

Space using Fonika/whisper-fon-v4 1

Evaluation results