Whisper Pular - GGML Q5_1 (Mobile)
Modèle de reconnaissance vocale automatique (ASR) pour la langue Pular (Fulfulde) optimisé pour déploiement mobile.
🎯 Caractéristiques
- Langue: Pular (Fulfulde) - Code ISO:
ff - Architecture: Whisper Small fine-tuné
- Format: GGML Q5_1 (quantifié)
- Taille: 181 MB (vs 484 MB original)
- Réduction: 63%
- WER: ~19%
- Offline: 100%
📊 Performance
| Plateforme | RTF | Latence (10s audio) | Status |
|---|---|---|---|
| CPU Colab (2 threads) | 2.19 | 22s | ✅ Validé |
| Raspberry Pi 4 | ~1.5 | ~15s | Estimé |
| iPhone 13+ | ~0.4 | ~4s | Estimé |
| Android Flagship | ~0.6 | ~6s | Estimé |
| Android Mid-range | ~1.0 | ~10s | Estimé |
Note: RTF plus rapide sur mobile (4-8 threads + optimisations matériel)
🚀 Utilisation
Avec Whisper.cpp (Ligne de commande)
# Télécharger modèle
wget https://huggingface.co/Baamtu/whisper-pular-ggml-q5/resolve/main/ggml-pular-q5_1.bin
# Cloner Whisper.cpp
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
make
# Transcrire
./main -m ../ggml-pular-q5_1.bin -f audio.wav -l ff
Android (Kotlin)
class PularASR(context: Context) {
private external fun initWhisper(modelPath: String): Long
private external fun transcribe(handle: Long, audioPath: String): String
companion object {
init {
System.loadLibrary("whisper-android")
}
}
fun initialize() {
val modelPath = copyAssetToCache("ggml-pular-q5_1.bin")
handle = initWhisper(modelPath)
}
fun transcribe(audioPath: String): String {
return transcribe(handle, audioPath)
}
}
iOS (Swift)
import WhisperKit
class PularASR {
private var whisper: Whisper?
func initialize() {
let modelPath = Bundle.main.path(
forResource: "ggml-pular-q5_1",
ofType: "bin"
)!
whisper = Whisper(modelPath: modelPath)
}
func transcribe(_ audioPath: String) async -> String {
return await whisper?.transcribe(audioPath, language: "ff") ?? ""
}
}
Flutter (Multiplateforme)
import 'package:whisper_flutter/whisper_flutter.dart';
final whisper = await Whisper.fromAsset('assets/ggml-pular-q5_1.bin');
final result = await whisper.transcribe(audioPath, language: 'ff');
print(result.text);
📱 Déploiement Mobile
Android
- Ajouter le modèle dans
app/src/main/assets/ - Intégrer Whisper.cpp avec JNI
- Taille app finale: ~200 MB
iOS
- Ajouter le modèle dans
Resources/ - Utiliser WhisperKit ou Whisper.cpp
- Neural Engine supporté (accélération matérielle)
⚡ Optimisations
Voice Activity Detection (VAD)
Activez la transcription seulement quand une voix est détectée pour économiser 90% de batterie.
Streaming
Transcrivez par blocs de 3-5 secondes pour affichage progressif.
📚 Modèles Associés
| Modèle | Taille | Format | Usage |
|---|---|---|---|
| asr-multi-merged-v0-1 | 484 MB | PyTorch FP16 | GPU / Dev |
| asr-multi-faster-int8-v0-1 | 234 MB | CTranslate2 | Raspberry Pi |
| whisper-pular-ggml-q5 | 181 MB | GGML Q5_1 | Mobile |
📊 Dataset
Fine-tuné sur Baamtu/pular-asr-v1:
- 31,002 exemples
- ~43 heures audio
- Pular du Sénégal
🔧 Conversion
Ce modèle a été créé via:
- Fine-tuning Whisper Small avec PEFT LoRA
- Fusion adaptateurs → PyTorch FP16
- Conversion PyTorch → GGML
- Quantization Q5_1
📖 Citation
@misc{whisper-pular-ggml-2026,
title={Whisper Pular GGML: Mobile ASR for Fulfulde},
author={Baamtu},
year={2026},
publisher={HuggingFace},
url={https://huggingface.co/Baamtu/whisper-pular-ggml-q5}
}
📜 Licence
MIT License
🔗 Liens
- Demo: Gradio Space
- Whisper.cpp: GitHub
- Documentation: Guide d'implémentation
🤝 Support
Pour questions ou issues, créez un ticket sur le dépôt GitHub ou contactez via HuggingFace Discussions.
Développé par: Baamtu
Version: 1.0
Date: Mars 2026
- Downloads last month
- 24