Neu Parilem ist online: in fünf Sprachen, offen bis zur Quelle, ohne Werbung. Warum es uns gibt

Woher weiß eine Maschine, dass du „öffne“ gesagt hast?

Du sagst dasselbe Wort zweimal, unterschiedlich schnell. Wie bringt die Maschine beides zur Deckung? Die Antwort liegt in einem eleganten Algorithmus, der die Zeit dehnen lässt.

Informatik · Spracherkennung — Bild: Parilem

Wenn du „öffne" sagst, verlässt eine Luftwelle deinen Mund. Ein Mikrofon macht daraus eine Folge von Zahlen. Und irgendwo entscheidet dann etwas, dass diese Zahlenfolge „öffne" bedeutet. Was dazwischen geschieht, ist nicht, dass der Rechner Sprache versteht — es ist etwas viel Bescheideneres und viel Raffinierteres.

Zuerst: Was ist Stimme?

Beim Ausatmen bringt Luft aus der Lunge die Stimmlippen im Kehlkopf zum Schwingen: bei Männern etwa hundert- bis hundertfünfzigmal pro Sekunde, bei Frauen zwei- bis zweihundertfünfzigmal. Das entstehende rohe Summen wird anschließend von Rachen, Nasenhöhlen und Mund geformt.

Diese Unterscheidung zählt. Die von den Stimmlippen erzeugte Quelle und der vom Mund aufgeprägte Filter sind zwei verschiedene Dinge. Was einen Vokal vom anderen trennt, ist nicht die Geschwindigkeit der Schwingung, sondern die Form, die der Mund gerade annimmt. Genau das muss der Maschine beigebracht werden.

Von der Welle zu Zahlen

Um eine kontinuierliche Welle in einen Rechner zu bekommen, muss man sie in Abständen abtasten. Die klassische Regel lautet: Ist die Abtastrate mehr als doppelt so hoch wie die höchste Frequenz im Signal, lässt sich die ursprüngliche Welle verlustfrei rekonstruieren. Schaut man oft genug hin, geht nichts verloren.

Danach wird das Signal gesäubert: in kurze Fenster zerlegt und durch Filter geschickt. Ziel ist, das bei der Aufnahme eingefangene Rauschen zu verringern und etwas Ruhigeres übrig zu lassen.

Wo beginnt die Sprache?

Ein Mikrofon nimmt durchgehend auf, doch das Gesagte macht nur einen kleinen Teil der Aufnahme aus. Der Rest ist Stille und Raumgeräusch. Das System muss die Sprache erst finden.

Dafür genügen zwei einfache Maße: die Energie eines Abschnitts und wie oft das Signal die Nulllinie kreuzt. In der Stille ist die Energie gering. Bei Zischlauten ist die Energie gering, die Nulldurchgänge aber zahlreich. Beides zusammen trennt Sprache erstaunlich gut vom Rauschen.

Klang auf wenige Zahlen eindampfen

Eine Sekunde Audio sind Tausende von Abtastwerten. Sie direkt zu vergleichen ist schwerfällig und sinnlos. Stattdessen wird jedes kurze Fenster auf einige Koeffizienten reduziert, die die Form des Ansatzrohrs in diesem Moment beschreiben. Das Verfahren heißt lineare prädiktive Codierung.

Der Gedanke dahinter ist schön: Versuche, jeden Abtastwert als gewichtete Summe der wenigen davorliegenden vorherzusagen. Information trägt nicht, wie gut die Vorhersage ist, sondern welche Gewichte sie gut machen. Diese Gewichte codieren die Geometrie des Ansatzrohrs. Aus Tausenden Zahlen wird eine Handvoll Koeffizienten.

Gleiches Wort, anderes Tempo

Nun das eigentliche Problem. Dieselbe Person sagt „öffne" zweimal, unterschiedlich schnell. Die beiden Aufnahmen sind verschieden lang, ihre Spitzen liegen an anderen Stellen. Ein punktweiser Vergleich funktioniert nicht.

Die Lösung ist die dynamische Zeitverzerrung: Erlaube der Zeit, sich zu dehnen. Der Algorithmus sucht den Pfad, der Anfang mit Anfang und Ende mit Ende verbindet und die Gesamtabweichung dabei minimiert. Eine gedehnte Silbe der einen Aufnahme lässt sich einer knappen der anderen zuordnen.

Anschauung Die Zeit dehnen

Stell dir zwei Gummibänder vor, auf denen dasselbe Lied steht, eines davon gedehnt. Lege sie nebeneinander und finde die geringste Dehnung, die nötig ist, um die Buchstaben zur Deckung zu bringen. Genau das leistet die dynamische Zeitverzerrung — mit Zahlen.

Das System hält für jeden Befehl eine gespeicherte Vorlage bereit. Trifft eine neue Äußerung ein, wird sie mit jeder Vorlage verglichen; die geringsten Kosten gewinnen. Liegen diese Kosten unter einer festgelegten Schwelle, gilt der Befehl als erkannt; sonst sagt das System ehrlich, dass es ihn nicht kennt.

Wo steht das heute?

Diese Architektur wurde gebaut, um fünfzehn türkische Befehle zu erkennen — die Ziffern null bis neun sowie öffnen, schließen, löschen, abbrechen und suchen. Für einen kleinen, geschlossenen Wortschatz reicht sie noch immer mehr als aus.

Heutige Sprachassistenten vergleichen keine Vorlagen; sie nutzen neuronale Netze, trainiert auf Millionen Stunden Sprache. Der Unterschied ist nicht nur die Größenordnung: Die neueren Systeme sind nicht an einen Wortschatz gebunden und verarbeiten auch Sätze, die sie nie gehört haben.

Die ersten Glieder der Kette haben sich dennoch nicht geändert. Zu finden, wo Sprache beginnt, das Signal auf brauchbare Koeffizienten zu bringen, zeitliche Verschiebungen zu verzeihen — das steckt in irgendeiner Form noch in jedem Sprachsystem.

Worauf beruht dieser Beitrag?

Der Text stützt sich auf Selim Kusursuz' Überblicksarbeit Türkische Spracherkennung (2019) und das dort untersuchte Modell.

  1. Rabiner, Schafer, Digital Processing of Speech Signals.
  2. Baygün, Entwicklung eines Spracherkennungssystems für türkische Befehle, Masterarbeit, Universität Pamukkale, 2006.
  3. LeCun, Bengio, Hinton, Deep learning, Nature, 2015.
Selim Kusursuz

Selim Kusursuz

Gründer und Autor 5 Beiträge

Studiert Computernetzwerksysteme in Paris-Saclay, Schwerpunkt Autonome Systeme. Arbeitet in Mathematik und Informatik. Spricht Französisch, Englisch und Türkisch gut.

Alle Beiträge ansehen

Das könnte dich auch interessieren

Ausgewählte Beiträge aus demselben Themenfeld.

Informationssuche 7 Min.

Wie findet eine KI das richtige Dokument?

Die Antwort eines Assistenten, der die eigenen Aufzeichnungen eines Unternehmens liest, hängt davon ab, welche Seiten man ihm reicht. Diese Arbeit misst, wie eine dreißig Jahre alte Wortsuche neuronale Netze übertraf.