Jak si postavit vlastního AI asistenta s Raspberry Pi

Jak si postavit vlastního AI asistenta s Raspberry Pi

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í

  1. 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]

  2. Spuštění systému, připojení k síti a následná aktualizace balíčků:

sudo apt update && sudo apt upgrade -y
  1. 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]

  2. 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.

 

Raspberry Pi s umělou inteligencí

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:

  1. 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
  1. Povolit:

sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
  1. 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.cpp s 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 -l a 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 sudo v 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.cpp udrž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

  1. Software a chlazení pro Raspberry Pi – Raspberry Pi Imager (stažení a použití) a informace o produktu Pi 5 Active Cooler

  2. Porcupine Wake Word – SDK a rychlý start (klíčová slova, citlivost, lokální inference)

  3. 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í

  4. whisper.cpp – inference Whisper s podporou CPU, CLI a kroky sestavení

  5. Piper TTS – Rychlý, lokální neuronový TTS s více hlasy/jazyky

Najděte nejnovější AI v oficiálním obchodě s AI asistenty

O nás


Zpět na blog