|
|||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||
Grammatiken (Speech Recognition Grammars)
Einer der wichtigsten Bausteine einer VoiceXML-Anwendung sind Grammatiken.
In Grammatiken werden die Benutzeräusserungen (oder DTMF-Töne) spezifiziert, die zu einem bestimmten Zeitpunkt von dem Spracherkenner eines VoiceXML-Systems erkannt werden müssen. Das VoiceXML-System kann nämlich nur dann etwas mit der sprachlichen Eingabe anfangen, wenn diese zu einem bestimmten Zeitpunkt eine der aktiven Grammatiken "matcht". Besonders im Zusammanhang mit gemischter Initiative ist es wichtig, dass der Voice Browser Unterstützung bietet, wenn mehrere Eingabefelder und mehrere Grammatiken zum gleichen Zeitpunkt aktiv sein müssen. Es gibt unterschiedliche Typen von Grammatiken:
In Verbindung mit VoiceXML2.0 wurde zur Verbesserung der Lage von W3C Grammar Specification (SRGS) eingeführt. Von VoiceXML2.0 werden 2 textuelle Grammatikformate unterstützt: ABNF (Arugmented Bacus-Naur Form) und XML (eXtensible Markup Language). XML-Grammatiken bestehen aus ASCII-Zeichen, die in XML-Tags eingeschlossen sind. ABNF Grammatiken benutzen dagegen Sonderzeichen (special characters), um in einem ASCII-String definierten grammatischen Ausdrücke zu spezifizieren. Welcher von diesen Formaten vom Programmierer benutzt wird, ist eigentlich Geschmacksache - das Ergebnis kommt im Grossen und Ganzen auf das Gleiche hinaus. ABNF-Notation wird bestimmt denjenigen näher liegen, die bereits Erfahrungen mit JSGF oder GSL gemacht haben. XML-Format erschwert die Lesbarkeit von ABNF, was besonders den Anfängern Angst und Schrecken einjagt ;-) Ab der VoiceXML2.0-Spezifikation wird XML-Grammatikformat gefordert, was bedeutet, dass man sich an diesen Format halten sollte, wenn einem die Portabilität seines Systems am Herzen liegt. Aber man sollte sich von der Unlesbarkeit der XML nicht abschrecken lassen - so schwer ist die Syntax gar nicht, vor allem wenn man drei folgende Regeln im Kopf behält:
<user>User1<user/> <user>User2<user/> <userList/> JSGF, ABNF, XML-Notationen in VergleichHier werden Grundtermini der Grammatikgestaltung eingeführt und auf Beispielen der 3 gängigen Grammatikformate erläutert.File ExtensionsHeaderHeader sollten nun folgende Informationen enthalten: Grammatiktyp (jsgf, abnf oder xml), bestehend aus der Bezeichnung der Grammatik und der Grammatikversion (aktuell: 1.0) und Encoding (optional), welches für die gegebene Sprache benutzt wird.
Vermerk , für welche Sprache die Grammatik erstell ist (Bei ABNF und XML im Voice-Modus):
Modus : entweder voice (default) oder dtmf (nur Telefontasten werden erlaubt), gemischter Modus wird nicht erlaubt, d.h. wenn beide Modi benötigt werden, sind auch 2 separate Grammatiken für jeden Modus zu spezifizieren. Bei einer JSGF-Grammatik sollte an dieser Stelle der Name der Grammatik spezifiziert werden:
In dem Fall, wenn bei der ABNF oder XML - Grammatik mehrere Regeln in einem File zusammenleben, muss unbedingt die Hauptgrammatik spezifiziert werden, welche ausgeführt wird, wenn der Grammatikfile aufgerufen wird. Bei JSGF-Grammatik werden alle Regeln eines Grammatikfiles aktiv, die als <public> gekennzeichnet werden.
Regeln
JSGF, ABNF, n best lists, inline, external, built-in, Regeln, Syntax, code samples | |||||||||||||||||||||||||||||||