Das Problem
Du aktivierst /voice in Claude Code, hältst Leertaste und sprichst — und bekommst entweder gar nichts (no speech detected) oder irgendwelche halluzinierten Wortbrocken zurück. Dein Mikrofon ist nachweislich in Ordnung, Teams oder Zoom funktionieren tadellos.
> /voice
Voice mode enabled. Hold Space to record.
[Space halten, sprechen, Space loslassen]
processing...
no speech detected
TL;DR
Zwei Probleme treffen unter Linux gleichzeitig:
- Voice-Mode startet beim ersten Session-Start nicht sauber —
/voicezweimal toggeln (off → on) als Workaround. - Default-Sprache ist hartcodiert Englisch — wer auf Deutsch spricht, bekommt Halluzinationen. Fix:
"language": "de"in~/.claude/settings.jsonergänzen.
Ursache
Workaround 1: Init-Bug bei Session-Start
Mehrere offene GitHub-Issues (#36748, #33378, #30904) beschreiben, dass Voice trotz voiceEnabled: true in den Settings beim Session-Start nicht initialisiert wird. Push-to-Talk reagiert dann gar nicht oder Leertasten werden in den Chat-Buffer geschrieben statt aufgenommen.
Strace zeigt: Claude öffnet in dem Moment gar kein Audio-Device — kein /dev/snd/*, keinen PipeWire-Stream, keinen arecord-Subprozess. Das ist kein Audio-Pipeline-Problem deinerseits, sondern ein Client-Bug.
Workaround 2: Sprach-Default fehlt
Im Claude-Code-Binary findet sich:
let _ = new URLSearchParams({
encoding: "linear16",
sample_rate: "16000",
channels: "1",
endpointing_ms: "300",
utterance_end_ms: "1000",
language: $?.language ?? "en", // <-- Fallback Englisch
use_conversation_engine: "true",
stt_provider: "deepgram-nova3"
});
Ist im Settings-File kein language gesetzt, geht Deepgram Nova 3 mit Englisch ins Rennen. Sprichst du Deutsch, halluziniert das STT-Modell — entweder no speech detected oder bizarre Wortfragmente wie Kleptosy aus deinem Klipp und klar.
Lösung
Schritt 1: Voice initialisieren
Im aktiven Claude-Code-Terminal:
/voice
Output: Voice mode disabled.
/voice
Output: Voice mode enabled. Hold Space to record.
Erst nach dem zweiten Toggle bindet Claude das Push-to-Talk-Listening sauber ein.
Schritt 2: Sprache setzen
Editiere ~/.claude/settings.json und ergänze einen language-Key auf Top-Level:
{
"voiceEnabled": true,
"voice": {
"enabled": true,
"mode": "hold"
},
"language": "de",
...
}
Unterstützte Codes (aus dem Binary extrahiert): de, en, en-US, es, fr, it, ja, nl, pl, pt, ru. Ein multi-Modus für gemischtes Deutsch/Englisch existiert leider nicht — man muss sich entscheiden. Für Tech-Anglizismen in deutschem Sprachfluss (Server, Docker, API) ist de aber robust genug.
Schritt 3: Claude Code neu starten oder /voice toggeln
Damit die neue Sprache aktiv wird:
/voice # off
/voice # on
Oder Terminal komplett neu öffnen.
Verifikation
Halte Leertaste und sprich "hallo das ist ein test" — der transkribierte Text sollte sauber im Input-Feld auftauchen. Wenn nicht, prüfe:
# 1. Default-Mic im PipeWire-Graph
wpctl status | grep -A 5 "Sources:"
# 2. Quick-Check ob das Default-Mic überhaupt liefert
arecord -d 3 -f S16_LE -c 1 -r 16000 /tmp/t.wav && aplay /tmp/t.wav
Hörst du dich beim aplay nicht: dein OS-Audio-Default-Routing ist kaputt (auf Ubuntu 24.04 z.B. fehlt manchmal pipewire-alsa, dann zeigt ALSA-Default auf das falsche Hardware-Device — typisch der Klinken-Mic-Eingang ohne gestecktes Headset → Stille oder Rauschen).
# Falls pipewire-alsa fehlt:
sudo apt install pipewire-alsa
systemctl --user restart pipewire wireplumber
Hörst du dich aber, und Claude Code macht trotzdem nichts beim /voice-Trigger, liegt es nicht an deinem Audio-Stack — dann ist es der oben beschriebene Init-Bug.
Fazit
Voice-Mode in Claude Code ist auf Linux noch holprig. Die zwei Workarounds (Toggle + language setzen) lösen die häufigsten Symptome. Wer ein gesundes OS-Audio-Setup hat, braucht nichts an PipeWire/ALSA zu reparieren — der Bug ist clientseitig, nicht in deiner Pipeline.
Zur Meta-Lehre: Bei jedem Bug in einem Drittprodukt erst eine Minute Google/GitHub-Issue-Suche, dann debuggen. Eine Stunde an Audio-Konfiguration zu schrauben, weil “klingt plausibel”, ist verschwendete Zeit, wenn Issue-Tracker das Problem schon längst kennen.