diff --git a/.github/workflows/test-go.yaml b/.github/workflows/test-go.yaml index b1909494..9f6a4bc3 100644 --- a/.github/workflows/test-go.yaml +++ b/.github/workflows/test-go.yaml @@ -179,6 +179,10 @@ jobs: go build ls -lh + echo "Test Dolphin CTC" + ./run-dolphin-ctc-base.sh + rm -rf sherpa-onnx-dolphin-* + echo "Test FireRedAsr" ./run-fire-red-asr.sh rm -rf sherpa-onnx-fire-red-asr-* diff --git a/c-api-examples/vad-moonshine-c-api.c b/c-api-examples/vad-moonshine-c-api.c index 2ad6f6d6..1ea522f5 100644 --- a/c-api-examples/vad-moonshine-c-api.c +++ b/c-api-examples/vad-moonshine-c-api.c @@ -86,7 +86,7 @@ int32_t main() { vadConfig.num_threads = 1; vadConfig.debug = 1; - SherpaOnnxVoiceActivityDetector *vad = + const SherpaOnnxVoiceActivityDetector *vad = SherpaOnnxCreateVoiceActivityDetector(&vadConfig, 30); if (vad == NULL) { diff --git a/c-api-examples/vad-sense-voice-c-api.c b/c-api-examples/vad-sense-voice-c-api.c index eeddfce8..e8297407 100644 --- a/c-api-examples/vad-sense-voice-c-api.c +++ b/c-api-examples/vad-sense-voice-c-api.c @@ -87,7 +87,7 @@ int32_t main() { vadConfig.num_threads = 1; vadConfig.debug = 1; - SherpaOnnxVoiceActivityDetector *vad = + const SherpaOnnxVoiceActivityDetector *vad = SherpaOnnxCreateVoiceActivityDetector(&vadConfig, 30); if (vad == NULL) { diff --git a/c-api-examples/vad-whisper-c-api.c b/c-api-examples/vad-whisper-c-api.c index 48e6b784..8750bb76 100644 --- a/c-api-examples/vad-whisper-c-api.c +++ b/c-api-examples/vad-whisper-c-api.c @@ -84,7 +84,7 @@ int32_t main() { vadConfig.num_threads = 1; vadConfig.debug = 1; - SherpaOnnxVoiceActivityDetector *vad = + const SherpaOnnxVoiceActivityDetector *vad = SherpaOnnxCreateVoiceActivityDetector(&vadConfig, 30); if (vad == NULL) { diff --git a/go-api-examples/non-streaming-decode-files/main.go b/go-api-examples/non-streaming-decode-files/main.go index ccfbbb80..4da40d91 100644 --- a/go-api-examples/non-streaming-decode-files/main.go +++ b/go-api-examples/non-streaming-decode-files/main.go @@ -28,6 +28,8 @@ func main() { flag.StringVar(&config.ModelConfig.NemoCTC.Model, "nemo-ctc", "", "Path to the NeMo CTC model") + flag.StringVar(&config.ModelConfig.Dolphin.Model, "dolphin-model", "", "Path to the Dolphin CTC model") + flag.StringVar(&config.ModelConfig.FireRedAsr.Encoder, "fire-red-asr-encoder", "", "Path to the FireRedAsr encoder model") flag.StringVar(&config.ModelConfig.FireRedAsr.Decoder, "fire-red-asr-decoder", "", "Path to the FireRedAsr decoder model") diff --git a/go-api-examples/non-streaming-decode-files/run-dolphin-ctc-base.sh b/go-api-examples/non-streaming-decode-files/run-dolphin-ctc-base.sh new file mode 100755 index 00000000..ea40bcc2 --- /dev/null +++ b/go-api-examples/non-streaming-decode-files/run-dolphin-ctc-base.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -ex + +if [ ! -f ./sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02/model.int8.onnx ]; then + curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02.tar.bz2 + tar xvf sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02.tar.bz2 + rm sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02.tar.bz2 + ls -lh sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02 +fi + +go mod tidy +go build + +./non-streaming-decode-files \ + --dolphin-model ./sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02/model.int8.onnx \ + --tokens ./sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02/tokens.txt \ + --debug 0 \ + ./sherpa-onnx-dolphin-base-ctc-multi-lang-int8-2025-04-02/test_wavs/0.wav diff --git a/scripts/go/_internal/non-streaming-decode-files/run-dolphin-ctc-base.sh b/scripts/go/_internal/non-streaming-decode-files/run-dolphin-ctc-base.sh new file mode 120000 index 00000000..1fc71459 --- /dev/null +++ b/scripts/go/_internal/non-streaming-decode-files/run-dolphin-ctc-base.sh @@ -0,0 +1 @@ +../../../../go-api-examples/non-streaming-decode-files/run-dolphin-ctc-base.sh \ No newline at end of file diff --git a/scripts/go/sherpa_onnx.go b/scripts/go/sherpa_onnx.go index 5fa13d65..613cda2d 100644 --- a/scripts/go/sherpa_onnx.go +++ b/scripts/go/sherpa_onnx.go @@ -377,6 +377,10 @@ type OfflineNemoEncDecCtcModelConfig struct { Model string // Path to the model, e.g., model.onnx or model.int8.onnx } +type OfflineDolphinModelConfig struct { + Model string // Path to the model, e.g., model.onnx or model.int8.onnx +} + type OfflineWhisperModelConfig struct { Encoder string Decoder string @@ -422,6 +426,7 @@ type OfflineModelConfig struct { SenseVoice OfflineSenseVoiceModelConfig Moonshine OfflineMoonshineModelConfig FireRedAsr OfflineFireRedAsrModelConfig + Dolphin OfflineDolphinModelConfig Tokens string // Path to tokens.txt // Number of threads to use for neural network computation @@ -512,6 +517,8 @@ func newCOfflineRecognizerConfig(config *OfflineRecognizerConfig) *C.struct_Sher c.model_config.fire_red_asr.encoder = C.CString(config.ModelConfig.FireRedAsr.Encoder) c.model_config.fire_red_asr.decoder = C.CString(config.ModelConfig.FireRedAsr.Decoder) + c.model_config.dolphin.model = C.CString(config.ModelConfig.Dolphin.Model) + c.model_config.tokens = C.CString(config.ModelConfig.Tokens) c.model_config.num_threads = C.int(config.ModelConfig.NumThreads)