Alexa Skills programmieren, so gehts!
Oder: Wie kann ich einen eigenen Alexa-Skill entwickeln?
Wir alle haben den Namen schon mehrfach gehört: Alexa. Damit ist der digitale Sprachassistent von Amazon gemeint. Jeder hat die Möglichkeit den smarten Speaker in bestimmte Hardware zu integrieren. Das geschieht über den Alexa Voice Service (AVS). Du hast Alexa zu Hause und willst dich nun als Entwickler versuchen? Dann solltest du zunächst die Möglichkeiten kennenlernen, wie man an das Programm herangeht. Außerdem solltest du dich in der Entwicklerumgebung zurechtfinden können und das “Alexa Skills Kit” verstehen. Dabei wollen wir dir mit nachfolgendem Ratgeber behilflich sein.
Digitale Sprachassistenten werden immer wichtiger, bis 2025 rechnet man mit über 200 Millionen zusätzlichen Geräten jährlich. Man geht davon aus, dass die klassische “Google-Suche”, wie wir sie kennen, in der Zukunft durch Voice-Search und digitale Sprachassistenten ersetzt wird.
Insgesamt sind die Möglichkeiten enorm und es gibt eine Vielzahl digitaler Assistenten, die im Grunde ähnlich funktionieren. Wir beschäftigen uns hier mit Amazon-Alexa, da die Plattform am weitesten verbreitet ist und gute Werkzeuge für Entwickler liefert.
Amazon betreibt mit Alexa einen cloudbasierten Sprachservice, welcher in Kombination mit den Lautsprechern funktioniert, die das Unternehmen selbst vertreibt. Dazu gehören:
Amazon Echo
Amazon Echo Dot
Amazon Echo Show
Amazon Echo Spot
Auch Dritthersteller haben oftmals eine Anbindung an den Alexa-Sprachassitenten integriert.
Was sind Alexa Skills?
Selbst ohne Erweiterungen hat Alexa bereits einiges an Funktionen im Angebot. Da stellt sich natürlich die Frage, ob es mit dem smarten Lautsprecher möglich ist, weitere Features freizuschalten oder externe Dienste anzubinden.
Ja, das ist es: mit Skills. Dabei handelt es sich um Mini-Apps, welche dafür sorgen, dass der Funktionsumfang von Alexa erweitert wird. Grundsätzlich lassen sich die Skills mit klassischen Apps vergleichen. Nur mit dem Unterschied, dass sie bei Echo eben Skills heißen. Du bekommst die Skills im Skill Store. Dieser Store befindet sich auf der Amazon-Webseite. Dort kannst du die Skills herunterladen und aktivieren. Um dir einen besseren Überblick verschaffen zu können, stehen Kurzbeschreibungen und Bewertungen zur Verfügung, anhand derer du dich orientieren kannst.
Alexa-Skills sind kleine Programme (“Apps”), die den Funktionsumfang von Alexa erweitern, indem sie zusätzliche Funktionen integrieren, oder Drittdienste anbinden.
Nach dem Download sind die Skills sofort einsatzbereit. Sollten dazu bestimmte Einstellungen vorgenommen werden müssen, kannst du diese in der Alexa App umsetzen. Sobald du einen Skill aktiviert hast, kannst du diesen mit einem Signalwort aufrufen. Im Store sind mehr als 50.000 Skills erhältlich und es werden immer mehr. Damit du bei dieser riesigen Auswahl die passenden Features findest, empfiehlt es sich zu stöbern und auszuprobieren. Vereinfacht ausgedrückt: Es handelt sich um Anwendungen von Drittanbietern. Diese stellen ihre Services über die Sprachassistentin zur Verfügung. Vom Pupsgenerator bis zum Smart Home Skill ist alles dabei.
Ok, jetzt hist du interessiert und möchtest selbst mal einen kleinen Skill erstellen? Kein Problem!
Um einen Skill für Alexa entwickeln zu können, ist es obligatorisch einen Developer-Account bei Amazon zu haben, sowie einen Account für die Amazon Web Services (AWS).
Das Programmieren von Alexa Skills in 7 einfachen Schritten erklärt
- Neuen Skill in der Developer-Konsole anlegen
- Interaktionsmodell für die Sprachschnittstelle konfigurieren
- Eine AWS-Lambda-Funktion erstellen
- Die AWS-Lambda-Funktion mit der Developer-Konsole verknüpfen
- Testphase
- Validierung
- Veröffentlichung
OK, das klingt jetzt schon etwas kompliziert, oder?
Aber das ist es nicht:
Welche Werkzeuge sind notwendig?
Bevor es ans Programmieren geht, solltest du wissen, dass Amazon mehrere Vorlagen zur Verfügung stellt. Du kannst dir den Programmieraufwand theoretisch sparen. Je nachdem, welche Skill-Vorlage du verwendest. Wenn du also auf die Vorarbeit von Amazon baust, hast du die Möglichkeit deinen eigenen Skill in kürzester Zeit zu entwickeln. Die Vorlagen werden sowohl für die Smart Home Skills, als auch für die Flash Briefing Skills angeboten. Diese werden mit Hilfe eines Application Programming Interfaces (API) erstellt. Die APIs existieren dafür bereits und erlauben dem Nutzer weniger Kontrolle über den Skill. Allerdings wird die Entwicklung damit auch deutlich vereinfacht.
Smart Home Skill = Ein Skill, der bidirektional mit einem Smart-Home-Gerät kommuniziert. Die Kommunikation findet über eine AWS-Lambda-Funktion statt.
Flash Briefing Skill = Ein Skill, der unidirektional einen RSS-Feed oder ein JSON-File einliest und vorliest.
Du sprichst Java-Script? Perfekt!
Es ist nicht zwingend erforderlich, ein professioneller Programmierer zu sein. Denn du kannst ebenso als Privatperson loslegen und einen eigenen Alexa Skill programmieren. Dafür steht das Alexa Skill Kit bereit, welches du nutzen kannst, um deine eigene Anwendung zu schreiben. Eine Voraussetzung gibt es allerdings: Um das Tool erfolgreich nutzen zu können, solltest du dir erste Kenntnisse mit der Programmiersprache Java-Script angeeignet haben. Ist das zutreffend, steht deinem eigenen Alexa Skill nichts mehr im Weg.
Prinzipiell kannst du in jeder Programmier-/Skriptsprache entwickeln, die sich für Web-Services eignet, wie z.B. JavaScript, Java, Go, Python, C#.
Und so gehst du vor
Im ersten Schritt richtest du dir einen persönlichen Account für die Developer Konsole von Amazon ein. Das ist Pflicht. Sowohl für Unternehmen, als auch für Privatpersonen. Ohne diesen Account kannst du keinen Skill programmieren. Parallel dazu benötigst du einen AWS Account. Dabei handelt es sich um die Abkürzung für “Amazon Web Service”. Sie beschreibt ein Entwicklerzentrum, welches dir die erforderlichen Tools und Beispielcodes zur Verfügung stellt. Du loggst dich zunächst in deinen Developer Account ein und navigierst zu Alexa. Von dort aus geht es weiter zu “Alexa Skills”, über “Get started” zu “Add a new Skill”. Jetzt bekommst du eine Übersicht angezeigt, in der du die Konfiguration für deinen Skill vornimmst. Du kannst hier zum Beispiel festlegen, welchen Namen dein Skill bekommen soll. Außerdem gibst du hier an, ob deine Anwendung Geldinvestitionen erfordert, in welches Genre sie gehört und so weiter. Im nächsten Schritt klickst du auf die Schaltfläche “Interaction Mode”. Dabei handelt es sich um den eigentlichen Editor, welcher für die Eingabe deines Quelltextes gedacht ist. Mit der Schaltfläche “Launch” veröffentlichst du deinen Skill. Und jetzt heißt es: Werbetrommel rühren. Schließlich willst du deinen Skill ja auch bekannt machen.
Die erforderlichen Accounts kannst du dir einfach (wenn nicht bereits vorhanden) erstellen:
Was sollte ich beim Programmieren beachten?
Wenn du Programmierer/in bist, ist der eigentliche Aufwand gar nicht so groß. Dennoch ist es wichtig, vor Beginn einiges zu bedenken. Stell dir zunächst die Frage, was dein Skill überhaupt können soll. Legst du Wert darauf, seinen Nutzern Spaß zu bereiten oder soll er auf bestimmte Weise weiterhelfen? Das Aktivierungswort wird im Idealfall griffig ausgewählt. Es sollte keinesfalls zu schwierig sein. Außerdem solltest du nützliche Schlüsselbegriffe festlegen. Überlege dir eine geeignete Satzstellung und achte auf deine Wortwahl. Für ein positives Nutzererlebnis ist es wichtig, dass dein Skill flexibel auf Anfragen reagiert. Du solltest in deinen Skill auch eine Übersichtsfunktion integrieren, welche sich mit dem Sprachbefehl “Hilfe” abrufen lässt. Auf diese Weise finden sich die Nutzer deines Skills auch bei Fragen zurecht. Am besten schenkst du den Beispielcodes Beachtung, da du nur dazu lernen kannst.
Überlegungen VOR der Skillerstellung:
- WAS soll der Skill können? Welches Problem soll er lösen?
- Wähle ein griffiges Aktivierungswort
Tipps während der Skillerstellung:
- Gib deinem Skill möglichst viele Synonyme und Beispiele für Fragevarianten, so wird er smarter
- Integriere eine Übersicht/Hilfe
- Nutze die Amazon-Vorlagen zur Skillerstellung!
Alexa-Skills: Der Aufbau
Ein Skill setzt sich aus dem Skill Service und dem Skill Interface zusammen. Vereinfacht ausgedrückt: Die Schnittstelle ist das Frontend, welches auch als Voice User Interface bezeichnet und mit VUI abgekürzt wird. Über das Sprachinteraktionsmodell wird die Schnittstelle konfiguriert. Der Skill Service ist das Backend. Dabei handelt es sich um einen Ort, wo die Logik ausgeführt wird. In der Praxis geschieht das meist in AWS Lambda.
Skill Service.
AWS Lambda.
Skill Interface.
Schnittstelle/Voice User Interface (VUI).
Sprachinteraktionsmodell.
Das Alexa-Skills-Kit
Tipp: Um direkt durch zu starten und effizient einen Alexa-Skill zu entwickeln, empfiehlt sich die Verwendung des eigens dafür von Amazon zur Verfügung gestellten Alexa-Skill-Kits.
Flash Briefing Skills
Die Flash Briefing Skills nutzen einen RSS- oder einen JSON-Feed. Diese Feeds enthalten die neuen Elemente, welche einen Teil des Flash Briefings darstellen und vorgelesen werden. Diese Skills lassen sich relativ einfach entwickeln und sind bestens für Blogger und Zeitungen geeignet. Der Feed ist in diesem Fall der Skill Service, nicht die Lambda-Funktion. Bei dieser Skill-Art erwarten dich allerdings nicht sehr viele Zusatzfunktionen.
Smart Home Skills
Die Smart Home Skills weisen dagegen eine Benutzerschnittstelle, die oben erwähnte API auf. Diese setzt eine AWS Lambda-Funktion voraus. Diese fungiert als Adapter, um das Endgerät zu integrieren. Dies hat den Vorteil, dass kein eigenes VUI programmiert werden muss, da man alternativ auf Amazon zurückgreifen kann. Der Smart Home Befehl lässt sich dann anhand dieser API richtig interpretieren. Auf diese Weise hat der Smart Home Anbieter die Möglichkeit, sich auf seine eigentliche Arbeit zu konzentrieren und sich mit den Geräten zu befassen.
Alexa Video Skills
Die Video Skills wurden zur Verfügung gestellt, um den Nutzern die Möglichkeit zu bieten, Filme und Videos zu finden und diese anzuschauen. Aber ohne, dass dazu eine bestimmte Fähigkeit aufgerufen werden muss. Somit könntest du als Nutzer beispielsweise folgenden Befehl erteilen: “Alexa, spiel Brokeback Mountain ab”, ohne dass du einen Anbieter oder ein bestimmtes Gerät angibst. Alexa ist dank der Video Skill API über deine Videodienste und -geräte informiert.
Alexa Custom Skills
Dabei handelt es sich um die komplexeste und flexibelste Variante, da du als Entwickler selbst dafür sorgen musst, das Interaktionsmodell bereitzustellen. Dabei handelt es sich im Wesentlichen um den Dialog zwischen dem smarten Lautsprecher und dem Nutzer. Darin werden die verschiedensten Arten abgebildet, wie der Nutzer seine Frage stellt. Außerdem ist darin nachvollziehbar, wie Alexa Informationen sammelt und die Frage des Nutzers beantwortet.
Gehostet werden die Custom Skills entweder bei Amazon Alexa, in AWS Lambda oder einem HTTPS-fähigen Server, der selbst festgelegt wurde. Dieser muss jedoch von Amazon geprüft werden, damit die Verleihung des notwendigen Zertifikats erfolgen kann. Die sogenannten Slots werden ebenfalls von den Custom Skills unterstützt. Diese stellen im Grunde genommen die Eingaben des Nutzers dar.
Und wenn man nicht programmieren kann?
Es gibt einen einfachen Weg, um den Traum vom eigenen Skill, auch ohne umfangreiche Programmierkenntnisse zu verwirklichen: “Amazon Blueprints”. Dabei handelt es sich um eine Plattform, mit der du kleine Karteikarten, Quiz- und Partyspiele kreierst, um dein angeeignetes Wissen abzufragen. Alternativ erfindest du Geschichten, mit dir selbst in der Hauptrolle. Du kannst diesen Service ohne jegliche Programmierkenntnisse nutzen.
Fazit: Auch ohne Programmierkenntnisse Skills erstellen
Wie du siehst, musst du keine Programmierfähigkeiten mitbringen, um deinen eigenen Alexa Skill zu schreiben. Nutze am besten die Blueprints, um dich einzufuchsen und schau dir die zahlreichen Video-Tutorials im Internet an, um dich weiterzubilden. Willst du mit deinem Skill erfolgreich sein, achte darauf, dass dieser ideal auf potenzielle Nutzer zugeschnitten ist.
Rückmeldungen