anthropics / anthropics/claude-code

Voice dictation drops speech on multichannel USB audio input (Steinberg UR22C); works on built-in mic

Open
#94,476 0 comments 0 reactions 0 assignees View on GitHub
bug has repro platform:macos platform:vscode
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.