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)
  • sox present: SoX_ng v14.8.0.1 (the SoX Next Generation fork, API/CLI-compatible with classic SoX)
  • arecord present (alsa-utils)
  • Mic: USB audio interface (Soundpresence HD-II), correctly set as PulseAudio default source

Steps to reproduce

  1. Set ~/.claude/settings.json"voice": {"enabled": true, "mode": "tap"} (also reproduced in hold mode)
  2. Start a Claude Code session, run /voice tap
  3. With input empty, tap space to start recording, speak normally, tap again to stop
  4. Result: error "No audio detected from microphone"
  5. 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 3 while speaking → clear signal captured: amplitude jumped from ~0.03 (ambient noise) to ~0.115 (speech), RMS 0.026
  • timeout 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/rec and arecord binaries are present and on PATH
  • claude doctor reports "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.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗