
Domáca automatizácia je čoraz populárnejšia a s ňou aj potreba sofistikovaných hlasových asistentov. Preto som sa rozhodol publikovať podrobný návod, ako dosiahnuť vysoko kvalitné offline rozpoznávanie reči pomocou kombinácie Wyoming Whisper a Piper v prostredí Home Assistant, s využitím NVIDIA GPU prostredníctvom PCI passthrough a CUDA podpory v Dockeri na Proxmoxe. V tomto článku si rozoberieme kľúčové kroky a benefity tohto sofistikovaného nastavenia.
Čo je Wyoming Whisper a Piper?
- Whisper: Je rozsiahly model pre automatické rozpoznávanie reči (ASR) vyvinutý spoločnosťou OpenAI. Vyznačuje sa vysokou presnosťou a schopnosťou spracovávať rôzne akcenty a jazyky. V kontexte domácej automatizácie umožňuje ovládať zariadenia hlasom priamo na zariadení, bez potreby internetového pripojenia a s dôrazom na súkromie.
- piper: Je vysoko kvalitný a rýchly text-to-speech systém (TTS). Poskytuje prirodzene zniejúce hlasy a je ideálny pre tvorbu odpovedí v Home Assistante. V kombinácii s Whisper poskytuje kompletné riešenie pre hlasovú interakciu.
Prečo Proxmox a Docker?
Proxmox VE je populárna virtualizačná platforma, ktorá umožňuje spravovať virtuálne stroje a kontejnery. Docker umožňuje balenie aplikácií a ich závislostí do kontejnerov, čím zaisťuje konzistentné prostredie pre spustenie aplikácií, bez ohľadu na hostiteľský systém. Použitie týchto technológií ponúka niekoľko výhod:
- Izolácia: Aplikácie bežia v izolovaných kontejneroch, čím sa minimalizuje riziko konfliktov a zaisťuje stabilita systému.
- Flexibilita: Ľahko sa implementujú nové aplikácie a experimentuje s rôznymi konfiguráciami.
- Škálovateľnosť: Systém je ľahko škálovateľný podľa potreby.
Pracujeme vo virtuálnom prostredí Proxmox 8.4.1 v rámci Ubuntu 22.04 VM. Vďaka CUDA to bude bleskovo rýchle, ale vyžaduje si to kompatibilnú GPU od spoločnosti NVIDIA; napríklad ako v mojom prípade GeForce RTX 3060.
Tento návod je založený na tejto zostave:
Základná doska s čipovou sadou Z690 s procesorom Intel Core i9-14900KF, 64 GB RAM a 1 TB NVMe SSD, GPU karta NVIDIA GeForce RTX 3060 12 GB
Dôležité je, aby ste mali GPU, ktorá podporuje CUDA, a aby bola kompatibilná s vašou základnou doskou. Ak je, tak vaša MB a CPU budú pravdepodobne kompatibilné aj s požiadavkami na Proxmox virtualizáciu.
Zhrnutie:
– overenie nastavenia BIOS
– predídenie načitania ovládačov NVIDIA v hostiteľskom systéme
– PCI passtrough GPU do VM z hostiteľského systému
– inštalácia ovládačov NVIDIA a CUDA do virtuálneho systému VM
– inštalácia Docker do VM systému
– inštalácia Whisper a Piper v Dockeri pomocou docker compose
Uistíme sa, že náš systém podporuje VT-d/AMD-Vi:
Pre Intel zostavu BIOS/UEFI zapnite Intel VT-d v
/etc/default/grub
pridáme:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
Pre AMD zostavu BIOS/UEFI zapnite AMD-Vi v
/etc/default/grub
pridáme:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
Refreshneme GRUB a reštartujeme hosta:
update-grub
reboot
Ďalšim krokom je načítanie VFIO modulov. Upravíme alebo vytvoríme ak nie je /etc/modules
a pridáme:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
Potrebujeme zablokovať ovládače v hoste pridaním súboru v /etc/modprobe.d/blacklist-nvidia.conf
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist rivafb
Identifikujeme PCI ID vašej NVIDIA karty:
lspci -nn | grep -i nvidia
Výstup v terminále by mal vyzerať nejako takto:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060] [10de:2504]
01:00.1 Audio device [0403]: NVIDIA Corporation GA106 High Definition Audio Controller [10de:228e]
Priradíme GPU do VFIO v /etc/modprobe.d/vfio.conf
pridame ids, ktoré sme zistili v predchádzajúcom kroku. V našom prípade [10de:2504] pre GPU a [10de:228e] pre zvukovú kartu:
options vfio-pci ids=10de:2504,10de:228e disable_vga=1
Updatujeme initramfs a reštartujeme server. Po reštarte overíme priradenie:
update-initramfs -u -k all
reboot
lspci -nnk -d 10de:2504
Výstup v terminále by mal vyzerať nejako takto:
Kernel driver in use: vfio-pci
Pre pridanie GPU do VM použijeme Proxmox GUI (Hardware -> Add -> PCI Device) a vyberte GPU a jej audio zložku. Zaškrtnite:
- All Functions
- Primary GPU (ak je jediná GPU)
- ROM-Bar disabled (iba ak máte problémy)
Príprava VM s Dockerom a NVIDIA podpornými nástrojmi:
Nainštalujte NVIDIA ovládače vo vnútri VM:
Používame Debian 12. Stiahnite ovládač z NVIDIA stránky alebo použite balíčky:
lspci -nnk -d 10de:2504
lspci -nnk -d 10de:2504
Pre pridanie GPU do VM použijeme Proxmox GUI (Hardware -> Add -> PCI Device) a vyberte GPU a jej audio zložku. Zaškrtnite:
- All Functions
- Primary GPU (ak je jediná GPU)
- ROM-Bar disabled (iba ak máte problémy)

May musical arrival beloved luckily adapted him. Shyness mention married son she his started now. Rose if as past near were. To graceful he elegance oh moderate attended entrance pleasure.