From 5c9aebd5839cca2ba44384019d393212ece61882 Mon Sep 17 00:00:00 2001 From: zhaomingwork <61895407+zhaomingwork@users.noreply.github.com> Date: Sat, 5 Aug 2023 10:32:48 +0800 Subject: [PATCH] For java ci actions (#231) --- .github/workflows/run-java-test.yaml | 55 ++++++++++++++++++++++ java-api-examples/Makefile | 4 +- java-api-examples/README.md | 6 +++ java-api-examples/runtest.sh | 66 +++++++++++++++++++++++++++ java-api-examples/src/DecodeFile.java | 2 +- 5 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/run-java-test.yaml create mode 100755 java-api-examples/runtest.sh diff --git a/.github/workflows/run-java-test.yaml b/.github/workflows/run-java-test.yaml new file mode 100644 index 00000000..98a85071 --- /dev/null +++ b/.github/workflows/run-java-test.yaml @@ -0,0 +1,55 @@ +name: run-java-test + +on: + push: + branches: + - master + paths: + - '.github/workflows/run-java-test.yaml' + - 'CMakeLists.txt' + - 'cmake/**' + - 'java-api-examples/**' + - 'sherpa-onnx/csrc/*' + - 'sherpa-onnx/jni/*' + pull_request: + branches: + - master + paths: + - '.github/workflows/run-java-test.yaml' + - 'CMakeLists.txt' + - 'cmake/**' + - 'java-api-examples/**' + - 'sherpa-onnx/csrc/*' + - 'sherpa-onnx/jni/*' + +concurrency: + group: jni-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + jni: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Display java version + shell: bash + run: | + java -version + echo "JAVA_HOME is: ${JAVA_HOME}" + + - name: Run java test + shell: bash + run: | + cd ./java-api-examples + ./runtest.sh diff --git a/java-api-examples/Makefile b/java-api-examples/Makefile index 3404b1e3..47cfb60c 100755 --- a/java-api-examples/Makefile +++ b/java-api-examples/Makefile @@ -73,10 +73,10 @@ runmic: java -cp ./lib/sherpaonnx.jar:build $(RUNJFLAGS) DecodeMic runsrv: - java -cp $(BUILD_DIR):lib/Java-WebSocket-1.5.3.jar:lib/slf4j-simple-1.7.25.jar:lib/slf4j-api-1.7.25.jar:../lib/sherpaonnx.jar $(RUNJFLAGS) websocketsrv.AsrWebsocketServer /sherpa-onnx/20230515/zhaoming/sherpa-onnx/build/lib/libsherpa-onnx-jni.so ./modelconfig.cfg + java -cp $(BUILD_DIR):lib/Java-WebSocket-1.5.3.jar:lib/slf4j-simple-1.7.25.jar:lib/slf4j-api-1.7.25.jar:../lib/sherpaonnx.jar $(RUNJFLAGS) websocketsrv.AsrWebsocketServer ../build/lib/libsherpa-onnx-jni.so ./modeltest.cfg runclient: - java -cp $(BUILD_DIR):lib/Java-WebSocket-1.5.3.jar:lib/slf4j-simple-1.7.25.jar:lib/slf4j-api-1.7.25.jar:../lib/sherpaonnx.jar $(RUNJFLAGS) websocketsrv.AsrWebsocketClient /sherpa-onnx/20230515/zhaoming/sherpa-onnx/build/lib/libsherpa-onnx-jni.so 127.0.0.1 8890 ./test.wav 32 + java -cp $(BUILD_DIR):lib/Java-WebSocket-1.5.3.jar:lib/slf4j-simple-1.7.25.jar:lib/slf4j-api-1.7.25.jar:../lib/sherpaonnx.jar $(RUNJFLAGS) websocketsrv.AsrWebsocketClient ../build/lib/libsherpa-onnx-jni.so 127.0.0.1 8890 ./test.wav 32 buildlib: $(LIB_FILES:.java=.class) diff --git a/java-api-examples/README.md b/java-api-examples/README.md index 97968cc8..85976846 100755 --- a/java-api-examples/README.md +++ b/java-api-examples/README.md @@ -185,3 +185,9 @@ json result example: {"text":"甚至出现交易几乎停滞的情况","eof":"tr make runclient /**change path in Makefile according to your env**/ ``` +7 runtest +this script will download model, compile codes and run test +```bash + cd sherpa-onnx/java-api-examples + runtest.sh +``` \ No newline at end of file diff --git a/java-api-examples/runtest.sh b/java-api-examples/runtest.sh new file mode 100755 index 00000000..7672319d --- /dev/null +++ b/java-api-examples/runtest.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +# +# This scripts shows how to test java for sherpa-onnx +# Note: This scripts runs only on Linux and macOS + +set -e + +log() { + # This function is from espnet + local fname=${BASH_SOURCE[1]##*/} + echo -e "$(date '+%Y-%m-%d %H:%M:%S') (${fname}:${BASH_LINENO[0]}:${FUNCNAME[1]}) $*" +} + + + + +echo "PATH: $PATH" + + + + + +log "------------------------------------------------------------" +log "Run download model" +log "------------------------------------------------------------" + +repo_url=https://huggingface.co/csukuangfj/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20 +log "Start testing ${repo_url}" +repo=$(basename $repo_url) +log "download dir is $(basename $repo_url)" +if [ ! -d $repo ];then + log "Download pretrained model and test-data from $repo_url" + + GIT_LFS_SKIP_SMUDGE=1 git clone $repo_url + pushd $repo + git lfs pull --include "*.onnx" + ls -lh *.onnx + popd +fi + +log $(pwd) + +sed -e 's?/sherpa/?'$(pwd)'/?g' modelconfig.cfg > modeltest.cfg + +log "display model cfg" +cat modeltest.cfg + +cd .. + +export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::") + +mkdir -p build +cd build + +cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DSHERPA_ONNX_ENABLE_JNI=ON .. + +make -j4 +ls -lh lib + +export LD_LIBRARY_PATH=$PWD/build/lib:$LD_LIBRARY_PATH + +cd ../java-api-examples + +make all + +make runfile diff --git a/java-api-examples/src/DecodeFile.java b/java-api-examples/src/DecodeFile.java index f3865a61..9b46e079 100644 --- a/java-api-examples/src/DecodeFile.java +++ b/java-api-examples/src/DecodeFile.java @@ -159,7 +159,7 @@ public class DecodeFile { String appDir = System.getProperty("user.dir"); System.out.println("appdir=" + appDir); String fileName = appDir + "/test.wav"; - String cfgPath = appDir + "/modelconfig.cfg"; + String cfgPath = appDir + "/modeltest.cfg"; String soPath = appDir + "/../build/lib/libsherpa-onnx-jni.so"; OnlineRecognizer.setSoPath(soPath); DecodeFile rcgDemo = new DecodeFile(fileName);