How talkflow works
Hold a key, speak, let go. Your words are typed into the app you're in. Here is exactly what happens in between, and which parts run where.
The short version
- You hold the shortcut: fn on a Mac, Ctrl + Win on Windows. Both can be changed in Settings.
- talkflow records from your microphone into memory and shows a small live caption of what it hears.
- You let go. The recording is transcribed one last time, tidied by a set of fixed rules, and typed into the text field you were in, once. Nothing is typed while you speak, so nothing is deleted and retyped.
The speech engine: Whisper, on your computer
Speech recognition is done by Whisper, OpenAI's open speech model, running through whisper.cpp, an open source engine that runs it on an ordinary processor. talkflow ships whisper.cpp's server inside the app and starts it in the background. It listens only at 127.0.0.1, the address that always means your own computer, so your audio never crosses the network.
Two Whisper models are used:
- small.en, an English-only model, is the main one. It produces the live caption while you hold the key, and the final text unless the larger model below is in use. On a Mac it is a 5-bit compressed copy of about 190 MB; on Windows it is the full-size file of about 490 MB. Setup downloads it once, from the whisper.cpp project on Hugging Face.
- large-v3-turbo is optional and used only for the final pass, after you let go, because that is the only transcript that reaches your document. It is about 575 MB and downloads in the background. On a Mac it is on by default when the Mac has more than 8 GB of memory, and it is loaded only while you dictate, then unloaded again. On Windows, talkflow times it on your PC first and skips it if the PC is too slow; it can use your graphics card through Vulkan, and falls back to the processor.
If the larger model is missing or slow to answer, the final pass simply uses small.en. On slower Windows PCs the live caption is turned off so it never delays the final text.
The tidy-up: rules, not rewriting
Whisper's transcript goes through a set of plain, predictable text rules before it is typed. They change formatting and remove noise. They never rephrase your sentences.
- Filler sounds such as "um" and "uh" are removed.
- Spoken commands become text: "comma", "question mark", "new line", "new paragraph", and emoji names such as "rocket emoji".
- Self-corrections collapse to what you meant: "meet at 2, no wait, 3" becomes "meet at 3".
- "Number one ... number two ..." becomes a numbered list, and an email's greeting and sign-off get their own lines.
- A writing style you pick in Settings: formal (capitals and full stops), casual or all lowercase.
talkflow also learns your words. When you correct a name it misheard, such as "Shivon" to "Siobhan", it remembers the fix and gives it to Whisper as a hint next time. Names visible around your cursor, such as an email's recipient, are used the same way. That reading happens in memory, on your computer.
Optional extras you switch on yourself
None of these are on unless you turn them on in Settings:
- On-device punctuation (Mac, macOS 26 or later): Apple's built-in model suggests punctuation. Its answer is matched word by word against yours, and only punctuation, capitals and line breaks are taken from it.
- Your own OpenAI key sends the final pass to OpenAI for transcription, and your own Anthropic key sends the text to Claude for punctuation, under the same word-for-word guarantee. With a key added, that step leaves your computer and goes to that provider.
What it doesn't do
- It is built for English. Its main model, small.en, is English-only: fast and accurate for English, but it doesn't transcribe other languages.
- It doesn't run on phones or tablets: there is a Mac app and a Windows app.
- It doesn't rewrite, summarize or "improve" what you said.
Check it yourself
talkflow is open source under the MIT License, so every step above can be read in the source code on GitHub. What the app sends over the network is listed in the privacy policy. Platform details are in offline dictation for Mac and dictation for Windows.
