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.