Repository navigation
Releases
Releases · willbilec/nvda-voice-input
v0.8.1 - Transcription accuracy and smarter cleanup
Transcription accuracy
- Correctly maps the selected Windows microphone and preserves its native capture rate.
- Keeps Groq's complete top-level transcript authoritative.
- Adds confidence-gated alternate decoding for short dictation when auto-retry is enabled.
- Compacts long internal silence before upload to reduce Whisper repetition and hallucination loops.
Smarter cleanup
- Moderate cleanup understands explicit repairs such as "I mean," "sorry," "or rather," and "scratch that."
- Adds structured positive and negative examples for GPT-OSS and Gemini.
- Allows only bounded, validated self-corrections and small function-word grammar repairs; unsafe paraphrases still fall back to the raw transcript.
Validation
- 248 automated tests pass.
- The add-on manifest is version 0.8.1 and the package was inspected for required files and portable ZIP paths.
v0.8.0 — Accuracy and reliability
Accuracy first
- Adds a deterministic cleanup-fidelity gate. Meaning-changing edits to openings, pronouns, negation, modality, certainty, conditionals, and excessive lexical wording are rejected in favor of the raw Whisper transcript.
- Prevents failures such as
Do some researchbecomingI should do some research. - Uses temperature 0 for Groq and Gemini cleanup.
- Defaults new configurations to full
whisper-large-v3and an empty prompt slot. - Makes Whisper segment filtering conservative so a single unusual diagnostic cannot erase real speech.
Audio and reliability
- Adds Windows Core Audio capture through vendored SoundCard, CFFI, and NumPy dependencies, with safe PortAudio fallback.
- Adds microphone pre-roll, silence trimming, fallback-microphone safeguards, stale-device protection, and recorder shutdown hardening.
- Adds connection reuse/warm-up, faster text insertion, clipboard restoration fixes, and a reliable add-on packaging path.
Validation
- 227 automated tests pass.
- The packaged add-on was inspected for its manifest, plug-in entry point, documentation, and portable forward-slash ZIP paths.
Download the .nvda-addon file below, open it with NVDA, and restart NVDA when prompted.
v0.7.1 - Cleanup ASR mishearing license + speedup
v0.7.1 - Cleanup ASR mishearing license + speedup
Highlights
- Moderate cleanup now fixes obvious ASR mishearings —
we→youwhen addressing a single listener,tensor flow→TensorFlow,post gress SQL→PostgreSQL,their/there/they'rehomophone swaps. The previous prompt was so restrictive that the model had nothing actionable to fix on Whisper's already-clean output. - Cleanup is roughly twice as fast for default users. The Groq client now sends
reasoning_effort: "low"for gpt-oss models, capping the chain-of-thought that was wasted on a fully rule-bound cleanup prompt. Plus a hardmax_completion_tokens: 2000cap andinclude_reasoning: falseso the model can't burn 30s generating forever or ship bytes we never read. - Double-press
NVDA+Shift+V(within 500 ms) force-stops the add-on from any state. Cancel token, all the gates, dirty buffer cleared. The escape hatch that should never have been needed in the first place. - Custom microphone no longer silently reverts to "System default" when the saved device is on a filtered host API.
ensure_device_in_choices()injects the saved device so the dialog shows it as the active selection. - Add-on no longer gets stuck on "Processing" if PortAudio's
stop_stream()hangs (Realtek, several USB devices).AudioRecorder.stop()now isolates the call soclose()always runs.
Full changelog
See CHANGELOG.md for the per-version detail (v0.6.0, v0.6.1, v0.7.0, v0.7.1).
Install
Replace your existing add-on installation with the attached groqVoiceDictation-0.7.1.nvda-addon, then restart NVDA (or toggle the add-on off/on from the add-ons manager).
Tests
188 unit tests pass: python -m pytest tests/
v0.5.0 — Cleanup model selection fix
v0.5.0 (2026-07-04)
Fixed
- Cleanup model selection not sticking in settings dialog.
CleanupDialog._on_model_changecalledself.GetSizer().Layout(), butCleanupDialogis awx.Dialog(not aSettingsPanel) and has no sizer of its own, soGetSizer()returnedNoneand.Layout()threwAttributeError: 'NoneType' object has no attribute 'Layout'on every model change. The exception left the dialog's event loop in a confused state, causing subsequent OK clicks to intermittently fail to persist the new value tonvda.ini. Changed toself.Layout()with a comment explaining why. Symptom: users trying to switch the cleanup model from Gemini to Groq (or vice versa) sometimes found the change reverted after restarting NVDA.
Added
- Three regression tests in
CleanupDialogRegressionTeststhat assert the buggyself.GetSizer().Layout()cannot be reintroduced and that the rationale comment is preserved.
Installation
Download groqVoiceDictation-0.5.0.nvda-addon below and open it with NVDA (or drop it into your addons folder and restart NVDA). The fixed settings_panel.py is in the package — the cleanup model selection will now save reliably.
v0.4.0 — Gemini cleanup client and expanded prompts
v0.4.0 — Gemini cleanup client and expanded prompts
New
- Gemini API client (gemini_client.py) — text cleanup via Gemini models
- Supported models: gemini-2.5-flash-lite, gemini-2.5-flash, gemini-3.5-flash
- Enter a Gemini API key in Settings → Manage API Keys to enable
- Expanded cleanup prompts with detailed ASR mishearing fix rules
- Concrete fix examples (e.g. ensor flow → TensorFlow, ype script → TypeScript)
- False start vs opening-word distinction
- Paraphrase creep prevention (moderate mode)
- Hedge, slang, and profanity preservation
Changed
- Cleanup prompts significantly expanded across all three modes (heavy/moderate/light)
- User message format improved with explicit output constraints
- Model-based routing: cleanup model starting with "gemini" → GeminiClient; otherwise → GroqClient
- Build script and manifest bumped to v0.4.0
Notes
- Gemini cleanup is experimental — may be slow or error on long transcripts (>10 seconds). Use a Groq cleanup model if needed.
- To upgrade: replace your existing add-on installation with the attached groqVoiceDictation-0.4.0.nvda-addon
Previous (v0.3.0)
- Readback / confirm mode with cancelable preview window
- Fallback microphone improvements
- Silence detection fixes
v0.2.0
What's new in 0.2.0
Silence detection fixes
- Silence detection now only starts counting after speech is detected — recording no longer auto-stops before you've said anything
- Raised default threshold from 500 to 1500 for more reliable detection on typical microphones
- Extended threshold range up to 32767 (full 16-bit audio scale)
New: Microphone level sampler
- New 'Sample microphone level' button in settings records ~1 second of audio and reports your microphone's ambient noise floor
- Suggests an appropriate threshold value based on the measured level
- 'Set threshold' button in the result dialog applies the suggestion directly — no manual typing needed
v0.1.0
Full Changelog: https://github.com/willbilec/nvda-voice-input/commits/v0.1.0