"Alexa, sag mir was ich wissen will"

Mit Alexa Custom Skills kann jeder den Sprachassistenten nutzen, um das eigene Geschäft näher zum Kunden zu bringen. Gerade im Bereich Content Marketing glänzt dabei der Mehrwert, den B2B-Kunden durch ihren Sprachassistenten schöpfen können. Wie man einen Skill baut und welche Möglichkeiten es gibt werde ich in diesem Artikel grob anreißen.

Kurz zu Alexa

Alexa ist der persönliche Sprachassistent von Amazon. Die entsprechenden Geräte dazu werden unter dem Namen Amazon Echo verkauft. Der Assistent kann gesprochene Befehle erkennen und ausführen, z. B. Stellen eines Weckers oder Abspielen von Musik. Sehr viel weiter als das reichen die von Amazon selbst angebotenen Befehle allerdings nicht.

Skills

Dafür setzt der Betreiber auf die Unterstützung von Drittanbietern: Mit dem Alexa Skills Kit kann man selbst Befehle, sogenannte Skills, für Alexa entwickeln. Diese können von einfachen Abfragen, wie beispielsweise die Maße der DIN Papierformate abzurufen, bis zur Fahrplanauskunft der Deutschen Bahn reichen.

Als griffiges Beispiel werde ich auf die von Blueline implementierte Abfrage der Maße von DIN Formaten zurückgreifen. Anhand dessen zeige ich wie man den Skill bei Amazon anlegt und welche Möglichkeiten es für die eigene Implementierung gibt.

Amazon Alexa Custom Skill Verarbeitungsablauf

Der Skill

Um einen Skill anzulegen und zu veröffentlichen braucht man einen Amazon Developer Account. Dabei kann jeder bestehende Amazon Account auch als Developer Account genutzt werden. Das Ganze passiert in den Amazon Developer Services.

Die Frage

In den Developer Services findet man neben verschiedensten anderen Diensten auch amazon alexa. Hier gibt es eine Vielzahl von Infos und Dokumentationen zu allen Möglichkeiten, die Alexa für Entwickler bietet. Eine Übersicht eigener Skills versteckt sich oben rechts unter „Deine Alexa Konsolen / Skills“.

Skill anlegen

Von der Übersicht aus wird ein neuer Skill angelegt. Im ersten Schritt wird der Name des Skills und die Sprache festgelegt. Der Name hier hat dabei nichts mit dem „Rufnamen“ zu tun.

Danach wird ausgewählt welche Art bzw. Kategorie von Skill es sein soll. In diesem Anwendungsfall ist es ein Custom-Skill.

Sobald der Skill angelegt ist landet man im eigentlichen Editor. Hier wird das Interaktionsmodell für die Spracherkennung selbst eingestellt, angefangen mit dem Invocation-Name, dem „Rufnamen“ des Skills. In unserem Fall lautet der Rufname „DIN Formate“. Dabei bringt Alexa die verschiedenen Phrasen zum Starten direkt mit. Der Skill kann also über „Alexa, starte DIN Formate“ oder „Alexa, frage DIN Formate nach“ und dergleichen mehr gestartet werden.

Intents

Das Interaktionsmodell von Alexa beruht darauf, dass die Spracherkennung die Absicht (Intent) des Benutzers ermittelt und daraufhin eine Aktion ausführt. Es gibt eine Reihe von Standard-Intents, die direkt von Amazon mitgeliefert werden. Das ist zum Beispiel der HelpIntent, mit dem nach Hilfe zur Benutzung des Skills gefragt wird.

Der ganze Sinn hinter einem eigenen Skill ist es natürlich, auch einen eigenen Intent anzulegen. In unserem Skill-Beispiel „DIN Formate“ ist das die Absicht des Nutzers, die Größe eines bestimmten DIN Formats anzufragen und anschließend die Maße in Millimetern zu erfahren: Der formatSizeIntent. Wie der Benutzer den Intent auslöst wird über sogenannte Utterances festgelegt.

Utterances

Ist der Intent angelegt geht es an die eigentliche Spracherkennung. Damit der Alexa Service weiß wann der Intent erkannt werden soll, sollten alle möglichen Phrasen eingegeben werden die diese Absicht wiederspiegeln. Hier kann es schnell sehr umfangreich werden, weil es verschiedene Einstiegspunkte für die Formulierung einer Aufforderung gibt.

Es kann zum Beispiel sein, dass ein Nutzer mit einem Satz den Skill startet und den Intent auslöst: Alexa, frage DIN Formate nach der Größe von A4. Dabei wird „nach“ von Alexa als Füllwort erkannt. Die im Skill eingegebene Phrase ist also: der Größe von A4.

Es kann allerdings auch sein, dass der Skill schon gestartet ist und der Nutzer dann die Frage stellt: Wie groß ist A4? Hier ist die wichtige Phrase die ganze Frage des Nutzers.

Es lohnt sich etliche Anfragen durchzugehen und die Phrasen in die Liste aufzunehmen. Je mehr passende Phrasen eingestellt werden, desto besser.

Slots

Damit ein Skill vielfältige Antworten anbieten kann ist es natürlich wichtig nach verschiedenen Dingen fragen zu können. Um zum Beispiel die Erkennung mehrerer DIN Formate unter einen Hut zu bringen, können in den Utterances Platzhalter eingefügt werden: sogenannte Slots.

Jeder Slot hat dabei einen SlotType. Dieser legt fest welche Werte in diesem Slot erlaubt sind. Hier stellt Amazon schon mehrere mitgelieferte Typen zur Verfügung. So gibt es zum Beispiel einen SlotType für Regionen und Städte in Deutschland. Sehr praktisch wenn man nicht selbst tausende von Ortschaften einstellen möchte.

Für die DIN Formate wird ein eigener SlotType gebraucht, der die verschiedenen DIN Formate als Wert erlaubt. Sehr gut ist auch, dass für erlaubte Werte Synonyme und Abwandlungen angegeben werden können: Zum Beispiel könnte man für den Wert „A4“ das Synonym „DIN A4“ angeben.

API Endpunkt

Nachdem die Spracherkennung abgedeckt ist, muss auf die erkannte Absicht hin auch eine Aktion ausgelöst werden. Hier zeigt sich die eigentliche Stärke der Custom Skills: Über den „API Endpunkt“ kann ein eigener Webservice angegeben werden, an den Amazon die Absichten und Werte des Benutzers zur Verarbeitung schickt.

Die Antwort

An dieser Stelle wartet der interessanteste Teil des ganzen Skills: das eigene Antwortprogramm.

Da bei der Anfrage durch Amazon ein allgemeines Datenformat verwendet wird, kann die konkrete Implementierung auf der eigenen Seite frei gewählt werden. Hier kann man ein ganz neues Programm implementieren oder auf bestehende Technik zurückgreifen.

Für den DIN Formate Skill haben wir beispielsweise ein kleines Verzeichnis mit den Formatgrößen angelegt, welches eigenständig funktioniert. Es steht aber nichts im Wege um beispielsweise einen eigenen Skill zu entwickeln, der die noch verfügbare Anzahl von Produkten aus dem eigenen Webshop ausgeben kann.

Da die Implementierungsdetails je nach gewählter Programmiersprache, System und Anwendungsfall sehr unterschiedlich sein können, möchte ich hier darauf verzichten darauf einzugehen und stattdessen zeigen, welche Antworten an Alexa gegeben werden können.

Die Sprachausgabe

Als Antwort auf die Intent-Anfrage kann ein normal ausgeschriebener Text an Amazon zurückgeschickt werden. Der wird dann mit Alexa’s Standard-Betonung ausgegeben. Viel interessanter ist es allerdings auf SSML zurückzugreifen: Speech Synthesis Markup Language.

<speak>
Das Format <emphasis level="strong">DIN</emphasis> A4 ist 210 mal 297 Millimeter groß. <break time="2s"/> Soll ich die Maße nochmal wiederholen?
</speak>

Diese HTML-ähnliche Kodierung ermöglicht es Alexa verschiedene Betonungen, Pausen und sogar Sound-Effekte mitzugeben. Die Möglichkeiten sind vielfältig. Glücklicherweise  stellt Amazon eine umfangreiche Dokumentation zur Verfügung.

Noch mehr davon?

Amazon Alexa Dialog Schema

Natürlich kann Alexa auch Nachfragen stellen wie es nach einer ihrer Antworten weitergehen soll. Wenn man zum Beispiel bei der ersten Antwort die Maße des DIN Formats nicht gleich verstanden hat, wird die Nachfrage gestellt, ob Alexa das nochmal wiederholen soll.

Der Nutzer wird dann eine Ja / Nein Antwort geben, auf die das Programm entsprechend reagiert. Auch fehlende Angaben können direkt noch einmal vom Nutzer abgefragt werden.

Es kann also ein Kontext hergestellt werden der es erlaubt mehrere Fragen miteinander zu verketten. So kann man einen Nutzer Schritt für Schritt durch eine komplizierte Frage führen. Das ist besonders für den B2B-Bereich interessant, da hier schnell komplexe Fragestellungen auftreten können.

Metadaten

Mit spezieller Freigabe durch den Benutzer kann man auch Adressdaten abrufen. Je nach Freigabestufe können das eher allgemeine Daten wie die Postleitzahl oder detaillierte Daten wie die volle Adresse sein (Hier: Vorsicht, Datenschutz!). Damit kann man auch standortbezogene Skills entwickeln. Ein klassisches Beispiel dafür ist der Wetter Skill, der ohne weitere Nachfrage das Wetter für den aktuellen Standort ansagen kann.

Noch einen Schritt weiter geht die Verknüpfung von Benutzerkonten: Dabei kann ein Amazon Account mit einen Account aus dem eigenen System verknüpft werden. Das ermöglicht es zugriffsbeschränkte Informationen an Alexa zu schicken, beispielsweise zum Abfragen des Bestellstatus aus einem Webshop. Vorsicht an der Stelle: Die Freigabe bezieht sich damit auf das Gerät, solange das richtige Gerät benutzt wird kann jeder die Information abfragen!

Fazit

Die Alexa Custom Skills bieten die Möglichkeit Amazon’s Spracherkennung zu nutzen, um eigene Anwendungen damit umzusetzen. Alexa’s Fähigkeiten zur Dialogsteuerung erlauben es dabei auch längere Anfragen zu erfassen, während die Anbindung an eigene IT-Systeme Zugriff auf vielfältige Daten erlaubt. Zusammen sind das die Werkzeuge, die es erlauben auch komplexe B2B-Anwendungen umzusetzen.

Die Veröffentlichung unseres eigenen Skill „DIN Formate“ haben wir zunächst zurückgestellt. Im Bezug auf die am 25.05.2018 inkrafttretende DSGVO sind zu diesem Zeitpunkt noch Datenschutzfragen offen, die zur Veröffentlichung geklärt werden müssen.

Markus Zorn

Markus Zorn

Studium Medieninformatik. Erfahrung als Softwareentwickler an einer Graph-Datenbank. Mehrjährige Erfahrung als Freelance-Webentwickler. Seit 2014 Gesellschafter und Webentwickler bei Blueline. Verantwortlich für Full-Stack Webentwicklung.

Cookies & Skripte von Drittanbietern

Diese Website verwendet Cookies. Für eine optimale Performance, eine reibungslose Verwendung sozialer Medien und aus Werbezwecken empfiehlt es sich, der Verwendung von Cookies & Skripten durch Drittanbieter zuzustimmen. Dafür werden möglicherweise Informationen zu Ihrer Verwendung der Website von Drittanbietern für soziale Medien, Werbung und Analysen weitergegeben. Weitere Informationen finden Sie unter Datenschutz und im Impressum.
Welchen Cookies & Skripten und der damit verbundenen Verarbeitung Ihrer persönlichen Daten stimmen Sie zu?

Sie können Ihre Einstellungen jederzeit unter Datenschutz ändern.