Add C/CXX/JavaScript API for NeMo Canary models (#2357)

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 commit is contained in:
Fangjun Kuang
2025-07-07 23:38:04 +08:00
committed by GitHub
parent 0e738c356c
commit df4615ca1d
28 changed files with 750 additions and 80 deletions

View File

@@ -487,6 +487,21 @@ static sherpa_onnx::OfflineRecognizerConfig GetOfflineRecognizerConfig(
recognizer_config.model_config.zipformer_ctc.model =
SHERPA_ONNX_OR(config->model_config.zipformer_ctc.model, "");
recognizer_config.model_config.canary.encoder =
SHERPA_ONNX_OR(config->model_config.canary.encoder, "");
recognizer_config.model_config.canary.decoder =
SHERPA_ONNX_OR(config->model_config.canary.decoder, "");
recognizer_config.model_config.canary.src_lang =
SHERPA_ONNX_OR(config->model_config.canary.src_lang, "");
recognizer_config.model_config.canary.tgt_lang =
SHERPA_ONNX_OR(config->model_config.canary.tgt_lang, "");
recognizer_config.model_config.canary.use_pnc =
config->model_config.canary.use_pnc;
recognizer_config.lm_config.model =
SHERPA_ONNX_OR(config->lm_config.model, "");
recognizer_config.lm_config.scale =