Text-to-Speech
Read any selected text aloud with the on-device Kokoro-82M voice — 54 voices across 9 languages, all synthesized locally.
Select text anywhere, press a hotkey, and WinSTT reads it back to you in one of 54 voices — synthesized on your own machine by the bundled Kokoro-82M ONNX model, with no cloud round-trip.
The quarterly numbers are in — revenue is up 18% and churn fell.

How it works
Text-to-Speech runs the same way dictation does — in reverse. Highlight text in any application, fire the hotkey, and WinSTT captures the active selection, synthesizes it to 24 kHz PCM audio with Kokoro-82M, and plays it through your chosen output device. Synthesis happens on-device; the text never leaves your machine.
The voice catalog covers 54 voices across 9 languages — US/UK English, Japanese, Mandarin, Spanish, French, Hindi, Italian, and Brazilian Portuguese. Picking a voice also sets its language, so there is no second picker to keep in sync. The voice list is the complete set of languages local TTS can speak: if a language has no voice in the picker, Kokoro can't synthesize it, and it never translates — it reads the selected text in the chosen voice's language.
Synthesized locally
Kokoro-82M runs entirely on local hardware — the same ONNX runtime that powers transcription. Selected text is read from the focused app and synthesized in memory; it is never written to disk or uploaded.
Need a language that isn't listed?
Local Kokoro is the only text-to-speech engine WinSTT ships today, so its 9 languages are the hard limit for on-device read-aloud. A cloud engine such as ElevenLabs synthesizes dozens of languages — and WinSTT already talks to ElevenLabs for cloud transcription — but cloud text-to-speech isn't wired up yet. For now, languages beyond the 9 above mean reaching for an external TTS tool.
First-time setup
The Kokoro engine and voice files aren't bundled into the installer — they're fetched once, on demand, the first time you enable TTS, and cached on disk forever after.
Toggle Text-to-Speech on
Open Settings → Desktop → Text-to-Speech and flip the section toggle. WinSTT probes the download size; if the pack is already cached it skips straight to step 3.
Confirm the one-time download
A dialog itemizes the components and the total size, then waits for you to choose Download & Enable. If WinSTT can't reach the server to size the download, you'll see an offline notice with a Retry button instead.
Wait for the pack to install
An install banner shows live progress with Pause, Resume, and Cancel buttons. The voice/speed controls stay locked until the engine is ready. Cancel discards the download and flips the toggle back off.
Pick a voice and speak
Once installed, the voice picker fills with the full catalog. Choose a voice, set your speed, and use the TTS hotkey from any app — or the per-row preview button to audition.
The pack downloads in three parts, totaling about 190 MB:
| Component | What it is | Size |
|---|---|---|
| Engine pack | The Kokoro ONNX runtime support files | ~50 MB |
| Voice model | The 82M-parameter Kokoro model weights | ~100 MB |
| Voicepacks | Per-voice embeddings for all 54 voices | ~40 MB |
Download, pause, resume
The install streams in the background. Use Pause/Resume on the banner to manage bandwidth, or Cancel to abandon it. If a download fails, a Retry action appears.
Controls
falsetts.enabledMaster on/off gate. Turning it on triggers the first-use download (or skips it if the pack is cached). The toggle is disabled while a download is in progress.
af_hearttts.voiceSearchable dropdown of all 54 voices, grouped by country with a region badge (US, UK, JP, ZH, …). Each row has a preview button; picking a voice also previews it and sets the matching language. The default is Heart, a US female voice. If a saved voice ever drops out of the catalog, TTS auto-selects the first available voice.
1.0tts.speedPlayback-speed multiplier from 0.5× to 2.0× in 0.1 steps, displayed as
1.0×. Applied by the Kokoro session itself, not post-processed. A reset button appears
when the value isn't 1.0×.
en-ustts.langSet automatically from the chosen voice — there's no separate language control to manage. Each voice belongs to exactly one of the 9 supported languages, and those 9 are the only languages local TTS can speak — there's no way to add more on-device.
LMeta+LShift+Etts.hotkeyGlobal combo that reads the active selection aloud from any app. Defaults to LMetaLShiftE. Hold the same combo together with Backspace to stop playback immediately — it halts both future generation and already-buffered audio. Rebind it from the Hotkey settings.
Previewing a voice
Every voice row — and the selected voice in the closed picker — has a preview button that speaks a fixed sample, "The quick brown fox jumps over the lazy dog.", at your current speed. The button cycles through play → loading → stop, and clicking a different voice cancels the in-flight preview so you always hear the latest pick.
Output device
TTS playback (and recording-mode chimes) route to whichever device you pick under
Settings → Audio → Output Device. Leave it on System default or choose a specific
output. The section only appears when TTS or the recording sound is enabled, and routing
uses the browser setSinkId() API under the hood.

Compute device
There is no separate TTS compute device. The synthesizer shares the main
speech-to-text model's device — set it once with Device in the
Model tab (model.device).
TTS follows model.device
The spawn layer mirrors your Model-tab device choice onto the server's --tts-device
flag. So Auto lets a GPU build run Kokoro on the available accelerator (DirectML)
and falls back to CPU otherwise — exactly like transcription. Change it in one place.
Related
File Transcription
Drag an audio or video file onto WinSTT — or pick one from the tray — and get a plain-text or timestamped SRT transcript next to it. Uses your main model, fully offline.
Transcription History
A local dashboard of everything you've dictated — an Overall Stats hero, usage breakdowns, a daily-activity contribution graph, a Voice Profile, a searchable log, and karaoke playback of saved recordings.