Beiträge

Die aktuelle Funktionalität von Voice Interfaces ist noch lange nicht optimal. Vokabeln werden missverstanden und komplette Sätze falsch interpretiert. Zudem gibt es bei den gängigen Interfaces viele Entwicklungsbeschränkungen. Was muss sich technologisch verbessern, um eine höhere Akzeptanz seitens des Menschen zu bekommen? Welche Entwicklungstrends gibt es bei den Big Playern am Markt? Wir geben einen Ausblick darauf, wie sich Voice Interfaces weiterentwickeln und wo großes Potenzial steckt.

Der internationale Markt für Voice Interfaces entwickelt sich rasant und in verschiedene Richtungen. Einige Unternehmen konzentrieren sich auf die Verbesserung des Sprachverständnisses, andere arbeiten daran, etablierte Technologien um Komfortfunktionen zu erweitern. So bietet Alexa demnächst die Möglichkeit, per Stimmenanalyse zwischen mehreren Nutzern zu unterscheiden. Smart Assistants wird tieferes Wissen mit auf den Weg gegeben, um immer komplexere Spracheingaben verstehen zu können und somit intelligenter zu werden.

So wird beispielsweise bei Samsung’s Viv an Modellen gearbeitet, die zukünftig von externen Entwicklern erweitert werden können, um eine immer breitere Wissensbasis zu schaffen. Zusätzlich bilden sich Nischenmärkte für ganz spezielle Anwendungsgebiete von Conversational Interfaces – so gibt es sie schon jetzt für das Arbeiten mit Produktdaten oder InCar-Lösungen.

Die Pläne der Big Player

Amazon hatte mit Alexa nicht den Anspruch einen Smart Assistant auf den Markt zu bringen. Allerdings sollte sie die Möglichkeit bieten, von Entwicklern um Skills erweitert werden zu können. Ihre Funktionalität sollte wachsen, ihre Einsatzmöglichkeiten dadurch größer werden und es sollte sich ein Markt speziell für dieses Interface etablieren. Bei anderen Systemen gestaltet sich die Erweiterung durch externe Entwickler eher schwierig. Möchte man beispielsweise das Wissen von Siri um eine Domäne vergrößern – also um Wissen auf einem bestimmten Gebiet – hat dies massiven Einfluss auf die gesamte Funktionalität.

Ein gutes Beispiel ist hier das Wort „lieblich“, das sich auf einen Geschmack oder auch einen Duft beziehen kann. Würden beide Wissensdomänen ohne aufeinander abgestimmt zu sein, implementiert werden, wären Sätze wie „Ich mag es eher lieblich“ schwer zu interpretieren. Bei nur einer Wissensdomäne wäre die Zuordnung entgegen eindeutig. Daher gibt es im Umfeld von Apple auch noch keine Möglichkeit, Siri frei zu programmieren. Bei Cortana und dem Google Assistant(?) sind die Möglichkeiten zur Erweiterung dahingehend beschränkt, dass Voice Skills oder Actions – Googles äquivalent zu Skills – zwar entwickelt werden können, diese aber nicht auf das vorhandene Domänenwissen zugreifen können, was sie für Entwickler auf eine Stufe mit Alexa stellt.

Amazon setzt auf In-Skill Purchasing

Microsoft und Amazon arbeiten daran eine Integration von Alexa in Cortana und umgekehrt zu schaffen, um so den Markt zu erweitern. Erste Reviews dazu sind im Netz bereits zu finden. Zusätzlich ist Amazon dabei immer mehr Hardware für Alexa oder mit direkter Alexa-Unterstützung auf den Markt zu bringen. So gibt es zum Beispiel Buzzer – einfache Knöpfe, mit denen man eine Aktion auslösen kann, um das Umfeld von Gamification zu erweitern, Echos in allen Variationen und sogar mit Smart-Hub-Integration – unter anderem für Philips Hue.

Bisher offenbarte sich der Markt für Alexa-Skills allerdings eher als ein Nullsummenspiel. Einnahmen brachten lediglich die Erlöse, die durch die Nutzung von Amazon Web Services generiert wurden und das auch nur ab einem bestimmten Nutzungsvolumen. Dies hat sich mit der Einführung von „In-Skill Purchasing“ zumindest in den USA geändert: In-Skill Purchasing ist vergleichbar mit In-App Käufen und ist die erste, vom Anbieter unterstützte Art der Monetarisierung von Voice Interfaces. An jedem Kauf und mit jedem Abo verdient Amazon 30%. Das entspricht in etwa dem, was auch Apple und Co. im App-Markt verlangen. Dieses Modell wird es auch bald in Deutschland geben, wobei Amazon dazu noch keine genaueren Informationen veröffentlicht hat.

Google fokussiert sich auf Künstliche Intelligenz

Google spannt in seiner Entwicklung von Voice Interfaces ein weitaus größeres Feld auf. So wurde auf der diesjährigen Konferenz „Google I/O“ das System Duplex vorgestellt, das Funktionserweiterungen für den Google Assistant bietet. Es nutzt Künstliche Intelligenz (KI), ist in der Lage, Unterhaltungen zu verstehen und spricht mit einer täuschend echt klingenden menschlichen Stimme.

Doch was genau bedeutet das? Angenommen, mein bevorzugter Sushi-Lieferant hat keinen Online-Bestellservice, muss ich dann via Telefon bestellen? Solche telefonischen Bestellungen laufen alle nach demselben Prinzip: Ich sage, wo ich wohne und welches Gericht ich bestellen möchte. Als Antwort bekomme ich, wieviel ich zu zahlen habe und wann das Essen bei mir ankommt. Genau für solche Situationen hat Google Duplex geschaffen. Auf Anweisung kann es selbstständig Anrufe tätigen und beispielsweise Termine für uns vereinbaren. Dabei ist es kaum zu glauben, dass es sich nicht um einen echten Anrufer handelt. Neben dem natürlichen Sprachfluss spielen hier zusätzlich die Betonung und die Pausen eine besondere Rolle. Dabei kommt Duplex zugute, dass Google sich allgemein bereits tiefgehend mit natürlicher Sprache beschäftigt.

Bei der künstlichen Erzeugung der menschlichen Sprechstimme, der sogenannten Sprachsynthese, entwickelte Google Tacotron 2. Wie bisher, trainiert und erzeugt auch dieses neue System mit dem schon etablierten neuronalen Netz Deepmind WaveNet die natürliche Sprache. Neu ist jedoch, dass nun auch Daten zu Tonhöhen in das neuronale Netz einfließen. Wie genau das funktioniert und wie dieses System arbeitet, wird in diesem YouTube Video von CodeEmporium anschaulich dargestellt. Auf Cloud-Text-To-Speech kann man dieses System mit verschiedenen Sprachen testen. Wichtig ist lediglich, dass man hier den Voice-Typ „WaveNet“ angibt. Wer dieses System nutzen möchte, sollte allerdings bedenken, dass es viermal so teuer ist wiedas herkömmliche Cloud-Text-To-Speech.

Samsung und Apple lassen sich noch nicht in die Karten schauen

Warum Samsung Viv Labs übernommen hat und wie sich dieses System weiterentwickelt, ist leider völlig unklar. Ob Viv Samsungs bisherige Lösung Bixby ablöst oder die Viv- Technologie in Bixby integriert wird, bleibt abzuwarten. Klar ist jedoch, dass Viv auf Grund der gesamten Historie eine stark verbesserte Siri zu sein scheint und großes Potential hat (vgl. Voice Interfaces – Das Hier und Jetzt).

Siris Entwicklung scheint stattdessen eher zu stagnieren. Die einzigen großen Neuerungen im vergangenen Jahr waren Sprachmakros. Diese ermöglichen es, kleine Makros durch einen zuvor hinterlegten Sprachbefehl zu aktivieren. Es könnte sich hier aber auch um die sprichwörtliche Ruhe vor dem Sturm handeln. Denn Apple‘s HomePod wäre als mögliche Konkurrenz für Alexa prädestiniert. Dafür müsste Apple den Entwicklern allerdings die Schnittstelle zu Siri öffnen und die Möglichkeit schaffen, Software für den HomePod zu schreiben.

Wo geht die Reise hin?

Neben den Voice bzw. den Conversational Interfaces ist momentan auch Machine Learning in aller Munde. Die Fortschritte, die in den letzten Jahren bei den Voice Interfaces gemacht wurden, wären ohne Machine Learning nicht machbar gewesen. Ob beim Transkribieren, bei der Analyse von Texten oder bei der Sprachsynthese: Überall werden neuronale Netze eingesetzt und sorgen für immer verblüffendere Ergebnisse.

So könnte ein Voice Interface, das auf eine Stimme trainiert wurde, mithilfe von neuronalen Netzen und dem Wissen zu all ihren Eigenheiten auch im totalen Geräuschchaos die Stimme einer bestimmten Person sauber erkennen und verarbeiten. Wer schon mal versucht hat, während eines laufenden Films seine Alexa Smart-Home-Steuerung zu benutzen, versteht, wie wichtig dieser Schritt wäre. Schließlich möchte man sein Voice Interface nicht anschreien, um den Geräuschpegel im Raum zu übertreffen, sondern in normaler Lautstärke kommunizieren. Wenn darüber hinaus einzelne Stimmen separiert werden könnten, würde das die Einsatzgebiete von Voice Interfaces deutlich erweitern.

Neben der optimierten Sprachverarbeitung fällt auf, dass bisher alle Smart Assistants völlig gesichtslos sind. Das könnte sich bald ändern; So wurde in China gerade ein voll digitaler Nachrichtensprecher vorgestellt. Für Anbieter eines Produktes birgt das großes Potenzial. Auch wenn der Film „Her“ eine sehr persönliche Beziehung zu einer Stimme thematisiert, baut man zu etwas personenähnlichem sicherlich eine noch engere Bindung auf –man denke dabei an den Erfolg von Influencer Marketing. Mit der VR- und AR-Technologie könnte uns solch ein Assistent in menschlicher Form überall Gesellschaft leisten.

Wo versteckt sich das größte Potenzial?

Die Leistungsfähigkeit der Rechner: Bezüglich des Sicherheitsaspekts, dass jegliche Datenverarbeitung eines Voice Interfaces in der Cloud stattfindet, ist zu sagen, dass es zukünftig mehr Lösungen geben wird, bei denen die Verarbeitung lokal geschieht. Aktuell werden fast alle Daten in der Cloud des Anbieters verarbeitet und gespeichert. Das liegt vor allem daran, dass viele Lösungen noch an der notwendigen Leistungsfähigkeit der eigenen Rechner scheitern. Die Rechenleistung wird jedoch permanent höher und billiger. Daher ist es nur eine Frage der Zeit, bis es einwandfrei funktionierende Voice Interfaces auch auf einem Smartphone geben wird, das gerade nicht online ist.

Das Verständnis von Sprache: Viele Firmen beschäftigen sich zudem mit dem Verständnis von Sprache auf inhaltlicher Ebene. Wenn es um mehr als einen einzelnen Satz geht, zum Beispiel um den Inhalt einer gesamten Geschichte, sind heutige Voice Interfaces allesamt nutzlos. Bei einem Voice Interface wie wir es kennen, geht es in erster Linie nicht um Wissensinhalte, sondern um Willenserklärungen. Das Interface soll verstehen, was der Benutzer von ihm will, um dann darauf zu reagieren. Bei der Extrahierung von Wissen aus Texten geht es aber darum Wissen zu erfassen und in geordneten Strukturen zu speichern.

Nehmen wir beispielsweise einen Service-Mitarbeiter einer Hotline, der mit einem fünfminütigen Beschwerdedialog eines Kunden umgehen muss. Um ihn bei seiner Arbeit zu unterstützen, gibt es aktuell schon einige Ansätze, Gespräche automatisch zu verschlagworten und dem Mitarbeiter als Hilfestellung passende Themen auf einem Screen anzuzeigen. Noch sinnvoller wäre es jedoch, wenn das Interface aus einem Gespräch die Quintessenz extrahieren könnte, um dem Mitarbeiter die wichtigsten Stichpunkte auf einem Screen anzuzeigen, auf die er dann im Gespräch eingehen kann. Dafür muss so ein System aber inhaltlich verstehen, was der Nutzer sagt und gegebenenfalls auch bewerten oder priorisieren können. Weiterführend könnte ein Conversational Interface auch Informationen aus E-Mails oder sogar Chatbots extrahieren und Service-Mitarbeitern schnell alle relevanten Fakten zur Verfügung stellen.

Im Bereich Wissensrepräsentation und Natural Language Understanding wird weiterhin viel geforscht. Ebenso werden immer mehr selbstlernende Technologien zur Textanalyse wie zum Beispiel das „Word Embedding“ entwickelt. Auch hier ist es also nur eine Frage der Zeit, bis es Systeme geben wird, die sehr komplexe Inhalte verstehen.

Die Erkennung und das Verbalisieren von Bildinhalten: Wovon die meisten Menschen eher nur am Rande etwas mitbekommen, ist die sogenannte „Accessibility“ oder auch Barrierefreiheit in der digitalen Welt. So hat Siri in der Vergangenheit einen großen und sehr wichtigen Beitrag geleistet, damit auch Menschen mit Sehbehinderungen komfortabel mit einem Smartphone umgehen können. Gerade für sie ist die Nutzung von Voice Interfaces ganz besonders relevant.

Darüber hinaus gibt es im Bereich Machine Learning mittlerweile viele Forschungsarbeiten, die sich mit der Erkennung von Bildinhalten beschäftigen. Dabei geht es längst nicht mehr darum einen Hund oder eine Katze zu unterscheiden, sondern um Bildkonstruktionen mit vielen Komponenten. Man stelle sich ein System vor, das erkennt und beschreibt, wo sich beispielsweise eine Straße befindet – was davor ist, was dahinter – oder wahrnimmt, ob eine Ampel gerade rot ist beziehungsweise was auf Straßenschildern steht. Die Kombination dieser Technologien hätte einen echten Mehrwert. Ein System für Sehbehinderte, das beschreibt, was gerade vor ihnen passiert, das warnt, wenn Hindernisse in Sicht kommen und das sicher navigiert.

Fazit

Voice Interfaces sind auf einem guten Weg, jedoch fühlt es sich im Alltag noch nicht wirklich natürlich an, solch ein Interface zu benutzen. Dafür schwächelt mitunter das Sprachverständnis noch zu stark. An diesen Problemen wird allerdings gearbeitet und es ist abzusehen, dass wir in Zukunft fast beiläufig mit unserem digitalen Assistenten plaudern, ihm vielleicht sogar von unseren Hochs und Tiefs erzählen und verständnisvolle Antworten oder sogar Anregungen von ihm bekommen werden. Was dies für Auswirkungen auf unser soziales Leben haben wird, wird sich zeigen. Bisher hat jede große Technologie Vor- und Nachteile mit sich gebracht, wir müssen sie nur gewissenhaft einsetzen.

Dieser Beitrag erschien zuerst bei ADZINE und ist der letzte Beitrag einer vierteiligen Serie zum Thema Voice Interfaces:

Das neue Echo Show ist ein Hardware gewordenes Learning von Amazon, das auf die Probleme und Hürden aller Voice Interfaces eingeht: Die Informationsvermittlung. Echo Show kompensiert nämlich die Limitierung der Informationsvermittlung eines Voice Interfaces mit einem klassischen Display. So wird aus einem No-Interface Device ein neuer Full Service Touchpoint im digitalen Ökosystem, das für uns noch ungeahnte Möglichkeiten mit sich bringt. Wie wir diese neue Komponente, den Screen mit Delegation über den Amazon Endpoint ansprechen können, sehen wir uns im Folgenden genauer an. Reverse Engineering ist hier das Stichwort.

Der Look von Echo Show ist nicht sonderlich aufregend und erinnert in seiner Art an SciFi-Filmen aus den 70ern. Vorne eine schräge Fläche, im Mittelpunkt ein Display, darüber die Kamera, darunter das Lautsprechergitter. Trotzdem wirkt das Gerät im Wohnzimmer nicht deplatziert. Unser Echo Show mussten wir über eine amerikanische Adresse beziehen, da es in Deutschland noch nicht erhältlich ist. Ein Erscheinungsdatum für den deutschen Markt hat Amazon bisher noch nicht genannt.

Aktuell gibt es noch keinen Leitfaden für Developer

Ähnlich spartanisch sieht es mit den Informationen für Developer und die Entwicklung von Skills auf dem Echo Show aus. Der Developer-Bereich Amazons liefert zwar Auskunft darüber, wie die JSON-Kommunikation zwischen Skill und Endpoint aussehen muss, damit man die neue Funktionalität ansprechen kann. Parameter werden beschrieben, Templates gezeigt und Callbacks erklärt. Aber eben alles nur auf Basis der Kommunikationsprotokolle und nicht als Leitfaden. Sind wir traditioneller Nutzer des Alexa Skill Kit-Frameworks für Java gucken wir also erstmal in die Röhre. Ein Vermerk in der neusten Framework-Version im Github verrät uns zwar, dass die Version 1.4 für Echo Show vorbereitet wurde, allerdings gibt es dazu weder Dokumentationen noch Code-Beispiele.

Welche Darstellungsmöglichkeiten bietet Echo Show?

Nun haben wir hier aber ein Echo Show stehen und möchten dafür auch einen Skill entwickeln. Also Augen zu und hinein in den Framework-Code, der beim letzten Release commited wurde. Zuerst müssen wir uns fragen, was wir eigentlich erwarten. Echo Show kann auf vielfältige Weise Informationen abbilden. Es muss also eine Möglichkeit geben, Informationen zu layouten und diese dann irgendwie als Response an den Alexa-Endpoint zu übermitteln. Schauen wir uns das Response-Objekt an, sehen wir, dass sich hier zum letzten Release so gut wie nichts geändert hat. Die einzige Stelle, an der wir ansatzweise dynamische Daten übergeben könnten, sind die sogenannten Direktiven. Suchen wir ein wenig im Framework, finden wir die RenderTemplateDirective und genau diesen kann man ein Template übergeben.

Templates sind uns bereits auf den Development-Seiten Amazons begegnet (https://developer.amazon.com). Zurzeit gibt es insgesamt sechs feste Templates: Zwei zur Darstellung von Content Lists und vier zur Darstellung von Single Content. Die beiden Templates für Content Lists unterscheiden sich darin, dass das eine für horizontale, das andere für vertikale Listen gedacht ist. Die vier Templates für Single Content unterschieden sich in ihren Darstellungsmöglichkeiten wie folgt (siehe Abbilung 1):

  • BodyTemplate1
  • Title (optional)
  • Skill icon (provided in developer portal)
  • Rich or Plain text
  • Background image (optional)
  • BodyTemplate2
  • Title (optional)
  • Skill icon (provided by developer portal)
  • Image (optional – can be a rectangle or square)
  • Rich or Plain text
  • Background image (optional)
  • BodyTemplate3
  • Title (optional)
  • Skill icon
  • Image (optional – can be a rectangle or square)
  • Rich or Plain text
  • Background image (optional)
  • BodyTemplate4
  • No title
  • Skill icon
  • One full-screen image (1024 x 600 for background)
  • Rich or Plain text

Abbildung 1: Unterschiede der Templates für Single Content

Wollen wir also Informationen aufs Display des Amazon Show bekommen, müssen wir uns erst einmal darüber im Klaren sein, welches Template zur gewünschten Information passt. Ein Creative Conceptioner muss hier genau planen, damit die User Experience erwartungskonform und vor allem intuitv gestaltet ist. Kommt der User mit der dargestellten Information nicht zurecht, nützt die sauberste Programmierung nichts. Um erste Hnweise und Feedback zu erhalten, eignen sich qualitative Nutzerbefragungen besonders gut.

Wie erstelle ich Bilder- und Textinhalte?

Technisch gesehen instanziieren wir einfach eines der Templates, das wir unter com.amazon.speech.speechlet.interfaces.display.template finden. Für entsprechende Properties wie Title, Icon, Background usw. gibt es jeweils Getter und Setter. Für Bilder gibt es eine Image– und eine ImageInstance-Klasse. Bilder werden in Form von Url´s zum entsprechenden Imagesource übergeben. Text-Content kann als Plain- oder Richtext übergeben werden. Bei letzterem gibt es die Möglichkeiten einige Markup-Tags für die Formatierung zu benutzen, die wir auch von HTML kennen. So gibt es <br/>,<b>,<i>,<u> und <font size=“n“>. Hier sind ebenfalls unterschiedliche Bereiche für Content innerhalb des Text Contents zu finden. Haben wir nun Bilder und Texte definiert und in die Properties des entsprechenden Templates eingetragen, ist der nächste Schritt dieses Template an die RenderTemplateDirective-Instanz zu übergeben. Unsere neue Direktive tragen wir nur noch in die Liste von Direktiven ein und übergeben diese dem Response-Objekt. Wenn wir den Skill jetzt aufrufen, ist der neu erstellte Content zu sehen.

Wie definiere ich Content für den Touch Screen?

Das Display des Echo Shows ist ein 7-Zoll Touchdisplay. So ist es auch möglich, Elemente einer Content List oder Single Content auszuwählen. Dazu hat jedes Single Content Template und jedes Element eines List Templates einen sogenannten Token. Aus der Sicht des Frameworks ist dieser Token eine Property vom Typ „String“ und dient beim Callback zur Identifikation des gedrückten Elements. Schauen wir uns an, wie wir bisher Skills entwickelt haben, stellen wir fest, dass wir den Callback nur zu einem erkannten Intent bekommen, also nur, wenn der Nutzer etwas gesagt hat. Das ist zwar für das Voice Interface ausreichend, nicht aber für das Display. Das SpeechletV2- Interface unterstützt jedoch ausschließlich Voice Callbacks.

Schauen wir uns aber den SpeechletRequestDispatcher im Framework genauer an, sehen wir, dass der Dispatcher auf ganz unterschiedliche Requests reagieren kann. So gibt es AudioPlayerRequest, PlaybackController, SystemRequests, aber auch DisplayRequests. Wird ein DisplayRequest erkannt, versucht der Dispatcher vom Interface Display die Methode onElementSelected aufzurufen. Was wir also tun müssen, um dieses Callback zu bekommen, ist, nicht nur das SpeechletV2 in unserer Speechlet-Klasse zu implementieren, sondern auch das Display-Interface. Haben wir dies getan, können wir mit folgender Methode überschreiben:

 

public SpeechletResponseonElementSelected(SpeechletRequestEnvelope<ElementSelectedRequest> requestEnvelope)

Abbildung 2: Überschreibung des Callbacks

Diese Methode des Callbacks wird nun immer dann aufgerufen, wenn auf dem Display ein Element selektiert wird. Wird der Callback aufgerufen, können wir uns aus dem requestEnvelope über requestEnvelope.getRequest().getToken() den Token, also den Bezeichner des Elements, welches gedrückt wurde, zurückgeben lassen und entsprechend reagieren. Bei der Wahl des Bezeichners sind wir völlig frei.

Die Response auf ein ElementSelectedRequest ist eine normale SpeechletResponse. Wir können also sowohl Sprache als auch ein weiteres Display Template zurückgeben. Daher ist es auch möglich die von Mobile Devices gängigen Master/Detail-Views zu implementieren. Genau für diese Mechanismen ist der Backbutton gedacht, der standardmäßig für jedes Template aktiviert werden kann. Die Implementierung der Funktionalität bei einem „go back“ liegt allerdings beim Entwickler.

Fazit

Zurzeit ist es für Java-Entwickler eher schwierig, sich dem Thema Echo Show zu nähren. Google und Stack Overflow geben weder Links zu Beispielen noch Dokumentationen. Außer den wenigen Informationen direkt von Amazon ist bisher nicht viel zu finden. Will man seine Zeit nicht mit der Analyse des Frameworks verbringen, ist man gezwungen zu warten, bis die Entwicklerszene oder Amazon weitere Informationen liefern. Hat sich einem die Erweiterung des Frameworks jedoch erschlossen, macht die Entwicklung von Skills für Echo Show einen stimmigen und durchdachten Eindruck.

Negativ aufgefallen sind eher Kleinigkeiten. So funktioniert das Preloading von Bildern in Content Lists eher schlecht als recht. Es ist nicht sehr schön anzusehen, dass Bilder von Listenelementen erst peu à peu erscheinen. Hier muss man bei der Konzeption von Skills zukünftig also auch auf die Zugriffszeit von Content Servern achten oder darauf hoffen, dass Amazon entsprechende Mechanismen verbessert. Generell bleibt abzuwarten, was sich Amazon an Erweiterungen einfallen lassen wird.

Was Entwickler zukünftig aus der Kombination von Voice Interfaces und Touch Screens herausholen werden ist sehr interessant. Eine enge Zusammenarbeit zwischen Konzeption, Kreation und Entwicklung scheint hier unerlässlich zu sein. Insgesamt wird Amazon Echo Show sicherlich wieder große Veränderungen in den Markt bringen.

Der Artikel wurde auf Entwickler.de veröffentlicht.