Whisper Small - Fɔngbè (GGML / whisper.cpp)
Versions quantifiées du modèle Whisper Small fine-tuné sur la langue Fon (fɔngbè), optimisées pour une inférence locale, hors ligne et légère via whisper.cpp et ses bibliothèques clientes.
Ce dépôt héberge les fichiers binaires GGML (.bin) directement exploitables sur CPU standard, plateformes mobiles (Android / iOS) et accélérateurs matériels (Apple Silicon Metal, CUDA).
📝 Modèle source
- Original : Ronaldodev/whisper-fon-v4
- Architecture : Whisper Small fine-tuné sur 7 732 exemples Fon
- Conversion : CTranslate2 int8 via faster-whisper 1.1.0 et quantification binaire GGML
- Langue : Fon (langue Gbe — Bénin et Togo)
- Format : GGML binary format (
.bin)
📦 Fichiers disponibles dans ce dépôt
| Fichier | Type de quantification | Taille | Recommandation |
|---|---|---|---|
fon-asr-v4-q4_0.bin |
Q4_0 (4-bit) | 145 Mo | Usage mobile (Flutter, Android, iOS), CPU basse consommation, vitesse maximale |
fon-asr-v4-q5_1.bin |
Q5_1 (5-bit) | 190 Mo | Meilleure fidélité sur les diacritiques, tons et environnements légèrement bruités |
⚡ Performances mesurées (Apple M3)
Test d'inférence réalisé sur un fichier audio de référence de 11,0 secondes (175 680 échantillons à 16 kHz) en fɔngbè :
- Temps de chargement (
load time) : ~93 ms à 114 ms - Temps de traitement total (
total time) : ~1,68 s (Real-Time Factor ~ 0,15x — presque 7 fois plus rapide que le direct) - Exemple de transcription produite :
Amɔ̌, tò mitɔn mɛ ɔ, có nu è na kplá nyɔnu yi asúxwe ɔ, è ɖo ná gbɔ̀n nɔvi tɔn lɛ bǐ gɔ̀n hwɛ̀.
🚀 Utilisation en Python (Sans compiler whisper.cpp)
1. Via faster-whisper (Moteur CTranslate2)
Si vous souhaitez exécuter le modèle source via faster-whisper :
pip install faster-whisper
from faster_whisper import WhisperModel
model = WhisperModel("Ronaldodev/whisper-fon-v4", device="cpu", compute_type="int8")
segments, info = model.transcribe(
"audio.wav",
language="fr",
task="transcribe",
beam_size=1,
temperature=0.0,
)
for segment in segments:
print(f"[{segment.start:.2f}s → {segment.end:.2f}s] {segment.text}")
2. Via pywhispercpp (Exécution native des fichiers .bin)
Pour charger directement les fichiers fon-asr-v4-q4_0.bin ou fon-asr-v4-q5_1.bin en Python :
pip install pywhispercpp
from pywhispercpp.model import Model
# Charger le modèle quantifié
model = Model("fon-asr-v4-q4_0.bin", n_threads=4)
# Transcription du fichier audio (16 kHz mono WAV)
segments = model.transcribe(
"audio.wav",
language="fr",
task="transcribe"
)
for segment in segments:
print(f"[{segment.t0 / 100:.2f}s → {segment.t1 / 100:.2f}s] {segment.text}")
3. Via whisper-cpp-python
pip install whisper-cpp-python
from whisper_cpp_python import Whisper
whisper = Whisper(model_path="fon-asr-v4-q4_0.bin", n_threads=4)
output = whisper.transcribe(
"audio.wav",
language="fr",
no_timestamps=True
)
print(output["text"])
🛠️ Utilisation en Ligne de Commande via whisper.cpp
Si vous utilisez le CLI officiel compilé whisper-cli :
1. Télécharger le modèle depuis Hugging Face
huggingface-cli download Ronaldodev/fon-asr-v4 fon-asr-v4-q4_0.bin --local-dir .
2. Lancer la transcription
./whisper-cli -m fon-asr-v4-q4_0.bin -f audio.wav -l fr -nt
-l fr: Obligatoire. Indique le token de langue français utilisé lors de l'entraînement pour router le vocabulaire fɔngbè.-nt: Désactive l'affichage des horodatages pour obtenir uniquement le texte.-t 4: Nombre de threads alloués.
🎙️ Spécifications Audio Requises
Pour une transcription optimale, le fichier audio d'entrée doit respecter les contraintes du moteur Whisper :
- Fréquence d'échantillonnage :
16000 Hz(16 kHz) - Canaux :
1(Mono) - Format :
WAV PCM 16-bit
Conversion d'un fichier audio (mp3, m4a, etc.) via ffmpeg :
ffmpeg -i input_audio.mp3 -ar 16000 -ac 1 -c:a pcm_s16le audio.wav
📜 Citation
@misc{fon-asr-v4-ggml,
author = {AWADEME Ronaldo},
title = {Whisper Small Fongbe Quantized (GGML / whisper.cpp)},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/Ronaldodev/fon-asr-v4}}
}
Model tree for Ronaldodev/fon-asr-v4
Base model
Ronaldodev/whisper-fon-v4