I maintain speech-android, an Apache-2.0 on-device speech SDK. We built a complete offline Android voice-command loop: VAD → streaming STT → FunctionGemma 270M tool calls → device action → streaming TTS. On a Galaxy S23 Ultra it starts answering 908 ms after end of speech and uses 1,2GB Resident RAM. The Android API is Kotlin/Flow over a small JNI bridge.
Demo and source:
github.com/soniqo/speech-android
90-second video:
I’d especially appreciate feedback on the Kotlin API and first-run model experience.