Beispiel: Divisem
Beispiele für komplexe Bewegungen und sprach-begleitende Gesten Springen auf der Stelle Aufzählung von fünf Gliederungs- punkten Im Kreis bewegen http://www.smartkom.org/intern/ag-homes/display/gestenkatalog
Beispiele für Zeigegesten und Vitalgesten Zeigen nach rechts Leichtes Hin- und Herbewegen Hand an den Kopf führen
Spracherkennung LVR („large-vocabulary continuous speech recognition“) Dialogsysteme: Medium size vocabulary, sprecherunabhängig Prinzipien der statistischen Mustererkennung Trainingsmaterial schwierig für Spontansprache Aufgabe: Bestimme die Wortfolge, deren Wahrscheinlichkeit für ein akustisches Signal maximal ist Institut für Maschinelle Sprachverarbeitung Universität Stuttgart
Prinzipien Y: Akustische Merkmalssequenz W: Sequenz aus Wörter wi P(W): a priori Wahrscheinlichkeit für Sprachmodell P(Y|W): Bedingte Wahrscheinlichkeit für akustisches Modell
Aufgaben Akustische Parametrisierung Akustisches Modell Sprachmodell Entschlüsselung (Decoding)
Akustische Parametrisierung Annahme eines stationären (d.h. spektral konstanten) Signals
Akustische Parametrisierung Übliche Parametrisierung: Fensterung des Signals in 10ms Abstand, 25ms Fensterlänge Berechnung von MFCC-Parametern (Mel-Frequency Cepstral Coefficients) 12 MFCCs, 1 Signalenergie + Ableitungen 1. und 2. Ordnung: 39 Koeffizienten
Akustisches Modell Berechnung von P(Y|wi) Dekomposition in Phoneme Ein HMM repräsentiert ein Phonem 1 2 3 4 5 a12 a23 a34 a45 a44 a33 a22 b2(y1) b2(y2) b3(y3) b4(y4) b4(y5) Markov Model M Akustische Vektorsequenz Y
Akustisches Modell Vorhang
Akustisches Modell Wahrscheinlichkeit der Vektorsequenz Verteilung der Ausgabewahrscheinlichkeit bj(yi) typischerweise gemischte Normalverteilung Meist ein HMM für jeden Triphon-Kontext State-Tying mit phonologischem Entscheidungsbaum
Sprachmodell Üblicherweise mit N-Gramm-Modellen modelliert Meist N=3 (Trigramm) Bei data sparsity: Bigramm-Modelle, gramm. Klassen (Städte, Zeiten, ...)
Decoding Suche durch HMM-Netzwerk nach der Sequenz mit der höchsten Wahrscheinlichkeit Beam-search mit einer maximalen Anzahl von n verfolgten Pfaden („pruning“) „Token-passing“ algorithm: n Token mit höchster kumulativer Wahrscheinlichkeit werden mit jedem Eingabevektor durch das Netz bewegt. Wahrsch. des wahrscheinlichsten Wortes wird als a-priori-Wahrscheinlichkeit berücksichtigt
Viterbi Decoding forced alignment (Sequenz liegt fest) ( x | ) u i ã p k ( x | ) X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 1 X 1 1 X 1 2 X 1 3 X 1 4 X 1 5 X 1 6 X 1 7 u ã ã p forced alignment (Sequenz liegt fest)
Decoding (Worthypothesengraph)
Weitere Aspekte Sprecheradaption Robustheit gegen Rauschen Entfernen des Rauschsignals Rauschresistente Merkmale Veränderung des Algorithmus ... besondere Geräusche (Schmatzen, Atmen, Husten...) als Phonemmodelle
ASR in Dialogsystemen mixed-initiative Dialogsysteme: Interpolation zwischen LVR-System (unerwartete Eingebe) und Systemen mit kleinem Vokabular (erwartete Eingabe) VoiceXML 1.0: Alle Grammatikformate erlaubt (Bsp. in JavaSpeechGrammarFormat) IBM VoiceServer: JSGF (siehe VXML-Einführung) VoiceXML 2.0 (ende 2001): XML-Form der Grammatik - required ‚Erweiterte Backus-Naur-Form‘-Format (kompakter) - optional
VoiceXML – XML Grammatik Format <?xml version="1.0"?> <grammar xml:lang="en" version="1.0"> <rule id="city" scope="public"> <one-of> <item> new york </item> <item> sydney </item> <item> boston </item> <item> berlin </item> </one-of> </rule> </grammar>
VoiceXML – XML Grammatik Format <rule id="travel" scope="public"> I want to fly from <ruleref uri="locations.xml#UScity"/> to <ruleref uri="locations.xml#UScity"/> <count num="optional">on</count> <ruleref uri="date.xml"/> <count num="optional">at</count> <ruleref uri="time.xml"/> </rule>
<import name="polite" uri="http://www.sayplease.com/politeness.xml"/> <rule id="basicCommand" scope="public"> <example>please move the window</example> <example>open a file</example> <!-- A sequence of 3 rule references --> <ruleref import="polite#startPolite"/> <ruleref uri="#command"/> <ruleref import="polite#endPolite"/> </rule> <rule id="command"> <example>move the window</example> <!-- A sequence of 2 rule references --> <ruleref uri="#action"/> <ruleref uri="#object"/> <rule id="action"> <one-of> <item>open</item> <item>close</item> <item>delete</item> <item>move</item> </one-of> <rule id="object"> <count number="optional"> <item>the</item> <item>a</item> </count> <item>window</item> <item>file</item> <item>menu</item> </grammar>