Hold a key, speak, release — your words land at the cursor in any app. Open-source, local-first AI voice typing for Windows (macOS preview): offline SenseVoice / Parakeet / Whisper, hands-free mode, optional cloud engines, a dictionary that learns from your edits, and your phone as a microphone.
7
stars
479
commits
TypeScript
primary language
Sep 9, 2026
updated
You speak, it types — open-source AI voice typing, into any app.
Hold a key, talk, release — the words land at your cursor.
Recognition engine, AI polishing and hotword correction are all yours to configure; keys and audio never leave your control.
⬇ Download · 🌐 Website · 简体中文 · Report an issue · Dev docs
Most AI dictation tools are closed source, or route your voice through the vendor's own servers. SpeakType flips that:
| 🔓 Fully open source (MIT) | Protocols, correction algorithms, UI — every line is readable, hackable, self-hostable |
| 🛡️ No backend of its own | Runs no cloud service; your audio goes only to the recognition service you choose and configure — or stays entirely offline |
| 🧩 Everything pluggable | Recognition engine, polishing model, hotword dictionary, persona styles, hotkeys: all yours |
| 📱 Your phone as the microphone | Desktop with no mic? Scan a QR code and talk into your phone — LAN direct, or through a relay you can self-host |
| 🎙️ Push to talk | Hold RightCtrl (any key or mouse side button, recordable), live captions stream as you speak, release to type into any Windows app |
| ⚡ Hands-free mode | Tap Alt+Q to start, auto-stops on silence — great for long dictation |
| 🎭 Personas | Alt+1..9 to switch: default / auto-translate / report-to-boss / CLI / custom prompt — and optionally switch automatically per foreground app |
| 📈 Gets better as you use it | Fix a word by hand after it lands and SpeakType learns it into your dictionary — the same mistake won't happen twice |
| 📖 Hotword correction | Add names and product terms; homophone and near-homophone errors are fixed locally via pinyin matching |
| ✍️ Select and rewrite | Select text, hold F8 and say "translate to English" / "make it formal" — the selection is replaced in place |
| 🧠 Enhanced voice detection | Optional Silero VAD neural network (~35MB, on-device) for accurate auto-stop and hallucination filtering in noise |
| 🔁 Retryable failures | Failed recordings are kept locally (max 20 clips / 7 days / 50MB, can be disabled); retry from History without re-speaking |
| 🌗 Dark mode | Follows the Windows light/dark setting in real time, or force light/dark in Settings |
| 🎵 File transcription | Drop an audio/video file (mp3, wav, m4a, mp4… up to 3h) → offline segmented transcript with timestamps → export TXT / SRT |
/audio/transcriptions API — Base URL + API key + model name. Presets for OpenAI Whisper, Groq (free tier), Fireworks, Mistral Voxtral, SiliconFlow and Alibaba Bailian, with a connection test.AI polishing likewise accepts any OpenAI-compatible chat endpoint (OpenAI, Google Gemini's OpenAI-compatible endpoint, Groq, DeepSeek, Zhipu GLM-4-Flash, Kimi, Qwen, or a local Ollama / LM Studio endpoint — for local endpoints the API key can be left empty). Without one, a local cleanup pass still handles self-corrections ("5pm — no, 6pm" → "6pm").
| Platform | Download | Status |
|---|---|---|
| Windows 10/11 x64 | SpeakType-Setup-0.17.0.exe (~98MB) | ✅ Stable |
| Windows portable | SpeakType-0.17.0-portable.exe (~87MB) | ✅ Stable |
| Android (phone as microphone) | SpeakType-0.17.0.apk | ✅ Available |
| macOS (Apple Silicon / Intel) | Platform layer merged; installer pending a macOS build environment | 🚧 In progress |
Latest release: https://github.com/wookat/speaktype/releases/latest · Website: https://speaktype.zalize.com
Or install via Scoop:
scoop bucket add speaktype https://github.com/wookat/scoop-speaktype
scoop install speaktype
RightCtrl, speak, release.%APPDATA%\SpeakType.Simplified Chinese, Traditional Chinese, English, Japanese and Korean built in (follows system or manual, applies instantly); the locale architecture welcomes more community additions.
cd desktop
npm install
npm run dev # dev mode
npm run typecheck
npm run pack # NSIS installer → release/
Stack: Electron + React 19 + Tailwind 4 + lucide-react; global hotkeys via uiohook-napi; typing via koffi SendInput; offline recognition via SenseVoice / Parakeet (sherpa-onnx) / whisper.cpp; enhanced VAD via Silero + onnxruntime; phone microphone via a Cloudflare Worker relay you can self-host. See desktop/README.md.
An earlier Chrome extension form lives in this repo too.
Issues and pull requests welcome — see CONTRIBUTING.md.
MIT © wookat & SpeakType contributors
SpeakType is an independent open-source project, unaffiliated with OpenAI, Google, ByteDance, Zhipu or any other vendor. The no-API-key providers reuse a login session you create yourself against undocumented endpoints, which may not comply with those services' terms; the account risk is yours to judge. Prefer the built-in offline engine or your own API key if unsure. See DISCLAIMER.md.
450 commits
29 commits
TypeScript
98.0%
Hold a key, speak, release — your words land at the cursor in any app. Open-source, local-first AI voice typing for Windows (macOS preview): offline SenseVoice / Parakeet / Whisper, hands-free mode, optional cloud engines, a dictionary that learns from your edits, and your phone as a microphone.
7
stars
479
commits
TypeScript
primary language
Sep 9, 2026
updated
You speak, it types — open-source AI voice typing, into any app.
Hold a key, talk, release — the words land at your cursor.
Recognition engine, AI polishing and hotword correction are all yours to configure; keys and audio never leave your control.
⬇ Download · 🌐 Website · 简体中文 · Report an issue · Dev docs
Most AI dictation tools are closed source, or route your voice through the vendor's own servers. SpeakType flips that:
| 🔓 Fully open source (MIT) | Protocols, correction algorithms, UI — every line is readable, hackable, self-hostable |
| 🛡️ No backend of its own | Runs no cloud service; your audio goes only to the recognition service you choose and configure — or stays entirely offline |
| 🧩 Everything pluggable | Recognition engine, polishing model, hotword dictionary, persona styles, hotkeys: all yours |
| 📱 Your phone as the microphone | Desktop with no mic? Scan a QR code and talk into your phone — LAN direct, or through a relay you can self-host |
| 🎙️ Push to talk | Hold RightCtrl (any key or mouse side button, recordable), live captions stream as you speak, release to type into any Windows app |
| ⚡ Hands-free mode | Tap Alt+Q to start, auto-stops on silence — great for long dictation |
| 🎭 Personas | Alt+1..9 to switch: default / auto-translate / report-to-boss / CLI / custom prompt — and optionally switch automatically per foreground app |
| 📈 Gets better as you use it | Fix a word by hand after it lands and SpeakType learns it into your dictionary — the same mistake won't happen twice |
| 📖 Hotword correction | Add names and product terms; homophone and near-homophone errors are fixed locally via pinyin matching |
| ✍️ Select and rewrite | Select text, hold F8 and say "translate to English" / "make it formal" — the selection is replaced in place |
| 🧠 Enhanced voice detection | Optional Silero VAD neural network (~35MB, on-device) for accurate auto-stop and hallucination filtering in noise |
| 🔁 Retryable failures | Failed recordings are kept locally (max 20 clips / 7 days / 50MB, can be disabled); retry from History without re-speaking |
| 🌗 Dark mode | Follows the Windows light/dark setting in real time, or force light/dark in Settings |
| 🎵 File transcription | Drop an audio/video file (mp3, wav, m4a, mp4… up to 3h) → offline segmented transcript with timestamps → export TXT / SRT |
/audio/transcriptions API — Base URL + API key + model name. Presets for OpenAI Whisper, Groq (free tier), Fireworks, Mistral Voxtral, SiliconFlow and Alibaba Bailian, with a connection test.AI polishing likewise accepts any OpenAI-compatible chat endpoint (OpenAI, Google Gemini's OpenAI-compatible endpoint, Groq, DeepSeek, Zhipu GLM-4-Flash, Kimi, Qwen, or a local Ollama / LM Studio endpoint — for local endpoints the API key can be left empty). Without one, a local cleanup pass still handles self-corrections ("5pm — no, 6pm" → "6pm").
| Platform | Download | Status |
|---|---|---|
| Windows 10/11 x64 | SpeakType-Setup-0.17.0.exe (~98MB) | ✅ Stable |
| Windows portable | SpeakType-0.17.0-portable.exe (~87MB) | ✅ Stable |
| Android (phone as microphone) | SpeakType-0.17.0.apk | ✅ Available |
| macOS (Apple Silicon / Intel) | Platform layer merged; installer pending a macOS build environment | 🚧 In progress |
Latest release: https://github.com/wookat/speaktype/releases/latest · Website: https://speaktype.zalize.com
Or install via Scoop:
scoop bucket add speaktype https://github.com/wookat/scoop-speaktype
scoop install speaktype
RightCtrl, speak, release.%APPDATA%\SpeakType.Simplified Chinese, Traditional Chinese, English, Japanese and Korean built in (follows system or manual, applies instantly); the locale architecture welcomes more community additions.
cd desktop
npm install
npm run dev # dev mode
npm run typecheck
npm run pack # NSIS installer → release/
Stack: Electron + React 19 + Tailwind 4 + lucide-react; global hotkeys via uiohook-napi; typing via koffi SendInput; offline recognition via SenseVoice / Parakeet (sherpa-onnx) / whisper.cpp; enhanced VAD via Silero + onnxruntime; phone microphone via a Cloudflare Worker relay you can self-host. See desktop/README.md.
An earlier Chrome extension form lives in this repo too.
Issues and pull requests welcome — see CONTRIBUTING.md.
MIT © wookat & SpeakType contributors
SpeakType is an independent open-source project, unaffiliated with OpenAI, Google, ByteDance, Zhipu or any other vendor. The no-API-key providers reuse a login session you create yourself against undocumented endpoints, which may not comply with those services' terms; the account risk is yours to judge. Prefer the built-in offline engine or your own API key if unsure. See DISCLAIMER.md.
450 commits
29 commits
TypeScript
98.0%