«Ok Googoo»: Kleine Einführung in die Spracherkennung
Hintergrund

«Ok Googoo»: Kleine Einführung in die Spracherkennung

Kevin Hofer
28.5.2018

Spracherkennung ist ein alter Zopf. Trotzdem wird aktuell das Zeitalter der intelligenten Assistenten heraufbeschworen, die uns jeden Wunsch von den Lippen abhören. Wieso soll Spracherkennung genau jetzt unser Leben revolutionieren? Zum Verständnis hilft ein Blick zurück.

Was würde wohl Thomas Edison dazu sagen, wenn ich ihn als einen der Begründer der Spracherkennung bezeichnen würde? Er würde diese Aussage wohl sofort aufnehmen und vermarkten. Edison war nebst genialem Erfinder auch skrupelloser Geschäftsmann, der andere gerne für seine Zwecke instrumentalisierte. Nichts desto trotz, kann Edisons Phonograph als eines der wegbereitenden Geräte für die Spracherkennung angesehen werden. Mit ihm liess sich Ton mechanisch aufnehmen und wiedergeben, eine der Grundbedingungen für Spracherkennung.

Aber genug der Geschichtsstunde. Du bist hier, weil du etwas über Spracherkennung erfahren möchtest. Mit der Sprache grenzen wir Menschen uns ganz klar von den Tieren ab. Gewisse Tiere kommunizieren zwar auch mit Tönen, uns Menschen steht aber das komplexe System der Sprache zur Verfügung.

Im Folgenden gebe ich einen groben Überblick darüber, wie Spracherkennung funktionieren kann. Ich fokussiere dabei auf die Wichtigsten und lasse auch bewusst Dinge aus.

Etwas Linguistik zu Beginn

Das Phon oder auch Laut ist die kleinste durch Segmentierung gewonnene lautliche Einheit. Das kann beispielsweise ein «a» sein. Das Phonem im Gegensatz ist die kleinste Bedeutungsunterscheidende Einheit des Lautsystems einer Sprache. Wo wir es beim Phon lediglich mit dem Laut zu tun haben, hat das Phonem bereits eine sprachliche Bedeutung. Phoneme sind die Bausteine einer Sprache.

Ein Beispiel gefällig? Bei uns im Deutschen (und auch Schweizerdeutschen) wird das «r» auf verschiedene Arten ausgesprochen. Ein Thurgauer produziert das Phon hinten, ein Berner vorne. Die Bedeutung von «r» bleibt aber die selbe. Folgendes Video erklärt das Ganze.

Wir Menschen verleihen Sprache beim Hören durch die Phoneme Bedeutung. Spracherkennung kann aber nur Phone akustisch wahrnehmen. Um Phoneme zu verstehen, benötigt die Spracherkennung ein phonetisches Wörterbuch. Das geht dann weiter als simples Hören. Aber bleiben wir beim Hören. Dabei handelt es sich um einen komplexen Vorgang, der verschieden Probleme mit sich bringt:

  • Nebengeräusche: Nicht immer ist es in der Umgebung still. Auf der Strasse hast du Verkehrslärm, im öffentlichen Verkehr sprechen andere Personen miteinander. Hören impliziert auch immer das Filtern von Tönen.
  • Wortende und -anfang: Wo hört ein Wort auf und wo beginnt das nächste? Spricht jemand beispielsweise sehr schnell, können Wörter nicht eindeutig auseinandergehalten werden.
  • Jeder Laut ist einzigartig. Wir sprechen keinen Laut zweimal gleich. Noch grösser werden die Unterschiede bei anderen Personen. Herkunft, Alter, Geschlecht etc. beeinflussen die Phone, die wir erzeugen.
  • Homophone, also Wörter die gleich ausgesprochen werden, aber unterschiedliche Bedeutungen haben, müssen unterschieden werden (z.B. Bank/Bank).
  • Sätze/Ausrücke können komplett falsch verstanden werden. Das können Song-Verhörer wie «Anneliese Braun» oder «Agathe Bauer» sein. Das sind zwar fremdsprachige Beispiele, aber auch auf Deutsch (respektive Schweizerdeutsch) verhören wir uns.

Hinzu kommt die Syntax und die Semantik mit denen unser Gehirn die Wörter beim Hören dekodiert. Hören ist also ein sehr komplexer Vorgang. Wir Menschen haben den Eindruck, dass das Hören und Verstehen einfach sind. Aber so einfach ist es eben nicht.

Wie können Computer Sprache verstehen?

Ich gehe hier auf vier Arten der Spracherkennung ein:

  • Einfache musterbasierte Suche (Simple Pattern Matching)
  • Muster- und Eigenschaftenerkennung (Pattern and feature analysis)
  • Sprachmodelle und statistische Analyse (Language modelling and statistical analysis)
  • Künstliches neuronales Netzwerk (Artificial neural network)

Diese bauen aufeinander auf. Im Folgenden gehe ich kurz auf die einzelnen Punkte ein. Um einen kleinen Überblick zur Funktionsweise von Spracherkennung zu erhalten, sollte das aber genügen.

Einfache musterbasierte Suche

«Bitte sprechen Sie Ihre Versicherungsnummer nach dem Piep.» Piep. «Sieben, Fünf, Drei, Neun …» Wer kennt das nicht? Der Call-Center-Roboter will von uns die nötigen Informationen, bevor wir mit einem Menschen sprechen können. Das ist ein Beispiel der einfachen musterbasierten Suche.

Bereits etwas ältere Mobiltelefone boten einfache Sprachanweisungen.  «Beliebt» war bei Nokia beispielsweise das Voice Dialing.
Bereits etwas ältere Mobiltelefone boten einfache Sprachanweisungen. «Beliebt» war bei Nokia beispielsweise das Voice Dialing.
Quelle: Screenshot Youtube

Bei der einfachen musterbasierten Suche ist die Anzahl an Auswahlmöglichkeiten stark limitiert. Die Spracherkennung muss also weder Syntaxanalyse machen noch die Bedeutung des Satzes verstehen. Es handelt sich nicht um Spracherkennung im engeren Sinn. Das System muss zwischen einer begrenzten Anzahl an Lautmustern unterscheiden können, um zu funktionieren.

Muster- und Eigenschaftenerkennung

Das Vokabular bei der einfachen musterbasierten Suche ist sehr limitiert. Frühe Spracherkennungssysteme waren häufig auf diese Art beschränkt. Sie wurden für einen spezifischen Bereich (im obigen Beispiel ein Callcenter) entwickelt und funktionierten relativ gut auf ihrem limitierten Gebiet. Moderne Spracherkennung ist aber fähig, tausende und abertausende Wörter zu verstehen. Wie klappt das?

Eine Möglichkeit wäre es, jemanden zu bitten, sich mit einem Wörterbuch hinzusetzen und jedes Wort daraus ein paar Mal zu lesen. So könnte eine Datenbank zusammengestellt werden, auf welche die Spracherkennung zugreifen kann. Hört sich aufwendig an? Ist es auch und dazu äusserst ineffizient.

Wieso sollte ein System alle Wörter in einem Wörterbuch auswendig lernen, wenn diese Wörter alle aus denselben Phonen oder Phonemen bestehen? Die Software könnte doch einfach die Phoneme lernen und die Wörter aus diesen zusammensetzen.

Spracherkennung, die auf diesem System basiert, funktioniert folgendermassen: Die Erkennung hört eine Äusserung über ein Mikrophon ab. In einem ersten Schritt wird diese mit einem A/D-Converter digitalisiert. Die Daten werden dann in ein Spektrogramm konvertiert und schliesslich in überlappende akustische Frames geteilt. Diese dauern entweder 1/25 oder 1/50 einer Sekunde. Sie werden analysiert und auf Sprach-Komponenten untersucht. Die gesamte Äusserung kann so in Wörter gesplittet werden und die Schlüsselelemente davon mit einem phonetischen Wörterbuch abgeglichen werden. So lässt sich eruieren, was wahrscheinlich gesagt wurde. Wahrscheinlich ist denn auch das Schlagwort bei der Spracherkennung: Niemand ausser der Sprecherin/dem Sprecher kann wissen, was sie/er genau gemeint hat.

Theoretisch ist es so möglich, jede Äusserung zu verstehen, indem die einzelnen Phoneme gefiltert werden. Statt x-tausend Wörter zu lernen, muss Spracherkennung so nur etwa 40 Phoneme (im Deutschen) kennen. Selbstverständlich ist dann immer noch ein phonetisches Wörterbuch von Nöten, um die einzelnen Wörter auszumachen.

Die meisten Spracherkennungen dieses Systems werden aufgrund von Feedback der Benutzer mit der Zeit besser. Ein Beispiel für diese Art der Spracherkennung sind frühe Versionen der Software Dragon Naturally Speaking. Mit dieser lassen sich Texte automatisch verschriftlichen.

Sprachmodelle und statistische Analyse

Sprache zu erkennen ist aber noch komplexer als Phoneme zu identifizieren und diese mit gespeicherten Daten abzugleichen. Wieso? Falls du’s bereits vergessen hast, scrollst du am besten wieder hoch und liest die vier Punkte unter dem Titel «Sprache hören und analysieren».

Variable Sprache, Aussprache, Homophone und Missverständnisse sorgen für viele Fehler bei Spracherkennungen, die lediglich auf Muster- und Eigenschaftenerkennung basieren. Hier können Sprachmodelle Abhilfe schaffen.

Sprache besteht nicht aus einfach zufällig aneinandergereihten Tönen. Gesprochene Wörter beziehen sich auf die Vorhergehenden oder Nachkommenden. Sprache ist Kontextabhängig. Nach einem Personalpronomen folgt beispielsweise ein Verb, also «ich bin» oder «du hast» oder «wir wollen». Und Adjektive stehen vor Nomen.

Wenn die Spracherkennung nun versucht, gesprochene Sprache zu verstehen und den Beispielsatz «Du hast ein ******* Auto.» soweit erkennt, kann die Erkennung davon ausgehen, dass es sich beim fehlenden Wort um ein Adjektiv handelt. Wenn zumindest ein Phonem des Wortes erkannt wurde, hat die Spracherkennung einen weiteren Hinweis.

Mehr oder weniger alle modernen Spracherkennungen benutzen zumindest teilweise Sprachmodelle und statistische Analyse. Sie beziehen Wahrscheinlichkeiten mit ein, welche Phoneme auf andere folgen oder auch die Wahrscheinlichkeit welche Wörter auf andere folgen. Auf Basis dieser Daten wird ein sogenanntes «Hidden Markov Model» erstellt.

Künstliches neuronales Netzwerk

Hidden Markov Models werden seit den 1970er Jahren in der Spracherkennung verwendet. Sie funktionieren sehr zuverlässig. Unser Gehirn verwendet bei der Spracherkennung aber keine Hidden Markov Models. Das funktioniert bei uns über dichte Schichten von Gehirnzellen, die Informationen, welche über die Cochleae (Hörschnecke) eingehen, verarbeiten.

In den 80er-Jahren haben Wissenschaftler deshalb Computermodelle entwickelt, die nachahmten, wie unser Gehirn Muster erkennt. Aufgrund der Effektivität von Hidden Markov Models blieb dieser Ansatz aber länger eine Nebenerscheinung. In den letzten Jahren haben Wissenschaftler aber damit begonnen, die künstlichen neuronalen Netzwerke mit dem Hidden Markov Model zu verbinden. So lässt sich die Wahrscheinlichkeit von besserem Verständnis der Spracherkennung weiter erhöhen.

Hidden Markov Models und künstliche neuronale Netzwerke finden heute unter dem Schlagwort «Deep Learning» Verwendung. Darüber werde ich übrigens demnächst einen Artikel schreiben. Deshalb belasse ich es für jetzt auch mal bei den absoluten Basics.

Zeitalter der intelligenten Assistenten?

Digitale Assistenten wie Siri, Cortana etc. tun heute mehr als nur Sprache verstehen. Dank Natural Language Processing verstehen sie auch die Bedeutung des Gesagten. So hat das Gesagte auch tatsächliche Konsequenzen. Wenn ich beispielsweise nach dem Wetter frage, erhalte ich tatsächlich Informationen dazu. Das geht aber noch weiter wie untenstehendes Video zeigt.

Heisst das jetzt, dass wir künftig nur noch mit Computern sprechen, statt ihnen Befehle über eine Tastatur zu geben? Wie du oben gelesen hast, sind Hidden Markov Models bereits seit den 1970er Jahren bei Spracherkennung Standard. Einigermassen zuverlässige Diktiersoftware gibt es seit den 1990ern. Trotzdem sehe ich persönlich wenig Menschen, die mit ihrem Computer oder Smartphone sprechen.

Woran liegt das? Wir Menschen haben uns nicht unabsichtlich mehrere Arten der Kommunikation ausgedacht. Mündliche Sprache ist direkt und unverblümt. Wenn wir hingegen tiefere Gedanken ausdrücken wollen, bietet sich das Schreiben an. Schreiben ist aber nicht nur dadurch ein intimerer Prozess als Sprechen. Unsere Gedanken sind beim Schreiben zuerst nur für uns. Beim Sprechen kann jeder mithören.

Auch wenn Spracherkennung heute fast so zuverlässig ist wie wir Menschen (eine Word Error Rate um fünf Prozent), werden wir auch künftig, zumindest teilweise, schriftlich mit Computern kommunizieren. Einfach, weil Sprechen und Schreiben zwei komplett unterschiedliche Dinge sind und sie sich je nach Situation mehr oder weniger anbieten.

14 Personen gefällt dieser Artikel


User Avatar
User Avatar

Technologie und Gesellschaft faszinieren mich. Die beiden zu kombinieren und aus unterschiedlichen Blickwinkeln zu betrachten, ist meine Leidenschaft.


Diese Beiträge könnten dich auch interessieren

Kommentare

Avatar