Add Javascript (node-addon) API for Dolphin CTC models (#2094)

This commit is contained in:
Fangjun Kuang
2025-04-03 15:03:33 +08:00
committed by GitHub
parent 639ad1744f
commit 903e825eba
6 changed files with 95 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ export { CircularBuffer, SileroVadConfig, SpeechSegment, Vad, VadConfig, } from
export { Samples,
OfflineStream,
FeatureConfig,
OfflineDolphinModelConfig,
OfflineTransducerModelConfig,
OfflineParaformerModelConfig,
OfflineNemoEncDecCtcModelConfig,

View File

@@ -44,6 +44,22 @@ static SherpaOnnxOfflineParaformerModelConfig GetOfflineParaformerModelConfig(
return c;
}
static SherpaOnnxOfflineDolphinModelConfig GetOfflineDolphinfig(
Napi::Object obj) {
SherpaOnnxOfflineDolphinModelConfig c;
memset(&c, 0, sizeof(c));
if (!obj.Has("dolphin") || !obj.Get("dolphin").IsObject()) {
return c;
}
Napi::Object o = obj.Get("dolphin").As<Napi::Object>();
SHERPA_ONNX_ASSIGN_ATTR_STR(model, model);
return c;
}
static SherpaOnnxOfflineNemoEncDecCtcModelConfig GetOfflineNeMoCtcModelConfig(
Napi::Object obj) {
SherpaOnnxOfflineNemoEncDecCtcModelConfig c;
@@ -168,6 +184,7 @@ static SherpaOnnxOfflineModelConfig GetOfflineModelConfig(Napi::Object obj) {
c.sense_voice = GetOfflineSenseVoiceModelConfig(o);
c.moonshine = GetOfflineMoonshineModelConfig(o);
c.fire_red_asr = GetOfflineFireRedAsrModelConfig(o);
c.dolphin = GetOfflineDolphinfig(o);
SHERPA_ONNX_ASSIGN_ATTR_STR(tokens, tokens);
SHERPA_ONNX_ASSIGN_ATTR_INT32(num_threads, numThreads);
@@ -292,6 +309,8 @@ CreateOfflineRecognizerWrapper(const Napi::CallbackInfo &info) {
SHERPA_ONNX_DELETE_C_STR(c.model_config.fire_red_asr.encoder);
SHERPA_ONNX_DELETE_C_STR(c.model_config.fire_red_asr.decoder);
SHERPA_ONNX_DELETE_C_STR(c.model_config.dolphin.model);
SHERPA_ONNX_DELETE_C_STR(c.model_config.tokens);
SHERPA_ONNX_DELETE_C_STR(c.model_config.provider);
SHERPA_ONNX_DELETE_C_STR(c.model_config.model_type);

View File

@@ -45,6 +45,10 @@ export class OfflineNemoEncDecCtcModelConfig {
public model: string = '';
}
export class OfflineDolphinModelConfig {
public model: string = '';
}
export class OfflineWhisperModelConfig {
public encoder: string = '';
public decoder: string = '';
@@ -86,6 +90,7 @@ export class OfflineModelConfig {
public telespeechCtc: string = '';
public senseVoice: OfflineSenseVoiceModelConfig = new OfflineSenseVoiceModelConfig();
public moonshine: OfflineMoonshineModelConfig = new OfflineMoonshineModelConfig();
public dolphin: OfflineDolphinModelConfig = new OfflineDolphinModelConfig();
}
export class OfflineLMConfig {
@@ -159,4 +164,4 @@ export class OfflineRecognizer {
return r;
}
}
}