Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | bertha-appold |
View: | 112 times |
Download: | 1 times |
Thema: Finite State Transducer (FST)
Siamak Mehraghdam
ÜberblickEinführung: TTS-System
TTS-System kann charakterisiert werden als Analyse-Prozess
TTS-System ist modular aufgebaut wir betrachten hier nur die
Textanalysekomponente (TAC) TAC ist in einem einheitlichem Rahmen
implementiert, der auf gewichtete endliche Automaten beruht (WFST)
Einschub: Was sind WFST´s ?
WFST´s sind FTS´s mit Gewichtungen an den Pfaden
Durch die Gewichtungen lassen sich linguistische Alternationen beschreiben und vorhersagen
Gewichte werden aufgrund linguistischer Kenntnisse oder auch Intuition zugewiesen
Aufbau der linguistischen Textanalyekomponente Eingabetext wird in einem finite-state-
akzeptor konvertiert Dann mit Hilfe von FST´s kompiliert liefert alle möglichen legalen
lexikalischen und morphologischen Analysen
Disambiguierung der Alternativen erfolgt durch eine andere Komponente
Aufbau der linguistischen Textanalyekomponente (2) Diese Komponente filtert die
wahrscheinlichste Analyse unter Berücksichtigung des wortübergreifenden Kontextes heraus
Die beste Analyse wird dann mit phonolgischer Komponente kombiniert
Finite-state-transducer (FST)Einführung: Wie kommen wir auf FST´s ??? Stellen eine Annahme auf:
Der einzige Weg um mit Morphemen Wörter zu bilden ist die Konkenation
naheliegendste Annahme:Vorangehendes Morphem entscheidet über
nachfolgendes Morphem
Finite-state-transducer (FST)Einführung: (2) Beispiel: Betrachtung des Wortes „hospitalization“ Morphologische Struktur:
Hospital + ize + ationDa Hospital = Substantiv „ize“ darf folgen wir haben ein Verb„ation“ macht aus einem Verb ein Substantiv ize + ation ist erlaubt hospital ize ation ist erlaubt
Finite-state-transducer (FST)Einführung: (3) Realisierung mit Hilfe eine
finite-state-machines
Definition des FSM: Maschine M mit Sprache L M = ( Q, ,q1 , F) mit:
Q = Anzahl der Zustände = endliches Alphabet der Morphem der Sprache L = Funktion Q x Q: qi Q v L : qj Q mit
(qi , ) = qj F = Menge der Endzustände q1 ist der Startwert
,
,
Finite-state-transducer (FST)Einführung: (4)
Dieses Bsp. ist ein winziges Fragment aus der Morphembildung des Englischen
Noun i
Adj i
-ize -ation
-al
1 2 3
Finite-state-transducer (FST)
FST´s werden in Textanalyse jeglicher Art verwendet
Unterschied FSM und FST:FSM akzeptiert Sprache aus einem
endlichem Alphabet einzelner Symbole ( z.B. A={a, b, c})
FST akzeptiert hingegen Sprachen mit paarweisen Symbolen
( z.B. A= {a:a , b:b , c:c , a:Ø , Ø:c} )
Finite-state-transducer (FST) (2)
Alphabet wird getrennt auf 2 „Bänder“ Linkes Symbol = 1.Band = oberes Band =
„lexikal tape“ Rechtes Symbol = 2.Band = unteres Band
= „surface tape“ z.B. bei (a:a) muss ein a vom 1.Band
einem a vom 2.Band entsprechen Um alles besser zu verstehen betrachten
wir ein Beispiel
FST Beispiel 1:
Alphabet A={a:Ø , a:a , b:b} Regulärer Ausdruck: a:a* a:Ø b:b*
R erlaubt z.B. : <aaabbb , aabbb> , <a , Ø> , <abb , bb>
R verwirft z.B. : <aaabbb , aaabbb> , <a , a> , <bbb , bbb>
FST Beispiel 1: (2)
Darstellung von FST´s oder FSM´s auch mit Hilfe von „state transition“ Tabellen möglich:
a : Ø 1 2
a : a b : b
a a b
State: a Ø b
1: 1 2 0
2: 0 0 2
FST Beispiel 2:
Beispiel einer phonologischen Regel aus dem Sanskrit
Dentales /n/ wird in ein retroflexes /ņ/ umgewandelt wenn: Irgendwo im Wort vorher ein retroflexer
Konsonant /ş, r/ existiert. uşnataraanaam uşņataraaņaam
FST Beispiel 2: (2)
Ohne FST´s müsste die Regel sukzessive von links nach rechts angewendet werden
Aber ein FST einmal angewendet auf dem ganzen String löst das Problem
Der reguläre Ausdruck zu dieser Regel lautet:( =:=* R:= [-cor]:=* -[+son]:= =:=*)*
FST Beispiel 2: (3)
( =:=* R:= [-cor]:=* -[+son]:= =:=*)*
R bezeichnet die retroflexen Konsonanten /ş, r/ = bedeutet „irgendetwas“ Die state transition Tabelle sieht wie folgt aus:
ş r t n n [+son] =
State: = = = ņ n = =
1: 2 2 1 0 1 1 1
2: 2 2 1 3 0 2 1
3: 0 1 0 3 0 1 0
FST Beispiel 2: (4)
t:=[+son]:=n:n=:=
1
0
2
3
[+son]:=r:=
n:ņ
t:=ş:=n:n=:=
[+son]:=r:=ş:=
n:ņ
n:n n:ņ r:=ş:=
t:==:=
Mehrere FST´s
Bis jetzt: Implementation einer einzigen phonologischen Regel mit FST
Um weitere phonologische Regel zu implementieren muss man die FST´s hintereinanderschalten
Stellen wir uns vor:Sanskrit hat die Regel:
Mehrere FST´s (2)
Stellen wir uns vor: Sanskrit hat die Regel:
Intervocalisches /r/ muss in ein nonretroflexes /l/ umgewandelt werden
Jetzt bauen wir ein FST, der dies erfüllt
r V =
State: l = =
1: 0 2 1
2: 3 2 1
3: 0 2 0
Mehrere FST´s (3)
Nun kann man auf dem 1.Band des 1.FST „uşnataraanaam“ laufen lassen
Auf dem 2.Band des 1.FST erhält man dann „uşņataraaņaam”
Den String vom 2.Band des 1.FST lässt man jetzt auf dem 1.Band des 2.FST laufen
Und auf dem 2.Band des 2.FST hat man jetzt „uşņatalaaņaam”
Mehrere FST´s (4)
Allgemein: n Regel mit n FST´s + (n+1) Bänder implemetierbar
wobei: n-1 Bänder sind Zwischenbänder Bei n FST´s können die n-1
Zwischenbänder exponentiell steigen !!!
Parallele FST´s
Aus diesem Grund ist es besser die FST´s parallel laufen zu lassen.d.h. Jedes FST sieht die gleichen 2 Bänder
Die Ergebnisse müssen dann mit einem entsprechendem Algorithmus durch Alignment zusammengeführt werden
Namensanalyse in TTS-Systemen
Die korrekte Aussprache von Namen ist eine der größten Herausforderungen für ein TTS-System.
Einige Probleme der Namensanalyse: Namen können sehr viele verschiedene
etymologische Ursprünge haben Namen können ohne Anpassung an das neue
phonologische System in eine Sprache einfliesen Es gibt eine sehr grosse Anzahl verschiedener
Namen
Namensanalyse in TTS-Systemen (2)
Strassennamen aus zusammengesetzte Wörter (Rheinstraße, Kennedyallee)
Viele Namensaussprechungen wiedersprechen den jeweiligen phonologischen Mustern
Fazit:Die große Anzahl an Namen mit einer
eingeschränkten morphologischen Struktur sind ein grosses Problem
Namensanalyse in TTS-Systemen (3)
Einige weitere Probleme:z.B Graphem <e> wird normalerweise auch
[e:] ausgesrochen Melanie, Stefan<chem> Chemie , Chemnitz
Korrekte Analyse von unbekannten orthographischen Strings muss durchgeführt werden
Namensanalyse in TTS-Systemen (4)
Motivation für Bern Möbius: Entwicklung einer Namensanalyse und Aussprachekomponente für GerTTS mit Hilfe von WFST´s
FST´s erlauben dynamische Kombination und Rekombination von lexikalischen und Morphologischen Substrings
Namensanalyse in TTS-Systemen (5)
Trainingsmaterial D-Info 1995 Städtenamen:
3837 Städtenamen ( 15% aller Städte) Graphemstrings mit 3-7 Grapheme wurden aus
den Städtenamen entnommen 295 nützliche Graphemstrings (bilden 2969
Städtenamen)
Namensanalyse in TTS-Systemen (6)
Vornamen und Strassennamen wurden den 4 Städten Berlin, Hamburg, Köln und München entnommen
Vornamen: Alle Vornamen deren Anzahl > 100 wurden
genommen 10 beliebtesten Jungen und Mädchennamen
neugeborener Kinder von 95/96 754 Vornamen insgesamt
Namensanalyse in TTS-Systemen (7)
Strassennamen: Alle Strassennamen aus den 4 Städten Komponenten der Strassennamen wurden seperat
gespeichert (Konrad-Adenauer-Platz) 3124 Strassennamenkomponenten
Wir betrachten jetzt einen FST für Strassennamen
FST für Strassennamen
Jede Strasse wird mit Hilfe von bestimmten lexikalischen Morpheme identifiziert
z.B. Strasse, Weg, Platz, Gasse, Allee, ... Die vorher gesammelten Information
werden in einer kombinierten Liste von 4173 Komponenten + „Identifier“ gespeichert
FST für Strassennamen (2)
Start Root First
Silbenmodell / 10
# / 0 End
Fuge
Wort aus DB / 0.2 # [Streetname] / 0
Komponentenverbindung / 0.2[+] / 0.1
[+] / 0.5
FST für Strassennamen (3)Beispiel an: „Dachsteinhohenheckenalleenplatz“
Start Root First# / 0 End
Fuge
# [Streetname] / 0
n / 0.2[+] / 0.1
Silbenmodel / 10
d´ach / 0.2
st´ein / 0.2
h´ecke / 0.2
all´ee / 0.2
platz / 0
[+] / 0.5
FST für Strassennamen (4)
System wurde getestet Modul in GerTTS eingefügt Ausprache des GerTTS mit
Namensanalysekomponente wurde mit GerTTS ohne Namensanalysekomponente getestet
Trainingsmaterial und Testmaterial
FST für Strassennamen (5) Trainingsmaterial: Strassennamen wurden zufällig aus den
4 Städten entnommen Testmaterial: Strassennamen wurden aus Frankfurt und
Dresden entnommen
Trainingsdaten Testdaten
New system correct && old system wrong 84.7 % 70 %
New system wrong && old system correct 15.3 % 30 %