Skip to content

DevEmperor/Dictate

Repository files navigation

Dictate Keyboard logo

Dictate Keyboard

Speak. Transcribe. Reword. — your voice, turned into text by Whisper AI.

Get it on Google Play   Donate with PayPal

License: Apache 2.0 Status: Work in progress Built on FlorisBoard


🚧 Work in progress — a complete rewrite

Dictate Keyboard is being rebuilt from the ground up. The app you'll find in this repository today is a brand-new keyboard built on top of the excellent FlorisBoard engine — it replaces the original Java app that powered Dictate v1–v3.

Why the rewrite? The original Dictate was an overlay on top of whatever keyboard you already used. The new Dictate is a full, standalone keyboard: you get a complete, privacy-respecting typing experience and one-tap Whisper dictation and GPT rewording, all in one place — with proper theming, gestures, clipboard tools and more.

This means the codebase here is not stable yet and changes daily. If you just want to use the app, grab the stable release from Google Play.

The previous Java codebase is preserved on the legacy-java branch and tagged as v3.2.0-final.


✨ What is Dictate?

Dictate is an easy-to-use keyboard for transcribing and dictating. It uses OpenAI Whisper in the background, which delivers extremely accurate results for many different languages, complete with punctuation — plus custom AI rewording powered by GPT models.

Instead of pecking at keys, just tap the microphone, speak, and watch your words appear as clean, formatted text in any app. Need it more formal, translated, summarised, or fixed-up? Hand the text to a rewording prompt and let the model do the work.

🎤 Features

  • Voice dictation with Whisper AI — highly accurate speech-to-text in dozens of languages, with automatic punctuation.
  • AI rewording & rewriting — turn a selection into something more formal, casual, translated, summarised, or anything you define with custom prompts.
  • Custom prompts & snippets — build your own reword actions; reusable text snippets are inserted instantly without an API call.
  • Bring your own key — works with your own OpenAI API key (and compatible endpoints), so you stay in control of usage and cost.
  • A real, full keyboard (courtesy of the FlorisBoard base):
    • Huge variety of keyboard layouts and easy language/subtype switching
    • Full theme customization with day/night presets and automatic switching
    • Emoji keyboard, clipboard manager & cursor tools
    • One-handed / compact mode, gesture actions, customizable key sound & vibration
  • Privacy-respecting by design — no tracking; your audio goes only to the AI provider you configure.

🧱 Built on FlorisBoard

Dictate Keyboard is a fork of FlorisBoard, an open-source, privacy-respecting keyboard created by Patrick Goldinger and The FlorisBoard Contributors. Their work provides the entire keyboard foundation — layouts, theming, gesture handling, clipboard tools and the IME plumbing — on top of which Dictate adds its voice-dictation and AI-rewording layer.

Huge thanks to the FlorisBoard team. FlorisBoard is licensed under the Apache License 2.0; see LICENSE and NOTICE for full attribution.

📸 Screenshots

Coming soon — screenshots and a showcase video will be added once the rewrite is ready.

📲 Installation

The app is available on Google Play (for a small fee that supports continued development), giving you easy installation and free lifetime updates. Just tap the badge above or this link.

Existing users: the new keyboard keeps the same app identity and signing key, so when the rewrite ships as an update, your settings carry over — no reinstall, no lost configuration.

🛠️ Building from source

Dictate Keyboard is a standard Gradle Android project and requires JDK 17:

git clone https://github.com/DevEmperor/Dictate.git
cd Dictate
JAVA_HOME=/path/to/jdk-17 ./gradlew :app:assembleDebug

The resulting APK lands in app/build/outputs/apk/debug/.

🗺️ Roadmap

The rewrite is being ported feature-by-feature. A public roadmap will be published once the foundation is stable — for now, follow along via the commit history and releases.

🤝 Contributing

While the rewrite is in heavy flux, the repository isn't accepting code contributions just yet — the architecture is still moving and a PR today may not apply tomorrow. The best way to help right now is to open an issue with bug reports, ideas or feedback. Full contribution and community guidelines will be published once things stabilise. Thank you for your patience! 🙏

📄 License & attribution

Dictate Keyboard is released under the terms of the Apache License 2.0.

  • This project is a fork of FlorisBoard — Copyright © The FlorisBoard Contributors, licensed under Apache-2.0.
  • See LICENSE for the full license text and NOTICE for required attribution notices.
  • Speech recognition is powered by OpenAI Whisper.

❤️ Support

If Dictate makes your day a little easier, you can support development by buying the app on Google Play or donating via PayPal. Every bit helps — thank you!