Wyoming Whisper a Piper vo VM Dockeri na Proxmoxe s NVIDIA GPU PCI passthrough

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)
Lumin project for Lighthouse

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.

Understanding Brief
Research
Design Process
His exquisite sincerity education shameless ten earnestly breakfast add. So we me unknown as improve hastily sitting forming. Especially favourable compliment but thoroughly unreserved saw she themselves. Sufficient impossible him may ten insensible put continuing.
Perceived end knowledge certainly day sweetness why cordially. Ask quick six seven offer see among. Handsome met debating sir dwelling age material. As style lived he worse dried. Offered related so visitor we private removed. Moderate do subjects to distance.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima incidunt voluptates nemo, dolor optio quia architecto quis delectus perspiciatis. Nobis atque id hic neque possimus voluptatum voluptatibus tenetur, perspiciatis consequuntur.

Viac info

Kontaktujte ma, ak hľadáte spoľahlivé, inovatívne riešenia, ktoré zefektívnia váš domov alebo podnik a prinesú praktické technologické vylepšenia.

Rýchle odkazy

Služby

O mne

Projekty

Kontakt

Adresa

lubos.trembecki﹫gmail.com

Email

Copyright©

2025

Ľuboš Trembeckí