v0.1.2-preview · Windows Local Voice Input
⚠️ Preview Release — This is an early preview version for testing and feedback. Expect bugs and breaking changes before the stable release.
A privacy-first, fully-local voice input tool for Windows. Speak into your microphone and your words appear wherever your cursor is — no typing needed. Speech recognition runs entirely on your GPU via Qwen3-ASR, so no audio ever leaves your computer.
VoiceInput is like having a friend who types everything you say. Instead of using your keyboard, you just:
- Hold a key (Alt+V) on your keyboard
- Talk into your microphone
- Let go of the key
- Your words magically appear where your cursor is blinking!
It works in any program — Word, WeChat, browser search boxes, games, anywhere you can type. And because it runs 100% on your own computer, nobody can listen to your recordings.
- 🎙️ Push-to-talk — Hold
Alt+V, speak, release to transcribe and paste automatically - 🖱️ Click to talk — Click the microphone button, click again to stop
- 🌐 Language switching —
Alt+Lcycles Auto / Chinese / English - 🔒 100% offline — All recognition runs on the local GPU, zero cloud calls
- 📝 Custom terms — Define ASR misrecognition → correct-text mappings
- 🩺 Auto-recovery — Backend crash auto-restart + file logging
- 🖥️ System tray — Quick access to settings, logs, and quit
- ⚡ VAD auto-stop — Detects silence and stops recording automatically
- 📋 Smart paste — Auto-pastes text at cursor, restores your clipboard after
- 🔄 Update check — Notifies you when a new version is available
| Requirement | Detail |
|---|---|
| OS | Windows 10 1903+ / Windows 11 |
| GPU | NVIDIA graphics card with CUDA support, ≥ 4 GB VRAM |
| Disk | ~200 MB app + ~1.2 GB model (downloaded once) |
| RAM | 8 GB+ |
| Input | A microphone (built-in or external) |
⚠️ Important: An NVIDIA graphics card is required. Intel/AMD integrated graphics are not supported. If you're not sure what GPU you have, look for "NVIDIA" in your Task Manager → Performance tab.
- Go to the Releases page
- Download the file named
VoiceInput-v0.1.2-preview-win64.zip
- Find the downloaded
.zipfile (usually in your Downloads folder) - Right-click the zip file → Extract All...
- Choose a location, for example:
C:\VoiceInput - Click Extract
💡 Tip: Don't put it in a folder that needs admin permission (like
C:\Program Files\), or it might not work properly.
- Open the extracted folder
- Double-click
voiceinput.exe - A small floating window will appear on your screen
🛡️ If Windows shows a "Windows protected your PC" warning, click More info → Run anyway. This is normal for apps that aren't from the Microsoft Store.
The first time you run VoiceInput, it needs to download the AI model (about 1.2 GB). This happens only once.
- The app will show a download screen
- Choose ModelScope (recommended, faster for China) or HuggingFace (international)
- Click 开始下载 (Start Download)
- Wait for the download to finish (this depends on your internet speed, usually 5-20 minutes)
- Click 加载模型 (Load Model) — this takes about 10-20 seconds
- Open any program where you can type (e.g., a Word document, a chat box, a search bar)
- Click where you want the text to appear
- Press and hold
Alt+Von your keyboard - Speak into your microphone
- Release
Alt+V - Your words will appear automatically!
The small window on your screen has these parts:
- Microphone button (big circle): Click to start/stop recording
- Language badge (top-left, shows "Auto"/"中"/"EN"): Click to switch language
- Gear icon (top-right): Click to open Settings
- X icon (top-right): Click to hide the window (app keeps running in system tray)
| Shortcut | What it does |
|---|---|
Alt+V (hold) |
Push-to-talk: hold while speaking, release to transcribe |
Alt+L |
Switch language: Auto → Chinese → English → Auto |
A green microphone icon appears in your system tray (bottom-right of screen, near the clock). Right-click it to:
- Show/hide the panel
- Open Settings
- Switch language
- Load/unload the model (free GPU memory)
- View log files
- Quit the app
Open Settings by clicking the gear icon on the floating window, or right-click the tray icon → 设置.
Choose which microphone to use. Click Test to record a short sample and see if it works.
Change the push-to-talk hotkey (default: Alt+V) and language-switch hotkey (default: Alt+L).
Adjust sample rate, audio normalization, silence trimming, and silence threshold.
- Model strategy: How the AI model uses GPU memory
- Balanced (default): Unloads after 30 minutes idle
- Performance: Always loaded (fastest response)
- Memory saver: Unloads after each use (lowest VRAM)
- Accurate: Maximum precision
- Punctuation mode: How punctuation is handled
- Simple (default): Auto-adds periods at the end
- Raw: No changes
- Input method: Removes end punctuation (good for search boxes)
- Auto space (Chinese-English): Adds spaces between Chinese and English
- VAD silence detection: Automatically stops recording after 2 seconds of silence
- Auto-start on boot: Start VoiceInput when Windows starts
- Paste delay, clipboard restore, max recording time, request timeout
Add custom word corrections. For example, if the AI always mishears your name "Xiaoming" as "Xiao Ming", add a rule to fix it.
- Most likely cause: No NVIDIA GPU. VoiceInput requires an NVIDIA graphics card. Check Task Manager → Performance tab for "NVIDIA".
- Solution: Install the latest NVIDIA driver. If you have a laptop with both Intel and NVIDIA, set VoiceInput to use NVIDIA in NVIDIA Control Panel.
- VoiceInput is already open. Look for the green microphone icon in your system tray (bottom-right of screen).
- Check: Is the model loaded? Open Settings → Advanced → Model strategy. If it says "not loaded", click the tray icon → 预加载模型.
- Check: Is your microphone working? Open Settings → Microphone → Test.
- VoiceInput pastes text at your cursor position. Click where you want the text before speaking.
- Some apps (like certain games) may block paste. Try clicking in a text box first.
- First recognition after loading takes longer (the model is warming up). Subsequent ones are faster.
- Try changing Model Strategy to Performance (always loaded) in Settings.
- Make sure no other heavy GPU programs are running.
- Choose ModelScope if you're in China (faster), or HuggingFace for international.
- The download supports resume — if it stops, just click download again to continue.
- Node.js 18+ and npm
- Rust (stable toolchain)
- Python 3.10+ with backend dependencies (
torch,fastapi,qwen_asr, ...) - Tauri CLI 2.x (
npm install -D @tauri-apps/cli) - NVIDIA CUDA Toolkit 11.8+
# 1. Install frontend dependencies
npm install
# 2. Build the Python ASR backend (PyInstaller onefile → src-tauri/binaries/)
.\build_backend.bat
# 3. Run in development mode
npm run tauri dev
# 4. Build the release zip (voiceinput.exe + sidecar + resources)
powershell -ExecutionPolicy Bypass -File .\build_release_zip.ps1The release zip is output to .\release\VoiceInput-v0.1.2-preview-win64.zip.
Note on NSIS — The PyInstaller onefile sidecar is ~2.7 GB (bundling torch + transformers), which exceeds NSIS's mmap limit. The project ships a zip distribution instead. See
build_release_zip.ps1.
voiceinput.exe (Tauri/Rust) ──spawn──▶ asr_backend.exe (Python/FastAPI)
│ │
├─ cpal (audio capture) ├─ Qwen3-ASR-0.6B (GPU inference)
├─ enigo (paste simulation) ├─ uvicorn (HTTP server on 127.0.0.1:8765)
├─ rdev (global hotkeys) └─ postprocess (term correction)
└─ React 18 (floating UI)
| Layer | Tech | Key Files |
|---|---|---|
| Frontend | React 18 + TypeScript + Tailwind | src/ |
| Native shell | Rust + Tauri 2 | src-tauri/src/ |
| ASR backend | Python + FastAPI + PyTorch | backend/ |
User config lives at %LOCALAPPDATA%\VoiceInput\config.json. Logs at %LOCALAPPDATA%\VoiceInput\logs\.
voice-input-v2/
├─ src/ # React frontend
├─ src-tauri/ # Rust + Tauri native shell
│ ├─ src/ # Rust source
│ ├─ binaries/ # PyInstaller sidecar output (gitignored)
│ └─ tauri.conf.json # Tauri bundle config
├─ backend/ # Python ASR backend
│ ├─ server.py # FastAPI server
│ ├─ model_manager.py # Model download/load
│ ├─ postprocess.py # Text post-processing
│ └─ asr_backend.spec # PyInstaller spec
├─ resources/ # Default config, icon
├─ build_backend.bat # Build sidecar EXE
├─ build_release_zip.ps1 # Build release zip
└─ docs/PRD.md # Product requirements
MIT — see LICENSE.
- Qwen3-ASR — the ASR model
- Tauri — the app framework
- PyInstaller — Python bundling
New Features:
- 🔄 Update check — App now checks GitHub for new versions on startup
- 📋 Single instance lock — Prevents running two copies at once
Improvements:
- 💬 Friendly error messages — Errors now show clear Chinese explanations (e.g., "microphone not found" instead of raw error codes)
- 🖥️ GPU error dialog — When NVIDIA GPU is not found, a clear popup explains the problem instead of silently crashing
- ⚙️ Settings panel — Increased height to fit all new settings without scrolling issues
- 📝 Default config — Added missing P2 feature fields (auto_start, punctuation, VAD, spacing)
Bug Fixes:
- Fixed tray "Settings" menu not working (was looking for a nonexistent window)
- Fixed
process_manager.rscomment missing "memory" strategy - Fixed
build_release_zip.ps1hardcoded version string
New Features:
- 🧠 Memory strategy — New model strategy that releases VRAM after each recognition
- 🔇 VAD silence detection — Auto-stops recording after 2 seconds of silence
- 🚀 Auto-start on boot — Optionally start VoiceInput when Windows starts
- 〽️ Punctuation modes — Choose how punctuation is handled (raw/simple/input_method)
- 🀄 Chinese-English spacing — Auto-adds spaces between Chinese and English text
/model/strategyAPI endpoints for runtime strategy switching
Initial Release:
- Core push-to-talk voice input (Alt+V)
- 100% local Qwen3-ASR recognition
- Auto-paste at cursor position
- Multi-language support (Auto/Chinese/English)
- Model download from ModelScope/HuggingFace
- System tray, settings panel, custom terms
- Backend crash auto-restart