Alexa-Skills einfach selbst programmieren

Mit Alexa betreibt Amazon einen cloudbasierten Sprachservice für die vom Unternehmen vertriebenen Smart Speaker – beispielsweise den Amazon Echo, Echo Dot, Echo Show oder Echo Spot. Bei einem Smart Speaker handelt es sich um einen mit dem Internet verbundenen Lautsprecher mit integriertem virtuellen Assistenten, der Befehle über eine Sprachschnittstelle entgegennimmt und somit verschiedene Interaktionen erlaubt.

Smart Speaker dienen der Nutzung audiobasierter Internetdienste und ermöglichen es, per WiFi oder Bluetooth angebundene Geräte im Rahmen der Heimautomatisierung (Smart Home) zu steuern. Bereits ab Werk bietet der Alexa-Sprachassistent diverse Grundfunktionen. Nutzer können ihren Smart Speaker per Sprachbefehl dazu veranlassen, Musik wiederzugeben, Nachrichten, Verkehrsmeldungen und den Wetterbericht abzurufen oder Kalenderfunktionen bereitzustellen. In Kombination mit Smart-Home-Devices bietet Alexa ein Sprachinterface für die Steuerung intelligenter Lampen, Thermostate oder Steckdosen.

Weitere Funktionen lassen sich als sogenannte Skills nachinstallieren. Im Alexa-Skills-Store stehen Nutzern mehr als 50.000 Skills externer Entwickler zur Verfügung. Diese lassen sich bei Bedarf kostenlos aktivieren. Wer selbst kreativ werden möchte, programmiert eigene Alexa-Skills in wenigen Schritten mithilfe des Alexa-Skills-Kits und AWS Lambda. Wir zeigen Ihnen, wie das funktioniert.

Was ist ein Alexa-Skill?

Bei Alexa-Skills handelt es sich um Programme, die sich online aktivieren lassen und das Funktionsspektrum des Alexa-Sprachservice um bestimmte Fähigkeiten erweitern. Technisch besteht ein Alexa-Skill aus einer Benutzerschnittstelle (dem sogenannten Frontend) und der Programmlogik (dem Backend). Als Frontend eines Alexa-Skills dient jedes beliebige Smart Device, das den Alexa-Sprachservice unterstützt – beispielsweise ein Smart Speaker der Amazon-Echo-Reihe oder ein entsprechend ausgerüsteter Kühlschrank von LG. Die Programmlogik im Backend läuft entweder auf dem eigenen Server oder auf Basis von AWS Lambda, einem von Amazon bereitgestellten Datenverarbeitungsservice.

Hinweis

AWS (Amazon Web Services) ist ein Tochterunternehmen des US-amerikanischen Online-Versandhändlers Amazon. Mit der gleichnamigen Cloud-Computing-Plattform gehört das Unternehmen zu den führenden Anbietern für die bedarfsgerechte Bereitstellung von IT-Ressourcen mit nutzungsbezogenem Abrechnungsmodell.

Voraussetzungen für das Alexa-Skill-Development

Alexa-Skills werden mithilfe des Alexa-Skills-Kits (ASK) entwickelt und Nutzern über den Alexa-Skills-Store zur Verfügung gestellt. Zugang zum Alexa-Skills-Kit erhalten Sie über einen kostenlosen Amazon-Developer-Account.

Hinweis

Das Alexa-Skills-Kit (ASK) ist eine Sammlung diverser Self-Service-APIs, Tools, Dokumentationen und Codebeispielen, die Ihnen eine schnelle und kostenlose Entwicklung eigener Alexa-Skills ermöglicht – bei Bedarf anhand vorgefertigter Bausteine.

Möchten Sie die Programmlogik Ihres Alexa-Skills nicht selbst hosten, ist zudem ein AWS-Konto erforderlich, dass Ihnen den Zugriff auf den Datenverarbeitungsservice AWS Lambda ermöglicht.

Tutorial: In 7 Schritten zum eigenen Alexa-Skill

Der Prozess von der Erstellung Ihres ersten benutzerdefinierten Alexa-Skills bis zur veröffentlichten Anwendung erstreckt sich über 7 Schritte:

  • In den Schritten 1 und 2 legen Sie einen neuen Alexa-Skill in der Amazon-Developer-Konsole an und konfigurieren das Interaktionsmodell für die Sprachschnittstelle.
  • Auf Basis dieses Interaktionsmodells erstellen Sie in Schritt 3 eine AWS-Lambda-Funktion. Diese beinhaltet die Programmlogik Ihres Skills und wird auf Amazons Cloud-Computing-Plattform AWS ausgeführt.
  • In Schritt 4 verknüpfen Sie die AWS-Lambda-Funktion mit der Amazon-Developer-Konsole, um Ihren Skill für Amazon-Geräte zur Verfügung zu stellen.
  • Anschließend folgen eine Testphase in Schritt 5 sowie die Validierung und Veröffentlichung Ihres Skills in Schritt 6 und 7.

Wir verdeutlichen Ihnen das Alexa-Skill-Development an einem einfachen Beispiel:

Unternehmerin Constanze betreibt einen kleinen Imbiss in Berlin-Adlershof. Connys Curry Corner punktet bei Fastfood-Liebhabern mit original Berliner Currywurst. Der Imbiss liegt in unmittelbarer Nähe zum Wissenschafts- und Wirtschaftsstandort Adlershof, kurz WISTA, dem größten Technologiepark der Region. Constanze möchte ihrer technikaffinen Kundschaft entgegenkommen und mit ihrem Angebot künftig auch online präsent sein. Dafür geht sie nicht nur mit einer eigenen Website an den Start, sondern auch mit einem Skill für den Alexa-Sprachservice. Bei der Entwicklung fängt die Unternehmerin klein an und erstellt zunächst einen Skill, mit dem ihre Kunden die Öffnungszeiten von Connys Curry Corner über das Alexa-Sprachinterface abfragen können.

Schritt 1: Vorbereitung

Um Nutzern des Alexa-Sprachservice die Entwicklung eigener Alexa-Skills zu ermöglichen, stellt Amazon das Alexa-Skills-Kit über die Alexa-Developer-Konsole als Entwicklungsumgebung mit grafischer Weboberfläche bereit. Die Alexa-Developer-Konsole ist Teil der Amazon-Developer-Konsole.

Melden Sie sich bei Amazon Developer an. Wenn Sie noch keinen Amazon-Developer-Account besitzen, erstellen Sie ein kostenloses Entwicklerkonto.

Nach dem Login gelangen sie auf die Service-Übersicht. Wählen Sie hier „Amazon Alexa“ aus.

Klicken Sie im Drop-down-Menü unter Produkte auf „Alexa Skills Kit“ und anschließend auf „Skill entwickeln“, um die Alexa-Developer-Konsole zu öffnen.

Auf der Startseite der Alexa-Developer-Konsole werden Ihnen zukünftig alle selbst erstellten Alexa-Skills angezeigt. Melden Sie sich zum ersten Mal an, ist die Liste leer.

Hinweis

Die Alexa-Developer-Konsole steht derzeit nur in Englisch, Japanisch und Chinesisch zur Verfügung.

Klicken Sie auf „Create Skill“, um einen neuen Alexa-Skill zu erstellen.

Benennen Sie Ihren Skill, wählen Sie die gewünschte Sprache aus und entscheiden Sie sich für einen von vier Modelltypen für das Interaktionsmodell Ihres Skills:

  • Custom-Modell (benutzerdefiniertes Interaktionsmodell)
  • Flash-Briefing-Modell (vordefiniertes Interaktionsmodell für Newsfeeds)
  • Smart-Home-Modell (vordefiniertes Interaktionsmodell für Smart-Home-Anwendungen)
  • Video-Modell (vordefiniertes Interaktionsmodell für Videoanwendungen)

In diesem Alexa-Skill-Tutorial zeigen wir Ihnen, wie Sie anhand des Custom-Skill-Modells benutzerdefinierte Interaktionsmodelle erstellen.

Tragen Sie als „Skill name“ die Bezeichnung ein, unter der Ihr Alexa-Skill später in der Übersicht und im Alexa-Skills-Store angezeigt werden soll.

In unserem Beispiel entscheidet sich Constanze für den Namen „Connys Curry Corner“.

Klicken Sie anschließend auf „Create skill“, um den Entwicklungsprozess zu starten. Sie werden automatisch in die Bearbeitungsansicht der Alexa-Developer-Konsole weitergeleitet.

Hinweis

Möchten Sie einen bereits erstellten Skill anpassen oder weiterentwickeln, klicken Sie in der Skill-Übersicht auf die Schaltfläche „Edit“ (Bearbeiten), um in die Bearbeitungsansicht zu wechseln.

Schritt 2: Interaktionsmodell mithilfe des Alexa-Skills-Kits konfigurieren

Für die Entwicklung Ihres Alexa-Skills gibt es eine grafische Benutzeroberfläche, die die Programmierung, d. h. den manuellen Eingriff in den Code, auf ein Minimum reduziert. Die Bearbeitungsansicht der Alexa-Development-Konsole ist in fünf Bereiche unterteilt:

  • Build (Entwicklung)
  • Test
  • Distribution (Veröffentlichung)
  • Certification (Zertifizierung)
  • Analytics (Analyse).

Nutzen Sie die Tabs in der Navigationsleiste am oberen Rand des Browserfensters, um von einem Bereich in den nächsten zu wechseln.

Beginnen Sie im Bereich „Build“, um ein Interaktionsmodell für Ihren Custom-Skill zu entwerfen und mithilfe des Alexa-Skills-Kits zu trainieren. Die Übersichtsseite des Bereichs „Build“ ist in drei Spalten unterteilt. Die Erstellung des Skills erfolgt anhand der Skill-Builder-Checklist in der rechten Seitenspalte und umfasst vier Konfigurationsschritte:

  • Invocation-Name auswählen
  • Intents und Beispieläußerungen definieren
  • Modell erzeugen
  • Web-Service-Endpunkt auswählen

Haben Sie einen der erforderlichen Schritte abgeschlossen, wird Ihnen dies durch ein grünes Häkchen signalisiert.

Starten Sie einen Konfigurationsschritt, indem Sie auf die entsprechende Schaltfläche in der Skill-Builder-Checklist klicken. Alternativ können Sie die einzelnen Konfigurationsbereiche über die Menüleiste in der linken Seitenspalte aufrufen. Diese umfasst darüber hinaus einen JSON-Editor sowie einen Menüpunkt zur Auswahl der Benutzerschnittstellen (Interfaces).

In der mittleren Spalte der Übersichtsseite finden Sie Informationsmaterial zum Alexa-Skill-Development sowie ein Video zum ausgewählten Bereich der Alexa-Developer-Konsole.

Invocation-Name auswählen

Zunächst definieren Sie den Invocation-Name Ihres Alexa-Skills. Klicken Sie dazu auf Schritt 1 der Skill-Builder-Checklist oder wählen Sie in der linken Seitenspalte den Menüpunkt „Invocation“ aus, um den entsprechenden Konfigurationsbereich zu öffnen.

Als Invocation-Name bezeichnet man den Ausdruck, mit dem Ihr Skill von Nutzern angesprochen wird. Der Invocation-Name deckt sich möglicherweise mit der Skill-Bezeichnung, kann von dieser bei Bedarf aber auch abweichen.

Geben Sie den gewünschten Invocation-Name in das dafür vorgesehene Feld ein. Beachten Sie dabei folgende Voraussetzungen:

  • Nutzen Sie einen Invocation-Name mit zwei oder mehr Wörtern.
  • Trennen Sie die Wörter mit Leerzeichen.
  • Verwenden Sie ausschließlich Kleinbuchstaben.
  • Setzen Sie den Invocation-Name in Anführungszeichen, falls Sie einen Apostroph oder eine Abkürzung mit einem Punkt verwenden.
  • Zahlen oder andere Sonderzeichen müssen ausgeschrieben werden.
Hinweis

Der Invocation-Name darf weder eine der Alexa-Skill-Startphrasen wie „launch“ (starte), „ask“ (frage), „tell“ (sage), „load“ (lade), „open“ (öffne) oder „play“ (spiele) enthalten noch Weckwörter wie „Alexa“, „Amazon“, „Echo“ oder „Computer“, die dazu dienen, den Smart Speaker anzusprechen. Auch die Wörter „skill“ und „app“ sind nicht erlaubt.

Constanze wählt für ihren Skill den Invocation-Name „connys curry corner“.

Speichern Sie den Invocation-Name mit einem Klick auf „Save Model“. Klicken Sie anschließend auf „Custom“, um in die Übersicht zurückzukehren.

Intents und Beispieläußerungen definieren

Mit Intents definieren Sie Aktionen, die Ihr Alexa-Skill ausführt, sobald ein Nutzer ein von Ihnen bestimmtes Sprachmuster verwendet. Sie legen somit fest, was ein Nutzer Ihres Skills sagen kann, für welche Absicht die Äußerung steht und wie Ihr Skill darauf reagiert. Jeder Custom-Skill enthält bereits fünf voreingestellte Intents, die später implementiert werden müssen. Darüber hinaus fügen Sie Ihrem Skill je nach Bedarf entweder weitere vorgefertigte oder benutzerdefinierte Intents hinzu.

Gehen Sie folgendermaßen vor, um einen benutzerdefinierten Intent zu erzeugen:

Benennen Sie den neuen Intent und klicken Sie auf „Create custom intent“.

Definieren Sie Beispieläußerungen, mit denen Nutzer den neuen Intent aufrufen können. Tragen Sie die gewünschte Phrase in das dafür vorgesehene Textfeld ein und klicken Sie auf das Pluszeichen (+).

Constanze möchte für ihren Alexa-Skill einen Intent programmieren, der es Nutzern ermöglicht, die Öffnungszeiten ihres Geschäfts zu erfragen. Sie nennt den Intent „GetOpeningHours“ und trägt für diesen die Beispielsphrasen ein, mit denen Nutzer möglicherweise nach der gewünschten Information fragen könnten.

Die definierten Sprachmuster werden von der Alexa-Development-Konsole im Anschluss durch maschinelles Lernen (Machine Learning) automatisch erweitert. Dies funktioniert jedoch nur dann, wenn dem System eine ausreichend große Datengrundlage zur Verfügung steht. Tragen Sie daher mindestens acht, im besten Fall um die 30 Beispieläußerungen mit der von Ihnen gewünschten Intention ein.

Haben Sie eine ausreichende Anzahl an Bespieläußerungen eingetragen, kehren Sie über die Schaltfläche „Custom“ in die Übersicht zurück, um das Modell zu erzeugen und via Machine-Learning zu trainieren.

Modell erzeugen

Gehen Sie folgendermaßen vor, um das Interaktionsmodell Ihres Alexa-Skills auf Basis der von Ihnen getroffenen Einstellungen zu erzeugen:

Klicken Sie in der Skill-Builder-Checklist auf den Punkt „Build Model“. Die Amazon-Developer-Konsole spielt eine Push-Nachricht aus, in der Sie darüber informiert werden, dass der Build-Prozess gestartet wurde.

Warten Sie, bis die Konsole Ihnen meldet, dass Ihr Interaktionsmodell erfolgreich erstellt wurde.

Hinweis

Sollten Sie nachträglich Änderungen am Invocation-Name, den Intents oder Beispieläußerungen vornehmen, müssen Sie den Build-Prozess lediglich erneut starten, um ein neues Modell zu erzeugen.

Web-Service-Endpunkt auswählen

Schritt 4 der Skill-Builder-Checklist umfasst die Auswahl des Web-Service-Endpunkts. Hier stehen Ihnen zwei Möglichkeiten zur Auswahl. Die Programmlogik Ihres Alexa-Skills kann entweder als Lambda-Funktion auf der AWS Cloud-Computing-Plattform oder via HTTPS auf dem eigenen Webserver ausgeführt werden.

Soll die Programmlogik auf eigenen Ressourcen laufen, benötigen Sie einen Webserver, der folgende Voraussetzungen erfüllt:

  • Anbindung an das Internet
  • HTTPS über ein von Amazon anerkanntes SSL/TLS-Zertifikat
  • Port 443 steht für Anfragen zur Verfügung

Möchten Sie für das Hosting auf AWS Lambda zurückgreifen, benötigen Sie ein Benutzerkonto für den Amazon Web Service.

In diesem Tutorial setzen wir auf AWS und erstellen die Programm-Logik des Alexa-Skills als Lambda-Funktion.

Aktivieren Sie dafür die Checkbox bei AWS Lambda ARN. ARN steht für „Amazon-Ressourcenname“. Es handelt sich um eine eindeutige Bezeichnung für eine AWS-Ressource – beispielsweise eine Lambda-Funktion.

Bevor Sie mit ARN auf eine Lambda-Funktion verweisen können, die die Programmlogik Ihres Skills beinhaltet, müssen Sie diese zunächst in der AWS-Konsole erstellen. Wie Sie dabei vorgehen, zeigen wir Ihnen unter Punkt 3 dieses Alexa-Skill-Tutorials.

Optional: Programmierschnittstellen

Alexa-Skills lassen sich bei Bedarf durch diverse APIs (Programmierschnittstellen) erweitern, die Ihnen zusätzliche Möglichkeiten bieten, multimediale Inhalte bereitzustellen oder externe Geräte einzubinden. Folgende Tabelle zeigt eine Auswahl der zur Verfügung stehenden APIs.

Schnittstelle Beschreibung
Audio-Player-API Die Audio-Player-API erweitert den Programmcode eines Skills um alle Voraussetzungen für die Wiedergabe von Audio-Streaming-Inhalten.
Display-API Ein Alexa-Skill, der um die Display-API erweitert wurde, ermöglicht zusätzlich zum Voice-Interface eine Interaktion über den Bildschirm des Echo Show.
Video-App-API Ein Skill mit Video-App-API kann Video-Streaming-Inhalte auf dem Echo Show wiedergeben.
Alexa-Gadget-API Mit der Gadget-API lassen sich Alexa-Skills entwickeln, die Interaktionen mit Alexa-Zubehör erlauben.

Schritt 3: Programmlogik für AWS Lambda erstellen

Der Datenverarbeitungsservice AWS Lambda ist Teil der Amazon Web Services. Registrieren Sie sich zunächst für ein kostenloses AWS-Konto.

Hinweis

Bei der Registrierung des AWS-Konto entstehen Ihnen keine Kosten. Diese fallen erst dann an, wenn Sie AWS-Ressourcen in Anspruch nehmen. Neu angemeldeten Nutzen stellt Amazon ausgewählte Dienste in den ersten 12 Monaten bis zu einem gewissen Umfang kostenlos zur Verfügung. Bei AWS Lambda umfasst das kostenlose Kontingent derzeit 1. Mio. Anforderungen pro Monat sowie monatlich 3,2 Mio. Sekunden Rechenzeit.

Melden Sie sich bei Ihrem AWS-Konto an und wählen Sie unter „Mein Konto“ die „AWS Management Console“ aus.

Bei der AWS-Management-Konsole handelt es sich um eine browserbasierte Benutzeroberfläche, mit der Sie auf Amazon Web Services zugreifen und diese verwalten.

Stellen Sie zunächst sicher, dass Ihre Konsole auf die Region eingestellt ist, in der Sie Ihren Alexa-Skill anbieten möchten. Wählen Sie die Regionaleinstellung „EU (Ireland)“ aus, sofern Ihr Skill Nutzern in Deutschland zur Verfügung stellen soll.

Die AWS-Management-Konsole bietet Ihnen Zugriff auf diverse Cloud-Computing-Ressourcen. Um ein gewünschtes AWS-Produkt aufzurufen, bietet sich die Suchfunktion „Find services“ an. Geben Sie das Stichwort „Lambda“ in die Suchmaske ein und bestätigen Sie mit Enter. Alternativ steht Ihnen unter dem Menüpunkt „Services“ eine Übersicht der AWS-Produktpalette zur Verfügung.

Auf der Startseite des Datenverarbeitungsservice AWS Lambda zeigt Ihnen die AWS-Konsole eine Übersicht der von Ihnen erstellten Lambda-Funktionen an. Wenn Sie noch keine Funktionen erstellt haben, ist die Liste leer.

Klicken Sie auf „Funktion erstellen“, um den Konfigurationsprozess für eine neue Lambda-Funktion zu starten.

AWS-Lambda-Funktionen erstellen Sie je nach Bedarf „from scratch“, mithilfe einer vorkonfigurierten Vorlage oder auf Basis einer Anwendung, die von AWS oder AWS-Partnern im AWS-Serverless-Application-Repository zur Verfügung gestellt wird.

Da wir für die Programmlogik unseres Alexa-Skills auf diverse Bibliotheken zurückgreifen müssen, bietet sich die Erstellung auf Basis einer Vorlage an.

Wählen Sie daher die Option „Vorlage“ aus und geben Sie das Stichwort „alexa“ in die Suchmaske ein.

Für welche Vorlage Sie sich entscheiden, ist in diesem Fall egal, da wir lediglich die zugrundeliegenden Bibliotheken benötigen und den Programm-Code in den folgenden Schritten komplett überschreiben.

Für das Tutorial wählen wir die Vorlage „alexa-skill-kit-sdk-factskill“ auf Basis von Node.js 6.10.

Bestätigen Sie Ihre Auswahl mit einem Klick auf „Konfigurieren“.

Wählen Sie im nächsten Schritt einen Namen und die gewünschte Lambda-Ausführungsrolle aus. Letztere definiert die Berechtigungen der Funktion. Passend zu unserem Beispiel soll die Funktion „ConnysCurryCorner“ heißen. Um deren Berechtigungen zu definieren, klicken wir im Drop-down-Menü unter „Rolle“ auf „Erstellen einer benutzerdefinierten Rolle“.

Hinweis

Die AWS-Management-Konsole informiert Sie darüber, dass Ihre Funktion externe Bibliotheken enthält.

Die Konfigurationsmaske für die Ausführungsrolle der Funktion öffnet sich in einem neuen Tab – bereits mit voreingestellten Werten.

Ändern Sie hier nichts und bestätigen Sie die Einstellung mit „Erlauben“. Die Lambda-Funktion wird mit der Rolle „lambda_basic_execution“ erstellt. Der Tab schließt sich automatisch.

Im unteren Bereich der Konfigurationsmaske finden Sie den Lambda-Funktionscode der Vorlage. Diesen brauchen Sie zunächst nicht zu beachten. Klicken Sie stattdessen auf „Funktion erstellen“.

Nachdem Ihre Lambda-Funktion erstellt wurde, werden Sie automatisch in die Konfigurationsübersicht der Lambda-Funktion weitergeleitet, in der Sie alle weiteren Einstellungen vornehmen.

Im oberen Bereich der Konfigurationsübersicht finden Sie den Funktionsdesigner und einen Editor, mit dem sie manuell in den Funktionscode eingreifen können. Auf den Editor folgen weitere Konfigurationsschaltflächen, auf die wir in diesem Alexa-Skill-Tutorial nicht detailliert eingehen.

Scrollen Sie zum Abschnitt „Funktionscode“ hinunter, markieren Sie den gesamten Code im Editor mit [Strg] + [A] und löschen Sie diesen mit der Entfernen-Taste.

Wechseln Sie nun in die Amazon-Developer-Konsole und rufen Sie das Interaktionsmodell Ihres Alexa-Skills im JSON-Editor auf. Die entsprechende Schaltfläche finden Sie im Navigationsmenü auf der linken Fensterseite.

Markieren Sie den gesamten JSON-Code mit [Strg] + [A] und kopieren Sie diesen mit [Strg] + [C] in die Zwischenablage.

Das Interaktionsmodell für unseren Beispiel-Skill „ConnysCurryCorner“ sieht folgendermaßen aus:

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "connys curry corner",
            "intents": [
                {
                    "name": "AMAZON.FallbackIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.NavigateHomeIntent",
                    "samples": []
                },
                {
                    "name": "GetOpeningHours",
                    "slots": [],
                    "samples": [
                        "nach den Öffnungszeiten",
                        "wie die öffnungszeiten sind",
                        "wie sind die öffnungszeiten ",
                        "wann der imbiss schließt",
                        "wann der imbiss öffnet ",
                        "wann schließt der imbiss",
                        "wann öffnet der imbiss",
                        "wann macht der imbiss zu",
                        "bis wann ist der imbiss geöffnet",
                        "wann macht der imbiss auf ",
                        "wann der imbiss geöffnet hat ",
                        "wann hat der imbiss geöffnet"
                    ]
                }
            ],
            "types": []
        }
    }
}

Der Code zeigt das zuvor erstellte Interaktionsmodell im JSON-Format.

Hinweis

Bei JSON (JavaScript Object Notation) handelt es sich um ein kompaktes, textbasiertes Datenaustauschformat, das sowohl von Menschen als auch von Maschinen leicht zu verarbeiten ist. Daten im JSON-Format werden entweder als Namen-Wert-Paare oder als geordnete Listen gespeichert.

Unser JSON-Dokument beinhaltet die Intents unseres Alexa-Skills sowie die den Intents zugewiesen Beispieläußerungen (sofern vorhanden). Es umfasst somit alle Interaktionsmöglichkeiten, die auf der Nutzerseite zur Verfügung stehen.

Wie unser Skill auf Nutzersignale reagiert, definieren wir im Funktionscode unserer Lambda-Funktion. Dazu greifen wir auf die Webanwendung Skillinator.io zurück. Mit dem kostenlosen Tool konvertieren Sie ein Interaktionsmodell im JSON-Format per Klick in ein valides Lambda-Template.

Rufen Sie die Adresse https://skillinator.io/ im Webbrowser auf und fügen Sie das Interaktionsmodell aus der Zwischenablage in das rechte Fenster der Webanwendung ein. Klicken Sie anschließend auf „Generate“.

Kopieren Sie das so erzeugte Lambda-Template in die Zwischenablage und rufen Sie die Konfigurationsübersicht Ihrer Lambda-Funktion in der AWS-Managementkonsole auf. Fügen Sie nun das Template als Funktionscode für Ihre Lambda-Funktion ein. Klicken Sie auf „Speichern“, um die Änderung zu übernehmen.

Sie haben nun eine Lambda-Funktion mit valider Programm-Logik erstellt. Wesentliche Abschnitte des Funktionscodes sind jedoch mit Platzhaltern besetzt – beispielsweise der Sprachoutput, den Alexa ausspielt, sobald ein Nutzer eine Phrase äußert, die dem oben definierten Intent entspricht.

Im Folgenden gilt es daher, das mit Skillinator.io erzeugte Template Zeile für Zeile durchzugehen und die entsprechenden Abschnitte manuell umzuschreiben.

In diesem Alexa-Skill-Tutorial beschränken wir uns bei der Anpassung des Funktionscodes auf den welcomeOutput (die Willkommensnachricht) und die Sprachausgabe für den im Interaktionsmodell definierten Intent „GetOpeningHours“. In der Praxis sollten Sie jedoch für alle Intents Ihres Skills eine individuelle Sprachausgabe definieren.

Der welcomeOutput wird durch die gleichnamige Variable definiert und befindet sich im auskommentierten Bereich „1. Text strings“. Wir ersetzen den Platzhalter „This is a placeholder welcome message. This skill includes 6 intents. Try one of your intent utterances to test the skill.“ durch eine benutzerdefinierte Begrüßung.

Ergänzt wird der welcomeOutput durch einen welcomeReprompt. In diesem definieren Sie, was Alexa sagen soll, falls der Nutzer auf die Begrüßung keine Antwort gibt.

Tipp

Arbeiten Sie bei Sprachanwendungen stets mit Variationen. Gestalten Sie die Interaktion mit Ihrem Skill so abwechslungsreich wie möglich. Der Reprompt beispielsweise sollte stets eine Umformulierung des zuerst ausgespielten Outputs darstellen.

// 1. Text strings =====================================================================================================
 //    Modify these strings and messages to change the behavior of your Lambda function
let speechOutput;
let reprompt;
let welcomeOutput = "Willkommen bei Connys Curry Corner. Was kann ich für Sie tun?";
let welcomeReprompt = "Wie kann ich Ihnen helfen?";

Anschließend scrollen wir in den Bereich „2. Skill Code“. Hier finden wir unserem Interaktionsmodell entsprechend sechs Intent-Slots – die fünf vorkonfigurierten Intents sowie unseren selbst definierten Intent „GetOpeningHours“.

Der Intent „GetOpeningHours“ entspricht der Absicht eines Nutzers, die Öffnungszeiten von Connys Curry Corner zu erfragen. Wir ersetzen den Platzhalter „This is a place holder response for the intent named GetOpeningHours. This intent has no slots. Anything else?“ daher durch eine dem Intent entsprechende Antwort.

'GetOpeningHours': function () {
		speechOutput = '';
		//any intent slot variables are listed here for convenience
		//Your custom intent handling goes here
		speechOutput = "Connys Curry Corner hat heute von 10 bis 18 Uhr geöffnet.";
		this.emit(":ask", speechOutput, speechOutput);
    },

Nachdem wir die Änderungen gespeichert haben, ist unser selbst entwickelter Alexa-Skill theoretisch bereit für den ersten Testlauf. Dazu müssen wir die Lambda-Funktion „ConnysCurryCorner“ jedoch zunächst mit der Webkonfiguration des Skills in der Alexa-Developer-Konsole verknüpfen.

Schritt 4: Interaktionsmodell mit AWS Lambda-Funktion verknüpfen

Damit unser Alexa-Skill von Anwendern über einen Smart Speaker angesprochen werden kann, ist eine beidseitige Verknüpfung erforderlich. Wir gehen in zwei Schritten vor:

  • Zunächst definieren wir das in der Alexa-Developer-Konsole konfigurierte Interaktionsmodell als Trigger für die AWS-Lambda-Funktion.
  • Anschließen tragen wir die Lambda-Funktion „ConnysCurryCorner“ in der Alexa-Developer-Konsole als Web-Service-Endpunkt für den Skill ein.

Interaktionsmodell als Trigger definieren

Rufen Sie die Konfiguration Ihrer Lambda-Funktion in der AWS-Management-Konsole auf und wählen Sie im Funktionsdesigner die Option „Alexa Skills Kit“ aus.

Das Alexa-Skills-Kit wird nun als Auslöser in der grafischen Darstellung Ihrer Lambda-Funktion aufgeführt, benötigt jedoch weitere Konfiguration.

Erforderlich ist die Qualifikations-ID des in der Alexa-Developer-Konsole erstellten Interaktionsmodells. Um diese zu ermitteln, wechseln Sie in die Alexa-Developer-Konsole und wählen in der Navigationsleiste auf der linke Seite Ihres Browserfensters den Punkt „Endpoint“ aus.

Kopieren Sie die Zeichenfolge, die Ihnen unter „Your Skill ID“ angezeigt wird, in die Zwischenablage und tragen Sie diese anschließend als Qualifikations-ID Ihrer Lambda-Funktion ein. Bestätigen Sie die Einstellung mit einem Klick auf „Hinzufügen“ und speichern Sie Änderungen.

Lambda-Funktion als Endpunkt eintragen

Um den Web-Service-Endpunkt für Ihren Skill zu definieren, scrollen Sie in der Konfigurationsübersicht Ihrer Lambda-Funktion ganz nach oben. Kopieren Sie den ARN in der rechten oberen Ecke Ihres Browserfensters in die Zwischenablage und wechseln Sie in die Alexa-Developer-Konsole.

Wählen Sie im Navigationsmenü der Alexa-Developer-Konsole erneut den Punkt „Endpoint“ aus (sofern dieser nicht bereits ausgewählt ist) und fügen Sie den kopierten ARN in das Feld „Default Region“ ein.

Sie müssen mindestens einen Standard-Endpunkt für Ihren Skill definieren. Darüber hinaus haben Sie die Möglichkeit, alternative Endpunkte für die Regionen Nordamerika, Europa und Indien sowie Nahost und Fernost anzugeben. Speichern Sie die Einstellungen mit einem Klick auf „Save Endpoints“.

Ihr Alexa-Skill ist nun bereit für den ersten Testlauf.

Schritt 5: Test

Im Bereich „Test“ bietet die Alexa-Developer-Konsole eine komplette Testumgebung für selbst programmierte Alexa-Skills inklusive Alexa-Simulator mit Sprachausgabe. In die Testumgebung gelangen Sie, indem Sie in der Menüzeile am oberen Rand des Browserfensters auf den Tab „Test“ klicken.

In der Standardeinstellung ist die Testumgebung für neu erstellte Alexa-Skills deaktiviert. Aktivieren Sie diese, indem Sie das Drop-down-Menü von „Off“ auf „Development“ umstellen.

Sie haben nun die Möglichkeit, mit Ihrem Skill im aktuellen Entwicklungsstadium zu interagieren, um sicherzustellen, dass dieser in der Praxis so funktioniert, wie Sie es sich vorgestellt haben.

Gewähren Sie dem Alexa-Simulator Zugriff auf ein Mikrofon oder geben Sie Sprachbefehle über die Tastatur ein. Rufen Sie Ihren neu entwickelten Alexa-Skill mithilfe der Invocation auf und testen Sie einen Sprachbefehl, der dem von Ihnen definierten Intent entspricht.

Unser Beispiel-Skill lässt sich mit der Invocation „connys curry corner“ starten. Alexa antwortet mit dem in der Programmlogik definierten welcomeOutput:

„Willkommen bei Connys Curry Corner. Was kann ich für Sie tun?“

Der Zugriff auf die Programmlogik funktioniert also. Welchen In- und Output der Amazon-Sprachservice im Rahmen der Abfrage verarbeitet, wird im Fenster Skill I/O im JSON-Format dargestellt.

Stellen Sie nun eine dem Intent entsprechende Frage. Passend zu unserem Beispiel erkundigen wir uns nach den Öffnungszeiten des Imbisses:

„Wann hat der Imbiss heute geöffnet?“

Alexa versteht unsere Frage, und gibt uns die gewünschte Auskunft:

„Connys Curry Corner hat heute von 10 bis 18 Uhr geöffnet.“

Hinweis

Alternativ testen Sie neu entwickelte Alexa-Skills auch schon vor der Veröffentlichung, auf allen mit Ihrem Amazon-Developer-Account verbundenen Geräten.

Schritt 6: Veröffentlichung

Haben Sie Ihren neuen Alexa-Skill getestet und für gut befunden, können Sie diesen anderen Nutzern über den Alexa-Skills-Store zugänglich machen. Voraussetzung dafür ist, dass Sie alle für die Veröffentlichung vorgeschriebenen Informationen bereitstellen.

Wechseln Sie dafür in den Bereich „Distribution“ (Veröffentlichung), indem Sie auf die gleichnamige Schaltfläche im Navigationsmenü der Alexa-Developer-Konsole klicken. Füllen Sie alle erforderlichen Felder unter „Skill Preview“, „Privacy & Compliance“ und „Availability“ aus.

Tragen Sie unter „Skill Preview“ alle Angaben ein, die Anwendern im gewünschten Zielland in der Vorschau angezeigt werden sollen. Hier müssen folgende Informationen bereitgestellt werden:

  • Name des Skills
  • Kurzbeschreibung (max. 160 Zeichen)
  • Detaillierte Beschreibung (max. 4.000 Zeichen)
  • Mindestens drei Beispieläußerungen
  • Skill-Icon (klein)
  • Skill-Icon (groß)
  • Kategorie

Bei Bedarf können Sie zudem Hinweise zu Neuerungen sowie ggf. Links zu den Datenschutzbestimmungen oder Nutzungsbedingungen für Ihren Skill eintragen.

Tipp

Sie haben gerade kein Icon für Ihren Skill zur Hand? Dann nutzen Sie den kostenlosen Alexa-Skill-Icon-Builder.

Unter „Privacy & Compliance“ geben Sie an, ob Nutzer im Rahmen Ihres Skills kostenpflichtige Funktionen nutzen können, ob Sie personenbezogene Nutzerdaten erheben und ob sich Ihr Skill an Nutzer unter 13 Jahre richtet oder Werbung beinhaltet.

Hinweis

Die Aktivierung eines Alexa-Skills über den Alexa-Skills-Store ist kostenlos. Monetarisieren lassen sich Projekte, die mit dem Alexa-Skills-Kit programmiert wurden, durch In-Skill-Käufe und Abonnements.

Darüber hinaus müssen Sie bestätigen, dass Ihr Skill der Export-Compliance für Alexa-Skills entspricht. Sind bei der Verifizierung durch das Alexa-Team bestimmte Anweisungen – beispielsweise in Bezug auf Hardware- oder Software-Voraussetzungen – zu beachten, können Sie diese in einem dafür vorgesehenen Textfeld beschreiben.

Abschließend definieren Sie unter „Availability“ ggf. Einschränkungen für die Verfügbarkeit Ihres Skills. Soll Ihr Skill allen Nutzern zur Verfügung stehen oder nur ausgewählten Organisationen? Sollen die Beta-Tests von bestimmten Personen durchgeführt werden? Und in welchen Ländern und Regionen möchten Sie Ihren Skill veröffentlichen?

Speichern Sie Ihre Angaben in den Bereichen „Skill Preview“, „Privacy & Compliance“ und „Availability“ mit einem Klick auf „Save and continue“.

Validiert werden Ihre Angaben im Rahmen der Zertifizierung Ihres Skills.

Schritt 7: Zertifizierung

Haben Sie alle für die Veröffentlichung erforderlichen Angaben hinterlegt, können Sie Ihren Alexa-Skill zur Validierung freigeben.

Nachdem Sie Ihre Angaben zur Veröffentlichung mit einem Klick auf „Save and continue“ gespeichert haben, werden Sie automatisch in den Bereich „Certification“ (Zertifizierung) weitergeleitet. Die Alexa-Developer-Konsole prüft Ihre Angaben und fordert Sie bei Bedarf auf, fehlerhafte Informationen zu überarbeiten oder fehlende Daten nachzuliefern.

Haben Sie die geforderten Informationen korrekt angegeben oder ggf. korrigiert, können Sie mit einem Funktionstest fortfahren. Starten Sie den Test mit einem Klick auf „Run“.

Sollte der Testbericht Fehler aufzeigen, haben Sie die Möglichkeit, in den entsprechenden Bereich zurückzukehren, den Fehler zu beheben und einen neuen Funktionstest durchzuführen.

Hat Ihr der von Ihnen programmierte Alexa-Skill den Funktionstest erfolgreich absolviert, ist dieser bereit für den letzten Schritt im Rahmen der Veröffentlichung – die „Submission“. Klicken Sie auf „Submit for Review“, um Ihren Skill zur Zertifizierung einzureichen. Es folgt nun eine Überprüfung durch das Amazon-Alexa-Team.

Hinweis

Die Konfiguration Ihres Skills kann während des Zertifizierungsprozesses nicht angepasst werden. Sie haben jedoch jederzeit die Möglichkeit, die Überprüfung abzubrechen. Klicken Sie dazu auf die Schaltfläche „Withdraw from Certification“.

Ist die Überprüfung durch Amazon abgeschlossen, erhalten Sie in jedem Fall eine E-Mail an das mit Ihrem Amazon-Developer-Account verbundene Konto. Es sind grundsätzlich zwei Szenarien denkbar:

  • Ihr Skill wurde erfolgreich zertifiziert: In diesem Fall werden Sie per Mail darüber informiert, wann Ihr Skill im Alexa-Skills-Store voraussichtlich veröffentlicht wird.
  • Ihr Skill wurde nicht zertifiziert: In diesem Fall hat Amazon im Rahmen des Zertifizierungsprozesses Probleme festgestellt. Die E-Mail beinhaltet einen detaillierten Bericht darüber, welche Änderungen für eine erfolgreiche Zertifizierung erforderlich sind. Nachdem Sie die entsprechenden Anpassungen vorgenommen haben, können Sie Ihren Skill jederzeit erneut zur Zertifizierung einreichen.

Den aktuellen Status aller Alexa-Skills, die Sie in der Alexa-Developer-Konsole erstellt haben, können Sie in der Skill-Übersicht der Alexa-Developer-Konsole einsehen.

  • In Development: Ihr Skill befindet sich in der Entwicklung.
  • Certification: Ihr Skill befindet sich im Zertifizierungsprozess.
  • Live: Ihr Skill steht Nutzern über den Alexa-Skills-Store zur Verfügung.
Hinweis

Hat Ihr Skill den Status „Live“ erreicht, können Sie dessen Konfiguration nicht mehr nachträglich anpassen. Zusätzlich zur Live-Version steht Ihnen in der Alexa-Developer-Konsole jedoch eine Entwicklerversion des veröffentlichten Skills zur Verfügung, die unabhängig vom Original überarbeitet werden kann. Sobald eine überarbeitete Version Ihres Skills von Amazon zertifiziert wurde, ersetzt diese die vorherige Live-Version, und es wird automatisch eine neue Entwicklerversion angelegt.

Bessere User-Experience mit dem Voice-Interface

Warum sollten Sie als Unternehmer einen Alexa-Skill entwickeln? Die Gründe dafür liegen auf der Hand: Die zwischenmenschliche Interaktion basiert zum Großteil auf lautsprachlicher Kommunikation. Im Umgang mit Maschinen jedoch greifen wir noch immer auf Hilfsmittel zurück: Eingaben per Tastatur, Maus oder Touchscreen führen zu einem Output auf dem Bildschirm. Doch das wird sich bald ändern. Mit Amazon Alexa, Google Assistant und Apple Siri wird die Bedienung zum Dialog. Gegenstände werden zu Gesprächspartnern und der Umgang mit ihnen intuitiver.

Noch steckt die Technologie in den Kinderschuhen, doch Voice-as-UI – Stimme als Benutzerschnittstelle – ist ein Trend, der das Potenzial hat, die Art, wie wir Maschinen wahrnehmen und mit ihnen interagieren, grundlegend zu verändern. Für Sie als Unternehmer bietet ein Sprachservice wie Amazon Alexa diverse Chancen.

Nutzen Sie Alexa-Skills beispielsweise, um zu zeigen, dass sich Ihr Unternehmen am Puls der Zeit orientiert. Präsentieren Sie sich modern, technikaffin und dynamisch, indem Sie Ihren Kunden vollkommen neue Interaktionsmöglichkeiten anbieten. In Deutschland hat Voice-as-UI noch immer den Reiz des Neuen und kann banale Tätigkeiten zu einem Erlebnis machen.

Als Amazon-Produkt profitiert Alexa von einer enormen Reichweite. Zusammen mit Google dominiert das Unternehmen den Markt für Smart Speaker. Von Verbrauchern wird der Smart Speaker als revolutionäres Medium wahrgenommen, d. h. Ihnen eröffnet sich durch das Voice-Interface ein vollkommen neuer Kommunikationskanal für Ihre Marketingziele. Im Bereich des Kundenservices beispielsweise ergibt sich mit Alexa die Chance, automatisierte Kommunikationsabläufe persönlicher zu gestalten.

Noch liegt der Fokus virtueller Sprachassistenten auf der beratenden Funktion. Doch zukünftig werden Smart Speaker diverse Conversions ermöglichen – beispielsweise den Einkauf per Sprachbefehl. Ihr Alexa-Skill wird dann zur virtuellen Filiale direkt im Wohnzimmer Ihrer Kundschaft. Bereits heute ermöglicht Amazon Prime-Mitgliedern Spracheinkäufe via Amazon Pay.