Voice mode: captures good audio but transcription intermittently returns blank (WSL2/WSLg, v2.1.215)
Summary
Voice mode captures audio and enters "Processing" but transcription returns blank
almost always — it succeeded exactly ONCE across ~15 attempts, then failed again
under identical conditions. Intermittent, not deterministic.
Environment
- WSL2 + WSLg on Windows 11
- Claude Code 2.1.215 (CLI, /home/sv/.local/bin/claude)
- PULSE_SERVER=unix:/mnt/wslg/PulseServer
- Recorder: SoX with libsox-fmt-pulse (sox --help lists the pulseaudio driver)
- Mic: wired EarPods (also tested with inbuilt Intel Smart Sound array)
What works (audio chain verified good)
Direct capture via rec produces clean, correctly-leveled, audible audio:
- rec -q -t wav /tmp/x.wav trim 0 4 then sox /tmp/x.wav -n stat
- Best clean sample: Maximum amplitude 0.53, RMS 0.032, no clipping
- WAV plays back clearly in Windows Media Player (words intelligible)
So the microphone, WSLg bridge, and SoX pulse backend are all functioning.
What fails
- Hold Space -> speak -> release -> "Processing" -> blank, no text in prompt
- Enter does nothing (nothing to submit)
- claude --verbose shows no transcription error
- Transcribed correctly ONCE ("how are you" for "hello how are you"), then the same
setup produced nothing on subsequent tries
Ruled out
- Token/auth expiry — chat works in the same session, so auth is valid
- Windows mic privacy (both toggles on), Windows default device (correct), input level (100%)
- Audio too quiet — reproduced blank result even with clean 0.53-amp / 0.032-RMS capture
Suspected
A flaky transcription-service handshake (possibly interacting with which device WSLg
has bridged across restarts). Root cause NOT isolated. Same blank-after-processing
symptom is reported on native Windows (#38983, #38753) and macOS (#38918) with good
audio, suggesting the transcription step — not audio or WSL — is the common factor.
Related
#38983, #38753, #38918