Snips: Raspi-Sprachassistent ganz ohne Cloud bauen
Mit einem Raspberry Pi und dem Projekt Snips baut man einen Sprachassistenten á la Alexa, Siri & Co. zusammen, der ohne Sprachübertragung in die Cloud auskommt.
- Jan Mahn
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. Sie tragen ein trainiertes Modell in sich, 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ächsten Sekunden an die Cloud des Herstellers. Der Nutzer erkennt 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 etwa 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 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.