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 dotflow 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.
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?
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.