Doubao Say v1.8.1
Dictate into macOS applications with the native menu-bar client.
Share
Before you upgrade to v1.8.1
2 to fixApprove the shortcut in GNOME's permission dialog and customize it there. Use tray/control-center Cancel; portal mode does not register global Esc. After denied authorization, restart to retry. Input delivery and Vibekey retain separate permissions.
Read the evidence
During recording, another key (including Esc, Enter or a chord) finishes dictation and swallows that key and its release. During final polishing, a key inserts the original text. Use the menu's Cancel input to cancel; idle double-tap still sends Enter.
Read the evidence
Exact old default prompts migrate to contextual sound-error correction, explicit numbered lists and restrained paragraph breaks; custom prompts remain. Mac final polishing overlaps recognition but waits for final text and invalidates stale work.
Install the new `PyJWT[crypto]>=2.10,<3` dependency. On Arch/Omarchy, rerun `install.sh` or `setup-omarchy.sh` to install `python-pyjwt` and `python-cryptography` before checking the runtime.
What changed in v1.8.1
v1.4.0–v1.8.1 add GNOME portal shortcuts, macOS dictation, local vocabulary/history and speech evaluation. Updates can install on request; polishing supports ChatGPT accounts and revised defaults, with original-text fallback.
Also: GNOME-authorized triggers, personal vocabulary and corrections, 30-day history, speech comparisons, verified in-app updates and ChatGPT polishing.
v1.8.1: Linux app/plugin archives for Python 3.11–3.14; signed, notarized arm64/x86_64 DMGs for macOS 13+. Recognition needs an account/API key; Linux system libraries and desktop input permissions remain external.
New things you can do
Normal launch selects the portal; hold, tap and double-tap use authorized activation/release events. Denial never silently falls back to evdev.
Tap/hold dictation, a menu-bar client and live overlay are available. New configs choose direct Accessibility insertion when supported, otherwise clipboard; failed input retains text for retry.
Settings save automatically; completed onboarding survives restart. Closing the last settings/sign-in window leaves menu-bar dictation running and hides Dock/Cmd+Tab entries; reopening restores them.
History is enabled by default and preserves recognition, final text and status; newer entries include recognition, remaining polishing, delivery and total wait times.
Vocabulary saves automatically; Volcengine hotwords prioritize confirmed spellings and show the actual subset. AI organization sends candidate terms/counts, not full history, and additions require review.
Select a wrong term in history, use Correct & remember, review the exact occurrence replacement and confirm. Original recognition and polishing output remain available.
The Mac/Linux evaluation page records samples and reports character errors, target accuracy, protected-term loss, failures and replay P50/P95. Drafts save automatically; evaluation cannot run alongside dictation or mic checks.
`doubao-say-eval` or `python3 -m doubao_input.speech_eval` supports JSONL manifests, optional polishing and offline result scoring; reports are local and owner-only.
Account/model selection and usage controls preserve existing API settings. A quota limit pauses further plan requests; Manage usage and Retry plan usage support recovery without signing in again.
Fixed and improved
Updates now install on request with retained settings and rollback on installation failure. Checks try a public manifest then GitHub API; Mac shows progress, cancellation and specific errors, and verifies signing/notarization.
With optional `wmctrl`, the X11 overlay requests above-window stacking without taking focus. Missing or failed stacking requests leave input working; fullscreen coverage remains window-manager dependent.
Read the evidence
API-key drafts survive onboarding/settings saves and provider changes; recording, microphone checks, evaluation, retry delivery and updates are coordinated to prevent overlapping operations.
Read the evidence
Seeded by @iluxav with Codex, from the release's public sources. Each change links to its evidence.