windows-audio-capture

Diagnose Windows microphone capture failures in sounddevice and PortAudio applications.

Updated Aug 21, 2026
One-click install
npx skills add https://github.com/TylerSimons1127/vibe --skill windows-audio-capture-tylersimons1127
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: windows-audio-capture
Source: https://github.com/TylerSimons1127/vibe/tree/main/skills/debugging/windows-audio-capture
Command: npx skills add https://github.com/TylerSimons1127/vibe --skill windows-audio-capture-tylersimons1127

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, sounddevice, scipy, pycaw, and includes scripts (resource) and references (resource) components.

What problem does it solve? Windows voice and STT apps often capture silence or throw cryptic PortAudio errors even when the microphone hardware works fine. This Skill pinpoints whether the failure is a wrong host API, device index, sample rate, blocksize, or WASAPI exclusive-mode gating, so you stop blaming wake-word or Whisper code for parameter mistakes. ## Core Features & Use Cases - Ordered gotcha checklist: Eight verified failure modes covering per-host-API device indices, WASAPI blocksize=0, native sample rates, dead MME/WDM-KS endpoints, pycaw boost limits, and PYTHONPATH numpy ABI conflicts. - Step-by-step debugging workflow: OS-level device state checks, correct enumeration, per-device silent-vs-speech live tests, and winner selection. - Self-test script: scripts/mic_self_test.py scans every input device at native rate with blocksize=0, records 3s silent then 3s speech, and flags the device actually carrying your voice. - Use Case: Your JARVIS-style assistant never hears you on a Dell USB headset. Run the self-test, discover the endpoint is WASAPI exclusive-gated, and apply the exclusive-first/shared-fallback open pattern from references/exclusive_mode.md. ## Quick Start Ask the agent to run the mic self-test script and diagnose why my Windows microphone captures silence in my sounddevice app.

Frequently Asked Questions about windows-audio-capture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix a Windows microphone that captures silence in Python sounddevice?▼

Open the device at its native default_samplerate with blocksize=0 instead of a fixed blocksize, and pass a plain integer device index rather than a cross-host tuple. Then run a silent-versus-speech std comparison to confirm real audio before blaming STT code.

How to find which input device carries my voice with sounddevice?▼

Enumerate sd.query_devices(), skip outputs, and open each input at its native rate with blocksize=0. Record 3 seconds silent then 3 seconds speaking and compare speech std against silent std; the mic_self_test.py script automates this scan and flags the working device.

Why does sounddevice throw Invalid sample rate on my WASAPI microphone?▼

Many WASAPI mic endpoints are 48000-only and reject 16000. Capture at the device's default_samplerate, then resample to 16k for Whisper using scipy.signal.resample rather than dropping samples, which aliases.

Can pycaw set Microphone Boost on Windows?▼

No. pycaw's IAudioEndpointVolume exposes only master volume and mute. Per-device Boost in dB is a driver property reachable only through the OEM app like Realtek Audio Console or the Sound control panel Levels tab.

Why does my WASAPI mic return std=0 even with correct settings?▼

Some devices only emit audio in WASAPI exclusive mode; shared mode returns pure silence despite correct native rate and blocksize=0. Re-test with sd.WasapiSettings(exclusive=True) and use an exclusive-first, shared-fallback open pattern.

Why does numpy fail to import when running my project venv from the Hermes shell?▼

A leaked PYTHONPATH from the Hermes shell causes a numpy ABI mismatch between cp311 and cp312 extensions. Unset PYTHONPATH or export it empty before launching the project interpreter.