whisper.cpp/examples/whisper.android.java
Jinwei Han 72e57ec4e7 android : fix CPU variant fallback returning LITTLE cluster count
The variant fallback in getHighPerfCpuCountByVariant() used
countKeepingMin() while the primary frequency branch used
countDroppingMin(). Both branches are meant to return the count of
high-performance cores, so the asymmetry caused the variant branch to
return the LITTLE cluster count instead.

On big.LITTLE SoCs, when cpuinfo_max_freq is unreadable and the code
falls back to CPU variant (verified by the reporter on Helio G85 in
ggml-org/whisper.cpp#3602), whisper ends up running on the LITTLE
cores and inference throughput roughly halves.

Fix mirrors the suggestion in the issue: use countDroppingMin() in the
variant branch, matching the frequency branch. Both the Kotlin
(whisper.android) and Java (whisper.android.java) examples share the
same asymmetry and are fixed together.
2026-04-19 23:49:25 -07:00
..
README_files examples : add whisper.android.java for compatibility with older Android versions using Java (#1382) 2023-11-12 18:31:58 +02:00
app android : fix CPU variant fallback returning LITTLE cluster count 2026-04-19 23:49:25 -07:00
gradle/wrapper android : update CMakeLists.txt to use FetchContent for ggml (#3268) 2025-06-19 16:06:42 +02:00
.gitignore examples : add whisper.android.java for compatibility with older Android versions using Java (#1382) 2023-11-12 18:31:58 +02:00
README.md examples : add whisper.android.java for compatibility with older Android versions using Java (#1382) 2023-11-12 18:31:58 +02:00
build.gradle android : update CMakeLists.txt to use FetchContent for ggml (#3268) 2025-06-19 16:06:42 +02:00
gradle.properties examples : add whisper.android.java for compatibility with older Android versions using Java (#1382) 2023-11-12 18:31:58 +02:00
gradlew whisper.android.java : update build with ggml source changes (#2942) 2025-03-25 16:01:59 +01:00
gradlew.bat examples : add whisper.android.java for compatibility with older Android versions using Java (#1382) 2023-11-12 18:31:58 +02:00
settings.gradle examples : add whisper.android.java for compatibility with older Android versions using Java (#1382) 2023-11-12 18:31:58 +02:00

README.md

A sample Android app using java code and whisper.cpp to do voice-to-text transcriptions.

To use:

  1. Select a model from the whisper.cpp repository.1
  2. Copy the model to the "app/src/main/assets/models" folder.
  3. Select a sample audio file (for example, jfk.wav).
  4. Copy the sample to the "app/src/main/assets/samples" folder.
  5. Modify the modelFilePath in the WhisperService.java
  6. Modify the sampleFilePath in the WhisperService.java
  7. Select the "release" active build variant, and use Android Studio to run and deploy to your device.

PS:

  1. Do not move this android project folder individually to other folders, because this android project folder depends on the files of the whole project.
  2. The cpp code is compiled during the build process
  3. If you want to import a compiled cpp project in your Android project, please refer to the https://github.com/litongjava/whisper.cpp.android.java.demo


  1. I recommend the tiny or base models for running on an Android device. ↩︎