Shenava 1.0: Open Streaming Persian ASR and Captioning
Collection
Public Shenava 1.0 release: Persian ASR models, Phase A/B datasets, AL corrections, eval artifacts, and demos. β’ 60 items β’ Updated
Offline Persian ASR (NVIDIA FastConformer, CTC head) exported for sherpa-onnx. Runs on every sherpa-onnx target: Python, C++, Android, iOS, WebAssembly, C#, Go, Swift, Kotlin, Rust.
Files: model.onnx + tokens.txt (16 kHz). Quality in sherpa-onnx: near-perfect.
import sherpa_onnx, soundfile as sf, numpy as np
from persian_itn import itn # spoken-number -> Persian-digit post-processor
rec = sherpa_onnx.OfflineRecognizer.from_nemo_ctc(
model="model.onnx", tokens="tokens.txt", num_threads=4)
y, sr = sf.read("audio.wav"); y = np.asarray(y, np.float32)
s = rec.create_stream(); s.accept_waveform(sr, y); rec.decode_stream(s)
print(itn(s.result.text)) # ITN: ΩΨ΄Ψͺ -> ΫΈ
normalize_type empty so sherpa-onnx skips its NeMo normalization β essential; with the default per-feature normalization the output is garbage.persian_itn.py to the output to get digits.