Skip to content

rustemar/voice-keyboard

Repository files navigation

Voice Keyboard

Android keyboard (IME) for speech-to-text. Sends audio to any OpenAI-compatible Whisper endpoint of your choice — by default Groq (free tier available), can be pointed at OpenAI or any other compatible provider. Optional LLM post-processing.

Voice Keyboard with mic button   Setup screen   Post-processing settings

Features

Voice Input

  • Real-time voice recording with amplitude visualization
  • Processing queue — start a new recording immediately, previous ones transcribe in the background
  • Offline-proof recovery — recordings that can't be transcribed are saved on the device and resent automatically as soon as a validated internet connection returns; they survive closing the keyboard, app rebuilds, and reboots, and are kept until successfully sent (a "resend" button is also available to force a retry)
  • Works with any OpenAI-compatible Whisper API; ships with Groq as the default endpoint (whisper-large-v3-turbo)
  • Configurable API endpoint, model, and language
  • Auto-start recording when keyboard opens
  • Custom vocabulary — add names and technical terms to bias recognition; helps with contacts and rare words
  • Drop period for single-word output — handy for voice search where a trailing period gets in the way

Post-Processing

  • Fix errors — corrects punctuation, spelling, removes filler words (um, uh)
  • Shorten — makes text concise while keeping key points
  • Emoji — adds relevant emoji to your messages
  • Rhyme — rewrites dictated text as poetry
  • Translate — translates to any of the supported languages
  • Supports OpenAI and Claude as processing providers
  • Customizable prompts and temperature for each mode

Keyboard

  • Send button (paper plane) — sends Ctrl+Enter for quick message sending in messengers
  • Accelerating backspace — hold to delete slowly at first, then faster
  • Clipboard bar stays visible after paste for repeated pasting
  • Graceful shutdown — if keyboard hides during recording, audio is finalized and transcribed to clipboard

General

  • 17 interface and transcription languages
  • Light, Dark, and Auto themes
  • Long-press spacebar to switch keyboard
  • Built-in test recording in settings
  • App logs and crash reports
  • Auto-update from GitHub Releases

Setup

  1. Install the APK from Releases
  2. Go to Settings → System → Languages & input → On-screen keyboard
  3. Enable "Voice Keyboard"
  4. Open the app and enter a Whisper API key. The default endpoint is Groq — get a free key at console.groq.com/keys. You can also point the app at OpenAI's Whisper endpoint or any other OpenAI-compatible provider in the same screen.
  5. (Optional) Configure post-processing with your OpenAI or Claude API key

Installing via Obtainium (recommended)

Obtainium is a third-party Android app that auto-updates apps directly from GitHub Releases. Recommended over the in-app updater if you want to avoid the system "install unknown apps" prompt and Play Protect warnings on each manual install.

  1. Install Obtainium from its releases page or via F-Droid.
  2. In Obtainium, tap Add App and paste https://github.com/rustemar/voice-keyboard.
  3. Obtainium will install Voice Keyboard and notify you when new releases are published.

Privacy

No analytics, no telemetry, no advertising. Audio is sent only to the transcription provider you configure, using your own API key. See PRIVACY.md for the full policy.

Before first use of the microphone, the app shows a one-time disclosure explaining what is recorded, where it is sent, and what is not collected:

Microphone disclosure dialog

Building from source

git clone https://github.com/rustemar/voice-keyboard.git
cd voice-keyboard
./gradlew assembleDebug

License

MIT

About

Android keyboard for speech-to-text transcription via GroQ Whisper, with optional post-processing

Topics

Resources

License

Stars

8 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages