Instructions to use bivariant/Griot-ASR-W-0.8-ALL with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use bivariant/Griot-ASR-W-0.8-ALL with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="bivariant/Griot-ASR-W-0.8-ALL", trust_remote_code=True)# Load model directly from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq processor = AutoProcessor.from_pretrained("bivariant/Griot-ASR-W-0.8-ALL", trust_remote_code=True) model = AutoModelForSpeechSeq2Seq.from_pretrained("bivariant/Griot-ASR-W-0.8-ALL", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
bivariant/Griot-ASR-W-0.8-ALL
GRIOT-ASR-W-0.8-ALL est le modèle ouvert de reconnaissance automatique de la parole (ASR) multilingue de Bivariant dédié aux langues africaines.
Construit sur une architecture modulaire (base Whisper partagée + adaptateurs par langue), Griot-ASR fournit des transcriptions précises, naturelles et respectueuses des spécificités orthographiques — notamment la gestion complète des diacritiques pour les langues déjà validées, ainsi que la transcription de phrases naturelles (parler courant, pas uniquement de la lecture isolée).
🌍 Langues cibles & Feuille de route
Le projet couvre un total de 18 langues africaines. La mise à disposition des adaptateurs suit un déploiement progressif : plusieurs modèles optimisés sont déjà disponibles, accompagnés de versions Preview régulièrement enrichies, tandis que les langues restantes intègrent le dépôt au fil des validations.
| Code ISO | Langue | Statut du déploiement |
|---|---|---|
bba |
Baatonou | Disponible |
ewe |
Ewé | Disponible |
fon |
Fon | Disponible |
fub |
Fulfulde / Peul | Disponible |
lin |
Lingala | Disponible |
som |
Somali | Disponible |
bci |
Baoulé | Preview (améliorations continues) |
dyu |
Dioula | Preview (améliorations continues) |
mos |
Mooré / Mossi | Preview (améliorations continues) |
sag |
Sango | Preview (améliorations continues) |
swh |
Swahili | Preview (améliorations continues) |
ewo |
Ewondo | Arrivée progressive |
hau |
Hausa | Arrivée progressive |
lug |
Luganda | Arrivée progressive |
mwm |
Sar | Arrivée progressive |
orm |
Oromo | Arrivée progressive |
sna |
Shona | Arrivée progressive |
wol |
Wolof | Arrivée progressive |
💡 Note : Les modèles marqués en Preview sont pleinement fonctionnels pour l'inférence et reçoivent des mises à jour itératives pour affiner leurs performances. Les adaptateurs restants seront poussés au fur et à mesure pour compléter l'écosystème des 18 langues.
✨ Points clés
- Gestion avancée des diacritiques : conservation stricte des signes diacritiques sur les langues validées.
- Transcription naturelle : optimisé pour capturer le parler courant, au-delà de la lecture isolée de phrases.
- Architecture modulaire : un modèle Whisper partagé, couplé à des adaptateurs légers par langue.
- Compatibilité Whisper native : certaines langues (marquées +wh ci-dessous) sont déjà partiellement reconnues par Whisper en zero-shot ; Griot-ASR améliore ces résultats via le fine-tuning par adaptateur.
📊 Benchmarks par langue
Les métriques ci-dessous concernent les langues Disponibles, mesurées sur des jeux de test dédiés par langue.
| Code | Langue | Échantillons (test) | CER | WER |
|---|---|---|---|---|
lin +wh |
Lingala | 2 906 | 11.67% | 32.36% |
bba |
Baatonou | — | 9.09% | 22.16% |
fub |
Peul / Fulfulde | 3 022 | 12.40% | 28.24% |
fon |
Fon | 3 081 | 11.16% | 18.62% |
som +wh |
Somali | 3 081 | 11.16% | 37.52% |
ewe |
Ewé — Waxal v2 | 1 884 | 12.44% | 38.44% |
ewe |
Ewé — Nelver28 | 2 931 | 2.97% | 10.52% |
+wh : langue déjà supportée nativement par Whisper en zero-shot.
Les métriques des langues en Preview et de celles en arrivée progressive ne sont pas encore communiquées publiquement ; elles seront publiées au moment de leur passage au statut Disponible.
Comment lire ce tableau
- L'adaptateur Ewé est entraîné sur un corpus combiné et évalué séparément sur deux jeux de test (Waxal v2 et Nelver28) : Nelver28 provient de la même source de données que celle déjà utilisée pour d'autres langues du dépôt. Les deux scores ne sont pas directement comparables entre eux.
- Les scores restent spécifiques aux jeux de test utilisés et peuvent varier selon le domaine, le dialecte, les conventions orthographiques et la présence de code-switching.
💻 Inférence
Installation
pip install transformers==5.12.1 peft==0.20.0 torchao==0.18.0
Exemple d'utilisation
from transformers import (
AutoModelForSpeechSeq2Seq,
WhisperProcessor,
WhisperTokenizer,
WhisperFeatureExtractor,
)
import librosa
REPO = "bivariant/Griot-ASR-W-0.8-ALL"
AUDIO_PATH = "path/to/your/audio.wav"
feature_extractor = WhisperFeatureExtractor.from_pretrained(REPO)
# --- Whisper de base, sans adaptateur de langue ---
model_base = AutoModelForSpeechSeq2Seq.from_pretrained(REPO, trust_remote_code=True)
tokenizer_base = WhisperTokenizer.from_pretrained(REPO)
processor_base = WhisperProcessor(feature_extractor=feature_extractor, tokenizer=tokenizer_base)
# --- Adaptateur "fon" ---
model_fon = AutoModelForSpeechSeq2Seq.from_pretrained(REPO, trust_remote_code=True, language="fon")
tokenizer_fon = WhisperTokenizer.from_pretrained(REPO, subfolder="fon")
processor_fon = WhisperProcessor(feature_extractor=feature_extractor, tokenizer=tokenizer_fon)
audio, sr = librosa.load(AUDIO_PATH, sr=16000)
inputs = processor_fon(audio, sampling_rate=16000, return_tensors="pt")
generated_ids = model_fon.generate(inputs["input_features"],num_beams=4, repetition_penalty=1.0, no_repeat_ngram_size=14,
max_new_tokens=440, length_penalty=1.2,return_dict_in_generate=True, output_scores=True)
print("FON:", processor_fon.batch_decode(generated_ids.sequences[0], skip_special_tokens=True)[0])
# --- Changer de langue : nouvel appel from_pretrained, pas de méthode "load_language" ---
model_baatonu = AutoModelForSpeechSeq2Seq.from_pretrained(REPO, trust_remote_code=True, language="baatonu")
tokenizer_baatonu = WhisperTokenizer.from_pretrained(REPO, subfolder="baatonu")
processor_baatonu = WhisperProcessor(feature_extractor=feature_extractor, tokenizer=tokenizer_baatonu)
generated_ids = model_baatonu.generate(inputs["input_features"],num_beams=4, repetition_penalty=1.0, no_repeat_ngram_size=14,
max_new_tokens=440, length_penalty=1.2,return_dict_in_generate=True, output_scores=True)
print("BAATONU:", processor_baatonu.batch_decode(generated_ids.sequences[0], skip_special_tokens=True)[0])
Pour changer de langue, il faut recharger le modèle avec
from_pretrained(..., language="<lang>")et le tokenizer correspondant viasubfolder="<lang>"— il n'existe pas de méthode permettant de changer la langue d'un modèle déjà chargé.
🗺️ Feuille de route
Les adaptateurs pour Ewondo, Hausa, Luganda, Sar, Oromo, Shona et Wolof seront publiés au fur et à mesure de leur validation, à mesure que la collecte de données progresse. Les langues déjà en Preview (Baoulé, Dioula, Mossi, Sango, Swahili) continueront d'être affinées jusqu'à obtention d'un statut Disponible.
Ressources
- Modèle :
bivariant/Griot-ASR-W-0.8-ALL - Bivariant : bivariant.com
Griot — Open Multilingual Intelligence for African Languages.
- Downloads last month
- 447