CoolFace
Modelpublic

Baamtu/whisper-pular-ggml-q5

sourceHugging Facemitupdated 7mo agoView on Hugging Face
0likes5downloads
Model Card

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

PlateformeRTFLatence (10s audio)Status
CPU Colab (2 threads)2.1922s✅ Validé
Raspberry Pi 4~1.5~15sEstimé
iPhone 13+~0.4~4sEstimé
Android Flagship~0.6~6sEstimé
Android Mid-range~1.0~10sEstimé

Note: RTF plus rapide sur mobile (4-8 threads + optimisations matériel)

🚀 Utilisation

Avec Whisper.cpp (Ligne de commande)

bash
# 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)

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)

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)

dart
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

  1. 1.Ajouter le modèle dans app/src/main/assets/
  2. 2.Intégrer Whisper.cpp avec JNI
  3. 3.Taille app finale: ~200 MB

iOS

  1. 1.Ajouter le modèle dans Resources/
  2. 2.Utiliser WhisperKit ou Whisper.cpp
  3. 3.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èleTailleFormatUsage
asr-multi-merged-v0-1484 MBPyTorch FP16GPU / Dev
asr-multi-faster-int8-v0-1234 MBCTranslate2Raspberry Pi
whisper-pular-ggml-q5181 MBGGML Q5_1Mobile

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

  1. 1.Fine-tuning Whisper Small avec PEFT LoRA
  2. 2.Fusion adaptateurs → PyTorch FP16
  3. 3.Conversion PyTorch → GGML
  4. 4.Quantization Q5_1

📖 Citation

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

🤝 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