Seit meinem letzten Beitrag sind nun schon ein paar Tage ins Land gegangen. Die Zeit war geprägt durch reguläre Arbeit, Podcasts hören und Bücher lesen (Mindset aufbauen). Und natürlich versuche ich so viel Zeit wie möglich mit meiner Familie zu verbringen. Wie angekündigt habe ich aber auch meine ersten Schritte gemacht, einen Alexa Skill zu entwickeln.
Die ersten Schritte auf dem „Cake Walk“
Ich habe mir verschiedene Tutorials angesehen. Eines davon habe ich auch bis zum Ende durchgearbeitet. Bis ich wirklich loslegen kann werde ich aber noch einige Theorie-Stunden nehmen. Material gibt es ja genügend.
Das Tutorial, welches ich abgeschlossen habe, ist eines der Standard-Tutorials von Amazon. Es heißt Training Course: Build an Engaging Alexa Skill. In diesem Tutorial lernst du die relevanten Schritte, um deinen ersten kleinen Alexa Skill zu erstellen. Außerdem wird auch auf Datenschutzthemen sowie den Freigabeprozess eingegangen. Das finde ich bemerkenswert, da diese administrativen Anteile in den meisten Tutorials zu kurz kommen.
Ich fand das Tutorial sehr nachvollziehbar und logisch aufgebaut. Für meine Verhältnisse hätte es jedoch noch mehr in die Tiefe gehen können. Für die ersten Schritte ist es aber ausreichend. Und dennoch, die Zeitangaben pro Modul sind meiner Meinung nach nur einzuhalten, wenn man ohne großes Überlegen dem Tutorial stupide folgt. Alleine das Lesen dauert oftmals schon so lange, wie im Modul als Bearbeitungsdauer angegeben ist.
Die erste Entscheidung
Bevor du mit dem Tutorial richtig loslegen kannst, musst du schon die erste Entscheidung treffen: In welcher Programmiersprache möchtest du deinen ersten Alexa Skill schreiben. Das Tutorial selbst ist für Node.js ausgelegt. Es gibt jedoch auch einen Python-Kurs, der auf Github verfügbar ist.
Python kenne und beherrsche ich auch leidlich. Mit Node.js habe ich direkt noch keine Erfahrungen gesammelt. Da es aber auch „nur“ eine Laufzeitumgebung für JavaScript ist, sehe ich das nicht als Problem. Nachdem ich mich neben Wikipedia auf einigen anderen Seiten (educba.com, hackernoon.com, guru99.com) über die Vor- und Nachteile von Node.js bzw. Python schlau gemacht habe, habe ich mich für Node.js entschieden. Der ausschlaggebende Punkte war, dass Node.js für den serverseitigen Betrieb von Anwendungen optimiert ist. Das bedeutet, dass Node.js besonders für Anwendungen geeignet ist, die einen eher leichtgewichtigen Client besitzen, der hauptsächlich Benutzereingaben entgegennimmt und diese an einen Server weiterleitet. Erst auf dem Server finden die eigentlichen Aktivitäten statt.
Node.js is primarily used to build network programs such as Web servers.
Wikipedia
Marsch durch die Module
Im Folgenden möchte ich mit dir im Schnelldurchgang durch die ersten Module gehen. Diese Zusammenfassung ist kein Ersatz für das eigentliche Tutorial. Den Fokus setze ich eher auf Besonderheiten oder Dinge, auf die du Acht geben solltest.
Das Tutorial besteht aus neun Modulen. Die ersten beiden und letzten drei Module sind theoretischer Natur. In Modul drei bis sechs wird tatsächlich programmiert.
Module 1: Why Build Alexa Skills
Das erste Modul soll dich motivieren Skills zu entwickeln. Außerdem führt es dich in die unterschiedlichen Arten von Skills sowie den Erstellungsprozess ein.
Hier habe ich mir dann auch gleich einen geistigen Marker gesetzt. Für bestimmte, häufig erstellte Arten von Skills gibt es Vorlagen (Pre-Build Models), z.B. Musik Skills oder Video Skills. Auch für Kurznachrichten (Flash Briefing Skills) gibt es ein Pre-Build Model. Dieses könnte die Basis für meinen Skill „modboms Tipps des Tages zur finanziellen Freiheit“ darstellen.
Abschließend nennt es noch einige Voraussetzungen, die für die Durchführung des Tutorials erfüllt sein müssen. Auf jeden Fall benötigst du einen Account für die Alexa Developer Console. Solltest du schon einen Amazon-Account besitzen, z.B. für den Online-Marktplatz, kannst du ihn für die Anmeldung nutzen. Ansonsten erstellst du hier einfach einen neuen Account.
Im Anmeldeprozess für die Developer Console musst du noch einige Informationen angeben. Unter anderem werden auch Daten zu deinem Unternehmen (Company), wie Name, Anschrift E-Mail-Adresse etc., abgefragt. Da man dort etwas eintragen muss habe ich mein Blog als Unternehmen eingetragen. Auch wenn dies hier nur ein Hobby ist. Ich habe in der Anmeldung keine Stelle gefunden, in der ich angeben konnte, dass ich mich nur als Privatperson anmelde.
Module 2: Design an Engaging Voice User Interface
Im zweiten Modul werden Grundlagen für die Entwicklung eines Voice User Interfaces (VUI) erklärt. Das Modul geht dabei auf die Besonderheiten der sprachbasierten Interaktion ein. Außerdem werden wichtige Begriffe, wie utterances, intents, slots und interaction model erläutert. Dieser Teil hat mich dann ein bisschen an die Theorie von Grammatiken aus der theoretischen Informatik im Studium erinnert.
Ein zentrale Methode in der Entwicklung deines Skills ist das Situational Design. Diese Methode, richtig angewendet, hilft dir dabei für deinen Skill ein passendes Voice User Interface zu entwerfen. Situational Design ist deshalb so wichtig, da du bei sprachorientierten Anwendungen nicht einfach bekannte Methoden aus der Welt des Desktop- oder Mobile-Computings übernehmen kannst. Insbesondere nicht, wenn du das User Interface entwerfen möchtest. Situational Design soll hier Abhilfe schaffen.
Weiterhin gibt es in Modul 2 noch mehr Informationen darüber, wie ein gutes Voice User Interface aufgebaut sein sollte. Es werden auch noch fünf Best Practices vorgestellt.
Module 3 – Create a Skill in Five Minutes
Jetzt ist aber Schluss mit dem Vorgeplänkel. Wir greifen zur Tastatur und erstellen unseren ersten wirklich lauffähigen Alexa Skill.
Hier benötigst du den Zugang zur Alexa Developer Console. Solltest du dich jetzt anmelden, landest du nicht auf der Developer Console für deine Alexa Skills, sondern auf dem Dashboard für verschiedene Amazon Dienste, wie z.B. Amazon Alexa oder dem Amazon Appstore. Um zur Developer Console für Alexa Skills zu gelangen musst du den im Bild hervorgehoben Link anklicken.
Danach geht aber alles seinen Gang, ohne große Überraschungen. Der „Hello World“ Skill ist schnell erstellt. Das einzige Problem, welches ich hatte, trat erst beim Testen auf.
Alexa Skill testen
Die Developer Console bietet dir die Möglichkeit deinen Skill direkt über den Browser zu testen. Dazu kannst du entweder deine Kommandos – utterances bzw. Äußerungen – per Tastatur oder per Sprache eingeben. Im Grunde funktioniert die Bedienung genauso, wie über ein echtes Hardware-Device, z.B. einen Echo-Dot. Der einzige Unterschied ist, dass du auf das wake word „Alexa“ verzichten kannst. Das ist auch ganz gut so. Sonst guckt dich deine Alexa zu Hause wahrscheinlich komisch an.
Möchtest du die Spracheingabe nutzen, dann musst du deinem Browser die Rechte zu Verwendung des Mikrofons erteilen (i.d.R. kommt eine Abfrage) und bei jedem Befehl das Mikrofon-Symbol neben der Befehlszeile gedrückt halten (siehe Bild).
Meine ersten Versuche sind dann jedoch kläglich gescheitert. Egal ob ich mein utterance eingetippt oder gesprochen habe, es gab nur einen kurzen Fehlerton. Auch Variationen, wie „open cake walk“, „open Cake Walk“, „alexa, open cake walk“, etc. führten nicht zum Ergebnis. Dieses Problem trat gelegentlich auch in späteren Modulen auf. Leider war dieses Verhalten nicht reproduzierbar, so dass ich die Ursache nicht finden konnte. Nach einigem rumprobieren hat es dann doch immer wieder funktioniert und ich konnte, im Fall Module 3, die Antwort: „Hello! Welcome to Cake Walk. That was a piece of cake! Bye!“ hören.
Es war natürlich ein tolles Gefühl, diesen Skill erfolgreich erstellt und getestet zu haben. Ich war dann auch überrascht so schnell mit meinen ersten Schritten, einen Alexa Skill zu entwickeln, voranzukommen. Normalerweise bin ich es gewohnt eine ganze Entwicklungsumgebung mit zahlreichen Bibliotheken zu installieren. Das Einrichten solcher Umgebungen dauert dann schon gerne einen halben Tag. Hier habe ich es doch tatsächlich unter einer Stunde geschafft – und das inklusive der theoretischen Mini-Einführung.
Gerne weiter so.
Fortsetzung im nächsten Beitrag
An dieser Stelle werde ich nun aber eine Pause in meiner Zusammenfassung machen. Sie ist schon jetzt länger geworden als gedacht. Daher muss ich dich leider etwas auf die Folter spannen.
Ich hoffe du bleibst neugierig und wirst auch zur Fortsetzung meiner ersten Schritte einen Alexa Skill zu entwickeln reinschauen.
Halte dich doch in der Zwischenzeit über Twitter, Facebook und Instagram auf dem Laufenden.