Skip to main content

Local faster-whisper speech-to-text app with global hotkeys for Windows

Project description

Whisper Key - Local Speech-to-Text for Windows

Global hotkey to start/stop recording and auto-paste transcription wherever your cursor is.

Questions or ideas? Discord Server

🎯 Features

  • Global Hotkey: Press Ctrl+Win to start recording, Ctrl to stop
  • Auto-Paste: Transcription inserted at your cursor via auto-paste
  • Auto-Send: Press Alt to stop, auto-paste, and auto-send with ENTER keypress
  • Offline Capable: No internet required after models downloaded
  • Local Processing: Voice data never leaves your computer
  • Voice activity detection: Prevent hallucinations, auto-stop accidental hotkey presses
  • Configurable: Customize hotkeys, model, transcription actions, and audio settings

🚀 Quick Start

Prerequisites

  • Windows 10/11
  • Microphone

Option 1: Download Portable App

  1. Download the latest release zip
  2. Extract the zip file
  3. Run whisper-key.exe

Option 2: Install via pipx

Prerequisites:

  • Python 3.8+ installed on Windows
  • pipx installed (pip install pipx)

Install the application globally:

pipx install whisper-key-local

Add VAD support (prevents silence hallucinations):

pipx inject whisper-key-local git+https://github.com/TEN-framework/ten-vad.git@v1.0-ONNX

Run from anywhere:

whisper-key

Option 3: Development Installation

Prerequisites:

  • Python 3.8+ installed on Windows

Clone the repository:

git clone https://github.com/PinW/whisper-key-local.git
cd whisper-key-local

Install the dependencies:

pip install -e .

Add VAD support (prevents silence hallucinations):

pip install git+https://github.com/TEN-framework/ten-vad.git@v1.0-ONNX

Run the application:

python whisper-key.py

📦 Package Dependencies

  • faster-whisper - Fast AI speech recognition
  • numpy - Numerical computing support
  • sounddevice - Audio recording
  • global-hotkeys - System-wide hotkey detection
  • pyperclip - Clipboard operations
  • ruamel.yaml - Configuration file parsing (YAML)
  • pyautogui - Key simulation for Ctrl+V auto-paste and auto-ENTER
  • pywin32 - Windows API access for window management
  • pystray - System tray integration
  • Pillow - Image processing for system tray icons
  • hf-xet - Cache management for Hugging Face models
  • ten-vad - Voice Activity Detection to prevent silent hallucinations

🎮 Basic Usage

  • Boot the app, the "tiny" model will download and start
  • Press Ctrl+Win to start recording
  • Speak into your microphone
  • Press Ctrl to stop recording and transcribe
  • The transcribed text is auto-pasted on your text cursor
  • Alternatively press Alt to stop recording, auto-paste, and also send an ENTER keypress
  • Right click the system tray icon to change models

Configuration

The app automatically creates a user settings file in %APPDATA%\Roaming\whisperkey\user_settings.yaml, where you can:

  • Change whisper model size (tiny/base/small/medium/large)
  • Hotkeys
  • Configure automation (auto-paste, auto-ENTER)
  • Voice activity detection
  • And much more

🔧 Troubleshooting

  • Check the log file app.log for detailed error messages
  • Delete the user settings file in %APPDATA%/whisperkey/user_settings.yaml and restart to reset to defaults

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whisper_key_local-0.5.2.tar.gz (524.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whisper_key_local-0.5.2-py3-none-any.whl (528.9 kB view details)

Uploaded Python 3

File details

Details for the file whisper_key_local-0.5.2.tar.gz.

File metadata

  • Download URL: whisper_key_local-0.5.2.tar.gz
  • Upload date:
  • Size: 524.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for whisper_key_local-0.5.2.tar.gz
Algorithm Hash digest
SHA256 477e759b36e9ae59fc63cf030de7290adf7e1010e053e53f31fba8b888b1204b
MD5 c8833521e6e0023ab37fbcf4da92592a
BLAKE2b-256 c56709a98016a7d7793749f722a0af7a96f47f0256759cfba31430ea0a958da8

See more details on using hashes here.

File details

Details for the file whisper_key_local-0.5.2-py3-none-any.whl.

File metadata

File hashes

Hashes for whisper_key_local-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ede4a9a1cccb52a89616c2af83e1831f786a5d68f6dcacb6180b3e7a37c41fa6
MD5 e318045e51788f7d1e3aa688cf622af7
BLAKE2b-256 1a2f7be346ccde682f555c3a2957d86ec5c537010f96f8cb9380d709d74e4ce9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page