OpenLexa

DIY AI Voice Assistant mit Raspberry Pi & GPT-4o

How-To Guide & Tutorial

OpenLexa ist ein Open-Source, Always-on KI-Sprachassistent — selbst gebaut. Stell dir einen selbstgemachten Amazon Echo vor, der statt Alexa OpenAIs GPT-4o Realtime API verwendet. Du redest, er hört zu und antwortet in einer natürlichen Stimme. Keine Tastatur. Kein Touchscreen. Nur Gespräch.

Er läuft auf einem winzigen Raspberry Pi, verbindet sich mit einem Bluetooth-Lautsprecher/Mikrofon und zeigt optional ein animiertes Roboter-Gesicht auf einem kleinen HDMI-Display. Das ganze Gerät passt in eine Hand — und ist ab 35 € realisierbar.

Was macht OpenLexa besonders?

Echtzeit-Konversation

GPT-4o Realtime API für minimale Latenz und flüssige Gespräche.

🎙️

Vollständig sprachgesteuert

Kein Touch, keine Tastatur — nur Stimme. Immer an, immer bereit.

🔔

Wake-Word-Aktivierung

Offline-Erkennung via Porcupine — ~1 % CPU, kein Netzwerk, kein API-Kosten im Standby.

🌍

Mehrsprachig

Out-of-the-box mehrsprachig — einfach in den Instructions einstellen.

🔓

100% Open Source

MIT-Lizenz. Vollständig anpassbar, forkbar und erweiterbar.

Was du brauchst — ab 35 €

Raspberry Pi + Audio-Gerät + MicroSD — das sind die einzigen drei Pflicht-Komponenten. Für das Audio-Gerät gibt es zwei Optionen: Bluetooth (kabellos) oder USB (plug-and-play). Display, Netzteil und Kabel hast du wahrscheinlich schon zuhause.

🖥️

Raspberry Pi Zero 2 W — ~15 €

Das Gehirn des Projekts. Klein, günstig, leistungsfähig genug für GPT-4o Realtime.

🔊

Option A: Bluetooth Speaker + Mic (Soundcore Mini) — ~20 €

Audio-Ein- und Ausgabe in einem Gerät. Verbindet sich per Bluetooth mit dem Pi.

🔌

Option B: USB Speaker Bar — ~15 €

Plug-and-play USB-Audio — kein Bluetooth-Pairing nötig. Direkt einstecken, PipeWire erkennt es automatisch.

📺

3,5" HDMI-Display — ~20 € (Optional)

Zeigt das animierte Roboter-Gesicht und Live-Transkription. Kann weggelassen werden.

💳

MicroSD (16 GB+) + USB-Netzteil — ~13 €

Standard-Raspberry-Pi-Zubehör. MicroSD für das OS, 5V/2,5A Netzteil für die Stromversorgung.

Dazu kommt die OpenAI API (pay-per-use): ca. 0,10–0,30 € pro Gesprächsstunde. Für normalen Heimgebrauch sind das wenige Cent bis maximal ein Euro pro Tag.

Aufbau in 8 Schritten

Die komplette Einrichtung dauert etwa 30–60 Minuten. Alles läuft über SSH — kein Monitor, keine Maus nötig.

1️⃣

Raspberry Pi OS flashen

Raspberry Pi OS Lite (64-bit) mit dem Pi Imager flashen. WLAN und SSH vorab konfigurieren.

2️⃣

Booten & verbinden

Pi starten und per SSH verbinden: ssh pi@raspberrypi.local

3️⃣

System-Abhängigkeiten installieren

PipeWire (Audio), pygame (Display) und Nanum-Fonts installieren.

4️⃣

Bluetooth koppeln

Soundcore Mini per bluetoothctl koppeln, vertrauen und verbinden.

5️⃣

Repository klonen

git clone https://github.com/ARDings/OpenLexaPi.git

6️⃣

Python-Abhängigkeiten

websockets und pygame über pip3 installieren.

7️⃣

API-Key konfigurieren

OpenAI API-Key, Stimme und Persönlichkeit in main.py eintragen.

8️⃣

Starten & reden

python3 main.py — Startup-Chime abwarten und einfach lostreden.

Anpassung

Das Beste an OpenLexa ist, wie einfach es sich personalisieren lässt — alles in wenigen Zeilen Python.

🧠

Persönlichkeit

INSTRUCTIONS in main.py ändern — z.B. „Du bist Jarvis, ein sarkastischer KI-Butler."

🗣️

Stimme

VOICE auf alloy, ash, coral, echo, nova oder shimmer setzen.

👁️

Augen-Farben

RGB-Konstanten in display.py ändern für individuelle Augenfarben auf dem Display.

🌐

Sprache

In den Instructions einfach „Antworte immer auf Deutsch." oder eine andere Sprache angeben.

Unter der Haube — Wie es funktioniert

OpenLexa besteht aus drei Dateien: launcher.py wartet auf das Audio-Gerät und startet die App. main.py verwaltet Wake-Word-Loop, WebSocket-Session und Audio-I/O. display.py steuert das Pygame-Display als Daemon-Thread.

SLEEPING
  Porcupine (offline) ◄── Mic (USB oder BT) — wartet auf "Computer"
       │ Wake-Word erkannt
       ▼
ACTIVE
  Mic ──► AudioRecorder ──► OpenAI Realtime API ──► AudioPlayer ──► Speaker
       [15s Stille] ──► zurück zu SLEEPING

Das Herzstück ist eine persistente WebSocket-Verbindung zur OpenAI Realtime API — sie vereint Speech-to-Text, LLM-Inferenz und Text-to-Speech in einem einzigen Kanal. Kein Chaining von drei separaten Diensten, keine zusätzliche Latenz.

Technische Entscheidungen

🔌

Warum OpenAI Realtime API?

Eine persistente WebSocket-Verbindung ersetzt drei separate Dienste (Whisper → GPT → TTS). Voice Activity Detection läuft server-seitig — kein lokales VAD-Library nötig, kein CPU-Overhead auf dem Pi.

🔊

Warum PipeWire statt ALSA?

Raspberry Pi OS Bookworm nutzt PipeWire als Standard-Audio-Server. Es verwaltet Bluetooth-Profil-Switching (A2DP ↔ HFP), Resampling und Echo-Cancel transparent — ohne manuelle ALSA-Konfiguration.

🔇

Echo-Prävention

Wenn die KI spricht, wird das Mikrofon softwareseitig gemutet. Nach dem Sprechen: 2,5 Sekunden Stille für Raumecho-Abklingen → Mikrofon-Queue flushen → Mikrofon wieder aktivieren. Kein akustisches Echo trotz physischer Nähe von Mic und Speaker.

🤖

Retro-Display auf minimalem Hardware

Der Raspberry Pi Zero hat nur 512 MB RAM und keine dedizierte GPU. Animierte Elemente werden auf einem 200×120 Canvas gerendert und 4× hochskaliert — das sind 6,25% der Pixel einer 800×480 Auflösung. Der 4×-Upscale erzeugt dabei bewusst ein sichtbares Pixelraster: den Retro-LED-Matrix-Look der Roboteraugen.

Optionale Erweiterungen

🔇

Echo-Cancellation

Falls der Assistent seine eigene Stimme aufnimmt: WebRTC Echo-Cancellation via PipeWire aktivieren und permanent in der Konfiguration speichern.

🔁

Auto-Start beim Booten

Systemd-Service erstellen, damit OpenLexa beim Einschalten des Pi automatisch startet — kein Login nötig.

Troubleshooting

🔊

Kein Audio?

pactl list sinks ausführen und prüfen, ob das Bluetooth-Gerät als Standard-Sink gelistet ist.

🎙️

Mikrofon nicht erkannt?

Bluetooth-Gerät trennen und erneut verbinden. Sicherstellen, dass es im HFP-Modus läuft (nicht nur A2DP).

📺

Display zeigt nichts?

pygame installiert? HDMI-Display vor dem Booten anschließen.

🔑

API-Fehler?

API-Key in main.py prüfen und sicherstellen, dass das OpenAI-Konto ein Guthaben hat.

Vollständige Dokumentation

Diese Seite gibt einen Überblick. Die vollständige README auf GitHub enthält alle Details zu Setup, Konfiguration, Dateistruktur und weiteren technischen Hintergründen.

README auf GitHub lesen →

OpenLexa selbst bauen

Vollständiger Quellcode, Dokumentation und Community-Updates auf GitHub — MIT-Lizenz, kostenlos, vollständig anpassbar.

Zum GitHub Repository →