Voice dictation: "No audio detected from microphone" despite fully working mic (Arch Linux, PulseAudio)
Status Open
Reported on v2.1.215
Maintainer reply None cached
Activity 2 comments · opened Jul 20, 2026
Environment
- Claude Code version: 2.1.215 (native install, linux-x64, commit 316ce99628e8)
- OS: Arch Linux, kernel 7.0.12-arch1-1
- Audio server: PulseAudio (not PipeWire)
soxpresent:SoX_ng v14.8.0.1(the SoX Next Generation fork, API/CLI-compatible with classic SoX)arecordpresent (alsa-utils)- Mic: USB audio interface (Soundpresence HD-II), correctly set as PulseAudio default source
Steps to reproduce
- Set
~/.claude/settings.json→"voice": {"enabled": true, "mode": "tap"}(also reproduced inholdmode) - Start a Claude Code session, run
/voice tap - With input empty, tap space to start recording, speak normally, tap again to stop
- Result: error "No audio detected from microphone"
- Fully quit Claude Code and started a brand-new session/terminal (to rule out a stale device handle from before the mic was ready) — same error persists
What I verified about the audio stack (all working correctly)
pactl get-default-source→ correctly resolves to the USB mic (alsa_input.usb-Soundprese_HD-II-00.analog-stereo)- Mic not muted; PulseAudio volume 66%; ALSA hardware capture gain 77/99 (
amixer -c 1 contents) sox -d file.wav trim 0 3while speaking → clear signal captured: amplitude jumped from ~0.03 (ambient noise) to ~0.115 (speech), RMS 0.026timeout 4 rec -q --buffer 1024 -t raw -r 16000 -e signed -b 16 -c 1 file.raw(16kHz mono signed PCM — the format voice dictation likely expects internally) while speaking → also captured clear signal: amplitude 0.136, RMS 0.034- Both
sox/recandarecordbinaries are present and onPATH claude doctorreports "No installation issues found"
Since raw audio capture succeeds through every external tool, backend (-t pulseaudio, default, raw ALSA-via-pulse) and sample format tested (48kHz stereo and 16kHz mono), the mic/PulseAudio/ALSA configuration itself is not the problem. The failure appears to be specific to Claude Code's own audio capture path (built-in native module, with sox/arecord as documented fallback).
Expected behavior
Voice dictation should successfully capture and transcribe speech, given the microphone is fully functional and produces a clear signal via every external capture method tested.
Additional notes / requests
- Could not find any documented way to force the sox/arecord fallback instead of the built-in native audio capture module — this would help narrow down which path is failing.
- Could not find any voice-dictation-specific debug/verbose logging flag (checked for env vars like
DEBUG,ANTHROPIC_LOG, etc.) to see which backend is actually being invoked and why it reports no audio.
Happy to run additional diagnostics or a debug build if one exists.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗