Claude Code umí přijímat hlasové příkazy. Na lokálním počítači to funguje hned. Na VPS serveru dostanete místo mikrofonu hromadu chybových hlášek – a s nimi pocit, že to prostě nepůjde. Půjde. Stačí vědět proč to padá a projít si sedm kroků níže.
Příčina problému
VPS je headless server bez zvukové karty. Claude Code se o audio pokouší přes ALSA (Linux Audio System), ale žádný hardware nenajde a skončí s chybou:
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM default
Řešení není instalovat virtuální hardware. Řešení je propůjčit serveru mikrofon z vašeho lokálního počítače — přes SSH tunel. Na Windows k tomu použijeme PulseAudio, na VPS nastavíme ALSA bridge. Celé nastavení zabere asi 15 minut.
Co budete potřebovat
- Windows 11 s mikrofonem
- VPS s Ubuntu nebo Debianem
- SSH klient (používám Termius), ale můžeme jakýkoliv
Krok 1: Instalace PulseAudio na Windows
PulseAudio je audio server s podporou síťového streamingu. Na Windows ho dostanete jako standalone balíček – žádná složitá instalace.
Stáhněte portable build z https://pgaskin.net/pulseaudio-win32/ a rozbalte do C:\Program Files (x86)\PulseAudio\ (defaultní adresář pro instalaci).
Krok 2: Povolení TCP přístupu
PulseAudio defaultně nepřijímá síťová připojení. Otevřete soubor níže v textovém editoru jako administrátor:
C:\Program Files (x86)\PulseAudio\etc\pulse\default.pa
Na konec přidejte:
load-module module-native-protocol-tcp auth-anonymous=1
Uložte a spusťte PulseAudio z příkazové řádky:
"C:\Program Files (x86)\PulseAudio\bin\pulseaudio.exe" -D
Pár varování o chybějících konfiguračních souborech je normálních – nevadí.
Krok 3: Ověření funkce
Zkontrolujte, že proces běží:
tasklist | findstr pulse
A že poslouchá na správném portu:
netstat -an | findstr 4713
Očekávaný výstup:
TCP 0.0.0.0:4713 0.0.0.0:0 LISTENING
TCP [::]:4713 [::]:0 LISTENING
Pokud tohle vidíte, Windows část je hotová.
Krok 4: SSH tunel v Termius
Otevřete nastavení hostu: Edit → SSH → Port Forwarding → přidat nový záznam:
| Pole | Hodnota |
|---|---|
| Type | Remote |
| Label | pulse-audio |
| Source port | 24713 |
| Destination | 127.0.0.1:4713 |
Tím říkáme: port 24713 na VPS přesměruj na port 4713 na mém lokálním stroji.
Krok 5: Nastavení na VPS
Po přihlášení na VPS nainstalujte potřebné balíčky:
apt install pulseaudio-utils libasound2-plugins
Nastavte proměnnou, která říká PulseAudio klientovi, kam se připojit:
export PULSE_SERVER=tcp:127.0.0.1:24713
Ověřte spojení:
pactl info
Klíčový řádek ve výstupu:
Default Source: wavein
wavein je váš Windows mikrofon. Spojení funguje.
Krok 6: ALSA bridge
Claude Code komunikuje se zvukem přes ALSA, ne přímo přes PulseAudio. Potřebujeme ALSA přesměrovat.
Vytvořte soubor ~/.asoundrc:
nano ~/.asoundrc
Vložte:
pcm.default pulse
ctl.default pulse
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
Uložte (Ctrl+O, Enter, Ctrl+X).
Krok 7: Spuštění a test
claude
Zadejte /voice, držte mezerník a mluvte. Voice mode v angličtině funguje.
Trvalé nastavení
Aby nebylo nutné nastavovat PULSE_SERVER po každém přihlášení:
echo 'export PULSE_SERVER=tcp:127.0.0.1:24713' >> ~/.bashrc
Port forwarding si Termius pamatuje automaticky – tunel se vytvoří při každém připojení.
Zvýšení zabezpečení
Výše použitá konfigurace auth-anonymous=1 znamená, že k vašemu PulseAudio serveru se může připojit kdokoliv, kdo se dostane na port 4713 na vašem Windows stroji. Zvuk samotný cestuje šifrovaně přes SSH tunel — to je v pořádku. Ale port 4713 zůstává na Windows otevřený i mimo aktivní SSH session.
Stačí jedna změna. V souboru default.pa nahraďte původní řádek:
load-module module-native-protocol-tcp auth-anonymous=1
tímto:
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
Připojení bude povoleno pouze z localhostu – přesně tak, jak ho používá SSH tunel. Funkčnost se nezmění, útočná plocha ano.
Navíc ověřte, že Windows Firewall port 4713 veřejně nevystavuje:
netsh advfirewall firewall show rule name=all | findstr 4713
Pokud výstup zobrazí pravidlo povolující External přístup, odstraňte ho nebo omezte na localhost. Po úpravě restartujte PulseAudio:
"C:\Program Files (x86)\PulseAudio\bin\pulseaudio.exe" --kill
"C:\Program Files (x86)\PulseAudio\bin\pulseaudio.exe" -D
Závěr
Hlasové zadávání v Claude Code je jeden z těch vylepšení, jejichž hodnotu docení člověk až ve chvíli, kdy se ho vzdá. Přestane psát dlouhé prompty po znaku a začne mluvit — a najednou zjistí, že pracuje rychleji a s méně frustrací.
Nastavení zabere čtvrt hodiny. Pak už ho neřešíte.