Alexa Skills programmieren für Amazon Echo & Co. - Sammy Zimmermanns - E-Book

Alexa Skills programmieren für Amazon Echo & Co. E-Book

Sammy Zimmermanns

0,0

Beschreibung

  • Einfacher Einstieg in die Programmierung von Alexa Skills mit JavaScript
  • Nutzerantworten speichern und verarbeiten, Bilder und Audiofiles einbinden, fortgeschrittenes Dialogmanagement, Anbindung externer APIs u.v.m.
  • Skills bekannt machen und damit Geld verdienen

Über 11 Millionen Menschen in Deutschland nutzen Amazon Alexa aktiv und das Potenzial der verfügbaren Skills ist noch lange nicht ausgeschöpft. Egal, ob Sie experimentierfreudiger Privatanwender oder professioneller Programmierer sind – wenn Sie einen Skill für Amazon Alexa entwickeln möchten und bereits erste Erfahrungen mit JavaScript haben, ist dieses Buch genau das richtige für Sie.

Anhand verschiedener Praxisbeispiele zeigt der Autor, wie Sie mit der Alexa Developer Console und Node.js ganz einfach Ihren ersten Skill erstellen und Schritt für Schritt um neue Funktionen erweitern. Dank des AWS-Promotional-Credits-Programms ist das für Entwickler völlig kostenlos möglich.

Sie lernen, Nutzerantworten zu speichern und zu verarbeiten, Skill Cards für die Ausgabe in der Alexa App zu erstellen und Alexa mit verschiedenen Stimmen sprechen zu lassen. Für alle, die noch einen Schritt weitergehen wollen, beschreibt der Autor das fortgeschrittene Dialogmanagement, das Erstellen von Skills mit der AWS Cloud sowie die Nutzung externer Informationen, beispielsweise für das Abrufen von Wetterdaten oder Versenden von E-Mails.

Abschließend zeigt der Autor Ihnen Schritt für Schritt, wie Sie einen Eintrag im Alexa Skill Store erstellen und gibt Ihnen praktische Tipps für die Veröffentlichung und die Monetarisierung Ihrer Skills an die Hand.

Aus dem Inhalt:
  • Skills in der Alexa Developer Console anlegen
  • Skill-Code automatisch erzeugen
  • JSON-Sprachmodell und Skill-Logik in Node.js
  • Antworten speichern mit DynamoDB
  • Skills testen
  • Debugging mit CloudWatch
  • SSML-Tags zur Veränderung der Aussprache
  • Skill Cards für die Alexa App erstellen
  • Audiodateien, Bilder und Videos einbinden
  • Antworten auf Plausibilität prüfen und Kontextwechsel
  • Alexa Skills in der AWS Cloud
  • Externe Informationen nutzen und APIs einbinden
  • Skills zertifizieren und veröffentlichen
  • Alexa-SEO und Monetarisierung
  • Code-Beispiele zum Download

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 227

Veröffentlichungsjahr: 2020

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Inhaltsverzeichnis
Impressum
Einleitung
Warum einen Alexa Skill programmieren?
Über dieses Buch
Über den Autor
Teil I: Grundlagen der Alexa-Skill-Programmierung
Kapitel 1: Der Einstieg in die Alexa-Skill-Programmierung
1.1 Was ist ein Alexa Skill?
1.1.1 Wie wird ein Skill aufgerufen?
1.1.2 Wie funktioniert ein Skill genau?
1.2 Den Skill in der Alexa Developer Console anlegen
1.2.1 Slot-Typ erstellen
1.2.2 Das JSON-Sprachmodell
1.2.3 Alexa-Interface festlegen
1.2.4 Endpoint festlegen
1.3 Skill-Logik in Node.js erstellen
1.3.1 Node.js-Skill-Code erklärt
1.3.2 Kompletter Skill-Code in Node.js
1.4 Alexa Skill testen mit der Testkonsole
1.5 Skill-Code automatisch erzeugen
Kapitel 2: Antworten der Skill-Nutzer speichern und verarbeiten
2.1 Sitzungsattribute für wiederholte Antworten
2.1.1 Was ist der AMAZON.RepeatIntent?
2.1.2 Den AMAZON.RepeatIntent zum Fakten-Skill hinzufügen
2.1.3 Dem Sprachmodell einen Intent hinzufügen‌‌
2.1.4 Ja/Nein-Absicht mit Sitzungsattributen korrekt erfassen
2.2 Persistente Attribute
2.3 AttributesManager
2.4 AWS DynamoDB manuell anlegen
2.5 Debugging mit CloudWatch
Kapitel 3: Mit SSML-Tags die Aussprache von Alexa verändern
3.1 Flüstern
3.2 Audiofiles verwenden
3.3 Pausen
3.4 Betonung‌
3.5 Sprache ändern
3.6 Phoneme
3.7 Lautstärke, Tonhöhe und Geschwindigkeit
3.8 Satzende
3.9 Besondere Betonungen und Aussprache
3.10 Wörter ersetzen
3.11 Verschiedene Stimmen
3.12 SSML-Tags mit Node.js
Kapitel 4: Alexa-Interfaces, Bilder und Videos in Skills einbinden
4.1 AWS S3 Buckets‌
4.1.1 S3 Bucket erstellen
4.1.2 Ein Bild oder Video in den Bucket laden
4.2 Alexa-Interfaces
4.3 Eine Skill Card zu den Antworten erstellen
4.3.1 Welche Skill Cards‌ gibt es?
4.3.2 Bildformat und Tipps zum Anzeigen von Bildern
4.3.3 Wo werden die Bilder abgelegt?
4.3.4 Tipps zum Anzeigen des Kartentextes‌
4.4 Audio-Player
4.5 Display-Interface
4.6 VideoApp
4.7 Echo-Buttons
4.8 Custom Interface Controller
4.9 Alexa Presentation Language (APL)
4.10 Auto Delegation
Teil II: Fortgeschrittene Methoden und Techniken
Kapitel 5: Dialogmanagement mit Alexa
5.1 Informationen im Dialog sammeln
5.2 Slot-Erfassung mit dem Dialogmanagement
5.3 Das Dialogmanagement einrichten
5.4 Nutzerantworten auf Plausibilität prüfen
5.4.1 Marketing by Funny Failing
5.5 Context Switching
5.6 Erinnern und Wiederherstellen des Kontexts mit Sitzungsattributen
5.6.1 Der gesamte Code im Überblick
5.7 Der Interceptor und seine Bedeutung für das Context Switching
Kapitel 6: Einen Skill mit dem AWS-Cloud-Service erstellen
6.1 Einen AWS-Account einrichten
6.2 AWS-Lambda-Funktion einrichten und erstellen
6.3 Node.js lokal installieren
6.4 ASK-CLI Command Line Interface einrichten
6.5 Alexa Skill in MS Visual Studio Code programmieren
6.5.1 Schnellstart für das ASK-Toolkit in VS Code
Kapitel 7: Externe Informationen im Skill nutzen
7.1 Alexa Customer & Settings API nutzen
7.2 API Get Request
7.2.1 Google Sheets als Content-Backend‌ nutzen
7.2.2 Dem Skill einen HTTP-Request hinzufügen
7.3 E-Mail-Versand mit API-Post-Request
7.3.1 Mailgun.js installieren
7.3.2 Mailgun für die Nutzung in Europa anpassen
7.3.3 Intent-Handler für den E-Mail-Versand
7.3.4 Skill in der AWS Cloud und Alexa Developer Console veröffentlichen
7.4 Der Post-Request in Node.js
Teil III: Veröffentlichung und Monetarisierung
Kapitel 8: Alexa-Skill-Store-Eintrag erstellen
8.1 Beta-Tests einrichten und verwalten
8.2 Alexa Skills zertifizieren
Kapitel 9: Alexa-SEO und Skills promoten
9.1 Alexa-SEO‌
9.1.1 Was ist ein CanFullfillIntentRequest?
9.1.2 Die skalierbare neuronale Architektur hinter Alexas Fähigkeit, Skills auszuwählen
9.1.3 Was ist der HypRank?
9.1.4 Die Schwierigkeiten bei der Umsetzung
9.2 Ihren Skill bekannt machen
9.2.1 Designen Sie eine natürliche Launch-Phrase
9.2.2 Schreiben Sie eine ausführliche Skill-Beschreibung
9.2.3 Nutzen Sie ein auffälliges Skill-Icon
9.2.4 Senden Sie eine E-Mail an Ihr persönliches Netzwerk
9.2.5 E-Mail-Signatur hinzufügen und Marketing-Symbole aktualisieren
9.2.6 Präsentieren Sie Ihren Skill auf Ihrer Website
9.2.7 Nutzen Sie die sozialen Netzwerke zur Skill-Promotion
9.3 Marketing-Guidelines für Alexa-Skills
Kapitel 10: Geld verdienen mit Alexa
10.1 Account-Linking – Anbindung an einen Onlineshop
10.2 Geld verdienen mit Amazon Rewards
10.2.1 Wie ermittelt Amazon das Engagement?
10.2.2 Was ist eine Interaktion mit dem Skill wert?
10.2.3 Wie kann die Interaktionsrate eines Skills verbessert werden?
10.3 In-Skill-Purchasing
10.3.1 Welche Arten von In-Skill-Purchasing gibt es?
10.3.2 Was motiviert Kunden, einen In-Skill-Kauf zu tätigen?
10.3.3 Wie werden In-Skill-Käufe bezahlt?
10.4 Einen Skill um Premium-Fakten erweiter‌n
10.4.1 In-Skill-Produkte erstellen
10.5 Digitale Verbrauchsgüter mit Alexa verkaufen
Rück- und Ausblick

Sammy Zimmermanns

Alexa Skills programmieren

für Amazon Echo & Co.

Impressum

Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.

ISBN 978-3-7475-0116-0 1. Auflage 2020

www.mitp.de E-Mail: [email protected] Telefon: +49 7953 / 7189 - 079 Telefax: +49 7953 / 7189 - 082

© 2020 mitp Verlags GmbH & Co. KG

Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Lektorat: Janina Bahlmann Sprachkorrektorat: Petra Heubach-Erdmann Covergestaltung: Christian Kalkertelectronic publication: III-satz, Husby, www.drei-satz.de Bildnachweis: © Lightspruch / stock.adobe.com, Mathias Wegert / stock.adobe.com

Dieses Ebook verwendet das ePub-Format und ist optimiert für die Nutzung mit dem iBooks-reader auf dem iPad von Apple. Bei der Verwendung anderer Reader kann es zu Darstellungsproblemen kommen.

Der Verlag räumt Ihnen mit dem Kauf des ebooks das Recht ein, die Inhalte im Rahmen des geltenden Urheberrechts zu nutzen. Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheherrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und Einspeicherung und Verarbeitung in elektronischen Systemen.

Der Verlag schützt seine ebooks vor Missbrauch des Urheberrechts durch ein digitales Rechtemanagement. Bei Kauf im Webshop des Verlages werden die ebooks mit einem nicht sichtbaren digitalen Wasserzeichen individuell pro Nutzer signiert.

Bei Kauf in anderen ebook-Webshops erfolgt die Signatur durch die Shopbetreiber. Angaben zu diesem DRM finden Sie auf den Seiten der jeweiligen Anbieter.

Einleitung

Vielen Dank für Ihr Vertrauen und den Kauf dieses Buchs. Die Entwicklung von Amazon Alexa und der Geräte unterliegt einer schnellen Dynamik. Ich habe versucht, die aktuellsten Entwicklungen in diesem Buch nach bestem Wissen und Gewissen zusammenzutragen. Sollte jedoch einer der Punkte bereits überholt sein, wenn Sie dieses Buch lesen, so bitte ich, dies zu entschuldigen.

Was noch vor gut zehn Jahren als Science-Fiction galt, gehört heute zu unserem Alltag. Sprachgesteuerte Geräte halten immer mehr Einzug in unseren Alltag. Fast jeder Smartphone-Nutzer hat die Möglichkeit, mit dem Google Assistant, Bixby oder eben auch Alexa zu interagieren.

Als Alexa-Nutzer und Skill-Entwickler möchte ich Ihnen mit diesem Buch einen Einstieg in die Alexa-Skill-Programmierung mit Node.js an die Hand geben. Ich hoffe, dass ich Sie kurzweilig in die Welt von Alexa einführen kann. Dabei greife ich auf Anekdoten aus meinem Familienalltag und Erfahrungen aus der Alexa-Skill-Programmierung mit der Programmiersprache JavaScript bzw. Node.js zurück.

Im Netz stoße ich immer wieder auf die gleichen Fragen und oft scheint den meisten Menschen nicht klar zu sein, dass es sich bei Alexa um einen cloudbasierten Dienst handelt, der Sprache nur als Interface nutzt. Die Logik dahinter ist meist kein Hexenwerk und hat nur indirekt etwas mit künstlicher Intelligenz‌ zu tun, je nach Definitionsart mehr oder weniger.

Trotzdem neigen wir Menschen dazu, Alexa im Alltag zu vermenschlichen. Das liegt vor allem an der Art und Weise, wie wir Alexa nutzen. In der Geschichte gab es noch nie eine Maschine, die wir einfach per Sprache bedienen konnten.

Als Alexa-Skill-Programmierer schwindet diese Illusion. Ein Ziel dieses Buchs ist es, Alexa und andere sprachgesteuerte Systeme zu entmystifizieren. Ich möchte Sie dazu ermächtigen, selbst den Ton in Ihren eigenen vier Wänden wieder anzugeben.

Wenn ich es dann noch schaffe, Sie dazu zu inspirieren, eigene Skills zu erstellen, hat dieses Buch seinen Zweck vollends erfüllt.

Also genug der Vorworte, packen wir es an!

Warum einen Alexa Skill programmieren?

Skills erweitern die Möglichkeiten von Alexa. Als Skill-Betreiber können Sie über das Alexa-Sprachinterface in Kontakt mit Ihren Nutzern treten und mit ihnen interagieren.

Als Suchmaschinenoptimierer und Publisher diverser Nischenblogs bekomme ich die Diskussion über den Wandel Googles von einer Suchmaschine zur Antwortmaschine mit. Viele SEOs kämpfen nun um »Position 0«. Das ist die Sprachantwort zu einer Suchanfrage und aktuell das oberste Ergebnis zu vielen Suchanfragen in Google.

Diesen Zirkus möchte ich als Publisher nicht mehr mitmachen, denn der Nutzen für den Publisher ist nicht erwiesen, wenn Google hergeht, sich den Content einer Seite schnappt und dem Nutzer die Antwort selbst sagt. In den meisten Fällen gelangt dann der Nutzer nicht auf die Seite des Publishers, sondern beendet seine Suche.

Als Publisher ist man der Dumme, wenn man hier nur auf Google vertraut.

Der Trend zur Voice Search‌ ist aber ungebrochen, so sollen im Jahr 2020 über 50% aller Suchen per Stimme erfolgen. Was können Sie also machen, um trotzdem Ihre Nutzer zu erreichen, ohne dass Sie von Google dabei übervorteilt werden?

Für mich war die Antwort schnell klar, als ich 2014 von Alexa hörte, dass Amazon sein System offen für Entwickler an den Markt bringen wollte. Ich wollte von nun an meinen Content primär über Alexa Skills veröffentlichen.

Zudem ist Sprache das natürlichste Interface, über das wir Menschen mit unserer Umwelt interagieren. Schon im Mutterbauch kommen wir mit Sprache in Berührung.

Sprachgesteuerte Systeme, wie Alexa mit ihren Skills, setzen Nutzungsbarrieren sehr niedrig an. Schon Kleinkinder können mit Alexa interagieren und ihre Ziele erreichen. Ältere Menschen haben oft keine Lust, neue Bedienkonzepte zu lernen, aber kaum eine Hemmschwelle, das Interface zu nutzen, das sie von Kindesbeinen an kennen: die Sprache.

Halten wir also fest, warum Alexa Skills in naher Zukunft sehr wichtig sein werden:

Die Verbreitung von Alexa als Sprachassistent ist sehr groß und wächst von Jahr zu Jahr dramatisch. Allein über 11 Millionen Nutzer in Deutschland nutzen einen Sprachassistenten aktiv und suchen nach neuen Skills.

Sprache wird Tasten- und Wisch-Interfaces ersetzen, weil man mit ihr schneller komplexe Sachverhalte kommunizieren kann.

Wir können mit Sprache und ihren unterschiedlichen Formulierungen eine Absicht beschreiben und verschiedenste Teilaspekte nebenbei betonen. Ein Web-Text ist schlicht zu starr, um ihn auf verschiedenste Absichten auszurichten. Eine Lösung mit vielen ähnlichen Web-Texten läuft aber dem Optimierungs-Credo von Google entgegen. Mit einer Voice-App bzw. einem Alexa Skill kann man ganz flexibel auf unterschiedliche Sprachmuster passend eingehen.

Komplexe Tasks werden seit Neuestem von Alexa mit unterschiedlichen Skills in Kombination erledigt.

In der Suchmaschinenoptimierung gib es den Trend weg von Keyword und Suchphrasen hin zur Optimierung von Webseiten nach Intents (Absichten). Nur ist eine Website eine Krücke im Vergleich zu einer Voice-App bzw. einem Skill, wenn es um die Bedienung eines Intents geht. Wenn Sie eine Website in Google optimieren möchten, müssen Sie bestimmte Regeln einhalten, um auch gut gefunden zu werden. Leider stehen diese Regeln oft einer Optimierung nach einem bestimmten Intent entgegen.

Das Suchen mit Keywords und Suchphrasen war gestern. Es gab schon immer eine Absicht, die hinter einer Recherche steckte, diese wird jetzt direkt mit Sprachassistenten wie Alexa befriedigt.

Sie können mit einem Skill noch relativ einfach generische Themenfelder besetzen.

Sie können mit Ihrem Skill Geld verdienen und mit sogenannten »In-Skill Purchases‌« kostenpflichtigen Premium-Content‌ anbieten.

Über dieses Buch

Dieses Buch richtet sich an alle, die in die Alexa-Skill-Programmierung einsteigen möchten. Grundkenntnisse in JavaScript oder Webprogrammierung sind von Vorteil und erleichtern das Verständnis dieses Buchs. Ich habe jedoch darauf geachtet, Ihnen gleich am Anfang auch eine Möglichkeit zu zeigen, wie JavaScript-Code auch mithilfe eines Code-Generators im Netz automatisch erzeugt werden kann. So sind selbst blutige Anfänger in der Lage, einen ersten Skill zu erstellen.

Dieses Buch möchte vor allem anderen motivieren, in die Alexa-Skill-Entwicklung einzusteigen. Sie werden Schritt für Schritt in die Programmierung und in das Skill-Design eingeführt.

Aufbau des Buchs

Dieses Buch ist grob in drei Teile gegliedert. Teil I (Kapitel 1-4) beschäftigt sich mit den Grundlagen der Alexa-Skill-Programmierung.

In Kapitel 1 erkläre ich den Einstieg in die Alexa-Skill-Programmierung. Hier begleite ich Sie durch die Erstellung eines Alexa-Developer-Accounts und erkläre die grundlegende Funktionsweise eines Alexa Skills.

In Kapitel 2 zeige ich Ihnen, wie Sie den Kontext für Ja- und Nein-Antworten des Nutzers mit einem Skill erfassen können. Zudem erkläre ich den Unterschied zwischen Sitzungsattributen und persistenten Attributen.

Kapitel 3 befasst sich mit der Aussprache von Alexa und wie Sie diese mit SSML-Tags beeinflussen können.

Kapitel 4 stellt die Alexa-Interfaces in den Mittelpunkt. Es werden hier also Ausgabemöglichkeiten vorgestellt, die Sie potenziell mit einem Skill nutzen können. Außerdem wird hier die Frage geklärt, wie Sie Bilder und Videos für Ihren Skill verwenden können.

In Teil II (Kapitel 5-7) gehe ich auf die fortgeschrittenen Methoden und Techniken in der Skill-Programmierung ein.

Kapitel 5 widmet sich dem Dialogmanagement. Hier erkläre ich, wie Sie Zug um Zug Informationen im Dialog von einem Nutzer sammeln können und so aus den Antworten des Nutzers eine Antwort von Alexa erstellen können. Für Fortgeschrittene ist dann das Thema Kontextwechsel interessant, also die Frage, wie ein Skill damit umgeht, wenn ein Nutzer mal etwas anderes zwischenfragt, sodass er im Dialog nicht wieder von vorne anfangen muss.

In Kapitel 6 erkläre ich, wie Sie einen Skill in der AWS Cloud erstellen und Ihren Skill mit Microsoft Visual Studio Code programmieren können.

Kapitel 7 beschäftigt sich mit dem Thema API und wie Sie externe Informationen für Ihren Skill nutzen können. Sie lernen hier, wie Sie eine einfache externe Datenbank mit Hilfe von Google Sheets aufbauen und in Ihrem Skill für die Antwortausgabe nutzen können – oder, was für viele Onlinemarketer interessant sein dürfte, wie Sie die gegebenen Nutzerantworten per Post-Request in eine eigene Datenbank speichern bzw. für den E-Mail-Versand nutzen können.

In Teil III (Kapitel 8-10) werden schließlich die Skill-Promotion, die Vermarktung des Skills und Alexa-SEO thematisiert.

In Kapitel 8 erkläre ich, wie Sie Ihren Skill im Alexa Skill-Store eintragen und gebe Ihnen Tipps, wie Sie Ihren Skill von Amazon zertifiziert bekommen.

Das Kapitel 9 behandelt das Thema Alexa-SEO und erläutert Ihnen die Grundlagen, wie Alexa einen bestimmten Skill vorschlägt. Zudem gebe ich hier Tipps, wie Sie ihren Skill im Netz bekannt machen können.

InKapitel 10 gehe ich auf die Thematik Voice Commerce ein und zeige Wege auf, wie Sie als Unternehmer bzw. Publisher mit Alexa Geld verdienen können.

Downloads zum Buch

Alle Codebeispiele finden Sie zum Download auf der Website des Verlags unter www.mitp.de/0114.

Wer Interesse an weiteren Code-Beispielen hat, dem empfehle ich auch das Repository von Amazon Alexa selbst. Sie finden es unter https://github.com/alexa oder, wenn Sie Interesse an den neusten Entwicklungen haben, unter https://github.com/alexa-labs.

Über die Projekte im Buch

Das Skill-Beispiel mit den Weltraumfakten, das im Verlauf des Buchs erstellt wird, ist ein rein theoretisches Projekt und wurde noch nicht veröffentlicht. Es wurde nur zu Anschauungszwecken erstellt und getestet. Darüber hinaus nutze ich in diesem Buch aber auch Code von Skills, die schon so in der freien Wildbahn und von Amazon zertifiziert sind. Hier werden mitunter nur einzelne Teilaspekte zur Veranschaulichung genutzt.

Was nicht in diesem Buch steht

Als Autor dieses Buchs fiel mir die Entscheidung recht schwer, welche Inhalte ich ausführlich darstellen und welche Themen ich nur anreißen sollte. An dieser Stelle möchte ich mich bei meiner Lektorin Janina Bahlmann bedanken, die mir immer wieder Hinweise gab, was für einen Leser interessant sein könnte und was für Anfänger eher schwer verständlich ist.

Das Thema APL, also Alexa Presentation Language, habe ich in dem Buch nur kurz angerissen. Es ist derart umfangreich, dass man hierzu schon fast ein eigenes Buch schreiben könnte. Zudem finden in diesem Teilaspekt der Skill-Programmierung immer wieder Änderungen und Neuerungen statt. Auch das Thema Skill-Zertifizierung ist dabei nochmal etwas komplexer, da hierbei auch die Bildschirmausgabe mitberücksichtigt wird.

Dann gibt es noch das Thema Amazon Pay, also die Möglichkeit, per Sprache einen eigenen Onlineshop anzubinden und unabhängig vom Amazon Marketplace reale Waren per Sprache zu verkaufen. Für mich persönlich ist das eines der spannendsten und von vielen noch unterschätzen Themen, aber eben auch für den Einstieg leider zu umfangreich und komplex.

Auch das Thema Account Linking wird hier im Buch nur sehr kurz angerissen. Die Idee hierbei ist, dass der Nutzer seine Profildaten von einem anderen Internetdienst nutzen kann und seine Skill-Nutzung in einer externen Datenbank dauerhaft gespeichert und genutzt werden kann.

All diese Themen wollte ich Anfängern oder Anfängerinnen nicht zumuten. Das wäre die Aufgabe eines anderen, umfangreicheren Buchs.

Über den Autor

Sammy Zimmermanns ist Marketing-Kommunikationswirt (DAMK), seit 2006 ist er Blogger und Suchmaschinenoptimierer und berät seine Kunden, wie sie in der Suchmaschine Google nach vorne kommen und mehr Nutzer erreichen.

Er hat die Entwicklung des Onlinemarketings seit vielen Jahren verfolgt und online diverse Fachartikel zum Thema Suchmaschinenoptimierung und Alexa veröffentlicht.

Sammy Zimmermanns hat auf Fachkonferenzen zu dem Themen WordPress, Suchmaschinenoptimierung und Alexa-Skill-Programmierung gesprochen und betreibt den Alexa-Stammtisch Dresden. 2018 wurde er als Top SEO Influencer vom SEO-Portal ausgezeichnet. Seit 2016 beschäftigt er sich intensiv mit der Alexa-Skill-Programmierung in der Sprache Node.js.

Er lebt mit seiner Frau und seinen beiden Kindern in Dresden. In seiner Freizeit treibt er gerne Kraft- und Ausdauersport. Sie erreichen ihn per E-Mail unter: [email protected].

Wie ich zum Programmierer wurde

Ich bin eigentlich kein Programmierer von Hause aus, wer ist das schon? Denn eigentlich bin ich Blogger über Kaffee und SEO-Themen und berate meine Kunden, wie sie bei Google möglichst weit vorne in der Suche erscheinen. Alle Kenntnisse habe ich mir autodidaktisch beigebracht – mithilfe des Internets und den Vorlagen, die Amazon allen Entwicklern frei zur Verfügung stellt.

Ich habe einen Echo Dot seit Herbst 2016 und gehöre zu dem Kreis der Nutzer, die nur auf Einladung einen Amazon Echo bestellen konnten. Die ganze Entwicklung hat mich fasziniert und ich war seit der Vorstellung von Alexa gefesselt von dem Gedanken, hier selbst etwas zur Verbesserung dieser Sprachassistentin beitragen zu können.

Erste Berührung mit der Skill-Programmierung hatte ich durch ein Video auf YouTube des YouTubers Venix (https://www.youtube.com/watch?v=v7vVywojhzE). Dort wurde Schritt für Schritt erklärt, wie man einen Google-Suche-Skill für Alexa erstellt.

Damals fand ich noch, dass eine Google-Suche für Alexa eine prima Sache wäre. Ich habe mich also an den Rechner gesetzt und bin dieses Tutorial Schritt für Schritt durchgegangen. Nach ein wenig Code-Frickelei war ich stolzer Ersteller eines Google-Suche-Skills für meine Alexa.

Neugierig, wie ich nun mal bin, habe ich mir auch die Google-Skill-Code-Dateien auf GitHub, die dieses Tutorial empfahl, angesehen. (https://github.com/tartanguru/alexa-google-search).

Ich eröffnete auch einen Developer-Account auf https://developer.amazon.com/de/ für die Erstellung meines Skills und Sprachmodells und einen AWS-Account unter https://aws.amazon.com/de/ für den eigentlichen Programmcode.

Eine mentale Hürde für viele ist das Hinterlegen der Kreditkartendaten für die Eröffnung des AWS-Accounts‌. Der YouTuber Venix versicherte mir, dass das hier eigentlich nur eine Formalie ist und man nichts für seine Skills bezahlen müsse.

Da mein Naturell relativ risikofreudig ist, habe ich seiner Aussage vertraut und es bis jetzt nicht bereut. Ich habe ohnehin nur eine Prepaid-Kreditkarte und konnte so einen eventuellen Schaden relativ sicher begrenzen.

Aber so viel vorweg, ich habe mithilfe des Internets bis heute keinen einzigen Cent an AWS‌ bezahlt. Denn Amazon hat ein AWS-Promotional-Credits-Programm‌. Jeder Entwickler, der dort angemeldet ist, bekommt monatlich AWS-Credits‌ im Wert von 100 Dollar geschenkt. Dieser Betrag reicht locker aus, um auch populäre Skills zu betreiben, und bei Bedarf werden diese Credits auch erneuert. Amazon will die Skill-Entwicklung und den -Betrieb für seine Entwickler kostenneutral halten.

Wer also Alexa Skills entwickeln möchte, sollte sich unbedingt hier anmelden:

https://developer.amazon.com/de/alexa-skills-kit/alexa-aws-credits.

Teil I: Grundlagen der Alexa-Skill-Programmierung

In diesem Teil:

Kapitel 1

Der Einstieg in die Alexa-Skill-Programmierung

Kapitel 2

Antworten der Skill-Nutzer speichern und verarbeiten

Kapitel 3

Mit SSML-Tags die Aussprache von Alexa verändern

Kapitel 4

Alexa-Interfaces, Bilder und Videos in Skills einbinden

Kapitel 1: Der Einstieg in die Alexa-Skill-Programmierung

In diesem Kapitel werden Sie einen Hosted-Skill‌ direkt in der Alexa Developer Console‌ einrichten. Dafür nutzen wir auch gleich schon mal das von Amazon vorgegebene »Fact Skill‌«-Template‌, das Sie nach Ihrem Geschmack anpassen können. Hier im Buch geht es um einen einfachen Fakten-Skill zum Thema Weltraum. Sie können natürlich aber auch ein ganz eigenes Faktenthema wählen. Das Prinzip bleibt das gleiche.

Um Ihren eigenen Skill zu programmieren, benötigen Sie als Erstes einen Alexa-Developer-Account‌, damit Sie loslegen können. Dafür gehen Sie auf die Seite https://developer.amazon.com/alexa/console/ask.

Alexa-Developer-Console-Anmeldemaske

Klicken Sie nun auf Create your Amazon account.

Abb. 1.2: Alexa Developer Console, Create account

Jetzt geben Sie Ihren Entwicklernamen sowie Ihre E-Mail-Adresse ein und vergeben ein Passwort mit mindestens 6 Zeichen. Danach klicken Sie unten auf den blauen Button.

Abb. 1.3: E-Mail-Adresse bestätigen

Zu guter Letzt müssen Sie die Einrichtung mit einem One-Time Password‌ (OTP) bestätigen.

Abb. 1.4: Developer-Registrierung

Jetzt müssen alle Pflichtangaben in dem Formular ausgefüllt werden. Sie legen hier auch den Firmennamen fest, falls Sie für eine Firma Skills entwickeln möchten. Wenn Sie alles gewissenhaft ausgefüllt haben, klicken Sie auf Accept and Continue.

Abb. 1.5: Amazon Developer Services Agreement

In dieser Maske klicken Sie für den Ausdruck des Vertrages auf Print Agreement und anschließend auf Accept and Continue.

Abb. 1.6: Amazon Developer Console

Jetzt sind Sie in der Amazon Developer Console‌ registriert. Sie haben nun die Möglichkeit, hier Ihre Steuerdaten und Kontoverbindungen für App- oder Skill-Einnahmen zu hinterlegen. Dann haben Sie einen vollwertigen Amazon-Developer-Account und können neben Skills auch Apps für Smartphones entwickeln, aber das ist ein anderes Thema.

Fahren Sie in der Amazon Developer Console oben in der Navigation auf Alexa und klicken Sie anschließend im Untermenü auf Alexa Skills Kit.

Abb. 1.7: Alexa Skills Kit in der Navigation oben

Jetzt sind Sie in der Alexa Developer Console. Von hier aus überblicken Sie alle Ihre Skills, eventuelle Verdienste, Zahlungen sowie das Hosting, falls Sie »Alexa-Hosted« für Ihren Skill ausgewählt haben.

Abb. 1.8: Die Alexa Developer Console

Die Hürde, einen Skill zu entwickeln, hat Amazon immer weiter gesenkt und vereinfacht, indem Sie nun bei der Skill-Erstellung die Wahl haben: Sie können Ihren Programmcode in einer AWS Cloud, in einer privaten Cloud oder als »Alexa-Hosted«-Skill anlegen. Für den Einstieg wählen Sie die einfachste Variante, einen Alexa-Hosted-Skill‌.

Abb. 1.9: Screenshot aus der Alexa Developer Console

Der Vorteil der Alexa-Hosted-Skills ist, dass Sie sich als Entwickler keine Sorgen darum machen müssen, wie die Cloud betrieben wird. Amazon stellt den Nutzern eine fertige Umgebung für den Skill zusammen, der dem Betreiber nicht berechnet wird. Sie müssen hier auch keine Kreditkartendaten hinterlegen. Ich werde in Kapitel 6 näher darauf eingehen, wie Sie einen Skill selbst über die AWS Cloud‌ einrichten und betreiben. Aber fangen wir zunächst mit den Grundlagen an.

Wenn Sie keine Scheu vor Programmcode haben, neue Dinge lernen möchten oder gar schon selbst etwas in JavaScript‌ programmiert haben, ist die Seite https://github.com/alexa/ der richtige Einstiegspunkt für Sie.

Dort finden Sie fertige Alexa Skills als Vorlagen für Ihren eigenen Skill. Auch das Hosted-Skill-Codebeispiel‌ befindet sich dort. Im Prinzip brauchen Sie hier nur noch im Code die Texte für die Sprachausgabe und Textanzeige zu verändern. Das einfachste Beispiel für den Einstieg ist wohl das Code-Beispiel für einen »Fact Skill« unter https://github.com/alexa/skill-sample-nodejs-fact. Ich habe so angefangen, indem ich mir die index.js-Datei des Code-Beispiels im Browser angeschaut und versucht habe, die Stellen zu finden, wo ein Text ausgegeben wurde. Anschließend habe ich ihn an meine Idee angepasst.

Zudem empfehle ich Ihnen, sich im Netz über JavaScript fortzubilden. Über eine Google-Suche nach »JavaScript Tutorial‌« werden Ihnen viele nützliche Quellen angezeigt, um die Grundlagen von JavaScript zu lernen.

1.1  Was ist ein Alexa Skill?

Ein Alexa Skill‌ ist im Prinzip eine Voice-App‌, nur dass diese nicht auf einem Gerät installiert, sondern in der Cloud‌ betrieben wird. Ein Skill wird also nicht installiert, sondern nur aktiviert.

Das hat für den Nutzer den Vorteil, dass er keine Ressourcen‌ für die Speicherung einer Applikation auf seinem Gerät benötigt. Dieser Vorteil beinhaltet aber auch gleichzeitig den Nachteil, dass ein Skill nur mit einer Internetverbindung zur Cloud funktionieren kann.

Alexa wird mithilfe von Skills schlauer, aktuell gibt es international über 100.000 Skills. In Deutschland sind es gerade mal etwas über 11.600. Die beliebtesten Kategorien sind in Deutschland Musik & Audio (2989), Spiele & Quiz (1604), Bildung & Nachschlagewerke (945), Lifestyle (891) und News (791), Stand 11.11.2019. Wie eine Case Study der Website beyto.com schreibt, ist das Skill-Wachstum in Deutschland‌ eher gebremst, siehe https://www.beyto.com/wachstum-skills-amazon-alexa-skill-store-oktober-2019/.

1.1.1  Wie wird ein Skill aufgerufen?

Per Sprache wird dem Amazon-Echo-Gerät eine Frage oder Aufforderung mitgeteilt. Ein Nutzer könnte zum Beispiel sagen: »Alexa, öffne Bierflasche.« Dieser einfache Satz wird von der KI‌ in die Bestandteile zerlegt und interpretiert:

[Wake Word], [Launch Word] [Invocation Name] [Connecting Word] [Utterance]

Diese Wake Words kennt Amazon Echo:

Alexa

Amazon

Computer

Echo

Das Wake Word‌ (Weckwort) muss vom Nutzer über die Alexa-Companion-App‌ eingestellt werden. Standardmäßig ist »Alexa« voreingestellt. Bisher ist Alexa der einzige Heimassistent, der den Nutzern hier eine Wahlmöglichkeit lässt, das ist einer der Gründe, warum Alexa so beliebt ist.

Beispiel

Alexa, öffne Bierflasche und gib mir einen Trinkspruch.

Diese »Launch«-Wörter kennt Amazon Echo:

Start

Starte

Öffne

Frage

Lade

sprich mit

führe (Ausführungsname) aus

benutze

Diese Kommandos sollten Sie im Hinterkopf behalten, wenn Sie einen »Invocation Name‌« für Ihren Skill auswählen, um eine möglichst natürliche Kommunikation zu ermöglichen.

Beispiel

Alexa, öffne Bierflasche und gib mir einen Trinkspruch.

Was ist ein Invocation-Name?

Der Invocation-Name bzw. Ausführungsname‌ ist der Name des Skills. Der Skill-Name‌ ist fast frei wählbar. Er sollte zu einer natürlichen Sprache passen. In unserem Beispiel lautet der Ausführungsname Bierflasche.

Wenn also der Bierflasche-Skill‌ aktiviert wurde, erkennt Alexa ihn und kann zu der Aufforderung »Alexa, öffne Bierflasche« eine sinnvolle Antwort geben.

Beispiel

Alexa, öffne Bierflasche und gib mir einen Trinkspruch.

»Connecting«-Wörter für Skills:

mit

und

aus

um

für

Beispiel

Alexa, öffne Bierflasche und gib mir einen Trinkspruch.

Was bedeutet »Utterance«?

»Utterance«‌ ist das englische Wort für Äußerung. Äußerungen können bestimmte Intents zugeordnet werden.

Beispiel

Alexa, öffne Bierflasche und gib mir einen Trinkspruch.

Was bedeutet Intent?

Wenn wir miteinander kommunizieren, haben wir immer eine Intention ‌(Absicht), warum wir kommunizieren. Wenn wir etwas Bestimmtes wissen wollen, fragen wir also unseren Gesprächspartner etwas. In der Skill-Programmierung wird der Begriff Intent genauso verwendet. Mit einem Alexa-Skill-Intent soll also eine bestimmte Absicht des Anwenders befriedigt werden.

Wenn Sie einen Skill programmieren möchten, sollten Sie sorgfältig alle Nutzungsszenarios‌ Ihres Skills planen und jedem Szenario einen Intent zuordnen. In dem vorangegangenen Beispiel meines Bierflasche-Skills wurde die Äußerung »gib mir einen Trinkspruch« dem Intent »Trinkspruch« zugeordnet, der genau diesen Wunsch des Nutzers erfüllt. Die Äußerung »gib mir ein Bier« würde das Geräusch einer aufploppenden Bierflasche abspielen und ist demzufolge dem Bierflaschen-Intent zugeordnet.

1.1.2  Wie funktioniert ein Skill genau?

Abb. 1.10: Funktionsschema eines Alexa Skills

Das Schema in Abbildung 1.10 zeigt den theoretischen Aufbau eines Alexa Skil‌ls. In dem Beispiel gibt ein Nutzer ein Sprachkomma‌ndo an Alexa. Dieses Sprachkommando wird durch‌ NLP, Natural Language Proce‌ssing, als ein bestimmter »Intent« erkannt, der im Sprachmodell zum Skill hinterlegt ist und in maschinenlesbaren JSO‌N-Code umgewandelt wird. Ein Intent ist hier also eine Nutzerabsicht, die im Sprachmodell hinterlegt ist und durch bestimmte Äußerungen des Nutzers eine bestimmte Reaktion des Skills auslöst. Der JSON-Code wird zur Ausführung an den Programmcode in der AWS‌ Lambda zur Verarbeitung gesendet.

Je nach Skill und Programmcode wird entweder eine externe Datenbank als Antwortquelle‌ abgefragt, ein IoT(Internet of Things)-Gerät angesprochen oder eine im Code hinterlegte Antwort/ein Ergebnis berechnet. Diese wird dann im JSON-Format zurückgesendet und durch die NLP Unit in für Menschen verständlicher Sprache ausgegeben.

Als Skill-Programmierer haben Sie Einfluss auf das Sprachmodell des Skills. Dieses kann direkt in der Alexa Skill Console erstellt werden.

Die zweite wichtige Komponente ist die Skill-Logik‌