Skip to content

About

Hold a key, speak, done - fully offline push-to-talk voice typing & voice notes for Windows, powered by whisper.cpp

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Repository files navigation

WhisperPress icon

WhisperPress

Hold a key. Speak. Your words appear — in any app.
Fully offline voice typing & voice notes for Windows, powered by whisper.cpp.

繁體中文 · English · 日本語

WhisperPress demo — dictating Chinese, English and Japanese into Notepad

🔊 Full demo with real voice — Chinese, English and Japanese dictated into Notepad:

_2026_06_12_02_21_16_302.mp4

Why WhisperPress?

Press and hold a hotkey (default F9), talk, release — your speech is transcribed locally and typed straight into whatever app your cursor is in: your editor, browser, chat, terminal. Every dictation is also saved as a searchable note.

  • 100% offline. Audio never leaves your PC. No account, no cloud, no telemetry.
  • Works everywhere. A true global hotkey + simulated paste/typing — VS Code, Word, Slack, anything.
  • More than dictation. Import audio files, record meetings (system audio), summarize and ask questions with a local LLM.

Features

🎙 Push-to-talk dictation Hold to talk, or quick-tap to lock recording. Toggle mode available.
⌨️ Types into any app Pastes at the cursor (clipboard is restored), or types character-by-character.
📝 Notes history Every dictation/transcription saved locally as a note. Search, edit, copy.
📂 Audio file import MP3, M4A, WAV, OGG, FLAC… with live streaming output while transcribing.
🖥 Meeting recording Captures system audio (Teams / Meet / Zoom) + your mic, transcribes locally.
🌍 100+ languages Whisper multilingual models, auto-detect or fixed language, optional translate-to-English.
🈶 Traditional/Simplified Chinese Deterministic OpenCC conversion of Chinese output — no model roulette.
✦ AI summaries & Q&A Optional. Point it at any OpenAI-compatible endpoint — e.g. local Ollama to stay offline.
⏱ Timestamped export Export notes as .txt, .md, or .srt subtitles.
🔒 Private by architecture Models run on your CPU/GPU via whisper.cpp. Notes are plain JSON on your disk.
🪶 Custom vocabulary Initial-prompt hints for names, jargon, and output style.
🧑‍💻 Coding mode Dictate into Windows Terminal, VS Code or Claude Code: mixed Chinese/Japanese/English speech, a code vocabulary (use effect → useEffect), and Enter only if you want it.
💻 Hardware-aware setup Detects your CPU / RAM / NVIDIA GPU and applies the best engine + model in one click.

Coding mode

For talking to a terminal, an editor or an AI coding agent such as Claude Code. Turn it on in Settings → Coding mode, or from the tray menu:

  • Auto: on whenever the window you're dictating into is a terminal or code editor (Windows Terminal, PowerShell, cmd, VS Code, Cursor, Windsurf, JetBrains IDEs, Android Studio, Visual Studio, Sublime Text, WezTerm, Alacritty…). Add other apps by process name, e.g. Claude.
  • Always on, or Off (the default).

What changes while it's on (the overlay shows a </> code badge):

  • Mixed languages. Whisper gets a sample sentence in your UI language with English code terms in it, so "幫我跑 pytest,然後 git commit" or "npm install してから" keep the English words in Latin script.
  • Code vocabulary. A list of terms you say (pytest, kubectl, useEffect, …) biases Whisper toward those spellings and fixes case and spacing afterwards: Pytest → pytest, use effect → useEffect, node js → Node.js. Lines like cube control => kubectl replace what Whisper heard with what you meant. Paths, URLs and flags (package.json, github.com/…, --use-effect) are left alone.
  • No sentence-final period, so git status doesn't arrive as git status..
  • Enter is up to you. By default the text is inserted and you press Enter after checking it. Turn on Press Enter after inserting to run the command or send the prompt hands-free.

Still fully offline: the vocabulary is only a prompt for the local model. Terminals running as administrator can't receive input from a normal app (a Windows rule); run WhisperPress as admin too if you need that.

Download

Grab the latest build from the Releases page:

  • WhisperPress-Setup-x.x.x.exe — installer (recommended, creates a desktop shortcut)
  • WhisperPress-Portable-x.x.x.exe — portable, just download and run

Windows SmartScreen may warn on first run (the binaries are not code-signed). Click More info → Run anyway. All source code is public here — review it or build it yourself.

Getting started

Run from source

Requires Node.js 20+ on Windows 10/11.

git clone https://github.com/b84330808/whisperpress.git
cd whisperpress
npm install
npm start

On first run, WhisperPress downloads the whisper.cpp engine (~16 MB, v1.8.6 release binaries) and the model you pick. Everything after that is offline.

Build the installer

npm run dist     # NSIS installer + portable exe in release/

Models

Downloaded on demand from Hugging Face (ggerganov/whisper.cpp):

Model Size Best for
tiny / base 78–148 MB quick drafts, fast CPUs not required
small 488 MB good general balance
large-v3-turbo (q5_0) 574 MB recommended — best speed/accuracy
medium q5_0 / large-v3 q5_0 539 MB – 1.1 GB maximum accuracy

NVIDIA GPU? Switch Settings → Compute to CUDA for a much faster engine build.

Tips

  • Traditional Chinese output: pick Settings → Transcription → Chinese output script → Force Traditional for a guaranteed script (OpenCC); a vocabulary hint like 以下是繁體中文的逐字稿: further improves word choice.
  • Tap to lock: quick-tap the hotkey to keep recording hands-free; press it again to finish. Esc cancels.
  • AI features: install Ollama, ollama pull qwen3:4b, then enable AI in Settings with the default base URL http://localhost:11434/v1.

How it works

  • Electron UI; no heavyweight frameworks — plain HTML/CSS/JS.
  • uiohook-napi for the global push-to-talk hook (prebuilt, no compiler needed).
  • Mic/system audio captured via WebAudio at 16 kHz mono, encoded to WAV.
  • whisper.cpp whisper-server kept warm for instant dictation; whisper-cli streams long files segment-by-segment.
  • Text injection via Win32 SendInput (Ctrl+V paste with clipboard restore, or per-character Unicode typing) through a tiny persistent PowerShell helper — no native module compilation anywhere.
  • Notes are one JSON file each in %APPDATA%\WhisperPress\notes.

Privacy

Your audio is processed in-memory and (optionally) stored only on your disk. The app talks to the network exclusively to download engine/model files at setup, and — only if you enable AI features — to the endpoint you configure.

Roadmap

  • SenseVoice / Parakeet engines (sherpa-onnx) for even faster CJK transcription
  • Streaming (real-time) dictation preview
  • VAD-based auto-stop
  • Per-app vocabulary profiles
  • Installer code signing

License

MIT

About

Hold a key, speak, done - fully offline push-to-talk voice typing & voice notes for Windows, powered by whisper.cpp

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages