Instructions to use baisalovar/Tynda-ASR-uz with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NeMo
How to use baisalovar/Tynda-ASR-uz with NeMo:
import nemo.collections.asr as nemo_asr asr_model = nemo_asr.models.ASRModel.from_pretrained("baisalovar/Tynda-ASR-uz") transcriptions = asr_model.transcribe(["file.wav"]) - Notebooks
- Google Colab
- Kaggle
Tynda-ASR-uz โ Uzbek speech recognition
Tynda (Kazakh ััาฃะดะฐ, "listen") Uzbek is a fine-tune of NVIDIA Nemotron-3.5-Transcribe-30B-A4B. The base model does not support Uzbek; this model adds it, trained only on open Uzbek speech data.
Authors: Raushan Baisalova (University of Waterloo) and the UzbekVoice team.
Results
WER / CER in %, normalized (lowercase, punctuation removed, apostrophe variants such as oสป / o' / oโ treated as the
same letter). Greedy decoding, max_tokens capped at 30 ร audio seconds + 32 (see Usage). Same clips, prompts and
settings for both models.
| Test set | Tynda-ASR-uz | Nemotron-3.5-Transcribe (base) |
|---|---|---|
| USC test (3,835 utterances) | 18.62 / 4.98 | 107.96 / 55.03 |
| FLEURS uz test (861 utterances) | 18.86 / 6.01 | 118.51 / 66.14 |
The base model mostly transcribes Uzbek as Turkish, for example:
| Reference | Yunonistondagi bilim pasayishi bilan Gสปarb oสปzining grek falsafiy va ilmiy negizlaridan uzilib qoldi. |
| Base model | Yunanistan'daki bilim pasayฤฑ ลubelerine harap uzun Grek felsefi ve ilmi ne gizlerden uzulup kaldฤฑ. |
| Tynda-ASR-uz | Yunonistondagi bilim pasayish bilan Gสปarb oสปzining grek falsafiy va ilmiy negizlaridan uzilib qoldi |
The USC and FLEURS test splits were never used for training or model selection. Training sentences whose text equals a USC or FLEURS uz dev/test sentence were removed.
How it was made
NVIDIA Nemotron-3.5-Transcribe-30B-A4B (revision c176676) fine-tuned on about 1,220 hours of Uzbek speech:
| Data | Hours | Transcripts |
|---|---|---|
| USC โ Uzbek Speech Corpus (ISSAI and TUIT), train, sampled twice | 96 ร 2 | lowercase |
| FLEURS uz train (Google) | 10 | punctuated |
| UzbekVoice (crowd-sourced, ~5,600 speakers) | 1,020 | mostly punctuated |
- Latin-script Uzbek only; apostrophe letters unified (oสป, gสป, สผ).
- LoRA r=64, ฮฑ=128 on attention, Mamba and MLP projections, plus the full ASR encoder and audio projection.
- lr 1e-4, 500 warmup steps, cosine; 4,000 steps ร 24k tokens; bf16; 1ร H200. The released checkpoint is step 3,000, which had the lowest validation loss (step 4,000 is within 0.1 WER point).
- The CTC word-timestamp head and the diarization branch are NVIDIA's, unchanged, with the CTC timestamp metadata in
model.safetensors.
Usage
Serve with vLLM 0.32 and the NeMo Speech plugin, as for the base model:
export VLLM_PLUGINS=nemo_speechlm VLLM_USE_V2_MODEL_RUNNER=0
vllm serve baisalovar/Tynda-ASR-uz --served-model-name tynda --trust-remote-code --dtype bfloat16 \
--max-model-len 65536 --enable-chunked-prefill --no-enable-prefix-caching \
--mamba-cache-mode none --mm-processor-cache-gb 0 --no-async-scheduling \
--reasoning-parser nemotron_v3 --trust-request-mm-kwargs \
--middleware nemo.collections.speechlm2.vllm.salm.ctc_serving.ctc_timestamp_middleware
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 # length of the clip
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)
Prompts used in training (use them verbatim):
| Style | Prompt |
|---|---|
| Punctuated, cased | Audio transcription. Language: Uzbek. Wording: verbatim. Formatting: punctuation and capitalization. Output: transcript only. |
| Lowercase | Audio transcription. Language: Uzbek. Wording: verbatim. Formatting: lowercase, no punctuation. Output: transcript only. |
Hardware: BF16 weights are 63 GB; one 80โ141 GB GPU (H100 / H200 / RTX PRO 6000).
Limitations
- Latin-script Uzbek only; Cyrillic Uzbek was excluded from training.
- Training data is mostly read speech (USC, UzbekVoice); spontaneous conversation and noisy audio may be harder.
- Numbers are often written as words. UzbekโRussian code-switching was not specifically trained.
- Not yet compared with other Uzbek ASR models on these test sets; this will be added.
License and attribution
- Model: a derivative of NVIDIA Nemotron-3.5-Transcribe-30B-A4B, distributed under the same
OpenMDW-1.1 license. The license text and notices are kept in
LICENSE,THIRD_PARTY_NOTICES.mdandlicenses/. No warranty. - Training data:
- USC โ Uzbek Speech Corpus by ISSAI (Institute of Smart Systems and Artificial Intelligence, Nazarbayev University) and TUIT, CC BY 4.0, doi:10.48342/drss-8q87. Attribution as requested by ISSAI: "Our product uses ISSAI and TUIT Uzbek Speech Corpus (https://doi.org/10.48342/drss-8q87), which is available under a Creative Commons Attribution 4.0 International License." If you build a product on this model, please keep this statement.
- FLEURS โ Google, CC BY 4.0 (Conneau et al., 2022).
- UzbekVoice โ used with the permission of the UzbekVoice team, who are co-authors of this model.
Acknowledgements
We thank the UzbekVoice team for sharing their dataset, and ISSAI and TUIT for the open Uzbek Speech Corpus.
Citation
@misc{baisalova2026tyndauz,
title = {Tynda-ASR-uz: Uzbek Speech Recognition with Nemotron 3.5 Transcribe},
author = {Baisalova, Raushan and {UzbekVoice team}},
institution = {University of Waterloo},
year = {2026},
howpublished = {\url{https://huggingface.co/baisalovar/Tynda-ASR-uz}}
}
@inproceedings{musaev2021usc,
title = {USC: An Open-Source Uzbek Speech Corpus and Initial Speech Recognition Experiments},
author = {Musaev, Muhammadjon and Mussakhojayeva, Saida and Khujayorov, Ilyos and Khassanov, Yerbolat and Ochilov, Mannon and Varol, Huseyin Atakan},
booktitle = {Speech and Computer (SPECOM 2021)},
pages = {437--447},
year = {2021}
}
@inproceedings{conneau2022fleurs,
title = {FLEURS: Few-shot Learning Evaluation of Universal Representations of Speech},
author = {Conneau, Alexis and Ma, Min and Khanuja, Simran and Zhang, Yu and Axelrod, Vera and Dalmia, Siddharth and Riesa, Jason and Rivera, Clara and Bapna, Ankur},
booktitle = {IEEE Spoken Language Technology Workshop (SLT)},
year = {2022}
}
- Downloads last month
- 21