Chcete malého hlasového asistenta, ktorý skutočne nasleduje vaše pokyny, beží na vašom vlastnom hardvéri a omylom si neobjedná dvanásť ananásov, pretože vás zle počul? Vlastnoručne vyrobený hlasový asistent s umelou inteligenciou a Raspberry Pi je prekvapivo dosiahnuteľný, zábavný a flexibilný. Zapojíte budíce slovo, rozpoznávanie reči (ASR = automatické rozpoznávanie reči), mozog pre prirodzený jazyk (pravidlá alebo LLM) a prevod textu na reč (TTS). Pridajte niekoľko skriptov, jednu alebo dve služby a niekoľko starostlivých úprav zvuku a máte vreckový inteligentný reproduktor, ktorý dodržiava vaše pravidlá.
Poďme vás dostať od nuly k tomu, ako sa rozprávať s vaším Pi, bez obvyklého ťahania za vlasy. Preberieme si súčiastky, nastavenie, kód, porovnania, chyby... celé burrito. 🌯
Články, ktoré by ste si mohli prečítať po tomto:
🔗 Ako efektívne študovať umelú inteligenciu
Vytvorte si študijný plán, precvičujte si projekty a sledujte svoj pokrok.
🔗 Ako založiť spoločnosť zameranú na umelú inteligenciu
Overiť problém, vytvoriť MVP, zostaviť tím, zabezpečiť prvých zákazníkov.
🔗 Ako využiť umelú inteligenciu na zvýšenie produktivity
Automatizujte rutinné úlohy, zefektívnite pracovné postupy a zvýšte kreatívny výstup.
🔗 Ako začleniť umelú inteligenciu do vášho podnikania
Identifikujte procesy s vysokým dopadom, implementujte pilotné projekty, merajte návratnosť investícií, škálujte.
Čo robí dobrého DIY AI asistenta s Raspberry Pi ✅
-
Predvolene súkromné – zvuk sa uchováva lokálne, pokiaľ je to možné. Vy rozhodujete o tom, čo zariadenie opustí.
-
Modulárne – vymieňajte si komponenty ako Lego: engine pre prebudenie slov, ASR, LLM, TTS.
-
Cenovo dostupné – väčšinou open source, bežne dostupné mikrofóny, reproduktory a Raspberry Pi.
-
Hackovateľné – chcete domácu automatizáciu, dashboardy, rutiny, vlastné zručnosti? Jednoduché.
-
Spoľahlivý – spravovaný službou, automaticky sa spúšťa a začína počúvať.
-
Zábava – dozviete sa veľa o zvuku, procesoch a dizajne riadenom udalosťami.
Malý tip: Ak používate Raspberry Pi 5 a plánujete používať ťažšie lokálne modely, pri dlhodobom zaťažení vám pomôže pripínací chladič. (V prípade pochybností si vyberte oficiálny aktívny chladič určený pre Pi 5.) [1]
Súčiastky a nástroje, ktoré budete potrebovať 🧰
-
Raspberry Pi : Odporúča sa Pi 4 alebo Pi 5 kvôli dostatočnej priestorovej výške.
-
Pamäťová karta microSD : odporúča sa 32 GB+.
-
USB mikrofón : jednoduchý USB konferenčný mikrofón je skvelý.
-
Reproduktor : USB alebo 3,5 mm reproduktor, alebo zosilňovač I2S HAT.
-
Sieť : Ethernet alebo Wi-Fi.
-
Voliteľné vychytávky: puzdro, aktívny chladič pre Pi 5, tlačidlo pre funkciu push-to-talk, LED krúžok. [1]
OS a základné nastavenie
-
Flashujte operačný systém Raspberry Pi pomocou Raspberry Pi Imager. Je to jednoduchý spôsob, ako získať bootovaciu microSD kartu s požadovanými predvoľbami. [1]
-
Spustite systém, pripojte sa k sieti a potom aktualizujte balíky:
aktualizácia sudo apt && aktualizácia sudo apt -y
-
Základy zvuku : V systéme Raspberry Pi OS môžete nastaviť predvolený výstup, úrovne a zariadenia prostredníctvom používateľského rozhrania na počítači alebo
súboru raspi-config. Zvuk cez USB a HDMI je podporovaný vo všetkých modeloch; výstup Bluetooth je k dispozícii na modeloch s rozhraním Bluetooth. [1] -
Overenie zariadení:
arecord -l aplay -l
Potom otestujte nahrávanie a prehrávanie. Ak sa úrovne zdajú byť zvláštne, skontrolujte mixéry a predvolené nastavenia predtým, ako z toho obviníte mikrofón.

Architektúra na prvý pohľad 🗺️
Rozumný DIY AI asistent s Raspberry Pi vyzerá takto:
Budiace slovo → živý záznam zvuku → transkripcia ASR → spracovanie zámeru alebo LLM → text odpovede → TTS → prehrávanie zvuku → voliteľné akcie cez MQTT alebo HTTP.
-
Budiace slovo : Porcupine je malý, presný a beží lokálne s ovládaním citlivosti pre každé kľúčové slovo. [2]
-
ASR : Whisper je viacjazyčný model ASR na všeobecné použitie, ktorý bol natrénovaný približne na 680 000 hodinách; je odolný voči akcentom/šumu v pozadí. Pre použitie na zariadení
súbor shippet.cppjednoduchú inferenčnú cestu pre C/C++. [3][4] -
Brain : Váš výber – cloudový LLM cez API, systém pravidiel alebo lokálna inferencia v závislosti od výkonu.
-
TTS : Piper generuje prirodzenú reč lokálne, dostatočne rýchlo pre rýchle odpovede na skromnom hardvéri. [5]
Rýchla porovnávacia tabuľka 🔎
| Nástroj | Najlepšie pre | Približná cena | Prečo to funguje |
|---|---|---|---|
| Slovo prebudenia dikobraza | Spúšťač neustáleho počúvania | Bezplatná úroveň + | Nízka náročnosť CPU, presnosť, jednoduché viazanie [2] |
| Whisper.cpp | Lokálne ASR na Pi | Otvorený zdroj | Dobrá presnosť, nenáročné na CPU [4] |
| Rýchlejšie šepotanie | Rýchlejšie ASR na CPU/GPU | Otvorený zdroj | Optimalizácie CTranslate2 |
| Piper TTS | Lokálny hlasový výstup | Otvorený zdroj | Rýchle hlasy, veľa jazykov [5] |
| Cloud LLM API | Bohaté uvažovanie | Na základe používania | Zníži záťaž náročných výpočtov |
| Node-RED | Orchestrovanie akcií | Otvorený zdroj | Vizuálne toky, kompatibilné s MQTT |
Postupná tvorba: Vaša prvá hlasová slučka 🧩
Na prebudenie slova použijeme Porcupine, na prepis Whisper, na odpoveď ľahkú „mozgovú“ funkciu (nahraďte ju vami vybraným LLM) a na reč Piper. Nech je to minimalistické a potom to opakujte.
1) Inštalácia závislostí
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 nainštalovať zvukové zariadenie numpy
-
Porcupine: stiahnite si SDK/viazania pre váš jazyk a postupujte podľa pokynov pre rýchly štart (prístupový kľúč + zoznam kľúčových slov + zvukové snímky →
.process). [2] -
Whisper (priateľský k CPU): zostaviť shittle.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
Vyššie uvedené odráža rýchly štart projektu. [4]
Uprednostňujete Python?
faster-whisper(CTranslate2) je na skromnejších procesoroch často svižnejší ako tradičný Python.
2) Nastavte si Piper TTS
git clone https://github.com/rhasspy/piper cd piper make # Stiahnite si hlasový model, ktorý sa vám páči, napr. en_US-amy echo "Ahoj." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper je navrhnutý pre TTS v zariadení s viacerými možnosťami hlasu/jazyka. [5]
3) Minimálna asistenčná slučka v Pythone
Zámerne kompaktné: čaká na frázu prebudenia (stub), zaznamenáva, prepisuje pomocou whispett.cpp , generuje odpoveď (zástupný symbol) a potom hovorí cez Piper. Vymeňte zástupný symbol za váš obľúbený LLM alebo logiku pravidla.
import os, subprocess, wave import sounddevice as sd WAKE_WORD = "hey computer" # výmena za Porcupine v produkcii [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(cesta, sekundy=RECORD_SECONDS): audio = sd.rec(int(sekundy * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=KANÁLY, dtype='int16') sd.wait() with wave.open(cesta, '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 oblaky, ale mohlo by to byť v poriadku. Pre istotu si prineste bundu." vrátiť "Povedali ste: " + 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 je pripravený. Zadajte frázu prebudenia, ktorú chcete otestovať.") 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("Používateľ:", text); print("Asistent:", odpovedať) speak(odpovedať) else: print("Zadajte frázu prebudenia na otestovanie slučky.")
Pre skutočnú detekciu aktivačných slov integrujte detektor streamovania Porcupine (nízka náročnosť CPU, citlivosť na kľúčové slovo). [2]
Ladenie zvuku, na ktorom skutočne záleží 🎚️
Niekoľko drobných opráv spôsobí, že sa váš asistent bude cítiť 10-krát múdrejší:
-
Vzdialenosť mikrofónu : 30 – 60 cm je ideálna vzdialenosť pre mnoho USB mikrofónov.
-
Úrovne : vyhnite sa orezávaniu na vstupe a zachovajte plynulosť prehrávania; opravte smerovanie pred naháňaním sa za ignorovanými kódmi. V Raspberry Pi OS môžete spravovať výstupné zariadenie a úrovne pomocou systémových nástrojov alebo
raspi-config. [1] -
Akustika miestnosti : tvrdé steny spôsobujú ozveny; mäkká podložka pod mikrofónom pomáha.
-
Prah prebudenia slova : príliš citlivý → spúšťa virtuálne tajomstvá; príliš prísny → budete kričať na plast. Porcupine vám umožňuje upraviť citlivosť pre každé kľúčové slovo. [2]
-
Teploty : dlhé prepisy na Pi 5 profitujú z oficiálneho aktívneho chladenia pre trvalý výkon. [1]
Prechod od hračky k spotrebiču: Servis, automatické spustenie, kontroly stavu 🧯
Ľudia zabúdajú spúšťať skripty. Počítače zabúdajú byť milé. Premeňte svoj cyklus na spravovanú službu:
-
Vytvorte jednotku systemd:
[Jednotka] Popis=DIY Hlasový asistent Po=network.target sound.target [Služba] Používateľ=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=vždy RestartSec=3 [Inštalácia] WantedBy=multi-user.target
-
Povoliť:
sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
-
Chvosty protokolov:
journalctl -u asistent -f
Teraz sa spúšťa pri bootovaní, reštartuje pri páde a vo všeobecnosti sa správa ako zariadenie. Trochu nudné, ale oveľa lepšie.
Systém zručností: Urobte ho skutočne užitočným doma 🏠✨
Keď sú hlasové vstupy a výstupy prehľadné, pridajte akcie:
-
Intent router : jednoduché kľúčové slová pre trasy pre bežné úlohy.
-
Inteligentná domácnosť : publikovanie udalostí do MQTT alebo volanie koncových bodov HTTP Home Assistant.
-
Pluginy : rýchle funkcie Pythonu ako
set_timer,what_is_the_time,play_radio,run_scene.
Aj keď je v slučke cloudový LLM, najprv smerujte zrejmé lokálne príkazy kvôli rýchlosti a spoľahlivosti.
Lokálne iba verzus cloudová asistencia: Kompromisy, ktoré pocítite 🌓
Iba lokálne
Výhody: súkromné, offline, predvídateľné náklady.
Nevýhody: ťažšie modely môžu byť na malých doskách pomalé. Viacjazyčné školenie Whisperu pomáha s robustnosťou, ak ho uchovávate na zariadení alebo na blízkom serveri. [3]
cloudovej asistencie
: výkonné uvažovanie, väčšie kontextové okná.
Nevýhody: dáta opúšťajú zariadenie, závislosť od siete, variabilné náklady.
Hybrid často vyhráva: budiace slovo + lokálny ASR → volanie API na uvažovanie → lokálny TTS. [2][3][5]
Riešenie problémov: Zvláštni Gremlini a rýchle opravy 👾
-
Falošné spúšťače aktivačného slova : znížte citlivosť alebo vyskúšajte iný mikrofón. [2]
-
Oneskorenie ASR : použite menší model Whisper alebo zostavte súbor
whisper.cpps príznakmi vydania (-j --config Release). [4] -
Trhaný text na reč : predgenerovanie bežných fráz; potvrdenie zvukového zariadenia a vzorkovacích frekvencií.
-
Nezistil sa mikrofón : skontrolujte
arecord -la mixéry. -
Tepelné obmedzenie : pre trvalý výkon použite na Pi 5 oficiálny aktívny chladič. [1]
Poznámky o bezpečnosti a ochrane osobných údajov, ktoré by ste si mali prečítať 🔒
-
Udržujte svoj Pi aktualizovaný pomocou APT.
-
Ak používate cloudové API, zaznamenávajte odoslané údaje a najprv zvážte lokálne odstránenie osobných údajov.
-
Spúšťajte služby s najnižšími oprávneniami; vyhnite sa
príkazu sudov ExecStart, pokiaľ to nie je potrebné. -
Zabezpečte lokálny režim pre hostí alebo tiché hodiny.
Varianty zostavenia: Mixujte a kombinujte ako sendvič 🥪
-
Ultra-lokálne : Porcupine + whisper.cpp + Piper + jednoduché pravidlá. Súkromné a robustné. [2][4][5]
-
Rýchla cloudová asistencia : Porcupine + (menší lokálny Whisper alebo cloudový ASR) + lokálny TTS + cloudový LLM.
-
Centrála domácej automatizácie : Pridajte postupy Node-RED alebo Home Assistant pre rutiny, scény a senzory.
Príklad zručnosti: Rozsvietenie svetiel cez MQTT 💡
import paho.mqtt.client as mqtt MQTT_HOST = "192.168.1.10" TOPIC = "home/obývačka/svetlo/nastavenie" 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() # ak je v texte "zapnúť svetlá": set_light("on")
Pridajte hlasovú vetu ako: „zapni lampu v obývačke“ a budete sa cítiť ako čarodejník.
Prečo tento stack funguje v praxi 🧪
-
Porcupine je efektívny a presný pri detekcii „wake-word“ na malých doskách, čo umožňuje neustále počúvanie. [2]
-
Rozsiahle, viacjazyčné školenie Whisperu ho robí odolným voči rôznym prostrediam a prízvukom. [3]
-
Súbor shipset.cppudržiava túto energiu použiteľnú aj na zariadeniach s procesorom, ako je napríklad Raspberry Pi. [4] -
Piper udržiava odpovede rýchle bez toho, aby odosielal zvuk do cloudového prevodu textu na reč. [5]
Príliš dlhé, nečítal som to
Vytvorte si modulárneho, súkromného DIY AI asistenta s Raspberry Pi kombináciou Porcupine pre slovo prebudenia, Whisper (prostredníctvom whisper.cpp ) pre ASR, vášho výberu brain pre odpovede a Piper pre lokálny TTS. Zabaľte to ako službu systemd, nalaďte zvuk a prepojte s akciami MQTT alebo HTTP. Je to lacnejšie, ako si myslíte, a zvláštne príjemné na používanie. [1][2][3][4][5]
Referencie
-
Softvér a chladenie Raspberry Pi – Raspberry Pi Imager (stiahnutie a použitie) a informácie o produkte Pi 5 Active Cooler
-
Zobrazovač Raspberry Pi: čítajte viac
-
Aktívny chladič (Pi 5): čítať ďalej
-
-
Porcupine Wake Word – SDK a rýchly štart (kľúčové slová, citlivosť, lokálna inferencia)
-
Whisper (model ASR) – Viacjazyčný, robustný ASR natrénovaný na približne 680 000 hodinách
-
Radford a kol., Robustné rozpoznávanie reči prostredníctvom rozsiahleho slabého dohľadu (šepkanie): čítať ďalej
-
-
whispett.cpp – inferencia Whisper s rozhraním CPU, CLI a krokmi zostavenia
-
Piper TTS – Rýchly, lokálny neurónový TTS s viacerými hlasmi/jazykami