Der Sprachassistent Alexa von Amazon ist immer mehr im kommen. Doch mit 60 Euro für den Echo Dot bzw. 180 Euro für den Echo sind die Geräte sehr teuer. Wir sagen dir, wie du mit knapp 40 Euro günstiger davon kommst um den Sprachassistenten von Amazon zu dir nach Hause zu holen.

Benötigte Hardware

Zunächst benötigen wir das aktuelle Image von Raspbian, das wir unter http://www.raspberrypi.org/downloads herunterladen können. Nach dem Download wird die ZIP-Datei entpackt. Im Ordner befindet sich jetzt eine IMG-Datei, die das Image beinhaltet.

Windows Benutzer benötigen zudem ein Programm zum Überspielen des Images auf eine SD-Karte, zum Beispiel WIN32 Disk Imager in der Binary Version. Auch hier muss die ZIP-Datei zunächst entpackt werden.

Linux und Mac User benötigen das Programm dd, das installiert sein muss.

Windows: Nun öffnen wir das eben entpackte Win32DiskImages.exe. Im Feld Image File muss das heruntergeladene IMG-File ausgewählt werden. Das Device-Feld sollte den Laufwerksbuchstaben der SD-Karte anzeigen. Wenn alles korrekt ist, wird das Image mit einem Klick auf Write auf die SD-Karte geschrieben. Das dauert einen Moment.

Linux / Max: Wir nutzen das Programm dd um das Image zu überspielen.

dd bs=1M if=[IMG] of=[DEVICE]

Dabei wird [IMG] durch den Pfad zum Image und [DEVICE] durch den zur SD-Karte ersetzt. Das Überspielen kann einige Zeit in Anspruch nehmen.

Stecke die SD-Karte nun in den Slot am Raspberry. Schließe das Ethernet-Kabel, eine Tastatur via USB und ein Bildschirm per HDMI am Raspberry an. Starte nach dem Einstecken sämtlicher Kabel den Raspberry durch das Anschließen des Mikro-USB Kabels.

Zu Beginn werden initial einige Einstellungen vorgenommen. Anschließend sehen wir eine blaue Oberfläche mit einem Menü, durch das wir mit den Pfeiltasten navigieren können. Zunächst wählen wir den Punkt Expand Filesystem um den gesamten Speicherplatz auf der Speicherkarte verwenden zu können. Auch dies kann einige Zeit dauern.

Im Menüpunkt Internationalisation Options wählen wir den Punkt Change Keyboard Layout damit wir auf eine deutsche Tastatur umstellen können. Dabei wählen wir die folgende Punkte:

Classmate PC > Other > German > German (ohne Zusätze) > The default fort he keyboard layout > No compose key

Anschließend fragt der Raspberry, ob durch Drücken von STRG + ALT der XServer beendet werden soll. Wir wählen nein.

Nun ändern wir die Sprache des Raspberry, ebenfalls im Menü Internationalisation Options > Change Locale. In der Liste navigieren wir zu de_DE.UTF-8 UTF-8 und aktivieren die Zeile mittels Leertaste. Mit einem Tab und einem Enter wählen wir die Auswahl aus. Als systemweite Sprache im nächsten Schritt wählen wir en_GB.UTF-8 UTF-8 und auch hier wählen wir mittels Enter die Auswahl an.

Weiter geht es mit Internationalisation Options > Change Timezone. Dort wählen wir die passende Timezone, zum Beispiel Europe / Berlin, aus.

Mit einem Tab im Hauptmenü auf Finish und Enter. Der Raspberry startet neu. Nach dem Neustart benötigen wir die Zugangsdaten:

Username: pi
Passwort: raspberry

Nun starten wir noch ein Update der installierten Programme und Dienste:

sudo apt-get update && sudo apt-get upgrade

Zu Schluss installieren wir noch einige weitere Programme:

Für die Nutzung von Alexa benötigen wir Node.JS und den dazu gehörenden Node Package Manager (NPM). Dazu benötigen wir zuerst einmal git, was die meisten Systeme schon installiert haben sollten. Wenn nicht:

sudo apt-get install git-core curl build-essential openssl libssl-dev

Als nächsten klonen wir das Node.JS Repository direkt von github:

git clone https://github.com/joyent/node.git

danach ein

cd node

um in das Node.JS Verzeichnis zu wechseln. Ein 

git tag

zeigt uns alle verfügbaren Versionen von Node.JS an.

git checkout v0.12.7

installiert die spezifierte Version. Danach kompilieren und installieren wir Node.JS mit folgenden Befehlen:

./configure

make

sudo make install

Mit

node -v

prüfen wir, ob Node.JS richtig installiert wurde. Danach installieren wir mit 

curl https://npmjs.org/install.sh | sudo sh

den Node Package Manager (NPM). Abschließend prüfen wir die Installation mit

npm -v

Für den Betrieb mittels WLAN benötigt der Pi 2 einen WLAN-Stick. Diesen schließen wir an. Durch Eingabe von
ifconfig

listen wir sämtliche Netzwerkinterfaces auf. Eines sollte mit wlan beginnen. In meinem Fall wlan0. Um den Schlafmodus des WLAN-Dongle zu verhindern, der zu Unterbrechungen führen kann erstellen wir eine Datei:

sudo nano /etc/modprobe.d/8192cu.conf

Dort fügen wir folgende Zeile ein:

options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

Anschließend bearbeiten wir die Zugangsdaten für das WLAN-Netwerk:

sudo nano /etc/network/interfaces

Die Zeilen

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

erstzen wir durch

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "WLAN-NAME"
wpa-psk "WLAN-SCHLUESSEL"

Zum Schluss starten wir das WLAN-Interface neu

sudo /etc/init.d/networking restart

Mittels folgendem Kommando starten wir den Editor nano:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Diese Datei muss wie folgt aussehen:

network={
ssid="WLAN-NAME"
psk="WLAN-SCHLUESSEL"
}

Die Daten bearbeiten wir entsprechend den Daten des WLAN-Netzwerkes. Außerdem bearbeiten wir mittels dem Kommando

sudo nano /etc/network/interfaces

das Ausschalten des Energiesparmodus und fügen folgendes am Ende ein:

pre-up iw dev wlan0 set power_save off
post-down iw dev wlan0 set power_save on

Das Modul starten wir neu:

sudo ifdown wlan0 && sudo ifup wlan0

Zum Start müssen wir uns erst einmal einen Entwickleraccount bei Amazon anlegen. Dazu öffnen wir developer.amazon.com. Dafür müssen wir uns, entweder mit bestehenden Zugngsdaten für Amazon, oder mit neuen, einloggen. Dort akzeptieren wir die Regularien.

Nach dem Login im Entwicklerportal klicken wir im Menü oben auf Alexa und anschließend Alexa Voice Services > Get Started. Auf der rechten Seite klicken wir auf  Register a Product und wählen Device aus. Auf der neuen Seite geben wir eine Device Type ID ein, die uns hilft, das Gerät wieder zu finden. Etwa RPi-Alexa. Der Display Name ist der Name, der bei der Registrierung mit Amazon angezeigt wird. Nennen wir es zum Beispiel: 4Y2C.Alexa.

Jetzt klicken wir auf das Auswahlfeld bei Security Profile und wählen Create a new profile aus. Dann geben wir Namen und Beschreibung ein. Mit einem Klick auf den Button werden verschiedene IDs erstellt, die wir benötigen. Am besten kopieren wir uns diese IDs, die mit amzn1.application beginnen, sowie das Client Secret in eine Textdatei und speichern diese vorübergehend ab.

Wir gehen einen Tab weiter auf den Punkt Web Tab Settings und klicken, sofern das richtige Security Profil ausgewählt ist, auf Edit. Ein Klick auf Add Another hinter Allowed Origins öffnet ein Feld in dem wir folgende Adresse eintragen:

https://localhost:3000

Bei Allowed Return URLs geben wir

https://localhost:3000/authresponse

ein. Und beenden das ganze mit einem Klick auf Next. Die nächsten beiden Seiten sollten selbsterklärend sein. Wir wählen eine Kategorie, beantworten ein paar Fragen und fertig. Das Device wird erstellt.


Als nächstes begeben wir uns an den Raspberry selbst. Nachdem wir eingeloggt sind, starten wir mit dem Kommando

startx

die grafische Oberfläche, falls diese noch nicht geöffnet ist. Wir öffnen den Terminal und wechseln auf den Desktop

cd Desktop

Dann laden wir aus dem Amazon Repository von github eine Beispiel Anwendung herunter:

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

Wir wechseln das Verzeichnis

cd ~/Desktop/alexa-avs-sample-app

und bearbeiten die Datei automated_install.sh

nano automated_install.sh

Dort suchen wir nach ProductID, ClientID und ClientSecret die wir durch die weiter oben gespeicherten Daten ersetzen. Anschließend starten wir das Installations-Script

. automatted_install.sh

Es erscheinen einige Fragen die einfach durch gegangen werden können. Nach der Installation benötigen wir drei unterschiedliche Fenster des Terminals.

Terminal 1: 

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

Terminal 2:

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

Nach dem Ausführen beider Befehle erscheint ein Fenster mit der Aufforderung, eine Website zu öffnen, um sich mit dem Gerät zu identifzieren. Diese beginnt mit https://localhost:3000. Ein Klick auf Yes öffnet den Standard Browser. Raspbian verwendet Chromium, eine Chrome Variante, und gibt einen Datenschutzfehler an, da die Seite nicht mittels SSL verschlüsselt ist. Ein Klick auf Erweitert unten links und dann ein Klick auf Weiter zu localhost und die Seite wird geöffnet.

Nun können wir uns mit unseren Amazon-Daten einloggen, damit wir Alexa auch normal verwenden können, etwa Bestellungen aufgeben etc. Die Java Anwendung erwartet jetzt noch einen Klick auf OK und die Verbindung zu Amazon steht.

Terminal 3:

cd ~/Desktop/alexa-avs-sample-app/samples
cd wakeWordAgent/src && ./wakeWordAgent -e sensory

Nun können wir mittels Alexa, wie wird das Wetter heute in Bochum? mit unserem Raspberry Pi sprechen.

So lässt sich innerhalb einer Stunde ein Raspberry Pi mit ein bisschen zuätzlicher Hardware in einen Sprachassistenten verwandeln. Für ein paar Euro lässt sich das sogar, wenn ein Raspberry Pi vorhanden ist, um Längen günstiger erreichen, als mit einem Echo oder dem kleinen Bruder Echo Dot. Probiert es aus, und sprecht mit eurem Raspberry. Bei Fragen, nutzt die Kommentafunktion.

Viel Spaß.



Über den Autor

Sebastian Siepmann