modbom

Monat: Dezember 2019

Mein erster Alexa Skill – Fortsetzung

Dieser Beitrag ist die Fortsetzung zu Meine ersten Schritte einen Alexa Skill zu entwickeln. Ich fasse dir hier die Module 4 – 9 des Tutorials Training Course: Build an Engaging Alexa Skill zusammen.

Module 4: Collect Slots Turn-by-Turn

Du erinnerst dich sicher, dass du in Modul 3 eine erste lauffähige „Hello-World“-Version des Alexa Skills erstellt hast. Diese Version war noch nicht wirklich interaktiv. Das soll sich am Ende von Modul 4 ändern. In Modul 4 lernst du, wie du über Alexa fragen stellen kannst und wie du aus den gegebenen Antworten die relevanten Informationen erhältst.

Die wichtigen Stichworte sind auch hier utterance, intent und slot. Im Tutorial selbst wird genauer auf diese Begriffe eingegangen. Daher hier nur eine kurze Beschreibung, wie sie zusammenhängen.

Wie ist ein Alexa-Kommando aufgebaut?

Wenn du etwas zu Alexa sagst, dann ist dies eine utterance (Äußerung). Dies kann etwas ganz beliebiges sein. In der Regel verfolgst du mit dieser Äußerung aber eine Absicht. Diese Absicht wird intent genannt. Im Tutorial wirst du die „Absicht“ haben dem Beispiel-Skill deinen Geburtstag zu nennen. Einige Varianten von utterances dieses intents könnten sein:

  • „Ich bin am sechsten November Neunzehnhundertvierundsiebzig geboren.“
  • „Mein Geburtstag ist am 6.11.1974.“
  • „Sechster November Neunzehnhundertvierundsiebzig“
  • „Am 06.11.1974“
  • „Ich habe am 06. November Geburtstag.“
  • „Das geht dich nichts an.“

Dies ist nur eine kleine Auswahl an möglichen Antworten. Sie gibt einen guten Eindruck über die Komplexität der Spracheingaben. Ein guter Skill kann auf diese und weitere Antworten reagieren.

Für den Tutorial Skill benötigst du den Geburtstag. In der Developer Console kannst du nun für jede Beispiel-Äußerung Variablen an den Stellen einfügen, an denen die relevante Information enthalten ist. Diese Variablen werden slots genannt. Im Tutorial wird dir gezeigt, wie du an Stelle des Beispieldatums slots für den Tag, den Monat und das Jahr einfügst und wie du Alexa mitteilst, welche Information sich dahinter verbirgt.

In den Beispielen sind auch Äußerungen enthalten, die nicht alle oder gar keine erwartete Information enthalten. Im Tutorial lernst du auch, wie du in deinem Skill auf solche Ereignisse reagieren kannst. Der entscheidende Begriff ist Dialog Management. Wenn du die Fälle vorhersehen kannst, an denen Informationen unvollständig mitgeteilt werden, kannst du dein Dialog Modell so erstellen, dass der Skill die fehlenden Daten abfragt.

Am Ende dieses Modules kann dein Beispiel-Skill das Geburtsdatum erfragen und wiedergeben. Das Datum kann jedoch noch nicht gespeichert werden.

Module 5: Help Your Skill Remember with Persistent Attributes

In Module 5 erfährst du endlich, wie du Daten speichern kannst. Es wird kurz darauf eingegangen welche Arten der persistenten Datenhaltung unterstützt werden. Im Tutorial selbst wird dir gezeigt, wie du Amazon S3 einbindest.

Du wirst in diesem Abschnitt des Tutorials einige Änderungen am Code vornehmen. Zum Beispiel fügst du eine neue Bibliothek hinzu und du ergänzt den Code mit asynchronen Aufrufen, um die Geburtsdaten abzuspeichern und abzurufen. Desweiteren lernst du, wie du die gespeicherten Daten auch wieder löschen kannst. Das ist besonders während der Entwicklungs- und Testphase hilfreich.

Module 6: Enhance Date Accuracy with the Alexa Setting API

Jetzt kann der Beispiel-Skill dein Geburtsdatum erfragen und abspeichern. Bisher erfüllt der Skill aber noch keinen sinnvollen Zweck. Daher implementierst du in diesem Modul das eigentliche Feature: Die Anzahl an Tagen bis zu deinem nächsten Geburtstag auszugeben.

An und für sich ist die Umsetzung des Features nicht so schwierig. Du musst nur die Differenz des aktuellen Tages zu deinem nächsten Geburtstag berechnen. Im Falle des Alexa-SDKs stellt sich aber speziell die Abfrage des aktuellen Datums als etwas aufwändiger dar. Details kannst du im Tutorial selbst nachlesen.

Im Anschluss ist die Berechnung der Anzahl der Tage bis zum nächsten Geburtstag keine große Zauberei. Auch die Ausgabe über Alexa ist schnell erledigt. Im Tutorial-Code hat sich jedoch ein kleiner Fehler eingeschlichen. Ich möchte dir aber nicht den Spaß verderben, diesen Fehler selbst zu finden. Solltest du ihn nicht entdecken können, kannst du gerne einen Kommentar hinterlassen und ich werde dir einen Tipp geben.

Mit Abschluss des sechsten Moduls hast du auch den Programmieranteil des Tutorials beendet. Die letzten drei Module beschäftigen sich eher mit administrativen Aspekten.

Module 7: Finalize Your Skill

Die Erstellung des Codes ist nur ein Teil deiner Aufgaben, die nötig sind deinen Skill im Alexa Skills Store anbieten zu können.

Bevor du einen Skill wirklich für die Veröffentlichung freigeben kannst, musst du noch einige Angaben machen. Dazu zählen Beschreibungen und Bilder für die Vorschau im Alexa Skills Store. Fast noch wichtiger sind Angaben zum Datenschutz und rechtliche Regelungen.

In diesem Abschnitt musst du für das Alexa-Test-Team alle Anforderungen aufführen, die zwingend notwendig sind, um den Skill auszuführen. Dazu gehören spezielle Accounts genauso wie Hardwarevoraussetzungen.

Im letzten Teil des Moduls gibst du an, wer den Skill finden und nutzen können soll. Außerdem kannst du unter bestimmten Voraussetzungen einen Beta-Test starten.

Module 8: Certify and Publish Your Skill

Hast du alle Angaben im Modul 7 gemacht kannst du deinen Skill zertifizieren und abschließend veröffentlichen lassen. Aus Sicherheits- und Qualitätsgründen kannst du deinen Skill nicht ohne vorhergehende Prüfung durch Amazon in den Skills Store einstellen.

In Module 8 wird ziemlich ausführlich auf diesen Prozess eingegangen. Es wird auf verschiedene Checklisten verwiesen und der automatische sowie manuelle Teil der Freigabe erläutert. Außerdem wird beschrieben, was du bei der Aktualisierung deines Skills beachten musst.

Module 9: Wrapping Up & Resources

Damit ist das Tutorial an sein Ende angelangt. Im letzten Modul erfolgt die obligatorische Zusammenfassung und der Verweis auf weitere Ressourcen.

Abschluss

Ich fand das Tutorial sehr nachvollziehbar und logisch aufgebaut. Die Informationshappen sind gut zu verdauen. Teilweise hätten die Module etwas mehr in die Tiefe gehen können.

Besonders bemerkenswert fand ich in welch kurzer Zeit ein lauffähiger Skill erstellt werden kann. All das ohne große Vorbereitungen treffen zu müssen.

Etwas kurz gekommen ist des Situational Design. Zu dieser Entwurfsmethode werde ich in der nächsten Zeit noch das ein oder andere Tutorial durcharbeiten.

Wie immer werde ich dich hier und auf meinen Accounts der anderen Plattformen (siehe unten unter SOCIAL LINKS) auf dem Laufenden halten.


Bildnachweis

Titelbild von AlfredMuller auf Pixabay

Meine ersten Schritte einen Alexa Skill zu entwickeln

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.


Titelbild by Pexels from Pixabay

Copyright © 2020 modbom

Theme von Anders Norén↑ ↑