--- license: apache-2.0 language: - fa library_name: nemo pipeline_tag: automatic-speech-recognition tags: - nemo - automatic-speech-recognition - speech - persian - farsi - fastconformer - ctc - on-device - shenava - shenava-1 - visualears - liteasr - compression - low-rank - dhh base_model: Reza2kn/Shenava-Koochik-v1.0 base_model_relation: quantized datasets: - Reza2kn/visualears-golden-6669 - Reza2kn/fleurs-fa-benchmark --- # Shenava Koochik Lite v1.0 A LITEASR-compressed encoder for [Shenava Koochik v1.0](https://huggingface.co/Reza2kn/Shenava-Koochik-v1.0). Post-training low-rank factorization reduces the encoder from 108.9M to 85.4M parameters (21.6%) without retraining. This repository is **not a standalone ASR checkpoint**. It contains a replacement encoder state dict and must be loaded on top of the base `.nemo` model; the decoder, CTC head, and tokenizer still come from Koochik. - Canonical repository: [`Reza2kn/Shenava-Koochik-Lite-v1.0`](https://huggingface.co/Reza2kn/Shenava-Koochik-Lite-v1.0) - PersianML mirror: [`PersianML/Shenava-Koochik-Lite-v1.0`](https://huggingface.co/PersianML/Shenava-Koochik-Lite-v1.0) ## Files - `koochik_lite099_enc.pt`: compressed FP32 encoder state dict. - `koochik_lite099_kmap.json`: retained rank for each factorized layer. - `load_koochik_lite.py`: reconstructs the low-rank modules and loads the state dict into the base model. ## Load ```python from huggingface_hub import hf_hub_download, snapshot_download from load_koochik_lite import load_koochik_lite base = hf_hub_download( "Reza2kn/Shenava-Koochik-v1.0", "shenava-koochik-v1.0.nemo", ) repo = snapshot_download("Reza2kn/Shenava-Koochik-Lite-v1.0") model = load_koochik_lite( base, f"{repo}/koochik_lite099_enc.pt", f"{repo}/koochik_lite099_kmap.json", ) print(model.transcribe(["speech.wav"])[0].text) ``` ## Published trade-off The release evaluated both greedy decoding and an optional Vosk-guided hotword beam. Lower is better. | Decode | golden-6669 keyword-band WER | FLEURS keyword-band WER | golden-6669 overall WER | FLEURS overall WER | |---|---:|---:|---:|---:| | Full Koochik, greedy | 8.0 | 13.1 | 4.64 | 5.36 | | Koochik Lite, greedy | 12.5 | 18.0 | 6.92 | 7.23 | | Koochik Lite + Vosk guide | 6.4 | 11.7 | 5.30 | 5.31 | Compression alone reduces quality; the Vosk-guided result requires a separate Vosk first pass plus hotword-aware `pyctcdecode` beam search. Do not compare the guided row to a greedy-only deployment as though they used the same runtime. ## فارسی این مخزن یک مدل کامل و مستقل نیست؛ فقط encoder فشرده‌شده را نگه می‌دارد و برای اجرا به فایل NeMo مدل اصلی نیاز دارد. نسخهٔ greedy سبک‌تر است ولی افت دقت دارد؛ ردیف Vosk-guided به یک مرحلهٔ جداگانهٔ Vosk و beam search نیاز دارد. Apache-2.0. Compression method: [LITEASR](https://arxiv.org/abs/2502.20583).