Offline-Sprachsteuerung zu Hause: Die entscheidende Hürde

Ich bin ein ziemlicher Möchtegern-Datenschutzverfechter, da darf jeder gern und zurecht mit Fäkalien nach mir schmeißen. Weil: Wir haben eine Alexa im Wohnzimmer rumstauben. Und ich hasse mich ein bisschen dafür, dass ich nicht ausreichend kompromisslos und gemein bin, die Abschaffung durchzusetzen. Lord knows I tried.

Der einzige Grund, warum diese Wanze aktuell bei uns immer noch genutzt wird, und eine Abschaffung derzeit unüberwindbaren Gegenwind durch den Rest der Familie auslöst, ist die Steuerung von Musik. Sonst haben wir nix Nennenswertes - alles andere Smarthome-ähnliche oder Steuerungswürdige existiert im geschlossenen Kreislauf ohne Zugriff von außen nach innen (oder umgekehrt) und wird nicht per Sprache bedient. Einen Lichtschalter können wir schon noch selber bedienen.

Aber das mit der Steuerung von Musik, ohne die Dienste einer der Datenkraken zu nutzen, das ist ein Problem. Und eines, dessen Überwindung mir aktuell nahezu unmöglich erscheint.

Wenn ich die Alexa abschaffen und durch ein eigenes, datenschützendes, OFFLINE nutzbares Pendant ersetzen will, brauche ich eine solide Datenbasis. Die ist der Grundstein für alles. Alexa (oder die Pendants von Google, Apple, Microsoft et al) hat zwar ihre Macken bei der Spracherkennung, aber insgesamt funktioniert sie doch ziemlich gut. Auch ein Wechsel der Sprache von Deutsch nach Englisch etwa stellt kein Problem dar, wenn man Künstler mit englischem Namen auch englisch ausspricht.

Erstmal ein Mini-Exkurs in Sachen Technik, damit die Unwissenden verstehen, wie so ein Home Assistant eigentlich funktioniert:

Wie läuft denn so eine Sprachsteuerung eigentlich ab?

  1. Es braucht zuerst mal ein Input-Gerät, das auf ein bestimmtes Schlüsselwort reagiert, im Fachkreisen auch Snüffelstück genannt! Also ein kleiner Computer, z.B. ein Echo von Amazon oder irgendein Raspberry Pi mit draufgeschnalltem Mikro, der lauscht permanent und guckt, ob ein Geräusch einem festgelegten Muster entspricht, nämlich dem Muster zur Aktivierung. Das Aktivierungsgeräusch kann zum Beispiel ein Wort sein. Im Falle von Alexa ist es...? Genau.
    Wird also ein Aktivierungswort erkannt, dann fängt der Computer an, die nachfolgenden Geräusche aufzunehmen und temporär abzuspeichern, bis man die Klappe hält und alles still ist. Dann endet die Aufnahme erst mal und wird weiter verarbeitet.
  2. Jetzt kommt eine Technik zum Einsatz, die nennt sich Speech-To-Text (STT). Der Computer untersucht, ob die Geräusche, die er da eben aufgenommen hat, verwertbar sind. Und das tut er, indem er einen Vergleich anstellt. Als Basis für den Vergleich gibt es große Datenmengen an Sprachaufnahmen in einer Datenbank. Jeder Sprachaufnahme ist ein passender Textbaustein zugeordnet. Wenn der Computer also denkt "OHO! Das aufgenommene Geräusch passt zu einem Eintrag in der großen Sprachdatenbank", wird er den gefundenen Eintrag aus der Datenbank anschauen und sich den zugehörigen Texteintrag schnappen. Mit dem Text kann man dann weiter arbeiten.
  3. Nun muss der ermittelte Text genutzt werden, um die gewünschte Aktion durchzuführen, auch oft "Intent" genannt. Typische Aktionen sind im Kontext der Home Automation zum Beispiel folgende, dem Muster "Aktivierungswort", "Intent" folgend:
    • Dofus, Wohnzimmerlampe anschalten
    • Richard, Wieviel Uhr ist es?
    • Tina, Timer stellen auf 5 Minuten
    • Computer, lies mir ein Märchen vor
    • HAL, erzähl mir einen Witz
    • Mycroft, nächstes Lied
    • Mycroft, spiele Smooth Operator von Sade
  4. Der Intent wird analysiert, und wenn es dafür eine passende, vorher definierte Aktion gibt, wird diese durchgeführt. Es gibt also eine Intent-Datenbank, in der Textbausteine existieren, denen wiederum Aktionen zugeordnet sind. Im letztgenannten Beispiel, bei dem der Intent lautet, ein bestimmtes Lied von einem bestimmten Künstler abzuspielen, wird eine Aktion ausgeführt, die eine Schnittstelle eines Musikdienstes mit genau den notwendigen Infos (Liedtitel, Künstler) beschickt.
  5. Der Musikdienst wertet die Anfrage aus und schickt eine Rückmeldung. Entweder er hat gefunden, wonach gesucht wird und sagt: "YEAH, los geht's!" (und schickt dann gleich noch das gewünschte Lied mit). Oder er findet halt nix und sagt "Sorry, Pech." Je nachdem, welche Antwort kommt, will man dem Auftraggeber, der den Sprachbefehl gegeben hat, noch eine Erfolgs- oder Fehlermeldung geben. Die wird zunächst mal wieder in Textform geliefert.
  6. Nun kommt die Technik Text-To-Speech (TTS) zum Einsatz. Die Rückmeldung in Textform wird vom Computer in hörbare Sprache umgewandelt. Es gibt ziemlich viel, auch sehr fortgeschrittene, Software im Bereich TTS, sowas ist auch wichtig, wenn es um Barrierefreiheit geht. Die Qualität reicht von Dr. Sbaitso (interaktiv, ausprobieren, ein Stück Computergeschichte!) bis zur aktuellen Fassung von Alexa, die sich sehr menschlich anhört. Mir ist im Grund die Qualität der Sprachausgabe egal, Hauptsache, ich kann sie verstehen.
  7. Fertig - also entweder spielt das Lied und man ist zufrieden, oder man muss halt einen neuen Intent losschicken.

Das Problem mit der Datenbasis

Zurück zur Datenbasis - warum ist die ein Problem?

Wenn der Computer euer Gekrächze mit einer Datenbasis vergleichen soll, um die Wünsche richtig zu interpretieren und in eine verarbeitbare Textform zu bringen (s.o. Schritt 2), sollte ein möglichst großer, vielseitiger Datenschatz mit Sprachvarianten vorliegen, sonst findet der Computer nichts.

Wer einen Home Assistant bauen will, der datenschutzfreundlich ist, greift lieber nicht auf die Services der großen Datenkraken wie Amazon oder Google zurück. Die bieten zwar Schnittstellen zu ihren Spracherkennungssystemen, aber sie saugen dann auch gleich alle Daten ein, die ihr so schickt, und behalten sie natürlich. Das ist nicht cool. Wir wollen das nicht. Abgesehen davon dürfte die Datenkrakendatenbasis, selbst wenn man an sie rankäme (was nie passieren wird), so gewaltig im Volumen sein, dass Amazon euch mal müse-heiser auslacht. Die paar lausigen Terabytes, die ihr vielleicht an Kapazität in Form von halbverwesten Disketten rumfliegen habt... *Ha, Ha, Ha.*

Was bleibt also übrig? Es muss eine Datenbasis genutzt werden, die auf eure halbverwesten Disketten passt und zudem noch kostenlos/Open Source/frei nutzbar ist. Gibt's durchaus! Zum Beispiel das Common Voice Project von Mozilla. So edel und toll das Projekt ist, so wenig vergleichbar ist die Qualität bzw. die Datenmenge mit dem, was Amazon und Google über die Jahre eingesammelt haben. Abgesehen scheint die Zukunft des Projekts aktuell noch eher unklar zu sein.

Stellt euch folgende Größenordnung als Beispiel vor: Die Namen von 50 Millionen Songs, die Namen von Millionen von Künstlern, in zig Sprachen mit zig Aussprachen, da kommt richtig was zusammen. Und dann noch die Daten des normalen "Lexikons", also Substantive, Verben, Adjektive, blabla... ebenfalls in zig Sprachen mit zig Aussprachen. Da kommt noch mehr zusammen.

Und keine mir bekannte Sprachdatenbank - abgesehen von denen bei Amazon, Apple, Google et al - bedient einen halbwegs aktuellen, umfassenden Musikkatalog, der sich wirklich als Grundlage für eine halbwegs zuverlässige, mehrsprachige Musiksteuerung eignen würde. Genau das ist mein Problem. Und genau deshalb kriege ich die Alexa aktuell noch nicht aus meinem Haushalt verbannt.

Ich bleibe dran und berichte, wenn Fortschritte zu verzeichnen sind.