Ndizi African ASR — merged weights (Swahili · Amharic · Oromo)
Full merged Transformers checkpoint for GPU / server inference.
Built by merging LoRA + embed_audio into
Sunbird/Sunflower-Gemma4-E2B.
For phones / edge, use the LiteRT bundle: smutuvi/ndizi-gemma4-e2b-african-asr-litert.
ASR prompts
Use the language-matched prompt (same strings as training / LiteRT on-device):
| Language | Prompt |
|---|---|
| Swahili | Andika maneno unayosikia katika sauti hii. |
| Amharic | ይህን ንግግር በአማርኛ ጻፍ። ውጤቱ ጽሑፍ ብቻ ይሁን። |
| Oromo | Dubbii kana Afaan Oromootiin barreessi. Barreeffama qofa baasi. |
Training
LoRA + embed_audio on Sunbird/Sunflower-Gemma4-E2B.
Shipped checkpoint: artifacts/checkpoints_african_asr/best (v1).
| Dataset | Lang | Notes |
|---|---|---|
| smutuvi/ndizi-1, smutuvi/ndizi-1-2025 | sw | In-domain farm / field Swahili |
| nickdee96/ALFFA-Swahili-News | sw | |
| hadamard-2/alffa-amharic, snapwre/amharic-speech | am | Capped |
google/WaxalNLP amh_asr / orm_asr | am / om | Capped |
| turiabu/Sagalee | om | CC BY-NC 4.0 — check commercial use |
FLEURS / SALT / Common Voice are eval-only (not in this train mix).
Eval (v1 vs Sunflower, on-device Swahili prompt)
Lower WER is better. Δ = LoRA − Sunflower (negative = improved).
| Set | n | Sunflower | Ndizi v1 | Δ |
|---|---|---|---|---|
| smutuvi/ndizi-1:test | 690 | 0.714 | 0.528 | −0.185 |
| smutuvi/ndizi-1-2025:test | 351 | 0.541 | 0.398 | −0.143 |
| Ndizi pooled | 1041 | 0.655 | 0.484 | −0.171 |
google/fleurs sw_ke:test | 487 | 0.255 | 0.252 | −0.003 |
Amharic / Oromo coverage is present in training; prefer language-matched prompts for those languages. Later adapters (v2+) trade some FLEURS Swahili for stronger Oromo — this Hub ship is v1.
Related repos
| Artifact | Repo |
|---|---|
| Merged full weights | smutuvi/ndizi-gemma4-e2b-african-asr-merged |
| On-device LiteRT-LM (~2.7 GB) | smutuvi/ndizi-gemma4-e2b-african-asr-litert |
Quick start (Transformers)
import torch
from transformers import AutoModelForCausalLM, AutoProcessor
repo = "smutuvi/ndizi-gemma4-e2b-african-asr-merged"
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype=torch.float16, device_map="auto")
processor = AutoProcessor.from_pretrained(repo)
# Use the Swahili / Amharic / Oromo ASR prompt from the table above with your audio.