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).

Projet Griot · Collecte & Alignement · GitHub · Bivariant


🌍 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 via subfolder="<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
Safetensors
Model size
0.8B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support