---
library_name: transformers
language:
  - ff
license: cc-by-nc-4.0
base_model: facebook/mms-1b-all
tags:
  - automatic-speech-recognition
  - speech
  - pular
  - fula
  - fuf
  - mms
  - low-resource
datasets:
  - Kppwdfgu1/Fula-pular
metrics:
  - wer
  - cer
pipeline_tag: automatic-speech-recognition
model-index:
  - name: mms-1b-pular-asr
    results:
      - task:
          type: automatic-speech-recognition
        dataset:
          name: Fula-pular
          type: Kppwdfgu1/Fula-pular
        metrics:
          - type: wer
            value: 10.38
          - type: cer
            value: 2.89
---

# MMS-1B Pular ASR — Reconnaissance vocale du Pular (Fouta-Djalon)

Modèle de reconnaissance vocale (ASR/STT) pour le **pular** (fuf), variante du fula parlée en Guinée (Fouta-Djalon). Obtenu par fine-tuning des *adapter layers* de [facebook/mms-1b-all](https://huggingface.co/facebook/mms-1b-all) (~2 % des paramètres entraînés, base gelée).

**WER : 10,38 %** (contre 17,31 % pour MMS d'origine, soit **-40 % d'erreurs**).

## Détails du modèle

- **Modèle de base :** facebook/mms-1b-all (Wav2Vec2 1B, Meta MMS)
- **Méthode :** fine-tuning des adapters + tête CTC (vocabulaire caractères)
- **Langue :** Pular / Fulfulde du Fouta-Djalon (ISO 639-3 : `fuf`)
- **Licence :** CC-BY-NC 4.0 (héritée du modèle de base MMS)
- **Audio attendu :** mono, 16 kHz
- **Développé par :** Salim Diallo

## Utilisation

```python
import torch, librosa
from transformers import Wav2Vec2ForCTC, AutoProcessor

repo = "sudoping01/mms-1b-pular-asr"
processor = AutoProcessor.from_pretrained(repo)
model = Wav2Vec2ForCTC.from_pretrained(repo).eval()

audio, _ = librosa.load("mon_audio.wav", sr=16_000)
inputs = processor(audio, sampling_rate=16_000, return_tensors="pt")
with torch.no_grad():
    logits = model(**inputs).logits
print(processor.decode(torch.argmax(logits, dim=-1)[0]))
```

## Données d'entraînement

Dataset [Kppwdfgu1/Fula-pular](https://huggingface.co/datasets/Kppwdfgu1/Fula-pular) : ~9 760 clips audio (0,3–30 s) avec transcriptions, issus de lectures du Nouveau Testament en pular. Split 90/5/5 train/validation/test. Texte normalisé : minuscules, ponctuation retirée, caractères pular (ɓ ɗ ɲ ƴ ŋ) conservés.

## Procédure d'entraînement

- Adapters réinitialisés puis seuls paramètres entraînés (base gelée)
- Précision mixte fp16, gradient checkpointing
- Learning rate : 1e-3, warmup 100 steps, 4 époques
- Batch effectif : 32 (batch 2 × accumulation 16)
- Matériel : 1× NVIDIA T4 (Kaggle)

## Résultats

| Modèle | WER | CER |
|---|---|---|
| MMS-1B-all (adapter fula d'origine, sans fine-tuning) | 17,31 % | 4,57 % |
| **Ce modèle (fine-tuné)** | **10,38 %** | **2,89 %** |

Évalué sur 200 exemples du test set (jamais vus à l'entraînement).

## Limites et biais

- **Domaine :** entraîné uniquement sur des lectures de l'histoire de ISSA (parole lue, posée, vocabulaire religieux, peu de locuteurs). Les performances baissent sur la parole spontanée, bruyante, ou les autres dialectes du fula.
- Ne gère ni ponctuation ni majuscules en sortie.
- Usage non commercial uniquement (licence CC-BY-NC 4.0).

## Citation

Si tu utilises ce modèle, cite aussi MMS :

```bibtex
@article{pratap2023mms,
  title={Scaling Speech Technology to 1,000+ Languages},
  author={Pratap, Vineel and others},
  journal={arXiv preprint arXiv:2305.13516},
  year={2023}
}
```