SLP Notizen
Teil I
Kapitel 7: HMMs und Spracherkennung
Inhalt
- unterschiedliche Erkennungsaufgaben
- Einzelworterkennung vs. normale Sprache
- wenige Wörter, viele Wörter
- Spracherkenner-Architektur
- Ziel: Welches ist die wahrscheinlichste zugrundeliegende Äußerung (in der Sprache L) bei gegebener Beobachtung O?
- Problem: es ist unmöglich, alle Äußerungen aus L aufzubauen und einzeln zu prüfen
- Es sei O die Beobachtungsfolge, W die Wortfolge der Äußerung
- mit Bayes folgt Ŵ = argmaxW ∈ L
P(O|W) × P(W)
- die a priori-Wahrscheinlichkeit P(W) wird mit Language Modell (N-Gramm oder PCFG?) ermittelt
- die a posteriori-Wahrscheinlichkeit P(O|W) wird durch das akustische Modell ermittelt
- Architektur: Schall → Waveform → Feature-Extraction
→ Feature Vectors → Phone Likelihood Estimation → Phone
Likelihoods → Decoding → Words
- Übersicht über HMMs
- Q Menge der Zustände
- A Matrix (NxN) der Übergangswahrscheinlichkeiten zwischen Zuständen
- Bakis-Network: Einschränkung der Übergänge auf diesen, nächsten, übernächsten Zustand
- schränkt Rechenaufwand ein
- entspricht gut den Eigenschaften der Sprache (sequentiell, ggf. Reduktion und Auslassung)
- B Menge von W.keitsfunktionen für Beobachtungen bei gegebenem Zustand
- π Startwahrscheinlichkeit für die Zustände → stattdessen auch nicht-emittierender Startzustand möglich
- Menge der Endzustände → stattdessen auch nicht-emittierender Endzustand möglich
- können erkennen oder generieren
- Viterbi-Algorithmus
- funktioniert nur für Bigramme zwischen Wortmodellen
- Beispiel mit Phonen als Beobachtungen
- tatsächlich natürlich Feature-Vektoren als Beobachtungen
- Beobachtungswahrscheinlichkeiten werden schwierigere Funktionen (Gauß, Neuronale Netze)
- für Wörter ist angegeben, aus welchen Phonen sie
bestehen. Die Phonmodelle werden entsprechend hintereinandergehängt
- üblich: drei Zustände pro Phon (Einschwingphase, statische Phase, Ausschwingphase)
- üblich: unterschiedliche Phonmodelle für Phone in unterschiedlichen Kontexten
- Problem: zu viele Modelle, schlechte Trainingsmöglichkeiten
- Clustering von Modellen
- pruning von unwahrscheinlichen Pfaden
- Beam search zur Beschränkung auf wahrscheinliche Pfade
- Einschränkungen:
- Viterbi berechnet die wahrscheinlichste Zustandsfolge, nicht zwingend die wahrscheinlichste Wortfolge!
- Beispiel: ein Wort hat viele Aussprachevarianten. Dann
teilt sich die W.keit auf die Varianten auf und jeder einzelne Pfad ist
weniger wahrscheinlich
- konterintuitiv: !!!"Mein Wort wird schlecht erkannt, also füge ich Aussprachevarianten hinzu."
- nur in Verbindung mit Bigramm-Language Modellen
- Grund: kompliziertere Modelle (Trigramm+) verletzen die
DP-Annahme, dass der global optimale Pfad durch lokal optimale
Teilpfade führt
- wählt die Subpfade greedy
- Beispiel: Wörter A B C C' D.
- wenn nun P(C|A B) >> P(C'|A B) und dann P(D|B C) << P(D|B C'), so geht es schief
- alternative Decoding-Methoden
- lösen die Einschränkungen durch Viterbi-Decoding
- Multi-Pass Decoding
- es wird nicht ein bester Pfad, sondern N beste Pfade durch Viterbi+Bigramme errechnet
- die Rückgabe kann in einem lattice (deutsch: Verband, Darstellung als Hasse-Diagramm) erfolgen
- eine komplexeres LM bewertet in Verbindung mit den akustischen W.keiten die einzelnen Pfade neu (rescoring)
- A* decoding, (best-first decoding, stack-decoding)
- Prioritätswarteschlange enthält Hypothesen nach ihrer Wahrscheinlichkeit geordnet
- pop queue
- mittels "fast match" nächstmögliche Wörter auswählen
- scheinbar auch Auswahl der Dauer des nächsten Wortes
- häufig mittels baumartigem Lexikon (Trie)
- für die Pfade mit Forward-Algorithmus die W.keiten g(p) berechnen
- für den Rest der Äußerung eine W.keit h*(p) schätzen
- z.B. abhängig von verbleibender Zeit, verbleibenden Wörtern (bei PCFGs),
- gemäß f*(p) = g(p) + h*(p) in Queue einordnen
- Frage: wie genau weiß ich, wo Wortgrenzen sind (braucht Forward-Algorithmus, leistet wohl das fast match)
- akustisches Vorverarbeitung von Sprache (=Feature Extraction)
- Schallwellen
- Grundfrequenz ~ wahrgenommene Tonhöhe
- Energie ~ wahrgenommene Lautheit
- Frequenzinformation ist das relevante
- Spektrum
- zeigt die im Signal enthaltenen Frequenzen
- Spektrogramm: Spektrum/Zeit-Graph (Unschärferelation: zeitliche vs. frequentielle Auflösung)
- Fourier-Transformation: berechnet Spektrum eines Signals
- fenstern führt zum Spektrogramm
- LPC (Linear Predictive Coding)
- Modell eines Knallgenerators am Ende des Ansatzrohrs
- iteratives (inverses) messen und herausfiltern der jeweils stärksten Resonanz und Weiterverarbeitung des Residuums
- Features als Energie in Frequenzbändern
- Bänder werden zu hohen Frequenzen hin breiter
- Resultat meist 39-dimensionaler Vector
- 13 Frequenzbänder, Ableitungen, 2. Ableitung
- Berechnung akustischer Wahrscheinlichkeiten
- B, die Funktion der Ausgabewahrscheinlichkeiten eines HMMs
- Features sind reellwertig (und 39-dimensional)
- Möglichkeiten: Vector Quantization, Gaußsche Dichtefunktionen, Neuronale Netze (Multilayer Perzeptrone)
- Vector Quantization
- Clustering des Vektorraums (Training), Ermittlung eines Codebooks
- Vergleich jedes Testvektors über Ähnlichkeitsmetrik auf Zugehörigkeit zu den Clustern
- im weitern Nutzung der Cluster-ID
- K-means, KNN, Euklidische Distanz, Mahalanobis Distanz (Skalierung der Dimensionen), ...
- Gaußsche Dichtefunktionen (probability density functions, pdfs)
- jedem Zustand ist die W.keit zugeordnet, einen Vektor des Raums zu erzeugen
- notwendige Annahme: Unabhängigkeit der Features, damit die Kovarianz-Matrix diagonal ist
- braucht nur O(D) Merkmale statt O(D2)
- Erweiterung: Gauß'sche Mix-Modelle (GMMs), nähern
durch die Überlagerung von M Glockenkurven beliebige
Verteilungsfunktionen an
- Training: einfache Erweiterung des Forward-Backward-Algorithmus (kompliziertere Formeln für μ und σ, die auf ξ zurückgreifen)
- Training von Spracherkennern
- Forward-Backward-Algorithmus
- Spezialfall des EM (Expectation-Maximization)-Algorithmus
- für unüberwachtes (nicht-annotiertes) lernen
- trainiert Übergangswahrscheinlichkeiten und Emissionswahrscheinlichkeiten eines HMMs
- trainiert nicht die Struktur des HMMs (dafür gibt es auch keine guten Algorithmen)
- manuelles Design der Struktur der HMMs und nachfolgendes Training
- findet nur lokales Maximum
- z.B. Algorithmus mehrfach laufen lassen
- iteratives Verfahren
- Forwärtswahrscheinlichkeit α
- Rückwärtswahrscheinlichkeit β
- neue Übergangswahrscheinlichkeiten âij = geschätzte Anzahl Transitionen von i nach j / geschätzte Gesamtzahl an Transitionen von i
- neue Emissionswahrscheinlichkeiten b̂j(vk) = geschätzte Emissionen von vk im Zustand j / geschätzte Gesamtzahl Emissionen in j
- Startwahrscheinlichkeiten wenig relevant (z. B. Gleichverteilung, Zufall, globales Mittel)
- forced alignment (forced Viterbi)
- lernen aus einem annotierten Korpus
- Wortübergänge (oder Phonübergänge) sind vorgegeben
- innere Strukturen werden über Viterbi ermittelt
- damit können dann Übergangs- und Emissionsw.keiten neu geschätzt werden
- jeweils iterativ über viel (tausende) Beispiele
- Signalsynthese für TTS
- konkatenative Synthese: Sprache wird aus gespeicherten Samples zusammengesetzt
- PSOLA: verändert Grundfrequenz ohne andere Eigenschaften zu verändern (für Prosodie)
- je weniger Anpassung, desto besser die Qualität
- Unit-Selection: je mehr und je längere Einheiten zur
Verfügung stehen, desto größer die Auswahl bei weniger
Verkettungsstellen
- Optimierungsproblem (→ TODO)
- menschliche Spracherkennung
letzte Änderung: 19. August 2006.
mail AT timobaumann.de