From 576a3aa90d663db6d5d74051482897d0538c97d4 Mon Sep 17 00:00:00 2001 From: Fangjun Kuang Date: Wed, 18 Sep 2024 13:43:49 +0800 Subject: [PATCH] Add non-streaming ONNX models for Russian ASR (#1358) --- .github/scripts/test-offline-transducer.sh | 40 +++++++ .../workflows/export-russian-onnx-models.yaml | 108 ++++++++++++++++++ .github/workflows/linux.yaml | 16 +-- .github/workflows/macos.yaml | 13 +-- scripts/apk/generate-vad-asr-apk-script.py | 40 +++++++ sherpa-onnx/kotlin-api/OfflineRecognizer.kt | 26 +++++ 6 files changed, 228 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/export-russian-onnx-models.yaml diff --git a/.github/scripts/test-offline-transducer.sh b/.github/scripts/test-offline-transducer.sh index 1bec7ec9b..7ac729860 100755 --- a/.github/scripts/test-offline-transducer.sh +++ b/.github/scripts/test-offline-transducer.sh @@ -15,6 +15,46 @@ echo "PATH: $PATH" which $EXE +log "------------------------------------------------------------------------" +log "Run zipformer transducer models (Russian) " +log "------------------------------------------------------------------------" +for type in small-zipformer zipformer; do + url=https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-$type-ru-2024-09-18.tar.bz2 + name=$(basename $url) + curl -SL -O $url + tar xvf $name + rm $name + repo=$(basename -s .tar.bz2 $name) + ls -lh $repo + + log "test $repo" + test_wavs=( + 0.wav + 1.wav + ) + + for w in ${test_wavs[@]}; do + time $EXE \ + --tokens=$repo/tokens.txt \ + --encoder=$repo/encoder.onnx \ + --decoder=$repo/decoder.onnx \ + --joiner=$repo/joiner.onnx \ + --debug=1 \ + $repo/test_wavs/$w + done + + for w in ${test_wavs[@]}; do + time $EXE \ + --tokens=$repo/tokens.txt \ + --encoder=$repo/encoder.int8.onnx \ + --decoder=$repo/decoder.onnx \ + --joiner=$repo/joiner.int8.onnx \ + --debug=1 \ + $repo/test_wavs/$w + done + rm -rf $repo +done + log "------------------------------------------------------------------------" log "Run zipformer transducer models (Japanese from ReazonSpeech) " log "------------------------------------------------------------------------" diff --git a/.github/workflows/export-russian-onnx-models.yaml b/.github/workflows/export-russian-onnx-models.yaml new file mode 100644 index 000000000..16ee4df44 --- /dev/null +++ b/.github/workflows/export-russian-onnx-models.yaml @@ -0,0 +1,108 @@ +name: export-russian-onnx-models + +on: + workflow_dispatch: + +concurrency: + group: export-russian-onnx-models-${{ github.ref }} + cancel-in-progress: true + +jobs: + export-russian-onnx-models: + if: github.repository_owner == 'k2-fsa' || github.repository_owner == 'csukuangfj' + name: export Russian onnx models + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest] + python-version: ["3.8"] + + steps: + - uses: actions/checkout@v4 + + - name: vosk-model-ru (zipformer v1) + shell: bash + run: | + cat >README.md <README.md < { + val modelDir = "sherpa-onnx-zipformer-ru-2024-09-18" + return OfflineModelConfig( + transducer = OfflineTransducerModelConfig( + encoder = "$modelDir/encoder.int8.onnx", + decoder = "$modelDir/decoder.onnx", + joiner = "$modelDir/joiner.int8.onnx", + ), + tokens = "$modelDir/tokens.txt", + modelType = "transducer", + ) + } + + 18 -> { + val modelDir = "sherpa-onnx-small-zipformer-ru-2024-09-18" + return OfflineModelConfig( + transducer = OfflineTransducerModelConfig( + encoder = "$modelDir/encoder.int8.onnx", + decoder = "$modelDir/decoder.onnx", + joiner = "$modelDir/joiner.int8.onnx", + ), + tokens = "$modelDir/tokens.txt", + modelType = "transducer", + ) + } } return null }