sherpa-onnx supports several streaming ASR model families through the SherpaOnnxCreateOnlineRecognizer() API. Configure exactly one model family by filling in the corresponding sub-struct of SherpaOnnxOnlineModelConfig.
- See also
- SherpaOnnxCreateOnlineRecognizer, SherpaOnnxOnlineRecognizerConfig, SherpaOnnxOnlineModelConfig
Transducer (Zipformer)
Streaming Zipformer transducer models are the most widely used streaming ASR models in sherpa-onnx.
memset(&config, 0, sizeof(config));
"./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/"
"encoder-epoch-99-avg-1.int8.onnx";
"./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/"
"decoder-epoch-99-avg-1.onnx";
"./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/"
"joiner-epoch-99-avg-1.int8.onnx";
"./sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/tokens.txt";
struct SherpaOnnxOnlineRecognizer SherpaOnnxOnlineRecognizer
Streaming recognizer handle.
const SherpaOnnxOnlineRecognizer * SherpaOnnxCreateOnlineRecognizer(const SherpaOnnxOnlineRecognizerConfig *config)
Create a streaming ASR recognizer.
SherpaOnnxOnlineTransducerModelConfig transducer
Configuration for a streaming ASR recognizer.
SherpaOnnxOnlineModelConfig model_config
const char * decoding_method
SherpaOnnxFeatureConfig feat_config
Model package: sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20
Example source: streaming-zipformer-c-api.c
Nemotron (NeMo Transducer)
Nemotron is an NVIDIA NeMo streaming transducer model. The runtime auto-detects NeMo transducer models from the decoder's output node count, so no model_type string is needed.
"./sherpa-onnx-nemotron-speech-streaming-en-0.6b-560ms-int8-2026-04-25/"
"encoder.int8.onnx";
"./sherpa-onnx-nemotron-speech-streaming-en-0.6b-560ms-int8-2026-04-25/"
"decoder.int8.onnx";
"./sherpa-onnx-nemotron-speech-streaming-en-0.6b-560ms-int8-2026-04-25/"
"joiner.int8.onnx";
"./sherpa-onnx-nemotron-speech-streaming-en-0.6b-560ms-int8-2026-04-25/"
"tokens.txt";
Model package: sherpa-onnx-nemotron-speech-streaming-en-0.6b-560ms-int8-2026-04-25
Available variants: 80ms, 160ms, 560ms, 1120ms chunk sizes.
Example source: streaming-nemotron-c-api.c
Streaming Paraformer
Streaming Paraformer is a non-autoregressive streaming ASR model from FunASR.
"./sherpa-onnx-streaming-paraformer-bilingual-zh-en/encoder.int8.onnx";
"./sherpa-onnx-streaming-paraformer-bilingual-zh-en/decoder.int8.onnx";
"./sherpa-onnx-streaming-paraformer-bilingual-zh-en/tokens.txt";
SherpaOnnxOnlineParaformerModelConfig paraformer
Model package: sherpa-onnx-streaming-paraformer-bilingual-zh-en
Example source: streaming-paraformer-c-api.c
Zipformer2 CTC
Streaming Zipformer2 CTC models use CTC decoding instead of transducer decoding.
"./sherpa-onnx-streaming-zipformer-ctc-multi-zh-hans-2023-12-13/"
"ctc-epoch-20-avg-1-chunk-16-left-128.int8.onnx";
"./sherpa-onnx-streaming-zipformer-ctc-multi-zh-hans-2023-12-13/"
"tokens.txt";
SherpaOnnxOnlineZipformer2CtcModelConfig zipformer2_ctc
Model package: sherpa-onnx-streaming-zipformer-ctc-multi-zh-hans-2023-12-13
Example source: streaming-ctc-buffered-tokens-c-api.c
T-One CTC
T-One is a streaming CTC model for Russian.
"./sherpa-onnx-streaming-t-one-russian-2025-09-08/model.onnx";
"./sherpa-onnx-streaming-t-one-russian-2025-09-08/tokens.txt";
SherpaOnnxOnlineToneCtcModelConfig t_one_ctc
Model package: sherpa-onnx-streaming-t-one-russian-2025-09-08
Example source: streaming-t-one-ctc-c-api.c