Automatically restores Igbo diacritics — tone marks (àáā) and subdot vowels (ịọụ) — from plain text. Built on ByT5-small (byte-level seq2seq), fine-tuned on a rebalanced dataset of 46,057 Igbo sentences.
Part of the Igbo Speech Project — this model serves as a preprocessor for TTS and a post-processor for ASR.
Key Results
Metric
Accuracy
Tone mark accuracy
61.6%
Subdot accuracy (ị, ọ, ụ)
88.2%
Overall diacritic accuracy
78.7%
Word exact match
34.3%
Why This Matters
Most Igbo text online lacks diacritics. We measured the diacritic gap across three sources:
Source
Tone marking rate
Well-toned corpus
96% of vowels
IgboAPI dictionary
46% of vowels
African Voices (crowd-sourced)
14% of vowels
78% of African Voices transcripts have zero tone marks. Without automatic restoration, TTS systems receive ambiguous input and ASR output lacks proper orthography.
Key insight: v1 used 76% Bible data (no tones) and achieved only 48.4% tone accuracy. Rebalancing to 84% toned data in v2 improved tone accuracy to 61.6% (+13 pp). Data composition > model size.
1from igbo_tts.tone_model.predict import ToneRestorer
23restorer = ToneRestorer(model_dir="path/to/tone_model/best")4text = restorer.restore_long("Igbo bu asusu ndi Igbo. Anyi na-asu ya kwa ubochi.")
Pipeline Role
┌─────────────────────┐
User text (untoned) │ Tone Model │ Toned text
"Kedu ka i mere" ──► (this model) ──► "Kèdù kà í mèrè"
└─────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
TTS input ASR output Keyboard
(strip tones (add tones autocorrect
keep subdots) to plain)
For TTS: Restores subdots (ụ, ọ) which are essential for pronunciation. Tone marks are stripped before synthesis (F5-TTS trained on untoned text).
For ASR: Post-processes untoned ASR output into proper Igbo orthography.
For keyboards: Real-time diacritization as users type plain Igbo text.
1# Single text2curl -X POST http://localhost:8000/diacriticize \3 -H "Content-Type: application/json"\4 -d '{"text": "Kedu ka i mere"}'56# Batch mode7curl -X POST http://localhost:8000/diacriticize \8 -H "Content-Type: application/json"\9 -d '{"texts": ["Kedu ka i mere", "Igbo bu asusu anyi"]}'
Note: The base model (ByT5-small) is Apache 2.0 and the training data (African Voices) is CC-BY-4.0, so this model could use a more permissive license. We use CC-BY-NC-SA for consistency across the Igbo Speech Project models.
Citation
bibtex
1@misc{chimezie2026igbotone,
2 title={Igbo Tone and Diacritic Restoration with ByT5},
3 author={Chimezie, Emmanuel},
4 year={2026},
5 url={https://github.com/chimezie90/igbotts}
6}