Downloads · 30 days
39
33% of all-time downloads
idrock/piyola-v2
piyola-v2 is a automatic speech recognition model from idrock. Use it when you need speech turned into text. It is set up for nemo. The card lists the license as cc-by-4.0.
Uzbek automatic speech recognition, fine-tuned from nvidia/parakeet-tdt-0.6b-v2 (0.6B-parameter FastConformer encoder with a Token-and-Duration Transducer head).
Downloads · 30 days
39
33% of all-time downloads
All-time downloads
120
Public
Repo size
2.5 GB
Likes
0
Public
Click a slice to open those files.
.nemo2.5 GB · 100%
From the Hugging Face model README
Uzbek automatic speech recognition, fine-tuned from
nvidia/parakeet-tdt-0.6b-v2
(0.6B-parameter FastConformer encoder with a Token-and-Duration Transducer head).
The English head and tokenizer of the base model are replaced with a purpose-built Uzbek SentencePiece BPE-1024 tokenizer, and the whole model is then fine-tuned for Uzbek speech.
[0, 1, 2, 3, 4])All numbers are greedy TDT decoding, no language model, no rescoring. Reference and hypothesis text are normalized identically (lowercase, unified apostrophe, punctuation stripped).
| Benchmark | Utterances | WER | CER |
|---|---|---|---|
| FeruzaSpeech (test) | 672 | 6.08 % | 1.05 % |
| FLEURS (uz, test) | 658 | 10.67 % | 2.78 % |
| uzbek-speech-corpus (test) | 3,184 | 11.86 % | 3.22 % |
| Omnilingual (test) | 252 | 25.57 % | 10.10 % |
The spread is the point: ~6 % on clean studio read speech, ~11 % on crowdsourced read speech, ~26 % on spontaneous/noisy audio. Pick the row that matches your audio, not the best one. FLEURS is the most useful single number for comparing against other published Uzbek ASR systems.
The base checkpoint is English-only, so it cannot transcribe Uzbek at all — it maps Uzbek phonetics onto English subwords. Measured on the same evaluation set, same decoding:
| Model | Test WER | Test CER |
|---|---|---|
nvidia/parakeet-tdt-0.6b-v2 (base, zero-shot) | 105.37 % | 64.67 % |
idrock/parakeet-tdt-uz-finetune | 12.89 % | 3.80 % |
Base-model WER exceeds 100 % because it inserts more words than the reference contains. For a sense of what that looks like:
REF: shu o'rinda odam emassiz hayvonsiz desam qo'polligim uchun ranjiysiz
BASE: Shurunda Odami Masas Haivanses Desam Kopaligim Uchundran Jesus.
OURS: shu o'rinda odam emassiz hayvonsiz desam qo'polligim uchun ranjiysiz
Requires NeMo:
pip install "nemo_toolkit[asr]"
from huggingface_hub import hf_hub_download
from nemo.collections.asr.models import EncDecRNNTBPEModel
path = hf_hub_download("idrock/parakeet-tdt-uz-finetune", "parakeet-tdt-uz-finetune.nemo")
model = EncDecRNNTBPEModel.restore_from(path)
model.eval()
hyps = model.transcribe(["audio.wav"], batch_size=8)
print(hyps[0].text)
Audio must be 16 kHz mono. Resample first if yours is not:
ffmpeg -i input.mp3 -ar 16000 -ac 1 audio.wav
Long files should be chunked — the model was trained on clips of 0.1–20 s and has not been tuned for long-form decoding.
bo'lgan, o'sha) is part of the vocabulary and is produced.a-z, apostrophe and space. Numbers are
produced as words if at all; the model can never emit 2014.parakeet-tdt-0.6b-v2 encoder.| File | Purpose |
|---|---|
parakeet-tdt-uz-finetune.nemo | the fine-tuned model (load with EncDecRNNTBPEModel.restore_from) |
model_config.yaml | model config extracted from the .nemo, for inspection |
tokenizer/ | SentencePiece BPE-1024 model and vocabulary |
CC-BY-4.0, inherited from the
nvidia/parakeet-tdt-0.6b-v2 base model.
The base model:
@misc{parakeet-tdt-0.6b-v2,
title = {Parakeet TDT 0.6B V2},
author = {NVIDIA NeMo Team},
year = {2025},
url = {https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2}
}
The TDT decoder:
@inproceedings{xu2023efficient,
title = {Efficient Sequence Transduction by Jointly Predicting Tokens and Durations},
author = {Xu, Hainan and Jia, Fei and Majumdar, Somshubra and Huang, He and Watanabe, Shinji and Ginsburg, Boris},
booktitle = {ICML},
year = {2023}
}