whisper.cpp/examples/whisper.android
Georgi Gerganov 93935980f8
whisper : Metal and ggml-alloc support (#1270)
* metal : init

* whisper : factor out graph builds

* whisper : allocate encoder and decoder using ggml-alloc

* whisper : ggml-alloc is now supported

* whisper : CoreML support ggml-alloc

* build : fix ggml-alloc

* ios : update submodule

* extra : update sync-ggml.sh script to also sync ggml-alloc

* ci : see if this is causing the crash

* whisper : refactor ggml-alloc init

* whisper.android : try to fix build

* whisper : initial Metal version

* ci : try to debug vmem issue

* metal : decoder works on GPU!

* metal : add multi-decoder support

* ggml : fix ggml_nbytes (probably temp solution)

* metal : run "cross" step on the GPU

* whisper : remove ggml_repeat in the encoder

* whisper : offload the Encoder to Metal

* ggml : use simpler ggml_bytes() implementation

* ggml-alloc : try to make CI happy by reducing vram to 128GB

* whisper : add whisper_allocr to wrap ggml_allocr

* whisper : factor out alloc init in a function

* cmake : update to support Metal build

* whisper : add <functional> header

* objc : fix build (no Metal yet)

* ios : add Metal support

* swiftui : fix build

* metal : speed-up KQ multiplication

* metal : sync latest llama.cpp kernels

* readme : add Metal info

* ios : update submodule

* coreml : add code to toggle Core ML config (CPU, ANE, GPU)

* bench : fix timings by running a pre-heat

* bench : start benching the decoder

* whisper : add ggml_mul_mat_pad

* bench : fix uninitialized vars

* whisper : add comment for disabling mul-mat padding

* whisper : add description of ggml_mul_mat_pad

* whisper : clean-up ggml_mul_mat_pad

* metal : remove the "concurrent" flag

* bench : variable n_past

* ios : update SPM package
2023-09-15 12:18:18 +03:00
..
.idea whisper.android : bump gradle plugin and dependencies + a lint pass (#1255) 2023-09-07 12:15:59 +03:00
app whisper : Metal and ggml-alloc support (#1270) 2023-09-15 12:18:18 +03:00
gradle/wrapper whisper.android : bump gradle plugin and dependencies + a lint pass (#1255) 2023-09-07 12:15:59 +03:00
.gitignore Add Android sample (#277) 2022-12-16 19:20:13 +02:00
build.gradle whisper.android : bump gradle plugin and dependencies + a lint pass (#1255) 2023-09-07 12:15:59 +03:00
gradle.properties Add Android sample (#277) 2022-12-16 19:20:13 +02:00
gradlew Add Android sample (#277) 2022-12-16 19:20:13 +02:00
gradlew.bat Add Android sample (#277) 2022-12-16 19:20:13 +02:00
README.md whisper.android : add some tips (#816) 2023-04-29 11:00:20 +03:00
settings.gradle Add Android sample (#277) 2022-12-16 19:20:13 +02:00

A sample Android app using 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. Select the "release" active build variant, and use Android Studio to run and deploy to your device.

(PS: Do not move this android project folder individually to other folders, because this android project folder depends on the files of the whole project.)

image

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