© LuckyStep/Shutterstock.com
Google Home auf dem Raspberry Pi installieren

Okay Google, hier spricht die Himbeere


Sprachassistenten sind heutzutage in aller Munde und werden immer beliebter. Die stylischen kleinen Geräte sind mittlerweile ein ständiger Begleiter im Alltag geworden. Leider sind sie nicht gerade billig. Daher sehen wir uns in diesem Artikel an, wie wir mit einem Raspberry Pi und einigen zusätzlichen Teilen einen eigenen Google Home aufbauen können. Damit es nicht zu theoretisch wird, verwenden wir den Raspberry Google Home, um einen Lüfter zu aktivieren, der uns an heißen Sommertagen ein wenig Abkühlung bringt.

Google Home ist ein sprachgesteuerter Lautsprecher in schönem Design. Er versteht natürlich Sprachkommandos, kann aber auch durch Berührung der Geräteoberfläche bedient werden. Die Einrichtung ist sehr einfach. Allerdings sollte man sich nicht zu viele Gedanken darüber machen, wie das WLAN-Passwort aus dem Smartphone in Google Home gekommen ist. Den Google Home Mini kann man schon für 59 € im Google Store [1] kaufen.

Hinter der schicken Fassade von Google Home arbeitet der Google Assistant. Er wird mit den Schlüsselworten „Okay Google“ oder „Hey Google“ aktiviert. Ein wirklich nicht zu vernachlässigendes Manko des Google Home Assistant ist, dass er nur schlecht hessisch versteht. Bemerkenswert ist allerdings, dass er mit dem Begriff „Äbbelwoi“ tatsächlich etwas anfangen kann. Die Antworten des Assistenten wirken lebendiger als bei ähnlichen Geräten anderer Hersteller. Es ist allerdings etwas gewöhnungsbedürftig, zwischen der Musikwiedergabe Werbeeinspielungen zu bekommen.

Varianten des Google Assistant

Es gibt zwei Möglichkeiten, den Sprachassistenten von Google zu verwenden: die Google Assistant Library und den Google Assistant Service. Wir verwenden hier die Google Assistant Library. Diese Anleitung geht davon aus, dass sie schon Accounts bei den entsprechenden Google-Diensten haben und diese vollständig aktiviert sind, was auf einen Entwickler vermutlich zutrifft. Falls Ihnen die Zugänge zu einigen Diensten fehlen, werden Sie üblicherweise direkt darauf aufmerksam gemacht. Sie müssen dann in den sauren Apfel beißen und sich erst einmal registrieren. Das klappt normalerweise recht problemlos, kann aber unter Umständen etwas Zeit in Anspruch nehmen. Sie sollten allerdings Ihren Posteingang im Auge haben, da hier einige E-Mails eintrudeln, die Sie bestätigen müssen. Dem Autor drängte sich allerdings die Frage auf, ob wirklich so viele unterschiedliche Cloud-Dienste nötig sind, um einen Sprachassistenten im Internet zu erreichen.

Raspberry Pi vorbereiten

Damit die Google Assistant Library auf dem Raspberry Pi (Typ 3) läuft, sind einige Vorarbeiten nötig. Der allererste Schritt ist die Installation des Betriebssystems auf der microSD-Karte. In diesem Beispiel verwenden wir das Image „Raspbian Stretch with desktop and recommended software“ (2019-04-08-raspbian-stretch-full.img); Sie können es auf der Homepage des Raspberry-Projekts [2] finden. Bitte schreiben Sie das Image mit einem Tool Ihrer Wahl auf eine microSD-Karte mit mindestens 8 Gigabyte Speicherplatz. Für die Ein- und Ausgabe von Sprache benötigen wir zusätzlich eine USB-Soundkarte. Sie kann bei Amazon [3] bezogen werden. An die Soundkarte können Sie ein beliebiges Mikrofon und einen Lautsprecher anschließen. Wenn Sie neben der Soundkarte auch noch Maus und Tastatur an den Raspberry Pi anschließen wollen, wird der Platz bei den USB-Ports etwas knapp. Eine von vielen Lösungen ist, einfach das Gehäuse der Soundkarte zu entfernen (Abb. 1).

mohr_googlehome_1.tif_fmt1.jpgAbb. 1: Ohne Gehäuse nimmt die Soundkarte sehr viel weniger Platz weg

Die Soundkarte wird von Raspbian üblicherweise ohne Probleme erkannt. Mit den folgenden zwei Kommandos können wir herausbekommen, welche Karten- und Gerätenummer unsere Soundkarte hat. Das Kommando aplay -l listet alle Soundausgabegeräte auf. Das Kommando arecord -l hingegen alle für die Soundeingabe (Listing 1).

Listing 1: Soundein- und -ausgabegeräte auflisten

pi@raspberrypi:~ $ aplay -l **** Liste der Hardwaregeräte (PLAYBACK) **** Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA] Sub-Geräte: 7/7 Sub-Gerät #0: subdevice #0 Sub-Gerät #1: subdevice #1 Sub-Gerät #2: subdevice #2 Sub-Gerät #3: subdevice #3 Sub-Gerät #4: subdevice #4 Sub-Gerät #5: subdevice #5 Sub-Gerät #6: subdevice #6 Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI] Sub-Geräte: 1/1 Sub-Gerät #0: subdevice #0 Karte 1: Set [C-Media USB Headphone Set], Gerät 0: USB Audio [USB Audio] Sub-Geräte: 1/1 Sub-Gerät #0: subdevice #0 pi@raspberrypi:~ $ arecord -l **** Liste der Hardwaregeräte (CAPTURE) **** Karte 1: Set [C-Media USB Headphone Set], Gerät 0: USB Audio [USB Audio] Sub-Geräte: 1/1 Sub-Gerät #0: subdevice #0 pi@raspberrypi:~ $

Wenn wir die Werte für Karten- und Gerätenummer ermittelt haben, erzeugen wir im Home Directory des Users pi eine Datei mit dem Namen .asoundrc. In diese tragen wir unter pcm die entsprechenden Werte ein. In Listing 2 sehen Sie die Beispielkonfiguration für die eingangs genannte USB-Soundkarte. Produkte anderer Hersteller können andere Werte haben.

Listing 2: „.asoundrc“

pcm.!default { type asym capture.pcm "mic" playback.pcm "speaker" } pcm.mic { type plug slave { pcm "hw:1,0" } } pcm.speaker { type plug slave { pcm "hw:1,0" } }

Um zu überprüfen, ob unsere Einstellungen auch funktionieren, können Sie mit dem folgenden Kommando einen Sound abspielen:

speaker-test -t wav

Zum Testen des Mikrofons können Sie einfach mit folgendem Kommando einen Sound aufnehmen:

arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.raw

Um de...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang