Home
  1. Home
  2. Projects
  3. Uzbek ASR

Uzbek ASR

03 September 2026·Research and engineering·2 min read

Uzbek has roughly 35 million speakers and almost no open speech tooling. If you want to caption an Uzbek podcast, transcribe an interview, or build anything that listens, there has not been much to start from — and what exists was trained on people reading sentences aloud, which is not how anyone talks.

This is a model that handles real speech, and it is free:

  • The model — one command to transcribe a file, no checkout needed
  • The training corpus — 974 hours, so anyone can retrain rather than start over
  • The benchmark — so the next model has something honest to be measured against

How good it is

Measured on 311 hand-verified clips of real Uzbek conversation — podcasts and interviews, with people talking over each other, filler words, and Russian mixed into Uzbek sentences.

ModelParamsWERCER
large_full_600m (ours)600M12.2%3.4%
gemini_full_220m (ours)220M13.9%3.8%
GigaAM-large, untuned600M16.1%5.8%
whisper-large-v3-turbo-uzbek809M39.6%19.4%

It also punctuates and capitalises, which none of the baselines do — the difference between a wall of lowercase words and a transcript someone can read.

The 600M run stopped at 6,000 of 8,000 planned steps, so 12.2% is a floor rather than a finish line.

The number everyone else reports is the wrong number

The standard Uzbek benchmark is read speech — someone reciting a prepared sentence into a microphone.

After the first fine-tune, that benchmark said 9.4% against the baseline's 9.5%. No improvement worth reporting. On actual conversation, the same checkpoint went from 17.1% to 15.5%.

The public number was measuring a task nobody was trying to solve. So a two-hour conversational test set was built and verified by hand before any real training budget was spent — because optimising against the wrong metric is how you spend a month making something worse.

Verification was targeted rather than exhaustive: clips were ranked by how much two independent transcripts disagreed, and only the riskiest were reviewed word by word. Four annotator-hours instead of twenty, with the leftover error rate measured instead of assumed.

Punctuation for free

The usual way to get punctuation is a second model that adds it afterwards. Instead, the four punctuation marks were added directly to the model's own output vocabulary, starting silent and learning from the rhythm of speech alone.

Every run reported the score with and without punctuation. The without-punctuation number is the guard against breaking what already worked — and it improved while the model learned to punctuate.

What is next

Speech synthesis. The data pipeline and the Uzbek text frontend — Cyrillic to Latin, apostrophes, numbers, word endings — were built for it from the start.

Everything is Apache-2.0 on GitHub.

Rustamjon Nuriddinov is an AI/ML engineer in Uzbekistan, writing about models, agents and evaluation. More at the index.