Praktikum Sprechererkennung

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