© Andrey Suslov/Shutterstock.com
Teil 1: Einführung in Alexa Skills

Alexa und PHP - ein Dream-Team?


Digitale Sprachassistenten sind derzeit in aller Munde, und viele Anbieter drängen gerade auf den Markt. Amazon mischt dabei mit Echo und Alexa ganz vorne mit. Doch wir stehen erst am Anfang der Entwicklung, denn die Fähigkeiten von Alexa können durch sogenannte Skills erweitert werden. Wie das geht und wie Sie auch PHP für die Entwicklung von Alexa Skills für Amazon Echo und Echo Dot einsetzen können, erfahren Sie in dieser zweiteiligen Artikelserie.

Der Markt für digitale Sprachassistenten ist stark in Bewegung. Neben Amazon mit Alexa sind auch Google mit Google Home, Apple mit Siri oder Microsoft mit Cortana am Ball. Und auch Facebook hat für Ende 2017 ein eigenes Endgerät angekündigt. Auf dem deutschen Markt hat sich derzeit (Ende Juli 2017) nur Amazon etabliert. Der Start von Google Home war für Anfang August 2017 geplant. Siri auf dem iPhone und Cortana auf Windows 8 und 10 sind zwar verfügbar, aber eben in Deutschland noch auf keinem digitalen Sprachassistenten, den man sich ins Wohnzimmer stellen kann. Deshalb liegt der Fokus dieses Artikels auf Amazons Alexa. Wenn im Folgenden vom Amazon Echo gesprochen wird, sind auch der Echo Dot und der Echo Show gemeint.

Eine kurze Einführung in Alexa

Ein digitaler Sprachassistent wie der Amazon Echo kann Ihnen sowohl im Haus als auch im Büro einige Arbeit abnehmen. Sie können ihn nach dem Wetter oder den neuesten Nachrichten fragen, Blumen oder eine Pizza bestellen und sogar Spiele spielen. Wenn Sie mit beiden Armen tief im Kuchenteig stecken, können Sie Alexa auch fragen, welche Zutat die nächste ist. Sowohl die Eingabe durch Sie als Nutzer als auch die Ausgabe erfolgt über die Sprache. Mit jeder Frage und mit jeder Aufgabe, die Sie stellen, verbessern sich zukünftige Antworten. Die Idee dahinter ist, dass Alexa mit der Zeit immer intelligenter wird und quasi bei intensiver Nutzung stetig dazu lernt.

Die Fähigkeiten von Alexa lassen sich durch die Alexa Skills erweitern. Amazon stellt dafür mit dem Alexa Skills Shop eine entsprechende Plattform bereit [1]. Dies funktioniert ähnlich wie mit den Apps auf dem Smartphone oder den klassischen Programmen auf Ihrem Notebook. Amazon unterstützt die Entwickler durch ausführliche Dokumentation, Tutorials, Codebeispiele und lokale Events. Das Alexa Skills Kit [2] ist quasi das Frontend des Skills, in dem dieser definiert und konfiguriert wird. Das Backend und damit der eigentliche Skill-Code kann auf einer Lambda Function auf den Amazon Web Services [3] (kurz AWS) oder einem eigenen Server als HTTPS-Endpunkt betrieben werden. Die Lambda Functions auf AWS bieten für die Programmiersprachen Java, C#, Node.js und Python entsprechende Runtimes, die die Entwicklung der Skills mit diesen Programmiersprachen stark vereinfachen. Auf einem eigenen HTTPS-Endpunkt können Sie jedoch mit der Programmiersprache Ihrer Wahl arbeiten – somit auch mit PHP.

Generell verläuft die Verarbeitung einer Abfrage über Amazon Echo in mehreren Schritten:

  • Der Nutzer sagt zu Amazon Echo das Schlüsselwort „Alexa“, gefolgt einem Sprachbefehl.

  • Diese Aufnahme wird von Amazon Echo an die Amazon-Alexa-Service-Plattform gesendet.

  • Die Spracherkennung der Amazon-Alexa-Service-Plattform verarbeitet die Anfrage und versucht, die Intention des Nutzers zu erkennen.

  • Die Amazon-Alexa-Service-Plattform erstellt daraus einen JSON Request, der dann zum eigentlichen Skill-Code gesendet wird. Dies kann eine AWS-Lambda-Funktion oder ein anderer HTTPS-Endpunkt sein.

  • Der Skill-Code verarbeitet die Anfrage und generiert eine JSON Response, die an die Alexa-Service-Plattform zurückgeschickt wird.

  • Die Amazon-Alexa-Service-Plattform wandelt den Text der JSON Response wieder in Sprache um und sendet sie an Amazon Echo.

  • Außerdem kann an die begleitende Smartphone-App noch eine Response Card mit weiteren Infos gesendet werden, die von der App dargestellt wird.

  • Der Amazon Echo spielt die übermittelte Antwort ab, sodass der Nutzer sie hören kann.

Es liegt auf der Hand, dass diese einzelnen Schritte sehr schnell vonstattengehen müssen. Eine schnelle Internetleitung ist dabei genauso wichtig wie ein schneller Server, auf dem der Skill-Code läuft. Die Performance Ihres Skills ist dabei essenziell.

Planungen für Ihren ersten Skill

Bevor Sie in die Entwicklung Ihres ersten Alexa Skill einsteigen können, sollten Sie sich Gedanken machen, was Sie genau entwickeln wollen. Der wichtigste Tipp hierbei ist, dass Sie Ihren ersten Skill immer möglichst einfach halten sollten. Je komplexer Sie zu Beginn denken, desto größer die Gefahr, dass Sie sich verzetteln und elementare Fehler machen. Deshalb hier ein einfacher Vorschlag, den wir in diesem Artikel zusammen umsetzen können.

Neben der Idee für den Skill brauchen Sie einen Namen sowie einen Aufrufnamen (Invocation Name). Name und Aufrufname können identisch sein, und es empfiehlt sich auch, sie identisch zu halten, damit die Nutzer ihn sich leichter merken können. Beim Aufrufnamen gibt es aber einige Einschränkungen. Er muss in Deutschland aus mindestens zwei Worten bestehen – es sei denn, es handelt sich um einen Markennamen und Sie sind Inhaber dieser Marke. Dass der Aufrufname nicht gegen geltendes Recht verstoßen darf, versteht sich von selbst. Weitere Details finden Sie in der Dokumentation [4]. Um den Skill zu starten, muss Alexa dieser Aufrufname zusammen mit dem Aktivierungswort genannt werden. Dies könnte so aussehen, wobei „Alexa“ das Aktivierungswort und „mein Skill“ der Aufrufname ist: Alexa, starte mein Skill.

Der Skill „Mein Zoo“ kennt sich mit Tieren aus. Sie können Alexa nach einem Tier im Zoo fragen und Alexa antwortet dann mit einem zufällig ausgewählten Tier aus einer vorliegenden Liste. Das klingt trivial, aber bei der Implementierung lernen Sie die wichtigsten Grundlagen der Alexa-Programmierung kennen. Später können Sie den Skill ausbauen, indem Sie gezielt nach einem Vogel oder einem Säugetier fragen. Für Ihren ersten Skill „Mein Zoo“ nehmen Sie als Aufrufn...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang