Sie wünschen sich einen winzigen Sprachassistenten, der Ihnen gehorcht, auf Ihrer eigenen Hardware läuft und nicht versehentlich zwölf Ananas bestellt, weil er Sie falsch verstanden hat? Ein KI-Assistent zum Selberbauen mit Raspberry Pi ist überraschend einfach, macht Spaß und ist flexibel. Sie verbinden ein Aktivierungswort, Spracherkennung (ASR = automatische Spracherkennung), ein System zur Verarbeitung natürlicher Sprache (Regeln oder ein LLM) und Text-to-Speech (TTS). Fügen Sie ein paar Skripte, ein oder zwei Dienste und einige sorgfältige Audioeinstellungen hinzu, und schon haben Sie einen handlichen Smart Speaker, der Ihre Regeln befolgt.
Wir bringen dich ohne den üblichen Frust von Null auf den Weg zur Kommunikation mit deinem Raspberry Pi. Wir behandeln Komponenten, Einrichtung, Code, Vergleiche, Fallstricke ... das volle Programm. 🌯
Artikel, die Sie im Anschluss an diesen Artikel vielleicht interessieren:
🔗 Wie man KI effektiv studiert
Erstelle einen Lernplan, übe Projekte und verfolge den Fortschritt.
🔗 Wie man ein KI-Unternehmen gründet
Problem validieren, MVP entwickeln, Team zusammenstellen, erste Kunden gewinnen.
🔗 Wie man KI nutzen kann, um produktiver zu sein
Automatisieren Sie Routineaufgaben, optimieren Sie Arbeitsabläufe und steigern Sie die kreative Leistung.
🔗 Wie Sie KI in Ihr Unternehmen integrieren können
Prozesse mit hoher Wirkung identifizieren, Pilotprojekte durchführen, ROI messen, skalieren.
Was einen guten DIY-KI-Assistenten mit Raspberry Pi ausmacht ✅
-
Standardmäßig privat – Audio wird nach Möglichkeit lokal gespeichert. Sie entscheiden, was das Gerät verlässt.
-
Modular – Komponenten wie bei Lego austauschen: Aktivierungswort-Engine, ASR, LLM, TTS.
-
Preiswert – größtenteils Open Source, handelsübliche Mikrofone, Lautsprecher und ein Raspberry Pi.
-
Hackable – Sie wünschen sich Hausautomation, Dashboards, Routinen und individuelle Skills? Ganz einfach.
-
Zuverlässig – vom Dienst verwaltet, startet und beginnt automatisch mit dem Zuhören.
-
Spaßig – Sie werden viel über Audio, Prozesse und ereignisgesteuertes Design lernen.
Kleiner Tipp: Wenn Sie einen Raspberry Pi 5 verwenden und leistungsstärkere lokale Modelle betreiben möchten, hilft ein aufsteckbarer Kühler bei dauerhafter Last. (Im Zweifelsfall wählen Sie den offiziellen Active Cooler für den Pi 5.) [1]
Teile und Werkzeuge, die Sie benötigen 🧰
-
Raspberry Pi : Für mehr Leistungsreserven wird ein Pi 4 oder Pi 5 empfohlen.
-
microSD-Karte : 32 GB+ empfohlen.
-
USB-Mikrofon : Ein einfaches USB-Konferenzmikrofon ist ideal.
-
Lautsprecher : USB- oder 3,5-mm-Lautsprecher oder ein I2S-Verstärker-HAT.
-
Netzwerk : Ethernet oder WLAN.
-
Optionale Extras: Gehäuse, aktiver Kühler für Pi 5, Druckknopf für Push-to-Talk, LED-Ring. [1]
Betriebssystem- und Basiskonfiguration
-
Flashen Sie Raspberry Pi OS mit dem Raspberry Pi Imager. Dies ist der einfachste Weg, eine bootfähige microSD-Karte mit den gewünschten Voreinstellungen zu erhalten. [1]
-
Starten Sie den Computer, stellen Sie eine Netzwerkverbindung her und aktualisieren Sie dann die Pakete:
sudo apt update && sudo apt upgrade -y
-
Audio-Grundlagen : Unter Raspberry Pi OS können Sie die Standardausgabe, die Pegel und die Geräte über die Desktop-Benutzeroberfläche oder
raspi-config. USB- und HDMI-Audio werden von allen Modellen unterstützt; Bluetooth-Ausgabe ist bei Modellen mit Bluetooth verfügbar. [1] -
Geräte überprüfen:
arecord -l aplay -l
Testen Sie anschließend Aufnahme und Wiedergabe. Sollten die Pegel ungewöhnlich erscheinen, überprüfen Sie die Mischpulteinstellungen und Standardeinstellungen, bevor Sie das Mikrofon verantwortlich machen.

Architektur auf einen Blick 🗺️
Ein sinnvoller DIY-KI-Assistent mit Raspberry Pi -Flow sieht folgendermaßen aus:
Aktivierungswort → Live-Audioaufnahme → ASR-Transkription → Intent-Handling oder LLM → Antworttext → TTS → Audiowiedergabe → optionale Aktionen via MQTT oder HTTP.
-
Aktivierungswort : Porcupine ist klein, präzise und läuft lokal mit individueller Empfindlichkeitssteuerung pro Schlüsselwort. [2]
-
ASR : Whisper ist ein mehrsprachiges, universell einsetzbares ASR-Modell, das mit ca. 680.000 Trainingsstunden erstellt wurde und robust gegenüber Akzenten und Hintergrundgeräuschen ist. Für die Verwendung auf Geräten
whisper.cppeinen schlanken C/C++-Inferenzpfad. [3][4] -
Gehirn : Sie haben die Wahl – ein Cloud-basiertes LLM über eine API, eine Regel-Engine oder lokale Inferenz, je nach Rechenleistung.
-
TTS : Piper generiert natürliche Sprache lokal, schnell genug für zügige Antworten auch auf einfacher Hardware. [5]
Schnellvergleichstabelle 🔎
| Werkzeug | Am besten geeignet für | Preislich ungefähr | Warum es funktioniert |
|---|---|---|---|
| Stachelschwein-Weckwort | Auslöser für ständiges Zuhören | Kostenloses Angebot + | Geringer CPU-Verbrauch, präzise, einfache Bindungen [2] |
| Whisper.cpp | Lokale ASR auf Pi | Open Source | Gute Genauigkeit, CPU-schonend [4] |
| Schneller-Flüstern | Schnelleres ASR auf CPU/GPU | Open Source | CTranslate2-Optimierungen |
| Piper TTS | Lokale Sprachausgabe | Open Source | Schnelle Stimmen, viele Sprachen [5] |
| Cloud LLM API | Reichhaltige Argumentation | Nutzungsbasiert | Lagert rechenintensive Aufgaben aus |
| Node-RED | Orchestrierung von Aktionen | Open Source | Visuelle Abläufe, MQTT-kompatibel |
Schritt-für-Schritt-Anleitung: Dein erster Voice-Loop 🧩
Wir verwenden Porcupine für das Aktivierungswort, Whisper für die Transkription, eine einfache „Gehirn“-Funktion für die Antwort (ersetzen Sie diese durch Ihre bevorzugte Sprachverarbeitungsmethode) und Piper für die Sprachausgabe. Halten Sie es anfangs so einfach wie möglich und optimieren Sie es dann schrittweise.
1) Abhängigkeiten installieren
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
-
Porcupine: Laden Sie das SDK/die Bindungen für Ihre Sprache herunter und folgen Sie der Kurzanleitung (Zugriffsschlüssel + Stichwortliste + Audioframes →
.process). [2] -
Whisper (CPU-freundlich): Erstelle 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
Das oben Genannte spiegelt den schnellen Start des Projekts wider. [4]
Bevorzugen Sie Python?
faster-whisper(CTranslate2) ist auf leistungsschwächeren CPUs oft schneller als reines Python.
2) Piper TTS einrichten
git clone https://github.com/rhasspy/piper cd piper make # Laden Sie ein gewünschtes Sprachmodell herunter, z. B. en_US-amy echo "Hallo." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper ist für die geräteinterne TTS mit mehreren Sprach-/Sprachoptionen konzipiert. [5]
3) Eine minimale Hilfsschleife in Python
Bewusst kompakt: Es wartet auf ein Aktivierungswort (Stub), zeichnet es auf, transkribiert es mit whisper.cpp , generiert eine Antwort (Platzhalter) und gibt diese dann über Piper aus. Ersetzen Sie den Platzhalter durch Ihre bevorzugte Sprachverarbeitungslogik oder Regellogik.
import os, subprocess, wave import sounddevice as sd WAKE_WORD = "hey computer" # Tausch für Porcupine in der Produktion [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(seconds * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=CHANNELS, dtype='int16') sd.wait() with wave.open(path, 'wb') as 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 "Ich kann die Wolken nicht sehen, aber es könnte schön sein. Bring vorsichtshalber eine Jacke mit." return "Du sagtest: " + 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 bereit. Geben Sie das Aktivierungswort zum Testen ein.") 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("Benutzer:", text); print("Assistent:", reply) speak(reply) else: print("Geben Sie das Aktivierungswort zum Testen der Schleife ein.")
Für eine zuverlässige Aktivierungsworterkennung sollte der Streaming-Detektor von Porcupine integriert werden (geringe CPU-Auslastung, Empfindlichkeit pro Schlüsselwort). [2]
Audio-Tuning, das wirklich zählt 🎚️
Ein paar kleine Verbesserungen lassen Ihren Assistenten 10-mal intelligenter wirken:
-
Mikrofonabstand : 30–60 cm ist ein optimaler Bereich für viele USB-Mikrofone.
-
Pegel : Vermeiden Sie Übersteuerungen am Eingang und sorgen Sie für eine reibungslose Wiedergabe; beheben Sie Routing-Probleme, bevor Sie nach Fehlern im Code suchen. Unter Raspberry Pi OS können Sie Ausgabegerät und Pegel über Systemtools oder
raspi-config. [1] -
Raumakustik : Harte Wände verursachen Echos; eine weiche Matte unter dem Mikrofon schafft Abhilfe.
-
Schwellenwert für Aktivierungswörter : zu empfindlich → Fehlalarme; zu streng → man schreit Plastik an. Mit Porcupine lässt sich die Empfindlichkeit pro Schlüsselwort anpassen. [2]
-
Thermik : Längere Transkriptionen auf dem Pi 5 profitieren vom offiziellen aktiven Kühler für eine dauerhafte Leistung. [1]
Vom Spielzeug zum Haushaltsgerät: Serviceleistungen, Autostart, Gesundheitschecks 🧯
Menschen vergessen, Skripte auszuführen. Computer vergessen, freundlich zu sein. Wandeln Sie Ihre Schleife in einen verwalteten Dienst um:
-
Erstellen einer systemd-Unit:
[Unit] Description=DIY Sprachassistent After=network.target sound.target [Service] User=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=always RestartSec=3 [Install] WantedBy=multi-user.target
-
Aktivieren:
sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
-
Log-Schwänze:
journalctl -u assistant -f
Jetzt startet es beim Hochfahren, startet nach einem Absturz neu und verhält sich allgemein wie ein Haushaltsgerät. Etwas langweilig, aber viel besser.
Fertigkeitssystem: So wird es zu Hause wirklich nützlich 🏠✨
Sobald Spracheingabe und Sprachausgabe einwandfrei funktionieren, fügen Sie Aktionen hinzu:
-
Intent-Router : Einfache Keyword-Routen für häufige Aufgaben.
-
Smart Home : Ereignisse an MQTT senden oder die HTTP-Endpunkte von Home Assistant aufrufen.
-
Plugins : Schnelle Python-Funktionen wie
set_timer,what_is_the_time,play_radio,run_scene.
Auch wenn ein Cloud-LLM im Spiel ist, sollten offensichtliche lokale Befehle aus Gründen der Geschwindigkeit und Zuverlässigkeit zuerst ausgeführt werden.
Lokale Installation vs. Cloud-Unterstützung: Die Vor- und Nachteile, die Sie spüren werden 🌓
Nur lokal.
Vorteile: privat, offline, vorhersehbare Kosten.
Nachteile: Leistungsstärkere Modelle können auf kleinen Platinen langsam sein. Das mehrsprachige Training von Whisper trägt zur Robustheit bei, wenn es auf dem Gerät oder einem nahegelegenen Server ausgeführt wird. [3]
der Cloud-Unterstützung
: Leistungsstarke Analyse, größere Kontextfenster.
Nachteile: Daten verlassen das Gerät, Netzwerkabhängigkeit, variable Kosten.
Eine Hybridlösung ist oft die beste: Aktivierungswort + lokale automatische Spracherkennung (ASR) → Aufruf einer API zur Informationsverarbeitung → lokale Text-to-Speech-Lösung (TTS). [2][3][5]
Fehlerbehebung: Seltsame Fehler & Schnelle Lösungen 👾
-
Fehlalarme durch Aktivierungswörter : Empfindlichkeit verringern oder ein anderes Mikrofon verwenden. [2]
-
ASR-Verzögerung : Verwenden Sie ein kleineres Whisper-Modell oder kompilieren Sie
whisper.cppmit Release-Flags (-j --config Release). [4] -
Abgehackte TTS : Häufig verwendete Phrasen vorab generieren; Audiogerät und Abtastrate bestätigen.
-
Kein Mikrofon erkannt : Überprüfen Sie
arecord -lund mixers. -
Thermische Drosselung : Verwenden Sie den offiziellen Active Cooler auf dem Pi 5, um eine dauerhafte Leistung zu gewährleisten. [1]
Sicherheits- und Datenschutzhinweise, die Sie unbedingt lesen sollten 🔒
-
Halten Sie Ihren Raspberry Pi mit APT auf dem neuesten Stand.
-
Wenn Sie eine Cloud-API verwenden, protokollieren Sie, was Sie senden, und erwägen Sie, persönliche Daten vorher lokal zu schwärzen.
-
Führen Sie Dienste mit minimalen Berechtigungen aus; vermeiden Sie
sudoin ExecStart, es sei denn, dies ist erforderlich. -
Bieten Sie einen Modus nur für lokale Nutzer oder Ruhezeiten an.
Konfigurationsvarianten: Kombinieren Sie nach Belieben wie bei einem Sandwich 🥪
-
Ultralokal : Porcupine + whisper.cpp + Piper + einfache Regeln. Privat und robust. [2][4][5]
-
Schnelle Cloud-Unterstützung : Porcupine + (kleinere lokale Whisper- oder Cloud-ASR) + lokale TTS + Cloud-LLM.
-
Zentrale für die Hausautomation : Fügen Sie Node-RED- oder Home Assistant-Flows für Routinen, Szenen und Sensoren hinzu.
Beispiel-Skill: Licht einschalten via 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() # if "turn on the lights" in text: set_light("on")
Füge eine Sprachausgabe wie „Schalte die Wohnzimmerlampe ein“ hinzu, und du wirst dich wie ein Zauberer fühlen.
Warum dieser Stack in der Praxis funktioniert 🧪
-
Porcupine ist bei der Erkennung von Aktivierungswörtern auf kleinen Platinen effizient und genau, was ein ständiges Zuhören ermöglicht. [2]
-
Whispers umfangreiches, mehrsprachiges Training macht es robust gegenüber unterschiedlichen Umgebungen und Akzenten. [3]
-
whisper.cppsorgt dafür, dass diese Leistung auch auf Geräten mit reiner CPU wie dem Pi nutzbar bleibt. [4] -
Piper sorgt für schnelle Antworten, ohne Audio an einen Cloud-TTS zu senden. [5]
Zu lang, nicht gelesen
Entwickeln Sie mit Raspberry Pi einen modularen, privaten KI-Assistenten, indem Sie Porcupine für das Aktivierungswort, Whisper (über whisper.cpp ) für die automatische Spracherkennung, eine KI Ihrer Wahl für die Antworten und Piper für die lokale Sprachausgabe kombinieren. Verpacken Sie das Ganze als systemd-Dienst, passen Sie die Audioeinstellungen an und integrieren Sie MQTT- oder HTTP-Aktionen. Es ist günstiger als Sie denken und überraschend angenehm im Alltag. [1][2][3][4][5]
Referenzen
-
Raspberry Pi Software & Kühlung – Raspberry Pi Imager (Download & Verwendung) und Produktinformationen zum Pi 5 Active Cooler
-
Raspberry Pi Imager: mehr erfahren
-
Aktiver Kühler (Pi 5): mehr erfahren
-
-
Stachelschwein-Weckwort – SDK & Schnellstart (Schlüsselwörter, Sensitivität, lokale Inferenz)
-
Whisper (ASR-Modell) – Mehrsprachige, robuste ASR, trainiert mit ca. 680.000 Stunden Sprachdaten.
-
Radford et al., Robuste Spracherkennung mittels großskaliger schwacher Überwachung (Whisper): mehr lesen
-
-
whisper.cpp – CPU-freundliche Whisper-Inferenz mit CLI und Build-Schritten
-
Piper TTS – Schnelle, lokale neuronale TTS mit mehreren Stimmen/Sprachen