Voice-to-text overlay for Android. Press and hold the floating mic icon to record speech, release to transcribe via Groq Whisper API, and paste the result into any text field.
- Tap any text field — the Fluistern mic icon appears automatically next to the keyboard
- Hold the icon — it expands into a recording bar with a live waveform
- Release — your speech is transcribed and pasted into the text field
The overlay hides automatically when no text field is focused.
- Floating overlay that auto-shows/hides via Android Accessibility Service
- Press-and-hold to record, release to transcribe (no extra buttons)
- Groq Whisper API integration (whisper-large-v3)
- AAC/M4A compressed audio (~10-15KB per 5s) for fast upload
- Clipboard-based text insertion (works with all apps)
- Draggable icon with persisted position
- Language selection (auto-detect or 13 specific languages)
- Dark theme UI with settings for API key and language
- Get a free API key from console.groq.com
- Install the app and paste your API key in Settings
- Grant permissions: Microphone, Display Over Apps, Accessibility Service
- Open any app, tap a text field, and use the floating icon
Download the latest APK from Releases and install it on your device.
flutter pub get
flutter build apk --release
Install:
adb install -r build/app/outputs/flutter-apk/app-release.apk
lib/
main.dart — App entry, dark theme
screens/
home_screen.dart — Setup checklist, status card, how-it-works
settings_screen.dart — API key input, language dropdown
services/
platform_service.dart — Platform channel bridge to native Android
groq_api_service.dart — Dart-side Groq API (backup)
android/.../kotlin/com/fluistern/fluistern/
MainActivity.kt — Platform channel handler
FloatingService.kt — Overlay service: recording, transcription, custom view
FluisternAccessibilityService.kt — Auto-show/hide overlay, clipboard text insertion
assets/
ic_logo.svg — App icon (single source of truth)
ic_logo_foreground.svg — Adaptive icon foreground layer
- Flutter for the settings UI
- Native Kotlin for the overlay service (custom
ViewwithCanvasdrawing) - MediaRecorder with AAC encoding for compressed audio
- Groq Whisper API for transcription (multipart upload)
- AccessibilityService for detecting text field focus and inserting text via
ACTION_PASTE - WindowManager overlay with
TYPE_APPLICATION_OVERLAY
