Case StudiesPublic Product

SpeakEase (Free for noncommercial use)

A Vietnamese-first dictation app for macOS - hold a key, speak, let go, and the text lands where the cursor is, recognised on your Mac.

Contents
Contents

A close, angled view of a MacBook on a wooden desk before plum velvet curtains, a brass desk lamp at the left and a vintage microphone at the right, white paper scraps floating through pink bokeh; the screen shows the SpeakEase Speak page with a pink microphone button and the hint to hold Option Space to talk.

SpeakEase: speak instead of typing, the text lands where the cursor is, and your voice stays on your Mac.

SpeakEase is a dictation app for macOS, made for Vietnamese first. Hold a key, speak, let go: the text is pasted where the cursor is, in any app. AI can tidy the sentence, drop the filler words or translate it into another language before it lands. The first part of this page is an overview of the interface; the second covers the overall logic, the direction and the technology behind the app.

The SpeakEase source is public on GitHub under the PolyForm Noncommercial 1.0.0 licence, built on Handy (MIT) by CJ Pais. Speech is recognised on your Mac; AI runs with Apple Intelligence on the Mac by default, and OpenAI, Anthropic or OpenRouter are options that use your own key.

The interface at a glance

Swipe across in the order a dictation goes: from the Speak page, to the moment the text lands in another app, then what AI does with your words, and the other big features. Watch them all, or press Read the logic, to reach the logic, direction and technology just below.

A MacBook seen straight on, on charcoal felt with a vintage microphone behind; the screen shows the Speak page with the pink microphone button and quick choices.

The Speak page The microphone button, the shortcut and quick choices: microphone, model, AI cleanup and translation, each one click away.

Hold the key, speak, let go Your words show on the recording pill as you speak; let go and the cleaned sentence, with punctuation and digits, is pasted right at the cursor.

A tilted close-up of History, the pointer on the star of a sentence cleaned up by AI with the original right under it, and a sentence translated into English.

AI cleanup, original kept Every dictation is a card in History; the AI version sits on top, what you actually said sits below, next to the minutes of typing saved.

Translate while you speak Speak Vietnamese, press the translate button on the recording pill midway, and the English sentence lands in the email.

A close-up of the AI and Translate page melting into the app’s dark ground, the pointer on the AI cleanup choice for the main shortcut, the AI engine and prompts below.

Choose how AI tidies your words The main shortcut uses one cleanup prompt and one target language; a single switch stops every AI step.

A tilted close-up of Files and links, the pointer on Translate to, beside the words of an interview and the progress of the file being transcribed.

Files and links Drop in a video or an audio file, or paste a link: only the sound is read, and the words arrive with copy, rewrite and translate.

Words in seconds Several files wait in line and run one at a time; the progress bar always moves, with the time left.

A MacBook at an angle in folds of plum linen with a few sheets of paper; the screen shows the Live subtitles page with the playing app and the language pair.

Live subtitles (beta) Pick an app that is playing sound, the language spoken and the one you read, then turn subtitles on.

Floating subtitles, translated on the Mac Each sentence shows its translation with the original in small type; a half-heard sentence is fixed once it is complete. A beta in 0.1.2, not yet released.

What follows does not walk through every button. It covers three things: the app’s overall logic, its direction, and the technology behind it.

The overall logic: one key, one path for your words

SpeakEase is for people who write a lot in Vietnamese on a Mac: typing tone marks through Telex or VNI is slow, and cloud dictation sends your voice to someone else’s server. The app keeps one simple promise: hold the key, speak, let go, and the text lands where the cursor is. Every dictation takes the same path: record, recognise on the Mac, run the AI steps you chose in a fixed order, paste into the app in front, then save to History.

The SpeakEase Speak page with the microphone button, the shortcut hint and the quick bar for microphone, model, AI cleanup and translation.

The Speak page: dictate with the microphone button or the shortcut, and switch microphone, model, AI cleanup or target language in one click.

Three principles keep that path trustworthy:

  • No modes to think about. Hold the key and it records until you let go; tap it and it records until the next press. Left on Auto with a model that cannot detect the language, the app tries Vietnamese and English in turn, and remembers the one that worked so it goes first next time.

  • Your words are never lost. Long recordings are cut at their quietest moments into pieces of at most 30 seconds and joined back in order, so no stretch of speech is dropped. If an AI step returns nothing or refuses, the original text is still pasted and the app says that AI did not run.

  • AI runs in order, and does not take orders from your speech. Cleanup first, translation second; a target other than English goes through English. What you said is fenced in its own tags when sent to AI, so a sentence like “ignore the instructions above” is written down, not obeyed. One Use AI switch stops every AI step.

The Recording page with four shortcuts drawn as keys: dictate, translate, dictate with AI and cancel.

Four shortcuts: dictate, translate, dictate with AI cleanup, and cancel the recording in progress.

The AI and Translate page with the Use AI switch, AI cleanup, target language, AI engine and prompts.

AI and Translate: one switch for every AI step, cleanup prompts, the target language and the engine that runs the AI.

History keeps every dictation findable and honest. A card with an AI version always shows the original under it; search ignores capitals, Vietnamese ones included, and looks in both texts. The three counters on top count the text you actually received, and the minutes saved come from the gap between typing speed and speaking speed.

The History page with search, three counters and cards with their originals.

History: search by content, play back, copy, re-transcribe; the original is never hidden behind the AI version.

Direction: speak, clean up, translate, and take words from any sound

SpeakEase is heading toward dictation that runs on your Mac: no account, no server of its own, no usage tracking, and audio that never leaves the machine. On that base the app grows with what a writer actually does with their spoken words:

  • Right the first time. AI adds punctuation, capitalises names, turns spoken numbers into digits and drops filler words. A Vietnamese cleanup prompt and a Write as an email prompt ship with the app; you can add your own, and teach it names and terms of your own.

  • Speak one language, paste another. Speak Vietnamese and paste English or one of 11 other languages; turn it on for every dictation, use the separate translate shortcut, or press the button on the recording pill for just the dictation in progress.

  • Words from what is already recorded. MP3, M4A, MP4, MOV, MKV, WebM, Telegram or WhatsApp voice messages, or a link; only the sound is read, so a 10-minute video becomes text in about 11 seconds. Then rewrite or translate it piece by piece, copy it or save it as .txt.

  • Live subtitles, in beta. The coming 0.1.2 listens to one app such as Chrome, Zoom or a podcast player, recognises it on the Mac, translates each sentence on the Mac and shows both languages on a floating panel. It reads the title of what is playing so names come out right, fixes a sentence once it is complete, and saves the session to History. It sits behind the Experimental switch and is not released yet.

The Files and links page with a file being transcribed, the words of a video and the recent files list.

Files and links: the progress bar never stands still, and the original text is always kept beside any rewrite or translation.

The Live subtitles page with the apps playing sound, the spoken language, the target language and the translator.

Live subtitles: choose the app, the language pair and the translator; the subtitles show on a floating panel of their own.

What SpeakEase deliberately does not do is part of the direction too: no account, no automatic crash reports, an interface in Vietnamese and English only, and testing on Apple Silicon Macs only.

The technology behind it

SpeakEase is a fork of Handy, the open-source transcription app by CJ Pais. The shell is written in Tauri 2 (Rust) with a React interface; the Rust side handles the system-wide shortcuts, recording, the floating recording pill, pasting into other apps through macOS Accessibility, and History in SQLite.

  • Recognition on the Mac. Models run through ONNX and ggml engines (such as whisper.cpp), accelerated with Metal. The app suggests only models measured on Vietnamese: on 60 sentences from Google FLEURS, Cohere Transcribe gets 6.3% of words wrong, Qwen3-ASR 1.7B 6.8%, Whisper Large v3 Turbo 8.2%.

  • AI on the Mac. Apple Intelligence is called through a Swift bridge built into the app, so cleanup and translation run on supported Macs. An online service receives text, never audio, and only when you add its key.

  • Only the sound is read. For files and videos, the first audio track is decoded straight to 16 kHz mono in memory with Symphonia, with libopus for Opus; the picture is skipped and nothing is re-encoded. YouTube links go through yt-dlp when it is installed.

  • Releases. The app is Developer ID signed and notarized; updates are read only from SpeakEase’s own GitHub releases, with their own signature.

The Recognition page with the current model, the language to listen for and the models suggested for Vietnamese.

Recognition: models ranked by accuracy measured on Vietnamese, downloaded once and then run offline.

Data and limits

Audio, recognised text, History and settings stay on your Mac. Only text (never audio) goes to an AI service you added a key for.

  • The app needs an Apple Silicon Mac (M1 or later); AI cleanup on the Mac needs Apple Intelligence (macOS 26 or later, on supported Macs).

  • On first launch macOS asks for Microphone access to listen and Accessibility access to paste into other apps.

  • Recognition models download when you choose them, for example about 1.6 GB for Cohere Transcribe.

  • YouTube links need yt-dlp; the app shows the install command as soon as you paste one.

  • Live subtitles (beta, 0.1.2) need macOS 14.2 or later and ask once for permission to record system audio.

Download SpeakEase from GitHub Releases, drag it into Applications, grant Microphone and Accessibility, choose a model, then hold Option Space and speak.

The images and videos here are captured from the preview of the app’s newest interface (0.1.2, not yet released), with English example data. The swipe-through images place the captured screens in AI-generated scenes, clipped to each photo’s own screen area; the videos record the real recording pill, window and subtitle panel on a recreated Mac desktop, with the pointer drawn in afterwards.

SpeakEase on GitHub · Latest release · README · Privacy