Chcete malého hlasového asistenta, který se skutečně řídí vašimi pokyny, běží na vašem vlastním hardwaru a omylem si neobjedná dvanáct ananasů, protože vás špatně zaslechl? Vlastnoručně vyrobený hlasový asistent s umělou inteligencí a Raspberry Pi je překvapivě proveditelný, zábavný a flexibilní. Zapojíte budíček, rozpoznávání řeči (ASR = automatické rozpoznávání řeči), mozek pro přirozený jazyk (pravidla nebo LLM) a převod textu na řeč (TTS). Přidejte pár skriptů, jednu nebo dvě služby a pečlivé úpravy zvuku a máte kapesní chytrý reproduktor, který poslouchá vaše pravidla.
Pojďme vás dostat od nuly k tomu, abyste si mohli mluvit se svým Pi, bez obvyklého tahání za vlasy. Probereme součástky, nastavení, kód, srovnání, závad... celé burrito. 🌯
Články, které byste si mohli po tomto přečíst:
🔗 Jak efektivně studovat umělou inteligenci
Vytvořte si studijní plán, procvičujte si projekty a sledujte svůj pokrok.
🔗 Jak založit firmu zabývající se umělou inteligencí
Ověřit problém, vytvořit MVP, sestavit tým, zajistit první zákazníky.
🔗 Jak využít umělou inteligenci k vyšší produktivitě
Automatizujte rutinní úkoly, zefektivněte pracovní postupy a zvyšte kreativní výstup.
🔗 Jak začlenit umělou inteligenci do vašeho podnikání
Identifikujte procesy s vysokým dopadem, implementujte pilotní projekty, změřte návratnost investic a škálujte.
Co dělá dobrého DIY AI asistenta s Raspberry Pi ✅
-
Ve výchozím nastavení soukromé – zvuk se pokud možno uchovává lokálně. Vy rozhodujete, co zařízení opustí.
-
Modulární – výměna komponent jako u Lega: engine pro probuzení slov, ASR, LLM, TTS.
-
Cenově dostupné – většinou open source, běžné mikrofony, reproduktory a Raspberry Pi.
-
Hackovatelné – chcete domácí automatizaci, dashboardy, rutiny, vlastní dovednosti? Snadné.
-
Spolehlivý – spravovaný službou, automaticky se spouští a začíná naslouchat.
-
Zábava – dozvíte se hodně o zvuku, procesech a designu řízeném událostmi.
Malý tip: Pokud používáte Raspberry Pi 5 a plánujete provozovat těžší lokální modely, při trvalém zatížení vám pomůže chladič s klipem. (V případě pochybností zvolte oficiální aktivní chladič určený pro Pi 5.) [1]
Díly a nástroje, které budete potřebovat 🧰
-
Raspberry Pi : Pro větší prostor se doporučuje Pi 4 nebo Pi 5.
-
Paměťová karta microSD : doporučeno 32 GB+.
-
USB mikrofon : jednoduchý USB konferenční mikrofon je skvělý.
-
Reproduktor : USB nebo 3,5mm reproduktor, případně zesilovač I2S HAT.
-
Síť : Ethernet nebo Wi-Fi.
-
Volitelné vychytávky: pouzdro, aktivní chladič pro Pi 5, tlačítko pro funkci push-to-talk, LED kroužek. [1]
OS a základní nastavení
-
Flashujte operační systém Raspberry Pi pomocí Raspberry Pi Imager. Je to jednoduchý způsob, jak získat bootovací microSD kartu s požadovanými předvolbami. [1]
-
Spuštění systému, připojení k síti a následná aktualizace balíčků:
sudo apt update && sudo apt upgrade -y
-
Základy zvuku : V operačním systému Raspberry Pi můžete nastavit výchozí výstup, úrovně a zařízení prostřednictvím uživatelského rozhraní na ploše nebo
nástroje raspi-config. Zvuk přes USB a HDMI je podporován u všech modelů; výstup Bluetooth je k dispozici u modelů s technologií Bluetooth. [1] -
Ověření zařízení:
arecord -l aplay -l
Pak vyzkoušejte nahrávání a přehrávání. Pokud se vám úrovně zdají divné, zkontrolujte mixážní pulty a výchozí nastavení, než z toho viníte mikrofon.

Architektura na první pohled 🗺️
Chytrý DIY AI asistent s Raspberry Pi flow vypadá takto:
Probuzení → živý záznam zvuku → ASR transkripce → zpracování záměru nebo LLM → text odpovědi → TTS → přehrávání zvuku → volitelné akce přes MQTT nebo HTTP.
-
Probuditelné slovo : Porcupine je malý, přesný a běží lokálně s kontrolou citlivosti pro každé klíčové slovo. [2]
-
ASR : Whisper je vícejazyčný, univerzální model ASR trénovaný na přibližně 680 tisíc hodinách; je robustní vůči akcentům/šumu v pozadí. Pro použití na zařízení
shippe.cppštíhlou inferenční cestu C/C++. [3][4] -
Brain : Váš výběr – cloudový LLM přes API, systém pravidel nebo lokální inference v závislosti na výkonu.
-
TTS : Piper generuje přirozenou řeč lokálně, dostatečně rychle pro rychlé odpovědi na skromnějším hardwaru. [5]
Rychlá srovnávací tabulka 🔎
| Nástroj | Nejlepší pro | Cena přibližná | Proč to funguje |
|---|---|---|---|
| Dikobrazovo bdění | Spouštěč pro neustálé naslouchání | Bezplatná úroveň + | Nízká náročnost CPU, přesnost, snadné vázání [2] |
| Whisper.cpp | Lokální ASR na Pi | Otevřený zdrojový kód | Dobrá přesnost, uživatelsky přívětivé [4] |
| Rychlejší šepot | Rychlejší ASR na CPU/GPU | Otevřený zdrojový kód | Optimalizace CTranslate2 |
| Piper TTS | Lokální hlasový výstup | Otevřený zdrojový kód | Rychlé hlasy, mnoho jazyků [5] |
| Cloud LLM API | Bohaté uvažování | Na základě použití | Odlehčuje náročné výpočetní zátěže |
| Node-RED | Orchestrování akcí | Otevřený zdrojový kód | Vizuální toky, kompatibilní s MQTT |
Postupné sestavení: Vaše první hlasová smyčka 🧩
Pro probuzení použijeme Porcupine, pro přepis Whisper, pro odpověď odlehčenou funkci „brain“ (nahraďte ji vámi zvoleným LLM) a pro řeč Piper. Snažte se to minimalisticky a pak opakujte.
1) Instalace závislostí
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install zvukové zařízení numpy
-
Porcupine: stáhněte si SDK/vazby pro váš jazyk a postupujte podle pokynů pro rychlý start (přístupový klíč + seznam klíčových slov + zvukové snímky →
.process). [2] -
Whisper (přátelský k CPU): sestavení whisper.cpp :
git clone https://github.com/ggml-org/whisper.cpp cd whisper.cpp && cmake -B build && cmake --build build -j ./models/download-ggml-model.sh base.en ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f your.wav -otxt
Výše uvedené odráží rychlý start projektu. [4]
Dáváte přednost Pythonu?
faster-whisper(CTranslate2) je na skromnějších procesorech často svižnější než obyčejný Python.
2) Nastavení převodu řeči na Piper
git clone https://github.com/rhasspy/piper cd piper make # Stáhněte si hlasový model, který se vám líbí, např. en_US-amy echo "Ahoj." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper je navržen pro převod textu na jazyk přímo v zařízení s více hlasovými/jazykovými možnostmi. [5]
3) Minimální asistenční smyčka v Pythonu
Záměrně kompaktní: čeká na frázi probuzení (stub), zaznamenává, přepisuje pomocí whisper.cpp , generuje odpověď (zástupný symbol) a poté mluví přes Piper. Zástupný symbol můžete nahradit vaším oblíbeným LLM nebo logikou pravidla.
import os, subprocess, wave import sounddevice as sd WAKE_WORD = "hey computer" # swap pro Porcupine v produkci [2] RECORD_SECONDS = 6 SAMPLE_RATE = 16000 CHANNELS = 1 WORKDIR = "/home/pi/assistant" ASR_BIN = "/home/pi/whisper.cpp/build/bin/whisper-cli" # [4] ASR_MODEL = "/home/pi/whisper.cpp/models/ggml-base.en.bin" PIPER_BIN = "/home/pi/piper/build/piper" # [5] PIPER_VOICE = "/home/pi/piper/voices/en/en_US-amy-medium.onnx" os.makedirs(WORKDIR, exist_ok=True) def record_wav(path, seconds=RECORD_SECONDS): audio = sd.rec(int(sekundy * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=KANÁLY, dtype='int16') sd.wait() with wave.open(path, 'wb') as w: w.setnchannels(KANÁLY); w.setsampwidth(2); w.setframerate(SAMPLE_RATE) w.writeframes(audio.tobytes()) def transcribe(path): cmd = [ASR_BIN, "-m", ASR_MODEL, "-f", path, "-otxt"] subprocess.run(cmd, check=True, cwd=WORKDIR) with open(path.replace(".wav", ".txt"), "r", encoding="utf-8") as f: return f.read().strip() def generate_reply(prompt): if "weather" in prompt.lower(): return "Nevidím mraky, ale mohlo by to být v pořádku. Vezměte si bundu, pro jistotu." return "Řekl(a jste: " + prompt def speak(text): proc = subprocess.Popen([PIPER_BIN, "--model", PIPER_VOICE, "--output_file", f"{WORKDIR}/reply.wav"], stdin=subprocess.PIPE) proc.stdin.write(text.encode("utf-8")); proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) print("Asistent připraven. Zadejte testovací frázi probuzení.") while True: typed = input("> ").strip().lower() if typed == WAKE_WORD: wav_path = f"{WORKDIR}/input.wav" record_wav(wav_path) text = transcribe(wav_path) reply = generate_reply(text) print("Uživatel:", text); print("Asistent:", odpovědět) speak(odpovědět) else: print("Zadejte frázi pro probuzení smyčky.")
Pro skutečnou detekci „wake-word“ integrujte detektor streamování Porcupine (nízká náročnost CPU, citlivost na klíčová slova). [2]
Ladění zvuku, na kterém skutečně záleží 🎚️
Pár drobných oprav vám pomůže cítit se 10× chytřeji:
-
Vzdálenost mikrofonu : 30–60 cm je ideální vzdálenost pro mnoho USB mikrofonů.
-
Úrovně : vyhněte se ořezávání na vstupu a zachovejte spolehlivé přehrávání; opravte směrování před honěním se za kódovými ghosty. V Raspberry Pi OS můžete spravovat výstupní zařízení a úrovně pomocí systémových nástrojů nebo
raspi-config. [1] -
Akustika místnosti : tvrdé stěny způsobují ozvěny; měkká podložka pod mikrofon pomáhá.
-
Práh probuzení klíčových slov : příliš citlivý → spouštěč ghostů; příliš přísný → budete křičet na plast. Porcupine umožňuje upravit citlivost pro každé klíčové slovo. [2]
-
Teploty : dlouhé přepisy na Pi 5 těží z oficiálního aktivního chladiče pro trvalý výkon. [1]
Přechod od hračky ke spotřebiči: Servis, automatický start, kontroly stavu 🧯
Lidé zapomínají spouštět skripty. Počítače zapomínají být milé. Proměňte svou smyčku ve spravovanou službu:
-
Vytvořte jednotku systemd:
[Jednotka] Popis=DIY Hlasový asistent Po=network.target sound.target [Služba] Uživatel=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=vždy RestartSec=3 [Instalace] WantedBy=multi-user.target
-
Povolit:
sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
-
Ocasy protokolů:
journalctl -u asistent -f
Teď se to spouští při bootování, restartuje se při pádu a obecně se chová jako zařízení. Trochu nudné, ale mnohem lepší.
Systém dovedností: Udělejte si z něj doma skutečně užitečný nástroj 🏠✨
Jakmile jsou hlasové vstupy a výstupy slyšet spolehlivě, přidejte akce:
-
Intent router : jednoduché trasy s klíčovými slovy pro běžné úlohy.
-
Chytrá domácnost : publikování událostí do MQTT nebo volání HTTP koncových bodů Home Assistant.
-
Pluginy : rychlé funkce Pythonu jako
set_timer,what_is_the_time,play_radio,run_scene.
I s cloudovým LLM ve smyčce směrujte nejprve zřejmé lokální příkazy, abyste dosáhli rychlosti a spolehlivosti.
Pouze lokální vs. cloudová asistence: Kompromisy, které pocítíte 🌓
Pouze lokální.
Výhody: soukromé, offline, předvídatelné náklady.
Nevýhody: těžší modely mohou být na malých deskách pomalé. Vícejazyčné školení Whisperu pomáhá s robustností, pokud jej uchováváte na zařízení nebo na blízkém serveru. [3]
Cloudová asistence
Výhody: výkonné uvažování, větší kontextová okna.
Nevýhody: data opouštějí zařízení, závislost na síti, variabilní náklady.
Hybrid často vítězí: probuzení slova + lokální ASR → volání API pro uvažování → lokální TTS. [2][3][5]
Řešení problémů: Podivní skřeti a rychlá řešení 👾
-
Falešné spouštění signálu probuzení : snižte citlivost nebo zkuste jiný mikrofon. [2]
-
Zpoždění ASR : použijte menší model Whisper nebo sestavte
whisper.cpps příznaky vydání (-j --config Release). [4] -
Trhaný TTS : předgenerování běžných frází; potvrzení zvukového zařízení a vzorkovacích frekvencí.
-
Nebyl detekován mikrofon : zkontrolujte
arecord -la mixéry. -
Tepelné omezení : pro trvalý výkon použijte oficiální aktivní chladič na Pi 5. [1]
Poznámky k zabezpečení a ochraně osobních údajů, které byste si měli přečíst 🔒
-
Udržujte svůj Pi aktuální s APT.
-
Pokud používáte cloudové API, zaznamenávejte odesílané informace a nejprve zvažte lokální odstranění osobních údajů.
-
Spouštějte služby s nejnižšími oprávněními; pokud to není nutné, vyhněte se
příkazu sudov ExecStart. -
Zajistěte režim pouze pro místní použití nebo klidné hodiny.
Varianty sestavování: Mixujte a kombinujte jako sendvič 🥪
-
Ultra-lokální : Porcupine + whisper.cpp + Piper + jednoduchá pravidla. Soukromé a robustní. [2][4][5]
-
Rychlá cloudová asistence : Porcupine + (menší lokální Whisper nebo cloudový ASR) + lokální TTS + cloudový LLM.
-
Centrála domácí automatizace : Přidejte postupy Node-RED nebo Home Assistant pro rutiny, scény a senzory.
Příklad dovednosti: Rozsvícení světel přes MQTT 💡
import paho.mqtt.client as mqtt MQTT_HOST = "192.168.1.10" TOPIC = "home/livingroom/light/set" def set_light(state: str): client = mqtt.Client() client.connect(MQTT_HOST, 1883, 60) payload = "ON" if state.lower().startswith("on") else "OFF" client.publish(TOPIC, payload, qos=1, retain=False) client.disconnect() # pokud je v textu "zapnout světla": set_light("on")
Přidejte hlasovou hlášku jako: „rozsviť lampu v obývacím pokoji“ a budete se cítit jako kouzelník.
Proč tento stack funguje v praxi 🧪
-
Porcupine je efektivní a přesný při detekci „wake-word“ na malých deskách, což umožňuje neustálé naslouchání. [2]
-
Rozsáhlé a vícejazyčné školení Whisperu je robustní pro různá prostředí a akcenty. [3]
-
Soubor whisper.cppudržuje tuto energii použitelnou i na zařízeních s procesorem, jako je například Pi. [4] -
Piper udržuje odpovědi rychlé, aniž by odesílal zvuk do cloudového převodníku textu na jazyk. [5]
Příliš dlouhé, nečetl jsem to
Vytvořte si modulárního, soukromého DIY AI asistenta s Raspberry Pi kombinací Porcupine pro slovo probuzení, Whisper (prostřednictvím whisper.cpp ) pro ASR, dle vašeho výběru brain pro odpovědi a Piper pro lokální TTS. Zabalte to jako službu systemd, nalaďte zvuk a propojte akce MQTT nebo HTTP. Je to levnější, než si myslíte, a kupodivu příjemné s tím žít. [1][2][3][4][5]
Reference
-
Software a chlazení pro Raspberry Pi – Raspberry Pi Imager (stažení a použití) a informace o produktu Pi 5 Active Cooler
-
Raspberry Pi Imager: více informací
-
Aktivní chladič (Pi 5): více informací
-
-
Porcupine Wake Word – SDK a rychlý start (klíčová slova, citlivost, lokální inference)
-
Whisper (model ASR) – Vícejazyčný, robustní ASR natrénovaný na ~680 tisíc hodinách
-
Radford a kol., Robustní rozpoznávání řeči pomocí rozsáhlého slabého dohledu (Whisper): více informací
-
-
whisper.cpp – inference Whisper s podporou CPU, CLI a kroky sestavení
-
Piper TTS – Rychlý, lokální neuronový TTS s více hlasy/jazyky