iX 6/2017
S. 44
Titel
Serverless-Entwicklung
Aufmacherbild

Alexa Skills programmieren

Sehr gesprächig

Amazons Sprachassistent Alexa leitet Anfragen an beliebige Webservices weiter. Diese Services haben in der Regel einen kleinen Funktionsumfang und sollen schnell und einfach veröffentlicht werden – ein typisches Szenario für Functions as a Service.

Alexa lautet der Name des digitalen Assistenten von Amazon. Hersteller können ihn über Alexa Voice Service (AVS) in ihre Hardware integrieren. Die bekanntesten Produkte Echo und Echo Dot vertreibt Amazon selbst. Andere Hersteller wie LG haben eigene Geräte angekündigt. Auch Autohersteller haben auf der CES Anfang des Jahres eine Integration von Alexa versprochen ([a], siehe „Alle Links“ am Ende des Artikels).

Ohne Erweiterung kann Alexa allgemeine Wissensfragen beantworten, Wetter und Tageszusammenfassung ausgewählter News-Anbieter vorlesen, Musik von Streaming-Diensten abspielen, Einkaufs- und To-do-Listen erstellen sowie Smart-Home-Geräte steuern. Selbstverständlich können Nutzer Bestellungen bei Amazon tätigen oder deren Status abfragen. Um Alexa weitere Fähigkeiten beizubringen, können Entwickler mit dem Alexa Skills Kit (ASK) eigene Apps für Alexa erstellen. Diese lassen sich in drei Kategorien einteilen:

 Smart Home Skills für die Steuerung vernetzter Geräte;

 Flash Briefing Skills als weitere News-Quelle für die Tageszusammenfassung („Flash Brief“);

 Custom Interaction Model Skills für alle anderen Interaktionen mit Alexa.

Zum Entwickeln eines eigenen Skills ist ein Amazon Developer Account [b] notwendig. Im Developer-Portal erstellen und konfigurieren Entwickler neue Skills. Deren eigentliche Logik lässt sich als Webservice über HTTPS einbinden. Diese Webservices bezeichnet Amazon als SkillServices. Amazon empfiehlt hierfür seinen eigenen Dienst AWS Lambda als Backend. Dieser Artikel beschreibt den Aufbau anhand eines einfachen Beispiels.

Custom Skills werden im Menüpunkt „Alexa Skills Kit“ in der „Amazon Developer Console“ [c] verwaltet. Damit beliebige Nutzer einen Skill auf ihrem Gerät verwenden können, müssen Entwickler diese wie Apps einreichen. Amazon nimmt dann die Freigabe vor.

Vielseitige Gestaltung der Fragen

Bevor man jedoch mit der Einrichtung und Programmierung loslegt, sollte man sich Gedanken über das Voice Interface machen: Das ist die Schnittstelle, über die Nutzer mit einem Skill interagieren. Da diese möglichst natürlich mit Alexa sprechen sollen, muss ein guter Skill eine Vielzahl von Spracheingabevarianten unterstützen:

 Wie soll der Nutzer den Skill aufrufen?

 Wie sollen Anwender die Funktionen aktivieren?

 Welche Satzstellungen sind möglich?

 Gibt es regionale Unterschiede?

Je flexibler die Anfrage gestellt werden kann, desto besser ist das Nutzererlebnis. Wenn der Skill nicht oder falsch antwortet, ist der Nutzer schnell frustriert. In den Richtlinien beschreibt Amazon ausführlich, wie ein Aufruf definiert werden sollte.

Ein Skill sollte zum Beispiel immer auf das Wort „Hilfe“ reagieren und dem Nutzer erklären, wie man mit ihm interagieren kann. Viele Skills erklären bei jedem Aufruf ihre Benutzung. Das ist sinnvoll beim ersten Aufruf, wird aber bei regelmäßiger Nutzung schnell nervig. Gutes Voice-Interface-Design entspricht damit gutem Visual-Interface-Design.

Alexa, kannst du bitte …

Zum Starten eines Skills, dem Launch Request, erwartet Alexa ein Wake Word, eine Invocation Phrase und den Invocation Name. Das Beispiel in diesem Artikel liest Nutzern die neuesten News von ix.de vor. Der angebundene Service ruft dazu den RSS-Feed ab und schickt die zwei neuesten News an Alexa. Eine abweichende Zahl von Nachrichten können Nutzer dem Skill bei Aufruf mitteilen.

Für das Beispiel wäre daher eine natürlich klingende Phrase „Alexa, <öffne> <iX News>“ denkbar. Andere Invocation Phrases wären: „Alexa, frage / sage / starte / öffne / hole …“

Unterstützt der Skill zusätzliche Nutzereingaben, wie weitere Funktionen oder ergänzende Angaben, können diese als Absichten (Intents) angehängt werden. Da im Beispiel die Anzahl der News definiert werden kann, lautet die vollständige Phrase: „Alexa, <frage> <iX News> <nach zwei News>.“ Eine Übersicht über das Sprach-Interface und welche Varianten der Phrase möglich sind, findet man in der Dokumentation bei Amazon [d].

Der neue Alexa Skill heißt „Newsreader Demo“. Er lässt sich über das Kommando „iX News“ aufrufen. Derzeit funktionieren Alexa Skills in den Sprachen Englisch und Deutsch (Abb. 1).

Im Interface zum Erstellen eines neuen Skills müssen einige grundlegende Angaben eingetragen werden: Der Skill ist vom Typ „Custom Interaction Model“ und hört auf deutsche Kommandos. Zur Identifizierung wird ein eindeutiger Name sowie ein passender Invocation Name benötigt. Über letzteren startet der Nutzer den Skill später. Der neue Skill heißt „Newsreader Demo“ und soll mit dem Invocation Name „iX News“ aufgerufen werden können. Er spielt kein Audio ab, entsprechend lautet die Angabe zum Audio-Player „Nein“.

Verzweigte Interaktionswege