Add support for the new NeMo Canary ASR model across multiple language bindings by introducing a Canary model configuration and setter method on the offline recognizer.
- Define Canary model config in Pascal, Go, C#, Dart and update converter functions
- Add SetConfig API for offline recognizer (Pascal, Go, C#, Dart)
- Extend CI/workflows and example scripts to test non-streaming Canary decoding
This PR integrates LODR (Level-Ordered Deterministic Rescoring) support from Icefall into both online and offline recognizers, enabling LODR for LM shallow fusion and LM rescore.
- Extended OnlineLMConfig and OfflineLMConfig to include lodr_fst, lodr_scale, and lodr_backoff_id.
- Implemented LodrFst and LodrStateCost classes and wired them into RNN LM scoring in both online and offline code paths.
- Updated Python bindings, CLI entry points, examples, and CI test scripts to accept and exercise the new LODR options.
This PR introduces support for NeMo Canary models across C, C++, and JavaScript APIs
by adding new Canary configuration structures, updating bindings, extending examples,
and enhancing CI workflows.
- Add OfflineCanaryModelConfig to all language bindings (C, C++, JS, ETS).
- Implement SetConfig methods and NAPI wrappers for updating recognizer config at runtime.
- Update examples and CI scripts to demonstrate and test NeMo Canary model usage.
This PR adds support for non-streaming Zipformer CTC ASR models across
multiple language bindings, WebAssembly, examples, and CI workflows.
- Introduces a new OfflineZipformerCtcModelConfig in C/C++, Python, Swift, Java, Kotlin, Go, Dart, Pascal, and C# APIs
- Updates initialization, freeing, and recognition logic to include Zipformer CTC in WASM and Node.js
- Adds example scripts and CI steps for downloading, building, and running Zipformer CTC models
Model doc is available at
https://k2-fsa.github.io/sherpa/onnx/pretrained_models/offline-ctc/icefall/zipformer.html
Adds support for Zipformer transducer ASR models that use Whisper-style
features by introducing a new feature flag, parsing metadata,
and integrating per-chunk normalization.
- Introduce UseWhisperFeature in the model interface and Zipformer implementation
- Parse "feature" metadata to set the whisper flag and wire it into the recognizer
- Update feature extraction logic to handle Whisper filterbanks with early returns
* online-transducer: reset the encoder toghter with 2 previous output symbols (non-blank)
- added `reset_encoder` boolean member into the OnlineRecognizerConfig class
- by default the encoder is not reset
* pybind11, adding empty symbols for disabled modules (tts, diarization)
* reset_encoder, add default value (false) [pybind11]
- make sure the defaults in `cmake/cmake_extension.py` variable
`extra_cmake_args` can be overriden by `cmake_args` from
`SHERPA_ONNX_CMAKE_ARGS` env variable
- fix a bug in `sherpa-onnx/csrc/parse-options.cc` which appears
when using `-DSHERPA_ONNX_ENABLE_CHECK=ON`
- avoid copying binaries when these are disabled
* Disable strict hotword matching mode for offline transducer. Also introduces new variable, so that later this mode can be switched on in the runtime.
* remove strict mode variable
---------
Co-authored-by: Askars Salimbajevs <askars.salimbajevs@tilde.lv>
* Use PROJECT_SOURCE_DIR rather than CMAKE_SOURCE_DIR to allow building as subdirectory
* Also use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR in c/cxx api examples
* Only build examples by default when not building as subdirectory
* Do not suggest building binaries either
---------
Co-authored-by: user <user@mail.tld>