← All work Product · in development

Stop typing. Say it instead

Type
Voice layer · daily driver
Date
May 2026
Stack
whisper.cpp on GPU · cloned-voice TTS · low-level input injection
quiett · product showcase

The problem

I write a lot: emails, code comments, posts, this site. Typing is the bottleneck.

Off-the-shelf dictation tools all required me to break flow: open a separate app, dictate, copy, paste. By the time I'd done that I could have typed it.

I wanted one hotkey that does what I say. Speak, release, and the text appears in whatever app is focused. And once that worked, the reverse followed: select any text, press a chord, and hear it read back in a clone of my own voice, still without touching the internet.

What I built

A background Windows app:

1. Listen. A tray app holds a global hotkey. Press-and-hold to record, release to transcribe.

2. Transcribe. whisper.cpp runs large-v3-turbo (quantised) as a resident server, GPU-accelerated via Vulkan, sub-0.5s from release to preview. All on-device. No API cost, no internet required.

3. Paste. Win32 SendInput with KEYEVENTF_UNICODE injects the text at a low level into whatever window has focus. Works in RDP sessions, VS Code, Slack, Chrome, and other Electron apps that ignore simulated clipboard pastes.

4. Learn. A speech profile (SQLite) tracks corrections. After I fix the same word three times, it starts applying the correction automatically.

5. Show feedback. The tray icon pulses while recording; a silence-countdown badge shows when it'll cut off; a confidence-bordered preview lets me review low-confidence transcriptions before pasting.

6. Read back. Select any text, press a chord, and it plays in a clone of my own voice: qwentts.cpp on the same Vulkan GPU stack, 0.87× real-time, about 145 ms to first audio. A study mode slows the delivery and breathes at sentences, lists and headings, for learning by ear.

7. Keep the record honest. A searchable history with export to Markdown, SRT and VTT, an incognito mode that keeps nothing, redaction patterns that mask sensitive strings before they are stored, and a diagnostics page whose network check is a real socket listing, not a promise.

The result

Faster than typing for anything past about 30 words, with sub-half-second release-to-preview latency from a quantised large-v3-turbo running on the GPU. Free to run: no API bill, fully offline, nothing I say ever leaves the machine. If your industry cannot send audio to the cloud at all (legal, medical, financial), this is the constraint I have already designed around.

Tech used

whisper.cpp · large-v3-turboVulkan GPU inferenceqwentts.cpp voice clonestudy-mode narrationlow-level input injectionself-learning speech profilePython

What happened to command mode?

For a few weeks the app also had a command mode: say what you wanted done and a local model classified the intent and ran it, with no text landing on screen ("add to my tasks" mid-thought went straight to my task manager). It worked, and I cut it on 25 July 2026 because I stopped reaching for it. Dictation fits something I do constantly, which is put words somewhere. Commands only paid off for the handful of actions I had wired up, and every new action was another integration to keep alive. What shipped in its place was the read-aloud, which I use constantly. The transcription and the speech profile survived unchanged.

The part I would build again is the speech profile. A general model like Whisper misses the words you use every day, project and tool names first, so the app watches my corrections and applies a fix automatically once I have made it three times. It gets better at hearing me specifically the longer I use it, without retraining anything.

The other thing the build shows is what local-first buys a firm with confidential material. Nothing here needed a cloud API: transcription, cleanup and the classifier all ran on the machine, so nothing said into the hotkey left it. A legal practice or an accounting firm cannot send a client call to a cloud dictation API and call the risk managed, however good the vendor's privacy terms read. A local pipeline changes what you have to trust to your own hardware, the same discipline I bring to Power Platform builds where data residency or confidentiality settles the tool choice first.

Quiett, the product it became

The daily driver grew into a product called Quiett. Same engine, with an interface built for handing to someone who is not me: dictation, read-aloud, a dictionary that learns you, searchable history, and a diagnostics page that proves nothing leaves the machine. It is in development and not for sale yet. The video above is the whole flow in 38 seconds; the demo below is the thing itself.

quiett · interactive · in development

This is the real interface running on simulated data. Every control responds, and nothing you click sends anything anywhere.

Got a manual data-entry workflow draining your team?

Balu Premkumar, founder of Kove60-day warranty. Pay the second half only on acceptance.
Next case studyTwo years of developer time, rebuilt in six weeks