Instructions to use rustam1221/UzASR-CTC-220M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use rustam1221/UzASR-CTC-220M with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="rustam1221/UzASR-CTC-220M")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("rustam1221/UzASR-CTC-220M", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Access Uzbek ASR (GigaAM fine-tune)
Free for evaluation and non-commercial research. Commercial use requires a written license β contact rustam@clarion.uz. Approved participants of the Clarion Startup Program use the Model under the program terms at https://clarion.uz/startups/terms.
Log in or Sign Up to review the conditions and access this model content.
UzASR-CTC-220M
Live API free 30 min: clarion.uz
Commercial use, on-prem deployment & custom fine-tuning: rustam@clarion.uz Β· startups: free program at https://clarion.uz/startups
The fast Uzbek speech recognition model: 9.4% WER on real conversational speech at 168Γ realtime in 1.4 GB of VRAM, with punctuation and sentence capitalization. 220M-parameter CTC model fine-tuned from GigaAM-Multilingual (MIT), decoded with a 4-gram KenLM.
This repository always holds the latest release. Every release is also an
immutable tag (v0.3.0, β¦) β pin one in production. Need the last point of
accuracy? See UzASR-CTC-600M.
Open-weight, research license: the weights are downloadable (gated form) and free for evaluation and non-commercial research; commercial use is available on request under a written license.
Results
Uzbek Spontaneous Speech benchmark v3: 311 human-verified clips of real Uzbek conversation (podcasts, interviews, talks). Corpus-level, lowercased, punctuation stripped.
| Model | Params | WER | WER (canonical) | CER |
|---|---|---|---|---|
| UzASR-CTC-220M v0.3.0 | 220M | 9.4% | 8.7% | 3.0% |
| UzASR-CTC-600M v0.3.0 | 600M | 8.1% | 7.4% | 2.5% |
| GigaAM-large β untuned | 600M | 14.4% | 13.2% | 5.3% |
| whisper-large-v3-turbo-uzbek | 809M | 38.6% | 38.2% | 18.5% |
The canonical column joins Uzbek clitics on both sides before scoring. Per-clip predictions are in the benchmark repository.
Speed: 168Γ realtime on one RTX 4090 with KenLM (beam 64), 1.4 GB VRAM. The same training recipe gains twice as much on this model as on the 600M, so the cheap tier is closer to the large one than its size suggests.
Usage
pip install -r https://huggingface.co/rustam1221/UzASR-CTC-220M/raw/main/requirements.txt
wget https://huggingface.co/rustam1221/UzASR-CTC-220M/raw/main/inference.py
python inference.py interview.mp3 --model 220m
python inference.py interview.mp3 --model 220m --revision v0.3.0 # pin a release
python inference.py interview.mp3 --model 220m --no-lm # greedy, no kenlm needed
pip install "transformers>=5.22.1" librosa # optional, for --speakers
python inference.py interview.mp3 --model 220m --speakers
With --speakers the transcript is split by who speaks when (output of the 600M model):
[00:00:27.9 - 00:00:36.1] Speaker 2: Sizni asosiy daromadingiz reklamadan va bitta reklamniy video sizdan buyurtma berish qancha turadi?
[00:00:38.9 - 00:00:42.2] Speaker 3: Bir yuz ellik dollar. Bitta video bir yuz ellik dollar.
Speaker turns come from NVIDIA Nemotron-3-Diarization (OpenMDW-1.1, up to 8 speakers, downloaded on first use). On synthetic Uzbek conversations it reaches 2.2% DER with two speakers and 3.8% with four (collar 0.25 s); five or more speakers are less reliable for now.
from inference import UzbekAsr
asr = UzbekAsr("rustam1221/UzASR-CTC-220M", revision="v0.3.0")
print(asr.transcribe("interview.mp3"))
# Assalomu alaykum, bugungi suhbatimizda ta'lim tizimi haqida gaplashamiz.
ffmpeg must be on PATH β any audio or video container works. Long audio
is split at its quietest points.
Files
| File | What it is |
|---|---|
model.safetensors |
acoustic model weights (fp32) |
config.json |
base model commit, vocabulary, LM weights and beam |
lm/uz-4gram-2026-10-27.* |
KenLM 4-gram, 10.2M sentences, benchmark-decontaminated |
inference.py |
standalone inference script |
How it was built
- Fine-tuned on 1.6k hours of Uzbek speech, with
. , ? !added as four extra CTC outputs so the model punctuates from prosody. - Adapted to spontaneous speech on a conversational mix (podcasts, IT talks, YouTube) with read-speech replay.
- Trained on ~250 hours of YouTube speech whose transcript was cross-checked by two independent systems.
The language model text is tahrirchi/uz-crawl (Apache-2.0) plus the training transcripts, with every sentence that shares a 10-word sequence with a benchmark reference removed.
The full ablation ladder (ten checkpoints), training configs and history live in the archive repository uzbek-asr-gigaam.
Releases
| Tag | Benchmark v3 WER | Notes |
|---|---|---|
v0.3.0 |
9.4% | spontaneous-speech adaptation + uz-crawl LM; = uzasr-base-v0.3.0 |
- Downloads last month
- 2
Model tree for rustam1221/UzASR-CTC-220M
Base model
ai-sage/GigaAM-MultilingualDatasets used to train rustam1221/UzASR-CTC-220M
rustam1221/uzbek-asr-train-manifests
Evaluation results
- WER on Uzbek Spontaneous Speech ASR Benchmarkself-reported9.430
- CER on Uzbek Spontaneous Speech ASR Benchmarkself-reported2.960