Headless Setup des Google AIY Voice Kit am Raspberry Pi

Google bietet mit seinen AIY Bausätzen (Voice, Vision) interessante Möglichkeiten deren Schnittstellen am Raspberry Pi zu verwenden. So kann das AIY Voice Kit zur Spracherkennung genutzt werden. Etwas Ähnliches gibt es zwar auch mit Amazon Alexa (auf dem Raspberry Pi), aber hier haben wir die Wahl, dass die Stimme erst auf Knopfdruck übertragen und ausgewertet wird.

Allerdings benötigt das Setup des Google AIY Voice Kits am Raspberry Pi normalerweise Bildschirm und Tastatur, was wir in diesem Tutorial umgehen. Die Einrichtung findet komplett per SSH statt.

 

Zubehör

Befestigung des Buttons

Das AIY Voice Kit kam in der ersten Version ohne einen Raspberry Pi (Zero WH), wird aber inzwischen damit ausgeliefert. Wir brauchen also lediglich das Kit sowie einen USB Adapter.

Falls du ein V1.0 Kit hast, benötigst du noch einen Raspberry Pi (Model B) sowie Mikro-SD-Karte und ein USB-Typ-C-Kabel. Der Code und die weiteren Schritte unterscheiden sich nicht. Lediglich der Aufbau ist ein wenig anders. Allerdings ist eine Aufbauanleitung bei beiden Kits inklusive.

AIY Voice Kit Zusammenbau

Das Voice Kit kommt mit mehreren Komponenten und einem faltbaren Karton (Cardboard). Die Schritte zum Zusammenbauen entnimmst du am besten der beiliegenden Anleitung. Alternativ bietet Google auch auf der Website bebilderte Schritt-für-Schritt-Anleitungen für V2 (sowie für V1) an.

Am Ende steht das fertige Voice Modul mit seinem farbigen Button vor dir.

 

Software flashen

Zunächst einmal gehen wir auf die Github Seite der AIY Projekte und laden das Image mit der Endung .img.xz. Dieses flashen wir mittels Balena Etcher auf unsere SD-Karte. Details dazu findest du u.a. hier.

Der Vorgang wird einige Zeit dauern. Am Ende bearbeiten wir allerdings noch den Inhalt der SD-Karte. Wir erstellen dort zwei Textdateien. Die erste Datei namens „ssh“ (ohne Anführungszeichen und ohne Dateiendung) bekommt keinen Inhalt. Dadurch aktivieren wir SSH.

Außerdem können wir direkt unser W-LAN Netzwerk konfigurieren. Dieser Schritt fällt natürlich weg, wenn dein Pi nur per Ethernetkabel mit dem Router verbunden ist. Wir erstellen dazu eine weitere Datei mit dem Namen „wpa_supplicant.conf“ (ohne Anführungszeichen). Diese Datei bekommt folgenden Inhalt:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE

network={
 ssid="DEIN WLAN NAME"
 psk="WLAN PASSWORD"
 key_mgmt=WPA-PSK
}

Ersetze den Namen und das Passwort deines W-LAN Netzes entsprechend (die Anführungszeichen sollten hier stehen bleiben).

 

Google Cloud APIs aktivieren und nutzen

Für die nächsten Schritte benötigen wir einen Google Account und müssen uns einen Cloud API Key besorgen. Dies ist allerdings sehr einfach möglich und kostet bei normaler Nutzung auch nichts. Zunächst gehen wir dazu auf console.cloud.google.com und loggen uns mit unserem Account ein (ggf. einen neuen erstellen) und akzeptieren die Geschäftsbedindungen.

Danach erstellen wir ein neues Projekt (Topbar -> Select a Project -> New Project) und geben ihm einen Namen (bspw. „RPi Voice Kit“) und erstellen es.

Google Cloud Platform New Project - Voice Kit

Wir werden zur Projektseite weitergeleitet. Hier wählen wir auf der linken Navigationsleiste „APIs & Services“ -> „Library“ aus und suchen anschließend nach „Google Assistant API. Diese aktivieren wir.

Google Cloud Platform - Google Assistant API

Erneut werden wir weitergeleitet. Hier erscheint eine Textbox, dass wir noch keine Zugangsdaten haben und diese zunächst erstellt werden müssen. Auf der rechten Seite befindet sich der Button, mit dem wir das tun können („Create Credentials“).

Google Cloud Platform - Overview create credentials

Wähle anschließend „Google Assistant API“ sowie „Other UI (Windows, CLI Tool)“ und als Zweck „User Data“ aus.

Google Cloud Platform - API Settings

Beim Drücken des unteren Buttons („What credentials do I need?“) erscheint ein Popup. Hier drücken wir „Set up Consent Screen“, wodurch ein neuer Tab geöffnet wird. Wähle dort als User Typ „External“ aus und drücke den Create Button.

Google Cloud Platform - Edit app registration

Gib einen Namen für dein Projekt, sowie deine E-Mail-Adresse ein. Die restlichen Einstellungen (in Schritt 1, 2, 3 und 4) können so bleiben.

Nachdem wir alles erstellt haben, klicken wir auf der linken Navigationsleiste auf „Credentials“ und anschließend auf den „Create Credentials“ Button. Hier wählen wir „OAuth client ID„.

Google Cloud Platform - oauth credentials

Wähle als Application Typ „Desktop App“ aus und drücke den Create Button. Unter OAuth 2.0 Client IDs siehst du nun einen neuen Eintrag. Hier drücken wir ganz rechts den Download Button, wodurch eine Datei namens „client_secret_<…>.json“ heruntergeladen wird.

Google Cloud Platform - download credentials

Öffne diese Datei auf deinem PC mit einem Texteditor. Den Inhalt kopieren wir gleich auf den Raspberry Pi.

 

SSH Zugriff auf den Raspberry Pi und Einstellungen setzen

Bevor wir weitermachen, müssen wir uns per SSH auf den Raspberry Pi einloggen. Danach erstellen wir im Home Verzeichnis (/home/pi) eine Datei namens „assistant.json“ und fügen den Inhalt der Textdatei dort ein.

sudo nano ~/assistant.json

Speichere anschließend mit STRG+O und schließe den Editor mit STRG+X.

Machen wir weiter mit den Einstellungen. Zunächst prüfen wir, ob der Ton und Mikrofon aktiv sind:

/home/pi/AIY-projects-python/checkpoints/check_audio.py

Nun können wir ggf. die Lautstärke anpassen, falls der Ton zu laut ist:

alsamixer

Mit den Pfeiltasten können wir den Ton lauter/leiser stellen.

alsamixer

Spracherkennungs-Demo

Wir führen nun das erste Demo Skript aus:

/home/pi/AIY-projects-python/src/examples/voice/assistant_library_demo.py

Hier wird uns nun eine URL angezeigt, unter der wir uns authentifizieren müssen. Anschließend bekommen wir einen Code, den wir dort eingeben. Danach kannst du mit „Hey Google“ die Spracherkennung aktivieren und z.B. Fragen stellen.

Weitere Beispiele findest du in der Übersichtsseite. Ein Blick auf die weiteren Skripte lohnt sich definitiv, da man hier Inspiration für weitere Aufgaben bekommen kann. In den Skripten kann man auch die Sprache einstellen / ändern.

In meinen Augen ist besonders der Speech-to-Text Service sehr interessant. Idealerweise gibt es dafür auch ein Beispielskript für Python:

Dass Google seine Dienste nicht völlig umsonst anbietet, versteht sich leider von selbst. So sind im Moment bis zu 60 Minuten pro Monat kostenlos; danach kostet jede Minute 0.024 USD. Der Vorteil des Buttons besteht also darin, dass nicht jeglicher Text umgewandelt wird, sondern nur der relevante Teil.

 

Fazit

Das AIY Voice Kit von Google für den Raspberry Pi bietet meiner Meinung nach einen netten Einstieg in einige der Cloud Services von Google. Natürlich ist es zum Teil auch Googles Strategie hier die eigenen APIs zu promoten. Nichtsdestotrotz muss man sagen, dass sie auch eine der besten Sprach-APIs im Moment haben.

Dennoch könnte man die Hardware auch ohne Google Services nutzen. Hier könnte man andere kostenlose oder Open-Source Lösungen verwenden. Umgesetzt habe ich das zwar noch nicht, aber wenn dafür größeres Interesse besteht, kann ich dies in Zukunft tun.

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!