ALEXA - Nachtrag zum LED-Lichtband IoT Projekt

Über die Ostertage hat sich eine Dame namens Alexa in meinem Haushalt Einzug gefunden. Meine Anschaffung hatte in diesem Fall zweierlei Hintergründe, zum einen die Evaluierung, ob dieses Gerät eine nützliche Bereicherung für meinen Alltagsablauf darstellen kann und zum anderen wie einfach es ist, Alexa aus Sicht der Softwareentwicklung einzubinden.

Alexa im Alltag:

Zum ersten betrachteten Aspekt, der Integration in alltägliche Abläufe, muss ich gesehen, ich bin wirklich positiv überrascht. Alexa lässt sich einfach konfigurieren und nach wenigen Minuten stehen die grundlegenden Funktionen zur Verfügung. Die Spracherkennung funktioniert sehr gut, auch wenn man sich nicht in der direkten Umgebung des Geräts aufhält oder Nebengeräusche um Raum vorhanden sind. Der Umfang der Default-Skills ist durchaus ausreichend um einen guten Eindruck zu bekommen und es macht Spaß zu entdecken, was Alexa alles zu bieten hat. Die mitgelieferte, notwendige App zur initialen Konfiguration hingegen ist auf IOS Seite etwas hakelig aber bedienbar. Nach einer Woche der Nutzung muss ich gestehen, verhält sich Amazons Sprachassistent ähnlich wie die Apple Watch zum Verkaufsstart. Zuerst dachte ich, ich benötige es nicht aber nun ist es aus dem Alltag schwierig wegzudenken. Immer häufiger erwische ich mich im Dialog mit Alexa als schlaues Helferlein, wenn ich in der Küche die Hände voll habe oder ich am Morgen im vorbeigehen ein paar Infos möchte. Zusätzlich hierzu entstehen fast täglich neue nützliche und unterhaltsame Skills aus der community, sodass Alexa nicht langweilig wird.

Alexa Development:

Der für mich eigentlich interessantere Aspekt, ist die Entwicklung von eigenen Skills. Hierzu habe ich mir als Anwendungsfall die sprachgesteuerte Bedienung des Stimmungslichts aus dem vorherigen Artikel vorgenommen. Alexa soll am Ende via "Moodlight einschalten" und "Moodlight ausschalten" in der Lage sein, zu tun was vorher via WebApp-Fernbedierung gesteuert wurde. 

Der Grundsätzliche Ablauf ist einfach, sind die Befehle doch im lokalen Netz bereits via URL verfügbar, somit muss Alexa nur die Ausdrücke zu den richtigen Sprachbefehlen zuordnen und eine URL aufrufen.

Folgende Voraussetzungen erleichtern das Leben bei der Skill-Entwicklung:

Die ersten Berührungspunkte mit dem Skill-Development erzeugten zuerst einige Fragezeichen, wenn man aus der klassischen Java Entwicklung kommt. Das durcharbeiten eines kleinen Tutorials brachte hier allerdings schnell Abhilfe. Mit dem Alexa Demo Skill in Python kann man schnell und einfach nachvollziehen, wie ein Skill gestaltet werden muss.

Über den Amazon Developer Account wird der Skill beschrieben, welche sogenannten Intents im Skill hinterlegt sind, welche Spracheingaben valide sind und auf welche der Intents diese matchen.

Wenn diese Inhalte definiert sind, kann in AWS-Lambda ein, in diesem Falle Python, Skript erstellt werden, welches die Funktionen der einzelnen Intents implementiert. Hierzu stehen auf der Website die Python Bordmittel zur Verfügung. Benötigt man darüberhinaus weitere Bibliotheken, bietet es sich an, den Code extern zu schreiben und via Archiv (Developer Doku beschriebt, wie das Archiv aussehen muss) hochzuladen. Sobald der Code in der Amazon Cloud ausgeführt wird, kann der neue Skill bereits auf der Hauseigenen Alexa getestet werden.

Im nächsten Schritt möchte ich noch versuchen, das ganze mit dem Flask-Ask Framework zu realisieren, um die Implementierung zu vereinfachen.

Bis dahin Alexa, gute Nacht..