Type Yoruba without its marks; get it back with its tones and dots restored from context. The whole model is running in your browser: 1.3 MB of INT8 weights, loaded once, working offline from then on. Nothing you type leaves this page.
loading the model...Written Yoruba depends on marks most keyboards drop: ẹ, ọ and ṣ are different letters, and the tone marks separate words that are otherwise spelled the same. Type oko and you have collapsed oko (farm), ọkọ (husband) and ọkọ̀ (vehicle) into one string. This model chooses from context.
A 1.29M-parameter character BiLSTM (kenny0bi/ami-yoruba-diacritics), exported to ONNX, quantized to INT8, and executed here by onnxruntime-web. It decodes under an orthographic legality mask, so it is structurally unable to put a dot on an a or a tone on an ṣ. On the full MENYO-20k test set the INT8 model ties the fp32 checkpoint: 92.39% vs 92.38% character accuracy, measured, not assumed.
The export, quantization, parity proof, and the latency story: github.com/Kenny0bi/gbe. It expects prose in standard orthography; names and SMS code-switching are harder, and it normalises toward the standard written form.