Voice user interface design mit Amazon Alexa

Ich war kürzlich auf einem von Amazon veranstalteten ganztägigen Workshop zum Thema Alexa hier in Hamburg und vorher auch schon mal bei einem Meetup der AWS User Group zu demselben Thema. Die Quintessenz aus beiden ist, dass die Prinzipien nach denen ein Voice User Interface (bspw. mit Alexa) entwickelt werden sollte, grundlegend von den Prinzipien nach dem bspw. eine Weboberfläche designed wird, abweicht. Eine Weboberfläche eins zu eins in eine Voice UI zu übersetzen, funktioniert nicht. Um einige dieser grundlegenden Prinzipien soll es im Folgenden gehen.

Angenommen, wir würden einen Alexa Skill (so nennen sich die „Apps“ für Alexa) schreiben, um Angebote zu erhalten, wie teuer es ist, Teilcontainerladungen zu transportieren. In der Webanwendung muss man dazu unter anderem die folgenden Dinge pflegen:

  • Abgangsland
  • Postleitzahl der Abholadresse oder alternativ Containerpackstation, an der man die Ladung abgibt
  • Zielland
  • Postleitzahl der Zieladresse oder alternativ Containerpackstation, an der die Ladung abgeholt wird
  • Volumen und Masse der Ladung, die transportiert werden soll

Hier sollte man nicht in die Falle der früheren automatisierten Telefondienste verfallen: „Sagen Sie Kundendienst, wenn sie mit dem Kundendienst sprechen wollen, sagen Sie Auftragsverfolgung …. “ und dann am Ende nach einem sehr langen Telefonat „Tut mir leid, das habe ich leider nicht verstanden“. In unserem Fall übersetzt sollte man also nicht einfach die Felder nach und nach starr abfragen: „Sagen sie bitte das Zielland“, „Sagen sie die Containerpackstation“ usw.. Das Problem ist, dass keiner unseren Skill dann benutzen würde, da es auf Grund der vielen Fehleingaben und Rückfragen viel länger dauert, als wenn er die Webapplikation benutzt.

Stattdessen sollten wir den Skill so schreiben, dass er sehr flexibel ist und versucht, mit möglichst vielen Aussagen des Benutzers umgehen zu können. Der Benutzer sollte also bspw. folgende Sätze sagen können:

  • „Alexa bitte gib mir einen Preis“
  • „Alexa bitte gib mir einen Preis von Bremen nach New York“
  • „Alexa bitte gib mir einen Preis für 10 Kubikmeter und 100 Kilogramm von Bremen nach New York“
  • „Alexa bitte gib mir einen Preis für 100 Kilogramm und 10 Kubikmeter von Bremen nach New York“
  • „Alexa bitte gib mir einen Preis für Deutschland nach New York“
  • „Alexa bitte gib mir einen Preis für 10 Kubikmeter“

Gibt der Benutzer gleich viele Informationen preis, kann er also sehr schnell seine gewünschte Information erhalten. Fehlen noch einige Informationen, so sollten wir diese geschickt nachfragen. Hat der Benutzer bspw. „Alexa bitte gib mir einen Preis von Bremen nach New York“ geäußert, müsste Alexa noch nach der Masse und dem Volumen fragen. Hat der Benutzer allerdings schon alles im ersten Satz gesagt („Alexa bitte gib mir einen Preis für 10 Kubikmeter und 100 Kilogramm von Bremen nach New York“), so kann ihm gleich ein Preis angeboten werden. Dabei sollten wir auch versuchen, die Zahl der Fragen zu reduzieren bzw. geschickt nachzufragen. Bspw. ergibt sich das Land unter Umständen schon aus den anderen Angaben. Nach dem Land müsste man dann nur nachfragen, wenn einige Angaben mehrdeutig sind, da es bspw. mehrere Hamburgs auf der Welt gibt. Aber auch dann könnte man den Nutzer gezielt fragen, ob er das in Deutschland oder das in den Vereinigten Staaten meint.

Auch ist wichtig, dass kein Kunde sich erst eine eine lange Dokumentation durchlesen wird, um die richtigen Sätze zu lernen, um unseren Alexa Skill zu bedienen. Vielmehr wird er versuchen, so zu reden, wie er es auch mit einem menschlichen Gegenüber tun würde. Die Sätze sollten also natürlich klingen. Möchte man dem Benutzer trotzdem am Anfang mehr Hilfestellung geben, kann man dieses die ersten paar Male natürlich trotzdem tun – am Anfang könnten Alexas Antworten dann etwas länger ausfallen und später dann kürzer.

Ein interessantes Thema, ich bin gespannt wo die Reise mit den Voice UIs noch hingeht.