Raspberry Pi: Alexa-Tutorial

Amazon Alexa, oder auch einfach nur Alexa, ist der von Amazon entwickelte Sprachassistent, der z. B. in Smart Speakern wie dem Amazon Echo oder dem Echo Dot zum Einsatz kommt. In diesen Geräten dient Alexa als zentrale Steuerungseinheit, die auf Sprachbefehle des Nutzers reagiert. So lassen sich beispielsweise Songs von Amazon Music oder Spotify streamen, Hörspiele von Audible abspielen oder Nachrichten und Wetterauskünfte abrufen. Auch bei der Organisation des Tagesablaufs unterstützt die Software bei Bedarf: Einkaufs- und To-do-Listen sind ebenso schnell diktiert wie abgefragt und Termine im gewünschten Kalender (u. a. Apple, Google und Outlook) verbucht.

Da die Sprachsoftware von Amazon außerdem mit tausenden Smart-Home-Geräten wie Lampen, Steckdosen, Thermostaten u. v. m. kompatibel ist, ermöglicht sie auch die Automatisierung des Haushalts.

Hinweis

Alexa wird automatisch über die Cloud aktualisiert. Zudem versorgt Amazon die Sprachsoftware regelmäßig mit neuen Funktionen, die auch als Amazon Skills bezeichnet werden und sich über den Alexa Skills Store hinzufügen lassen.

Dank Alexa Voice Service können Sie die Möglichkeiten von Alexa auch ohne Amazon-Gerät genießen und den Sprachassistenten in Ihr eigenes Gerät integrieren. Als besonders geeignet hat sich der beliebte Raspberry Pi erwiesen, der im Vergleich zu Amazon Echo und Co. nicht nur preisliche Vorteile bietet, sondern sich auch nach eigenem Belieben anpassen und individualisieren lässt.

Alexa auf dem Raspberry Pi einrichten: Das sind die Voraussetzungen für den AlexaPi

Seit 2012 ist der Raspberry Pi auf dem Markt. Seitdem haben sich die Hersteller kontinuierlich um die Weiterentwicklung des Minicomputers bemüht und verschiedene Nachfolgeversionen wie den Raspberry Pi 2 und 3 oder den Rasperry Pi Zero veröffentlicht. Allerdings erfüllen nicht alle Varianten des Einplatinencomputers die erforderlichen Voraussetzungen für die Einbindung von Alexa: Um den Sprachassistenten später optimal einsetzen zu können, ist es empfehlenswert, mindestens einen Raspberry Pi 2 (Model B) zu verwenden. Da Alexa eine bestehende Internetverbindung voraussetzt, benötigen Sie in diesem Fall aber auch einen WLAN-Adapter, falls Sie den Minicomputer nicht dauerhaft über ein Netzwerkkabel mit dem Internet verbinden wollen.

Sie können sich aber auch gleich für einen Raspberry Pi 3 entscheiden, da dieser standardmäßig über einen integrierten WLAN-Adapter verfügt.

Zur Anzeige dieses Videos sind Cookies von Drittanbietern erforderlich. Ihre Cookie-Einstellungen können Sie hier aufrufen und ändern.

Ferner benötigen Sie in jedem Fall folgendes Zubehör, um Alexa auf Ihrem Raspberry Pi nutzen zu können:

  • MicroSD-Karte mit mindestens 8 GB (optimal: 16 GB oder mehr)
  • USB-Netzteil mit mindestens 2.000 mAh
  • USB-Mikrofon
  • USB- oder Bluetooth-Lautsprecher (falls Raspberry Pi 3)

Für ein besseres Klangerlebnis können Sie optional eine USB-Soundkarte an den Raspberry anschließen. Falls Sie die Installation und Einrichtung von Betriebssystem und Alexa nicht gänzlich per Remote-Verbindung vom PC aus durchführen wollen (sog. Headless-Modus), gilt es außerdem, Bildschirm, Tastatur und Maus an den Minicomputer anzuschließen.

AlexaPi-Tutorial: So wird der Raspberry Pi zum Alexa-Sprachrohr

Bevor Sie den Sprachassistenten einrichten können, müssen Sie zunächst ein Betriebssystem auf dem Raspberry bzw. auf der gewählten SD-Karte installieren. Zu empfehlen ist das offiziell von der Raspberry Pi Foundation unterstützte Raspbian, das Sie – als Image-Datei – direkt von der Website der Foundation herunterladen können. Entpacken Sie die Datei im Anschluss auf die SD-Karte und nutzen Sie diese, um Ihren Raspberry Pi zu booten und das Betriebssystem zu installieren. Eine ausführliche Anleitung liefert Ihnen folgendes Video:

Zur Anzeige dieses Videos sind Cookies von Drittanbietern erforderlich. Ihre Cookie-Einstellungen können Sie hier aufrufen und ändern.

Falls Sie sich die Installation eines Betriebssystems sparen wollen, können Sie – beispielsweise im Onlineshop „The Pi Hut“ – auch eine einsatzfertige SD-Karte kaufen, auf der Raspbian bereits vorinstalliert ist.

Wie Sie Alexa im Anschluss an die Installation von Raspbian zum Laufen bringen, erfahren Sie in der folgenden Schritt-für-Schritt-Anleitung.

Schritt 1: Amazon-Developer-Account anlegen

Um auf Amazon Voice Service zugreifen zu können, benötigen Sie einen Amazon-Developer-Account. Im ersten Schritt erstellen Sie daher einen solchen, indem Sie die Amazon-Developer-Seite aufrufen, dort auf „Anmelden“ und anschließend auf „Erstellen Sie Ihr Konto“ klicken. Sie können sich auch – sofern vorhanden – über Ihr reguläres Amazon-Konto anmelden.

Geben Sie die gewünschten Anmeldedaten (Name, E-Mail-Adresse und Passwort) ein und klicken Sie erneut auf „Erstellen Sie Ihr Konto“.

Anschließend werden Sie automatisch im Developer-Bereich angemeldet. Bevor Sie die Tools wie Alexa Voice Server allerdings nutzen können, sind einige weitere Angaben zu Ihrer Person erforderlich, die Sie nach einem Klick auf „Registrierung abschließen“ in der oberen Menüleiste machen können.

Schritt 2: Raspberry Pi für Alexa Voice Service registrieren

Nachdem Sie die erforderlichen Informationen gegeben und den Nutzungsbestimmungen und Richtlinien zugestimmt haben, erhalten Sie Zugriff auf das Developer-Dashboard, über das Sie Ihre verschiedenen Amazon-Projekte überblicken und verwalten können. Unter der Rubrik „amazon alexa“ finden Sie die Schaltfläche „Alexa Voice Service“, über die Sie die Freischaltung Ihres Raspberrys für den Sprachassistenten starten:

Im nächsten Menü klicken Sie auf die Schaltfläche „GET STARTED“, woraufhin Amazon Ihnen einige Fragen zum geplanten Projekt stellt.

Unter „Product name“ und „Product ID“ können Sie beispielsweise „AlexaPi“ oder „RaspberryPiAlexa“ eintragen.

Als „Product type“ wählen Sie die Option „Device with Alexa built-in“ (dt. Gerät mit integrierter Alexa-Software). Die Frage nach der Nutzung einer Companion-App verneinen Sie.

In der Zeile „Product category“ fällt Ihre Wahl auf „Wireless Speakers“. Bei der Produktbeschreibung müssen Sie keine großen Worte schwingen, ein Eintrag wie „Raspberry Pi Alexa Speaker“ ist ausreichend.

Da Sie Ihren Raspberry Pi wie klassische Alexa-Speaker ausschließlich per Sprachbefehl steuern wollen, markieren Sie „Hands-free“ (Sprachsteuerung aus naher Distanz) und „Far-field“ (Sprachsteuerung aus der Ferne) als geplante Interaktionsarten.

Die abschließenden Fragen nach der kommerziellen Nutzung oder der Verwendung des Raspberrys für Alexa for Business und Alexa Mobile Accessory Protocol verneinen Sie ebenso wie die Frage, ob ihr Projekt gezielt auf Kinder zugeschnitten ist.

Schritt 3: LWA-Sicherheitsprofil anlegen

Im nächsten Schritt müssen Sie ein LWA-Sicherheitsprofil (Login with Amazon) für den Raspberry Pi anlegen, damit dieser sich bei Amazon verifizieren kann. Da Sie ein solches noch nicht besitzen, klicken Sie auf „CREATE NEW PROFILE“ und tragen anschließend einen passenden Namen sowie eine kurze Beschreibung des Profils ein:

Nach einem Klick auf „NEXT“ erscheint ein weiteres Menü, in dem Sie die URLs für die LWS-Authentifizierung angeben. Tragen Sie hier folgende Adressen ein (und speichern diese mit „ADD“):

  • Allowed origins: "https://localhost:3000"
  • Allowed return URLs: "https://localhost:3000/authresponse"

Anschließend setzen Sie ein Häkchen, um Ihre Zustimmung zu den Amazon- und Alexa-Voice-Service-Richtlinien zu geben und beenden den Profilerstellungsprozess über den „FINISH“-Button:

War die Einrichtung erfolgreich, sendet Amazon Ihnen eine entsprechende Pop-up-Benachrichtigung.

Schritt 4: Produkt- und Clientinformationen notieren

Das Profil, das Sie für Ihren AlexaPi angelegt haben, steht nun jederzeit unter „Products“ zur Auswahl. Bevor Sie sich nun allerdings der Installation von Alexa zuwenden, sollten Sie an dieser Stelle schon einmal die für die Konfiguration des Sprachassistenten benötigten Produkt- und Clientinformationen aufrufen und notieren. Klicken Sie zu diesem Zweck das Profil des Raspberrys in der Produktübersicht an und notieren Sie sich die Einträge unter „Client ID“ und „Client secret“. Die entscheidende Produktinformation ist die „Product ID“, die mit dem vergebenen Produktnamen (in diesem Tutorial „AlexaPi“) gleichzusetzen ist.

Schritt 5: Alexa auf dem Raspberry Pi installieren

Die einfachste Möglichkeit, Alexa auf Ihrem Raspberry Pi zu installieren, führt über die Entwicklerplattform GitHub. Dort finden Sie u. a. die Alexa AVS Sample App, mit deren Hilfe Sie die Sprachsoftware auf Ihren Minicomputer bringen. Voraussetzung ist ein Git-Client, den Sie sofort nach einem schnellen System-Update herunterladen können, falls dieser nicht standardmäßig installiert ist. Geben Sie also zunächst folgende Befehle in das Raspbian-Terminal ein, um die Systemsoftware zu aktualisieren:

sudo apt-get update
sudo apt-get upgrade -y

Es folgt der Git-Client-Check:

sudo apt-get install git

Mithilfe des Clients laden Sie nun die AVS Sample App herunter bzw. klonen das GitHub-Repository:

sudo git clone https://github.com/alexa/alexa-avs-sample-app.git
Hinweis

Die AVS Samle App befindet sich aktuell im Maintenance Mode, weshalb sie die neuesten Alexa-Features nicht enthält. Mit dem AVS-Device-SDK steht jedoch eine alternative Lösung zur Verfügung, die auch neuere Funktionen des Sprachassistenten bietet.

Nachdem Sie das GitHub-Repository auf Ihren Raspberry Pi übertragen haben, übertragen Sie die in Schritt 4 gespeicherten Informationen in die Installationsdatei automated_install.sh. Diese können Sie mit dem Text-Editor Ihrer Wahl – z. B. mit nano – öffnen.

Speichern Sie die Änderungen und starten die Installation von Alexa auf Ihrem Raspberry Pi mit folgendem Befehl:

. automated_install.sh

Schritt 6: Erste Einrichtungsschritte während der Installation

Noch während der Installation der Sprachsoftware müssen Sie die ersten Einstellungen vornehmen und Fragen beantworten. So gilt es gleich zu Beginn, in die Geschäftsbedingungen einzuwilligen und der Nutzung ausgewiesener Drittanwendungen (falls benötigt) zuzustimmen. Mit der nächsten Frage bestätigen Sie, dass Sie bereits einen Amazon-Developer-Account besitzen, bevor Sie in der dritten Frage die Angaben zu „Product ID“, „Client ID“ und „Client secret“ bestätigen. In allen drei Fällen tippen Sie „y“ ein und drücken anschließend die [Enter]-Taste.

Es folgt eine der elementaren Einstellungsmöglichkeiten – die Wahl der gewünschten Sprachausgabe. Mit Option 3 (de-DE) entscheiden Sie sich hier für Deutsch, um später mit Alexa in deutscher Sprache kommunizieren zu können. Außerdem legen Sie noch während der Installation fest, ob die Tonausgabe Ihres Raspberry-Pi-Alexa-Speakers über den Klinkenanschluss (3.5 mm) oder über den HDMI-Ausgang erfolgen soll. Zuletzt geben Sie an, ob Sie das standardmäßige Aktivierungswort „Alexa“ beibehalten oder einen anderen Sprachbefehl für den Start des Sprachassistenten verwenden wollen.

Schritt 7: Authentifizierung des Raspberry-Pi-Alexa-Speakers

Für die Authentifizierung des Raspberrys benötigen Sie nun den Alexa Companion Service, der eine Art Interface oder Gateway für die Verbindung zwischen dem Minicomputer und den AVS-Servern darstellt. Um den Service zu nutzen, wechseln Sie über das Terminal in das entsprechende Verzeichnis und starten die Anwendung anschließend mithilfe des Paketdienstes npm. Hierfür geben Sie nacheinander folgende Kommandos ein:

cd ~/alexa-avs-sample-app/samples/companionService
npm start

War der Start erfolgreich, präsentiert Ihr Terminal die Nachricht „Listening on Port 3000“. Minimieren Sie das Terminal-Fenster und öffnen Sie eine neue Instanz der Eingabeaufforderung.

Hinweis

Es ist wichtig, dass Sie das Terminal-Fenster, in dem Sie den Alexa Companion Service gestartet haben, nur minimieren und nicht schließen. Der Dienst muss im Hintergrund laufen, damit Ihr Raspberry Pi mit den Alexa-Voice-Servern kommunizieren kann.

Im nächsten Schritt wechseln Sie in das Verzeichnis des Companion-Clients und rufen diesen auf. Da er in Java programmiert ist, greifen Sie hierfür auf den Java-Build-Manager Maven (mvn) zurück:

cd ~/alexa-avs-sample-app/samples/javaclient
mvn exec:exec

Einige Momente nach Eingabe des Befehls öffnet sich ein Pop-up-Dialog, der Sie auffordert, eine bestimmte URL im Browser aufzurufen, um den Raspberry zu registrieren. Kommen Sie der Aufforderung durch einen Klick auf „OK“ nach. Der Link wird in der Folge automatisch in Ihrem Standardbrowser geöffnet.

Hinweis

Nach dem Klick auf „OK“ öffnet sich ein weiteres Dialogfenster im Java-Client, das Sie zunächst nicht zu beachten brauchen.

Im Browser sehen Sie nun entweder die Amazon-Anmeldeseite oder in einigen Fällen die Meldung, dass die Website nicht erreichbar sei. Letzteres stellt allerdings kein großes Problem dar: Klicken Sie einfach unten links auf „Advanced“ bzw. „Erweitert“ und dann auf „Proceed to localhost“ bzw. „Weiter zu localhost“, um ebenfalls zum Log-in-Fenster zu gelangen. Melden Sie sich mit Ihrem Amazon-Developer-Account an und bestätigen Sie, dass Ihr Raspberry-Pi-Alexa-Speaker auf das Amazon-Konto zugreifen darf.

Bei erfolgreicher Authentifizierung sendet der Browser die Meldung „device tokens ready“. Nun können Sie im bis dato unbeachtet gebliebenen Fenster im Java-Client auf „OK“ drücken, um die Authentifizierung endgültig abzuschließen.

Schritt 8: Aktivierungswort-Erkennung anschalten

Alexa steht nun zum Einsatz bereit, sodass Sie über den AVS-Client jederzeit mit der Sprachsoftware interagieren können, indem Sie auf das Mikrofonsymbol klicken und die gewünschte Frage stellen. Damit Alexa aber auch aktiv wird, wenn Sie das gewählte Aktivierungswort wie z. B. „Alexa“ sagen, müssen Sie nun noch den sogenannten Wake-Word-Agenten starten. In einem neuen Terminal-Fenster rufen Sie zu diesem Zweck das Verzeichnis des Agenten (KITT AI) auf, um diesen anschließend zu starten:

cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src
./wakeWordAgent -e kitt_ai

Zeigt das Terminal die Meldung „Connected to AVS client“, können Sie Alexa in gewohnter Weise per Sprachsteuerung bedienen.

Schritt 9: Autostart-Skript für den Raspberry-Pi-Alexa-Sprachassistenten erstellen

Damit Sie Alexa nicht bei jedem Start Ihres Raspberry Pis manuell starten müssen, erstellen Sie zum Abschluss noch ein Start-Skript, das automatisch beim Hochfahren des Minicomputers ausgeführt wird. Hierfür erzeugen Sie zunächst die Skriptdatei mit folgendem Terminal-Befehl:

sudo nano alexa.sh

In das Skript fügen Sie im Anschluss folgende Codezeilen ein:

#!/bin/bash
lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/companionService && npm start;" &

sleep 10s

lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/javaclient && mvn exec:exec;" &

sleep 30s

lxterminal -l -e "cd ~/alexa-avs-sample-app/samples/wakeWordAgent/src && ./wakeWordAgent -e kitt_ai;" &

Das Skript automatisiert den in Schritt 7 beschriebenen Authentifizierungsprozess, indem es zunächst den Alexa Companion Service und anschließend den Java-Client startet. Anschließend folgt zeitversetzt der in Schritt 8 erläuterte Start des Wake-Word-Agenten.

Speichern Sie das Skript und erteilen Sie dem System via chmod die erforderlichen Zugriffsrechte:

sudo chmod +x alexa.sh

Für das Skript erstellen Sie nun noch eine Autostart-Datei:

sudo nano /home/pi/.config/autostart

Diese Datei füllen Sie mit folgendem Inhalt, damit das erzeugte Skript ab sofort bei jedem Start Ihres Raspberry-Pi-Alexa-Speakers automatisch ausgeführt wird:

[Desktop Entry]
Comment=Comment
Exec=/home/pi/alexa.sh
Name=alexa.sh
Path=/home/pi/alexa.sh
Type=Shell