Downloads · 30 days
55
62% of all-time downloads
Alexxerm/gigaam-v3-e2e-rnnt-sherpa-onnx
gigaam-v3-e2e-rnnt-sherpa-onnx is a automatic speech recognition model from Alexxerm. Use it when you need speech turned into text. It is set up for sherpa-onnx. The card lists the license as mit.
Russian ASR model packaged for sherpa-onnx, including on-device use on Android and iOS.
Downloads · 30 days
55
62% of all-time downloads
All-time downloads
89
Public
Repo size
226 MB
Likes
0
Public
Click a slice to open those files.
.onnx226 MB · 100%
From the Hugging Face model README
Russian ASR model packaged for sherpa-onnx, including on-device use on Android and iOS.
Unlike the officially converted GigaAM models, this is the end-to-end variant: it outputs punctuation, capitalization and normalized numbers directly, with no separate post-processing step.
без e2e: так так а вот это влад это значит у тебя сейчас дима на когда в работе
с e2e: Так. Так. А вот это, Влад, это, значит, а у тебя сейчас, Дим, на когда в работе?
| File | Size | Purpose |
|---|---|---|
encoder.int8.onnx | 214 MB | Conformer encoder, int8 quantized |
decoder.onnx | 1.1 MB | RNN-T prediction network |
joiner.onnx | 0.7 MB | RNN-T joint network |
tokens.txt | 13 KB | BPE vocabulary, 1025 entries |
import sherpa_onnx
recognizer = sherpa_onnx.OfflineRecognizer.from_transducer(
encoder="encoder.int8.onnx",
decoder="decoder.onnx",
joiner="joiner.onnx",
tokens="tokens.txt",
num_threads=2,
sample_rate=16000,
feature_dim=64, # GigaAM uses 64 mel bins, not 80
decoding_method="greedy_search",
model_type="nemo_transducer", # required: auto-detection does not trigger
)
Two settings are easy to get wrong and both are required: feature_dim=64
(most NeMo models use 80) and an explicit model_type.
The encoder has positional embeddings for 5000 frames — with 4× subsampling that is
200 seconds of audio per call, beyond which onnxruntime throws
Attempting to broadcast an axis by a dimension other than 1.
Quality degrades long before that hard limit. Measured on real meeting recordings:
| Input | Recognized characters |
|---|---|
| 170 s in one call | 265 |
| same 170 s in 30 s chunks | 2572 |
The model was trained on segments up to ~30 s. Feed it VAD-segmented chunks of about 25–30 s; anything longer silently loses most of the speech.
Samsung Galaxy S25 Ultra, CPU, 2 threads, 30 s chunks:
| Real-time factor | 0.029 — one hour of audio in under two minutes |
| Model load | ~1.1 s |
| Peak memory | ~450 MB |
More threads and NNAPI gave no speedup: the bottleneck is the sequential RNN-T decoder, not the encoder.
Starting from istupakov/gigaam-v3-onnx,
which targets the onnx-asr runtime, four changes were needed for sherpa-onnx:
is_giga_am, vocab_size, pred_hidden,
pred_rnn_layers, subsampling_factor) — sherpa-onnx identifies GigaAM by these.x cast from int64 to int32.dec transposed from [1, 1, 320] to [1, 320, 1].unused_x_len input/output added, and inputs reordered to
x, unused_x_len.1, h.1, c.1 — sherpa-onnx binds them positionally, not by name.Conversion script: convert_e2e.py
MIT, inherited from the original model.
This repository only repackages existing work; no retraining or fine-tuning was done.