soniqo/Nemotron-3.5-ASR-Streaming-Multilingual-0.6B-LiteRT-FP16
Nemotron-3.5-ASR-Streaming-Multilingual-0.6B — LiteRT (FP16)
Cache-aware streaming multilingual speech recognition. A 0.6 B FastConformer-RNNT encoder with a 128-slot language prompt, exported to LiteRT (`.tflite`) in FP16 for on-device Android inference (GPU / NNAPI / XNNPACK). FP16 is near-lossless versus the FP32 source at half the size.
- Architecture: cache-aware FastConformer encoder (24 layers, 1024 hidden, 8× subsampling) + RNN-T decoder/joint
- Streaming: 320 ms chunk, 240 ms lookahead, left attention context 56, right context 3
- Languages: 100+ via the prompt dictionary (
languages.json); benchmarked on 6 below - Audio: 16 kHz mono, 128-bin log-mel front end
Model
Files
Performance
FLEURS test, 320 ms streaming, CPU, n=30 per language. LiteRT FP16 matches ONNX FP16 within small-n variance (confirms the export is near-lossless). Japanese uses CER.
On Android, run FP16 through the GPU or NNAPI delegate for hardware-accelerated half-precision inference.
Usage
from ai_edge_litert.interpreter import Interpreter
enc = Interpreter(model_path="nemotron-multilingual-encoder.tflite")
enc.allocate_tensors()
# io_map.json describes the 22 ports: audio/mel input, the language-prompt slot,
# the carried encoder caches (attention / conv / pre-cache), and the emitted features.
# Per 320 ms chunk: set inputs + carried caches, invoke(), then drive the RNN-T
# decoder/joint greedy loop over the 4 emitted frames; carry caches into the next chunk.Production streaming, delegate selection, cache management and RNN-T greedy decoding are handled by the [speech-android](https://github.com/soniqo/speech-android) SDK.
Source
Converted from [nvidia/nemotron-3.5-asr-streaming-0.6b](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b) (NVIDIA NeMo) via ai-edge-torch. Licensed under the NVIDIA Open Model License.
Related models
Links
- speech-android — Android SDK
- speech-core — on-device inference core (C++)
- soniqo.audio — website
- blog — blog
