![]() |
![]() |
![]() |
|||||
1.2 theoretische Grundlagen |
|||||||||
|
Bevor die Sounddateien zur Erkennung der selbstorganisierenden Karte präsentiert werden können, müssen diese vorbereitet werden. VorbetrachtungNach der Studie einiger Literatur ([1], [2]) sind wir zum Entschluss
gekommen, unsere Audiodaten in Zeitfenster mit einer Länge von ca.
23ms einzuteilen. Weiterhin ist es für die Worterkennung völlig
ausreichend, die Audiodaten im Monoformat aufzunehmen. Hier bedarf es einer kleinen Diskussion. Beim Aufnehmen der Audiodaten über ein Mikrophon, hängt die Qualität der Daten sehr stark von der Qualität des Microphons und der Soundkarte ab. Es ist möglich das Grundrauschen der Sounkarte zu bestimmen und dieses aus den Audiodaten zu filtern. Jedoch wäre dieser Vorgang sehr aufwendig und ist daher in diesem Programm nicht realisiert. Die analogen Audiosignale werden von der Soundkarte in digitale Signale umgewandelt. Dies erfolgt durch die Abtastung der analogen Audiosignale die als Schwingungen vorliegen. Dadurch werden die stetigen analogen Signale diskretisiert. Dadurch enstehen Zahlefolgen, meist in einen 16 Bit großen Zahlenraum. Die Abtastrate gibt die Qualität an und wie oben schon diskutiert reichen 22kHz aus. MerkmalsextraktionZuerst werden die Audiodaten gefiltert. So wird die Stille am Anfang und am Ende der Sounddatei entfernt. Dies erfolgt durch Analyse der auftretenden Energie in einem entsprechenden Zeitfenster der Sounddatei. Übertrifft die auftretende Energie den festgelegenen Grenzwert nicht, dann wird dieses Zeitfenster nicht mit zur Verarbeitung genutzt und verworfen. Das Energielimit ist von dem maximalen Samplewert der Audiodaten abhängig. Damit wird gewährleistet, dass Audiodaten mit geringer Lautstärke nicht gelöscht werden und dass bei Audiodaten mit hoher Lautstärke das Rauschen nicht mit genutzt wird. Nachdem die relevanten Daten zur Weiterverarbeitung gefunden wurden, müssen alle Zeitfenster bearbeitet werden. Um relevante Daten hervorzuheben gibt es verschiedene mathematische Formeln - im Fachjargon auch Preemphase Filter genannt. So gibt es das Rechteckfenster, welches die Sounddatei nicht beeinflusst.
Alle Formeln zielen darauf ab, die Tiefpasscharakteristik der Sprache auszugleichen. Da wir aber die Stille am Anfang und Ende durch die Energieanlyse weggeschnitten haben, ist es nicht mehr nötig ein einschränkendes Fenster zu benutzen. Daher nutzen wir das Rechteckfenster. Nun zum wohl schwierigsten Schritt der Vorverarbeitung - der Fourier
Transformation. Um das Signal unabhängig von der Zeit zu analysieren
und es damit mit anderen Zeitfenstern anderer Audiodaten zu vergleichen,
ist es notwendig die Daten eines Zeitfensters in das Frequenzspektrum
mit Hilfe der Fouriertransformation umzuwandeln. Die Fouriertransformation geht auf den französischen Mathematiker Jean Baptiste Joseph Fourier zurück. In unserem Fall benötigen wir die diskrete Fourier Transformation, da unser Audiosignal diskret vorliegt. Die stetige und die diskrete Fourier Transformation besitzen einen hohen Rechenaufwand und sind daher für unser Problem nicht brauchbar. Jedoch haben J.W. Cooley und J.W. Turkey 1965 einen effektiven Algorithmus vorgestellt der den Rechenaufwand minimiert, die sogenannte Fast Fourier Transformation (FFT). Die Grundidee aller FFT-Algorithmen besteht darin, eine DFT der Länge N für eine Faktorisierung N=n1n2...nk, (n1,n2,...,nk) rekursiv durch DFT's der kleineren Längen n1,n2,...,nk : DFTN = DFTnk(DFTnk-1(...(DFTn-1)...)) zu berechnen. Durch die Rekursion wird der Aufwand der Multiplikationsschritte um ln(n) verkleinert. Der Nachteil dieses Algorithmus ist, dass die Anzahl der Musterwerte ein Vielfaches von 2 sein muss. Um kurz zu beschreiben worum es bei der Fouriertransformation geht, möchte
ich nur wichtige Punkte aufzählen: Formel der diskreten Fourier Transformation:
Durch Nutzung allgemein verfügbarer Algorithmen ist dieser Schritt der Umwandlung kein Problem. Nachdem die Frequenzanteile berechnet wurden, ist es nötig die Daten zu komprimieren. Zuerst ist es nicht nötig den vollen Frequenzanteil von 22050 Hz
zu nutzen. Um eine gute Spracherkennung zu gewährleisten reicht die
Qualität des Telefons aus. Diese liegt im Bereich zwischen 500 und
5000 Hz. Daher streichen wir die Frequenzanteile unter 500 Hz und über
5000 Hz aus den Daten. Durch die Komprimierung der Daten entstand unser Featurevektor - mit 11 Elementen pro Zeitfenster. SprachtheorieDie kleinste in der Sprachtheorie vorkommende bedeutungunterscheidende
Einheit ist das Phonem. Aus ihnen bilden sich Silben und aus diesen wiederrum
Wörter. In der deutschen Sprache gibt es ca. für jedes Vokal,
jeden Konsonanten und für jeden Umlaut ein entsprechendes Phonem.
So gibt es in der deutschen Sprache (ca.) 34 Phoneme. An dieser Stelle
verweise ich auf das Buch "Automatische Spracherkennung" ([2]),
welches sich tiefer mit der Theorie der Sprache befasst. Neronale InformationsverarbeitungZur Worterkennung in unserem Beleg verwendeten wir eine Self Organizing
Map ([1]) mit einer so genannten Goldberg Schicht.
Die selbständige Organisation der SOM läuft unter folgenden Vorgaben ab: Es wird das Neuron der Kohonenschicht zum Winner erklärt, welches den geringsten Abstand zum angelegten Input hat. Wir verwenden für diese Entscheidung den Euklidischen Abstand zwischen den beiden Vektoren: Die Lernrate fällt linear mit der Anzahl der durchgeführten Organissationsschritte. Die Grösse der Nachbarschaft des Winnerneurons ist abhängig von der aktuellen Lernrate alpha. Somit wird der Radius auch linear kleiner. Dadurch ist der Anfangsbereich etwa so gross wie die Hälfte der Fläche der gesamten SOM. Die Anpassung der Gewichte und damit die Neuordung der SOM unterscheidet sich nach die Position des entsprechenden Neurons. Das Winnerneuron bekommt die grösst mögliche Anpassung. Die Neuronen welche sich im Änderungsbereich befinden (Nachbarschaft durch Radius bestimmt) bekommen die Anpassung modifiziert mit dem Faktor 0.5.
Über der SOM befindet sich ein anderes neuronales Netz welches Goldberg
Schicht genannt wird. Es besteht nur aus einem Input Layer und einem Output
Layer. Die Grösse des Input Layer ist gleich gross der Anzahl der
Neuronen in der SOM. EntwicklungUnsere Anwendung Word Recognition wurde mit Java 1.4.1 entwickelt. |
|||||||||