Whispering
Flawless, Private, and Blazing Fast Speech-to-Text for Developers
Whispering is a deep integration of OpenAI's Whisper model directly into your VS Code workflow. Designed specifically for developers who want to transcribe thoughts into code or documentation without compromising speed, privacy, or system resources.
[!NOTE]
Optimized specifically for Visual Studio Code on Windows.
Linux Users: The Python keyboard library requires root access (/dev/input) to capture global hotkeys. You may need to run your environment with elevated privileges or configure udev rules to use the extension on Linux.
✨ Key Features
- 🚀 Smart Auto-Setup: Whispering automatically handles its own Python environment. While it works out of the box if Python is present, using uv significantly speeds up the initial dependency installation (including PyTorch).
- 🧠 True Multi-Backend Support: Run inference where it makes the most sense for your machine:
- CPU: Highly optimized fallback using
faster-whisper (CTranslate2).
- CUDA (NVIDIA GPUs): Blazing fast transcription leveraging
faster-whisper with GPU acceleration.
- OpenVINO (Intel NPUs/iGPUs): Harness the power of your laptop's AI accelerator using
optimum-intel.
- 🎙️ Seamless Push-to-Talk: Hold your configured hotkey (default: F8) to record, and release to instantly transcribe. Text is automatically inserted at your cursor location.
- 👀 Visual Feedback: Real-time progress bars natively integrated into the VS Code UI for model loading, backend switching, and initial installations.
- 🔒 Privacy First: 100% offline. Audio data never leaves your machine. Your code and thoughts remain strictly local.
🛠️ Requirements & Installation
Whispering attempts to set everything up automatically. For a clean Windows installation, we recommend using winget to quickly install the necessary tools.
1. Fast Package Management with uv (Recommended)
We highly recommend uv for the fastest and most reliable Python environment management:
# Install uv (Requires NO admin rights)
winget install -e --id astral-sh.uv --scope user
2. Core Dependencies (Python & FFmpeg)
If you don't have them yet, install them via terminal (PowerShell/CMD):
# Install Python 3.10
winget install -e --id Python.Python.3.10 --scope user
# Install FFmpeg (Required for audio processing)
winget install -e --id Gyan.FFmpeg --scope user
[!TIP]
Work Computers / Restricted Rights: If winget is blocked or fails, you can download FFmpeg manually:
- Download FFmpeg (gyan.dev).
- Extract it and manually add the
bin folder to your system PATH.
3. Hardware Acceleration (Optional)
If you have an NVIDIA GPU, ensure your CUDA drivers are up to date. Whispering installs PyTorch automatically, but you can manually update it within the venv_whisper if preferred:
# Example for manual Torch update with CUDA 11.8 support
./venv_whisper/Scripts/pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
🚀 Getting Started
- Install the Extension: Download Whispering from the VS Code Marketplace.
- Auto-Setup: Press your configured hotkey (default: F8).
- Whispering will detect your Python installation and automatically create a virtual environment (
venv_whisper).
- All necessary libraries (Torch, Faster-Whisper, OpenVINO) will be downloaded automatically.
- Talk: Once the notification says "Ready!", simply hold F8, speak, and release. Your text will magically appear at your cursor position!
[!TIP]
If auto-setup fails, you can trigger a manual re-installation at any time using the command Whispering: Install Python Dependencies from the Command Palette (Ctrl+Shift+P).
🐍 Python Libraries
faster-whisper, sounddevice, pynput, pyperclip, scipy, torch, optimum-intel[openvino], numpy, nvidia-cublas-cu12, nvidia-cuda-runtime-cu12, nvidia-cudnn-cu12
📜 Changelog
0.3.1
- TTS Default Changed: Text-to-Speech is now disabled by default for new installations to prevent unexpected audio playback. It can be easily re-enabled in the settings.
- Agent Skills: Added a communication skill for the AI assistant.
0.3.0
- Pocket TTS Integration Enhancements:
- Implemented smart sentence chunking to cleanly bypass the 50-token limit of the Pocket TTS model without skipping words.
- Added 300ms silence padding between generated chunks to eliminate choppy playback and produce more natural speech flow.
- Resolved severe Unicode encoding issues causing German umlauts (ä, ö, ü, ß) to be mispronounced or mangled by enforcing strict UTF-8 streams for background TTS processes.
- Fixed MCP Server failing to respect VSCode workspace default model and voice settings.
0.2.5
- Bug Fixes & Open Source Prep:
- Fixed 8 critical bugs (Python path quoting, task management, type hints).
- Cleaned up personal references for open-source readiness.
- Added comprehensive third-party license documentation.
- Switched internal test tools to
pynput for consistency.
0.2.4
- Robust Dead-Process Fix: Implemented an aggressive OS-wide process cleanup that searches for stale
whisper_listener.py instances during startup and installation. This eliminates "Permission Denied" errors caused by file locks on Windows during extension updates.
0.2.3
- Installation Reliability: The extension now automatically ensures all active listeners are stopped before attempting to install or update dependencies, preventing installation failures.
0.2.2
- Enhanced CUDA Support: Explicitly added
nvidia-cublas-cu12, nvidia-cuda-runtime-cu12, and nvidia-cudnn-cu12 to the core requirements. This ensures seamless GPU acceleration on Windows without requiring manual library path configuration.
0.2.1
- Robust Process Management: Added idempotency checks to prevent redundant Python processes and ensure strictly one listener instance.
- Improved Startup Stability: Refactored the internal trigger logic with a specialized debounce and delay mechanism to resolve race conditions during activation.
- Audio Diagnostics: Integrated a silent-audio check that warns the user if the recorded amplitude is critically low (e.g., due to microphone issues).
0.2.0
- Enterprise-Grade Stability: Moved Python environment and models to a persistent, non-roaming local storage (
%LocalAppData%). This prevents massive re-downloads on extension updates and avoids enterprise network load.
- Final Localization Polish: Over 30 languages are now 100% localized (no English fallbacks).
- Setup Optimization: Improved detection of hardware accelerators (CUDA/OpenVINO).
- Documentation: Fully documented architecture and used Python libraries.
0.1.9
- Enterprise Compatibility Update: Replaced
pyautogui with pynput for better compatibility in restricted enterprise environments.
- Hardware Acceleration: Full support for Intel OpenVINO (NPU/iGPU) via
optimum-intel.
- Backend Refactoring: Unified on
faster-whisper for both CPU and GPU (replacing pywhispercpp).
- Clipboard Management: Switched to
pyperclip for consistent behavior across platforms.
0.1.8
- Global Localization: Full support for 32+ languages.
- Language Bundles: Added high-quality NLS and l10n bundles for Europe, Americas (Quechua), Asia, Africa, and Middle East.
- Improved UX: Settings and notifications are now fully localized based on VS Code display language.
0.1.7
Documentation: Detailed installation guide added (English), prioritizing uv and winget.
Insertion Modes: Added support for global (system-wide via clipboard) and vscode (direct via API) modes.
0.1.6
- Paste Mode Control: Dedicated insertion modes to preserve clipboard history.
- VSIX: Build optimizations for version 0.1.6.
0.1.5
- Clipboard History Exclusion: Initial preparations for bypassing Windows Clipboard History.
0.1.4
- Process Management: Improved lifecycle management.
0.1.3
- Localization: Added full support for English and German.
- Settings Refactoring: Unified configuration keys (
whispering.*).
0.1.2
- Process Management: Improved lifecycle management for Python background processes to ensure clean exits.
0.1.1
- CUDA Runtime Fixes: Resolved issues with missing NVIDIA DLLs on Windows by automatically including local library paths.
📄 License & Third-Party Notices
Whispering is licensed under the MIT License.
Key Dependencies & Their Licenses
[!NOTE]
pynput is used as an unmodified, dynamically-linked library under the LGPLv3. Its source code is available at github.com/moses-palmer/pynput.
NVIDIA CUDA libraries (cublas, cudnn, cuda-runtime) are not bundled with Whispering. They are downloaded via pip and subject to the NVIDIA CUDA Toolkit EULA.
For the full list of dependencies, see THIRD_PARTY_LICENSES.md.
Built to boost developer productivity. Voice your code.