Acoustic Word-Recognizer

Spracherkennung mit Neuronalen Netzen

 

 

Beschreibung:

Der Acoustic Word-Recognizer (AWR) ist ein Programm zur Demonstration der Spracherkennungsfähigkeiten von Neuronalen Netzen. Das Programm ist in der Lage per Wave-Datei gespeicherte gesprochene Wörter zu erkennen. Die erkennbaren Wörter müssen vorher trainiert werden.

 

Grundidee:

Um die Spracherkennung zu bewerkstelligen wird eine Kombination von einem Kohonen-Netz (bzw. Self-Organization-Map, SOM) und einem Feedforward-Backpropagation-Netz benutzt. Außerdem werden die Daten der Wave-Datei mit Hilfe einer Fouriertransformation vorverarbeitet.

Die Verwendung eines Kohonennetzes für die Spracherkennung basiert auf einem Vorschlag von T. Kohonen [1]. Dabei wird das Netz benutzt um eine Karte von Phonemen (Lauten) zu erstellen. Dazu wird vorher das zu erkennende Wort aller 10 ms einer Fouriertransformation unterzogen um das Frequenzspektrum zu erhalten, hierbei stützt man sich auf die Erkenntnis das ein Phonem im Durchschnitt 10 ms lang ist. Das Kohonen-Netz besitzt genau so viel Inputneuronen wie Frequenzstützpunkte extrahiert werden. Diese Menge von Datenvektoren wird dann der Reihe nach an die Inputneuronen angelegt, die die Intensität der gemessenen Frequenzen aufnehmen. Das Neuron dessen Gewichtsvektor dem Datenvektor am ähnlichsten ist erhält die maximale Erregung, es wird zum Winnerneuron, da es dem angelegten Phonem am meisten entspricht. Dadurch werden die Neuronen bzw. Neuronengruppen auf der Kartenschicht für die entsprechenden Laute aktiviert, so dass sich das Wort zum Schluss als ein Muster von Winnerneuronen auf der Karte repräsentiert.

Topologie eines Kohonen-Netz (bzw. selbstorganisierende Karte)

Das Netz muss natürlich vorher trainiert werden, d.h. es müssen sich erst die Winnerneuronen für die entsprechenden Laute herausbilden. Dazu werden zuerst die Frequenzvektoren aus den Trainingsmustern der zu lernenden Wörter extrahiert. Diese Vektoren werden dann dem Netz in zufälliger Reihenfolge präsentiert. Für jeden Vektor wird das Winnerneuron ermittelt. Dann werden die Gewichte der Neuronen der Kohonenkarte innerhalb eines vorher festgelegten Radius um das Winnerneuron an den Eingabevektor angenähert. Dadurch liegen dann ähnliche Laute auf der Karte nebeneinander und unähnliche weiter entfernt. Ein Phonem kann dabei nicht nur von einem Neuron repräsentiert werden, sondern auch von mehreren nebeneinanderliegenden Neuronen.

Da sich die Regionen für die Laute auf der Karte zufällig bilden, weil das Lernen eines Kohonennetzes unüberwacht ist, und die Muster für gleiche Wörter auch variieren, wird für die letzte Stufe der Erkennung ein Feedforward-Backpropagation-Netz verwendet. Das Netz bekommt als Input die Ausgabe das Kohonennetzes, das bedeutet das die Inputschicht des Backpropagationnetzes genauso viel Neuronen hat wie die Merkmalskarte des Kohonennetzes. Die Anzahl der Neuronen der Outputschicht ist gleich der Anzahl der gelernten Wörter, so das jedes Neuron ein Wort repräsentiert.

Topologie eines Feedforward-Backpropagation-Netz

 


 

Inhalt

 


 

Quellenverzeichnis:

[1] Teuvo Kohonen (1988). The "Neural" Phonetic Typewriter. Computer, 21(3):11-22.
      Teuvo Kohonen (1989). Speech Recognition Based on Topology-Preserving Neural Maps.
                                     In I. ALEKSANDER, Hrsg.: Neural Computing Architectures. MIT Press, Cambridge, MA.

 


Jens Fiedler, 23. November 2001