MMS Asante Twi (BibleTTS)
Asante Twi speech recognition. The Akan adapter of facebook/mms-1b-all fine-tuned on
BibleTTS with repaired transcripts.
⚠️ Non-commercial only
This model inherits CC BY-NC 4.0 from facebook/mms-1b-all. It may not be used commercially.
Note also that the training data, BibleTTS, is CC BY-SA 4.0, and BY-SA and BY-NC are not compatible licences. Whether trained weights constitute a derivative of their training data is unsettled, so this is flagged rather than resolved. If you need a commercially usable Twi recogniser, start from a permissively licensed base instead.
Results
Test split (Colossians, 64 clips), scored with jiwer after lowercasing and removing punctuation:
| WER | CER | |
|---|---|---|
| This model | 17.2% | 3.9% |
facebook/mms-1b-all, unmodified |
27.6% | 6.8% |
openai/whisper-small, zero-shot |
126.5% | 92.3% |
| Published: Whisper-small fine-tuned on 2h Akan Bible (Mensah et al. 2025) | 37.0% | 11.0% |
⚠️ This is a scripture transcriber
17.2% is measured on Bible readings by the single narrator the model trained on. Do not read it as general Twi speech recognition.
Mensah et al. 2025 measured Akan models of this kind collapsing outside their training domain: a Bible-trained model scoring 37% in-domain reached 64% on crowd-recorded sentences and 80% on spontaneous speech. Nothing in this model's training makes it exempt, and no evaluation here would detect it.
For general Ghanaian-language speech recognition, Khaya AI from GhanaNLP is trained on multi-speaker, multi-domain data.
Usage
import torch, soundfile as sf
from transformers import AutoProcessor, Wav2Vec2ForCTC
repo = "danieldzikunuofmarvel/mms-asante-twi-bibletts"
processor = AutoProcessor.from_pretrained(repo)
model = Wav2Vec2ForCTC.from_pretrained(repo).eval()
audio, sr = sf.read("clip.wav") # 16 kHz mono
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
with torch.no_grad():
ids = torch.argmax(model(**inputs).logits, dim=-1)[0]
print(processor.decode(ids))
Output is lowercase with no punctuation: the MMS Akan vocabulary is 35 character-level tokens and holds neither.
Training
| Base | facebook/mms-1b-all, aka adapter, base frozen |
| Trainable | 2.2M of 965M parameters (0.23%) |
| Data | 21,342 clips, 57.6 h, single male narrator, 16 kHz |
| Hardware | A100 40GB, bf16 |
| Batch | 7 × 2 accumulation = 14 effective |
| Epochs | 3 (4,575 steps), learning rate 1e-3, 100 warmup |
| Time | about 1h 15m |
Best checkpoint selected on dev WER rather than loss.
One detail worth repeating elsewhere
MMS's Akan vocabulary contains no sentence punctuation. The repaired transcripts do, because
punctuation was restored for a speech synthesis model that needs it for phrase breaks. Training on
that text unchanged produced 201 <unk> tokens across 64 test labels and the model learned to
predict them, wasting roughly 8% of output positions and inflating the measured error rate.
Filtering labels to the tokenizer's vocabulary before training took the starting loss from 3.03 to 0.65 and the test WER from 28.9% to 17.2%. If you fine-tune MMS on text from a source that carries punctuation, check this first.
Attribution
- Downloads last month
- 31
Model tree for danieldzikunuofmarvel/mms-asante-twi-bibletts
Base model
facebook/mms-1b-allDataset used to train danieldzikunuofmarvel/mms-asante-twi-bibletts
Paper for danieldzikunuofmarvel/mms-asante-twi-bibletts
Evaluation results
- WER on BibleTTS Asante Twi (repaired transcripts), test splitself-reported17.200
- CER on BibleTTS Asante Twi (repaired transcripts), test splitself-reported3.900