Logo Lanfrica

DEVBLOCK-TECHNOLOGIES-LIMITED/eti-yoruba-asr

Domain:

natural language processing

Record type:

model
Creator:
DEV
Host:
Ẹtí — open-source Yoruba ASR (Whisper-small LoRA fine-tune) by DevBlock Technology Limited # Ẹtí — Open Yoruba ASR **Ẹtí** (Yoruba: *ẹtí*, "ear") is an open-source Whisper-small model fine-tuned for **Yoruba automatic speech recognition**, published by **DevBlock Technology Limited** (devblocktechnologies.com). Yoruba (~50M speakers) has limited commercial ASR coverage. Ẹtí is an openly licensed baseline — including a CPU-friendly CTranslate2 build for edge and low-cost serving. --- ## Model summary | | | |---|---| | **Base** | `openai/whisper-small` (MIT) | | **Adaptation** | LoRA on `q_proj`/`v_proj` (r=16, α=32), merged | | **Language** | Yoruba (`yo`) | | **Formats** | Transformers + CTranslate2 / faster-whisper | | **License** | MIT | **Model (Hugging Face):** `devblockHQ/eti-yoruba-asr` ## Evaluation (WER, held-out, lower = better) | Set | n | Raw | No-diacritics | |---|---|---|---| | Read speech (base-corpus test) | 40 | 0.557 | 0.473 | | Conversational (`thisniyi/yoruba-speech-project-v2`) | 50 | 1.087 | 0.822 | Conversational Yoruba is far harder than read/news speech — the gap is the main signal for where the model needs more conversational training data. Production target (not yet met): WER ≤ 0.20 API / ≤ 0.28 telephony. ## Quickstart Transformers: ```python from transformers import WhisperProcessor, WhisperForConditionalGeneration import librosa repo = "devblockHQ/eti-yoruba-asr" model = WhisperForConditionalGeneration.from_pretrained(repo) proc = WhisperProcessor.from_pretrained(repo, language="yoruba", task="transcribe") audio, sr = librosa.load("clip.wav", sr=16000, mono=True) feats = proc(audio=audio, sampling_rate=16000, return_tensors="pt").input_features print(proc.batch_decode(model.generate(feats, language="yoruba", task="transcribe"), skip_special_tokens=True)[0]) ``` faster-whisper (CPU-friendly CT2): ```python from faster_whisper import WhisperModel m = WhisperModel("devblockHQ/eti-yoruba-asr/ct2", device="cpu", compute_type="int8") print(" ".join(s.text for s in m.transcribe("clip.wav", language="yo", beam_size=5 …