From bafc63fb7379e81b6e77daaf8adc53f2e81fb077 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Fri, 10 Jul 2026 19:46:09 +0800 Subject: [PATCH 01/14] feat(platform): add Windows support --- .github/workflows/ci.yml | 175 +- .github/workflows/nightly.yml | 186 +- .github/workflows/release.yml | 205 +- .gitignore | 2 + AGENTS.md | 7 +- README.md | 6 +- README_ZH.md | 6 +- docs/01-product-overview.md | 2 +- docs/02-features.md | 13 +- docs/03-model-providers.md | 11 +- docs/04-design-system.md | 2 +- docs/05-ux-spec.md | 21 +- docs/06-code-architecture.md | 57 +- docs/07-testing.md | 35 +- docs/08-decisions.md | 13 +- docs/09-release-checklist.md | 54 +- docs/10-versioning.md | 4 +- package.json | 5 +- scripts/aggregate-updater-manifests.mjs | 145 + scripts/aggregate-updater-manifests.test.mjs | 141 + scripts/prepare-macos-assets.sh | 13 +- scripts/prepare-windows-assets.ps1 | 88 + scripts/stage-windows-runtime.ps1 | 362 ++ scripts/verify-windows-bundle.ps1 | 359 ++ src-tauri/Cargo.lock | 67 +- src-tauri/Cargo.toml | 61 +- src-tauri/capabilities/default.json | 1 + src-tauri/src/app/commands.rs | 75 +- src-tauri/src/app/tray.rs | 113 +- src-tauri/src/app/tray_icon.rs | 89 +- src-tauri/src/app/windows.rs | 155 + src-tauri/src/audio/mod.rs | 190 +- src-tauri/src/audio/recorder.rs | 600 ++- src-tauri/src/error.rs | 2 + src-tauri/src/hotkey/mod.rs | 585 ++- src-tauri/src/hotkey/rdev_backend.rs | 209 +- src-tauri/src/hotkey/windows_backend.rs | 2054 ++++++++ src-tauri/src/inject/mod.rs | 112 +- src-tauri/src/inject/paste.rs | 107 +- src-tauri/src/inject/type_direct.rs | 52 +- src-tauri/src/inject/windows.rs | 1902 +++++++ src-tauri/src/local/hardware.rs | 57 +- src-tauri/src/local/llm_llama.rs | 1036 +++- src-tauri/src/local/stt_qwen_asr.rs | 290 +- src-tauri/src/orchestrator/mod.rs | 82 +- src-tauri/src/orchestrator/session.rs | 166 +- src-tauri/src/platform/focus.rs | 114 +- src-tauri/src/platform/mod.rs | 40 + src-tauri/src/platform/permissions.rs | 19 +- src-tauri/src/platform/shell.rs | 49 + src-tauri/src/platform/windows.rs | 732 +++ src-tauri/src/runner.rs | 245 +- src-tauri/src/selection/mod.rs | 38 +- src-tauri/src/selection/windows.rs | 673 +++ src-tauri/src/settings/migrate.rs | 120 +- src-tauri/src/settings/mod.rs | 112 +- src-tauri/src/settings/schema.rs | 98 +- src-tauri/src/types/audio.rs | 10 + src-tauri/src/types/hotkey.rs | 208 + src-tauri/src/types/mod.rs | 4 + src-tauri/tauri.conf.json | 16 + src-tauri/tauri.windows.conf.json | 14 + src-tauri/tests/contract_snapshots.rs | 1 + src-tauri/tests/local_models.rs | 1 + src-tauri/tests/providers_wiremock.rs | 8 +- src-tauri/tests/windows_platform_harness.rs | 339 ++ .../vendor/cpal/src/host/wasapi/device.rs | 29 + src-tauri/vendor/cpal/src/platform/mod.rs | 9 + src-tauri/vendor/cpal/src/traits.rs | 7 + .../vendor/sherpa-rs-sys/.cargo_vcs_info.json | 6 + src-tauri/vendor/sherpa-rs-sys/Cargo.lock | 979 ++++ src-tauri/vendor/sherpa-rs-sys/Cargo.toml | 124 + .../vendor/sherpa-rs-sys/Cargo.toml.orig | 72 + src-tauri/vendor/sherpa-rs-sys/LICENSE | 21 + src-tauri/vendor/sherpa-rs-sys/build.rs | 581 ++ src-tauri/vendor/sherpa-rs-sys/checksum.txt | 85 + src-tauri/vendor/sherpa-rs-sys/dist.json | 62 + .../sherpa-rs-sys/sherpa-onnx/.clang-format | 110 + .../sherpa-rs-sys/sherpa-onnx/.clang-tidy | 73 + .../sherpa-rs-sys/sherpa-onnx/CMakeLists.txt | 474 ++ .../vendor/sherpa-rs-sys/sherpa-onnx/LICENSE | 202 + .../sherpa-onnx/android/.gitignore | 34 + .../sherpa-onnx/android/README.md | 22 + .../sherpa-onnx/android/SherpaOnnx/.gitignore | 15 + .../android/SherpaOnnx/app/.gitignore | 1 + .../android/SherpaOnnx/app/build.gradle | 44 + .../android/SherpaOnnx/app/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 33 + .../SherpaOnnx/app/src/main/assets/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/FeatureConfig.kt | 11 + .../sherpa/onnx/HomophoneReplacerConfig.kt | 7 + .../com/k2fsa/sherpa/onnx/MainActivity.kt | 294 ++ .../com/k2fsa/sherpa/onnx/OnlineRecognizer.kt | 547 ++ .../com/k2fsa/sherpa/onnx/OnlineStream.kt | 36 + .../java/com/k2fsa/sherpa/onnx/WaveReader.kt | 70 + .../app/src/main/jniLibs/.gitignore | 4 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 38 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 11 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnx/build.gradle | 6 + .../android/SherpaOnnx/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../sherpa-onnx/android/SherpaOnnx/gradlew | 185 + .../android/SherpaOnnx/gradlew.bat | 89 + .../android/SherpaOnnx/settings.gradle | 16 + .../android/SherpaOnnx2Pass/.gitignore | 15 + .../android/SherpaOnnx2Pass/app/.gitignore | 1 + .../android/SherpaOnnx2Pass/app/build.gradle | 44 + .../SherpaOnnx2Pass/app/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../SherpaOnnx2Pass/app/src/main/.gitignore | 1 + .../app/src/main/AndroidManifest.xml | 33 + .../app/src/main/assets/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/FeatureConfig.kt | 11 + .../sherpa/onnx/HomophoneReplacerConfig.kt | 7 + .../com/k2fsa/sherpa/onnx/MainActivity.kt | 272 + .../k2fsa/sherpa/onnx/OfflineRecognizer.kt | 695 +++ .../com/k2fsa/sherpa/onnx/OfflineStream.kt | 32 + .../com/k2fsa/sherpa/onnx/OnlineRecognizer.kt | 547 ++ .../com/k2fsa/sherpa/onnx/OnlineStream.kt | 36 + .../app/src/main/jniLibs/.gitkeep | 0 .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 39 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 13 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnx2Pass/build.gradle | 6 + .../android/SherpaOnnx2Pass/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../android/SherpaOnnx2Pass/gradlew | 185 + .../android/SherpaOnnx2Pass/gradlew.bat | 89 + .../android/SherpaOnnx2Pass/settings.gradle | 16 + .../android/SherpaOnnxAar/.gitignore | 15 + .../android/SherpaOnnxAar/README.md | 20 + .../android/SherpaOnnxAar/build.gradle.kts | 6 + .../android/SherpaOnnxAar/gradle.properties | 23 + .../SherpaOnnxAar/gradle/libs.versions.toml | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../sherpa-onnx/android/SherpaOnnxAar/gradlew | 185 + .../android/SherpaOnnxAar/gradlew.bat | 89 + .../android/SherpaOnnxAar/settings.gradle.kts | 23 + .../SherpaOnnxAar/sherpa_onnx/.gitignore | 1 + .../sherpa_onnx/build.gradle.kts | 43 + .../sherpa_onnx/consumer-rules.pro | 0 .../sherpa_onnx/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../sherpa_onnx/src/main/AndroidManifest.xml | 4 + .../com/k2fsa/sherpa/onnx/AudioTagging.kt | 186 + .../com/k2fsa/sherpa/onnx/FeatureConfig.kt | 11 + .../sherpa/onnx/HomophoneReplacerConfig.kt | 7 + .../com/k2fsa/sherpa/onnx/KeywordSpotter.kt | 156 + .../k2fsa/sherpa/onnx/OfflinePunctuation.kt | 60 + .../k2fsa/sherpa/onnx/OfflineRecognizer.kt | 695 +++ .../sherpa/onnx/OfflineSpeakerDiarization.kt | 104 + .../sherpa/onnx/OfflineSpeechDenoiser.kt | 82 + .../com/k2fsa/sherpa/onnx/OfflineStream.kt | 32 + .../com/k2fsa/sherpa/onnx/OnlineRecognizer.kt | 547 ++ .../com/k2fsa/sherpa/onnx/OnlineStream.kt | 36 + .../java/com/k2fsa/sherpa/onnx/Speaker.kt | 157 + .../onnx/SpeakerEmbeddingExtractorConfig.kt | 8 + .../onnx/SpokenLanguageIdentification.kt | 103 + .../main/java/com/k2fsa/sherpa/onnx/Tts.kt | 309 ++ .../main/java/com/k2fsa/sherpa/onnx/Vad.kt | 150 + .../java/com/k2fsa/sherpa/onnx/VersionInfo.kt | 22 + .../java/com/k2fsa/sherpa/onnx/WaveReader.kt | 70 + .../src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../sherpa_onnx/src/main/jniLibs/x86/.gitkeep | 0 .../src/main/jniLibs/x86_64/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnxAudioTagging/.gitignore | 15 + .../SherpaOnnxAudioTagging/app/.gitignore | 1 + .../app/build.gradle.kts | 69 + .../app/proguard-rules.pro | 21 + .../audio/tagging/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 30 + .../app/src/main/assets/.gitignore | 0 .../sherpa/onnx/audio/tagging/AudioTagging.kt | 186 + .../k2fsa/sherpa/onnx/audio/tagging/Home.kt | 253 + .../sherpa/onnx/audio/tagging/MainActivity.kt | 75 + .../onnx/audio/tagging/OfflineStream.kt | 32 + .../k2fsa/sherpa/onnx/audio/tagging/Tagger.kt | 27 + .../onnx/audio/tagging/ui/theme/Color.kt | 11 + .../onnx/audio/tagging/ui/theme/Theme.kt | 70 + .../onnx/audio/tagging/ui/theme/Type.kt | 34 + .../app/src/main/jniLibs/arm64-v8a/.gitignore | 0 .../src/main/jniLibs/armeabi-v7a/.gitignore | 0 .../app/src/main/jniLibs/x86/.gitignore | 0 .../app/src/main/jniLibs/x86_64/.gitignore | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../onnx/audio/tagging/ExampleUnitTest.kt | 17 + .../SherpaOnnxAudioTagging/build.gradle.kts | 5 + .../SherpaOnnxAudioTagging/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../android/SherpaOnnxAudioTagging/gradlew | 185 + .../SherpaOnnxAudioTagging/gradlew.bat | 89 + .../settings.gradle.kts | 17 + .../SherpaOnnxAudioTaggingWearOs/.gitignore | 15 + .../app/.gitignore | 1 + .../app/build.gradle.kts | 66 + .../SherpaOnnxAudioTaggingWearOs/app/lint.xml | 8 + .../app/proguard-rules.pro | 21 + .../app/src/main/AndroidManifest.xml | 40 + .../app/src/main/assets/.gitignore | 0 .../wear/os/presentation/AudioTagging.kt | 186 + .../wear/os/presentation/HomeScreen.kt | 209 + .../wear/os/presentation/MainActivity.kt | 79 + .../wear/os/presentation/OfflineStream.kt | 32 + .../tagging/wear/os/presentation/Tagger.kt | 27 + .../wear/os/presentation/theme/Theme.kt | 17 + .../app/src/main/jniLibs/arm64-v8a/.gitignore | 0 .../src/main/jniLibs/armeabi-v7a/.gitignore | 0 .../app/src/main/jniLibs/x86/.gitignore | 0 .../app/src/main/jniLibs/x86_64/.gitignore | 0 .../app/src/main/res/drawable/splash_icon.xml | 27 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../app/src/main/res/values-round/strings.xml | 3 + .../app/src/main/res/values/strings.xml | 8 + .../app/src/main/res/values/styles.xml | 8 + .../build.gradle.kts | 5 + .../gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../SherpaOnnxAudioTaggingWearOs/gradlew | 185 + .../SherpaOnnxAudioTaggingWearOs/gradlew.bat | 89 + .../settings.gradle.kts | 18 + .../android/SherpaOnnxJavaDemo/.gitignore | 15 + .../android/SherpaOnnxJavaDemo/README.md | 44 + .../android/SherpaOnnxJavaDemo/app/.gitignore | 1 + .../SherpaOnnxJavaDemo/app/build.gradle | 38 + .../SherpaOnnxJavaDemo/app/proguard-rules.pro | 21 + .../app/src/main/AndroidManifest.xml | 32 + .../app/src/main/assets/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/AppViewModel.java | 18 + .../com/k2fsa/sherpa/onnx/Application.java | 39 + .../com/k2fsa/sherpa/onnx/MainActivity.java | 52 + .../SpeechSherpaRecognitionService.java | 261 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../src/main/res/drawable/ic_bg_mic_24.xml | 5 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 18 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../android/SherpaOnnxJavaDemo/build.gradle | 9 + .../SherpaOnnxJavaDemo/gradle.properties | 21 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../android/SherpaOnnxJavaDemo/gradlew | 185 + .../android/SherpaOnnxJavaDemo/gradlew.bat | 89 + .../SherpaOnnxJavaDemo/settings.gradle | 17 + .../android/SherpaOnnxKws/.gitignore | 15 + .../android/SherpaOnnxKws/app/.gitignore | 1 + .../android/SherpaOnnxKws/app/build.gradle | 44 + .../SherpaOnnxKws/app/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 33 + .../app/src/main/assets/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/FeatureConfig.kt | 11 + .../sherpa/onnx/HomophoneReplacerConfig.kt | 7 + .../com/k2fsa/sherpa/onnx/KeywordSpotter.kt | 156 + .../com/k2fsa/sherpa/onnx/MainActivity.kt | 222 + .../com/k2fsa/sherpa/onnx/OnlineRecognizer.kt | 547 ++ .../com/k2fsa/sherpa/onnx/OnlineStream.kt | 36 + .../app/src/main/jniLibs/.gitignore | 4 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 46 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 12 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnxKws/build.gradle | 6 + .../android/SherpaOnnxKws/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../sherpa-onnx/android/SherpaOnnxKws/gradlew | 185 + .../android/SherpaOnnxKws/gradlew.bat | 89 + .../android/SherpaOnnxKws/settings.gradle | 16 + .../SherpaOnnxSimulateStreamingAsr/.gitignore | 15 + .../app/.gitignore | 1 + .../app/build.gradle.kts | 69 + .../app/proguard-rules.pro | 21 + .../streaming/asr/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 30 + .../app/src/main/assets/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/FeatureConfig.kt | 11 + .../sherpa/onnx/HomophoneReplacerConfig.kt | 7 + .../k2fsa/sherpa/onnx/OfflineRecognizer.kt | 695 +++ .../com/k2fsa/sherpa/onnx/OfflineStream.kt | 32 + .../main/java/com/k2fsa/sherpa/onnx/Vad.kt | 150 + .../onnx/simulate/streaming/asr/BarItem.kt | 13 + .../simulate/streaming/asr/MainActivity.kt | 162 + .../simulate/streaming/asr/NavBarItems.kt | 20 + .../onnx/simulate/streaming/asr/NavRoutes.kt | 6 + .../streaming/asr/SimulateStreamingAsr.kt | 150 + .../simulate/streaming/asr/screens/Help.kt | 33 + .../simulate/streaming/asr/screens/Home.kt | 299 ++ .../simulate/streaming/asr/ui/theme/Color.kt | 11 + .../simulate/streaming/asr/ui/theme/Theme.kt | 58 + .../simulate/streaming/asr/ui/theme/Type.kt | 34 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 7 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../simulate/streaming/asr/ExampleUnitTest.kt | 17 + .../build.gradle.kts | 5 + .../gradle.properties | 23 + .../gradle/libs.versions.toml | 34 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../SherpaOnnxSimulateStreamingAsr/gradlew | 185 + .../gradlew.bat | 89 + .../settings.gradle.kts | 23 + .../.gitignore | 15 + .../app/.gitignore | 1 + .../app/build.gradle.kts | 66 + .../app/lint.xml | 8 + .../app/proguard-rules.pro | 21 + .../app/src/main/AndroidManifest.xml | 41 + .../app/src/main/assets/.gitignore | 0 .../asr/wear/os/presentation/HomeScreen.kt | 229 + .../asr/wear/os/presentation/MainActivity.kt | 96 + .../os/presentation/SimulateStreamingAsr.kt | 152 + .../asr/wear/os/presentation/theme/Theme.kt | 17 + .../app/src/main/res/drawable/splash_icon.xml | 27 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../app/src/main/res/values-round/strings.xml | 3 + .../app/src/main/res/values/strings.xml | 8 + .../app/src/main/res/values/styles.xml | 8 + .../build.gradle.kts | 5 + .../gradle.properties | 23 + .../gradle/libs.versions.toml | 27 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../gradlew | 185 + .../gradlew.bat | 89 + .../settings.gradle.kts | 24 + .../SherpaOnnxSpeakerDiarization/.gitignore | 15 + .../app/.gitignore | 1 + .../app/build.gradle.kts | 71 + .../app/proguard-rules.pro | 21 + .../diarization/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 32 + .../app/src/main/assets/.gitkeep | 0 .../onnx/speaker/diarization/BarItem.kt | 13 + .../onnx/speaker/diarization/MainActivity.kt | 132 + .../onnx/speaker/diarization/NavBarItems.kt | 20 + .../onnx/speaker/diarization/NavRoutes.kt | 6 + .../diarization/OfflineSpeakerDiarization.kt | 104 + .../onnx/speaker/diarization/ReadWaveFile.kt | 137 + .../diarization/SpeakerDiarizationObject.kt | 67 + .../SpeakerEmbeddingExtractorConfig.kt | 8 + .../onnx/speaker/diarization/screens/Help.kt | 38 + .../onnx/speaker/diarization/screens/Home.kt | 210 + .../speaker/diarization/ui/theme/Color.kt | 11 + .../speaker/diarization/ui/theme/Theme.kt | 58 + .../onnx/speaker/diarization/ui/theme/Type.kt | 34 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../speaker/diarization/ExampleUnitTest.kt | 17 + .../build.gradle.kts | 5 + .../gradle.properties | 23 + .../gradle/libs.versions.toml | 35 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../SherpaOnnxSpeakerDiarization/gradlew | 185 + .../SherpaOnnxSpeakerDiarization/gradlew.bat | 89 + .../settings.gradle.kts | 23 + .../.gitignore | 15 + .../app/.gitignore | 1 + .../app/build.gradle.kts | 70 + .../app/proguard-rules.pro | 21 + .../identification/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 30 + .../app/src/main/assets/.gitkeep | 0 .../onnx/speaker/identification/BarItem.kt | 13 + .../speaker/identification/MainActivity.kt | 179 + .../speaker/identification/NavBarItems.kt | 33 + .../onnx/speaker/identification/NavRoutes.kt | 8 + .../speaker/identification/OnlineStream.kt | 36 + .../onnx/speaker/identification/Speaker.kt | 157 + .../SpeakerEmbeddingExtractorConfig.kt | 8 + .../speaker/identification/screens/Help.kt | 29 + .../speaker/identification/screens/Home.kt | 228 + .../identification/screens/Register.kt | 254 + .../speaker/identification/screens/View.kt | 113 + .../speaker/identification/ui/theme/Color.kt | 11 + .../speaker/identification/ui/theme/Theme.kt | 70 + .../speaker/identification/ui/theme/Type.kt | 34 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 7 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../speaker/identification/ExampleUnitTest.kt | 17 + .../build.gradle.kts | 5 + .../gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../SherpaOnnxSpeakerIdentification/gradlew | 185 + .../gradlew.bat | 89 + .../settings.gradle.kts | 17 + .../.gitignore | 15 + .../app/.gitignore | 1 + .../app/build.gradle.kts | 69 + .../app/proguard-rules.pro | 21 + .../onnx/slid/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 30 + .../app/src/main/assets/.gitignore | 0 .../java/com/k2fsa/sherpa/onnx/slid/Home.kt | 170 + .../k2fsa/sherpa/onnx/slid/MainActivity.kt | 72 + .../k2fsa/sherpa/onnx/slid/OfflineStream.kt | 32 + .../onnx/slid/SpokenLanguageIdentification.kt | 103 + .../java/com/k2fsa/sherpa/onnx/slid/slid.kt | 42 + .../k2fsa/sherpa/onnx/slid/ui/theme/Color.kt | 11 + .../k2fsa/sherpa/onnx/slid/ui/theme/Theme.kt | 70 + .../k2fsa/sherpa/onnx/slid/ui/theme/Type.kt | 34 + .../app/src/main/jniLibs/arm64-v8a/.gitignore | 0 .../src/main/jniLibs/armeabi-v7a/.gitignore | 0 .../app/src/main/jniLibs/x86/.gitignore | 0 .../app/src/main/jniLibs/x86_64/.gitignore | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../k2fsa/sherpa/onnx/slid/ExampleUnitTest.kt | 17 + .../build.gradle.kts | 5 + .../gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../gradlew | 185 + .../gradlew.bat | 89 + .../settings.gradle.kts | 17 + .../android/SherpaOnnxTts/.gitignore | 15 + .../android/SherpaOnnxTts/app/.gitignore | 1 + .../android/SherpaOnnxTts/app/build.gradle | 44 + .../SherpaOnnxTts/app/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../SherpaOnnxTts/app/src/main/.gitignore | 2 + .../app/src/main/AndroidManifest.xml | 32 + .../app/src/main/assets/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/MainActivity.kt | 382 ++ .../main/java/com/k2fsa/sherpa/onnx/Tts.kt | 309 ++ .../app/src/main/jniLibs/arm64-v8a/.gitignore | 0 .../src/main/jniLibs/armeabi-v7a/.gitignore | 0 .../app/src/main/jniLibs/x86/.gitignore | 0 .../app/src/main/jniLibs/x86_64/.gitignore | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 99 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 11 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnxTts/build.gradle | 6 + .../android/SherpaOnnxTts/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../sherpa-onnx/android/SherpaOnnxTts/gradlew | 185 + .../android/SherpaOnnxTts/gradlew.bat | 89 + .../android/SherpaOnnxTts/settings.gradle | 16 + .../android/SherpaOnnxTtsEngine/.gitignore | 15 + .../SherpaOnnxTtsEngine/app/.gitignore | 1 + .../SherpaOnnxTtsEngine/app/build.gradle.kts | 71 + .../app/proguard-rules.pro | 21 + .../tts/engine/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 79 + .../app/src/main/assets/.gitkeep | 0 .../sherpa/onnx/tts/engine/CheckVoiceData.kt | 21 + .../sherpa/onnx/tts/engine/GetSampleText.kt | 207 + .../onnx/tts/engine/InstallVoiceData.kt | 12 + .../sherpa/onnx/tts/engine/MainActivity.kt | 350 ++ .../onnx/tts/engine/PreferencesHelper.kt | 32 + .../com/k2fsa/sherpa/onnx/tts/engine/Tts.kt | 309 ++ .../k2fsa/sherpa/onnx/tts/engine/TtsEngine.kt | 279 + .../sherpa/onnx/tts/engine/TtsService.kt | 169 + .../sherpa/onnx/tts/engine/TtsViewModel.kt | 73 + .../sherpa/onnx/tts/engine/ui/theme/Color.kt | 11 + .../sherpa/onnx/tts/engine/ui/theme/Theme.kt | 70 + .../sherpa/onnx/tts/engine/ui/theme/Type.kt | 34 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 5 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 2252 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 4008 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 1518 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 2546 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 3070 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 5620 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 4580 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 8872 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 6254 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 12436 bytes .../app/src/main/res/values/colors.xml | 10 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/themes.xml | 5 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../app/src/main/res/xml/tts_engine.xml | 5 + .../sherpa/onnx/tts/engine/ExampleUnitTest.kt | 17 + .../SherpaOnnxTtsEngine/build.gradle.kts | 5 + .../SherpaOnnxTtsEngine/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../android/SherpaOnnxTtsEngine/gradlew | 185 + .../android/SherpaOnnxTtsEngine/gradlew.bat | 89 + .../SherpaOnnxTtsEngine/settings.gradle.kts | 17 + .../android/SherpaOnnxVad/.gitignore | 15 + .../android/SherpaOnnxVad/app/.gitignore | 1 + .../android/SherpaOnnxVad/app/build.gradle | 44 + .../SherpaOnnxVad/app/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 32 + .../app/src/main/assets/.gitignore | 1 + .../com/k2fsa/sherpa/onnx/MainActivity.kt | 177 + .../main/java/com/k2fsa/sherpa/onnx/Vad.kt | 150 + .../app/src/main/jniLibs/.gitignore | 1 + .../app/src/main/jniLibs/arm64-v8a/.gitignore | 0 .../src/main/jniLibs/armeabi-v7a/.gitignore | 0 .../app/src/main/jniLibs/x86/.gitignore | 0 .../app/src/main/jniLibs/x86_64/.gitignore | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../src/main/res/drawable/black_circle.xml | 13 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/drawable/red_circle.xml | 13 + .../app/src/main/res/layout/activity_main.xml | 43 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 7 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnxVad/build.gradle | 6 + .../android/SherpaOnnxVad/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../sherpa-onnx/android/SherpaOnnxVad/gradlew | 185 + .../android/SherpaOnnxVad/gradlew.bat | 89 + .../android/SherpaOnnxVad/settings.gradle | 16 + .../android/SherpaOnnxVadAsr/.gitignore | 15 + .../android/SherpaOnnxVadAsr/app/.gitignore | 1 + .../android/SherpaOnnxVadAsr/app/build.gradle | 44 + .../SherpaOnnxVadAsr/app/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 32 + .../app/src/main/assets/.gitignore | 1 + .../com/k2fsa/sherpa/onnx/FeatureConfig.kt | 11 + .../sherpa/onnx/HomophoneReplacerConfig.kt | 7 + .../com/k2fsa/sherpa/onnx/MainActivity.kt | 242 + .../k2fsa/sherpa/onnx/OfflineRecognizer.kt | 695 +++ .../com/k2fsa/sherpa/onnx/OfflineStream.kt | 32 + .../main/java/com/k2fsa/sherpa/onnx/Vad.kt | 150 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 39 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 13 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnxVadAsr/build.gradle | 6 + .../SherpaOnnxVadAsr/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../android/SherpaOnnxVadAsr/gradlew | 185 + .../android/SherpaOnnxVadAsr/gradlew.bat | 89 + .../android/SherpaOnnxVadAsr/settings.gradle | 16 + .../android/SherpaOnnxWebSocket/.gitignore | 15 + .../SherpaOnnxWebSocket/app/.gitignore | 1 + .../SherpaOnnxWebSocket/app/build.gradle | 47 + .../app/proguard-rules.pro | 21 + .../sherpa/onnx/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 33 + .../app/src/main/assets/.gitkeep | 0 .../com/k2fsa/sherpa/onnx/MainActivity.kt | 268 + .../k2fsa/sherpa/onnx/MyWebsocketClient.kt | 39 + .../com/k2fsa/sherpa/onnx/SpeechContent.kt | 3 + .../java/com/k2fsa/sherpa/onnx/WaveReader.kt | 29 + .../app/src/main/jniLibs/.gitignore | 4 + .../app/src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../app/src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../app/src/main/jniLibs/x86/.gitkeep | 0 .../app/src/main/jniLibs/x86_64/.gitkeep | 0 .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 + .../app/src/main/res/layout/activity_main.xml | 66 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 20 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../com/k2fsa/sherpa/onnx/ExampleUnitTest.kt | 17 + .../android/SherpaOnnxWebSocket/build.gradle | 6 + .../SherpaOnnxWebSocket/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../android/SherpaOnnxWebSocket/gradlew | 185 + .../android/SherpaOnnxWebSocket/gradlew.bat | 89 + .../SherpaOnnxWebSocket/settings.gradle | 16 + .../sherpa-onnx/c-api-examples/CMakeLists.txt | 121 + .../sherpa-onnx/c-api-examples/Makefile | 24 + .../sherpa-onnx/c-api-examples/README.md | 18 + .../c-api-examples/add-punctuation-c-api.c | 67 + .../asr-microphone-example/CMakeLists.txt | 9 + .../asr-microphone-example/CPPLINT.cfg | 1 + .../asr-microphone-example/README.md | 12 + .../asr-microphone-example/alsa.cc | 180 + .../asr-microphone-example/alsa.h | 46 + .../asr-microphone-example/c-api-alsa.cc | 259 + .../c-api-examples/audio-tagging-c-api.c | 79 + .../c-api-examples/decode-file-c-api.c | 244 + .../c-api-examples/dolphin-ctc-c-api.c | 74 + .../c-api-examples/fire-red-asr-c-api.c | 84 + ...s-spotter-buffered-tokens-keywords-c-api.c | 196 + .../c-api-examples/kitten-tts-en-c-api.c | 84 + .../c-api-examples/kokoro-tts-en-c-api.c | 84 + .../c-api-examples/kokoro-tts-zh-en-c-api.c | 82 + .../sherpa-onnx/c-api-examples/kws-c-api.c | 152 + .../c-api-examples/matcha-tts-en-c-api.c | 87 + .../c-api-examples/matcha-tts-zh-c-api.c | 87 + .../c-api-examples/moonshine-c-api.c | 83 + .../c-api-examples/nemo-canary-c-api.c | 115 + .../offline-speaker-diarization-c-api.c | 131 + .../c-api-examples/offline-tts-c-api.c | 249 + .../c-api-examples/paraformer-c-api.c | 83 + .../sherpa-onnx/c-api-examples/run.sh | 48 + .../c-api-examples/sense-voice-c-api.c | 85 + .../sense-voice-with-hr-c-api.c | 99 + .../speaker-identification-c-api.c | 257 + .../speech-enhancement-gtcrn-c-api.c | 55 + .../spoken-language-identification-c-api.c | 68 + .../streaming-ctc-buffered-tokens-c-api.c | 180 + .../streaming-hlg-decode-file-c-api.c | 130 + ...reaming-paraformer-buffered-tokens-c-api.c | 181 + .../streaming-paraformer-c-api.c | 139 + ...zipformer-buffered-tokens-hotwords-c-api.c | 203 + .../streaming-zipformer-c-api.c | 145 + .../streaming-zipformer-with-hr-c-api.c | 158 + .../c-api-examples/telespeech-c-api.c | 78 + .../c-api-examples/vad-moonshine-c-api.c | 183 + .../c-api-examples/vad-sense-voice-c-api.c | 186 + .../c-api-examples/vad-whisper-c-api.c | 182 + .../c-api-examples/whisper-c-api.c | 89 + .../c-api-examples/zipformer-c-api.c | 89 + .../sherpa-onnx/cmake/.gitignore | 1 + .../sherpa-onnx/cmake/__init__.py | 0 .../sherpa-onnx/cmake/asio.cmake | 45 + .../sherpa-onnx/cmake/cargs.cmake | 50 + .../sherpa-onnx/cmake/cmake_extension.py | 241 + .../sherpa-onnx/cmake/cppjieba.cmake | 45 + .../sherpa-onnx/cmake/eigen.cmake | 48 + .../cmake/espeak-ng-for-piper.cmake | 134 + .../sherpa-onnx/cmake/googletest.cmake | 76 + .../sherpa-onnx/cmake/hclust-cpp.cmake | 47 + .../sherpa-onnx/cmake/kaldi-decoder.cmake | 89 + .../cmake/kaldi-native-fbank.cmake | 74 + .../sherpa-onnx/cmake/kaldifst.cmake | 72 + .../cmake/onnxruntime-linux-aarch64-gpu.cmake | 146 + .../onnxruntime-linux-aarch64-static.cmake | 64 + .../cmake/onnxruntime-linux-aarch64.cmake | 69 + .../cmake/onnxruntime-linux-arm-static.cmake | 64 + .../cmake/onnxruntime-linux-arm.cmake | 73 + .../onnxruntime-linux-riscv64-static.cmake | 64 + .../cmake/onnxruntime-linux-riscv64.cmake | 73 + .../cmake/onnxruntime-linux-x86_64-gpu.cmake | 102 + .../onnxruntime-linux-x86_64-static.cmake | 64 + .../cmake/onnxruntime-linux-x86_64.cmake | 73 + .../cmake/onnxruntime-osx-arm64-static.cmake | 61 + .../cmake/onnxruntime-osx-arm64.cmake | 70 + .../onnxruntime-osx-universal-static.cmake | 62 + .../cmake/onnxruntime-osx-universal.cmake | 71 + .../cmake/onnxruntime-osx-x86_64-static.cmake | 61 + .../cmake/onnxruntime-osx-x86_64.cmake | 70 + .../cmake/onnxruntime-wasm-simd.cmake | 60 + .../cmake/onnxruntime-win-arm64-static.cmake | 72 + .../cmake/onnxruntime-win-arm64.cmake | 91 + .../cmake/onnxruntime-win-x64-directml.cmake | 167 + .../cmake/onnxruntime-win-x64-gpu.cmake | 141 + .../onnxruntime-win-x64-static-debug.cmake | 76 + .../cmake/onnxruntime-win-x64-static.cmake | 72 + .../cmake/onnxruntime-win-x64.cmake | 96 + .../onnxruntime-win-x86-static-debug.cmake | 76 + .../cmake/onnxruntime-win-x86-static.cmake | 71 + .../cmake/onnxruntime-win-x86.cmake | 91 + .../sherpa-onnx/cmake/onnxruntime.cmake | 223 + .../sherpa-onnx/cmake/openfst.cmake | 109 + .../sherpa-onnx/cmake/piper-phonemize.cmake | 78 + .../sherpa-onnx/cmake/portaudio.cmake | 71 + .../sherpa-onnx/cmake/pybind11.cmake | 44 + .../cmake/sherpa-onnx-shared.pc.in | 25 + .../cmake/sherpa-onnx-static-no-tts.pc.in | 25 + .../cmake/sherpa-onnx-static.pc.in | 25 + .../sherpa-onnx/cmake/show-info.cmake | 80 + .../cmake/simple-sentencepiece.cmake | 73 + .../sherpa-onnx/cmake/websocketpp.cmake | 46 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 + .../sherpa/onnx/streaming_asr/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 + .../kotlin/com/example/tts/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + .../sherpa_onnx/lib/src/audio_tagging.dart | 219 + .../sherpa_onnx/lib/src/feature_config.dart | 25 + .../lib/src/homophone_replacer_config.dart | 29 + .../sherpa_onnx/lib/src/keyword_spotter.dart | 228 + .../lib/src/offline_punctuation.dart | 129 + .../lib/src/offline_recognizer.dart | 806 +++ .../lib/src/offline_speaker_diarization.dart | 339 ++ .../lib/src/offline_speech_denoiser.dart | 178 + .../sherpa_onnx/lib/src/offline_stream.dart | 37 + .../lib/src/online_punctuation.dart | 140 + .../lib/src/online_recognizer.dart | 493 ++ .../sherpa_onnx/lib/src/online_stream.dart | 41 + .../lib/src/sherpa_onnx_bindings.dart | 2150 ++++++++ .../lib/src/speaker_identification.dart | 297 ++ .../flutter/sherpa_onnx/lib/src/tts.dart | 468 ++ .../flutter/sherpa_onnx/lib/src/utils.dart | 24 + .../flutter/sherpa_onnx/lib/src/vad.dart | 342 ++ .../flutter/sherpa_onnx/lib/src/version.dart | 31 + .../sherpa_onnx/lib/src/wave_reader.dart | 38 + .../sherpa_onnx/lib/src/wave_writer.dart | 31 + .../android/src/main/AndroidManifest.xml | 3 + .../android/src/main/jniLibs/README.md | 23 + .../src/main/jniLibs/arm64-v8a/.gitkeep | 0 .../src/main/jniLibs/armeabi-v7a/.gitkeep | 0 .../android/src/main/jniLibs/x86/.gitkeep | 0 .../android/src/main/jniLibs/x86_64/.gitkeep | 0 .../main/ets/entryability/EntryAbility.ets | 43 + .../entrybackupability/EntryBackupAbility.ets | 12 + .../entry/src/main/ets/pages/Index.ets | 17 + .../SherpaOnnxHar/entry/src/main/module.json5 | 52 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../main/resources/zh_CN/element/string.json | 16 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../entry/src/ohosTest/module.json5 | 13 + .../entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 + .../sherpa_onnx/src/main/cpp/CMakeLists.txt | 76 + .../sherpa_onnx/src/main/cpp/audio-tagging.cc | 217 + .../cpp/include/sherpa-onnx/c-api/README.md | 8 + .../cpp/include/sherpa-onnx/c-api/c-api.h | 1852 +++++++ .../src/main/cpp/keyword-spotting.cc | 310 ++ .../sherpa_onnx/src/main/cpp/libs/.gitignore | 1 + .../sherpa_onnx/src/main/cpp/libs/README.md | 17 + .../src/main/cpp/libs/arm64-v8a/.gitkeep | 0 .../src/main/cpp/libs/armeabi-v7a/.gitkeep | 0 .../src/main/cpp/libs/x86_64/.gitkeep | 0 .../sherpa_onnx/src/main/cpp/macros.h | 63 + .../sherpa_onnx/src/main/cpp/my-patch.diff | 14 + .../src/main/cpp/non-streaming-asr.cc | 630 +++ .../cpp/non-streaming-speaker-diarization.cc | 497 ++ .../main/cpp/non-streaming-speech-denoiser.cc | 278 + .../src/main/cpp/non-streaming-tts.cc | 671 +++ .../sherpa_onnx/src/main/cpp/punctuation.cc | 130 + .../main/cpp/sherpa-onnx-node-addon-api.cc | 65 + .../src/main/cpp/speaker-identification.cc | 825 +++ .../cpp/spoken-language-identification.cc | 181 + .../sherpa_onnx/src/main/cpp/streaming-asr.cc | 723 +++ .../main/cpp/types/libsherpa_onnx/Index.d.ts | 78 + .../cpp/types/libsherpa_onnx/oh-package.json5 | 6 + .../sherpa_onnx/src/main/cpp/utils.cc | 78 + .../sherpa_onnx/src/main/cpp/vad.cc | 724 +++ .../sherpa_onnx/src/main/cpp/version.cc | 17 + .../sherpa_onnx/src/main/cpp/wave-reader.cc | 172 + .../sherpa_onnx/src/main/cpp/wave-writer.cc | 86 + .../main/ets/components/KeywordSpotting.ets | 78 + .../src/main/ets/components/MainPage.ets | 21 + .../main/ets/components/NonStreamingAsr.ets | 193 + .../NonStreamingSpeakerDiarization.ets | 84 + .../main/ets/components/NonStreamingTts.ets | 112 + .../ets/components/SpeakerIdentification.ets | 135 + .../src/main/ets/components/StreamingAsr.ets | 146 + .../src/main/ets/components/Vad.ets | 153 + .../sherpa_onnx/src/main/module.json5 | 11 + .../main/resources/base/element/string.json | 8 + .../main/resources/en_US/element/string.json | 8 + .../main/resources/zh_CN/element/string.json | 8 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../src/ohosTest/ets/test/List.test.ets | 5 + .../sherpa_onnx/src/ohosTest/module.json5 | 13 + .../sherpa_onnx/src/test/List.test.ets | 5 + .../sherpa_onnx/src/test/LocalUnit.test.ets | 33 + .../main/ets/entryability/EntryAbility.ets | 43 + .../entrybackupability/EntryBackupAbility.ets | 12 + .../entry/src/main/ets/pages/Index.ets | 194 + .../ets/workers/SpeakerDiarizationWorker.ets | 189 + .../entry/src/main/module.json5 | 52 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../main/resources/base/media/icon_doc.svg | 2 + .../main/resources/base/media/icon_mic.svg | 2 + .../src/main/resources/base/media/info.svg | 1 + .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../entry/src/main/resources/rawfile/.gitkeep | 0 .../main/resources/zh_CN/element/string.json | 16 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../entry/src/ohosTest/module.json5 | 13 + .../entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 + .../main/ets/entryability/EntryAbility.ets | 43 + .../entrybackupability/EntryBackupAbility.ets | 12 + .../entry/src/main/ets/pages/Index.ets | 490 ++ .../entry/src/main/ets/pages/Permission.ets | 26 + .../workers/SpeakerIdentificationWorker.ets | 143 + .../entry/src/main/module.json5 | 64 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 20 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../main/resources/base/media/icon_add.svg | 10 + .../main/resources/base/media/icon_home.svg | 1 + .../main/resources/base/media/icon_info.svg | 1 + .../main/resources/base/media/icon_view.svg | 13 + .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 20 + .../entry/src/main/resources/rawfile/.gitkeep | 0 .../main/resources/zh_CN/element/string.json | 20 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../entry/src/ohosTest/module.json5 | 13 + .../entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 + .../main/ets/entryability/EntryAbility.ets | 43 + .../entrybackupability/EntryBackupAbility.ets | 12 + .../entry/src/main/ets/pages/Index.ets | 428 ++ .../entry/src/main/ets/pages/Permission.ets | 26 + .../main/ets/workers/StreamingAsrWorker.ets | 294 ++ .../entry/src/main/module.json5 | 64 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 20 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../src/main/resources/base/media/home.svg | 1 + .../main/resources/base/media/icon_doc.svg | 2 + .../main/resources/base/media/icon_mic.svg | 2 + .../src/main/resources/base/media/info.svg | 1 + .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 20 + .../entry/src/main/resources/rawfile/.gitkeep | 0 .../main/resources/zh_CN/element/string.json | 20 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../entry/src/ohosTest/module.json5 | 13 + .../entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 + .../main/ets/entryability/EntryAbility.ets | 43 + .../entrybackupability/EntryBackupAbility.ets | 12 + .../entry/src/main/ets/pages/Index.ets | 412 ++ .../ets/workers/NonStreamingTtsWorker.ets | 391 ++ .../SherpaOnnxTts/entry/src/main/module.json5 | 52 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../src/main/resources/base/media/home.svg | 1 + .../src/main/resources/base/media/info.svg | 1 + .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../entry/src/main/resources/rawfile/.gitkeep | 0 .../main/resources/zh_CN/element/string.json | 16 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../entry/src/ohosTest/module.json5 | 13 + .../entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 + .../main/ets/entryability/EntryAbility.ets | 43 + .../entrybackupability/EntryBackupAbility.ets | 12 + .../entry/src/main/ets/pages/Index.ets | 318 ++ .../main/ets/pages/NonStreamingAsrModels.ets | 250 + .../entry/src/main/ets/pages/Permission.ets | 26 + .../workers/NonStreamingAsrWithVadWorker.ets | 268 + .../entry/src/main/module.json5 | 64 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 20 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../main/resources/base/media/icon_doc.svg | 2 + .../main/resources/base/media/icon_mic.svg | 2 + .../src/main/resources/base/media/info.svg | 1 + .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 20 + .../entry/src/main/resources/rawfile/.gitkeep | 0 .../main/resources/zh_CN/element/string.json | 20 + .../src/ohosTest/ets/test/Ability.test.ets | 35 + .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../entry/src/ohosTest/module.json5 | 13 + .../entry/src/test/List.test.ets | 5 + .../entry/src/test/LocalUnit.test.ets | 33 + .../src/websocketsrv/AsrWebsocketClient.java | 131 + .../src/websocketsrv/AsrWebsocketServer.java | 247 + .../src/websocketsrv/ConnectionData.java | 65 + .../websocketsrv/DecoderThreadHandler.java | 173 + .../src/websocketsrv/StreamThreadHandler.java | 67 + .../sherpa-onnx/sherpa-onnx/CMakeLists.txt | 12 + .../sherpa-onnx/c-api/CMakeLists.txt | 29 + .../sherpa-onnx/sherpa-onnx/c-api/c-api.cc | 2549 +++++++++ .../sherpa-onnx/sherpa-onnx/c-api/c-api.h | 1852 +++++++ .../sherpa-onnx/sherpa-onnx/c-api/cxx-api.cc | 824 +++ .../sherpa-onnx/sherpa-onnx/c-api/cxx-api.h | 678 +++ .../sherpa-onnx/sherpa-onnx/csrc/.gitignore | 2 + .../sherpa-onnx/csrc/CMakeLists.txt | 696 +++ .../sherpa-onnx/sherpa-onnx/csrc/CPPLINT.cfg | 1 + .../sherpa-onnx/sherpa-onnx/csrc/README.md | 29 + .../sherpa-onnx/sherpa-onnx/csrc/alsa-play.cc | 150 + .../sherpa-onnx/sherpa-onnx/csrc/alsa-play.h | 37 + .../sherpa-onnx/sherpa-onnx/csrc/alsa.cc | 180 + .../sherpa-onnx/sherpa-onnx/csrc/alsa.h | 46 + .../sherpa-onnx/csrc/audio-tagging-ced-impl.h | 111 + .../sherpa-onnx/csrc/audio-tagging-impl.cc | 48 + .../sherpa-onnx/csrc/audio-tagging-impl.h | 39 + .../csrc/audio-tagging-label-file.cc | 87 + .../csrc/audio-tagging-label-file.h | 39 + .../csrc/audio-tagging-model-config.cc | 60 + .../csrc/audio-tagging-model-config.h | 42 + .../csrc/audio-tagging-zipformer-impl.h | 118 + .../sherpa-onnx/csrc/audio-tagging.cc | 87 + .../sherpa-onnx/csrc/audio-tagging.h | 74 + .../sherpa-onnx/csrc/base64-decode.cc | 67 + .../sherpa-onnx/csrc/base64-decode.h | 19 + .../sherpa-onnx/sherpa-onnx/csrc/bbpe.cc | 61 + .../sherpa-onnx/sherpa-onnx/csrc/bbpe.h | 16 + .../sherpa-onnx/sherpa-onnx/csrc/cat-test.cc | 254 + .../sherpa-onnx/sherpa-onnx/csrc/cat.cc | 106 + .../sherpa-onnx/sherpa-onnx/csrc/cat.h | 28 + .../sherpa-onnx/csrc/circular-buffer-test.cc | 150 + .../sherpa-onnx/csrc/circular-buffer.cc | 181 + .../sherpa-onnx/csrc/circular-buffer.h | 61 + .../sherpa-onnx/csrc/context-graph-test.cc | 102 + .../sherpa-onnx/csrc/context-graph.cc | 167 + .../sherpa-onnx/csrc/context-graph.h | 92 + .../sherpa-onnx/csrc/cppjieba-test.cc | 144 + .../sherpa-onnx/sherpa-onnx/csrc/display.h | 88 + .../sherpa-onnx/sherpa-onnx/csrc/endpoint.cc | 96 + .../sherpa-onnx/sherpa-onnx/csrc/endpoint.h | 76 + .../csrc/fast-clustering-config.cc | 45 + .../sherpa-onnx/csrc/fast-clustering-config.h | 39 + .../sherpa-onnx/csrc/fast-clustering-test.cc | 69 + .../sherpa-onnx/csrc/fast-clustering.cc | 83 + .../sherpa-onnx/csrc/fast-clustering.h | 43 + .../sherpa-onnx/sherpa-onnx/csrc/features.cc | 364 ++ .../sherpa-onnx/sherpa-onnx/csrc/features.h | 141 + .../sherpa-onnx/csrc/file-utils.cc | 84 + .../sherpa-onnx/sherpa-onnx/csrc/file-utils.h | 49 + .../sherpa-onnx/sherpa-onnx/csrc/fst-utils.cc | 53 + .../sherpa-onnx/sherpa-onnx/csrc/fst-utils.h | 18 + .../sherpa-onnx/csrc/hifigan-vocoder.cc | 118 + .../sherpa-onnx/csrc/hifigan-vocoder.h | 40 + .../sherpa-onnx/csrc/homophone-replacer.cc | 312 ++ .../sherpa-onnx/csrc/homophone-replacer.h | 58 + .../sherpa-onnx/csrc/hypothesis.cc | 81 + .../sherpa-onnx/sherpa-onnx/csrc/hypothesis.h | 170 + .../sherpa-onnx/csrc/jieba-lexicon.cc | 349 ++ .../sherpa-onnx/csrc/jieba-lexicon.h | 40 + .../sherpa-onnx/sherpa-onnx/csrc/jieba.cc | 48 + .../sherpa-onnx/sherpa-onnx/csrc/jieba.h | 18 + .../sherpa-onnx/csrc/keyword-spotter-impl.cc | 51 + .../sherpa-onnx/csrc/keyword-spotter-impl.h | 44 + .../csrc/keyword-spotter-transducer-impl.h | 372 ++ .../sherpa-onnx/csrc/keyword-spotter.cc | 187 + .../sherpa-onnx/csrc/keyword-spotter.h | 150 + .../csrc/kokoro-multi-lang-lexicon.cc | 560 ++ .../csrc/kokoro-multi-lang-lexicon.h | 45 + .../sherpa-onnx/sherpa-onnx/csrc/lexicon.cc | 417 ++ .../sherpa-onnx/sherpa-onnx/csrc/lexicon.h | 66 + .../sherpa-onnx/sherpa-onnx/csrc/lodr-fst.cc | 191 + .../sherpa-onnx/sherpa-onnx/csrc/lodr-fst.h | 75 + .../sherpa-onnx/sherpa-onnx/csrc/log.cc | 122 + .../sherpa-onnx/sherpa-onnx/csrc/log.h | 378 ++ .../sherpa-onnx/sherpa-onnx/csrc/macros.h | 188 + .../sherpa-onnx/sherpa-onnx/csrc/math.h | 135 + .../sherpa-onnx/csrc/melo-tts-lexicon.cc | 401 ++ .../sherpa-onnx/csrc/melo-tts-lexicon.h | 48 + .../sherpa-onnx/csrc/microphone.cc | 103 + .../sherpa-onnx/sherpa-onnx/csrc/microphone.h | 32 + .../csrc/offline-canary-model-config.cc | 86 + .../csrc/offline-canary-model-config.h | 47 + .../csrc/offline-canary-model-meta-data.h | 23 + .../sherpa-onnx/csrc/offline-canary-model.cc | 264 + .../sherpa-onnx/csrc/offline-canary-model.h | 81 + .../sherpa-onnx/csrc/offline-ced-model.cc | 113 + .../sherpa-onnx/csrc/offline-ced-model.h | 56 + .../offline-ct-transformer-model-meta-data.h | 29 + .../csrc/offline-ct-transformer-model.cc | 165 + .../csrc/offline-ct-transformer-model.h | 59 + .../sherpa-onnx/csrc/offline-ctc-decoder.h | 50 + .../csrc/offline-ctc-fst-decoder-config.cc | 43 + .../csrc/offline-ctc-fst-decoder-config.h | 32 + .../csrc/offline-ctc-fst-decoder.cc | 119 + .../csrc/offline-ctc-fst-decoder.h | 33 + .../csrc/offline-ctc-greedy-search-decoder.cc | 54 + .../csrc/offline-ctc-greedy-search-decoder.h | 28 + .../sherpa-onnx/csrc/offline-ctc-model.cc | 250 + .../sherpa-onnx/csrc/offline-ctc-model.h | 75 + .../csrc/offline-dolphin-model-config.cc | 35 + .../csrc/offline-dolphin-model-config.h | 27 + .../csrc/offline-dolphin-model-meta-data.h | 21 + .../sherpa-onnx/csrc/offline-dolphin-model.cc | 165 + .../sherpa-onnx/csrc/offline-dolphin-model.h | 67 + .../csrc/offline-fire-red-asr-decoder.h | 40 + ...line-fire-red-asr-greedy-search-decoder.cc | 93 + ...fline-fire-red-asr-greedy-search-decoder.h | 30 + .../csrc/offline-fire-red-asr-model-config.cc | 56 + .../csrc/offline-fire-red-asr-model-config.h | 31 + .../offline-fire-red-asr-model-meta-data.h | 28 + .../csrc/offline-fire-red-asr-model.cc | 257 + .../csrc/offline-fire-red-asr-model.h | 92 + .../sherpa-onnx/csrc/offline-lm-config.cc | 54 + .../sherpa-onnx/csrc/offline-lm-config.h | 48 + .../sherpa-onnx/csrc/offline-lm.cc | 103 + .../sherpa-onnx/sherpa-onnx/csrc/offline-lm.h | 67 + .../sherpa-onnx/csrc/offline-model-config.cc | 163 + .../sherpa-onnx/csrc/offline-model-config.h | 105 + .../csrc/offline-moonshine-decoder.h | 34 + ...offline-moonshine-greedy-search-decoder.cc | 93 + .../offline-moonshine-greedy-search-decoder.h | 29 + .../csrc/offline-moonshine-model-config.cc | 88 + .../csrc/offline-moonshine-model-config.h | 37 + .../csrc/offline-moonshine-model.cc | 300 ++ .../csrc/offline-moonshine-model.h | 87 + .../offline-nemo-enc-dec-ctc-model-config.cc | 35 + .../offline-nemo-enc-dec-ctc-model-config.h | 28 + .../csrc/offline-nemo-enc-dec-ctc-model.cc | 181 + .../csrc/offline-nemo-enc-dec-ctc-model.h | 83 + .../csrc/offline-paraformer-decoder.h | 42 + ...ffline-paraformer-greedy-search-decoder.cc | 74 + ...offline-paraformer-greedy-search-decoder.h | 29 + .../csrc/offline-paraformer-model-config.cc | 34 + .../csrc/offline-paraformer-model-config.h | 28 + .../csrc/offline-paraformer-model.cc | 166 + .../csrc/offline-paraformer-model.h | 74 + .../offline-punctuation-ct-transformer-impl.h | 197 + .../csrc/offline-punctuation-impl.cc | 39 + .../csrc/offline-punctuation-impl.h | 36 + .../csrc/offline-punctuation-model-config.cc | 53 + .../csrc/offline-punctuation-model-config.h | 38 + .../sherpa-onnx/csrc/offline-punctuation.cc | 53 + .../sherpa-onnx/csrc/offline-punctuation.h | 57 + .../csrc/offline-recognizer-canary-impl.h | 261 + .../csrc/offline-recognizer-ctc-impl.h | 300 ++ .../offline-recognizer-fire-red-asr-impl.h | 159 + .../csrc/offline-recognizer-impl.cc | 566 ++ .../csrc/offline-recognizer-impl.h | 65 + .../csrc/offline-recognizer-moonshine-impl.h | 144 + .../csrc/offline-recognizer-paraformer-impl.h | 268 + .../offline-recognizer-sense-voice-impl.h | 366 ++ .../csrc/offline-recognizer-transducer-impl.h | 309 ++ .../offline-recognizer-transducer-nemo-impl.h | 202 + .../csrc/offline-recognizer-whisper-impl.h | 184 + .../sherpa-onnx/csrc/offline-recognizer.cc | 193 + .../sherpa-onnx/csrc/offline-recognizer.h | 134 + .../sherpa-onnx/csrc/offline-rnn-lm.cc | 108 + .../sherpa-onnx/csrc/offline-rnn-lm.h | 44 + .../csrc/offline-sense-voice-model-config.cc | 55 + .../csrc/offline-sense-voice-model-config.h | 38 + .../offline-sense-voice-model-meta-data.h | 50 + .../csrc/offline-sense-voice-model.cc | 179 + .../csrc/offline-sense-voice-model.h | 55 + .../csrc/offline-source-separation-impl.cc | 122 + .../csrc/offline-source-separation-impl.h | 39 + .../offline-source-separation-model-config.cc | 52 + .../offline-source-separation-model-config.h | 45 + .../offline-source-separation-spleeter-impl.h | 234 + ...source-separation-spleeter-model-config.cc | 54 + ...-source-separation-spleeter-model-config.h | 35 + ...urce-separation-spleeter-model-meta-data.h | 28 + ...ffline-source-separation-spleeter-model.cc | 212 + ...offline-source-separation-spleeter-model.h | 37 + .../csrc/offline-source-separation-uvr-impl.h | 382 ++ ...line-source-separation-uvr-model-config.cc | 39 + ...fline-source-separation-uvr-model-config.h | 32 + ...ne-source-separation-uvr-model-meta-data.h | 38 + .../offline-source-separation-uvr-model.cc | 172 + .../offline-source-separation-uvr-model.h | 36 + .../csrc/offline-source-separation.cc | 74 + .../csrc/offline-source-separation.h | 78 + .../csrc/offline-speaker-diarization-impl.cc | 60 + .../csrc/offline-speaker-diarization-impl.h | 39 + ...ffline-speaker-diarization-pyannote-impl.h | 748 +++ .../offline-speaker-diarization-result.cc | 113 + .../csrc/offline-speaker-diarization-result.h | 67 + .../csrc/offline-speaker-diarization.cc | 119 + .../csrc/offline-speaker-diarization.h | 84 + ...fline-speaker-segmentation-model-config.cc | 57 + ...ffline-speaker-segmentation-model-config.h | 40 + ...aker-segmentation-pyannote-model-config.cc | 38 + ...eaker-segmentation-pyannote-model-config.h | 30 + ...er-segmentation-pyannote-model-meta-data.h | 29 + ...ine-speaker-segmentation-pyannote-model.cc | 152 + ...line-speaker-segmentation-pyannote-model.h | 44 + .../csrc/offline-speech-denoiser-gtcrn-impl.h | 149 + ...line-speech-denoiser-gtcrn-model-config.cc | 40 + ...fline-speech-denoiser-gtcrn-model-config.h | 25 + ...ne-speech-denoiser-gtcrn-model-meta-data.h | 31 + .../offline-speech-denoiser-gtcrn-model.cc | 215 + .../offline-speech-denoiser-gtcrn-model.h | 42 + .../csrc/offline-speech-denoiser-impl.cc | 53 + .../csrc/offline-speech-denoiser-impl.h | 33 + .../offline-speech-denoiser-model-config.cc | 40 + .../offline-speech-denoiser-model-config.h | 39 + .../csrc/offline-speech-denoiser.cc | 64 + .../csrc/offline-speech-denoiser.h | 61 + .../sherpa-onnx/csrc/offline-stream.cc | 439 ++ .../sherpa-onnx/csrc/offline-stream.h | 106 + .../csrc/offline-tdnn-ctc-model.cc | 150 + .../sherpa-onnx/csrc/offline-tdnn-ctc-model.h | 59 + .../csrc/offline-tdnn-model-config.cc | 34 + .../csrc/offline-tdnn-model-config.h | 28 + .../csrc/offline-telespeech-ctc-model.cc | 166 + .../csrc/offline-telespeech-ctc-model.h | 74 + .../csrc/offline-transducer-decoder.h | 43 + ...ffline-transducer-greedy-search-decoder.cc | 87 + ...offline-transducer-greedy-search-decoder.h | 34 + ...e-transducer-greedy-search-nemo-decoder.cc | 202 + ...ne-transducer-greedy-search-nemo-decoder.h | 34 + .../csrc/offline-transducer-model-config.cc | 52 + .../csrc/offline-transducer-model-config.h | 34 + .../csrc/offline-transducer-model.cc | 316 ++ .../csrc/offline-transducer-model.h | 104 + ...transducer-modified-beam-search-decoder.cc | 194 + ...-transducer-modified-beam-search-decoder.h | 47 + .../csrc/offline-transducer-nemo-model.cc | 372 ++ .../csrc/offline-transducer-nemo-model.h | 104 + .../csrc/offline-tts-character-frontend.cc | 208 + .../csrc/offline-tts-character-frontend.h | 48 + .../sherpa-onnx/csrc/offline-tts-frontend.cc | 34 + .../sherpa-onnx/csrc/offline-tts-frontend.h | 69 + .../sherpa-onnx/csrc/offline-tts-impl.cc | 82 + .../sherpa-onnx/csrc/offline-tts-impl.h | 43 + .../csrc/offline-tts-kitten-impl.h | 397 ++ .../csrc/offline-tts-kitten-model-config.cc | 115 + .../csrc/offline-tts-kitten-model-config.h | 43 + .../csrc/offline-tts-kitten-model-meta-data.h | 28 + .../csrc/offline-tts-kitten-model.cc | 261 + .../csrc/offline-tts-kitten-model.h | 40 + .../csrc/offline-tts-kokoro-impl.h | 444 ++ .../csrc/offline-tts-kokoro-model-config.cc | 143 + .../csrc/offline-tts-kokoro-model-config.h | 63 + .../csrc/offline-tts-kokoro-model-meta-data.h | 29 + .../csrc/offline-tts-kokoro-model.cc | 257 + .../csrc/offline-tts-kokoro-model.h | 39 + .../csrc/offline-tts-matcha-impl.h | 404 ++ .../csrc/offline-tts-matcha-model-config.cc | 143 + .../csrc/offline-tts-matcha-model-config.h | 56 + .../csrc/offline-tts-matcha-model-meta-data.h | 30 + .../csrc/offline-tts-matcha-model.cc | 218 + .../csrc/offline-tts-matcha-model.h | 39 + .../csrc/offline-tts-model-config.cc | 69 + .../csrc/offline-tts-model-config.h | 52 + .../sherpa-onnx/csrc/offline-tts-vits-impl.h | 505 ++ .../csrc/offline-tts-vits-model-config.cc | 115 + .../csrc/offline-tts-vits-model-config.h | 59 + .../csrc/offline-tts-vits-model-meta-data.h | 49 + .../csrc/offline-tts-vits-model.cc | 384 ++ .../sherpa-onnx/csrc/offline-tts-vits-model.h | 51 + .../sherpa-onnx/csrc/offline-tts.cc | 213 + .../sherpa-onnx/csrc/offline-tts.h | 111 + .../csrc/offline-websocket-server-impl.cc | 286 + .../csrc/offline-websocket-server-impl.h | 205 + .../csrc/offline-websocket-server.cc | 121 + .../csrc/offline-wenet-ctc-model-config.cc | 37 + .../csrc/offline-wenet-ctc-model-config.h | 28 + .../csrc/offline-wenet-ctc-model.cc | 140 + .../csrc/offline-wenet-ctc-model.h | 73 + .../csrc/offline-whisper-decoder.h | 44 + .../offline-whisper-greedy-search-decoder.cc | 158 + .../offline-whisper-greedy-search-decoder.h | 34 + .../csrc/offline-whisper-model-config.cc | 91 + .../csrc/offline-whisper-model-config.h | 60 + .../sherpa-onnx/csrc/offline-whisper-model.cc | 486 ++ .../sherpa-onnx/csrc/offline-whisper-model.h | 115 + ...ne-zipformer-audio-tagging-model-config.cc | 40 + ...ine-zipformer-audio-tagging-model-config.h | 29 + .../offline-zipformer-audio-tagging-model.cc | 119 + .../offline-zipformer-audio-tagging-model.h | 64 + .../offline-zipformer-ctc-model-config.cc | 35 + .../csrc/offline-zipformer-ctc-model-config.h | 32 + .../csrc/offline-zipformer-ctc-model.cc | 143 + .../csrc/offline-zipformer-ctc-model.h | 62 + .../csrc/online-cnn-bilstm-model-meta-data.h | 25 + .../csrc/online-cnn-bilstm-model.cc | 139 + .../csrc/online-cnn-bilstm-model.h | 62 + .../csrc/online-conformer-transducer-model.cc | 298 ++ .../csrc/online-conformer-transducer-model.h | 100 + .../sherpa-onnx/csrc/online-ctc-decoder.h | 65 + .../csrc/online-ctc-fst-decoder-config.cc | 40 + .../csrc/online-ctc-fst-decoder-config.h | 32 + .../csrc/online-ctc-fst-decoder.cc | 118 + .../sherpa-onnx/csrc/online-ctc-fst-decoder.h | 39 + .../csrc/online-ctc-greedy-search-decoder.cc | 59 + .../csrc/online-ctc-greedy-search-decoder.h | 29 + .../sherpa-onnx/csrc/online-ctc-model.cc | 68 + .../sherpa-onnx/csrc/online-ctc-model.h | 86 + .../online-ebranchformer-transducer-model.cc | 425 ++ .../online-ebranchformer-transducer-model.h | 112 + .../sherpa-onnx/csrc/online-lm-config.cc | 57 + .../sherpa-onnx/csrc/online-lm-config.h | 50 + .../sherpa-onnx/sherpa-onnx/csrc/online-lm.cc | 20 + .../sherpa-onnx/sherpa-onnx/csrc/online-lm.h | 63 + .../csrc/online-lstm-transducer-model.cc | 282 + .../csrc/online-lstm-transducer-model.h | 95 + .../sherpa-onnx/csrc/online-model-config.cc | 180 + .../sherpa-onnx/csrc/online-model-config.h | 86 + .../csrc/online-nemo-ctc-model-config.cc | 36 + .../csrc/online-nemo-ctc-model-config.h | 28 + .../sherpa-onnx/csrc/online-nemo-ctc-model.cc | 343 ++ .../sherpa-onnx/csrc/online-nemo-ctc-model.h | 75 + .../csrc/online-paraformer-decoder.h | 23 + .../csrc/online-paraformer-model-config.cc | 43 + .../csrc/online-paraformer-model-config.h | 31 + .../csrc/online-paraformer-model.cc | 266 + .../csrc/online-paraformer-model.h | 70 + .../csrc/online-punctuation-cnn-bilstm-impl.h | 278 + .../csrc/online-punctuation-impl.cc | 43 + .../csrc/online-punctuation-impl.h | 37 + .../csrc/online-punctuation-model-config.cc | 65 + .../csrc/online-punctuation-model-config.h | 42 + .../sherpa-onnx/csrc/online-punctuation.cc | 52 + .../sherpa-onnx/csrc/online-punctuation.h | 57 + .../csrc/online-recognizer-ctc-impl.h | 349 ++ .../csrc/online-recognizer-impl.cc | 295 ++ .../sherpa-onnx/csrc/online-recognizer-impl.h | 74 + .../csrc/online-recognizer-paraformer-impl.h | 476 ++ .../csrc/online-recognizer-transducer-impl.h | 527 ++ .../online-recognizer-transducer-nemo-impl.h | 252 + .../sherpa-onnx/csrc/online-recognizer.cc | 272 + .../sherpa-onnx/csrc/online-recognizer.h | 229 + .../sherpa-onnx/csrc/online-rnn-lm.cc | 268 + .../sherpa-onnx/csrc/online-rnn-lm.h | 68 + .../sherpa-onnx/csrc/online-stream.cc | 285 + .../sherpa-onnx/csrc/online-stream.h | 121 + .../csrc/online-transducer-decoder.cc | 74 + .../csrc/online-transducer-decoder.h | 111 + ...online-transducer-greedy-search-decoder.cc | 174 + .../online-transducer-greedy-search-decoder.h | 42 + ...e-transducer-greedy-search-nemo-decoder.cc | 129 + ...ne-transducer-greedy-search-nemo-decoder.h | 34 + .../csrc/online-transducer-model-config.cc | 51 + .../csrc/online-transducer-model-config.h | 32 + .../csrc/online-transducer-model.cc | 230 + .../csrc/online-transducer-model.h | 147 + ...transducer-modified-beam-search-decoder.cc | 270 + ...-transducer-modified-beam-search-decoder.h | 64 + .../csrc/online-transducer-nemo-model.cc | 549 ++ .../csrc/online-transducer-nemo-model.h | 124 + .../csrc/online-websocket-client.cc | 274 + .../csrc/online-websocket-server-impl.cc | 366 ++ .../csrc/online-websocket-server-impl.h | 181 + .../csrc/online-websocket-server.cc | 109 + .../csrc/online-wenet-ctc-model-config.cc | 59 + .../csrc/online-wenet-ctc-model-config.h | 38 + .../csrc/online-wenet-ctc-model.cc | 278 + .../sherpa-onnx/csrc/online-wenet-ctc-model.h | 75 + .../csrc/online-zipformer-transducer-model.cc | 518 ++ .../csrc/online-zipformer-transducer-model.h | 99 + .../online-zipformer2-ctc-model-config.cc | 42 + .../csrc/online-zipformer2-ctc-model-config.h | 29 + .../csrc/online-zipformer2-ctc-model.cc | 494 ++ .../csrc/online-zipformer2-ctc-model.h | 76 + .../online-zipformer2-transducer-model.cc | 511 ++ .../csrc/online-zipformer2-transducer-model.h | 116 + .../sherpa-onnx/csrc/onnx-utils.cc | 396 ++ .../sherpa-onnx/sherpa-onnx/csrc/onnx-utils.h | 122 + .../sherpa-onnx/csrc/packed-sequence-test.cc | 52 + .../sherpa-onnx/csrc/packed-sequence.cc | 106 + .../sherpa-onnx/csrc/packed-sequence.h | 52 + .../sherpa-onnx/csrc/pad-sequence-test.cc | 43 + .../sherpa-onnx/csrc/pad-sequence.cc | 52 + .../sherpa-onnx/csrc/pad-sequence.h | 31 + .../sherpa-onnx/csrc/parse-options.cc | 697 +++ .../sherpa-onnx/csrc/parse-options.h | 259 + .../csrc/piper-phonemize-lexicon.cc | 566 ++ .../csrc/piper-phonemize-lexicon.h | 78 + .../sherpa-onnx/csrc/piper-phonemize-test.cc | 78 + .../sherpa-onnx/csrc/provider-config.cc | 142 + .../sherpa-onnx/csrc/provider-config.h | 93 + .../sherpa-onnx/sherpa-onnx/csrc/provider.cc | 37 + .../sherpa-onnx/sherpa-onnx/csrc/provider.h | 36 + .../sherpa-onnx/csrc/regex-lang-test.cc | 86 + .../sherpa-onnx/sherpa-onnx/csrc/resample.cc | 308 ++ .../sherpa-onnx/sherpa-onnx/csrc/resample.h | 144 + .../sherpa-onnx/csrc/rknn/macros.h | 19 + .../rknn/online-recognizer-ctc-rknn-impl.h | 205 + .../online-recognizer-transducer-rknn-impl.h | 270 + .../csrc/rknn/online-stream-rknn.cc | 60 + .../csrc/rknn/online-stream-rknn.h | 38 + .../rknn/online-transducer-decoder-rknn.h | 63 + ...e-transducer-greedy-search-decoder-rknn.cc | 94 + ...ne-transducer-greedy-search-decoder-rknn.h | 39 + ...ducer-modified-beam-search-decoder-rknn.cc | 146 + ...sducer-modified-beam-search-decoder-rknn.h | 42 + .../rknn/online-zipformer-ctc-model-rknn.cc | 300 ++ .../rknn/online-zipformer-ctc-model-rknn.h | 46 + .../online-zipformer-transducer-model-rknn.cc | 512 ++ .../online-zipformer-transducer-model-rknn.h | 60 + .../csrc/rknn/silero-vad-model-rknn.cc | 412 ++ .../csrc/rknn/silero-vad-model-rknn.h | 56 + .../sherpa-onnx/csrc/rknn/utils.cc | 201 + .../sherpa-onnx/sherpa-onnx/csrc/rknn/utils.h | 37 + .../sherpa-onnx/sherpa-onnx/csrc/session.cc | 281 + .../sherpa-onnx/sherpa-onnx/csrc/session.h | 39 + .../sherpa-onnx-alsa-offline-audio-tagging.cc | 190 + ...nnx-alsa-offline-speaker-identification.cc | 286 + .../csrc/sherpa-onnx-alsa-offline.cc | 202 + .../sherpa-onnx/csrc/sherpa-onnx-alsa.cc | 152 + .../csrc/sherpa-onnx-keyword-spotter-alsa.cc | 122 + .../sherpa-onnx-keyword-spotter-microphone.cc | 130 + .../csrc/sherpa-onnx-keyword-spotter.cc | 121 + ...a-onnx-microphone-offline-audio-tagging.cc | 192 + ...crophone-offline-speaker-identification.cc | 290 + .../csrc/sherpa-onnx-microphone-offline.cc | 199 + .../csrc/sherpa-onnx-microphone.cc | 180 + .../csrc/sherpa-onnx-offline-audio-tagging.cc | 97 + .../csrc/sherpa-onnx-offline-denoiser.cc | 95 + ...pa-onnx-offline-language-identification.cc | 107 + .../csrc/sherpa-onnx-offline-parallel.cc | 305 ++ .../csrc/sherpa-onnx-offline-punctuation.cc | 68 + .../sherpa-onnx-offline-source-separation.cc | 149 + ...sherpa-onnx-offline-speaker-diarization.cc | 133 + .../csrc/sherpa-onnx-offline-tts-play-alsa.cc | 226 + .../csrc/sherpa-onnx-offline-tts-play.cc | 330 ++ .../csrc/sherpa-onnx-offline-tts.cc | 122 + .../sherpa-onnx/csrc/sherpa-onnx-offline.cc | 179 + .../csrc/sherpa-onnx-online-punctuation.cc | 73 + .../csrc/sherpa-onnx-vad-alsa-offline-asr.cc | 157 + .../sherpa-onnx/csrc/sherpa-onnx-vad-alsa.cc | 128 + .../sherpa-onnx-vad-microphone-offline-asr.cc | 199 + .../csrc/sherpa-onnx-vad-microphone.cc | 166 + .../csrc/sherpa-onnx-vad-with-offline-asr.cc | 240 + .../csrc/sherpa-onnx-vad-with-online-asr.cc | 208 + .../sherpa-onnx/csrc/sherpa-onnx-vad.cc | 110 + .../sherpa-onnx/csrc/sherpa-onnx-version.cc | 17 + .../sherpa-onnx/csrc/sherpa-onnx.cc | 175 + .../csrc/silero-vad-model-config.cc | 116 + .../csrc/silero-vad-model-config.h | 45 + .../sherpa-onnx/csrc/silero-vad-model.cc | 513 ++ .../sherpa-onnx/csrc/silero-vad-model.h | 57 + .../sherpa-onnx/csrc/slice-test.cc | 52 + .../sherpa-onnx/sherpa-onnx/csrc/slice.cc | 77 + .../sherpa-onnx/sherpa-onnx/csrc/slice.h | 48 + ...speaker-embedding-extractor-general-impl.h | 117 + .../csrc/speaker-embedding-extractor-impl.cc | 154 + .../csrc/speaker-embedding-extractor-impl.h | 38 + ...aker-embedding-extractor-model-meta-data.h | 28 + .../csrc/speaker-embedding-extractor-model.cc | 159 + .../csrc/speaker-embedding-extractor-model.h | 41 + .../speaker-embedding-extractor-nemo-impl.h | 145 + ...embedding-extractor-nemo-model-meta-data.h | 28 + .../speaker-embedding-extractor-nemo-model.cc | 172 + .../speaker-embedding-extractor-nemo-model.h | 44 + .../csrc/speaker-embedding-extractor.cc | 98 + .../csrc/speaker-embedding-extractor.h | 71 + .../csrc/speaker-embedding-manager-test.cc | 147 + .../csrc/speaker-embedding-manager.cc | 286 + .../csrc/speaker-embedding-manager.h | 120 + .../spoken-language-identification-impl.cc | 123 + .../spoken-language-identification-impl.h | 38 + ...ken-language-identification-whisper-impl.h | 133 + .../csrc/spoken-language-identification.cc | 130 + .../csrc/spoken-language-identification.h | 99 + .../sherpa-onnx/csrc/stack-test.cc | 254 + .../sherpa-onnx/sherpa-onnx/csrc/stack.cc | 94 + .../sherpa-onnx/sherpa-onnx/csrc/stack.h | 29 + .../sherpa-onnx/csrc/symbol-table.cc | 272 + .../sherpa-onnx/csrc/symbol-table.h | 76 + .../sherpa-onnx/sherpa-onnx/csrc/tee-stream.h | 61 + .../sherpa-onnx/csrc/ten-vad-model-config.cc | 111 + .../sherpa-onnx/csrc/ten-vad-model-config.h | 45 + .../sherpa-onnx/csrc/ten-vad-model.cc | 485 ++ .../sherpa-onnx/csrc/ten-vad-model.h | 55 + .../sherpa-onnx/csrc/text-utils-test.cc | 131 + .../sherpa-onnx/csrc/text-utils.cc | 727 +++ .../sherpa-onnx/sherpa-onnx/csrc/text-utils.h | 154 + .../sherpa-onnx/csrc/text2token-test.cc | 170 + .../csrc/transducer-keyword-decoder.cc | 185 + .../csrc/transducer-keyword-decoder.h | 62 + .../sherpa-onnx/csrc/transpose-test.cc | 62 + .../sherpa-onnx/sherpa-onnx/csrc/transpose.cc | 65 + .../sherpa-onnx/sherpa-onnx/csrc/transpose.h | 32 + .../sherpa-onnx/csrc/unbind-test.cc | 223 + .../sherpa-onnx/sherpa-onnx/csrc/unbind.cc | 71 + .../sherpa-onnx/sherpa-onnx/csrc/unbind.h | 28 + .../sherpa-onnx/csrc/utfcpp-test.cc | 21 + .../sherpa-onnx/sherpa-onnx/csrc/utils.cc | 204 + .../sherpa-onnx/sherpa-onnx/csrc/utils.h | 62 + .../sherpa-onnx/csrc/vad-model-config.cc | 79 + .../sherpa-onnx/csrc/vad-model-config.h | 46 + .../sherpa-onnx/sherpa-onnx/csrc/vad-model.cc | 96 + .../sherpa-onnx/sherpa-onnx/csrc/vad-model.h | 49 + .../sherpa-onnx/sherpa-onnx/csrc/version.cc | 24 + .../sherpa-onnx/sherpa-onnx/csrc/version.h | 29 + .../sherpa-onnx/sherpa-onnx/csrc/vocoder.cc | 122 + .../sherpa-onnx/sherpa-onnx/csrc/vocoder.h | 35 + .../sherpa-onnx/csrc/vocos-vocoder.cc | 194 + .../sherpa-onnx/csrc/vocos-vocoder.h | 39 + .../csrc/voice-activity-detector.cc | 279 + .../csrc/voice-activity-detector.h | 63 + .../sherpa-onnx/csrc/wave-reader.cc | 368 ++ .../sherpa-onnx/csrc/wave-reader.h | 38 + .../sherpa-onnx/csrc/wave-writer.cc | 126 + .../sherpa-onnx/csrc/wave-writer.h | 38 + .../com/k2fsa/sherpa/onnx/AudioEvent.java | 32 + .../com/k2fsa/sherpa/onnx/AudioTagging.java | 59 + .../k2fsa/sherpa/onnx/AudioTaggingConfig.java | 44 + .../sherpa/onnx/AudioTaggingModelConfig.java | 60 + .../com/k2fsa/sherpa/onnx/DenoisedAudio.java | 29 + .../com/k2fsa/sherpa/onnx/EndpointConfig.java | 71 + .../com/k2fsa/sherpa/onnx/EndpointRule.java | 58 + .../sherpa/onnx/FastClusteringConfig.java | 44 + .../com/k2fsa/sherpa/onnx/FeatureConfig.java | 56 + .../com/k2fsa/sherpa/onnx/GeneratedAudio.java | 29 + .../sherpa/onnx/HomophoneReplacerConfig.java | 56 + .../com/k2fsa/sherpa/onnx/KeywordSpotter.java | 69 + .../sherpa/onnx/KeywordSpotterConfig.java | 77 + .../sherpa/onnx/KeywordSpotterResult.java | 27 + .../com/k2fsa/sherpa/onnx/LibraryLoader.java | 23 + .../com/k2fsa/sherpa/onnx/LibraryUtils.java | 107 + .../sherpa/onnx/OfflineCanaryModelConfig.java | 80 + .../onnx/OfflineDolphinModelConfig.java | 32 + .../onnx/OfflineFireRedAsrModelConfig.java | 42 + .../k2fsa/sherpa/onnx/OfflineModelConfig.java | 233 + .../onnx/OfflineMoonshineModelConfig.java | 70 + .../onnx/OfflineNemoEncDecCtcModelConfig.java | 32 + .../onnx/OfflineParaformerModelConfig.java | 33 + .../k2fsa/sherpa/onnx/OfflinePunctuation.java | 36 + .../sherpa/onnx/OfflinePunctuationConfig.java | 33 + .../onnx/OfflinePunctuationModelConfig.java | 56 + .../k2fsa/sherpa/onnx/OfflineRecognizer.java | 80 + .../sherpa/onnx/OfflineRecognizerConfig.java | 104 + .../sherpa/onnx/OfflineRecognizerResult.java | 45 + .../onnx/OfflineSenseVoiceModelConfig.java | 56 + .../onnx/OfflineSpeakerDiarization.java | 58 + .../OfflineSpeakerDiarizationCallback.java | 8 + .../onnx/OfflineSpeakerDiarizationConfig.java | 79 + .../OfflineSpeakerDiarizationSegment.java | 27 + ...OfflineSpeakerSegmentationModelConfig.java | 52 + ...peakerSegmentationPyannoteModelConfig.java | 32 + .../sherpa/onnx/OfflineSpeechDenoiser.java | 40 + .../onnx/OfflineSpeechDenoiserConfig.java | 27 + ...OfflineSpeechDenoiserGtcrnModelConfig.java | 31 + .../OfflineSpeechDenoiserModelConfig.java | 51 + .../com/k2fsa/sherpa/onnx/OfflineStream.java | 47 + .../onnx/OfflineTransducerModelConfig.java | 56 + .../com/k2fsa/sherpa/onnx/OfflineTts.java | 72 + .../k2fsa/sherpa/onnx/OfflineTtsCallback.java | 8 + .../k2fsa/sherpa/onnx/OfflineTtsConfig.java | 80 + .../onnx/OfflineTtsKittenModelConfig.java | 80 + .../onnx/OfflineTtsKokoroModelConfig.java | 104 + .../onnx/OfflineTtsMatchaModelConfig.java | 116 + .../sherpa/onnx/OfflineTtsModelConfig.java | 92 + .../onnx/OfflineTtsVitsModelConfig.java | 116 + .../onnx/OfflineWhisperModelConfig.java | 81 + ...flineZipformerAudioTaggingModelConfig.java | 32 + .../onnx/OfflineZipformerCtcModelConfig.java | 32 + .../onnx/OnlineCtcFstDecoderConfig.java | 44 + .../com/k2fsa/sherpa/onnx/OnlineLMConfig.java | 46 + .../k2fsa/sherpa/onnx/OnlineModelConfig.java | 153 + .../sherpa/onnx/OnlineNeMoCtcModelConfig.java | 32 + .../onnx/OnlineParaformerModelConfig.java | 45 + .../k2fsa/sherpa/onnx/OnlinePunctuation.java | 36 + .../sherpa/onnx/OnlinePunctuationConfig.java | 33 + .../onnx/OnlinePunctuationModelConfig.java | 68 + .../k2fsa/sherpa/onnx/OnlineRecognizer.java | 90 + .../sherpa/onnx/OnlineRecognizerConfig.java | 138 + .../sherpa/onnx/OnlineRecognizerResult.java | 27 + .../com/k2fsa/sherpa/onnx/OnlineStream.java | 58 + .../onnx/OnlineTransducerModelConfig.java | 57 + .../onnx/OnlineZipformer2CtcModelConfig.java | 32 + .../sherpa/onnx/SileroVadModelConfig.java | 93 + .../onnx/SpeakerEmbeddingExtractor.java | 54 + .../onnx/SpeakerEmbeddingExtractorConfig.java | 53 + .../sherpa/onnx/SpeakerEmbeddingManager.java | 77 + .../com/k2fsa/sherpa/onnx/SpeechSegment.java | 20 + .../onnx/SpokenLanguageIdentification.java | 56 + .../SpokenLanguageIdentificationConfig.java | 56 + ...enLanguageIdentificationWhisperConfig.java | 56 + .../k2fsa/sherpa/onnx/TenVadModelConfig.java | 93 + .../main/java/com/k2fsa/sherpa/onnx/Vad.java | 87 + .../com/k2fsa/sherpa/onnx/VadModelConfig.java | 92 + .../com/k2fsa/sherpa/onnx/VersionInfo.java | 23 + .../com/k2fsa/sherpa/onnx/WaveReader.java | 27 + .../com/k2fsa/sherpa/onnx/WaveWriter.java | 15 + .../java-api/src/main/resources/.gitignore | 2 + .../java-api/src/main/resources/readme.md | 34 + .../sherpa-onnx/jni/CMakeLists.txt | 51 + .../sherpa-onnx/jni/audio-tagging.cc | 156 + .../sherpa-onnx/sherpa-onnx/jni/common.h | 105 + .../sherpa-onnx/sherpa-onnx/jni/jni.cc | 48 + .../sherpa-onnx/jni/keyword-spotter.cc | 203 + .../sherpa-onnx/jni/offline-punctuation.cc | 110 + .../sherpa-onnx/jni/offline-recognizer.cc | 547 ++ .../jni/offline-speaker-diarization.cc | 237 + .../jni/offline-speech-denoiser.cc | 158 + .../sherpa-onnx/jni/offline-stream.cc | 25 + .../sherpa-onnx/jni/offline-tts.cc | 403 ++ .../sherpa-onnx/jni/online-punctuation.cc | 117 + .../sherpa-onnx/jni/online-recognizer.cc | 468 ++ .../sherpa-onnx/jni/online-stream.cc | 32 + .../jni/speaker-embedding-extractor.cc | 138 + .../jni/speaker-embedding-manager.cc | 207 + .../jni/spoken-language-identification.cc | 139 + .../sherpa-onnx/sherpa-onnx/jni/version.cc | 49 + .../jni/voice-activity-detector.cc | 252 + .../sherpa-onnx/jni/wave-reader.cc | 84 + .../sherpa-onnx/jni/wave-writer.cc | 23 + .../aarch64-linux-gnu.toolchain.cmake | 18 + .../arm-linux-gnueabihf.toolchain.cmake | 17 + .../toolchains/ios.toolchain.cmake | 927 ++++ .../riscv64-linux-gnu.toolchain.cmake | 17 + .../sherpa-rs-sys/src/download_binaries.rs | 258 + src-tauri/vendor/sherpa-rs-sys/src/lib.rs | 5 + src-tauri/vendor/sherpa-rs-sys/wrapper.h | 1 + .../vendor/tauri-specta/.cargo_vcs_info.json | 6 + src-tauri/vendor/tauri-specta/Cargo.lock | 4680 +++++++++++++++++ src-tauri/vendor/tauri-specta/Cargo.toml | 129 + src-tauri/vendor/tauri-specta/Cargo.toml.orig | 73 + src-tauri/vendor/tauri-specta/LICENSE | 21 + src-tauri/vendor/tauri-specta/README.md | 48 + src-tauri/vendor/tauri-specta/src/builder.rs | 358 ++ src-tauri/vendor/tauri-specta/src/event.rs | 196 + src-tauri/vendor/tauri-specta/src/lang.rs | 8 + .../vendor/tauri-specta/src/lang/globals.js | 65 + .../vendor/tauri-specta/src/lang/globals.ts | 57 + src-tauri/vendor/tauri-specta/src/lang/js.rs | 125 + .../vendor/tauri-specta/src/lang/js_ts.rs | 243 + src-tauri/vendor/tauri-specta/src/lang/ts.rs | 110 + src-tauri/vendor/tauri-specta/src/lib.rs | 347 ++ src-tauri/vendor/tauri-specta/src/macros.rs | 97 + .../THIRD-PARTY-NOTICES.windows.txt | 39 + src/components/HotkeyRecorder.test.ts | 76 + src/components/HotkeyRecorder.vue | 44 +- src/composables/usePlatform.test.ts | 59 + src/composables/usePlatform.ts | 95 + src/i18n/en.json | 40 +- src/i18n/zh-CN.json | 40 +- src/shared/hotkeys.test.ts | 91 + src/shared/hotkeys.ts | 114 + src/windows/assistant/index.html | 1 + src/windows/home/Home.test.ts | 6 +- src/windows/home/Home.vue | 10 +- src/windows/home/index.html | 1 + src/windows/hud/Hud.test.ts | 96 + src/windows/hud/Hud.vue | 16 +- src/windows/hud/index.html | 1 + src/windows/hud/ipc.ts | 1 + src/windows/onboarding/Onboarding.vue | 18 +- src/windows/onboarding/index.html | 1 + src/windows/settings/index.html | 1 + .../settings/pages/DiagnosticsPage.test.ts | 64 + .../settings/pages/DiagnosticsPage.vue | 22 + .../settings/pages/DictationPage.test.ts | 85 + src/windows/settings/pages/DictationPage.vue | 45 +- .../settings/pages/HotkeysPage.test.ts | 92 + src/windows/settings/pages/HotkeysPage.vue | 64 +- src/windows/settings/pages/ModelManager.vue | 6 +- tools/updater-signature-verifier/Cargo.lock | 23 + tools/updater-signature-verifier/Cargo.toml | 10 + tools/updater-signature-verifier/src/main.rs | 44 + 1852 files changed, 162377 insertions(+), 722 deletions(-) create mode 100644 scripts/aggregate-updater-manifests.mjs create mode 100644 scripts/aggregate-updater-manifests.test.mjs create mode 100644 scripts/prepare-windows-assets.ps1 create mode 100644 scripts/stage-windows-runtime.ps1 create mode 100644 scripts/verify-windows-bundle.ps1 create mode 100644 src-tauri/src/hotkey/windows_backend.rs create mode 100644 src-tauri/src/inject/windows.rs create mode 100644 src-tauri/src/platform/shell.rs create mode 100644 src-tauri/src/platform/windows.rs create mode 100644 src-tauri/src/selection/windows.rs create mode 100644 src-tauri/src/types/audio.rs create mode 100644 src-tauri/src/types/hotkey.rs create mode 100644 src-tauri/tauri.windows.conf.json create mode 100644 src-tauri/tests/windows_platform_harness.rs create mode 100644 src-tauri/vendor/sherpa-rs-sys/.cargo_vcs_info.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/Cargo.lock create mode 100644 src-tauri/vendor/sherpa-rs-sys/Cargo.toml create mode 100644 src-tauri/vendor/sherpa-rs-sys/Cargo.toml.orig create mode 100644 src-tauri/vendor/sherpa-rs-sys/LICENSE create mode 100644 src-tauri/vendor/sherpa-rs-sys/build.rs create mode 100644 src-tauri/vendor/sherpa-rs-sys/checksum.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/dist.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/.clang-format create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/.clang-tidy create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/LICENSE create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/java/com/k2fsa/sherpa/onnx/FeatureConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/java/com/k2fsa/sherpa/onnx/HomophoneReplacerConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/java/com/k2fsa/sherpa/onnx/OnlineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/java/com/k2fsa/sherpa/onnx/OnlineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/java/com/k2fsa/sherpa/onnx/WaveReader.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/jniLibs/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/app/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/FeatureConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/HomophoneReplacerConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/OfflineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/OfflineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/OnlineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/java/com/k2fsa/sherpa/onnx/OnlineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/jniLibs/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/app/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnx2Pass/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/gradle/libs.versions.toml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/consumer-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/AudioTagging.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/FeatureConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/HomophoneReplacerConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/KeywordSpotter.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/OfflinePunctuation.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/OfflineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeakerDiarization.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeechDenoiser.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/OfflineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/OnlineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/OnlineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/Speaker.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/SpeakerEmbeddingExtractorConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/SpokenLanguageIdentification.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/Tts.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/Vad.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/VersionInfo.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/java/com/k2fsa/sherpa/onnx/WaveReader.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAar/sherpa_onnx/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/androidTest/java/com/k2fsa/sherpa/onnx/audio/tagging/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/assets/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/AudioTagging.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/Home.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/OfflineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/Tagger.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/ui/theme/Color.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/ui/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/ui/theme/Type.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/jniLibs/arm64-v8a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/jniLibs/armeabi-v7a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/jniLibs/x86/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/jniLibs/x86_64/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/app/src/test/java/com/k2fsa/sherpa/onnx/audio/tagging/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTagging/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/lint.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/assets/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/wear/os/presentation/AudioTagging.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/wear/os/presentation/HomeScreen.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/wear/os/presentation/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/wear/os/presentation/OfflineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/wear/os/presentation/Tagger.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/audio/tagging/wear/os/presentation/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/jniLibs/arm64-v8a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/jniLibs/armeabi-v7a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/jniLibs/x86/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/jniLibs/x86_64/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/drawable/splash_icon.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/values-round/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/app/src/main/res/values/styles.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxAudioTaggingWearOs/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/java/com/k2fsa/sherpa/onnx/AppViewModel.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/java/com/k2fsa/sherpa/onnx/Application.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/java/com/k2fsa/sherpa/onnx/service/SpeechSherpaRecognitionService.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/drawable/ic_bg_mic_24.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxJavaDemo/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/java/com/k2fsa/sherpa/onnx/FeatureConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/java/com/k2fsa/sherpa/onnx/HomophoneReplacerConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/java/com/k2fsa/sherpa/onnx/KeywordSpotter.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/java/com/k2fsa/sherpa/onnx/OnlineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/java/com/k2fsa/sherpa/onnx/OnlineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/jniLibs/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/app/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxKws/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/androidTest/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/FeatureConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/HomophoneReplacerConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/OfflineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/OfflineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/Vad.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/BarItem.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/NavBarItems.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/NavRoutes.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/SimulateStreamingAsr.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/screens/Help.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/screens/Home.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/ui/theme/Color.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/ui/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/ui/theme/Type.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/app/src/test/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/gradle/libs.versions.toml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsr/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/lint.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/assets/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/wear/os/presentation/HomeScreen.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/wear/os/presentation/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/wear/os/presentation/SimulateStreamingAsr.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/java/com/k2fsa/sherpa/onnx/simulate/streaming/asr/wear/os/presentation/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/drawable/splash_icon.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/values-round/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/app/src/main/res/values/styles.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/gradle/libs.versions.toml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSimulateStreamingAsrWearOs/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/androidTest/java/com/k2fsa/sherpa/onnx/speaker/diarization/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/BarItem.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/NavBarItems.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/NavRoutes.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/OfflineSpeakerDiarization.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/ReadWaveFile.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/SpeakerDiarizationObject.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/SpeakerEmbeddingExtractorConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/screens/Help.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/screens/Home.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/ui/theme/Color.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/ui/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/diarization/ui/theme/Type.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/app/src/test/java/com/k2fsa/sherpa/onnx/speaker/diarization/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/gradle/libs.versions.toml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerDiarization/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/androidTest/java/com/k2fsa/sherpa/onnx/speaker/identification/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/BarItem.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/NavBarItems.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/NavRoutes.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/OnlineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/Speaker.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/SpeakerEmbeddingExtractorConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/screens/Help.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/screens/Home.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/screens/Register.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/screens/View.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/ui/theme/Color.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/ui/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/speaker/identification/ui/theme/Type.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/app/src/test/java/com/k2fsa/sherpa/onnx/speaker/identification/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpeakerIdentification/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/androidTest/java/com/k2fsa/sherpa/onnx/slid/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/assets/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/Home.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/OfflineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/SpokenLanguageIdentification.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/slid.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/ui/theme/Color.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/ui/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/java/com/k2fsa/sherpa/onnx/slid/ui/theme/Type.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/jniLibs/arm64-v8a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/jniLibs/armeabi-v7a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/jniLibs/x86/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/jniLibs/x86_64/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/app/src/test/java/com/k2fsa/sherpa/onnx/slid/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxSpokenLanguageIdentification/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/java/com/k2fsa/sherpa/onnx/Tts.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/jniLibs/arm64-v8a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/jniLibs/armeabi-v7a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/jniLibs/x86/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/jniLibs/x86_64/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/app/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTts/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/androidTest/java/com/k2fsa/sherpa/onnx/tts/engine/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/CheckVoiceData.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/GetSampleText.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/InstallVoiceData.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/PreferencesHelper.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/Tts.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/TtsEngine.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/TtsService.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/TtsViewModel.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/ui/theme/Color.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/ui/theme/Theme.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/java/com/k2fsa/sherpa/onnx/tts/engine/ui/theme/Type.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/values/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/main/res/xml/tts_engine.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/app/src/test/java/com/k2fsa/sherpa/onnx/tts/engine/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/build.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxTtsEngine/settings.gradle.kts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/assets/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/java/com/k2fsa/sherpa/onnx/Vad.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/jniLibs/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/jniLibs/arm64-v8a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/jniLibs/armeabi-v7a/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/jniLibs/x86/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/jniLibs/x86_64/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/drawable/black_circle.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/drawable/red_circle.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/app/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVad/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/assets/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/java/com/k2fsa/sherpa/onnx/FeatureConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/java/com/k2fsa/sherpa/onnx/HomophoneReplacerConfig.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/java/com/k2fsa/sherpa/onnx/OfflineRecognizer.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/java/com/k2fsa/sherpa/onnx/OfflineStream.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/java/com/k2fsa/sherpa/onnx/Vad.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/app/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxVadAsr/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/proguard-rules.pro create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/androidTest/java/com/k2fsa/sherpa/onnx/ExampleInstrumentedTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/assets/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/java/com/k2fsa/sherpa/onnx/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/java/com/k2fsa/sherpa/onnx/MyWebsocketClient.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/java/com/k2fsa/sherpa/onnx/SpeechContent.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/java/com/k2fsa/sherpa/onnx/WaveReader.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/jniLibs/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/values/colors.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/values/strings.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/values/themes.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/xml/backup_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/app/src/test/java/com/k2fsa/sherpa/onnx/ExampleUnitTest.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/build.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/gradle.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/gradle/wrapper/gradle-wrapper.jar create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/gradle/wrapper/gradle-wrapper.properties create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/gradlew create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/gradlew.bat create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/android/SherpaOnnxWebSocket/settings.gradle create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/Makefile create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/add-punctuation-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/asr-microphone-example/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/asr-microphone-example/CPPLINT.cfg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/asr-microphone-example/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/asr-microphone-example/alsa.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/asr-microphone-example/alsa.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/asr-microphone-example/c-api-alsa.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/audio-tagging-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/decode-file-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/dolphin-ctc-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/fire-red-asr-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/keywords-spotter-buffered-tokens-keywords-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/kitten-tts-en-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/kokoro-tts-en-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/kokoro-tts-zh-en-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/kws-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/matcha-tts-en-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/matcha-tts-zh-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/moonshine-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/nemo-canary-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/offline-speaker-diarization-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/offline-tts-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/paraformer-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/run.sh create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/sense-voice-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/sense-voice-with-hr-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/speaker-identification-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/speech-enhancement-gtcrn-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/spoken-language-identification-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/streaming-ctc-buffered-tokens-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/streaming-hlg-decode-file-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/streaming-paraformer-buffered-tokens-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/streaming-paraformer-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/streaming-zipformer-buffered-tokens-hotwords-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/streaming-zipformer-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/streaming-zipformer-with-hr-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/telespeech-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/vad-moonshine-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/vad-sense-voice-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/vad-whisper-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/whisper-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/c-api-examples/zipformer-c-api.c create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/__init__.py create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/asio.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/cargs.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/cmake_extension.py create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/cppjieba.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/eigen.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/espeak-ng-for-piper.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/googletest.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/hclust-cpp.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/kaldi-decoder.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/kaldi-native-fbank.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/kaldifst.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-aarch64-gpu.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-aarch64-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-aarch64.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-arm-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-arm.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-riscv64-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-riscv64.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-x86_64-gpu.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-x86_64-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-linux-x86_64.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-osx-arm64-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-osx-arm64.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-osx-universal-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-osx-universal.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-osx-x86_64-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-osx-x86_64.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-wasm-simd.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-arm64-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-arm64.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x64-directml.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x64-gpu.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x64-static-debug.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x64-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x64.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x86-static-debug.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x86-static.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime-win-x86.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/onnxruntime.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/openfst.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/piper-phonemize.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/portaudio.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/pybind11.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/sherpa-onnx-shared.pc.in create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/sherpa-onnx-static-no-tts.pc.in create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/sherpa-onnx-static.pc.in create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/show-info.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/simple-sentencepiece.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/cmake/websocketpp.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/debug/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/kotlin/com/k2fsa/sherpa/onnx/streaming_asr/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/drawable/launch_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/values-night/styles.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/main/res/values/styles.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/streaming_asr/android/app/src/profile/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/debug/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/kotlin/com/example/tts/MainActivity.kt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/drawable/launch_background.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/values-night/styles.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/main/res/values/styles.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter-examples/tts/android/app/src/profile/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/audio_tagging.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/feature_config.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/homophone_replacer_config.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/keyword_spotter.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/offline_punctuation.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/offline_recognizer.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/offline_speaker_diarization.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/offline_speech_denoiser.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/offline_stream.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/online_punctuation.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/online_recognizer.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/online_stream.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/sherpa_onnx_bindings.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/speaker_identification.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/tts.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/utils.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/vad.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/version.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/wave_reader.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx/lib/src/wave_writer.dart create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx_android/android/src/main/AndroidManifest.xml create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx_android/android/src/main/jniLibs/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx_android/android/src/main/jniLibs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx_android/android/src/main/jniLibs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx_android/android/src/main/jniLibs/x86/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/flutter/sherpa_onnx_android/android/src/main/jniLibs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/ets/pages/Index.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/element/color.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/media/background.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/media/foreground.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/media/layered_image.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/media/startIcon.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/profile/backup_config.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/base/profile/main_pages.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/en_US/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/main/resources/zh_CN/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/ohosTest/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/entry/src/test/LocalUnit.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/audio-tagging.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/include/sherpa-onnx/c-api/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/include/sherpa-onnx/c-api/c-api.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/keyword-spotting.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/libs/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/libs/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/libs/arm64-v8a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/libs/armeabi-v7a/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/libs/x86_64/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/macros.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/my-patch.diff create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/non-streaming-asr.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/non-streaming-speaker-diarization.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/non-streaming-speech-denoiser.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/non-streaming-tts.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/punctuation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/sherpa-onnx-node-addon-api.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/speaker-identification.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/spoken-language-identification.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/streaming-asr.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/types/libsherpa_onnx/Index.d.ts create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/types/libsherpa_onnx/oh-package.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/utils.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/vad.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/version.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/wave-reader.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/cpp/wave-writer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/KeywordSpotting.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/MainPage.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/NonStreamingAsr.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/NonStreamingSpeakerDiarization.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/NonStreamingTts.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/SpeakerIdentification.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/StreamingAsr.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/ets/components/Vad.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/resources/base/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/resources/en_US/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/main/resources/zh_CN/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/ohosTest/ets/test/Ability.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/ohosTest/ets/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/ohosTest/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxHar/sherpa_onnx/src/test/LocalUnit.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/ets/pages/Index.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/ets/workers/SpeakerDiarizationWorker.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/element/color.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/media/background.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/media/foreground.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/media/icon_doc.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/media/icon_mic.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/media/info.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/media/layered_image.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/media/startIcon.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/profile/backup_config.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/base/profile/main_pages.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/en_US/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/rawfile/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/main/resources/zh_CN/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/ohosTest/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerDiarization/entry/src/test/LocalUnit.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/ets/pages/Index.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/ets/pages/Permission.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/ets/workers/SpeakerIdentificationWorker.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/element/color.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/background.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/foreground.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/icon_add.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/icon_home.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/icon_info.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/icon_view.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/layered_image.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/media/startIcon.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/profile/backup_config.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/base/profile/main_pages.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/en_US/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/rawfile/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/main/resources/zh_CN/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/ohosTest/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxSpeakerIdentification/entry/src/test/LocalUnit.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/ets/pages/Index.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/ets/pages/Permission.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/ets/workers/StreamingAsrWorker.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/element/color.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/background.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/foreground.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/home.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/icon_doc.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/icon_mic.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/info.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/layered_image.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/media/startIcon.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/profile/backup_config.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/base/profile/main_pages.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/en_US/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/rawfile/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/main/resources/zh_CN/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/ohosTest/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxStreamingAsr/entry/src/test/LocalUnit.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/ets/pages/Index.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/ets/workers/NonStreamingTtsWorker.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/element/color.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/media/background.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/media/foreground.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/media/home.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/media/info.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/media/layered_image.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/media/startIcon.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/profile/backup_config.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/base/profile/main_pages.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/en_US/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/rawfile/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/main/resources/zh_CN/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/ohosTest/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxTts/entry/src/test/LocalUnit.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/ets/pages/Index.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/ets/pages/NonStreamingAsrModels.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/ets/pages/Permission.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/ets/workers/NonStreamingAsrWithVadWorker.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/element/color.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/media/background.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/media/foreground.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/media/icon_doc.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/media/icon_mic.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/media/info.svg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/media/layered_image.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/media/startIcon.png create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/profile/backup_config.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/base/profile/main_pages.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/en_US/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/rawfile/.gitkeep create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/main/resources/zh_CN/element/string.json create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/ohosTest/module.json5 create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/test/List.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/harmony-os/SherpaOnnxVadAsr/entry/src/test/LocalUnit.test.ets create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/java-api-examples/src/websocketsrv/AsrWebsocketClient.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/java-api-examples/src/websocketsrv/AsrWebsocketServer.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/java-api-examples/src/websocketsrv/ConnectionData.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/java-api-examples/src/websocketsrv/DecoderThreadHandler.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/java-api-examples/src/websocketsrv/StreamThreadHandler.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/c-api/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/c-api/c-api.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/c-api/c-api.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/c-api/cxx-api.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/c-api/cxx-api.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/CPPLINT.cfg create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/README.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/alsa-play.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/alsa-play.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/alsa.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/alsa.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-ced-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-label-file.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-label-file.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging-zipformer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/audio-tagging.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/base64-decode.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/base64-decode.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/bbpe.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/bbpe.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/cat-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/cat.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/cat.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/circular-buffer-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/circular-buffer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/circular-buffer.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/context-graph-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/context-graph.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/context-graph.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/cppjieba-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/display.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/endpoint.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/endpoint.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/fast-clustering-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/fast-clustering-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/fast-clustering-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/fast-clustering.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/fast-clustering.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/features.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/features.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/file-utils.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/file-utils.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/fst-utils.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/fst-utils.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/hifigan-vocoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/hifigan-vocoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/homophone-replacer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/homophone-replacer.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/hypothesis.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/hypothesis.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/jieba-lexicon.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/jieba-lexicon.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/jieba.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/jieba.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/keyword-spotter-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/keyword-spotter-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/keyword-spotter-transducer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/keyword-spotter.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/keyword-spotter.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/kokoro-multi-lang-lexicon.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/kokoro-multi-lang-lexicon.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/lexicon.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/lexicon.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/lodr-fst.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/lodr-fst.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/log.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/log.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/macros.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/math.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/melo-tts-lexicon.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/melo-tts-lexicon.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/microphone.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/microphone.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-canary-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-canary-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-canary-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-canary-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-canary-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ced-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ced-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ct-transformer-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ct-transformer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ct-transformer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-fst-decoder-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-fst-decoder-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-fst-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-fst-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-dolphin-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-dolphin-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-dolphin-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-dolphin-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-dolphin-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-fire-red-asr-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-lm-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-lm-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-lm.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-lm.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-moonshine-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-moonshine-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-moonshine-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-moonshine-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-moonshine-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-moonshine-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-moonshine-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-nemo-enc-dec-ctc-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-nemo-enc-dec-ctc-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-nemo-enc-dec-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-nemo-enc-dec-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-paraformer-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-paraformer-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-paraformer-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-paraformer-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-paraformer-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-paraformer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-paraformer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-punctuation-ct-transformer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-punctuation-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-punctuation-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-punctuation-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-punctuation-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-punctuation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-punctuation.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-canary-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-ctc-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-fire-red-asr-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-moonshine-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-paraformer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-sense-voice-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-transducer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-transducer-nemo-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer-whisper-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-recognizer.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-rnn-lm.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-rnn-lm.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-sense-voice-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-sense-voice-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-sense-voice-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-sense-voice-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-sense-voice-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-spleeter-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-spleeter-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-spleeter-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-spleeter-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-spleeter-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-spleeter-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-uvr-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-uvr-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-uvr-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-uvr-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-uvr-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation-uvr-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-source-separation.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-diarization-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-diarization-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-diarization-pyannote-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-diarization-result.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-diarization-result.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-diarization.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-diarization.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-segmentation-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-segmentation-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-segmentation-pyannote-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-segmentation-pyannote-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-segmentation-pyannote-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-segmentation-pyannote-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speaker-segmentation-pyannote-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-gtcrn-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-gtcrn-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-gtcrn-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-gtcrn-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-gtcrn-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-gtcrn-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-speech-denoiser.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-stream.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-stream.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tdnn-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tdnn-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tdnn-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tdnn-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-telespeech-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-telespeech-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-greedy-search-nemo-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-greedy-search-nemo-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-modified-beam-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-modified-beam-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-nemo-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-transducer-nemo-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-character-frontend.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-character-frontend.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-frontend.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-frontend.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kitten-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kitten-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kitten-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kitten-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kitten-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kitten-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kokoro-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kokoro-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kokoro-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kokoro-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kokoro-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-kokoro-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-matcha-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-matcha-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-matcha-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-matcha-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-matcha-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-matcha-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts-vits-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-tts.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-websocket-server-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-websocket-server-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-websocket-server.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-wenet-ctc-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-wenet-ctc-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-wenet-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-wenet-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-whisper-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-whisper-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-whisper-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-whisper-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-whisper-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-whisper-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-whisper-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-audio-tagging-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-audio-tagging-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-audio-tagging-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-audio-tagging-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-ctc-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-ctc-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/offline-zipformer-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-cnn-bilstm-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-cnn-bilstm-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-cnn-bilstm-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-conformer-transducer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-conformer-transducer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-fst-decoder-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-fst-decoder-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-fst-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-fst-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ebranchformer-transducer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-ebranchformer-transducer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-lm-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-lm-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-lm.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-lm.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-lstm-transducer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-lstm-transducer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-nemo-ctc-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-nemo-ctc-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-nemo-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-nemo-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-paraformer-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-paraformer-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-paraformer-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-paraformer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-paraformer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-punctuation-cnn-bilstm-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-punctuation-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-punctuation-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-punctuation-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-punctuation-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-punctuation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-punctuation.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer-ctc-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer-paraformer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer-transducer-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer-transducer-nemo-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-recognizer.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-rnn-lm.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-rnn-lm.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-stream.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-stream.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-greedy-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-greedy-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-greedy-search-nemo-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-greedy-search-nemo-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-modified-beam-search-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-modified-beam-search-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-nemo-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-transducer-nemo-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-websocket-client.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-websocket-server-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-websocket-server-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-websocket-server.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-wenet-ctc-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-wenet-ctc-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-wenet-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-wenet-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer-transducer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer-transducer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer2-ctc-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer2-ctc-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer2-ctc-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer2-ctc-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer2-transducer-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/online-zipformer2-transducer-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/onnx-utils.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/onnx-utils.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/packed-sequence-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/packed-sequence.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/packed-sequence.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/pad-sequence-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/pad-sequence.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/pad-sequence.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/parse-options.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/parse-options.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/piper-phonemize-lexicon.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/piper-phonemize-lexicon.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/piper-phonemize-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/provider-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/provider-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/provider.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/provider.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/regex-lang-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/resample.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/resample.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/macros.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-recognizer-ctc-rknn-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-recognizer-transducer-rknn-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-stream-rknn.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-stream-rknn.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-transducer-decoder-rknn.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-transducer-greedy-search-decoder-rknn.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-transducer-greedy-search-decoder-rknn.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-transducer-modified-beam-search-decoder-rknn.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-transducer-modified-beam-search-decoder-rknn.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-zipformer-ctc-model-rknn.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-zipformer-ctc-model-rknn.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-zipformer-transducer-model-rknn.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/online-zipformer-transducer-model-rknn.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/silero-vad-model-rknn.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/silero-vad-model-rknn.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/utils.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/rknn/utils.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/session.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/session.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-alsa-offline-audio-tagging.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-alsa-offline-speaker-identification.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-alsa-offline.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-alsa.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-keyword-spotter-alsa.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-keyword-spotter-microphone.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-keyword-spotter.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-microphone-offline-audio-tagging.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-microphone-offline-speaker-identification.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-microphone-offline.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-microphone.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-audio-tagging.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-denoiser.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-language-identification.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-parallel.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-punctuation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-source-separation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-speaker-diarization.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-tts-play-alsa.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-tts-play.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline-tts.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-offline.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-online-punctuation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-vad-alsa-offline-asr.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-vad-alsa.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-vad-microphone-offline-asr.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-vad-microphone.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-vad-with-offline-asr.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-vad-with-online-asr.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-vad.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx-version.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/sherpa-onnx.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/silero-vad-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/silero-vad-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/silero-vad-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/silero-vad-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/slice-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/slice.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/slice.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-general-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-nemo-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-nemo-model-meta-data.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-nemo-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor-nemo-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-extractor.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-manager-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-manager.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/speaker-embedding-manager.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/spoken-language-identification-impl.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/spoken-language-identification-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/spoken-language-identification-whisper-impl.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/spoken-language-identification.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/spoken-language-identification.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/stack-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/stack.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/stack.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/symbol-table.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/symbol-table.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/tee-stream.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/ten-vad-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/ten-vad-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/ten-vad-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/ten-vad-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/text-utils-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/text-utils.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/text-utils.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/text2token-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/transducer-keyword-decoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/transducer-keyword-decoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/transpose-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/transpose.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/transpose.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/unbind-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/unbind.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/unbind.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/utfcpp-test.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/utils.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/utils.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vad-model-config.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vad-model-config.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vad-model.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vad-model.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/version.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/version.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vocoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vocoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vocos-vocoder.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/vocos-vocoder.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/voice-activity-detector.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/voice-activity-detector.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/wave-reader.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/wave-reader.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/wave-writer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/csrc/wave-writer.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/AudioEvent.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/AudioTagging.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/AudioTaggingConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/AudioTaggingModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/DenoisedAudio.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/EndpointConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/EndpointRule.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/FastClusteringConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/FeatureConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/GeneratedAudio.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/HomophoneReplacerConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/KeywordSpotter.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/KeywordSpotterConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/KeywordSpotterResult.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/LibraryLoader.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/LibraryUtils.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineCanaryModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineDolphinModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineFireRedAsrModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineMoonshineModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineNemoEncDecCtcModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineParaformerModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflinePunctuation.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflinePunctuationConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflinePunctuationModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineRecognizer.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineRecognizerConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineRecognizerResult.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSenseVoiceModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeakerDiarization.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeakerDiarizationCallback.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeakerDiarizationConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeakerDiarizationSegment.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeakerSegmentationModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeakerSegmentationPyannoteModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeechDenoiser.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeechDenoiserConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeechDenoiserGtcrnModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineSpeechDenoiserModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineStream.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTransducerModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTts.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTtsCallback.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTtsConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTtsKittenModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTtsKokoroModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTtsMatchaModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTtsModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineTtsVitsModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineWhisperModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineZipformerAudioTaggingModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OfflineZipformerCtcModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineCtcFstDecoderConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineLMConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineNeMoCtcModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineParaformerModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlinePunctuation.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlinePunctuationConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlinePunctuationModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineRecognizer.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineRecognizerConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineRecognizerResult.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineStream.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineTransducerModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/OnlineZipformer2CtcModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SileroVadModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SpeakerEmbeddingExtractor.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SpeakerEmbeddingExtractorConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SpeakerEmbeddingManager.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SpeechSegment.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SpokenLanguageIdentification.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SpokenLanguageIdentificationConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/SpokenLanguageIdentificationWhisperConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/TenVadModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/Vad.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/VadModelConfig.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/VersionInfo.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/WaveReader.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/java/com/k2fsa/sherpa/onnx/WaveWriter.java create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/resources/.gitignore create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/java-api/src/main/resources/readme.md create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/CMakeLists.txt create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/audio-tagging.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/common.h create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/jni.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/keyword-spotter.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/offline-punctuation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/offline-recognizer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/offline-speaker-diarization.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/offline-speech-denoiser.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/offline-stream.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/offline-tts.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/online-punctuation.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/online-recognizer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/online-stream.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/speaker-embedding-extractor.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/speaker-embedding-manager.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/spoken-language-identification.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/version.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/voice-activity-detector.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/wave-reader.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/sherpa-onnx/jni/wave-writer.cc create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/toolchains/aarch64-linux-gnu.toolchain.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/toolchains/arm-linux-gnueabihf.toolchain.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/toolchains/ios.toolchain.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/sherpa-onnx/toolchains/riscv64-linux-gnu.toolchain.cmake create mode 100644 src-tauri/vendor/sherpa-rs-sys/src/download_binaries.rs create mode 100644 src-tauri/vendor/sherpa-rs-sys/src/lib.rs create mode 100644 src-tauri/vendor/sherpa-rs-sys/wrapper.h create mode 100644 src-tauri/vendor/tauri-specta/.cargo_vcs_info.json create mode 100644 src-tauri/vendor/tauri-specta/Cargo.lock create mode 100644 src-tauri/vendor/tauri-specta/Cargo.toml create mode 100644 src-tauri/vendor/tauri-specta/Cargo.toml.orig create mode 100644 src-tauri/vendor/tauri-specta/LICENSE create mode 100644 src-tauri/vendor/tauri-specta/README.md create mode 100644 src-tauri/vendor/tauri-specta/src/builder.rs create mode 100644 src-tauri/vendor/tauri-specta/src/event.rs create mode 100644 src-tauri/vendor/tauri-specta/src/lang.rs create mode 100644 src-tauri/vendor/tauri-specta/src/lang/globals.js create mode 100644 src-tauri/vendor/tauri-specta/src/lang/globals.ts create mode 100644 src-tauri/vendor/tauri-specta/src/lang/js.rs create mode 100644 src-tauri/vendor/tauri-specta/src/lang/js_ts.rs create mode 100644 src-tauri/vendor/tauri-specta/src/lang/ts.rs create mode 100644 src-tauri/vendor/tauri-specta/src/lib.rs create mode 100644 src-tauri/vendor/tauri-specta/src/macros.rs create mode 100644 src-tauri/windows-runtime-notices/THIRD-PARTY-NOTICES.windows.txt create mode 100644 src/components/HotkeyRecorder.test.ts create mode 100644 src/composables/usePlatform.test.ts create mode 100644 src/composables/usePlatform.ts create mode 100644 src/shared/hotkeys.test.ts create mode 100644 src/shared/hotkeys.ts create mode 100644 src/windows/hud/Hud.test.ts create mode 100644 src/windows/settings/pages/DiagnosticsPage.test.ts create mode 100644 src/windows/settings/pages/DictationPage.test.ts create mode 100644 src/windows/settings/pages/HotkeysPage.test.ts create mode 100644 tools/updater-signature-verifier/Cargo.lock create mode 100644 tools/updater-signature-verifier/Cargo.toml create mode 100644 tools/updater-signature-verifier/src/main.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f47307..fca2df2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,6 +5,9 @@ on: branches: [master, main] pull_request: +permissions: + contents: read + env: CARGO_TERM_COLOR: always @@ -12,9 +15,11 @@ jobs: rustfmt: runs-on: macos-14 steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) with: components: rustfmt @@ -24,13 +29,15 @@ jobs: clippy: runs-on: macos-14 steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) with: components: clippy - - uses: Swatinem/rust-cache@v2 + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: src-tauri @@ -40,11 +47,13 @@ jobs: cargo-test: runs-on: macos-14 steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) - - uses: Swatinem/rust-cache@v2 + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: src-tauri @@ -54,20 +63,20 @@ jobs: frontend-build: runs-on: macos-14 steps: - - uses: actions/checkout@v7 - - - uses: pnpm/action-setup@v6.0.9 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: - version: 10 + persist-credentials: false + + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 cache: pnpm - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) - - uses: Swatinem/rust-cache@v2 + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: src-tauri @@ -90,20 +99,20 @@ jobs: frontend-test: runs-on: macos-14 steps: - - uses: actions/checkout@v7 - - - uses: pnpm/action-setup@v6.0.9 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: - version: 10 + persist-credentials: false - - uses: actions/setup-node@v6 + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 cache: pnpm - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) - - uses: Swatinem/rust-cache@v2 + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: src-tauri @@ -115,3 +124,125 @@ jobs: - name: vitest run: pnpm test + + windows: + name: Windows x86_64 gates and NSIS smoke + runs-on: windows-latest + env: + # Keep native build paths below the legacy MAX_PATH boundary. llama.cpp + # honors CMAKE_GENERATOR and must use the Vulkan, not CUDA, backend. + CARGO_TARGET_DIR: C:\t + CMAKE_GENERATOR: Ninja + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: 24 + cache: pnpm + + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) + with: + components: clippy,rustfmt + targets: x86_64-pc-windows-msvc + + - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + + - name: Install Vulkan SDK + uses: humbletim/install-vulkan-sdk@30ba978f977e81b72d091fc8888feb1fb26f9aff # v1.2 + with: + version: 1.3.296.0 + cache: true + + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 + with: + workspaces: | + src-tauri -> C:\t + + - name: Verify native build tools + shell: pwsh + run: | + ninja --version + if ([string]::IsNullOrWhiteSpace($env:VULKAN_SDK)) { + throw "VULKAN_SDK was not configured" + } + & (Join-Path $env:VULKAN_SDK "Bin\glslc.exe") --version + $sevenZip = Join-Path $env:ProgramFiles "7-Zip\7z.exe" + if (-not (Test-Path -LiteralPath $sevenZip -PathType Leaf)) { + throw "Full 7-Zip is required for NSIS payload verification" + } + $sevenZipInfo = & $sevenZip i + if ($LASTEXITCODE -ne 0 -or -not ($sevenZipInfo | Select-String -SimpleMatch "Nsis")) { + throw "7-Zip does not support NSIS extraction" + } + $sevenZipInfo | Select-String -Pattern "7-Zip|Nsis" + + - name: Install frontend deps + run: pnpm install --frozen-lockfile + + - name: rustfmt + run: cargo fmt --check --manifest-path src-tauri/Cargo.toml + + - name: Rust no-default-features check + run: cargo check --manifest-path src-tauri/Cargo.toml --no-default-features + + - name: Rust no-default-features clippy + run: cargo clippy --manifest-path src-tauri/Cargo.toml --no-default-features -- -D warnings + + - name: Rust no-default-features test + run: cargo test --manifest-path src-tauri/Cargo.toml --no-default-features + + - name: Rust default check (CPU and Vulkan) + run: cargo check --manifest-path src-tauri/Cargo.toml + + - name: Rust default clippy (CPU and Vulkan) + run: cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings + + - name: Rust default test (CPU and Vulkan) + run: cargo test --manifest-path src-tauri/Cargo.toml + + - name: Generate IPC bindings + run: pnpm gen:ipc + + - name: Frontend build + run: pnpm build + + - name: Frontend test + run: pnpm test + + - name: Release metadata tests + run: pnpm test:release-metadata + + - name: Build unsigned non-release NSIS smoke installer + shell: pwsh + run: | + $config = @{ bundle = @{ createUpdaterArtifacts = $false } } | + ConvertTo-Json -Depth 8 -Compress + [IO.File]::WriteAllText( + (Join-Path $env:RUNNER_TEMP "tauri-ci.json"), + $config, + [Text.UTF8Encoding]::new($false) + ) + pnpm tauri build --bundles nsis --ci --config (Join-Path $env:RUNNER_TEMP "tauri-ci.json") + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + + $bundleDir = Join-Path $env:CARGO_TARGET_DIR "release\bundle\nsis" + $installer = Get-ChildItem -LiteralPath $bundleDir -Filter "*.exe" -File | + Select-Object -First 1 + if (-not $installer) { throw "NSIS smoke installer was not produced" } + $unexpectedUpdaterArtifacts = @( + Get-ChildItem -LiteralPath $bundleDir -Filter "*.nsis.zip" -File + Get-ChildItem -LiteralPath $bundleDir -Filter "*.exe.sig" -File + ) + if ($unexpectedUpdaterArtifacts.Count -gt 0) { + throw "Non-release smoke build unexpectedly produced updater artifacts" + } + Write-Host "NSIS smoke installer: $($installer.Name) ($($installer.Length) bytes)" + + - name: Verify NSIS payload and PE dependency closure + shell: pwsh + run: ./scripts/verify-windows-bundle.ps1 -RequireInstallerExtraction diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index a9200ce..5920385 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: permissions: - contents: write + contents: read concurrency: group: nightly @@ -16,31 +16,30 @@ env: CARGO_TERM_COLOR: always jobs: - # Add build-windows/build-linux jobs next to this one as platform support lands. - # Each platform job should upload a nightly-assets- artifact; publish - # consumes those artifacts without caring which platform produced them. + # Each platform job uploads a nightly-assets- artifact. publish + # aggregates updater fragments and nightly metadata without rebuilding them. build-macos: name: Build macOS universal runs-on: macos-14 env: PLATFORM_ID: macos-universal steps: - - uses: actions/checkout@v7 - - - uses: pnpm/action-setup@v6.0.9 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: - version: 10 + persist-credentials: false + + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 cache: pnpm - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) with: targets: aarch64-apple-darwin,x86_64-apple-darwin - - uses: Swatinem/rust-cache@v2 + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: src-tauri @@ -89,7 +88,122 @@ jobs: scripts/prepare-macos-assets.sh - name: Upload macOS nightly assets - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: nightly-assets-${{ env.PLATFORM_ID }} + path: nightly-assets/${{ env.PLATFORM_ID }}/* + if-no-files-found: error + + build-windows: + name: Build Windows x86_64 NSIS + runs-on: windows-latest + env: + PLATFORM_ID: windows-x86_64 + CARGO_TARGET_DIR: C:\t + CMAKE_GENERATOR: Ninja + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: 24 + cache: pnpm + + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) + with: + targets: x86_64-pc-windows-msvc + + - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + + - name: Install Vulkan SDK + uses: humbletim/install-vulkan-sdk@30ba978f977e81b72d091fc8888feb1fb26f9aff # v1.2 + with: + version: 1.3.296.0 + cache: true + + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 + with: + workspaces: | + src-tauri -> C:\t + + - name: Verify native build tools + shell: pwsh + run: | + ninja --version + if ([string]::IsNullOrWhiteSpace($env:VULKAN_SDK)) { + throw "VULKAN_SDK was not configured" + } + & (Join-Path $env:VULKAN_SDK "Bin\glslc.exe") --version + $sevenZip = Join-Path $env:ProgramFiles "7-Zip\7z.exe" + if (-not (Test-Path -LiteralPath $sevenZip -PathType Leaf)) { + throw "Full 7-Zip is required for NSIS payload verification" + } + $sevenZipInfo = & $sevenZip i + if ($LASTEXITCODE -ne 0 -or -not ($sevenZipInfo | Select-String -SimpleMatch "Nsis")) { + throw "7-Zip does not support NSIS extraction" + } + $sevenZipInfo | Select-String -Pattern "7-Zip|Nsis" + + - name: Install frontend deps + run: pnpm install --frozen-lockfile + + - name: Generate IPC bindings + run: pnpm gen:ipc + + - name: Build Tauri-signed updater and unsigned NSIS installer + shell: pwsh + env: + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: | + foreach ($name in @( + "TAURI_SIGNING_PRIVATE_KEY", + "TAURI_UPDATER_PUBKEY" + )) { + if ([string]::IsNullOrWhiteSpace([Environment]::GetEnvironmentVariable($name))) { + throw "$name is required" + } + } + + $config = @{ + bundle = @{ createUpdaterArtifacts = $true } + plugins = @{ updater = @{ pubkey = $env:TAURI_UPDATER_PUBKEY.Trim() } } + } | ConvertTo-Json -Depth 8 -Compress + $configPath = Join-Path $env:RUNNER_TEMP "tauri-nightly.json" + [IO.File]::WriteAllText($configPath, $config, [Text.UTF8Encoding]::new($false)) + + pnpm tauri build --bundles nsis --ci --config $configPath + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + + - name: Verify Windows installer and updater signature + shell: pwsh + env: + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: ./scripts/verify-windows-bundle.ps1 -RequireInstallerExtraction -RequireUpdaterSignature + + - name: Prepare Windows nightly assets + shell: pwsh + env: + REQUIRE_AUTHENTICODE: "false" + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: | + $version = node -p "require('./package.json').version" + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + $env:BUILD_TIME = [DateTime]::UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") + $env:ASSET_DIR = "nightly-assets/$($env:PLATFORM_ID)" + $env:INSTALLER_NAME = "typex-$($env:PLATFORM_ID)-nightly-unsigned-setup.exe" + $env:RELEASE_TAG = "nightly" + $env:UPDATER_VERSION = $version + $env:UPDATE_NOTES = "Nightly $env:GITHUB_SHA" + ./scripts/prepare-windows-assets.ps1 + + - name: Upload Windows nightly assets + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: nightly-assets-${{ env.PLATFORM_ID }} path: nightly-assets/${{ env.PLATFORM_ID }}/* @@ -99,21 +213,53 @@ jobs: name: Publish nightly release needs: - build-macos + - build-windows runs-on: ubuntu-22.04 + permissions: + contents: write steps: - - uses: actions/checkout@v7 + # This job force-moves the nightly tag, so checkout must retain its scoped write token. + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Download platform nightly assets - uses: actions/download-artifact@v4 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: pattern: nightly-assets-* - path: nightly-assets - merge-multiple: true + path: nightly-artifacts - - uses: actions/setup-node@v6 + - name: Collect nightly assets without name collisions + run: | + mkdir nightly-assets + found=0 + while IFS= read -r -d '' file; do + found=1 + name="$(basename "$file")" + if [[ -e "nightly-assets/$name" ]]; then + echo "Duplicate nightly asset name across platform artifacts: $name" + exit 1 + fi + cp "$file" "nightly-assets/$name" + done < <(find nightly-artifacts -type f -print0 | sort -z) + if [[ "$found" -ne 1 ]]; then + echo "No platform nightly assets were downloaded" + exit 1 + fi + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) + + - name: Aggregate updater manifests + env: + EXPECTED_RELEASE_TAG: nightly + EXPECTED_CHANNEL: nightly + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: | + node scripts/aggregate-updater-manifests.mjs nightly-assets + find nightly-assets -maxdepth 1 -type f -name 'updater-*.json' -delete + - name: Prepare aggregate nightly metadata run: | export BUILD_TIME="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" @@ -130,7 +276,7 @@ jobs: const dir = "nightly-assets"; const files = fs.readdirSync(dir).filter((file) => fs.statSync(`${dir}/${file}`).isFile()); const platformFiles = files - .filter((file) => file.endsWith(".json") && file !== "nightly.json" && file !== "latest.json") + .filter((file) => /^platform-[a-z0-9_-]+\.json$/.test(file)) .sort(); const platformAssets = platformFiles.map((file) => JSON.parse(fs.readFileSync(`${dir}/${file}`, "utf8"))); const assetFiles = files @@ -143,14 +289,12 @@ jobs: workflow_run: `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}`, built_at: process.env.BUILD_TIME, platforms: platformAssets.map((item) => item.platform), - assets: [...assetFiles, "nightly.json"], + assets: [...assetFiles, ...platformFiles, "nightly.json"], platform_assets: platformAssets, }; fs.writeFileSync(`${dir}/nightly.json`, `${JSON.stringify(metadata, null, 2)}\n`); NODE - find nightly-assets -maxdepth 1 -type f -name '*.json' ! -name 'nightly.json' ! -name 'latest.json' -delete - PLATFORMS="$(node -e "const fs = require('fs'); const m = JSON.parse(fs.readFileSync('nightly-assets/nightly.json', 'utf8')); console.log(m.platforms.join(', '));")" cat > nightly-notes.md <> "$GITHUB_OUTPUT" - # Add build-windows/build-linux jobs next to this one as platform support lands. - # Each platform job should upload a release-assets- artifact; publish - # consumes those artifacts without caring which platform produced them. + # Each platform job uploads a release-assets- artifact. publish + # aggregates updater fragments and release metadata without rebuilding them. build-macos: name: Build macOS universal needs: validate @@ -71,22 +72,22 @@ jobs: env: PLATFORM_ID: macos-universal steps: - - uses: actions/checkout@v7 - - - uses: pnpm/action-setup@v6.0.9 + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: - version: 10 + persist-credentials: false + + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 - - uses: actions/setup-node@v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 cache: pnpm - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) with: targets: aarch64-apple-darwin,x86_64-apple-darwin - - uses: Swatinem/rust-cache@v2 + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 with: workspaces: src-tauri @@ -136,7 +137,122 @@ jobs: scripts/prepare-macos-assets.sh - name: Upload macOS release assets - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: release-assets-${{ env.PLATFORM_ID }} + path: release-assets/${{ env.PLATFORM_ID }}/* + if-no-files-found: error + + build-windows: + name: Build Windows x86_64 NSIS + needs: validate + runs-on: windows-latest + env: + PLATFORM_ID: windows-x86_64 + CARGO_TARGET_DIR: C:\t + CMAKE_GENERATOR: Ninja + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 + with: + node-version: 24 + cache: pnpm + + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) + with: + targets: x86_64-pc-windows-msvc + + - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + + - name: Install Vulkan SDK + uses: humbletim/install-vulkan-sdk@30ba978f977e81b72d091fc8888feb1fb26f9aff # v1.2 + with: + version: 1.3.296.0 + cache: true + + - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 + with: + workspaces: | + src-tauri -> C:\t + + - name: Verify native build tools + shell: pwsh + run: | + ninja --version + if ([string]::IsNullOrWhiteSpace($env:VULKAN_SDK)) { + throw "VULKAN_SDK was not configured" + } + & (Join-Path $env:VULKAN_SDK "Bin\glslc.exe") --version + $sevenZip = Join-Path $env:ProgramFiles "7-Zip\7z.exe" + if (-not (Test-Path -LiteralPath $sevenZip -PathType Leaf)) { + throw "Full 7-Zip is required for NSIS payload verification" + } + $sevenZipInfo = & $sevenZip i + if ($LASTEXITCODE -ne 0 -or -not ($sevenZipInfo | Select-String -SimpleMatch "Nsis")) { + throw "7-Zip does not support NSIS extraction" + } + $sevenZipInfo | Select-String -Pattern "7-Zip|Nsis" + + - name: Install frontend deps + run: pnpm install --frozen-lockfile + + - name: Generate IPC bindings + run: pnpm gen:ipc + + - name: Build Tauri-signed updater and unsigned NSIS installer + shell: pwsh + env: + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: | + foreach ($name in @( + "TAURI_SIGNING_PRIVATE_KEY", + "TAURI_UPDATER_PUBKEY" + )) { + if ([string]::IsNullOrWhiteSpace([Environment]::GetEnvironmentVariable($name))) { + throw "$name is required" + } + } + + $config = @{ + bundle = @{ createUpdaterArtifacts = $true } + plugins = @{ updater = @{ pubkey = $env:TAURI_UPDATER_PUBKEY.Trim() } } + } | ConvertTo-Json -Depth 8 -Compress + $configPath = Join-Path $env:RUNNER_TEMP "tauri-release.json" + [IO.File]::WriteAllText($configPath, $config, [Text.UTF8Encoding]::new($false)) + + pnpm tauri build --bundles nsis --ci --config $configPath + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + + - name: Verify Windows installer and updater signature + shell: pwsh + env: + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: ./scripts/verify-windows-bundle.ps1 -RequireInstallerExtraction -RequireUpdaterSignature + + - name: Prepare Windows release assets + shell: pwsh + env: + VERSION: ${{ needs.validate.outputs.version }} + REQUIRE_AUTHENTICODE: "false" + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: | + $env:BUILD_TIME = [DateTime]::UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ") + $env:ASSET_DIR = "release-assets/$($env:PLATFORM_ID)" + $env:INSTALLER_NAME = "typex-$($env:PLATFORM_ID)-$($env:VERSION)-unsigned-setup.exe" + $env:RELEASE_TAG = $env:GITHUB_REF_NAME + $env:UPDATER_VERSION = $env:VERSION + $env:UPDATE_NOTES = "Typex $env:GITHUB_REF_NAME`nCommit: $env:GITHUB_SHA" + ./scripts/prepare-windows-assets.ps1 + + - name: Upload Windows release assets + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: release-assets-${{ env.PLATFORM_ID }} path: release-assets/${{ env.PLATFORM_ID }}/* @@ -147,19 +263,54 @@ jobs: needs: - validate - build-macos + - build-windows runs-on: ubuntu-22.04 + permissions: + contents: write steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + - name: Download platform release assets - uses: actions/download-artifact@v4 + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: pattern: release-assets-* - path: release-assets - merge-multiple: true + path: release-artifacts - - uses: actions/setup-node@v6 + - name: Collect release assets without name collisions + run: | + mkdir release-assets + found=0 + while IFS= read -r -d '' file; do + found=1 + name="$(basename "$file")" + if [[ -e "release-assets/$name" ]]; then + echo "Duplicate release asset name across platform artifacts: $name" + exit 1 + fi + cp "$file" "release-assets/$name" + done < <(find release-artifacts -type f -print0 | sort -z) + if [[ "$found" -ne 1 ]]; then + echo "No platform release assets were downloaded" + exit 1 + fi + + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 + - uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable (2026-06-30) + + - name: Aggregate updater manifests + env: + EXPECTED_RELEASE_TAG: ${{ github.ref_name }} + EXPECTED_CHANNEL: stable + TAURI_UPDATER_PUBKEY: ${{ secrets.TAURI_UPDATER_PUBKEY }} + run: | + node scripts/aggregate-updater-manifests.mjs release-assets + find release-assets -maxdepth 1 -type f -name 'updater-*.json' -delete + - name: Prepare aggregate release metadata env: VERSION: ${{ needs.validate.outputs.version }} @@ -178,7 +329,7 @@ jobs: const dir = "release-assets"; const files = fs.readdirSync(dir).filter((file) => fs.statSync(`${dir}/${file}`).isFile()); const platformFiles = files - .filter((file) => file.endsWith(".json") && file !== "release.json" && file !== "latest.json") + .filter((file) => /^platform-[a-z0-9_-]+\.json$/.test(file)) .sort(); const platformAssets = platformFiles.map((file) => JSON.parse(fs.readFileSync(`${dir}/${file}`, "utf8"))); const assetFiles = files @@ -191,14 +342,12 @@ jobs: workflow_run: `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}`, built_at: process.env.BUILD_TIME, platforms: platformAssets.map((item) => item.platform), - assets: [...assetFiles, "release.json"], + assets: [...assetFiles, ...platformFiles, "release.json"], platform_assets: platformAssets, }; fs.writeFileSync(`${dir}/release.json`, `${JSON.stringify(metadata, null, 2)}\n`); NODE - find release-assets -maxdepth 1 -type f -name '*.json' ! -name 'release.json' ! -name 'latest.json' -delete - PLATFORMS="$(node -e "const fs = require('fs'); const m = JSON.parse(fs.readFileSync('release-assets/release.json', 'utf8')); console.log(m.platforms.join(', '));")" cat > release-notes.md </dev/null 2>&1; then + if RELEASE_STATE="$(gh release view "$GITHUB_REF_NAME" --json isDraft,isImmutable --jq '[.isDraft, .isImmutable] | @tsv' 2>/dev/null)"; then + IFS=$'\t' read -r IS_DRAFT IS_IMMUTABLE <<< "$RELEASE_STATE" + if [[ "$IS_DRAFT" != "true" ]]; then + echo "Release $GITHUB_REF_NAME is already published; refusing to change it back to draft." + exit 1 + fi + if [[ "$IS_IMMUTABLE" == "true" ]]; then + echo "Release $GITHUB_REF_NAME is immutable; refusing to edit its assets." + exit 1 + fi + gh release edit "$GITHUB_REF_NAME" \ --title "Typex $GITHUB_REF_NAME" \ --notes-file release-notes.md \ diff --git a/.gitignore b/.gitignore index c912c0e..cd8eb21 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Rust /src-tauri/target /target +/tools/updater-signature-verifier/target/ # Node node_modules @@ -9,6 +10,7 @@ dist # 生成物 /src/ipc/bindings.ts /src-tauri/gen/schemas +/src-tauri/windows-runtime/ # 系统 .DS_Store diff --git a/AGENTS.md b/AGENTS.md index 5480fb2..4e77582 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -136,9 +136,10 @@ cargo build --manifest-path src-tauri/Cargo.toml --no-default-features ## 平台验证 -- 当前可用平台是 macOS;Windows / Linux 适配即将展开,代码保持三平台 trait 可扩展。 -- HUD 必须是 nonactivating NSPanel。 -- rdev 未获辅助功能权限时会静默无事件,排查热键问题先看权限。 +- 当前支持 macOS 与 Windows x64;Linux 仍待适配,代码保持三平台 trait 可扩展。 +- HUD 在 macOS 必须是 nonactivating NSPanel;Windows 必须带 `WS_EX_NOACTIVATE`,显示前后前台 HWND 不得变化。 +- macOS 的 rdev 未获辅助功能权限时会静默无事件;Windows 快捷键先检查低级键盘钩子诊断状态。 +- Windows 默认特性构建使用短 `CARGO_TARGET_DIR`(例如 `C:\t`),避免 sherpa/ONNX 的 CMake 子构建触发传统 260 字符路径限制。 - cpal Stream 非 Send;录音相关问题优先检查专属线程与 callback 是否只做轻量拷贝。 - macOS 实机 UI 截图可用 `screencapture -x -l `;窗口 ID 用 `CGWindowListCopyWindowInfo` 查。 - 不要用全局鼠标点击自动化验证 UI,会干扰正在使用电脑的用户。 diff --git a/README.md b/README.md index f961db6..12f4d69 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,10 @@ Typex is an open-source, desktop AI voice input tool. Hold a shortcut and speak Get the latest release from the [GitHub Releases page](https://github.com/typex-ink/Typex/releases). +Windows builds support 64-bit Windows 10 22H2 or later and Windows 11. The NSIS installer uses the WebView2 Evergreen Bootstrapper and may need an internet connection when WebView2 is not already installed. Native AI runtimes, the required VC++ runtime files, and the Vulkan loader are deployed app-locally; no separate developer tools or system-wide VC++/Vulkan runtime installation is required. + +Windows release candidates are currently not Authenticode-signed. Windows may therefore show an **Unknown Publisher** or Microsoft Defender SmartScreen warning. Verify the SHA-256 checksum and Tauri updater signature published with the release before choosing **More info > Run anyway**. Managed devices using WDAC, AppLocker, or Smart App Control may block unsigned builds entirely. + **On macOS**, if you see a warning that the app "cannot be verified to be free of malware" on launch, remove the quarantine attribute after installing: ```bash @@ -43,4 +47,4 @@ sudo xattr -dr com.apple.quarantine /Applications/Typex.app ## License -Typex is licensed under GPL-3.0. See [LICENSE](LICENSE) for details. \ No newline at end of file +Typex is licensed under GPL-3.0. See [LICENSE](LICENSE) for details. diff --git a/README_ZH.md b/README_ZH.md index 89d16f4..dbb654d 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -31,6 +31,10 @@ Typex 是一款开源的桌面 AI 语音输入工具。按住快捷键说话, 前往 [GitHub Releases 页面](https://github.com/typex-ink/Typex/releases) 下载最新版本。 +Windows 版本支持 64 位 Windows 10 22H2 及以上版本和 Windows 11。NSIS 安装器使用 WebView2 Evergreen Bootstrapper;如果系统尚未安装 WebView2,安装时需要联网。本地 AI 原生运行库、所需 VC++ runtime 与 Vulkan loader 均随应用目录分发,无需另装开发工具或系统级 VC++/Vulkan runtime。 + +当前 Windows 候选构建尚未进行 Authenticode 发布者签名,因此 Windows 可能显示“未知发布者”或 Microsoft Defender SmartScreen 提示。选择“更多信息 > 仍要运行”前,请先核对随版本提供的 SHA-256 校验值和 Tauri updater 签名。启用 WDAC、AppLocker 或 Smart App Control 的受管设备可能会直接阻止未签名构建。 + **macOS 用户注意**:如果启动时提示"无法验证是否包含恶意软件",安装后运行以下命令移除隔离属性即可: ```bash @@ -43,4 +47,4 @@ sudo xattr -dr com.apple.quarantine /Applications/Typex.app ## 许可证 -Typex 基于 GPL-3.0 许可证开源,详见 [LICENSE](LICENSE)。 \ No newline at end of file +Typex 基于 GPL-3.0 许可证开源,详见 [LICENSE](LICENSE)。 diff --git a/docs/01-product-overview.md b/docs/01-product-overview.md index d36224d..5d93413 100644 --- a/docs/01-product-overview.md +++ b/docs/01-product-overview.md @@ -9,7 +9,7 @@ **Typex 是一款开源、跨平台(Windows / macOS / Linux)的 AI 语音输入软件:按住一个键说话,松开后被整理干净的文字出现在任何应用的光标处——并且能翻译你说的话、能听懂你对选中文本的指令、能随时语音提问得到回答。** -当前可用平台是 macOS;Windows 与 Linux 是接下来要适配的目标平台。产品定位仍是桌面三平台。 +当前支持 macOS 12+ 与 Windows x64(Windows 10 22H2+ / Windows 11);Linux 是下一步适配目标。产品定位仍是桌面三平台。 口号(候选): diff --git a/docs/02-features.md b/docs/02-features.md index dc52d6e..018985c 100644 --- a/docs/02-features.md +++ b/docs/02-features.md @@ -54,17 +54,19 @@ - **语言**:默认「自动检测」;可在设置中固定语言(传给 STT 的 `language` 参数,能提升准确率与速度)。 - **注入**:默认「剪贴板粘贴 + 恢复剪贴板」策略;按平台自动选择注入后端,允许高级用户切换(见 [06 代码架构 §7.5](06-code-architecture.md))。焦点应用不可写(无输入焦点)时,结果自动进入剪贴板并由 HUD 提示「已复制,Ctrl+V 粘贴」。 - **失败处理**(铁律:不丢话): + - 麦克风固定设备缺失、启动失败或录音中被拔出:录音态立即结束并进入可见失败态,释放当前音频流;修复设备后可直接重试录音,不等待用户再次按下或松开快捷键。 - 网络/服务错误:指数退避自动重试 2 次;仍失败则 HUD 显示错误与「重试」按钮,**本次录音音频保留在内存/临时目录**直至用户放弃。 - 转写结果为空(纯静音):HUD 提示「没有听到声音」,附麦克风选择快捷入口。 ### 验收标准 -1. 在微信 / Slack / VS Code / 浏览器地址栏 / 终端 中均能正确注入中英文(含标点、emoji、换行)。 +1. 受控文本输入 harness 必须正确接收中英文、标点、emoji 与换行;平台代表应用至少覆盖 macOS 原生文本控件,及 Windows 的记事本、Edge、VS Code、Windows Terminal。微信 / Slack / Word 等只作兼容抽测,不是支持声明的前置条件。 2. 5 秒中文短句:松开按键到文字上屏 P50 < 2 s(含整理环节;「原样模式」下 < 1.5 s。以 Groq/豆包极速版级别的 Provider 测量)。 3. 含语气词、重复与中途改口的口语样句,上屏结果为整理后的干净文本(测试样例集见 F-9)。 4. 断网时给出明确错误且音频不丢;恢复网络后点重试成功。 5. 15 分钟连续口述不中断、不丢内容。 6. 非美式键盘布局(如德语 QWERTZ、中文输入法激活状态)下注入内容无乱码。 +7. Windows 目标窗口无焦点或因 UIPI 处于更高完整性级别时,不尝试自动提权;结果完整复制到剪贴板并显示可操作提示。 --- @@ -145,7 +147,7 @@ ### 验收标准 -1. 在 Chrome / VS Code / Word / 备忘录中选中文本 → 口述「翻译成英文」→ 原地替换成功,**全程无弹窗**,HUD 显示完整流水线并以 ✓ 结束。 +1. 在受控 AX/UIA harness 与平台代表应用中选中文本 → 口述「翻译成英文」→ 原地替换成功,**全程无弹窗**,HUD 显示完整流水线并以 ✓ 结束;不暴露文本选区 API 的应用必须可靠降级为剪贴板读取或普通提问。 2. 选中报错日志口述「这是什么原因」→ 选区下方弹窗展示回答且**不**替换选区。 3. 无选区按住助手键提问 → 屏幕上 1/3 居中弹窗展示回答。 4. 弹窗出现后点击其他应用(焦点切走)→ 弹窗自动关闭。 @@ -189,18 +191,22 @@ ## F-5 快捷键系统 - 三个全局快捷键:**听写**、**助手**、**翻译**(默认为全修饰键三角方案:右⌘/右Ctrl、右⌥/右Alt、两键同按;详见 [05 UX 规格 §7](05-ux-spec.md))。 +- 听写与助手配置中的每个按键数组表示一个**完整 chord**,不是多个候选键:只有数组内全部物理键同时按住才触发。翻译 chord 是听写 chord 与助手 chord 的有序去重并集,因此两组自定义多键组合也必须完整按下后才进入翻译。 +- 听写与助手 chord 必须非空且互不包含(相同也属于互相包含);否则其中至少一个功能会被派生翻译 chord 遮蔽,设置界面必须阻止保存,后端也必须拒绝非法更新。读取到历史非法配置时仅把热键恢复为当前平台默认值,其他设置保持不变。 - 每个键支持「长按 push-to-talk / 短按 toggle」双模(同键自动区分,阈值 350 ms,可调)。 - 支持**单个修饰键**作为触发键(如仅「右 ⌘」「右 Alt」)——这是品类标准体验,需要底层键盘监听而非普通热键 API(实现见 [06 代码架构 §7.3](06-code-architecture.md));**组合键让路规则**保证触发键的日常组合用法(⌘C 等)零干扰。 +- 自定义普通键按物理位置记录,与当前键盘布局及输入法输出字符无关;历史版本保存的后端别名在读取时迁移到稳定 `KeyId`,界面标签仍按 macOS/Windows/Linux 惯例显示。 - 冲突检测:录制快捷键时检测与系统/常见软件的已知冲突并警告。 - Wayland 降级:无法全局监听时自动引导用户走 Portal 授权或 compositor 绑定方案(见 [06 代码架构 §8](06-code-architecture.md))。 ## F-6 托盘与常驻行为 - Typex 无主窗口,启动后驻留系统托盘/菜单栏。托盘图标反映状态:空闲 / 录音中 / 处理中 / 错误(图标规格见 [04 设计系统 §3.4](04-design-system.md))。 -- 托盘菜单:`复制上次结果`、`文本整理开关`、`翻译目标`、**`模型 ▸`(按 听写/文本整理/翻译/问答 分组列出兼容服务配置,点选即切,F-4 配置池的快速切换入口)**、`暂停 Typex`(临时禁用全局监听)、`设置…`、`主页…`、`检查更新`、`退出`。 +- 托盘菜单:`复制上次结果`、`文本整理开关`、`翻译目标`、**`模型 ▸`(按 听写/文本整理/翻译/问答 分组列出兼容服务配置,点选即切,F-4 配置池的快速切换入口)**、`暂停 Typex`(临时禁用全局监听;进入暂停时静默取消当前录音,含短按 toggle,不中断已经进入转写/处理的会话)、`设置…`、`主页…`、`检查更新`、`退出`。 - 单实例:二次启动唤起设置窗口而非新进程。 - 开机自启:默认询问(onboarding 最后一步),可随时在设置中改。 - 自动更新:内置 updater(GitHub Releases 渠道),默认开启检查、手动确认安装([ADR-11](08-decisions.md))。 +- Windows 分发为 x64 NSIS 用户安装器,WebView2 使用 Evergreen Bootstrapper;卸载默认保留设置、历史和已下载模型。Tauri updater 完整性签名与 Windows Authenticode 发布者签名相互独立。 ## F-7 历史记录与主页统计 @@ -265,5 +271,6 @@ - **问答槽不提供本地兜底**——未配置时助手指令走 HUD 失败态显示配置引导;但设置中允许用户手动选择本地 LLM 档案(性能档设备可选本地大档模型)。 - **模型管理**:不随安装包分发;应用内按需下载(HuggingFace + ModelScope 双源自动择优,校验和 + 断点续传),设置-模型服务页可删除已下载模型,并在模型管理页底部固定下载源(自动 / HuggingFace / ModelScope)。 - **运行时**:模型常驻内存或「录音开始时预热」可选;本地推理零网络请求。 +- **Windows 加速**:CPU 路径始终可用;GPU 路径统一使用 Vulkan,不维护 CUDA 专用分发矩阵。缓存必须记录模型实际加载模式,同一模型实例的推理通过独占租约串行执行,避免并发请求在 fallback 时继续持有失败的 GPU 模型。仅当模型确实以 GPU offload 加载后,运行时上下文初始化或 decode 失败时自动改用严格 CPU 参数重载并从头重试一次:模型设置 `n_gpu_layers=0` 且设备列表为空,context 禁用 K/Q/V 与算子 offload,Qwen3-ASR 的 mtmd 同时禁用 GPU;释放失败 GPU 模型后才可在缓存锁外加载 CPU。本地 LLM 只允许在 ThinkingFilter 后尚未发出首个可见 delta 时重试,已发出 delta 后明确失败且不得重放;Qwen3-ASR 为非流式,可在整次转写返回前用 CPU 完整重试一次。GGUF/音频/提示词校验、上下文过长等输入错误、无 GPU、已经 CPU 加载或 CPU 重试失败均不得继续重试。 - **零配置路径**:onboarding 第 3 步提供「使用本地模型」一键选项(显示检测到的推荐档位与体积,下载后 STT/整理/翻译功能指向本地服务配置),见 F-8。 - Provider 抽象与模型下载管理器统一承载本地 STT 与本地 LLM;本地能力与云端能力可按功能槽位混搭。 diff --git a/docs/03-model-providers.md b/docs/03-model-providers.md index 4d983be..f458d2a 100644 --- a/docs/03-model-providers.md +++ b/docs/03-model-providers.md @@ -98,6 +98,7 @@ Content-Type: application/json - **Qwen3-ASR(标准/性能档)**:llama.cpp(qwen3vl 音频架构,官方 ggml-org GGUF)跑 `Qwen3-ASR-0.6B`(Q8_0 主模型 + mmproj 约 1.0 GB)/ `Qwen3-ASR-1.7B`(Q8_0 主模型 + mmproj 约 2.5 GB,仅 GPU 加速可用时提供——纯 CPU 低于实时)。52 语言 + 22 中文方言,1.7B 为开源 ASR SOTA。**注意**:llama.cpp 音频支持仍标 experimental、长音频有已知 bug——所有音频先过 VAD 切片成短分段再转写(本来就是 F-1 的路径),规避该问题。 - Qwen3-ASR 的 llama.cpp / OpenAI-compatible 网关输出可能带 `language Chinese...` 包装;Provider 层必须剥离 `language ...` 前缀、把语言填入 `Transcript.detected_language`,不得把包装文本传给 orchestrator / 前端 / 注入层。 + - 缓存条目记录 GPU/CPU load mode,同一缓存的转写通过独占 inference lease 串行执行。仅 GPU-loaded 条目的不透明 mtmd 初始化错误或 context/eval/decode 运行错误触发一次完整 CPU 重载,并用同一音频与词典从头重试;CPU 模型设备列表为空,context offload 与 mtmd GPU 均关闭。fallback 先释放失败 GPU 代际,再在缓存锁外加载 CPU;WAV/GGUF/mmproj 预校验、明确的 `support_audio=false`、prompt/tokenize 等输入或模型契约错误不重试,显式 unload 后不得把重试模型重新写回缓存。 - **SenseVoice(轻量档)**:sherpa-onnx(官方 Rust crate,静态链接)+ `SenseVoice-Small int8`(约 230 MB)。非自回归,CPU 实时数倍速——弱机器上唯一保证实时的选项;自带 VAD 可复用。F-10 词典经 sherpa hotwords 接口传入。 - **Whisper large-v3(高配精度档)**:sherpa-onnx Whisper 导出(encoder/decoder int8 + tokens,约 1.8 GB)。质量和语言覆盖优先,CPU 推理通常低于实时,只作为设置页手动下载/选择的高精度 STT,不参与零配置推荐档。 - whisper.cpp 降为可选扩展(当前 Whisper large-v3 先走 sherpa-onnx;large-v3-turbo / Parakeet / Moonshine 等需新增运行时或稳定导出后再进入清单)。 @@ -157,7 +158,7 @@ SSE 事件流:处理 `response.output_text.delta`(增量文本)、`respons - **引擎**:llama.cpp(`llama-cpp-2` 绑定——GGUF 生态最全,Apple Silicon Metal 加速成熟;与本地 STT 的 Qwen3-ASR 共用同一引擎,[ADR-22](08-decisions.md))。 - **模型**:Qwen3.5 小模型系列 instruct GGUF(0.8B / 2B / 4B / 9B,Q4_K_M)按硬件档位/设置页下载;高配用户可手动下载 Qwen3 14B / 30B-A3B / 32B Q4_K_M。Apache 2.0,多语言,中文分词效率高。 - **槽位策略**:本地 LLM 可绑定到「文本整理」「翻译模型」「问答模型」槽;零配置路径只自动指向整理/翻译,问答槽默认仍为空并显示配置引导。性能档设备可在设置中手动把问答槽指向本地 4B–32B 级模型([ADR-22](08-decisions.md))。 -- **运行时策略**:模型常驻内存或「录音开始时预热」(设置可选);冷加载约 1–3 s。上下文窗口按需 4 K 即可(整理/翻译都是短输入)。 +- **运行时策略**:模型常驻内存或「录音开始时预热」(设置可选);冷加载约 1–3 s。上下文窗口按需 4 K 即可(整理/翻译都是短输入)。缓存记录 GPU/CPU load mode;同一缓存的推理由独占租约串行执行。仅 GPU-loaded 模型在 context 初始化或 decode 失败、且 ThinkingFilter 后尚未向调用方发出首个可见 delta 时,允许严格关闭模型设备、K/Q/V 与算子 offload 后从头 CPU 重试一次。fallback 必须先从缓存移除并释放失败 GPU 代际,再在缓存锁外加载 CPU;显式 unload 与 CPU 加载竞态时本次请求使用 detached CPU 模型,不得回填过时代际。首个可见 delta 发出后发生错误时不得重放,直接返回明确错误;prompt/tokenize/上下文长度等输入错误、无 GPU、CPU-loaded 模型和 CPU 重试错误不再重试。`UnloadAfterUse` 只清理自己持有的缓存代际。 - **思考模式**:本地 Qwen LLM 仅支持开关语义。`profiles[].options.reasoning_effort=none` 或缺省时视为关闭,其他 effort 等级视为开启;旧配置 `profiles[].options.enable_thinking=true` 继续等价于开启。Provider 在最后一条用户消息末尾注入 `/think` 或 `/no_think` 控制词。即便模型仍输出 `...`,Provider 层也会在流式 delta 进入 orchestrator 前过滤。 - `capabilities()`:流式 = 是;错误分类只剩 `InvalidRequest`/模型未下载/内存不足。 @@ -330,7 +331,7 @@ F-3 不引入新的 Provider 类型: ```jsonc { - "schema_version": 4, + "schema_version": 6, "dictionary": { "terms": ["Typex", "OpenAI", "Qwen3-ASR"] }, @@ -339,6 +340,12 @@ F-3 不引入新的 Provider 类型: "check_updates": true, "update_channel": "stable" // stable = 正式版 release;nightly = 最新 nightly build }, + "hotkeys": { + "dictation": ["ControlRight"], // 一个完整 chord,稳定物理 KeyId + "assistant": ["AltRight"], + "translation": ["ControlRight", "AltRight"], // 前两组的派生有序并集 + "hold_threshold_ms": 350 + }, "slots": { "stt": { "active_profile": "groq-fast" }, "polish": { "active_profile": "deepseek" }, // 文本整理 diff --git a/docs/04-design-system.md b/docs/04-design-system.md index 5129470..713f672 100644 --- a/docs/04-design-system.md +++ b/docs/04-design-system.md @@ -59,7 +59,7 @@ ### 2.4 托盘 / 菜单栏图标(状态系统) -托盘图标 = 去掉竖笔的**五柱波形 glyph**(小尺寸下比完整 T 清晰)。macOS 用 template image(系统自动适配深浅/高亮),Windows/Linux 提供深浅两套。 +托盘图标 = 去掉竖笔的**五柱波形 glyph**(小尺寸下比完整 T 清晰)。macOS 用 template image(系统自动适配深浅/高亮);Windows/Linux 提供深浅两套,Windows 启动时及系统主题变化后重新选择高对比资源,不依赖 macOS template 语义。 | 状态 | 表现 | |---|---| diff --git a/docs/05-ux-spec.md b/docs/05-ux-spec.md index 44af113..4987715 100644 --- a/docs/05-ux-spec.md +++ b/docs/05-ux-spec.md @@ -37,6 +37,8 @@ ``` - 左键点击托盘 = 打开主页;右键 = 菜单(macOS 均为菜单,符合平台惯例)。 +- 选择「暂停 Typex」立即禁用全局触发,并静默取消当前录音(含短按 toggle);已进入转写/处理的会话继续完成。恢复后只接受新的完整按键手势,不沿用暂停前的 held 状态。 +- Windows 低级键盘钩子在运行期失效时,立即静默取消当前录音并把托盘状态改为 `⚠ 快捷键不可用`;同一终态不得重复取消或反复提示。应用主动退出导致的正常 hook shutdown 不显示错误。 ## 3. HUD(核心界面) @@ -98,7 +100,7 @@ hidden ─按键按下─▶ recording ─松开─▶ processing ─▶ success ### 4.1 形态 -优先显示在选中文本下方(放不下时上方),选区位置不可得或无选区时回退到屏幕上 1/3 居中;宽 560px,高度随内容收缩/展开(透明区域不得拦截点击),大小不可手动调整,圆角 16,毛玻璃 + 边框;禁用系统原生窗口阴影与外扩 CSS 阴影;显示时获得焦点;**失焦(焦点切到其他应用)自动关闭**,无固定(📌)选项。 +优先显示在选中文本下方(放不下时上方),选区位置不可得或无选区时回退到屏幕上 1/3 居中;宽 560px,高度随内容收缩/展开(透明区域不得拦截点击),大小不可手动调整,圆角 16,毛玻璃 + 边框;禁用系统原生窗口阴影与外扩 CSS 阴影;显示时获得焦点;**失焦(焦点切到其他应用)自动关闭**,无固定(📌)选项。Windows 使用前台窗口所在显示器的 work area 和每显示器 DPI 计算位置,必须支持负坐标副屏。 ### 4.2 布局 @@ -117,7 +119,7 @@ hidden ─按键按下─▶ recording ─松开─▶ processing ─▶ success ### 4.3 行为 - **单轮语义**:每次提问独立(不携带上一问);新提问重置弹窗内容;无会话列表、无历史线程、无动作按钮。 -- **上下文读取**:松开助手键(录音结束、转写开始)时读取当前选中文本——不能在按住期间读,剪贴板降级的模拟 Cmd+C 会触发组合键让路误取消会话([06 §7.6](06-code-architecture.md));macOS 剪贴板降级使用固定 CGEvent 键码,不经输入法布局查询。 +- **上下文读取**:松开助手键(录音结束、转写开始)时读取当前选中文本——不能在按住期间读,剪贴板降级的模拟 Cmd+C 会触发组合键让路误取消会话([06 §7.6](06-code-architecture.md));macOS 剪贴板降级使用固定 CGEvent 键码,不经输入法布局查询。Windows 优先使用 UIA 的明确空/非空结果;仅在 Ctrl+C 降级时读取已知编辑器的空选区元数据,VS Code/Monaco 的 `vscode-editor-data` 必须是 `version=1` 且 `isFromEmptySelection=true` 才按无选区处理。缺失、损坏或未知元数据不得用文本长度/换行启发式丢弃内容;没有可靠 marker 的第三方编辑器若把无选区 Ctrl+C 定义为复制整行,仍可能被当作选区,这是明确的兼容性残余。 - **弹出时机**:无选区 → 转写完成、LLM 请求发出即弹窗并流式渲染;有选区 → 流首部确认为回答型(`ANSWER:` 信号,见 [03 §3.4](03-model-providers.md))的那一刻才弹窗——改写型结果全程不弹窗(直接替换选区,反馈走 HUD)。 - **关闭**:右上角 ✕ / `Esc` / 焦点切换到其他应用。 - 流式渲染节流 30 fps;渲染 Markdown(标题/列表/代码块),链接点击用系统浏览器打开;回答文本可直接选中复制(`⌘/Ctrl+C`)。 @@ -155,17 +157,18 @@ hidden ─按键按下─▶ recording ─松开─▶ processing ─▶ success - 密钥输入用 `SecretInput`(默认掩码、可见性切换、粘贴按钮);保存后随 profile 写入 `settings.json` 的 `credentials` 字段,诊断包与日志必须脱敏。 - 「测试」按钮内联显示结果:成功显示 `✓ 320ms` 延迟徽标;失败时测试按钮自身变为红色「测试失败」,完整分类错误与上游报错只在悬停/键盘聚焦时显示,避免长错误文案挤压卡片布局。 - **本地 Provider 卡片**:预设列表含「本地 · 离线」;卡片副标题显示引擎与模型(如 `local · Qwen3.5-2B`)及模型状态(`已下载 · 1.3 GB` / `未下载 [下载]`,下载中显示进度条);无密钥字段,编辑态字段 = 模型(下拉,来自模型库)+ 加载策略(常驻 / 录音时预热);「测试」= 本地跑一次内置样音/ping。问答槽允许手动选择本地 LLM,但不参与零配置自动兜底([ADR-20](08-decisions.md))。 -- **已下载模型管理**(页面底部「管理…」进入):已下载列表(名称 · 用途 · 体积 · 来源 · 许可证 · 被哪些槽使用 · 删除,删除使用中模型先警告)+「导入模型」入口(选择本地 GGUF/ONNX/tokens 文件,托管导入到 Typex 模型目录)+ 模型库可下载列表(行内显示硬件要求与本机检测结果,如「需 GPU 加速(本机 ✓ Metal)」,[ADR-22](08-decisions.md))+ 底部占用合计与下载源切换(自动 / HuggingFace / ModelScope)。下载中进度条旁显示已下载 / 总量。 +- **已下载模型管理**(页面底部「管理…」进入):已下载列表(名称 · 用途 · 体积 · 来源 · 许可证 · 被哪些槽使用 · 删除,删除使用中模型先警告)+「导入模型」入口(选择本地 GGUF/ONNX/tokens 文件,托管导入到 Typex 模型目录)+ 模型库可下载列表(行内显示硬件要求与本机检测结果,如「需 GPU 加速(本机 ✓ Metal/Vulkan)」,[ADR-22](08-decisions.md))+ 底部占用合计与下载源切换(自动 / HuggingFace / ModelScope)。下载中进度条旁显示已下载 / 总量。 - 共用连接不再需要单独开关:多个 LLM 功能选择同一个池中服务配置,即表示共用连接。 ### 5.2 其他页要点 - **通用**:语言(跟随系统/中/英)、主题(跟随系统/亮/暗)、开机自启、提示音开关与音量、网络代理(跟随系统/手动/直连)、更新通道(稳定版 = 正式 release;开发版/Nightly = 最新 nightly build)。 -- **听写**:文本整理开关、整理提示词(高级,折叠;展开为模板编辑器——占位符 `{transcript}`(原始转写,必需)/`{dictionary}`(个人词典,可选)/`{target_app}`(目标应用,可选)高亮显示,缺必需占位符时禁用保存并行内报错,「恢复默认」回内置模板;占位符规格见 [03 §3.4](03-model-providers.md))、注入方式(自动/剪贴板粘贴/逐字输入)、粘贴延迟滑杆、麦克风设备选择 + 电平实时预览条。文本整理默认开启;关闭后听写、翻译、助手都直通原始 STT 文本,不经过整理层。 +- **听写**:文本整理开关、整理提示词(高级,折叠;展开为模板编辑器——占位符 `{transcript}`(原始转写,必需)/`{dictionary}`(个人词典,可选)/`{target_app}`(目标应用,可选)高亮显示,缺必需占位符时禁用保存并行内报错,「恢复默认」回内置模板;占位符规格见 [03 §3.4](03-model-providers.md))、注入方式(自动/剪贴板粘贴/逐字输入)、粘贴延迟滑杆、麦克风设备选择 + 电平实时预览条。设备下拉显示用户可读名称,但保存稳定设备 ID;已固定设备缺失或旧名称无法唯一迁移时保留失效项并明确标为不可用,不得伪装成系统默认。文本整理默认开启;关闭后听写、翻译、助手都直通原始 STT 文本,不经过整理层。 - **翻译**:源语言(你说话使用的语言)、目标语言(要翻译成的语言)、双向翻译开关(检测到说的是目标语言时自动译回源语言)、翻译提示词(高级,折叠,置底;模板编辑器同听写,占位符 `{transcript}`/`{source_language}`/`{target_language}`/`{target_app}`)。 - **助手**:选区处理提示词与问答提示词(高级,均折叠;可单独展开,未编辑的另一项仍显示入口;模板编辑器同听写)。选区处理模板占位符 `{selection}`(选中文本,必需)/`{instruction}`(语音指令,必需)/`{target_app}`(目标应用,可选),问答模板占位符 `{instruction}`(语音指令,必需)/`{selection}`(选中文本,可选)/`{target_app}`(目标应用,可选)。 - **历史**:开关(默认开,附一句说明:仅存本机、不含音频)、保留期限(默认 90 天)、清空按钮。 - **诊断**:环境自检(平台/compositor/可用注入后端/权限状态,每项 ✓/✗ + 修复引导按钮)、日志目录、导出诊断包(自动脱敏)。 +- **Windows 诊断**:额外显示低级键盘钩子、SendInput、UI Automation、WebView2、当前进程完整性级别与本地模型 CPU/Vulkan 状态;只显示能力与错误分类,不暴露 HWND、窗口标题全文或选区内容。 - **调试**:开发/测试入口;提供「重新进入引导页」按钮,用于手动打开首次启动引导流程,不修改 `onboarding_done` 状态。 - **关于**:图标、Typex logotype、版本号、许可证、官网、隐私口号、检查更新、开源许可入口。点击「开源许可」用系统浏览器打开 GitHub 仓库 `LICENSE`;点击官网链接打开 `typex.ink`。检查更新发现新版本后只展示确认卡片,下载安装必须由用户主动点击确认。 @@ -195,16 +198,19 @@ macOS 权限卡片:麦克风、辅助功能(注入+读选区)、输入监 设计逻辑:**只用修饰键,不碰任何普通键**。修饰键「单独按住」在几乎所有软件里是空操作,右侧修饰键又极少参与日常组合键——这是冲突概率最低的一类键位;三键有记忆结构(A=输入,B=问答,A+B=输入的变体:翻译)。 -**乐观启动与模式判定**:任一触发键按下即开始录音;350 ms 判定窗口内组合出另一个触发键 → 无缝切换为翻译模式(音频保留、HUD 徽标即时变化);录音中追加按下另一键同样即时升级为翻译。 +**乐观启动与模式判定**:任一已确认触发手势开始录音;350 ms 判定窗口内组合出另一个触发键 → 无缝切换为翻译模式(音频保留、HUD 徽标即时变化);录音中追加按下另一键同样即时升级为翻译。Windows 默认右 Ctrl / 右 Alt 单键先经过最多 75 ms 的静默确认窗口:窗口内出现普通键则不产生录音、HUD 或提示音,出现第二触发键则立即确认并升级;单键确认后的 HUD 仍须满足按下到可见 ≤ 100 ms。 + +**自定义 chord 语义**:`HotkeyRecorder` 为听写和助手各保存一个完整 chord;数组内全部键按住后才算手势开始,partial chord 不启动录音。翻译键位由两组 chord 的有序去重并集自动派生,不单独编辑。两组 chord 必须非空且互不包含;相同或任一为另一子集会让功能被翻译手势遮蔽,界面就地显示校验提示并阻止保存。手势一旦开始,追加另一功能的完整 chord 可升级为翻译;随后沿用既有 release 语义,等本次 tracked 触发键全部释放才结束。录制普通键时按物理位置保存稳定 `KeyId`,换 QWERTZ 等布局或切换输入法不会把同一位置变成另一绑定,展示标签仍按当前平台惯例本地化。 **配套规则(实现必须遵守,见 [06 §7.3](06-code-architecture.md))**: -1. **组合键让路**:按住触发键期间若按下任何**普通键**(用户实际在用 `⌘C`、`AltGr+E` 等系统/输入组合键),立即静默取消本次录音并完全放行按键——右⌘/右Alt 的日常用法零干扰。这条规则是单修饰键触发可行性的根基。 +1. **组合键让路**:按住触发键期间若按下任何**普通键**(用户实际在用 `⌘C`、`Ctrl+C`、`AltGr+E` 等系统/输入组合键),立即静默让路并完全放行按键。Windows 在 75 ms 确认窗口内不得先触发录音、HUD 或提示音;确认窗口后已经启动的录音则立即静默取消。这条规则是单修饰键触发可行性的根基。 2. **Windows Alt 单击吞键**:单击 Alt 会聚焦应用菜单栏,助手键短按(切换录音)时须经低级键盘钩子吞掉该次 keyup,防止菜单栏被误激活(仅此一处需要事件拦截,比拦截 `Ctrl+Space` 类组合简单得多)。 3. AltGr 布局(欧洲键盘):右 Alt 物理键即 AltGr——规则 1 已保证 `AltGr+字母` 打特殊字符不受影响;单独按住 AltGr 说话无副作用。 4. **漏 release 自恢复**:底层监听偶发漏掉触发键 release 时,下一次同触发键 down 不得永久静默;判定器应在短暂抖动窗口后重置旧状态并重新触发,最多丢弃上一段卡住的录音,不让快捷键进入“按了没反应”的持久状态。 +5. Windows 低级钩子必须忽略 Typex 自己通过 SendInput 注入的事件;`Right Ctrl+C`、物理 `Right Alt+普通键` 与典型 AltGr 原始序列(伪 `Left Ctrl` + `Right Alt`)在确认窗口内产生普通键时,不得产生任何 HUD、提示音或录音副作用。 -**已知残余情况**(onboarding 第 4 步当场改键兜底):MacBook 内置键盘无右 Ctrl(故 macOS 用右 ⌘);用户用 Karabiner/PowerToys 重映射过右侧修饰键;HHKB 等无右修饰键的小配列键盘。`HotkeyRecorder` 支持单修饰键、修饰键组合与普通键,录制时对系统热键表与常见软件冲突黄条警告;另提供预设建议:CapsLock(提示 macOS 中文用户注意中英切换冲突)、F13–F19、右键菜单键(仅 Win/Linux)。 +**已知残余情况**(onboarding 第 4 步当场改键兜底):MacBook 内置键盘无右 Ctrl(故 macOS 用右 ⌘);用户用 Karabiner/PowerToys 重映射过右侧修饰键;HHKB 等无右修饰键的小配列键盘。`HotkeyRecorder` 支持单修饰键、修饰键组合与普通键,录制时对系统热键表与常见软件冲突黄条警告;另提供预设建议:CapsLock(提示 macOS 中文用户注意中英切换冲突)、F13–F19、右键菜单键(仅 Win/Linux)。历史配置中的 `Return`/`Num1`/`LeftArrow`/`AltGr` 等后端名只作为迁移别名接受,新录制值统一保存为稳定 `KeyId`。 ### 7.2 回答弹窗内快捷键 @@ -250,6 +256,7 @@ macOS 权限卡片:麦克风、辅助功能(注入+读选区)、输入监 | NoSpeech | `没有听到声音` | [选择麦克风] | | NoFocus | `当前没有输入焦点,结果已复制` | — | | PermissionMissing | `缺少辅助功能权限,无法输入文字` | [去授权] | +| InjectionBlocked | `目标应用权限更高,结果已复制,请手动粘贴` | — | 所有失败路径必须保住已有产物:STT 成功后任何失败 → `复制原文` 兜底;注入失败 → 自动转剪贴板 + 明示。 diff --git a/docs/06-code-architecture.md b/docs/06-code-architecture.md index 2562b07..fb39515 100644 --- a/docs/06-code-architecture.md +++ b/docs/06-code-architecture.md @@ -25,7 +25,7 @@ IPC 使用 **tauri-specta** 自动生成 TS 类型绑定,杜绝前后端接口 | 用途 | crate | 备注 | |---|---|---| -| 全局按键监听(push-to-talk) | `rdev`(mac/win/X11)+ `ashpd`(Wayland Portal)| Handy 同款路线;支持单修饰键按住 | +| 全局按键监听(push-to-talk) | `rdev`(mac/X11)+ 原生 Win32 `WH_KEYBOARD_LL` + `ashpd`(Wayland Portal)| Windows 需要选择性吞右 Alt keyup、识别 AltGr 与注入事件,因此不用 rdev 监听后端 | | 录音 | `cpal` | 事实标准 | | 重采样 | `rubato` | 设备原生采样率 → 16 kHz mono | | VAD | `vad-rs`(Silero) | 静音裁剪 + 长录音切片边界 | @@ -39,8 +39,9 @@ IPC 使用 **tauri-specta** 自动生成 TS 类型绑定,杜绝前后端接口 | 本地数据 | `rusqlite`(历史)+ `tauri-plugin-store`(设置) | | | macOS 权限 | `tauri-plugin-macos-permissions` + `macos-accessibility-client` | 检测 + 引导跳转 | | 应用基建 | `tauri-plugin-single-instance` / `-autostart` / `-updater` / `-global-shortcut`(备用);托盘内置 | 全官方插件 | +| Windows 系统 API | target-specific `windows` crate | 最小 feature 集;`unsafe` 集中在 `platform/windows.rs` 与对应平台 backend 边界 | | Linux HUD | `gtk-layer-shell`(经 `gtk_window()` 句柄) | Handy 验证过的方案 | -| 本地推理([ADR-20](08-decisions.md)/[ADR-22](08-decisions.md)) | LLM+Qwen3-ASR:`llama-cpp-2`;SenseVoice/Whisper STT:`sherpa-onnx`(官方 crate,静态链接);硬件探测:`sysinfo` | feature flag `local-models` 集中管理,可 `--no-default-features` 裁剪;推荐档按硬件下载,高配模型手动选择([03 §8](03-model-providers.md));whisper.cpp 降为可选扩展 | +| 本地推理([ADR-20](08-decisions.md)/[ADR-22](08-decisions.md)) | LLM+Qwen3-ASR:`llama-cpp-2`;SenseVoice/Whisper STT:`sherpa-onnx`;硬件探测:`sysinfo` | feature flag `local-models` 集中管理,可 `--no-default-features` 裁剪;`llama-cpp-2` target-gate 为 macOS Metal / Windows Vulkan / 其他 CPU;GPU-loaded 模型仅在运行初始化/decode 错误且尚可安全重放时回退一次 CPU;Windows 的 sherpa/ONNX、Vulkan loader 与 MSVC runtime 采用安装目录内 app-local 部署;推荐档按硬件下载,高配模型手动选择([03 §8](03-model-providers.md)) | ## 2. 进程与窗口模型 @@ -151,6 +152,7 @@ typex/ │ ├── types/ # 跨层共享类型(serde + specta derive) │ │ ├── session.rs # SessionSnapshot, SessionMode, SessionPhase… │ │ ├── profile.rs # ProviderProfile, SlotKind… +│ │ ├── hotkey.rs # 稳定 KeyId 规范、别名迁移与 chord 归一化 │ │ └── diagnostics.rs │ ├── error.rs # TypexError 顶层错误 + 用户可见错误码(§5.4) │ └── logging.rs # tracing 初始化 + redact 层 @@ -207,9 +209,11 @@ pub enum SessionPhase { |---|---|---| | Tauri 主线程 | 事件循环 | 窗口/托盘/菜单(部分平台 API 要求主线程) | | tokio runtime | Tauri 自带 | orchestrator 执行器、全部 provider HTTP、settings/history IO | -| hotkey 线程 | `std::thread`(rdev 阻塞监听) | 键盘事件 → 判定逻辑 → `mpsc` 发给 orchestrator | +| hotkey 线程 | `std::thread`(mac/X11 为 rdev;Windows 为 Win32 消息循环) | 键盘事件 → 判定逻辑 → `mpsc` 发给 orchestrator;Windows 安装/卸载 `WH_KEYBOARD_LL` | +| UIA 线程(Windows) | 专用 COM STA/MTA worker | 初始化 COM、执行 `TextPattern.GetSelection` 与 bounds 查询;请求有超时且不阻塞 Tauri 主线程 | | cpal 回调线程 | 音频驱动回调 | **只做** ring buffer 写入(实时线程禁止分配/锁/日志) | | audio worker 线程 | `std::thread` | 从 ring buffer 取样 → 重采样/电平/VAD → 电平事件节流 50ms 发前端 | +| 本地推理 worker | LLM 使用专属 `std::thread`;ASR 使用 `spawn_blocking` | 每个模型缓存用独占 inference lease 串行推理;条目携带 GPU/CPU load mode 与代际;GPU runtime fallback 先释放失败代际,再在缓存锁外以无设备、无 context/mtmd offload 的严格 CPU 参数加载,LLM 在首个可见 delta 前、ASR 在非流式返回前最多从头重试一次 | 跨线程通信统一 `tokio::sync::mpsc`(service → orchestrator)与 `watch`(配置广播);hotkey/audio 线程持有的发送端是它们与外界的唯一接口。 @@ -245,11 +249,11 @@ pub enum SessionPhase { ### 7.1 平台适配矩阵(总览) -当前可用平台是 macOS;Windows 与 Linux 是接下来要适配的目标平台。下表同时作为目标方案与验收边界,不表示所有平台后端已经落地。 +当前支持 macOS 与 Windows;Linux 是下一步适配目标。Windows 首发边界为 `x86_64-pc-windows-msvc`、Windows 10 22H2+ 与 Windows 11。 | 能力 | macOS | Windows | Linux X11 | Linux Wayland | |---|---|---|---|---| -| 全局按住说话 | rdev(需辅助功能/输入监听权限) | rdev(WH_KEYBOARD_LL) | rdev(XTEST/XRecord) | Portal GlobalShortcuts(ashpd);evdev 兜底 | +| 全局按住说话 | rdev(需辅助功能/输入监听权限) | 原生 `WH_KEYBOARD_LL` 消息循环 | rdev(XTEST/XRecord) | Portal GlobalShortcuts(ashpd);evdev 兜底 | | 文本注入 | 剪贴板 + CGEvent Cmd+V | 剪贴板 + SendInput Ctrl+V | 剪贴板 + XTEST Ctrl+V | wtype(wlroots 系)/ ydotool·dotool(GNOME/KDE)/ 仅复制降级 | | 读选中文本 | AX API → 静音 Cmd+C 降级 | UIA TextPattern → Ctrl+C 降级 | primary selection | primary selection(部分可用)→ 仅手动粘贴降级 | | HUD 置顶浮窗 | NSPanel(不抢焦点) | 原生支持 | 原生支持 | gtk-layer-shell(GNOME 不支持 → 降级为托盘状态) | @@ -263,25 +267,37 @@ pub enum SessionPhase { 4. **HUD 抢焦点会毁掉注入**:macOS 必须 NSPanel + nonactivating style;其他平台设置不可聚焦标志。 5. **逐字模拟键入在非美式布局/输入法激活时乱码** → 默认剪贴板粘贴路径;粘贴前 60 ms 级可调延迟(部分慢应用需要)。 6. **X11 组合键 release 事件顺序 bug**(global-hotkey#39)→ 用 rdev 自维护按键状态,不依赖热键 API 的 release。 -7. **Windows UIPI**:目标窗口是管理员进程时 SendInput 被拦截 → 检测失败并提示(或建议以管理员运行)。 +7. **Windows UIPI**:目标窗口是更高完整性进程时 SendInput 被拦截 → 预先比较完整性级别并检查发送计数;失败后把完整结果留在剪贴板并提示手动粘贴。Typex 不自动提权,也不建议长期以管理员身份运行。 8. **webkit2gtk**:NVIDIA 驱动下白屏/崩溃 → 启动时探测并自动注入 `WEBKIT_DISABLE_DMABUF_RENDERER=1`;仅支持 webkit2gtk-4.1 的发行版(Ubuntu 22.04+)。 9. **剪贴板恢复不保真**(arboard 仅文本/图片)→ 设置页明示;与剪贴板管理器可能互相干扰记录中间内容。 +10. **Windows 混合 DPI 与负坐标**:HUD/回答窗定位统一以目标 HWND 的 monitor work area 为源,在物理/逻辑坐标边界显式换算;禁止用 HUD 自身 monitor 推断目标屏幕。 +11. **Windows 原生运行库不能依赖开发机环境**:默认 feature 的 EXE 硬链接 sherpa/ONNX、MSVC C++/OpenMP runtime 与 Vulkan loader;NSIS 必须把四个 sherpa/ONNX DLL、`msvcp140.dll`、`vcruntime140.dll`、`vcruntime140_1.dll`、`vcomp140.dll` 和 `vulkan-1.dll` 放在 EXE 同目录。Vulkan loader 存在但没有可用 ICD/GPU 时直接加载 CPU 模型;GPU 模型已加载后的 context/decode 错误仅在无可见输出时从头 CPU 重试一次。不得因缺少 loader 在进程装载阶段退出,也不得在 LLM 已流式输出后重放造成重复文本。 ### 7.3 快捷键(push-to-talk 细节) -- 不用 `tauri-plugin-global-shortcut` 作为主路径(无法监听单个修饰键;X11 release 有 bug),改用 **rdev 独立线程**自维护 down/up 状态——默认键位为全修饰键三角方案(右⌘/右⌥ 及其组合,见 [05 §7.1](05-ux-spec.md)),必须支持单修饰键触发。 -- **组合键让路规则(核心)**:触发键按住期间收到任何**普通键** down 事件 → 判定用户在使用系统组合键(`⌘C`、`AltGr+E` 等),立即静默取消本次录音、不产生任何输出、按键完全放行。监听是 listen-only,普通键本来就不被拦截,此规则只是状态机层面的取消逻辑。 +- 不用 `tauri-plugin-global-shortcut` 作为主路径(无法监听单个修饰键;X11 release 有 bug)。macOS/X11 用 **rdev 独立线程**,Windows 用 `WH_KEYBOARD_LL` + 消息循环;两者都把归一化事件送入同一个纯判定器维护 down/up 状态——默认键位为全修饰键三角方案(见 [05 §7.1](05-ux-spec.md)),必须支持单修饰键触发。 +- **稳定 `KeyId` 契约**:持久化名称以物理 `KeyboardEvent.code` 为主,至少包括 `Enter`、`Digit0..9`、`ArrowLeft/Right/Up/Down`、`AltLeft/AltRight`、`MetaLeft/MetaRight`、`Menu`、`F1..F19`、`KeyA..Z`、`Semicolon`/`Period`/`Backquote`/`BracketLeft`/`BracketRight`/`Backslash` 与 `Numpad*`。`Menu` 是对浏览器 `ContextMenu` 的稳定例外。前端 code、rdev `Key` 与 Win32 VK/scan 必须在各自 adapter 显式映射,禁止把 crate `Debug` 文本当持久化协议。`Return`→`Enter`、`Num1`→`Digit1`、`LeftArrow`→`ArrowLeft`、`AltGr`→`AltRight`、`Alt`→`AltLeft`、`ContextMenu`→`Menu`、`SemiColon`→`Semicolon`、`Dot`→`Period`、`Kp*`→`Numpad*` 等旧名仅作读取/迁移别名。 +- 字母、数字行与标点是**物理位置语义**:浏览器读取 `KeyboardEvent.code`,Windows 普通键优先按低级 hook 的 set-1 scan code 解码(VK 只作 scan 缺失时的后备),rdev 使用其物理 `Key` variant。不得用 `KeyboardEvent.key`、当前布局产生的字符或输入法结果作为绑定 ID。 +- 听写与助手的 `Vec` 各表示一个完整 chord;判定器持有全局 physical-held 集合,只有某 chord 全部 held 才发 `TriggerDown`。翻译 chord 是两功能 chord 的有序去重并集;已启动的听写/助手手势在该并集完整时发 `ModeUpgraded(Translation)`。partial chord 从未启动时,全释放不得误发 `TriggerUp`;手势已启动后仍等本次 tracked 触发键全部释放才发一次 `TriggerUp`。 +- 听写与助手 chord 必须非空且互不为子集;相同 chord 也按不可达配置处理。前端在 IPC 前阻止,`SettingsService::update` 再以 `InvalidRequest` 拒绝;启动读取到历史非法值时只恢复 `HotkeySettings::default()` 并写无键值 warning,其他设置不得丢失。 +- **组合键让路规则(核心)**:触发键按住期间收到任何**普通键** down 事件 → 判定用户在使用系统组合键(`⌘C`、`Ctrl+C`、`AltGr+E` 等),立即静默让路、不产生任何输出、按键完全放行。Windows adapter 对默认右 Ctrl / 右 Alt 的 `TriggerDown` 语义最多暂存 75 ms,但立即把物理 down 送入纯判定器维护 held/yielded:窗口内普通键会同时丢弃候选 `TriggerDown` 与对应 `Yielded`,因此 orchestrator 从未启动录音;双触发键则立即提交候选并发送模式升级。原始 down 时间戳必须保留用于 350 ms 长短按判定。 - **漏 release 自恢复**:rdev/CGEventTap 偶发漏掉触发键 release 时,`HotkeyDetector` 会残留 held 状态。修饰键正常不会自动连发,因此同一触发键在 250 ms 抖动窗口后再次 down 视为上一轮 release 丢失:旧 held 状态重置,必要时向状态机发 `Yielded` 取消卡住的录音,再发新的 `TriggerDown`,保证下一次按键恢复响应。 +- **配置热更新边界**:settings 桥接只广播归一化后确实变化的 `HotkeyConfig`,判定器和 Windows adapter 仍须对相同配置幂等。听写/助手 chord 改绑时若旧 chord 已触发,backend 必须先发送一次配对 `TriggerUp` 再替换配置;旧物理键随后到达的 release 只用于清理,不得再次结束会话。partial chord 从未触发则直接清空且不产生语义事件;Windows 75 ms 内尚未提交的候选必须成对提交 `TriggerDown + TriggerUp` 或成对丢弃,禁止只发一侧。已确认的 Windows 右 Alt 手势在改绑后保留一次性 release tombstone,只吞对应的下一次物理 RAlt keyup;AltGr、让路和未配置路径不得设置该 tombstone。 - **唯一需要事件拦截的点**:Windows 上单击 Alt 会聚焦菜单栏——助手键(右 Alt)短按时用低级钩子 `WH_KEYBOARD_LL` 吞掉对应 keyup。macOS/Linux 的修饰键单按无系统副作用,无需拦截。启动时自检钩子可用性,失败降级为「监听不拦截」+ UI 提示改键。 -- 长按/短按判定:press 后 350 ms 内 release = toggle(三种模式一致,含助手);超过 = push-to-talk(release 即停止)。**乐观启动**:触发键按下即开始录音,判定窗口内组合出第二触发键则无缝切换为翻译模式,音频保留。 +- Windows 事件解码必须区分 `VK_RCONTROL`、`VK_RMENU`、扩展键与 `LLKHF_INJECTED`;Typex 自己的 SendInput 事件不得反向触发会话。右 Ctrl / Ctrl+C、物理右 Alt / 普通键和 AltGr 常见的伪 `Left Ctrl` + `Right Alt` 序列必须经过同一 75 ms 副作用确认边界;只有已确认的右 Alt 助手/翻译手势可以吞对应 keyup。 +- Windows hook 的 health watch 是运行期安全信号而不只是诊断查询:从 Healthy 进入 `Failed` 或意外 `Stopped` 时,runner 必须只发送一次会话 `Cancel` 并刷新托盘为「快捷键不可用」,防止漏掉 TriggerUp 后持续占用麦克风。callback panic 或事件通道关闭进入 `Failed` 时,hook state 必须原子禁止后续 raw event、退出消息循环并卸钩,且该 `Failed` 不得在 `WM_QUIT` 收尾时被覆盖为 `Stopped`。启动失败走同一个可订阅 health 状态;应用主动退出使用独立的正常 `Shutdown` 终态,不取消、不报错。 +- rdev backend 必须观察暂停 watch 的版本变化而不只读取最终布尔值;任一暂停/恢复 transition 都先清空 detector held 状态,暂停期间到达的 release 不得在恢复后留下 stale gesture。 +- 长按/短按判定:press 后 350 ms 内 release = toggle(三种模式一致,含助手);超过 = push-to-talk(release 即停止)。**乐观启动**:非 Windows 默认修饰键在触发键按下即开始录音;Windows 默认右侧修饰键在 75 ms 内确认,判定窗口内组合出第二触发键则立即开始并无缝切换为翻译模式,音频保留。 - Wayland:探测 `XDG_SESSION_TYPE`;优先 `ashpd` 走 `org.freedesktop.portal.GlobalShortcuts`(KDE/GNOME≥48/Hyprland 支持,Activated/Deactivated 信号天然支持按住;注意 Portal 快捷键由 compositor 分配,未必能绑到「单独的右⌥」,此时默认键退化为 compositor 允许的组合键);不可用时提示 evdev 方案(用户加入 `input` 组)或 compositor 绑定 `typex toggle` CLI 命令(经 single-instance 转发)。 ### 7.4 录音 - cpal 以设备原生采样率(44.1/48 kHz)开流;callback 内只做 ring buffer 拷贝,重采样(rubato → 16 kHz mono f32)与电平计算在 worker 线程。 +- 输入流按 `cpal::SampleFormat` 分派并统一归一化为 mono f32;Windows WASAPI 至少覆盖 `f32`、`i16`、`u16`,不假定默认设备一定输出 f32。callback 使用有界缓冲,溢出只累计丢弃计数,不阻塞、不分配、不记录音频内容。 - HUD 波形数据:每 50 ms 推一次 RMS 电平数组(Tauri event),前端 Canvas 渲染。 - VAD(Silero)用于:① 结束时裁剪首尾静音(省上传/省钱/提速);② 长录音在静音处切片(F-1 无上限要求)。 -- 设备选择:默认系统输入设备并跟随系统切换;设置中可固定设备。 +- 设备选择:空配置使用系统默认输入设备并在下次开流时跟随系统切换;设置中固定设备时,Windows 保存 WASAPI `IMMDevice` endpoint ID、界面只显示 friendly label。固定 ID 缺失必须返回 `AudioDevice`,禁止静默回退默认设备。历史版本保存的 display name 仅在当前枚举结果中唯一匹配时迁移为 ID;无匹配或同名歧义均明确失败。 +- 录音启动失败与运行时 stream error/设备拔出通过独立 `RecordingFailed` 事件主动通知 orchestrator;`Recording` 立即转 `Failed(Recording)` 并执行 `CancelRecording` 释放 active stream,不等待下一次 stop。该失败态的重试语义是重新打开麦克风并开始录音,不进入注入或 STT 阶段。 ### 7.5 文本注入(Injector 后端链) @@ -292,21 +308,21 @@ trait Injector { fn inject(&self, text: &str, target: &FocusInfo) -> Result<()>; 按平台组成后备链(每个后端失败自动尝试下一个,全失败 → 复制到剪贴板 + HUD 提示): - macOS: `paste`(保存剪贴板 → 写入 → CGEvent Cmd+V → 延迟 → 恢复) -- Windows: `paste`(SendInput Ctrl+V);备选 `type_direct`(SendInput KEYEVENTF_UNICODE,无剪贴板污染,用户可选) +- Windows: `paste`(原生 SendInput Ctrl+V,校验返回发送计数);备选 `type_direct`(SendInput `KEYEVENTF_UNICODE`,按 UTF-16 code unit 发送完整 down/up,正确处理 surrogate pair、emoji 与换行)。无焦点或 UIPI 阻止时只复制并返回明确分类,不自动提权 - Linux X11: `paste`(XTEST) - Linux Wayland: 探测 compositor → wlroots 系用 `wtype`;GNOME/KDE 用 `dotool`/`ydotool`(需 /dev/uinput 权限,设置页内嵌引导);全不可用 → 「已复制,请 Ctrl+V」模式 ### 7.6 读取选中文本(Selection 降级链) 1. macOS:`AXUIElement.kAXSelectedTextAttribute` → 失败:临时静音系统提示音 + CGEvent Cmd+C + 读剪贴板 + 恢复(禁止通过 enigo/rdev 查询输入法布局,避免 HIToolbox 主队列断言);**AX 属性可读但为空 = 明确无选区,直接返回、不走剪贴板降级**(降级只给不支持 AX 的应用);定位用 `AXSelectedTextRange` + `AXBoundsForRange`,不可得时回退居中。 -2. Windows:UIA `TextPattern.GetSelection()` → 失败:Ctrl+C 降级。 +2. Windows:专用 COM worker 上执行 UIA `TextPattern.GetSelection()`;可读但为空表示明确无选区,不走剪贴板;不支持 TextPattern、COM 错误或超时才走 Ctrl+C 降级。bounds 使用 UIA range bounding rectangles,并统一转换到目标 monitor 坐标。 3. Linux:X11 primary selection 直读;Wayland 下 primary selection 可用则用,否则明确降级提示。 -4. 降级链每步有 300 ms 超时;剪贴板法须处理「无选中时复制整行」的误触(对比复制前后剪贴板内容 + 长度启发式)。 +4. 降级链每步有 300 ms 超时。Windows Ctrl+C 降级先写 sentinel,再以 clipboard sequence 变化确认复制发生;文本与已知 metadata 必须在同一次打开剪贴板期间读取。VS Code/Monaco 的 `vscode-editor-data` 只有在大小受限、JSON 合法、`version=1` 且 `isFromEmptySelection` 为布尔 `true` 时才证明无选区;格式缺失、损坏、超大、字段缺失、未知版本或未知编辑器都保守保留文本,禁止按长度或换行猜测。原剪贴板的可恢复 HGLOBAL 格式统一快照,且仅当读取后的 sequence 未再变化时恢复,不能覆盖用户或剪贴板管理器的中途修改。无可信空选区 marker、又把无选区 Ctrl+C 定义为复制整行的第三方编辑器仍是已知残余边界。 5. **读取时机 = 触发键松开、调 STT 的同时(并发执行,不增加延迟)**——绝不能在触发键按住期间执行:剪贴板降级要模拟 Cmd/Ctrl+C,合成的普通键 down 会命中「组合键让路」规则、把当前会话静默取消。选区在录音期间不会变(HUD 不抢焦点),松开后读取语义等价。 ## 8. Linux/Wayland 支持策略(明确的分级承诺) -**最低系统版本(建议值,随 CI 实测修正)**:macOS 12+(Monterey,覆盖 Tauri 2 与 NSPanel 方案的舒适区);Windows 10 1809+(WebView2 运行时要求,安装器自动引导安装 WebView2);Linux 需 webkit2gtk-4.1(Ubuntu 22.04+ / Debian 12+ / Fedora 38+)。 +**最低系统版本**:macOS 12+(Monterey);Windows 10 22H2+ / Windows 11 x64(MSVC ABI);Linux 需 webkit2gtk-4.1(Ubuntu 22.04+ / Debian 12+ / Fedora 38+)。Windows 安装器为 NSIS x64,并携带 WebView2 Evergreen Bootstrapper,在缺失 WebView2 时联网安装;本地推理依赖的 sherpa/ONNX、VC++ 2015-2022 x64 runtime 与 Vulkan loader 均 app-local 随包分发,不要求用户另装开发工具或系统级 VC/Vulkan runtime。 | 级别 | 环境 | 承诺 | |---|---|---| @@ -320,6 +336,8 @@ trait Injector { fn inject(&self, text: &str, target: &FocusInfo) -> Result<()>; - **网络代理**:所有 Provider 请求经统一的 reqwest 客户端工厂,默认**跟随系统代理**;设置-通用可改为「手动代理」(HTTP/SOCKS5,host:port + 可选认证)或「直连」。目标用户中访问国际端点需代理者众多;代理凭据若有同样按敏感配置字段处理,导出与日志必须脱敏。 - 设置文件:`tauri-plugin-store`(JSON,位于平台标准配置目录),带 `schema_version` 与迁移函数。 +- `hotkeys.dictation` / `hotkeys.assistant` 保存规范化完整 chord;`hotkeys.translation` 是二者的派生有序并集。schema v6 将历史后端/浏览器别名迁移为 §7.3 的稳定 `KeyId`,每次保存仍执行同一归一化以兼容外部编辑的配置。 +- `dictation.microphone`:空字符串表示系统默认;非空值表示平台稳定设备 ID(Windows 为 WASAPI endpoint ID)。旧版设备名称在运行时唯一匹配后写回稳定 ID。 - 密钥:随 profile 的 `credentials` 字段存入 `settings.json`,与其他配置项同路径;诊断包导出清空 `credentials`,日志 redact 层拦截 Authorization/密钥文本。旧版 `keyring://` 引用在迁移时清除,运行时也视为未配置。 - 日志:`tracing` + 滚动文件,默认 INFO;**全局 redact 层**保证 Authorization/密钥永不入日志(见 §5.5)。 @@ -344,6 +362,7 @@ trait Injector { fn inject(&self, text: &str, target: &FocusInfo) -> Result<()>; |---|---|---| | 会话 | `cancel_session` / `retry_session` / `dismiss_session` | HUD 按钮;toggle 录音的开始/停止走快捷键,不提供 command(避免两套触发路径) | | 配置 | `get_settings` / `update_settings(patch)` | patch 语义,返回完整新配置;F-10 词典作为 `Settings.dictionary.terms[]` 随设置同步 | +| 音频 | `list_audio_devices` | 返回 `Result`;每项为 `{ id, label }`,设置界面展示 label、保存 id,枚举失败不得伪装为空列表 | | Profile | `list_profiles` / `upsert_profile` / `delete_profile` / `activate_profile { slot, id }` / `set_profile_secret` / `test_profile { id }` | `profiles[]` 是全局服务配置池;`activate_profile` 只改功能槽位指针并校验 STT/LLM 能力兼容;密钥字段由 `set_profile_secret` 写入 profile credentials | | 本地模型 | `list_local_models` / `download_local_model { model_id, source? }` / `cancel_local_download { model_id }` / `delete_local_model { model_id, force }` / `get_hardware_tier` | `source` 为空时使用 settings.general.model_download_source;固定源只在模型管理页底部配置 | | 助手窗口 | `assistant_window_ready` | assistant WebView 注册完 `assistant://*` 监听器后上报;后端首次创建窗口时等待它,避免首轮 `assistant://started` 丢事件 | @@ -423,15 +442,17 @@ src/ ## 14. 编码、CI 与协作规范 -- **Rust**:Edition 2024;`rustfmt` 默认配置;公共 API 必须有 doc comment;`unsafe` 仅允许出现在 `platform/` 并逐处注释理由。 +- **Rust**:Edition 2024;`rustfmt` 默认配置;公共 API 必须有 doc comment;`unsafe` 仅允许出现在 `platform/` 或明确命名的平台 backend(如 `hotkey/windows_backend.rs`、`inject/windows.rs`、`selection/windows.rs`),并逐处注释理由与系统不变量。 - **前端**:ESLint + Prettier;组件 ` @@ -254,17 +302,13 @@ onUnmounted(() => unlisten?.()); font-size: 11px; color: var(--text-3); } -.bars { - display: flex; - align-items: center; - gap: 3px; - height: 18px; +.vad-slider { + width: 150px; } -.bars i { - width: 3.5px; - border-radius: 2px; - background: var(--voice); - display: block; - transition: height 0.08s linear; +.threshold-val { + min-width: 40px; + font-size: 11px; + color: var(--text-2); + text-align: right; } diff --git a/src/windows/settings/pages/HotkeysPage.test.ts b/src/windows/settings/pages/HotkeysPage.test.ts index 2185119..d62a599 100644 --- a/src/windows/settings/pages/HotkeysPage.test.ts +++ b/src/windows/settings/pages/HotkeysPage.test.ts @@ -28,7 +28,7 @@ function makeSettings( assistant: string[] = ["AltRight"], ): Settings { return { - schema_version: 6, + schema_version: 7, hotkeys: { dictation, assistant, From 38a8b61bf7d2ac14ce5c105eeb8018d5daf91a2b Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 12 Jul 2026 06:20:44 +0800 Subject: [PATCH 14/14] fix(hotkey): gate Windows gesture helper --- src-tauri/src/hotkey/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src-tauri/src/hotkey/mod.rs b/src-tauri/src/hotkey/mod.rs index 0a86fd3..526e56d 100644 --- a/src-tauri/src/hotkey/mod.rs +++ b/src-tauri/src/hotkey/mod.rs @@ -230,6 +230,7 @@ impl HotkeyDetector { self.current_mode = None; } + #[cfg(target_os = "windows")] pub(super) fn has_active_gesture(&self) -> bool { self.current_mode.is_some() && !self.yielded }