Wéi een en DIY AI Assistent mat engem Raspberry Pi baut

Wéi een en DIY AI Assistent mat engem Raspberry Pi baut

Wëllt Dir e klenge Stëmmassistent, deen tatsächlech Ärem Beispill folgt, op Ärer eegener Hardware leeft an net zoufälleg zwielef Ananas bestellt, well en Iech falsch héieren huet? En DIY KI Assistent mat Raspberry Pi ass iwwerraschend machbar, lëschteg a flexibel. Dir verbënnt e Wake Word, Sproocherkennung (ASR = automatesch Sproocherkennung), e Gehir fir natierlech Sprooch (Regele oder en LLM) an Text-zu-Ried (TTS). Füügt e puer Scripten, een oder zwee Servicer an e puer virsiichteg Audio-Tweaks derbäi, an Dir hutt e Smart Speaker an der Täsch, deen Är Reegele respektéiert.

Loosst eis Iech vun Null bis zum Schwätzen mat Ärem Pi bréngen, ouni dat üblecht Hoerzéien. Mir wäerten Deeler, Setup, Code, Vergläicher, Feeler... de ganze Burrito ofdecken. 🌯

Artikelen, déi Dir no dësem Artikel vläicht gäre liest:

🔗 Wéi een AI effektiv studéiert
Erstellt eng Studieplang, übt Projeten a verfollegt de Fortschrëtt.

🔗 Wéi ee eng KI-Firma grënnt
Problem validéieren, MVP opstellen, Team zesummestellen, initial Clienten sécheren.

🔗 Wéi een AI benotze kann fir méi produktiv ze sinn
Automatiséiert Routineaufgaben, vereinfacht Workflows a verbessert kreativ Leeschtungen.

🔗 Wéi Dir KI an Äert Geschäft integréiere kënnt
Prozesser mat héijem Impakt identifizéieren, Pilotprojeten ëmsetzen, ROI moossen, skaléieren.


Wat mécht e gudden DIY KI Assistent mat Raspberry Pi aus ✅

  • Standardméisseg privat – haalt den Audio wou et méiglech ass lokal. Dir entscheet wat den Apparat verléisst.

  • Modular – tauscht Komponenten aus wéi Lego: Wake Word Engine, ASR, LLM, TTS.

  • Bezuelbar – meeschtens Open-Source, Standardmikrofonen, Lautsprecher an e Pi.

  • Hackbar – wëllt Dir Hausautomatiséierung, Dashboards, Routinen, personaliséiert Fäegkeeten? Einfach.

  • Zouverlässeg – serviceverwaltet, start a lauschtert automatesch.

  • Spaass – Dir léiert vill iwwer Audio, Prozesser an eventorientéiert Design.

Klengen Tipp: Wann Dir eng Raspberry Pi 5 benotzt a plangt méi schwéier lokal Modeller ze benotzen, hëlleft e Clip-on-Kühler bei laangfristeger Belaaschtung. (Am Zweiwelsfall, wielt den offiziellen Active Cooler, deen fir Pi 5 entwéckelt gouf.) [1]


Deeler & Tools déi Dir braucht 🧰

  • Raspberry Pi : Pi 4 oder Pi 5 recommandéiert fir Kappfräiheet.

  • microSD Kaart : 32 GB+ recommandéiert.

  • USB-Mikrofon : e einfachen USB-Konferenzmikrofon ass super.

  • Lautsprecher : USB- oder 3,5 mm-Lautsprecher oder en I2S-Verstärker HAT.

  • Netzwierk : Ethernet oder Wi-Fi.

  • Optional Accessoiren: Gehäuse, aktiven Ofkiller fir Pi 5, Dréckknäppchen fir Push-to-Talk, LED-Rank. [1]

Betribssystem & Basisastellungen

  1. Flash de Raspberry Pi OS mam Raspberry Pi Imager. Et ass deen einfache Wee fir eng bootbar microSD mat de gewënschte Presets ze kréien. [1]

  2. Booten, mat dem Netzwierk verbannen, dann d'Packagen aktualiséieren:

sudo apt update && sudo apt upgrade -y
  1. Audio-Grondlagen : Op der Raspberry Pi OS kënnt Dir den Standard-Output, d'Levelen an d'Geräter iwwer d'Desktop-UI oder raspi-config . USB- an HDMI-Audio ginn op alle Modeller ënnerstëtzt; Bluetooth-Output ass op Modeller mat Bluetooth verfügbar. [1]

  2. Apparater verifizéieren:

arecord -l aplay -l

Dann test d'Opnam an d'Wiedergabe. Wann d'Niveauen komesch ausgesinn, kontrolléiert d'Mixer an d'Standardastellungen, ier Dir de Mikro d'Schold gëtt.

 

KI-Raspberry Pi

D'Architektur op ee Bléck 🗺️

E vernünftege DIY KI Assistent mat Raspberry Pi Flow gesäit sou aus:

Wake Word → Live-Audioopnam → ASR-Transkriptioun → Intenthandling oder LLM → Äntwerttext → TTS → Audiowiedergab → optional Aktiounen iwwer MQTT oder HTTP.

  • Wake word : Porcupine ass kleng, präzis a leeft lokal mat enger Sensitivitéitskontroll pro Schlësselwuert. [2]

  • ASR : Whisper ass e méisproochegt, allgemengt ASR-Modell, dat op ~680k Stonnen trainéiert gouf; et ass robust géint Akzenter/Hannergrondgeräischer. Fir d'Benotzung um Apparat whisper.cpp e schlanke C/C++ Inferenzwee. [3][4]

  • Gehir : Är Wiel – e Cloud LLM iwwer API, eng Regelmotor oder lokal Inferenz ofhängeg vun der Leeschtung.

  • TTS : Piper generéiert natierlech Ried lokal, séier genuch fir séier Äntwerten op moderater Hardware. [5]


Schnellvergläichstabell 🔎

Tool Am Beschten fir Präis-ähnlech Firwat et funktionéiert
Stachelschweinchen-Wachswuert Ausléiser fir ëmmer ze lauschteren Gratis Niveau + Niddereg CPU, präzis, einfach Bindungen [2]
Whisper.cpp Lokal ASR op Pi Open Source Gud Genauegkeet, CPU-frëndlech [4]
Méi séier geflüstert Méi séier ASR op CPU/GPU Open Source CTranslate2 Optimiséierungen
Piper TTS Lokal Sproochausgab Open Source Schnell Stëmmen, vill Sproochen [5]
Cloud LLM API Räich Argumentatioun Benotzungsbaséiert Entlaascht schwéier Rechenzäit
Node-ROUT Orchestréierend Aktiounen Open Source Visuell Fléiss, MQTT-frëndlech

Schrëtt-fir-Schrëtt-Opbau: Är éischt Stëmmschleef 🧩

Mir benotzen Porcupine fir d'Wake Word, Whisper fir d'Transkriptioun, eng liicht "Gehir"-Funktioun fir d'Äntwert (ersetzt duerch Äre gewënschte LLM) a Piper fir d'Ried. Halt et minimal, an iteréiert dann.

1) Ofhängegkeeten installéieren

sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
  • Porcupine: huelt den SDK/Bindungen fir Är Sprooch a befollegt de Schnellstart (Zougangsschlëssel + Schlësselwuertlëscht + Audioframes → .process ). [2]

  • Whisper (CPU-frëndlech): whisper.cpp :

git Klon 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

Dat Uewendriwwer spigelt de séieren Ufank vum Projet erëm. [4]

Léiwer Python? faster-whisper (CTranslate2) ass dacks méi séier wéi Vanilla Python op moderaten CPUs.

2) Piper TTS opsetzen

git clone https://github.com/rhasspy/piper cd piper make # Luet e Stëmmmodell erof, dat Dir gär hutt, z.B. en_US-amy echo "Hallo." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav

Piper ass fir TTS um Apparat mat verschiddene Stëmm-/Sproochoptiounen entwéckelt ginn. [5]

3) Eng minimal Assistent-Schleef a Python

Absichtlech kompakt: waart op eng Weckphrase (Stub), registréiert, transkribéiert mat whisper.cpp , generéiert eng Äntwert (Placeholder), a schwätzt dann iwwer Piper. Tauscht de Placeholder mat Ärer Liiblings-LLM oder Regellogik aus.

import os, subprocess, wave import sounddevice as sd WAKE_WORD = "hey computer" # tauscht fir Porcupine a Produktioun [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(Sekonnen * SAMPLE_RATE), samplerate=SAMPLE_RATE, Kanäl=CHANNELS, dtype='int16') sd.wait() mat wave.open(Wee, 'wb') als w: w.setnchannels(CHANNELS); 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 "Ech gesinn d'Wolleken net, awer et kéint gutt sinn. Bréngt eng Jackett mat, just fir de Fall." return "Dir sot: " + 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("Assistent prett. Gitt d'Wake-Phrase an fir ze testen.") 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("Benotzer:", text); print("Assistent:", reply) speak(reply) else: print("Gitt d'Weckphrase an, fir d'Loop ze testen.")

Fir eng richteg Wake-Word-Detektioun, integréiert de Streaming-Detektor vu Porcupine (niddreg CPU, Empfindlechkeet pro Schlësselwuert). [2]


Audio-Tuning déi wierklech wichteg ass 🎚️

E puer kleng Verbesserunge maachen Ären Assistent 10x méi intelligent:

  • Mikroofstand : 30–60 cm ass e gudde Beräich fir vill USB-Mikrofonen.

  • Niveauen : vermeit Clipping beim Input a behält d'Wiedergabe vernünfteg; fixéiert Routing ier Dir Code-Geeschter verfollegt. Op Raspberry Pi OS kënnt Dir den Output-Gerät an d'Niveauen iwwer System Tools oder raspi-config . [1]

  • Raumakustik : haart Maueren verursaachen Echoen; eng mëll Matte ënnert dem Mikro hëlleft.

  • Schwellenwuert fir d'Wachsprooch : ze sensibel → Geeschterausléiser; ze streng → Dir wäert Plastik uschreien. Mat Porcupine kënnt Dir d'Sensibilitéit pro Schlësselwuert upassen. [2]

  • Thermal : Laang Transkriptiounen op der Pi 5 profitéiere vum offiziellen aktive Kühler fir eng nohalteg Leeschtung. [1]


Vum Spillsaach zum Haushaltsgerät: Servicer, Autostart, Gesondheetschecks 🧯

D'Mënsche vergiessen, Skripter auszeféieren. Computere vergiessen, léif ze sinn. Maacht aus Ärer Schleif e Managed Service:

  1. Erstellt eng Systemd-Eenheet:

[Eenheet] Beschreiwung=DIY Stëmmassistent Nom=network.target sound.target [Service] Benotzer=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=ëmmer RestartSec=3 [Installatioun] WantedBy=multi-user.target
  1. Aktivéiert et:

sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
  1. Log-Schwänz:

journalctl -u assistent -f

Elo fänkt et beim Boot un, start nei beim Crash, a verhält sech allgemeng wéi en Haushaltsgerät. E bëssen langweileg, vill besser.


Fäegkeetssystem: Maacht et wierklech nëtzlech doheem 🏠✨

Soubal d'Stëmm an d'Stëmm eraus solid sinn, füügt d'Aktiounen derbäi:

  • Intent Router : einfach Schlësselwuertrouten fir allgemeng Aufgaben.

  • Smart Home : Eventer op MQTT publizéieren oder HTTP-Endpunkte vum Home Assistant opruffen.

  • Plugins : séier Python-Funktiounen ewéi set_timer , what_is_the_time , play_radio , run_scene .

Och mat engem Cloud LLM an der Loop, routéiert offensichtlech lokal Befeeler als éischt fir Geschwindegkeet a Zouverlässegkeet.


Nëmme lokal vs. Cloud Assist: Kompromësser, déi Dir mierkt 🌓

Nëmme lokal
Virdeeler: privat, offline, virauszesoen Käschten.
Nodeeler: méi schwéier Modeller kënnen op klenge Boards lues sinn. Déi méisproocheg Ausbildung vu Whisper hëlleft mat der Robustheet, wann Dir et um Apparat oder op engem Server an der Géigend späichert. [3]

Cloud Assist
Virdeeler: staark Argumentatioun, méi grouss Kontextfenster.
Nodeeler: Daten verloossen den Apparat, Netzwierkofhängegkeet, variabel Käschten.

En Hybrid gewënnt dacks: Wake Word + ASR lokal → eng API fir d'Argumentatioun opruffen → TTS lokal. [2][3][5]


Troubleshooting: Komesch Gremlins & Schnellléisungen 👾

  • Falsch Ausléiser beim Wakeword : Sensitivitéiten erofsetzen oder en anert Mikro probéieren. [2]

  • ASR Lag : benotzt e méi klengt Whisper-Modell oder baut whisper.cpp mat Release-Flags ( -j --config Release ). [4]

  • Choppy TTS : Generéiert üblech Ausdréck am Viraus; bestätegt Ären Audiogerät a Samplefrequenzen.

  • Kee Mikro fonnt : kontrolléiert arecord -l a Mixer.

  • Thermesch Drosselung : benotzt den offiziellen Active Cooler op der Pi 5 fir eng nohalteg Leeschtung. [1]


Sécherheets- a Privatsphärnotizen, déi Dir tatsächlech sollt liesen 🔒

  • Halt Äre Pi mat APT um neiste Stand.

  • Wann Dir eng Cloud-API benotzt, protokolléiert wat Dir schéckt a betruecht als éischt perséinlech Deeler lokal ze redigeren.

  • Servicer mat de mannsten Privilegien ausféieren; vermeit sudo an ExecStart, ausser et ass néideg.

  • Bitt e lokale Modus nëmme fir Gäscht oder roueg Stonnen un.


Varianten vum Bau: Mix a Match wéi e Sandwich 🥪

  • Ultra-lokal : Stachelsäule + whisper.cpp + Piper + einfach Reegelen. Privat a robust. [2][4][5]

  • Schnell Cloud-Assist : Porcupine + (méi kleng lokal Whisper oder Cloud ASR) + TTS lokal + Cloud LLM.

  • Heemautomatiséierungszentral : Füügt Node-RED oder Home Assistant Flows fir Routinen, Szenen a Sensoren derbäi.


Beispillfäegkeet: Luuchten un iwwer MQTT 💡

import paho.mqtt.client as mqtt MQTT_HOST = "192.168.1.10" TOPIC = "doheem/Wunnzëmmer/Luucht/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() # if "d'Luuchten unmaachen" am Text: set_light("on")

Füügt eng Stëmmzeil derbäi wéi: "Maacht d'Luucht an d'Wunnzëmmer un", an Dir wäert Iech wéi en Zauberer fillen.


Firwat dëse Stack an der Praxis funktionéiert 🧪

  • Porcupine ass effizient a präzis bei der Erkennung vu Wake-Words op klenge Boards, wat Always-Listening méiglech mécht. [2]

  • Déi grouss, méisproocheg Ausbildung vu Whisper mécht et robust a verschiddenen Ëmfeld an Akzenter. [3]

  • whisper.cpp hält déi Energie op CPU-nëmmen Apparater wéi de Pi benotzbar. [4]

  • Piper hält d'Äntwerten séier ouni den Audio an en TTS an der Cloud ze schécken. [5]


Ze laang, net gelies

Bau en modulare, privaten DIY KI Assistent mat Raspberry Pi andeems Dir Porcupine fir Wake Word, Whisper (iwwer whisper.cpp ) fir ASR, Är Wiel vum Gehir fir Äntwerten, a Piper fir lokal TTS kombinéiert. Packt et als Systemd Service an, stëmmt den Audio of a verkabelt MQTT oder HTTP Aktiounen. Et ass méi bëlleg wéi Dir mengt, an komescherweis agreabel domat ze liewen. [1][2][3][4][5]


Referenzen

  1. Raspberry Pi Software & Ofkillung – Raspberry Pi Imager (Download & Benotzung) a Pi 5 Active Cooler Produktinformatiounen

  2. Porcupine Wake Word – SDK & Schnellstart (Schlësselwierder, Sensibilitéit, lokal Inferenz)

  3. Whisper (ASR-Modell) – Méisproocheg, robust ASR trainéiert op ~680.000 Stonnen

    • Radford et al., Robust Sproocherkennung iwwer groussflächeg schwaach Iwwerwaachung (Flüstern): weiderliesen

  4. whisper.cpp – CPU-frëndlech Whisper-Inferenz mat CLI a Build-Schrëtt

  5. Piper TTS – Schnell, lokal neural TTS mat verschiddene Stëmmen/Sproochen

Fannt déi neist KI am offiziellen KI Assistant Store

Iwwer eis


Zréck op de Blog