Skip to content

v1.1.1 – Bug fixes and stability improvements

Choose a tag to compare

@mx37 mx37 released this 31 Jan 19:14
· 22 commits to main since this release
Fixes #1: crash after downloading Vosk voice pack

- Fixed local AI (llama.cpp) initialization by building and packaging native libraries for Android arm64-v8a
- Added build-llama-android.sh script to automate llama.cpp compilation with OpenMP disabled
  (GGML_OPENMP=OFF, GGML_LLAMAFILE=OFF, OpenMP_FOUND=0) to avoid libomp.so dependency
- Verified libggml-cpu.so has no libomp.so dependency using readelf
- Added checkLlamaPrebuilt Gradle task to validate presence of prebuilt native libraries before build
- Configured jniLibs.srcDirs to include prebuilt/arm64-v8a in the APK
- Extended ProGuard rules for JNA/Vosk to prevent obfuscation issues
  (Callback, PointerType, Library classes and related attributes)
- Improved VoskTranscriber model detection logic with flexible lookup:
  am/final.mdl, am/model.mdl, final.mdl, model.mdl, or any .mdl file recursively
- Added detailed logging of model directory contents and full exception diagnostics during Vosk initialization
- Updated LOCAL_AI_SETUP.md with llama.cpp build instructions and OpenMP behavior notes
- Bumped app version to 1.1.1 (versionCode 2)

Technical details:
- Native libraries built for arm64-v8a:
  libggml-base.so, libggml-cpu.so, libggml.so, libllama.so
- CMake configuration ensures compatibility by disabling OpenMP-based threading
- JNA bindings preserved via extended keep rules to ensure reliable native library loading
- Model validation now supports multiple Vosk model directory structures
- Improved diagnostics simplify troubleshooting of speech recognition failures