RoPot ist eine künstliche Intelligenz, die dort “lebt”, wo sonst nur natürliches Leben wächst: in einem Blumentopf. Mit dem Roboter kann über ein Large Language Model per Sprache kommuniziert werden. Über ein Display kann es menschliche Emotionen imitieren.
Für
Mich
Arbeiten
Raspberry Pi
Python
Sprachverarbeitung
Animation
Idee
Der erste Kontakt mit dieser Idee geht auf das Jahr 2008 zurück, als der Pixar-Film “WALL-E - Der Letzte räumt die Erde auf” in die Kinos kam. Dieser faszinierte mich so sehr, dass mein Vater und ich den Roboter gemeinsam aus Pappe nachbauten. Schon damals träumte ich davon, mit dem Objekt interagieren zu können. Zunächst war der programmierbare LEGO Mindstorms-Roboter die nächste Möglichkeit dafür. Vielleicht war das schon der Anstoss, 8 Jahre später eine Lehre als Informatiker zu beginnen. Der zwischenzeitlich verloren gegangene Wunsch lebte wieder auf, als 2022 mit ChatGPT erstmals ein auf natürlicher Sprache basierender KI-Assistent der Öffentlichkeit zugänglich gemacht wurde. So begann dieses Projekt als private Spielwiese während meines Bachelorstudiums in Informatik.
Aufbau
RoPot besteht aus den folgenden Komponenten:
Einplatinencomputer (Raspberry Pi)
Display
Mikrofon
Lautsprecher
Batterie
SD-Karte
Um das Gehäuse ansprechend zu gestalten, hatte ich verschiedene Ideen wie Recyclingmaterial, Pappe, Holz, Dosen, alte Technikgehäuse, Lego oder Holz. Währenddessen fiel mein Blick in meinem Zimmer auf eine Pflanze und ihren Topf, was sich im Nachhinein als gute Lösung herausstellte, da beispielsweise die Löcher optimal für die Luftzirkulation sind und das Mikrofon offener platziert werden kann.
Umsetzung
Das zu lösende Problem, das auf den ersten Blick komplex erscheint, lässt sich in vier leicht isolierbare Teilprobleme zerlegen:
1.
Sprache-zu-Text
Bei der Spracherkennung wird gesprochene Sprache, die über ein Mikrofon aufgenommen wird, in Echtzeit in Text umgewandelt.
2.
Sprachmodell
Der erkannte Text wird einem vortrainierten Sprachmodell übergeben, das mit Hilfe von Wahrscheinlichkeiten den nächsten passenden Textbaustein vorhersagt.
3.
Text-zu-Sprache
Der erhaltene Antworttext kann nun wieder in eine künstlich erzeugte Sprechstimme übersetzt und abgespielt werden.
4.
Anzeige
Um den Anwender:innen eine visuelle Rückmeldung zu geben, was der Roboter gerade macht, werden verschiedene Animationen auf einem Display angezeigt.
Emotionen
Neben der Ladeanimation bei der Bearbeitung der Punkte 1. und 2. wird bei Punkt 3. eine Sprachanimation angezeigt. Während des Zuhörens kann der Roboter Emotionen visuell ausdrücken, die menschliche Emotionen imitieren. Hier einige Beispiele:
Emotion & Beschreibung
Ausdruck
Avatar
Umsetzung
Neutral Oberes Augenlid berührt die Iris, unteres Augenlid ist entspannt
Glücklich Die Wangen heben sich und drücken das untere Augenlid. Oberes Augenlid kann angehoben werden
Traurig Augen leicht geschielt, Oberlid hängt durch die Brauen herab
Wut Augen konzentriert und weit geöffnet. Das obere Augenlid scheint aufgrund der Brauen tiefer zu liegen
Die Spracherkennung (Sprache-zu-Text) benötigt derzeit die meiste Zeit und lässt bei längeren Wartezeiten die Interaktion unecht erscheinen. Durch die Einführung multimodaler LLMs, die statt nur textbasierter Eingaben nun auch direkt Sprache verarbeiten können, könnte dieser Schritt ausgebaut werden.
Die Interkation ist derzeit nur halbduplex möglich. Zur genaueren Nachbildung menschlicher Interaktionen wäre eine Duplex-Implementierung denkbar.
In Zukunft könnten neben dem Mikrofon weitere Sensoren angeschlossen werden. So könnte der Roboter mit Hilfe einer Kamera Objekte erkennen oder sich bei der Fortbewegung orientieren.
Eine weitere Idee wäre es, eine echte Pflanze in das Gehäuse zu setzen und die Emotionen des RoPoters beispielsweise an die Wasserverhältnisse anzupassen.