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

@@ -223,6 +223,14 @@ struct SHERPA_ONNX_API OfflineWhisperModelConfig {
int32_t tail_paddings = -1;
};
struct SHERPA_ONNX_API OfflineCanaryModelConfig {
std::string encoder;
std::string decoder;
std::string src_lang;
std::string tgt_lang;
bool use_pnc = true;
};
struct SHERPA_ONNX_API OfflineFireRedAsrModelConfig {
std::string encoder;
std::string decoder;
@@ -273,6 +281,7 @@ struct SHERPA_ONNX_API OfflineModelConfig {
OfflineFireRedAsrModelConfig fire_red_asr;
OfflineDolphinModelConfig dolphin;
OfflineZipformerCtcModelConfig zipformer_ctc;
OfflineCanaryModelConfig canary;
};
struct SHERPA_ONNX_API OfflineLMConfig {
@@ -335,6 +344,8 @@ class SHERPA_ONNX_API OfflineRecognizer
OfflineRecognizerResult GetResult(const OfflineStream *s) const;
void SetConfig(const OfflineRecognizerConfig &config) const;
private:
explicit OfflineRecognizer(const SherpaOnnxOfflineRecognizer *p);
};