Shenava-Koochik-Lite-v1.0

A LITEASR-compressed version of Reza2kn/Shenava-Koochik-v1.0 β€” the 114M Persian FastConformer of the Shenava (Ψ΄Ω†ΩˆΨ§) keyword-robust ASR family for Deaf/Hard-of-Hearing (DHH) captioning.

The encoder is shrunk 21.6% (108.9M β†’ 85.4M params) with no retraining, via a post-training low-rank factorization of its feed-forward / self-attention linear layers (LITEASR, Kamahori et al. 2025): PCA on layer activations keeps the top-k principal directions per layer, replacing each Linear with a rank-k Sequential(Linear, Linear). The ΞΈ = 0.99 energy threshold sets k per layer.

Why it exists β€” keyword robustness, not just size

Shenava's target metric is the keyword band: WER over words a salience model (ShenavaSanj) rates high-importance (β‰₯ 0.8) β€” the names / places / domain terms a DHH caption cannot afford to drop. Compression alone hurts this band badly. But paired with a Vosk-guided decode (Vosk-fa's per-clip words boosted as hotwords in a pyctcdecode beam), most of that damage is recovered β€” the guide is more keyword-accurate than either the full or the compressed encoder, so it pins the band.

Benchmarks (importance-weighted, +both normalization; keyword band = importance β‰₯ 0.8):

decode g6669 band FLEURS band g6669 WER FLEURS WER
Koochik (full) β€” greedy 8.0 13.1 4.64 5.36
Koochik-Lite β€” greedy 12.5 18.0 6.92 7.23
Koochik (full) + Vosk 5.2 9.5 4.24 4.42
Koochik-Lite + Vosk 6.4 11.7 5.30 5.31

g6669 = visualears-golden-6669 (5669 clips); FLEURS = fa test (4341).

Takeaways:

  • Compression alone costs the keyword band +4.5 (g6669) / +4.9 (FLEURS).
  • The Vosk guide recovers most of it β€” residual cost drops to +1.2 / +2.2.
  • Koochik-Lite + Vosk (band 6.4) beats full Koochik decoded greedily (8.0): the 22%-smaller model, Vosk-guided, is more keyword-robust than the full model on its own.
  • Overall WER pays ~1 point (the guide fixes keywords, not the common-word errors compression adds) β€” the right trade for a keyword-first DHH metric.

Use this tier when you want the high-accuracy Koochik at ~78% of its encoder footprint and can run the CPU Vosk guide. If you cannot run Vosk, prefer the full Koochik (greedy compression cost is steep). Stacks with the existing NVFP4 / ONNX-fp16 quantization for a further combined reduction.

Files

file what
koochik_lite099_enc.pt compressed encoder state_dict (fp32, ~326 MB)
koochik_lite099_kmap.json per-layer rank k (rebuilds the low-rank skeleton)
load_koochik_lite.py loader: base .nemo + skeleton + state_dict

Only the encoder changes; the decoder / CTC head / tokenizer come from the base model unchanged.

Usage

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")
m = load_koochik_lite(base, f"{repo}/koochik_lite099_enc.pt", f"{repo}/koochik_lite099_kmap.json")

print(m.transcribe(["clip.wav"])[0].text)          # greedy

For the Vosk-guided decode (the benchmark's + Vosk rows), run a first pass with vosk-model-fa, take its per-clip words as pyctcdecode hotwords, and beam-decode the model's CTC log-probs (hotword_weight β‰ˆ 10, beam_width β‰ˆ 80). See the Shenava keyword-recovery writeup for the full decode recipe.

License & citation

CC-BY-NC-4.0, following the base model. Built on nvidia/stt_fa_fastconformer_hybrid_large.

@article{kamahori2025liteasr, title={LiteASR: Efficient Automatic Speech Recognition with Low-Rank Approximation}, author={Kamahori, Keisuke and others}, journal={arXiv:2502.20583}, year={2025} }
Downloads last month
40
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Reza2kn/Shenava-Koochik-Lite-v1.0

Quantized
(9)
this model

Datasets used to train Reza2kn/Shenava-Koochik-Lite-v1.0

Paper for Reza2kn/Shenava-Koochik-Lite-v1.0