Fachthema
Diskret mit Geräten sprechen
Wir kennen Sprachassistenten in Fahrzeugen, am Handy und bei Alexa im Wohnzimmer. Man kann mit Geräten nicht nur per Tasten, Touch und Bildschirm interagieren. Natürlich mit ihnen zu sprechen ist ein Trend, der auch vor Embedded Systems nicht halt macht.
Vor einigen Jahren war es noch Science-Fiction, wenn in Filmen mit Computern gesprochen wurde. Heute ist das die Realität. Wir kennen Sprachassistenten in Fahrzeugen, am Handy, und Alexa ist bereits in viele Wohnzimmer eingezogen. Man kann mit Geräten nicht nur per Tasten, Touch und Bildschirm interagieren. Natürlich mit ihnen zu sprechen ist ein Trend, der auch vor Embedded Systems nicht Halt macht. Der Haken an der Sache ist, dass Alexa und Co unsere Gespräche als iot Gerät in die Cloud schicken und dort die Rechenleistung nützen um diese in Befehle umwandeln. Voraussetzung dafür sind eine halbwegs leistungsfähige Internetverbindung, und dass es uns egal ist, dass unsere Gespräche und Daten mehr oder weniger unkontrolliert rund um den Globus schwirren. Beides für Embedded Systems sehr oft ein No-Go.
VUIs & NLP
Voice User Interfaces (VUI) für Embedded Systems müssen daher in der Lage sein, Sprache lokal im Gerät – man sagt auch „on the edge“ - zu verarbeiten, auszuwerten und in Befehle umzuwandeln. Es gibt dafür bereits spezielle Chips für Natural Language Processing (NLP). Diese können Signale von mehreren Mikrofonen auswerten, Hintergrundgeräusche ausblenden, auf einen Sprecher fokussieren, auf ein Schlüsselwort reagieren – so wie bei „OK Google“ oder „Hey Siri“, und aus den nachfolgenden Worten Befehle für die Weiterverarbeitung ableiten.
Auch moderne Applikationsprozessoren bieten heute spezielle Recheneinheiten um Artificial Intelligence (AI) und Machine Learning (ML) Anwendungen zu realisieren. Auch diese können gut für die Sprachverarbeitung genützt werden.
beschränkte Ressourcen in der Cloud
Für ausreichend Rechenleistung in Embedded Systems ist heute gesorgt. Trotzdem sind hier die Ressourcen im Gegensatz zur Cloud weiterhin beschränkt. Deshalb muss der Entwickler genau wissen, wie die geplanten Anwendungsfälle und der gewünschte Leistungsumfang die vorhandene Rechnerleistung und den zur Verfügung stehenden Speicher belasten.
Jede Sprache oder jeder Dialekt benötigen Speicher, um die dafür gelernten Modelle vorzuhalten. Darf man das Gerät bedienen, wie einem der Schnabel gewachsen ist, oder muss man sich gewählt ausdrücken? Wie groß ist der Befehlsumfang, und sollen ganze Sätze oder nur einzelne Befehlsworte erkannt werden?
Alles Entscheidungen, die den Verbrauch von vorhandenen Ressourcen beeinflussen. Wenn das Gerät sofort auf ein Schlüsselwort reagieren soll, muss es dauerhaft „horchen“. Was heißt das für den Energieverbrauch insbesondere bei batteriebetriebenen Systemen? Sprachsteuerungen werden noch weiter in viele neue Anwendungsbereiche eindringen. Die Mittel dafür stehen heute zur Verfügung. Ein spannendes neues Aufgabengebiet für den Embedded Entwickler.