Downloads · 30 days
0
investguy/nemotron-speech-streaming-en-0.6b-int8
nemotron-speech-streaming-en-0.6b-int8 is a machine learning model from investguy. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Dynamic int8-quantized ONNX export of nvidia/nemotron-speech-streaming-en-0.6b for use with parakeet-rs.
Downloads · 30 days
0
Access
Public
Updated Jun 17, 2026
Repo size
1.3 GB
Likes
0
Public
Click a slice to open those files.
.onnx662 MB · 100%
From the Hugging Face model README
Dynamic int8-quantized ONNX export of nvidia/nemotron-speech-streaming-en-0.6b for use with parakeet-rs.
English-only, cache-aware streaming ASR (~600M parameters). Preserves disfluencies (um, uh) and outputs verbatim English with punctuation.
This bundle uses the 560 ms streaming mode (--right-context 6 at export, the default NVIDIA preset). Other latencies (80 / 160 / 1120 ms) require a separate export and matching CHUNK_SIZE in parakeet-rs.
All files must live in the same directory:
| File | Size (approx.) | Description |
|---|---|---|
encoder.int8.onnx | ~623 MB | Streaming encoder (dynamic int8 weights, single file) |
decoder_joint.int8.onnx | ~8.6 MB | RNNT decoder + joint network |
tokenizer.model | ~246 KB | SentencePiece tokenizer |
No config.json is required at inference time — parakeet-rs embeds streaming constants in Rust.
| Component | fp32 | int8 |
|---|---|---|
| Encoder | ~2.3 GB | ~623 MB |
| Decoder/joint | ~35 MB | ~8.6 MB |
| Total weights | ~2.4 GB | ~632 MB |
Roughly 75% smaller than the fp32 ONNX export.
| Property | Value |
|---|---|
| Base model | nemotron-speech-streaming-en-0.6b |
| Architecture | Cache-aware FastConformer + RNNT |
| Sample rate | 16 kHz mono |
| Mel features | 128 |
| Subsampling | 8× |
| Encoder layers | 24 |
| Hidden dim | 1024 |
| Vocab size | 1024 (+ blank) |
| Streaming latency | 560 ms per encoder step |
| Export flags | --right-context 6, --left-context 70 |
| Mel frames / step | 56 |
| Audio samples / step | 8960 @ 16 kHz |
| Attention context | left=70, right=6 |
python parakeet-rs/scripts/export_nemotron_streaming.py \
nemotron-speech-streaming-en-0.6b/nemotron-speech-streaming-en-0.6b.nemo \
out_onnx/ \
--right-context 6
pip install onnx 'onnxruntime>=1.20'
python parakeet-rs/scripts/quantize_nemotron_streaming.py \
out_onnx/ \
out_onnx_int8/ \
--clean-output
Quantization uses ONNX Runtime dynamic int8 (quantize_dynamic): encoder QUInt8, decoder/joint QInt8.
| Latency | --right-context | Mel frames/step | Samples/step @ 16 kHz | parakeet-rs CHUNK_SIZE |
|---|---|---|---|---|
| 80 ms | 0 | 8 | 1280 | 8 |
| 160 ms | 1 | 16 | 2560 | 16 |
| 560 ms (this bundle) | 6 | 56 | 8960 | 56 |
| 1120 ms | 13 | 112 | 17920 | 112 |
Latency is not selectable in the quantize script or Nemotron::from_pretrained — re-export fp32, re-quantize, and update CHUNK_SIZE in parakeet-rs/src/nemotron.rs.
Nemotron::from_pretrained takes the model directory and an optional execution provider only. Chunking is done via transcribe_chunk, which buffers audio until 560 ms of new audio is ready (for this export).
use parakeet_rs::Nemotron;
let mut model = Nemotron::from_pretrained("./out_onnx_int8", None)?;
// Feed any slice size; encoder runs every 560 ms of new audio.
for frame in audio_source.frames() {
let text = model.transcribe_chunk(&frame)?;
print!("{}", text);
}
// Or feed 560 ms blocks directly (8960 samples @ 16 kHz)
const FEED_560MS: usize = 8960;
for chunk in audio.chunks(FEED_560MS) {
let text = model.transcribe_chunk(chunk)?;
print!("{}", text);
}
Example:
cd parakeet-rs
cargo run --release --example streaming /path/to/audio.wav
# Point the example at this directory (./nemotron or pass path)
The loader picks encoder.int8.onnx and decoder_joint.int8.onnx when present. This repo build sets CHUNK_SIZE = 56 for the 560 ms export.
onnx, onnxruntime>=1.20Slice/Tile tensors during quantize are expected.Derived from NVIDIA Nemotron Speech Streaming. Use and redistribution follow the license terms of the original model.