github DevEmperor/DictateKeyboard v6.0.0
Dictate 6.0.0

3 hours ago

Dictate 6.0.0 adds a second way in: buy credit instead of bringing your own API key. Your own key — and your own server, and models on the device — keep working exactly as before and remain the cheaper path; nothing about the app requires the new one. Alongside that: Chinese typed the way it is actually typed, seven languages that had no dictionary at all, emoji search in over forty languages, and recordings that cost less to transcribe. Updating shows a new What's-new tour for 6.0 — and every tour stays re-viewable under Settings › About.

☁️ Dictate Cloud (optional)

  • Buy minutes instead of finding an API key — four prepaid packs through Google Play (150, 400, 1000 and 2200 minutes; the larger ones cost noticeably less per minute, and the app shows by how much). Dictation and rewording then run through our server.
  • Nothing of yours is stored there. Neither your recordings nor your text are written to disk: they are passed straight to the provider and the answer comes back. What is kept is numbers — wallet id, timestamp, duration, token counts, status code, milliseconds.
  • The server's source is in this repository, under cloud/. The privacy policy makes claims about that server, and a claim you can read the source of is worth more than one you have to take on trust. cloud/src/meter.ts is the only file that writes anything.
  • No name, no email address. An account is a wallet and a recovery code, so it can be restored on a new phone — and deleted from inside the app, with what deletion leaves behind stated plainly.
  • Credit is seconds, and every service prices itself into them. That is the safety property rather than a simplification: a pack's price is a hard ceiling on what it can cost to serve, whatever you spend it on.
  • A warning before the credit runs out, a top-up button when it does, and a refusal before the microphone opens rather than after the upload.

💸 Cheaper, and no longer too long

  • Recordings can be sped up before upload, without your voice going higher. (#272) Most providers bill by audio length, so a recording a third shorter costs a third less. Off by default, and the row says what it is set to.
  • Long dictations get packed as AAC instead of being refused. (#281) Every provider's documented upload ceiling is recorded now, so the decision is made against the real limit rather than one guessed number for everybody.
  • Hold stop to take back a transcription that is hanging. (#270) An on-device run shows as a mark on the status rather than as a different status.

🇨🇳 Chinese (#262)

  • Pinyin input with a candidate row — until now the only Chinese IME was Zhengma, which hardly anyone uses. The dictionary pack downloads on demand.
  • SenseVoice Small on the device — an offline model actually trained on Chinese, Cantonese, Japanese and Korean, rather than a general one asked politely.
  • SiliconFlow as a transcription provider, reachable from mainland China.
  • The Chinese table is no longer scanned end to end on every keystroke, and a subtype whose table has not arrived yet says so instead of reporting itself as missing.

⌨️ Typing & languages

  • Seven languages gained a word list (#265) — Arabic, Bengali, Finnish, Hindi, Indonesian, Tamil and Urdu now get suggestions, spell check and autocorrect.
  • An Arabic word is found however it was spelled — normalised across alef, ya and ta marbuta and with diacritics ignored — and the strip stops answering with English.
  • Icelandic and Georgian contained the wrong languages entirely and were rebuilt. Devices already holding the broken copy get the corrected one.
  • Long-press characters in 19 more layouts now follow what the language actually writes, measured from real text rather than assumed. Portuguese vowels corrected (#279), and the Rusyn і key no longer offers ѣ twice, once under a Latin label.
  • Glide typing knows the words you added yourself. (#263)
  • Next-word prediction fires after a promised space too, not only after a real one. (#266)
  • Each dictionary is now kept strictly to its own script.

😀 Emoji & GIF

  • Emoji search in 51 languages. (#274) It knew six. Search for "heart", "心" or "قلب" and you land on the same emoji; the search follows your keyboard's language.
  • GIF search sits on the same bar as the emoji search — recents while idle, one clear button instead of two, and the caret on the left.
  • A swiped word reaches the search box it was typed into.

🎈 Floating button

  • It reads back what the input connection cannot report (#277), so it no longer flashes a green check over text that never landed.
  • Auto-enter aims at the right field and admits when it was refused. (#278)
  • It goes down with the screen instead of surviving onto the always-on display. (#269)
  • One refused character no longer condemns the whole dictation — the text is handed back rather than thrown away.

🎙️ Dictation & rewording

  • Rewording no longer translates unbidden. (#268, #276) The output language is anchored to the text, not to the language the instruction happens to be written in.
  • Croatian is no longer primed with an English sentence (#275), and the mic button no longer needs a second tap (#261).
  • When a recording never reached a provider at all, the error points at the offline engine instead of shrugging.
  • The crash right after updating is fixed. (#267) The floating button asked the Android version whether it could use a shader, when the question was whether this frame would reach a GPU.

🔧 Setup & your own provider

  • The setup wizard names four ways in, not two. (#273) On-device models download straight from the wizard — the two that fit your language, not all twenty-one — and "your own server" hands off to the editor that already existed. A keyless self-hosted endpoint no longer reads as "not set up" while dictating happily.
  • The Ollama editor now says it has no speech-to-text endpoint, and names both ways on.
  • The README has a worked self-hosting example, including the two things people trip over: the trailing /v1/, and that localhost means the phone.
  • Onboarding rebuilt around its illustrations; the step counter no longer jumps between steps.

🔒 Security & privacy

  • A private way to report a vulnerability — a SECURITY.md and GitHub's private advisory form, so a security report no longer has to start life as a public issue.
  • The privacy policy was rewritten for Dictate Cloud, the transcription history and GIF search.

🔋 Under the hood

  • An extension load no longer races against itself and deletes the cache another load is reading from. (#282)
  • x86_64 is shipped as well, so the app installs on emulators.
  • Around a dozen new test suites — audio encoding and its cost, the speed-up, the dictionary languages, the Chinese subtypes, the popup mappings, the provider-configured rule and the credit-pack savings.

Thank you to everyone who filed an issue, sent a mail or left a review — nearly every line above started as one of those. 💙

Dictate is distributed via the Google Play Store.

Don't miss a new DictateKeyboard release

NewReleases is sending notifications on new releases.