anthropics / anthropics/claude-code
Voice dictation drops speech on multichannel USB audio input (Steinberg UR22C); works on built-in mic
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
**Environment**
- Claude Code 2.1.240, VS Code extension, macOS (Darwin 25.6.0), 2019 16" MacBook Pro (Intel i9)
- Input device: Steinberg UR22C "Voice" virtual device (2 ch, 48 kHz, both channels identical) — also tried the "DAW" device (4 ch, 48 kHz)
- Mic: Shure SM7B with an inline booster; input level verified with ffmpeg on the same device: -6 dB peak, -23 to -27 dB RMS
**What happens**
- With the UR22C selected as the system default input, the level meter in the dictation box moves normally, but nothing is transcribed unless I begin with a loud burst ("check, check, check"). After a pause mid-sentence the transcription stops again while the meter keeps moving.
- After "Reload Window", one recording returned only the loud wake phrase and dropped everything spoken after it, on a verified-clean signal.
- With the built-in "MacBook Pro Microphone" (1 ch) selected, dictation works without the wake phrase, including whispered speech.
- Behaviour tracks channel count, not loudness: built-in (1 ch) works; Voice (2 ch) erratic; DAW (4 ch) captured a second then went silent.
- Network is clean during the failures (0% loss, ~40 ms to api.anthropic.com).
- Across a few minutes on the same device I see three different behaviours: (a) text appears live while speaking; (b) no live text, the whole message lands when the mic turns off; (c) nothing lands at all. Starting every recording with a loud "check, check, check" makes (a) far more likely, which suggests the live transcription session needs a moment to come up and speech before that is lost.
**What I expect**
Speech captured on a 2- or 4-channel 48 kHz input device to be downmixed/resampled and transcribed like the 1-channel built-in mic.
**Guess**
The capture path may be reading interleaved multichannel frames as mono (audio arrives slowed/smeared at the transcriber), and/or holding the device it opened first when the system default changes.
**Repro**
1. Plug in a USB audio interface exposing a 2-ch or 4-ch input at 48 kHz; set it as the macOS default input.
2. Press the dictation mic button, speak at normal level.
3. Observe the meter moving with no transcription, unless the recording starts with a loud burst.
4. Switch the default input to the built-in mic and repeat; transcription works.
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the failure through the dictation mic button with the Steinberg UR22C Voice or DAW device selected as the macOS default input, then compare it with the built-in MacBook Pro Microphone. Trace the dictation capture path used by the VS Code extension, focusing on multichannel 48 kHz input. Done means 2- and 4-channel speech is captured and transcribed reliably like the 1-channel input, including after pauses.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, vscode
- Domain
- audio-video-rtc, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100