Nachdem im Betrieb das Thema Alexa schon unter anderem beim communicode OpenSpace aufgekommen war, haben wir – die Entwickler-Azubis aus dem zweiten Jahr – uns entschlossen, einen eigenen Alexa Skill zu entwickeln, um uns intensiver mit der Technologie auseinander zu setzen. Um einen Einstieg in das Thema zu bekommen haben wir einen Workshop besucht. Dieser fand am 26.02 – 27.02.2018 in den Design-Offices in Düsseldorf statt und wurde von Sascha Wolter gehalten. (Senior Technology Evangelist for Alexa)
Der Workshop richtete sich nicht ausschließlich an Entwickler, sondern wurde von einem breiten Publikum besucht
Wir starteten mit einem Überblick über die zu Alexa kompatible Hardware. Dabei wurden die Einsatzmöglichkeiten und die technische Ausstattung der verschiedenen Geräte erläutert. Hierzu zählten: Echo, Echo Dot, Echo Show und Echo Spot.
Weiter ging es mit dem grundlegenden Aufbau und der Struktur eines Alexa Skills. Als Skill bezeichnet man eine bestimmte Anwendung, die Alexas Funktionsumfang erweitert. Beispielhaft haben wir uns einen einfachen Skill angeschaut, welcher die Suche nach „Points of Interest“ (POI) im Raum Stuttgart enthielt.
Ein Skill besteht im Wesentlichen aus 2 Komponenten:
- dem Backend
- dem Voice-Model
Das Backend ist eine programmierte Anwendung gegen die Alexa-API. Dabei werden alle gängigen Sprachen unterstützt (Javascript, Java, Python etc.). Diese Anwendung muss auf einem Server zur Verfügung gestellt werden. Dazu gibt es zwei Varianten. Zum einen die Cloud-basierte Lösung, Hosting mit dem Amazon Dienst „Lambda“. Zum anderen die Möglichkeit diese Anwendung selbst auf einem eigenen Server zu betreiben. Während im Workshop ausschließlich die Lambda Variante betrachtet wurde, haben wir später bei unserem Projekt auf einen eigenen Server gesetzt.
Das Voice-Model enthält das Regelwerk für die Sprachbefehle. Dazu wurde das Konfigurations-Tool erklärt und gezeigt: die sogenannte „Developer-Konsole“. Dort können die einzelnen Teile des Sprachmodels konfiguriert werden.
Das Sprachmodel besteht aus den Teilen: ### Wake word
Das ist normalerweise „Alexa“ und dieser Begriff startet die Verarbeitung der Sprache ### Invocation name
Das ist der eindeutige Name des Skills der verwendet werde soll ### utterance
vereinfacht gesagt ist dies die Konfiguration der Befehle die der Skill verarbeiten kann. ### slot-values
Synonyme für Begriffe die der Skill verstehen soll.
Damit endeten zwei kurzweilige und informative Tage in Düsseldorf. Insgesamt war der Workshop ein guter Überblick über Alexa. Er hat uns den Einstieg erleichtert, so dass wir daraufhin in der Lage waren tiefer in das Thema einzusteigen und unseren eigenen Skill zu entwickeln. Unser Skill lässt sich mit dem Namen „Mitarbeiter-Infos“ starten. Dieser ermöglicht zu erfragen in welchem Büro ein Kollege gerade sitzt. Sagt man „Ich suche Mitarbeiter Max Mustermann“, so wird live im Wiki nachgeschaut wo dieser Mitarbeiter sitzt und der entsprechende Ort wird ausgegeben. Das Java Backend hierzu stellen wir auf einem eigenen Tomcat mit vorgeschaltetem NGINX bereit.