Add C and C++ API for Moonshine models (#1476)

This commit is contained in:
Fangjun Kuang
2024-10-26 23:24:46 +08:00
committed by GitHub
parent bd4b223920
commit 2ca2985d04
13 changed files with 650 additions and 0 deletions

View File

@@ -450,6 +450,18 @@ sherpa_onnx::OfflineRecognizerConfig convertConfig(
recognizer_config.model_config.sense_voice.use_itn =
config->model_config.sense_voice.use_itn;
recognizer_config.model_config.moonshine.preprocessor =
SHERPA_ONNX_OR(config->model_config.moonshine.preprocessor, "");
recognizer_config.model_config.moonshine.encoder =
SHERPA_ONNX_OR(config->model_config.moonshine.encoder, "");
recognizer_config.model_config.moonshine.uncached_decoder =
SHERPA_ONNX_OR(config->model_config.moonshine.uncached_decoder, "");
recognizer_config.model_config.moonshine.cached_decoder =
SHERPA_ONNX_OR(config->model_config.moonshine.cached_decoder, "");
recognizer_config.lm_config.model =
SHERPA_ONNX_OR(config->lm_config.model, "");
recognizer_config.lm_config.scale =

View File

@@ -389,6 +389,13 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineWhisperModelConfig {
int32_t tail_paddings;
} SherpaOnnxOfflineWhisperModelConfig;
SHERPA_ONNX_API typedef struct SherpaOnnxOfflineMoonshineModelConfig {
const char *preprocessor;
const char *encoder;
const char *uncached_decoder;
const char *cached_decoder;
} SherpaOnnxOfflineMoonshineModelConfig;
SHERPA_ONNX_API typedef struct SherpaOnnxOfflineTdnnModelConfig {
const char *model;
} SherpaOnnxOfflineTdnnModelConfig;
@@ -424,6 +431,7 @@ SHERPA_ONNX_API typedef struct SherpaOnnxOfflineModelConfig {
const char *bpe_vocab;
const char *telespeech_ctc;
SherpaOnnxOfflineSenseVoiceModelConfig sense_voice;
SherpaOnnxOfflineMoonshineModelConfig moonshine;
} SherpaOnnxOfflineModelConfig;
SHERPA_ONNX_API typedef struct SherpaOnnxOfflineRecognizerConfig {

View File

@@ -227,6 +227,15 @@ OfflineRecognizer OfflineRecognizer::Create(
config.model_config.sense_voice.language.c_str();
c.model_config.sense_voice.use_itn = config.model_config.sense_voice.use_itn;
c.model_config.moonshine.preprocessor =
config.model_config.moonshine.preprocessor.c_str();
c.model_config.moonshine.encoder =
config.model_config.moonshine.encoder.c_str();
c.model_config.moonshine.uncached_decoder =
config.model_config.moonshine.uncached_decoder.c_str();
c.model_config.moonshine.cached_decoder =
config.model_config.moonshine.cached_decoder.c_str();
c.lm_config.model = config.lm_config.model.c_str();
c.lm_config.scale = config.lm_config.scale;

View File

@@ -225,6 +225,13 @@ struct SHERPA_ONNX_API OfflineSenseVoiceModelConfig {
bool use_itn = false;
};
struct SHERPA_ONNX_API OfflineMoonshineModelConfig {
std::string preprocessor;
std::string encoder;
std::string uncached_decoder;
std::string cached_decoder;
};
struct SHERPA_ONNX_API OfflineModelConfig {
OfflineTransducerModelConfig transducer;
OfflineParaformerModelConfig paraformer;
@@ -241,6 +248,7 @@ struct SHERPA_ONNX_API OfflineModelConfig {
std::string bpe_vocab;
std::string telespeech_ctc;
OfflineSenseVoiceModelConfig sense_voice;
OfflineMoonshineModelConfig moonshine;
};
struct SHERPA_ONNX_API OfflineLMConfig {