Committed by
GitHub
Add Go API for FireRedAsr AED Model (#1879)
正在显示
5 个修改的文件
包含
40 行增加
和
0 行删除
| @@ -160,6 +160,10 @@ jobs: | @@ -160,6 +160,10 @@ jobs: | ||
| 160 | go build | 160 | go build |
| 161 | ls -lh | 161 | ls -lh |
| 162 | 162 | ||
| 163 | + echo "Test FireRedAsr" | ||
| 164 | + ./run-fire-red-asr.sh | ||
| 165 | + rm -rf sherpa-onnx-fire-red-asr-* | ||
| 166 | + | ||
| 163 | echo "Test Moonshine" | 167 | echo "Test Moonshine" |
| 164 | ./run-moonshine.sh | 168 | ./run-moonshine.sh |
| 165 | rm -rf sherpa-onnx-* | 169 | rm -rf sherpa-onnx-* |
| @@ -28,6 +28,9 @@ func main() { | @@ -28,6 +28,9 @@ func main() { | ||
| 28 | 28 | ||
| 29 | flag.StringVar(&config.ModelConfig.NemoCTC.Model, "nemo-ctc", "", "Path to the NeMo CTC model") | 29 | flag.StringVar(&config.ModelConfig.NemoCTC.Model, "nemo-ctc", "", "Path to the NeMo CTC model") |
| 30 | 30 | ||
| 31 | + flag.StringVar(&config.ModelConfig.FireRedAsr.Encoder, "fire-red-asr-encoder", "", "Path to the FireRedAsr encoder model") | ||
| 32 | + flag.StringVar(&config.ModelConfig.FireRedAsr.Decoder, "fire-red-asr-decoder", "", "Path to the FireRedAsr decoder model") | ||
| 33 | + | ||
| 31 | flag.StringVar(&config.ModelConfig.Whisper.Encoder, "whisper-encoder", "", "Path to the whisper encoder model") | 34 | flag.StringVar(&config.ModelConfig.Whisper.Encoder, "whisper-encoder", "", "Path to the whisper encoder model") |
| 32 | flag.StringVar(&config.ModelConfig.Whisper.Decoder, "whisper-decoder", "", "Path to the whisper decoder model") | 35 | flag.StringVar(&config.ModelConfig.Whisper.Decoder, "whisper-decoder", "", "Path to the whisper decoder model") |
| 33 | flag.StringVar(&config.ModelConfig.Whisper.Language, "whisper-language", "", "Language of the input wave. You can leave it empty ") | 36 | flag.StringVar(&config.ModelConfig.Whisper.Language, "whisper-language", "", "Language of the input wave. You can leave it empty ") |
| 1 | +#!/usr/bin/env bash | ||
| 2 | + | ||
| 3 | +set -ex | ||
| 4 | + | ||
| 5 | +if [ ! -f ./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/encoder.int8.onnx ]; then | ||
| 6 | + curl -SL -O https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16.tar.bz2 | ||
| 7 | + tar xvf sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16.tar.bz2 | ||
| 8 | + rm sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16.tar.bz2 | ||
| 9 | + ls -lh sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16 | ||
| 10 | +fi | ||
| 11 | + | ||
| 12 | +go mod tidy | ||
| 13 | +go build | ||
| 14 | + | ||
| 15 | +./non-streaming-decode-files \ | ||
| 16 | + --fire-red-asr-encoder=./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/encoder.int8.onnx \ | ||
| 17 | + --fire-red-asr-decoder=./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/decoder.int8.onnx \ | ||
| 18 | + --tokens=./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/tokens.txt \ | ||
| 19 | + ./sherpa-onnx-fire-red-asr-large-zh_en-2025-02-16/test_wavs/0.wav | ||
| 20 | + |
| 1 | +../../../../go-api-examples/non-streaming-decode-files/run-fire-red-asr.sh |
| @@ -385,6 +385,11 @@ type OfflineWhisperModelConfig struct { | @@ -385,6 +385,11 @@ type OfflineWhisperModelConfig struct { | ||
| 385 | TailPaddings int | 385 | TailPaddings int |
| 386 | } | 386 | } |
| 387 | 387 | ||
| 388 | +type OfflineFireRedAsrModelConfig struct { | ||
| 389 | + Encoder string | ||
| 390 | + Decoder string | ||
| 391 | +} | ||
| 392 | + | ||
| 388 | type OfflineMoonshineModelConfig struct { | 393 | type OfflineMoonshineModelConfig struct { |
| 389 | Preprocessor string | 394 | Preprocessor string |
| 390 | Encoder string | 395 | Encoder string |
| @@ -416,6 +421,7 @@ type OfflineModelConfig struct { | @@ -416,6 +421,7 @@ type OfflineModelConfig struct { | ||
| 416 | Tdnn OfflineTdnnModelConfig | 421 | Tdnn OfflineTdnnModelConfig |
| 417 | SenseVoice OfflineSenseVoiceModelConfig | 422 | SenseVoice OfflineSenseVoiceModelConfig |
| 418 | Moonshine OfflineMoonshineModelConfig | 423 | Moonshine OfflineMoonshineModelConfig |
| 424 | + FireRedAsr OfflineFireRedAsrModelConfig | ||
| 419 | Tokens string // Path to tokens.txt | 425 | Tokens string // Path to tokens.txt |
| 420 | 426 | ||
| 421 | // Number of threads to use for neural network computation | 427 | // Number of threads to use for neural network computation |
| @@ -538,6 +544,12 @@ func NewOfflineRecognizer(config *OfflineRecognizerConfig) *OfflineRecognizer { | @@ -538,6 +544,12 @@ func NewOfflineRecognizer(config *OfflineRecognizerConfig) *OfflineRecognizer { | ||
| 538 | c.model_config.moonshine.cached_decoder = C.CString(config.ModelConfig.Moonshine.CachedDecoder) | 544 | c.model_config.moonshine.cached_decoder = C.CString(config.ModelConfig.Moonshine.CachedDecoder) |
| 539 | defer C.free(unsafe.Pointer(c.model_config.moonshine.cached_decoder)) | 545 | defer C.free(unsafe.Pointer(c.model_config.moonshine.cached_decoder)) |
| 540 | 546 | ||
| 547 | + c.model_config.fire_red_asr.encoder = C.CString(config.ModelConfig.FireRedAsr.Encoder) | ||
| 548 | + defer C.free(unsafe.Pointer(c.model_config.fire_red_asr.encoder)) | ||
| 549 | + | ||
| 550 | + c.model_config.fire_red_asr.decoder = C.CString(config.ModelConfig.FireRedAsr.Decoder) | ||
| 551 | + defer C.free(unsafe.Pointer(c.model_config.fire_red_asr.decoder)) | ||
| 552 | + | ||
| 541 | c.model_config.tokens = C.CString(config.ModelConfig.Tokens) | 553 | c.model_config.tokens = C.CString(config.ModelConfig.Tokens) |
| 542 | defer C.free(unsafe.Pointer(c.model_config.tokens)) | 554 | defer C.free(unsafe.Pointer(c.model_config.tokens)) |
| 543 | 555 |
-
请 注册 或 登录 后发表评论