c't 11/2019
S. 34
Praxis
Bastelprojekte: Offline-Sprachassistent
Aufmacherbild

Assistent unplugged

Raspi-Sprachassistent Snips ohne Cloud

Ein Sprachassistent, der funktioniert wie Alexa, Siri oder der Google Assistant und ganz ohne Sprachübertragung in die Cloud auskommt – das ist der Traum vieler Hausautomatisierer. Mit dem Projekt Snips und einem Raspberry Pi geht das ganz leicht.

Sprachassistenten funktionieren fast alle nach dem gleichen Prinzip: Die Mikrofone, eingebaut in „smarten“ Lautsprechern, Fernsehern und anderen Haushaltsgeräten, lauschen in den Raum und analysieren permanent das Gehörte. Eingebaut haben sie ein trainiertes Modell, um das sogenannte Hotword zu erkennen: „Alexa“, „Siri“ oder „Hey Google“. Wurde diese Phrase erkannt, schneiden sie das Gehörte mit und übertragen den Audiostream der nächten Sekunden an die Cloud des Herstellers. Der Nutzer erfährt das meist über einen Signalton und eine leuchtende LED. In der Cloud passiert dann die Analyse des Audio-Schnipsels. Das Gesprochene wird mit dafür trainierten neuronalen Netzen in Text übersetzt. Danach ist eine weitere Übersetzungsleistung nötig – aus einem transkribierten Text wie „schalte Lampe im Wohnzimmer ein“ muss ein weiteres System herausfischen, was der Nutzer damit gemeint hat, ob er zum Beispiel eine Frage gestellt oder einen Befehl gegeben hat. Neben der Absicht („Lampe ein“) muss das Programm Parameter in der Botschaft finden („im Wohnzimmer“).

Auf einige Absichten des Nutzers können die Hersteller-Clouds selbst antworten, etwa Wetterberichte erstellen oder einen mittelmäßigen Witz als Text zurückgeben. Für andere Fähigkeiten haben sich die Cloud-Anbieter Schnittstellen ausgedacht, über die Drittanbieter wie Hersteller von steuerbaren Lampen das Verständnis für weitere Sätze nachrüsten können. Bei Amazons Alexa heißen diese zum Beispiel Skills. Technisch gesehen sind das APIs auf dem Server eines Drittanbieters, die den in Text übersetzten Satz des Nutzers erhalten und ein Ereignis auslösen oder Text zurückgeben, den der Assistent dann vorliest.