Praktikum Sprechererkennung BB, SK, JG Praktikum Sprechererkennung, Universit¨ at Ulm, Institut f¨ ur Neuroinformatik, SS09 Zusammenfassung Brauchen wir einen Abstract? Diskutieren Sie diese Struktur in Ihrer Gruppe!!! Die n¨achsten Treffen sind 1.7., 15.7. (Abgabe Ausarbeitung !!!!!!!!!) und der 22.7. (Darstellung der Projekte) So das ist die Tex-Vorlage f¨ ur die Ausarbeitung. Wer nicht mit Tex klar kommt schickt mir seinen Abschnitt als .txt Ab sofort ist diese Vorlage auch im SVN. Es gr¨ usst der Weihnachtsmann. 1 Einleitung und Motivation jg 2 Methodische Grundlagen Um eine Sprechererkennung zu erm¨oglichen, werden die typischen Grundlagen f¨ ur den Entwurf eines einfachen Erkennungssystems vorausgesetzt. Dieses System funktioniert nach folgendem Schema: Ein meist vorbehandeltes Eingangssignal (im Falle der Sprechererkennung eignet sich die Entfernung von Stille) wird einer Merkmalsextraktion unterzogen, die die zu erkennenden Eigenschaften des Signals m¨oglichst kompakt auslesen soll. Die resultierenden Merkmale werden gegebenfalls auf die aussagekr¨aftigsten Merkmale reduziert und anschließend an einen Klassifikator weitergereicht. Es folgt ein Trainingsprozess, der den Klassifikator eine Repr¨asentation der Merkmalseigenschaften erm¨oglicht. Somit wird jeder Person, deren Stimme erkannt werden soll, ein Klassifikator zugeordnet, der mit den Sprachmerkmalen der Person trainiert wird. Mit Hilfe des Klassifikators kann f¨ ur ¨ einen gegebenen Testdatensatz eine Ahnlichkeitsaussage zwischen Test- und Trainingsdaten getroffen werden. 5. Juli 2009 2.1 Merkmalsextraktion Zur Merkmalsextraktion wurden die LPC Koeffizienten (LPC), sowie die MFC Koeffizienten (MFCC) verwendet. Die LPC (Linear Predictive Coding) Koeffizienten ergeben sich aus einer Linearkombination vergangener Signalwerte, um einen kommenden Wert zu ermitteln. Die MFCC (Mel Frequency Cepstral Coefficients) sind eine kompakte und an die menschliche Wahrnehmung angepasste Darstellung des Signalspektrums. Da bei beiden Verfahren auf einer gew¨ahlten Fensterbreite gearbeitet wird, war eine Zusammenfassung der enstandenen Merkmalsvektoren zu einem gemeinsamen Merkmalsvektor pro Fenster m¨oglich (Dimensionserweiterung). 2.1.1 LPC F¨ ur ein gegebenes Signal der L¨ange T ist die lineare Vorhersage von Ordnung p ∈ N durch folgende Gleichung gegeben: p sn = − ak sn−k k=1 Hierf¨ ur sind nun die ak = a1 , ..., ap gesucht. Der Vorhersagefehler en wird definiert als: p en = sn − sn = sn + ak sn−k k=1 Daraus l¨asst sich der mittlere quadratische Fehler p e2n E= n = ak sn−k ]2 [sn + n k=1 bestimmen. Es ist das Ziel diesen zu minimieren. Das Kriterium f¨ ur das Minimum, welches δE = 0, ∀i = 1, ..., p resultiert ist aus δa i p sn−k sn−i = − ak k=1 n sn sn−i ∀i = 1, 2, ..., p n Die Summen u ¨ber s sind die Autokorrelationen zur Verz¨ogerung i − k der linken Summe und zur Verz¨ogerung i der rechten Summe. Die gemittelten Zeitsch¨atzungen der Autokorrelation zur Verz¨ogerung τ k¨onnen durch N −1−τ Rτ = s(i)s(i + τ ) i=0 2 ausgedr¨ uckt werden. Die Autokorrelationsmethode ergibt nun ein System aus p linearen Gleichungen, wof¨ ur die ai gefunden werden sollen [2]. R0 R1 R1 R0 R2 .. . R1 .. . R2 · · · Rp−1 a1 R1 . R2 a2 R1 . . Rp−2 ... R0 Rp−3 a3 = − R3 .. . . .. .. . . . .. .. Rp−1 Rp−2 Rp−3 · · · R0 ap Rp Zur L¨osung dieses Gleichungssystems eignet sich der effiziente Durbin-Algorithmus. Dieser wurde in diesem Praktikum implementiert und ist in [2] zu finden. 2.1.2 MFCC Die zu erzeugenden Merkmale sollen an das menschliche Geh¨or angelehnt sein. Dabei ist darauf zu achten, dass die menschliche Wahrnehmung von Tonh¨ohe nicht linear zur eigentlichen Tonfrequenz ist. Dies gilt insbesondere f¨ ur Frequenzen u ¨ber 500 Hz. Bis zu dieser Frequenz kann jedoch von einem linearen Verlauf gesprochen werden. Um die MFCC aus einem Signal zu ermitteln wird folgendermaßen vorgegangen: Zuerst wird eine diskrete Fourier-Transformation angewandt um das Signalspektrum zu erhalten, wobei hierbei auf die Phaseinformation verzichtet wird [5]. Auf dem Signalspektrum wird der Logarithmus angewandt, sodass eine gute Repr¨asentation der f¨ ur Sprache sensiblen Frequenzbereiche m¨oglich ist. Tiefe Frequenzen u ¨berwiegen typischerweise in einem Sprachspektrum. Nach der Logarithmierung ist eine ann¨ahernde Gleichverteilung der Frequenzanteile gegeben. Somit wirken sich individuelle Unterschiede der Sprecher in den hochrelevenaten Frequenzen oberhalb 1kHz gravierender aus. Anschließend folgt das Mel-Scaling, die Umrechnung der Frequenzen in die Mel-Skala (z.B. 10kHz = 2200 Mel). Um die Komponenten der MelSpektrum-Merkmale zu dekorrelieren wir am Schluss eine diskrete Cosinus-Transformation angewandt, wonach sich die resultierenden MFCC ermitteln lassen. Wir haben diese Merkmalserzeugung, im Gegensatz zu den LPC-Merkmalen, nicht selbst implementiert, sondern greifen auf die Klasse MFCC der Comirva-Bibliothek [3] zur¨ uck. 2.2 Klassifikation Ein Klassifikator versucht eine gegebene Datenmenge in Klassen zu unterteilen. Hierf¨ ur werden Prototypen trainiert, die m¨oglichst genau eine Klasse repr¨asentieren sollen. In diesem Praktikum wurden Klassifikatoren eingesetzt um je eine einzelne Person zu ”klassifizieren”. Dabei bedeutet der Klassifikator weniger eine Klassifikation einer Person in Unterklassen im eigentlichen Sinne, sondern eine Repr¨asentation des Merkmalraums einer gewissen Person durch entsprechende Prototypen. Daf¨ ur nutzten wir K-Means und Growing Neural Gas. 3 2.2.1 K-Means Es gibt zahlreiche K-Means Varianten. Wir entschieden uns f¨ ur die inkrementelle und w¨ahlten als Fehlerkriterium den euklidischen Abstand. Der Algorithmus sieht folgendermaßen aus: (1) W¨ahle aus den Eingabevektoren k Prototypen aus. (2) Iteriere u ¨ber die Eingabevektoren. (3) Finde zum aktuellen Eingabevektor a den Prototyp p mit geringstem euklidischen dim(a) Abstand: i=1 (ai − pi )2 (4) Bewege den gefundenen Prototyp in Richtung Eingabevektor um Schrittweite l. (5) Nun wurden alle Eingabevektoren durchlaufen. Wurden die Prototypen um weniger als verschoben, breche den Algorithmus ab. Andernfalls gehe zur¨ uck zu (2). zu (1): k sollte erfahrungsgem¨aß zwischen 10 und 100 liegen um Laufzeiteffizienz und Erkennungsgenauigkeit zu gew¨ahrleisten. zu (4): z.B. l = 0.01 2.2.2 Growing Neural Gas Wie der Name schon sagt ist dieser Lernalgorithmus ein wachsendes Verfahren, bei dem nach einer gewissen Iterationsweite ein neuer Prototyp hinzugef¨ ugt wird. Zus¨atzlich merkt sich Growing Neural Gas die Nachbarschaften der Prototypen um damit weitere Aussagen u ¨ber die Struktur der Daten treffen zu k¨onnen. Der Algorithmus sieht folgendermaßen aus: (1) Beginne mit zwei Prototypen a und b (2) Betrachte n¨achsten Eingabevektor ξ (3) Finde den Prototypen s1 mit kleinstem Abstand und den Prototypen s2 mit zweitkleinstem Abstand. (4) Erh¨ohe das Alter im Nachbarschaftsgraph aller ausgehenden Kanten von s1 um eins. (5) Speichere die quadratische Distanz zwischen Eingabevektor und n¨achstgelegenem Prototypen in eine lokale Z¨ahlervariable: ∆error(s1 ) = ||ws1 − ξ||2 (6) Verschiebe s1 und seine Nachbarn in Richtung ξ mit Faktor ∆ws1 = b (ξ − ws1 ), ∆wn = n (ξ b und n: − wn ) ∀ direkten Nachbarn n von s1 (7) Wenn s1 und s2 u ¨ber eine Kante verbunden sind, dann setze das Alter der Kante auf Null. Existiert diese Kante noch nicht, dann erstelle sie. (8) Entferne Kanten mit einem Alter > amax . Falls dadurch Prototypen ohne ausgehende Kanten entstehen, dann entferne diese. (9) Sobald die Anzahl der Eingabevektoren ein Vielfaches vom Parameter λ ist, f¨ uge einen neuen Prototyp auf folgende Weise ein: • Ermittele den Prototypen q mit dem gr¨oßten angeh¨auften Fehler. 4 • F¨ uge einen neuen Prototypen r zwischen q und seinem Nachbar f mit der gr¨oßten Fehlervariable ein. wr = 0.5(wq + wf ). • Verbinde die neue Einheit r mit den Prototypen q und f durch eine Kante und entferne die urspr¨ ungliche Kante zwischen q und f . • Multipliziere die Fehlervariable von q und f mit dem Faktor α. W¨ahle die Fehlervariable von r mit dem neuen Wert der Fehlervariable von q. (10) Multipliziere alle Fehlervariablen mit der Konstanten d. (11) Falls ein Abbruchkriterium noch nicht erf¨ ullt ist, gehe zur¨ uck zu Schritt (2). [4]. 3 Numerische Evaluierung der Methoden sk 3.1 Beschreibung der benutzten Daten Prim¨are Quelldaten waren Wav-Files der Teilnehmer des Praktikums. Dabei wurde von Allen ein Text vorgelesen und aufgenommen. Diese Aufnahmen wurden in, auf 16kHz normalisierte Wav-Files gepackt. Damit l¨asst sich Sprache bis zu 8kHz verwenden. Dies ist ausreichend, da die Hauptmerkmale menschlicher Sprache zwischen 1 und 5 kHz liegen. Desweiteren lagen etliche Wav-Files der vorangeganen Praktika vor. 3.2 Testmethoden Testemethoden waren derer Viele. Wie schon beschrieben wurde zur Merkmalsextraktion LPC und MFCC und als Lernalgorithmen KMeans und Natural Growing Gas benutzt. Zur Auswertung wurde ein einfaches Votingsystem verwendet: das Testmerkmal, das am n¨achsten zu einem bereits gelernten Merkmalsvektor war, bekamm einen Punkt. Derjenige mit den meisten Punkten am ende wurde dann als Sieger bzw Sprecher f¨ ur das Testfile gewertet. 3.3 Darstellung der erzielten Resultate Resultate hatten wir auch! 4 Realisierung der Live-Erkennung bb 5 4.1 Probleme und L¨osungen 4.2 Erfahrungsbericht 4.3 ... Punkt-Punkt-Punkt bedeutet, dass wir uns noch weitere Unterabschnitte ausdenken k¨onnten. 5 Installationsbeschreibung 6 Bedienungsanleitung 7 Dokumentation der Software bb 7.1 Klassenhierarchie 7.2 zentrale Methoden 8 Diskussion 8.1 zuk¨ unftige Arbeiten??? 8.2 ... Literatur [1] Bishop, C.M.: Pattern Recognition and Machine Learning. Springer, 610-615 (2006) [2] Campbell, J.P.: Speaker Recognition: A Tutorial. Proceedings of the IEEE Vol. 85 No. 9, 1438-1462 (1997) [3] Schedl, M.: Comirva Bibliothek f¨ ur Java. http://www.cp.jku.at/people/schedl/Research/Development/CoMIRVA/webpage/CoMIRVA.html (2008) [4] Fritzke, B: A Growing Neural Gas Network Learns Topologies. Advances in Neural Information Processing Systems 7, MIT Press, Cambridge MA (1995) [5] Logan, B.: Mel Frequency Cepstrum Coefficients for Music Modelling. Cambridge Research Laboratory (2000) 6
© Copyright 2024 ExpyDoc