Künstliche Intelligenz auf dem RasPi

Künstliche Intelligenz auf dem RasPi

Nicht erst seit den letzten Enthüllungen über die Praktiken von Facebook ist der Autor skeptisch gegenüber Geräten aus dem Hausautomationsbereich wie Amazon Echo, Google home oder Apple homekit, sind all diese Geräte doch internetbasiert und beruhen auf Diensten, über die nur die entsprechenden Firmen Bescheid wissen. Der Benutzer weiß allerdings nicht, wann die Geräte Daten sammeln und was mit diesen gesammelten Daten in der Cloud dann tatsächlich passiert.

Umso erfreuter war ich, als mir ein Bekannter beim letzten Skiurlaub von einer Spracherkennungssoftware erzählte, die ausgereifte Algorithmen verwendet, auf einem RaspberryPi, einer ausgewachseneren Linuxmaschine oder einem Androidgerät läuft und open-source ist! Snips heißt das Programm und ist nach einer kurzen Anmeldung (braucht man auch um seine Assistenten zu generieren und herunterzuladen) unter https://snips.ai/ downloadbar.snips1

Leider ist die Dokumentation noch nicht optimal, weshalb es uns viel Zeit und Suche in den verschiedensten Quellen bei git-hub und Discord gekostet hat, das System zum Laufen zu bekommen. Seitdem sind wir aber absolut geflasht, was künstliche Intelligenz auf einem RaspberryPi zustande bringt! Die Macher von Snips haben sich nämlich privacy-by-design auf ihre Fahnen geschrieben und es geschafft, die Spracherkennung ohne cloudbasierte Unterstützung nur auf dem Einplatinenrechner stattfinden zu lassen (einfach überprüfbar, indem man dem RasPi den Internetzugang kappt)! Das bedeutet dann für den User, dass seine Daten tatsächlich bei ihm bleiben und nicht von profitgetriebenen Firmen ausgewertet werden! Und nur so lassen sich verantwortungsbewusste Menschen dazu bringen, Vorurteile abzubauen und der künstlichen Intelligenz ein Stück mehr zu vertrauen.

snips3Nachdem man das RaspberryPi-Image auf die SD-Karte geschrieben hat, ein (einfaches USB-) Mikrofon und Lautsprecher eingesteckt hat kann es auch schon losgehen. Für einen ersten Versuch haben wir den Wetterassistenten von der snips-console heruntergeladen und auf den RasPi gespielt. Nach der Erkennung des Hotwords „Hey Snips“ wird der von der ASR (automatic speech recognition) „gehörte“ und von der NLU (natural language understanding) interpretierte Text, seine Zuordnung zu den im Assistenten hinterlegten „Intents“, also Absichten (z.B. „Wettervorhersage“ oder „aktuelles Wetter“) nebst berechneter Wahrscheinlichkeit, die für diese Intents aus den Wörtern erkannten „Slots“, also Bearbeitungsdaten (z.B. welche Stadt oder welcher Zeitraum) vom DialogueManager per MQTT weitergeleitet (eine ausführliche Beschreibung der zu Grunde liegenden Konzepte gibt es hier).

Der MQTT-Bus muss dann von einem z.B. in Python programmierten handler abgehört werden, die ankommenden Daten aus einem JSON-String geparst und entsprechende Aktionen ausgeführt werden. Eine ausführlichere Anleitung nebst handler für den Wetter-Assistenten gibt es hier.

Seit der Autor nun Erfahrungen mit Snips sammelt ist er absolut begeistert. Eine snips2hervorragend funktionierende Technologie auf einem der zukunftsträchtigsten Märkte (die Automobilindustrie arbeitet aktuell an Sprachsteuerungsassistenten im Auto, scheitert aber oft noch an einer unterwegs unzureichenden Datenanbindung in die Cloud für die o.g. großen Player) mit einer offenen Plattform, die sich der Privatsphäre verpflichtet und von einer großen Community getragen wird. Und weil er nun weiß, was mit seinen Daten geschieht, wird zu Hause aktuell an einer Heimautomationslösung mit HomeAssistant und Snips gearbeitet. Das ist demnächst aber ein neuer Beitrag …

Wolfgang Lormes
Letzte Artikel von Wolfgang Lormes (Alle anzeigen)
Kommentare sind geschlossen.