ONNX Model Zoo

danielbodart/nemotron-speech-600m-onnx

By danielbodart · ↓ 0 · ♥ 0 · Updated 2026-03-22

What's in this repo

This page lists the files in danielbodart/nemotron-speech-600m-onnx, including decoder_model.onnx, encoder_model.onnx and more.

  • 6 ONNX models (.onnx files)
  • 19 files, including 6 .onnx, 6 .data, 1 .md, 1 .json, 1 .bin, 1 .meta
  • Last updated 2026-03-22

ONNX files

File Size Download
fp16/decoder_model.onnx — Download
fp16/encoder_model.onnx — Download
fp32/decoder_model.onnx — Download
fp32/encoder_model.onnx — Download
int8/decoder_model.onnx — Download
int8/encoder_model.onnx — Download

How to use

These ONNX files can be loaded with ONNX Runtime. To inspect a model graph, upload the file to the Netron viewer. Download links point to the original files on Hugging Face.

README

Nemotron Speech 600M — ONNX (Streaming)

ONNX export of nvidia/nemotron-speech-streaming-en-0.6b, a 600M-parameter streaming ASR model using FastConformer encoder + RNNT decoder.

Exported directly from the original NeMo checkpoint (not from a third-party conversion) to ensure numerical fidelity.

Available Precisions

Variant Encoder Weights Decoder Weights Total Target Hardware Notes
fp32/ 2.3 GB 34 MB 2.4 GB Any Original precision
fp16/ 1.2 GB 17 MB 1.2 GB NVIDIA GPU (tensor cores), Apple Silicon (ANE/GPU) Recommended for GPU inference
int8/ 799 MB 34 MB 876 MB Intel CPU (VNNI/AMX) Dynamic quantization, encoder MatMul weights only

Model Architecture

  • Encoder: Cache-aware streaming FastConformer (24 layers, 1024 dim)
  • Decoder: RNNT with LSTM prediction network (2 layers, 640 hidden)
  • Vocabulary: 1025 SentencePiece tokens (1024 + blank)
  • Audio input: 128-channel mel spectrogram, 16kHz, 560ms chunks (56 mel frames + 9 cache frames)

Runtime Configuration

All parameters needed to run the model are documented in config.json. Key values:

Audio Preprocessing

Parameter Value
Sample rate 16000 Hz
Sample format S16_LE (16-bit signed little-endian)
Pre-emphasis 0.97
FFT size 512
Hop length 160 samples (10ms)
Window length 400 samples (25ms)
Window type Hann
Mel bands 128
Mel norm Slaney
Mel layout Band-major [n_mels, n_frames] (not frame-major)

Mel filterbank weights are provided in shared/filterbank.bin (shape [1, 128, 257]).

Encoder Streaming

Parameter Value
Chunk size 56 mel frames (560ms audio)
Pre-encode cache 9 mel frames (prepended from previous chunk)
Total input frames 65 per chunk (56 + 9)
Layers 24
Dimension 1024
cache_last_channel shape [1, 24, 70, 1024] (init zeros)
cache_last_time shape [1, 24, 1024, 8] (init zeros)
cache_last_channel_len [1] int64 (init zero)

Feed cache outputs back as next chunk's cache inputs.

RNNT Decoder

Parameter Value
Blank token ID 1024
Vocab size 1025 (1024 tokens + blank)
Max symbols per frame 10
Prediction layers 2 (LSTM)
Prediction hidden 640
input_states_1/2 shape [2, 1, 640] float32 (init zeros)

For each encoder output frame: feed single frame [1, 1024, 1] to decoder, argmax logits over 1025 vocab, if not blank emit token and loop (up to 10), if blank move to next frame. Feed decoder states back for next symbol/frame.

Files

config.json                 # Machine-readable runtime parameters (all values above)

shared/
├── filterbank.bin          # Mel filterbank weights [1, 128, 257] Slaney norm
├── filterbank.meta         # Shape metadata
├── tokens.txt              # SentencePiece vocabulary (1024 tokens)
└── preprocessor.config     # Feature extraction parameters

fp32/                       # FP32 precision
├── encoder_model.onnx      # Streaming encoder graph
├── encoder_model.onnx.data # Encoder weights
├── decoder_model.onnx      # RNNT decoder+joint graph
└── decoder_model.onnx.data # Decoder weights

fp16/                       # FP16 precision (same structure)
├── encoder_model.onnx
├── encoder_model.onnx.data
├── decoder_model.onnx
└── decoder_model.onnx.data

int8/                       # INT8 dynamic quantization (same structure)
├── encoder_model.onnx      # MatMulInteger ops for encoder weights
├── encoder_model.onnx.data
├── decoder_model.onnx      # Decoder stays FP32
└── decoder_model.onnx.data

Usage

Download a specific precision:

# FP16 (recommended for GPU)
hf download danielbodart/nemotron-speech-600m-onnx fp16/ shared/ config.json --local-dir ./model

# INT8 (recommended for Intel CPU)
hf download danielbodart/nemotron-speech-600m-onnx int8/ shared/ config.json --local-dir ./model

# FP32 (reference)
hf download danielbodart/nemotron-speech-600m-onnx fp32/ shared/ config.json --local-dir ./model

Load with ONNX Runtime:

import onnxruntime as ort

# GPU inference (FP16 recommended)
encoder = ort.InferenceSession("model/fp16/encoder_model.onnx",
                                providers=["CUDAExecutionProvider"])
decoder = ort.InferenceSession("model/fp16/decoder_model.onnx",
                                providers=["CUDAExecutionProvider"])

# CPU inference (INT8 recommended)
encoder = ort.InferenceSession("model/int8/encoder_model.onnx",
                                providers=["CPUExecutionProvider"])
decoder = ort.InferenceSession("model/int8/decoder_model.onnx",
                                providers=["CPUExecutionProvider"])

Export Reproducibility

All export, conversion, quantization, and validation scripts are in the companion GitHub repo: danielbodart/nemotron-speech-600m-onnx

  • nemo_export_onnx.py — Export from original NeMo checkpoint
  • onnx_fp16_convert.py — FP32 → FP16 conversion with I/O Cast wrappers
  • onnx_fp16_validate.py — Numerical validation (encoder max abs diff 99%)
  • onnx_int8_quantize.py — Dynamic INT8 quantization (MatMul weights only)
  • onnx_int8_validate.py — INT8 validation
  • onnx_package_for_hf.py — Consolidate and package for Hub upload

License

The original model is licensed under CC-BY-4.0 by NVIDIA.

Model info

onnx fastconformer_rnnt asr speech-recognition streaming nemotron nvidia rnnt fastconformer automatic-speech-recognition en base_model:nvidia/nemotron-speech-streaming-en-0.6b
↓ 0 ♥ 0

Created: 2026-03-21

Updated: 2026-03-22

View on Hugging Face

Files (19)

.gitattributes
README.md
config.json
fp16/decoder_model.onnx ONNX
fp16/decoder_model.onnx.data
fp16/encoder_model.onnx ONNX
fp16/encoder_model.onnx.data
fp32/decoder_model.onnx ONNX
fp32/decoder_model.onnx.data
fp32/encoder_model.onnx ONNX
fp32/encoder_model.onnx.data
int8/decoder_model.onnx ONNX
int8/decoder_model.onnx.data
int8/encoder_model.onnx ONNX
int8/encoder_model.onnx.data
shared/filterbank.bin
shared/filterbank.meta
shared/preprocessor.config
shared/tokens.txt

Related models