diff --git a/.github/workflows/release-dart-package.yaml b/.github/workflows/release-dart-package.yaml index a234b11478..baf480e91a 100644 --- a/.github/workflows/release-dart-package.yaml +++ b/.github/workflows/release-dart-package.yaml @@ -15,6 +15,7 @@ concurrency: jobs: build_linux_libs_x64: + # if: false name: ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: @@ -439,11 +440,11 @@ jobs: flutter pub publish --dry-run flutter pub publish --force - sherpa_onnx_android: + sherpa_onnx_android_arm64: # if: false permissions: id-token: write # Required for authentication using OIDC - name: sherpa_onnx_android + name: sherpa_onnx_android_arm64 runs-on: ubuntu-latest steps: @@ -458,14 +459,14 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ matrix.os }}-flutter-release-package-android + key: flutter-release-package-android-arm64 - name: Fix version shell: bash run: | SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) - src_dir=$PWD/flutter/sherpa_onnx_android + src_dir=$PWD/flutter/sherpa_onnx_android_arm64 pushd $src_dir v="version: $SHERPA_ONNX_VERSION" echo "v: $v" @@ -477,7 +478,7 @@ jobs: - name: Copy extra files shell: bash run: | - dst=flutter/sherpa_onnx_android + dst=flutter/sherpa_onnx_android_arm64 mkdir $dst/example @@ -500,6 +501,91 @@ jobs: ./build-android-arm64-v8a.sh + - name: Copy pre-built libs + shell: bash + run: | + echo "----arm64-v8a----" + cp -v build-android-arm64-v8a/install/lib/lib*.so flutter/sherpa_onnx_android_arm64/android/src/main/jniLibs/arm64-v8a/ + + mv -v flutter/sherpa_onnx_android_arm64 /tmp/to_be_published + + ls -lh /tmp/to_be_published + + cd /tmp + tar cjfv android_arm64.tar.bz2 ./to_be_published + ls -lh android_arm64.tar.bz2 + + - uses: actions/upload-artifact@v4 + with: + name: android-arm64 + path: /tmp/android_arm64.tar.bz2 + + - name: Setup Flutter SDK + uses: flutter-actions/setup-flutter@v3 + with: + channel: stable + version: latest + + - uses: dart-lang/setup-dart@v1 + + - name: Release + shell: bash + run: | + cd /tmp/to_be_published + du -h -d1 . + + flutter pub get + flutter pub publish --dry-run + flutter pub publish --force + + sherpa_onnx_android_armeabi: + # if: false + permissions: + id-token: write # Required for authentication using OIDC + name: sherpa_onnx_android_armeabi + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Update version + shell: bash + run: | + ./new-release.sh + git diff . + + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: flutter-release-package-android-armeabi + + - name: Fix version + shell: bash + run: | + SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) + + src_dir=$PWD/flutter/sherpa_onnx_android_armeabi + pushd $src_dir + v="version: $SHERPA_ONNX_VERSION" + echo "v: $v" + sed -i.bak s"/^version: .*/$v/" ./pubspec.yaml + rm *.bak + git status + git diff + + - name: Copy extra files + shell: bash + run: | + dst=flutter/sherpa_onnx_android_armeabi + + mkdir $dst/example + + cp -v flutter/sherpa_onnx/example/* $dst/example + cp -v LICENSE $dst/ + cp -v CHANGELOG.md $dst/ + + git status + - name: Build android-armv7-eabi shell: bash run: | @@ -513,6 +599,91 @@ jobs: ./build-android-armv7-eabi.sh + - name: Copy pre-built libs + shell: bash + run: | + echo "----armv7-eabi----" + cp -v build-android-armv7-eabi/install/lib/lib*.so flutter/sherpa_onnx_android_armeabi/android/src/main/jniLibs/armeabi-v7a/ + + mv -v flutter/sherpa_onnx_android_armeabi /tmp/to_be_published + + ls -lh /tmp/to_be_published + + cd /tmp + tar cjfv android_armeabi.tar.bz2 ./to_be_published + ls -lh android_armeabi.tar.bz2 + + - uses: actions/upload-artifact@v4 + with: + name: android-armeabi + path: /tmp/android_armeabi.tar.bz2 + + - name: Setup Flutter SDK + uses: flutter-actions/setup-flutter@v3 + with: + channel: stable + version: latest + + - uses: dart-lang/setup-dart@v1 + + - name: Release + shell: bash + run: | + cd /tmp/to_be_published + du -h -d1 . + + flutter pub get + flutter pub publish --dry-run + flutter pub publish --force + + sherpa_onnx_android_x86: + # if: false + permissions: + id-token: write # Required for authentication using OIDC + name: sherpa_onnx_android_x86 + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Update version + shell: bash + run: | + ./new-release.sh + git diff . + + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: flutter-release-package-android-x86 + + - name: Fix version + shell: bash + run: | + SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) + + src_dir=$PWD/flutter/sherpa_onnx_android_x86 + pushd $src_dir + v="version: $SHERPA_ONNX_VERSION" + echo "v: $v" + sed -i.bak s"/^version: .*/$v/" ./pubspec.yaml + rm *.bak + git status + git diff + + - name: Copy extra files + shell: bash + run: | + dst=flutter/sherpa_onnx_android_x86 + + mkdir $dst/example + + cp -v flutter/sherpa_onnx/example/* $dst/example + cp -v LICENSE $dst/ + cp -v CHANGELOG.md $dst/ + + git status + - name: Build android-x86 shell: bash run: | @@ -526,6 +697,91 @@ jobs: ./build-android-x86.sh + - name: Copy pre-built libs + shell: bash + run: | + echo "----x86----" + cp -v build-android-x86/install/lib/lib*.so flutter/sherpa_onnx_android_x86/android/src/main/jniLibs/x86/ + + mv -v flutter/sherpa_onnx_android_x86 /tmp/to_be_published + + ls -lh /tmp/to_be_published + + cd /tmp + tar cjfv android_x86.tar.bz2 ./to_be_published + ls -lh *.tar.bz2 + + - uses: actions/upload-artifact@v4 + with: + name: android-x86 + path: /tmp/android_x86.tar.bz2 + + - name: Setup Flutter SDK + uses: flutter-actions/setup-flutter@v3 + with: + channel: stable + version: latest + + - uses: dart-lang/setup-dart@v1 + + - name: Release + shell: bash + run: | + cd /tmp/to_be_published + du -h -d1 . + + flutter pub get + flutter pub publish --dry-run + flutter pub publish --force + + sherpa_onnx_android_x86_64: + # if: false + permissions: + id-token: write # Required for authentication using OIDC + name: sherpa_onnx_android_x86_64 + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Update version + shell: bash + run: | + ./new-release.sh + git diff . + + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: flutter-release-package-android-x86_64 + + - name: Fix version + shell: bash + run: | + SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) + + src_dir=$PWD/flutter/sherpa_onnx_android_x86_64 + pushd $src_dir + v="version: $SHERPA_ONNX_VERSION" + echo "v: $v" + sed -i.bak s"/^version: .*/$v/" ./pubspec.yaml + rm *.bak + git status + git diff + + - name: Copy extra files + shell: bash + run: | + dst=flutter/sherpa_onnx_android_x86_64 + + mkdir $dst/example + + cp -v flutter/sherpa_onnx/example/* $dst/example + cp -v LICENSE $dst/ + cp -v CHANGELOG.md $dst/ + + git status + - name: Build android-x86-64 shell: bash run: | @@ -542,22 +798,22 @@ jobs: - name: Copy pre-built libs shell: bash run: | - echo "----arm64-v8a----" - cp -v build-android-arm64-v8a/install/lib/lib*.so flutter/sherpa_onnx_android/android/src/main/jniLibs/arm64-v8a/ - - echo "----armv7-eabi----" - cp -v build-android-armv7-eabi/install/lib/lib*.so flutter/sherpa_onnx_android/android/src/main/jniLibs/armeabi-v7a - - echo "----x86----" - cp -v build-android-x86/install/lib/lib*.so flutter/sherpa_onnx_android/android/src/main/jniLibs/x86 - echo "----x86_64----" - cp -v build-android-x86-64/install/lib/lib*.so flutter/sherpa_onnx_android/android/src/main/jniLibs/x86_64 + cp -v build-android-x86-64/install/lib/lib*.so flutter/sherpa_onnx_android_x86_64/android/src/main/jniLibs/x86_64/ - mv -v flutter/sherpa_onnx_android /tmp/to_be_published + mv -v flutter/sherpa_onnx_android_x86_64 /tmp/to_be_published ls -lh /tmp/to_be_published + cd /tmp + tar cjfv android_x64.tar.bz2 ./to_be_published + ls -lh *.tar.bz2 + + - uses: actions/upload-artifact@v4 + with: + name: android-x64 + path: /tmp/android_x64.tar.bz2 + - name: Setup Flutter SDK uses: flutter-actions/setup-flutter@v3 with: @@ -661,7 +917,7 @@ jobs: flutter pub publish --force sherpa_onnx: - needs: [sherpa_onnx_linux, sherpa_onnx_macos, sherpa_onnx_windows, sherpa_onnx_android, sherpa_onnx_ios] + needs: [sherpa_onnx_linux, sherpa_onnx_macos, sherpa_onnx_windows, sherpa_onnx_android_arm64, sherpa_onnx_android_armeabi, sherpa_onnx_android_x86, sherpa_onnx_android_x86_64, sherpa_onnx_ios] # if: false permissions: id-token: write # Required for authentication using OIDC diff --git a/.github/workflows/tauri-vad-asr.yaml b/.github/workflows/tauri-vad-asr.yaml index 1169c84b08..6ac0df3129 100644 --- a/.github/workflows/tauri-vad-asr.yaml +++ b/.github/workflows/tauri-vad-asr.yaml @@ -40,6 +40,15 @@ jobs: - uses: dtolnay/rust-toolchain@stable + - name: Install Python dependencies + shell: bash + run: | + if [[ "${{ runner.os }}" == "macOS" ]]; then + python3 -m pip install --upgrade --break-system-packages pip jinja2 pillow + else + python3 -m pip install --upgrade pip jinja2 pillow + fi + - name: Install Tauri CLI shell: bash run: | diff --git a/flutter/notes.md b/flutter/notes.md index a09e781301..8ac9304fc5 100644 --- a/flutter/notes.md +++ b/flutter/notes.md @@ -27,10 +27,13 @@ flutter create --template plugin_ffi --platforms linux sherpa_onnx_linux flutter create --template plugin_ffi --platforms linux sherpa_onnx_windows ``` -5. Create `sherpa_onnx_android` +5. Create `sherpa_onnx_android_arm64`, `sherpa_onnx_android_armeabi`, `sherpa_onnx_android_x86`, `sherpa_onnx_android_x86_64` ```bash -flutter create --template plugin_ffi --platforms android --org com.k2fsa.sherpa.onnx sherpa_onnx_android +flutter create --template plugin_ffi --platforms android --org com.k2fsa.sherpa.onnx sherpa_onnx_android_arm64 +flutter create --template plugin_ffi --platforms android --org com.k2fsa.sherpa.onnx sherpa_onnx_android_armeabi +flutter create --template plugin_ffi --platforms android --org com.k2fsa.sherpa.onnx sherpa_onnx_android_x86 +flutter create --template plugin_ffi --platforms android --org com.k2fsa.sherpa.onnx sherpa_onnx_android_x86_64 ``` 6. Create `sherpa_onnx_ios` diff --git a/flutter/sherpa_onnx/pubspec.yaml b/flutter/sherpa_onnx/pubspec.yaml index 599b8bf106..43035401a7 100644 --- a/flutter/sherpa_onnx/pubspec.yaml +++ b/flutter/sherpa_onnx/pubspec.yaml @@ -30,9 +30,21 @@ dependencies: flutter: sdk: flutter - sherpa_onnx_android: ^1.12.39 - # sherpa_onnx_android: - # path: ../sherpa_onnx_android + sherpa_onnx_android_arm64: ^1.12.39 + # sherpa_onnx_android_arm64: + # path: ../sherpa_onnx_android_arm64 + + sherpa_onnx_android_armeabi: ^1.12.39 + # sherpa_onnx_android_armeabi: + # path: ../sherpa_onnx_android_armeabi + + sherpa_onnx_android_x86: ^1.12.39 + # sherpa_onnx_android_x86: + # path: ../sherpa_onnx_android_x86 + + sherpa_onnx_android_x86_64: ^1.12.39 + # sherpa_onnx_android_x86_64: + # path: ../sherpa_onnx_android_x86_64 sherpa_onnx_macos: ^1.12.39 # sherpa_onnx_macos: @@ -57,7 +69,7 @@ flutter: plugin: platforms: android: - default_package: sherpa_onnx_android + default_package: sherpa_onnx_android_arm64 ios: default_package: sherpa_onnx_ios diff --git a/flutter/sherpa_onnx_android/pubspec.yaml b/flutter/sherpa_onnx_android/pubspec.yaml index cc2bbd520a..cafeef8459 100644 --- a/flutter/sherpa_onnx_android/pubspec.yaml +++ b/flutter/sherpa_onnx_android/pubspec.yaml @@ -4,7 +4,7 @@ description: > Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi with onnxruntime without Internet connection. -version: 0.0.1 +version: 1.12.39 repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter diff --git a/flutter/sherpa_onnx_android_arm64/README.md b/flutter/sherpa_onnx_android_arm64/README.md new file mode 100644 index 0000000000..7ed512a98b --- /dev/null +++ b/flutter/sherpa_onnx_android_arm64/README.md @@ -0,0 +1,7 @@ +# sherpa_onnx_android_arm64 + +This is a sub project of [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx). + +You are not expected to use this package directly. + +Please see the entry point at . diff --git a/flutter/sherpa_onnx_android_arm64/android/build.gradle b/flutter/sherpa_onnx_android_arm64/android/build.gradle new file mode 100644 index 0000000000..663584e4d6 --- /dev/null +++ b/flutter/sherpa_onnx_android_arm64/android/build.gradle @@ -0,0 +1,48 @@ +// The Android Gradle Plugin builds the native code with the Android NDK. + +group = "com.k2fsa.sherpa.onnx.sherpa_onnx_android_arm64" +version = "1.0" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + // The Android Gradle Plugin knows how to build native code with the NDK. + classpath("com.android.tools.build:gradle:7.3.0") + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: "com.android.library" + +android { + namespace 'com.k2fsa.sherpa.onnx' + + // Bumping the plugin compileSdk version requires all clients of this plugin + // to bump the version in their app. + compileSdk = 34 + + // Use the NDK version + // declared in /android/app/build.gradle file of the Flutter project. + // Replace it with a version number if this plugin requires a specific NDK version. + // (e.g. ndkVersion "23.1.7779620") + ndkVersion = android.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + minSdk = 21 + } +} diff --git a/flutter/sherpa_onnx_android_arm64/android/settings.gradle b/flutter/sherpa_onnx_android_arm64/android/settings.gradle new file mode 100644 index 0000000000..56e04a6bb0 --- /dev/null +++ b/flutter/sherpa_onnx_android_arm64/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'sherpa_onnx_android_arm64' diff --git a/flutter/sherpa_onnx_android_arm64/android/src/main/AndroidManifest.xml b/flutter/sherpa_onnx_android_arm64/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..8b785d2fec --- /dev/null +++ b/flutter/sherpa_onnx_android_arm64/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/flutter/sherpa_onnx_android_arm64/android/src/main/jniLibs/arm64-v8a/.gitkeep b/flutter/sherpa_onnx_android_arm64/android/src/main/jniLibs/arm64-v8a/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/flutter/sherpa_onnx_android_arm64/pubspec.yaml b/flutter/sherpa_onnx_android_arm64/pubspec.yaml new file mode 100644 index 0000000000..99324da035 --- /dev/null +++ b/flutter/sherpa_onnx_android_arm64/pubspec.yaml @@ -0,0 +1,35 @@ +name: sherpa_onnx_android_arm64 + +description: > + Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi + with onnxruntime without Internet connection. Android arm64-v8a native libraries. + +version: 1.12.39 + +repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter + +issue_tracker: https://github.com/k2-fsa/sherpa-onnx/issues +documentation: https://k2-fsa.github.io/sherpa/onnx/ + +homepage: https://github.com/k2-fsa/sherpa-onnx + +topics: + - speech-recognition + - speech-synthesis + - speaker-identification + - audio-tagging + - voice-activity-detection + +environment: + sdk: ">=3.0.0 <4.0.0" + flutter: ">=2.8.1" + +dependencies: + flutter: + sdk: flutter + +flutter: + plugin: + platforms: + android: + ffiPlugin: true diff --git a/flutter/sherpa_onnx_android_armeabi/README.md b/flutter/sherpa_onnx_android_armeabi/README.md new file mode 100644 index 0000000000..c5070b374e --- /dev/null +++ b/flutter/sherpa_onnx_android_armeabi/README.md @@ -0,0 +1,7 @@ +# sherpa_onnx_android_armeabi + +This is a sub project of [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx). + +You are not expected to use this package directly. + +Please see the entry point at . diff --git a/flutter/sherpa_onnx_android_armeabi/android/build.gradle b/flutter/sherpa_onnx_android_armeabi/android/build.gradle new file mode 100644 index 0000000000..acbea4e51a --- /dev/null +++ b/flutter/sherpa_onnx_android_armeabi/android/build.gradle @@ -0,0 +1,48 @@ +// The Android Gradle Plugin builds the native code with the Android NDK. + +group = "com.k2fsa.sherpa.onnx.sherpa_onnx_android_armeabi" +version = "1.0" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + // The Android Gradle Plugin knows how to build native code with the NDK. + classpath("com.android.tools.build:gradle:7.3.0") + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: "com.android.library" + +android { + namespace 'com.k2fsa.sherpa.onnx' + + // Bumping the plugin compileSdk version requires all clients of this plugin + // to bump the version in their app. + compileSdk = 34 + + // Use the NDK version + // declared in /android/app/build.gradle file of the Flutter project. + // Replace it with a version number if this plugin requires a specific NDK version. + // (e.g. ndkVersion "23.1.7779620") + ndkVersion = android.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + minSdk = 21 + } +} diff --git a/flutter/sherpa_onnx_android_armeabi/android/settings.gradle b/flutter/sherpa_onnx_android_armeabi/android/settings.gradle new file mode 100644 index 0000000000..c5178b2572 --- /dev/null +++ b/flutter/sherpa_onnx_android_armeabi/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'sherpa_onnx_android_armeabi' diff --git a/flutter/sherpa_onnx_android_armeabi/android/src/main/AndroidManifest.xml b/flutter/sherpa_onnx_android_armeabi/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..8b785d2fec --- /dev/null +++ b/flutter/sherpa_onnx_android_armeabi/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/flutter/sherpa_onnx_android_armeabi/android/src/main/jniLibs/armeabi-v7a/.gitkeep b/flutter/sherpa_onnx_android_armeabi/android/src/main/jniLibs/armeabi-v7a/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/flutter/sherpa_onnx_android_armeabi/pubspec.yaml b/flutter/sherpa_onnx_android_armeabi/pubspec.yaml new file mode 100644 index 0000000000..06081f242e --- /dev/null +++ b/flutter/sherpa_onnx_android_armeabi/pubspec.yaml @@ -0,0 +1,35 @@ +name: sherpa_onnx_android_armeabi + +description: > + Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi + with onnxruntime without Internet connection. Android armeabi-v7a native libraries. + +version: 1.12.39 + +repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter + +issue_tracker: https://github.com/k2-fsa/sherpa-onnx/issues +documentation: https://k2-fsa.github.io/sherpa/onnx/ + +homepage: https://github.com/k2-fsa/sherpa-onnx + +topics: + - speech-recognition + - speech-synthesis + - speaker-identification + - audio-tagging + - voice-activity-detection + +environment: + sdk: ">=3.0.0 <4.0.0" + flutter: ">=2.8.1" + +dependencies: + flutter: + sdk: flutter + +flutter: + plugin: + platforms: + android: + ffiPlugin: true diff --git a/flutter/sherpa_onnx_android_x86/README.md b/flutter/sherpa_onnx_android_x86/README.md new file mode 100644 index 0000000000..4f8b446930 --- /dev/null +++ b/flutter/sherpa_onnx_android_x86/README.md @@ -0,0 +1,7 @@ +# sherpa_onnx_android_x86 + +This is a sub project of [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx). + +You are not expected to use this package directly. + +Please see the entry point at . diff --git a/flutter/sherpa_onnx_android_x86/android/build.gradle b/flutter/sherpa_onnx_android_x86/android/build.gradle new file mode 100644 index 0000000000..826fbf8871 --- /dev/null +++ b/flutter/sherpa_onnx_android_x86/android/build.gradle @@ -0,0 +1,48 @@ +// The Android Gradle Plugin builds the native code with the Android NDK. + +group = "com.k2fsa.sherpa.onnx.sherpa_onnx_android_x86" +version = "1.0" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + // The Android Gradle Plugin knows how to build native code with the NDK. + classpath("com.android.tools.build:gradle:7.3.0") + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: "com.android.library" + +android { + namespace 'com.k2fsa.sherpa.onnx' + + // Bumping the plugin compileSdk version requires all clients of this plugin + // to bump the version in their app. + compileSdk = 34 + + // Use the NDK version + // declared in /android/app/build.gradle file of the Flutter project. + // Replace it with a version number if this plugin requires a specific NDK version. + // (e.g. ndkVersion "23.1.7779620") + ndkVersion = android.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + minSdk = 21 + } +} diff --git a/flutter/sherpa_onnx_android_x86/android/settings.gradle b/flutter/sherpa_onnx_android_x86/android/settings.gradle new file mode 100644 index 0000000000..11526bc76e --- /dev/null +++ b/flutter/sherpa_onnx_android_x86/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'sherpa_onnx_android_x86' diff --git a/flutter/sherpa_onnx_android_x86/android/src/main/AndroidManifest.xml b/flutter/sherpa_onnx_android_x86/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..8b785d2fec --- /dev/null +++ b/flutter/sherpa_onnx_android_x86/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/flutter/sherpa_onnx_android_x86/android/src/main/jniLibs/x86/.gitkeep b/flutter/sherpa_onnx_android_x86/android/src/main/jniLibs/x86/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/flutter/sherpa_onnx_android_x86/pubspec.yaml b/flutter/sherpa_onnx_android_x86/pubspec.yaml new file mode 100644 index 0000000000..a654f42435 --- /dev/null +++ b/flutter/sherpa_onnx_android_x86/pubspec.yaml @@ -0,0 +1,35 @@ +name: sherpa_onnx_android_x86 + +description: > + Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi + with onnxruntime without Internet connection. Android x86 native libraries. + +version: 1.12.39 + +repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter + +issue_tracker: https://github.com/k2-fsa/sherpa-onnx/issues +documentation: https://k2-fsa.github.io/sherpa/onnx/ + +homepage: https://github.com/k2-fsa/sherpa-onnx + +topics: + - speech-recognition + - speech-synthesis + - speaker-identification + - audio-tagging + - voice-activity-detection + +environment: + sdk: ">=3.0.0 <4.0.0" + flutter: ">=2.8.1" + +dependencies: + flutter: + sdk: flutter + +flutter: + plugin: + platforms: + android: + ffiPlugin: true diff --git a/flutter/sherpa_onnx_android_x86_64/README.md b/flutter/sherpa_onnx_android_x86_64/README.md new file mode 100644 index 0000000000..729925b8e8 --- /dev/null +++ b/flutter/sherpa_onnx_android_x86_64/README.md @@ -0,0 +1,7 @@ +# sherpa_onnx_android_x86_64 + +This is a sub project of [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx). + +You are not expected to use this package directly. + +Please see the entry point at . diff --git a/flutter/sherpa_onnx_android_x86_64/android/build.gradle b/flutter/sherpa_onnx_android_x86_64/android/build.gradle new file mode 100644 index 0000000000..d7b64bd8cb --- /dev/null +++ b/flutter/sherpa_onnx_android_x86_64/android/build.gradle @@ -0,0 +1,48 @@ +// The Android Gradle Plugin builds the native code with the Android NDK. + +group = "com.k2fsa.sherpa.onnx.sherpa_onnx_android_x86_64" +version = "1.0" + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + // The Android Gradle Plugin knows how to build native code with the NDK. + classpath("com.android.tools.build:gradle:7.3.0") + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: "com.android.library" + +android { + namespace 'com.k2fsa.sherpa.onnx' + + // Bumping the plugin compileSdk version requires all clients of this plugin + // to bump the version in their app. + compileSdk = 34 + + // Use the NDK version + // declared in /android/app/build.gradle file of the Flutter project. + // Replace it with a version number if this plugin requires a specific NDK version. + // (e.g. ndkVersion "23.1.7779620") + ndkVersion = android.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + minSdk = 21 + } +} diff --git a/flutter/sherpa_onnx_android_x86_64/android/settings.gradle b/flutter/sherpa_onnx_android_x86_64/android/settings.gradle new file mode 100644 index 0000000000..83adc53158 --- /dev/null +++ b/flutter/sherpa_onnx_android_x86_64/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'sherpa_onnx_android_x86_64' diff --git a/flutter/sherpa_onnx_android_x86_64/android/src/main/AndroidManifest.xml b/flutter/sherpa_onnx_android_x86_64/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..8b785d2fec --- /dev/null +++ b/flutter/sherpa_onnx_android_x86_64/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/flutter/sherpa_onnx_android_x86_64/android/src/main/jniLibs/x86_64/.gitkeep b/flutter/sherpa_onnx_android_x86_64/android/src/main/jniLibs/x86_64/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/flutter/sherpa_onnx_android_x86_64/pubspec.yaml b/flutter/sherpa_onnx_android_x86_64/pubspec.yaml new file mode 100644 index 0000000000..73e9736951 --- /dev/null +++ b/flutter/sherpa_onnx_android_x86_64/pubspec.yaml @@ -0,0 +1,35 @@ +name: sherpa_onnx_android_x86_64 + +description: > + Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi + with onnxruntime without Internet connection. Android x86_64 native libraries. + +version: 1.12.39 + +repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter + +issue_tracker: https://github.com/k2-fsa/sherpa-onnx/issues +documentation: https://k2-fsa.github.io/sherpa/onnx/ + +homepage: https://github.com/k2-fsa/sherpa-onnx + +topics: + - speech-recognition + - speech-synthesis + - speaker-identification + - audio-tagging + - voice-activity-detection + +environment: + sdk: ">=3.0.0 <4.0.0" + flutter: ">=2.8.1" + +dependencies: + flutter: + sdk: flutter + +flutter: + plugin: + platforms: + android: + ffiPlugin: true diff --git a/flutter/sherpa_onnx_ios/pubspec.yaml b/flutter/sherpa_onnx_ios/pubspec.yaml index 34302b2ffc..69524f70d9 100644 --- a/flutter/sherpa_onnx_ios/pubspec.yaml +++ b/flutter/sherpa_onnx_ios/pubspec.yaml @@ -4,7 +4,7 @@ description: > Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi with onnxruntime without Internet connection. -version: 0.0.1 +version: 1.12.39 repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter diff --git a/flutter/sherpa_onnx_linux/pubspec.yaml b/flutter/sherpa_onnx_linux/pubspec.yaml index b1ef00bd88..49d6d7625c 100644 --- a/flutter/sherpa_onnx_linux/pubspec.yaml +++ b/flutter/sherpa_onnx_linux/pubspec.yaml @@ -3,7 +3,7 @@ description: > Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi with onnxruntime without Internet connection. -version: 0.0.1 +version: 1.12.39 repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter diff --git a/flutter/sherpa_onnx_macos/pubspec.yaml b/flutter/sherpa_onnx_macos/pubspec.yaml index f06b3a13b0..dd92a6bf37 100644 --- a/flutter/sherpa_onnx_macos/pubspec.yaml +++ b/flutter/sherpa_onnx_macos/pubspec.yaml @@ -4,7 +4,7 @@ description: > Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi with onnxruntime without Internet connection. -version: 0.0.1 +version: 1.12.39 repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter diff --git a/flutter/sherpa_onnx_windows/pubspec.yaml b/flutter/sherpa_onnx_windows/pubspec.yaml index 76f4913326..98da888159 100644 --- a/flutter/sherpa_onnx_windows/pubspec.yaml +++ b/flutter/sherpa_onnx_windows/pubspec.yaml @@ -4,7 +4,7 @@ description: > Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi with onnxruntime without Internet connection. -version: 0.0.1 +version: 1.12.39 repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter diff --git a/new-release.sh b/new-release.sh index 22b0c38b56..cafe83629a 100755 --- a/new-release.sh +++ b/new-release.sh @@ -46,6 +46,7 @@ sed -i.bak "$replace_str" ./sherpa-onnx/rust/sherpa-onnx/README.md sed -i.bak "$replace_str" ./tauri-examples/non-streaming-speech-recognition-from-file/package.json sed -i.bak "$replace_str" ./tauri-examples/non-streaming-speech-recognition-from-file/src-tauri/Cargo.toml +sed -i.bak "$replace_str" ./tauri-examples/non-streaming-speech-recognition-from-file/src-tauri/tauri.conf.json find android -name build.gradle -type f -exec sed -i.bak "s/sherpa-onnx:v$old_version/sherpa-onnx:v$new_version/g" {} \; find android -name build.gradle.kts -type f -exec sed -i.bak "s/sherpa-onnx:v$old_version/sherpa-onnx:v$new_version/g" {} \; diff --git a/scripts/dart/sherpa-onnx-pubspec.yaml b/scripts/dart/sherpa-onnx-pubspec.yaml index e2485ff12f..18782e5fac 100644 --- a/scripts/dart/sherpa-onnx-pubspec.yaml +++ b/scripts/dart/sherpa-onnx-pubspec.yaml @@ -29,8 +29,17 @@ dependencies: flutter: sdk: flutter - sherpa_onnx_android: - path: ../sherpa_onnx_android + sherpa_onnx_android_arm64: + path: ../sherpa_onnx_android_arm64 + + sherpa_onnx_android_armeabi: + path: ../sherpa_onnx_android_armeabi + + sherpa_onnx_android_x86: + path: ../sherpa_onnx_android_x86 + + sherpa_onnx_android_x86_64: + path: ../sherpa_onnx_android_x86_64 sherpa_onnx_macos: path: ../sherpa_onnx_macos @@ -45,7 +54,7 @@ flutter: plugin: platforms: android: - default_package: sherpa_onnx_android + default_package: sherpa_onnx_android_arm64 macos: default_package: sherpa_onnx_macos