All writing
Release21 September 20268 min

Hohe ASR: Amharic speech to Ge'ez letters, running on an ordinary processor

We published Hohe ASR 1.0 this month. It listens to Amharic and writes it down.

ሆሄ, hohe, is the Amharic word for a letter of the Ge'ez alphabet, the character itself. That is what this model produces: the letters. It is the first in a family we are calling Hohe, and there will be more.

On a held out test set of 1,548 clips from 105 speakers who appear nowhere in the training data, it gets 16.1% word error and 5.4% character error.

The model is CC BY 4.0, so you can download it and run it today. If you would rather just hear it work, send an Amharic voice note to @dataset_ai_bot on Telegram and watch the words appear while it is still listening.

What the numbers actually say

One number on one test set is not an honest picture, so here are six. Each is reported twice: with plain decoding, then with the 5-gram language model that ships alongside the weights.

Evaluation setCER / WERWith LM
Our held out test set0.0589 / 0.18700.0537 / 0.1611
Same audio through an 8 kHz phone line0.0633 / 0.19870.0573 / 0.1687
Dialect0.0433 / 0.17320.0416 / 0.1606
FLEURS am_et public benchmark0.0628 / 0.17860.0599 / 0.1604
Hand corrected podcast speech0.2991 / 0.49640.2979 / 0.4707
Held out conversation0.0659 / 0.19590.0660 / 0.1811

Read speech, dialect speech and the public FLEURS benchmark all land in the same place, around 16% word error. That consistency matters to us more than any single score, because it means the model is not tuned to the shape of our own recordings. The strongest open Amharic model we could find scored worse than this on our test set. We are not going to make a sport out of that comparison, and we would rather people run their own audio through it and see.

What it cannot do

This is the part we want you to read.

Spontaneous conversation sits near 47% word error. Roughly one word in two is wrong when people talk over each other, trail off, change subject mid sentence and use words nobody writes down. That is enough to search a recording, to route a call, or to hand somebody a draft transcript they will then fix. It is not enough to read unattended and believe.

It spells numbers out in words rather than digits. It writes no punctuation at all. It cannot separate two people speaking at once. It is Amharic only, and fed another language it will produce Amharic looking nonsense rather than telling you it does not understand.

None of those are mysteries waiting to be solved. They are the next items on the list.

Why it is fast, and why that is the point

Hohe ASR makes one pass over the audio and emits letters. There is no word by word generation, no decoder inventing the next token from the last one.

Two things follow. It runs roughly five times faster than a Whisper of comparable accuracy. And it does not hallucinate: where a generative model will sometimes produce a confident sentence out of silence, this one produces nothing, because there is nothing to align to.

It also runs on ordinary processors. Measured on four CPU cores with int8 quantisation, a five second clip takes 0.39 seconds and a thirty second clip 7.75 seconds. No GPU is needed to run it. For a lot of the people we built this for, that is the difference between a project and a demonstration.

What it learned from

880 hours of Amharic:

Kind of speechAmount
Regional dialect speech, five regions477 hours
Read speech283 hours
Recorded by contributors through a Telegram bot38 hours
Broadcast and interview34 hours
Conversation, two independent models agreeing25 hours
Conversation corrected by people2 hours

Every clip was screened before it went in: bandwidth, loudness, clipping, silence, and agreement between the transcript it arrived with and an independent model's reading of the same audio. Data you did not check is not data. The training corpus is not released with the model.

Three things that happened along the way

We damaged 30% of the training audio on purpose. Almost a third of the clips were pushed through an 8 kHz A-law phone round trip before training, the same mangling a real phone call gets. That is why the phone line row above sits so close to the clean one. In Ethiopia an enormous amount of the audio that matters is a phone call: a customer service line, a field report, a voice note. A model that only works on a good microphone is a model for other people's problems.

A reference convention inverted a metric. One public data source ships its transcripts with prefixes and suffixes split off as separate words, a spacing convention Amharic does not use in practice. When we rejoined them, the model appeared to get worse on that source. It had not. It had stopped copying a convention that was wrong in the first place, and measured ignoring spaces entirely it had improved. Evaluate against a reference whose conventions you have not inspected and the metric can point exactly backwards.

The language model was nearly thrown away. Its two weights were first tuned on a slice of development data drawn from that same odd source. Against that slice the search concluded the language model was actively harmful and switched it off. Retuned on 780 clips spread across twelve different sources, it cut word errors by 5 to 15% on every single evaluation set. A tuning set that comes from one place will confidently tell you to delete something that works.

Those are not glamorous findings. They are most of what the work was.

Try it without installing anything

In the browser, at dataset.et/ai. Press the microphone, speak Amharic, and the words appear as the model works through what you said.

Or on Telegram, at t.me/dataset_ai_bot. Record a voice note in Amharic and the transcript appears in the chat, growing as the model works through the audio. There is nothing to install and nothing to sign up for.

Two things about that bot are worth saying plainly, because they are what people are right to ask. It tells you what happens to your recording before you can use it, and you have to agree: what you send may be used to improve Amharic AI as part of our datasets. Your name, your username and your phone number never travel with it. If you change your mind, /deleteme inside the bot removes your recordings and transcripts immediately, or you can write to [email protected] and we will do it.

The same bot is where the rest of the Hohe family will appear, each one the day it works rather than the day it is promised.

Where to get it

The weights, the language model, the full evaluation detail and usage code are here:

huggingface.co/snapwre/hohe-asr-amharic

If you build something with it, we would like to hear about it. More than that, we would like to hear what it gets wrong. Send us the audio and the transcript it produced. A word it consistently mangles, an accent it stumbles on, a recording condition we did not anticipate: those are the things that make version two better, and we cannot find them from Addis Ababa on our own.

Dataset.ET is built in Addis Ababa. The corpus this model learned from exists because thousands of people recorded their voices for it. If you want to help, the contribution bot is at t.me/dataset_et_bot, and you can try the models at t.me/dataset_ai_bot.