Tynda-ASR-uz Teaches NVIDIA Nemotron Transcribe to Hear Uzbek

Introduction
NVIDIA's Nemotron 3.5 Transcribe can't hear Uzbek. Feed it an Uzbek sentence and it mostly writes the words down as Turkish. Tynda-ASR-uz fixes that. Released on Hugging Face on 10 November 2026 by Raushan Baisalova of the University of Waterloo together with the UzbekVoice team, it's an open-weight fine-tune of Nemotron 3.5 Transcribe that adds Latin-script Uzbek and cuts word error on the Uzbek Speech Corpus test set from 107.96% to 18.62%.
If you make podcasts, YouTube videos, subtitles or voice datasets in Uzbek, good open speech recognition has been hard to find. This is a big, serious model with full weights and a permissive license, so it's worth a look.
What Shipped
- Vendor / model: Raushan Baisalova (University of Waterloo) and the UzbekVoice team, Tynda-ASR-uz
- Modality: speech-to-text for Uzbek, built on NVIDIA's 30B-parameter mixture-of-experts transcription model (about 4B parameters active per token)
- Open vs closed: open weights, full BF16 checkpoint on Hugging Face under OpenMDW-1.1, the same license as the NVIDIA base model
- Runnable today: self-host with vLLM 0.32 and the NeMo Speech plugin, through an OpenAI-style chat endpoint
- Concrete fact: 18.62% WER and 4.98% CER on the USC test set (3,835 clips), and 18.86% WER on the FLEURS Uzbek test set, against 107.96% and 118.51% for the untouched base model
The Numbers
The authors scored both models on the same clips with the same prompts and settings, using greedy decoding and normalized text (lowercase, no punctuation, and the different apostrophe spellings of letters like oʻ and gʻ treated as one).
- USC test, 3,835 utterances: Tynda-ASR-uz 18.62% WER / 4.98% CER, base model 107.96% / 55.03%
- FLEURS Uzbek test, 861 utterances: Tynda-ASR-uz 18.86% WER / 6.01% CER, base model 118.51% / 66.14%
A word error rate above 100% sounds odd, but it happens when a model inserts lots of wrong words. Here, the base model was rewriting Uzbek as Turkish-looking text. The test splits were never used for training or for picking the checkpoint, and training sentences that matched any dev or test sentence were removed.
The model card is honest that it hasn't been compared with other Uzbek speech models on these test sets yet, so treat this as "Nemotron now speaks Uzbek" rather than "best Uzbek model ever."
How It Was Made
- About 1,220 hours of Uzbek speech: the Uzbek Speech Corpus from ISSAI and TUIT (96 hours, used twice), Google's FLEURS Uzbek train split (10 hours), and about 1,020 crowd-sourced hours from UzbekVoice with roughly 5,600 speakers
- LoRA adapters (rank 64) on the attention, Mamba and MLP layers, plus full training of the audio encoder and audio projection
- 4,000 steps on a single H200 GPU; the released checkpoint is step 3,000, which had the lowest validation loss
- NVIDIA's word-timestamp head and speaker-diarization branch are kept unchanged
Tynda-ASR-uz is the second model in a small family. The first, Tynda-ASR-kk-ru, came out on 6 November and adds Kazakh to the same base model while keeping its Russian.
How to Run It
You need one GPU with 80 GB of memory or more, such as an H100, H200 or RTX PRO 6000. The BF16 checkpoint is about 63 GB. Serve it with vLLM and the NeMo Speech plugin exactly as you would the base model (the full serve command, with all its flags, is on the model card), then send audio as a base64 data URL in a chat request:
import base64
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:8000/v1", api_key="EMPTY")
audio = base64.b64encode(open("audio.wav", "rb").read()).decode()
duration_s = 12.3 # clip length in seconds
prompt = ("Audio transcription. Language: Uzbek. Wording: verbatim. "
"Formatting: punctuation and capitalization. Output: transcript only.")
r = client.chat.completions.create(
model="tynda", temperature=0, max_tokens=min(2048, int(30 * duration_s) + 32),
messages=[{"role": "user", "content": [
{"type": "text", "text": prompt},
{"type": "audio_url", "audio_url": {"url": f"data:audio/wav;base64,{audio}"}}]}],
extra_body={"chat_template_kwargs": {"enable_thinking": False}, "skip_special_tokens": False})
print(r.choices[0].message.content)Use the training prompts word for word. Swap the formatting part for "lowercase, no punctuation" if you want plain lowercase text for dataset work.
Why It Matters for Audio Makers
- Uzbek creators get open, self-hostable captions and transcripts instead of relying only on closed cloud services
- Voice-dataset builders can transcribe Uzbek recordings to pair with audio for TTS or voice-cloning training
- Because NVIDIA's timestamp and diarization parts are untouched, it can feed subtitle and text-based editing workflows
- It's also a clear recipe: about 1,200 hours of open and community speech plus one H200 was enough to teach a big transcription model a new language
Limits
- Latin-script Uzbek only; Cyrillic Uzbek was left out of training
- Training audio is mostly read speech, so spontaneous conversation and noisy recordings may be harder
- Numbers often come out as words rather than digits
- Uzbek and Russian code-switching wasn't specifically trained
- At 63 GB, it's a data-center GPU model, not something for a laptop
- The model was brand new at publication, with no downloads or outside tests yet
- If you build a product on it, ISSAI asks you to keep its attribution statement for the Uzbek Speech Corpus (it's in the model card)
Original Source
Sibling model: Tynda-ASR-kk-ru (Kazakh and Russian)
Base model: NVIDIA Nemotron-3.5-Transcribe-30B-A4B
License: OpenMDW-1.1
Earlier on ArtRealmAI: NVIDIA Nemotron 3.5 Transcribe
Conclusion
Tynda-ASR-uz takes a model that heard Uzbek as Turkish and gets it to about one wrong word in five on clean read speech, with full open weights. If you have access to an 80 GB GPU and a pile of Uzbek audio, it's a strong open starting point for captions and transcripts, and a nice sign that smaller teams can add their own languages to big speech models.
—Anabel ♡
