Beginnen wir mit einem möglichst einfachen VoiceXML-Dokument:
Beispiel 20.1. sprachausgabe.vxml
<?xml version="1.0" encoding="UTF-8"?> <vxml version="2.0"> <form> <block><prompt>Willkommen bei der Apfelmus GmbH<break time="1000ms"/></p rompt></block> <block><prompt>Hier spricht der Asterisk.</prompt></block> </form> </vxml>
Die erste Zeile kommt jedem bekannt vor, der sich schon einmal mit XML beschäftigt hat. Sie hat noch nichts mit VoiceXML zu tun, sondern besagt lediglich, dass es sich um ein UTF-8-kodiertes XML-Dokument handelt.
Der zweite Zeile mit dem XML Root-Element kommt dagegen schon zum Thema: Sie sagt dem Voicebrowser, dass es sich um ein VoiceXML-Dokument der Version 2.0 handelt. Man sieht in diesem Element häufig auch diverse Namespace-Attribute. Erforderlich sind diese jedoch nicht und in den hier aufgezeigten Beispielen wollen wir der Einfachheit halber darauf verzichten.
Das <form>-Element wird den einen oder anderen an dieser Stelle vielleicht verwundern. Mit einem Formular, wie man es von HTML kennt, hat es nämlich nicht viel gemeinsam. Wie man im Beispiel sieht, erfolgt hier lediglich eine Ausgabe von Text, ohne dass irgendwelche Daten entgegengenommen oder abgeschickt würden. Wenn man die Analogie zu HTML sucht, entspricht das <form>-Element von VoiceXML eigentlich mehr einem <body>-Element in HTML.
Dem interessierten Leser sei an dieser Stelle gesagt, dass es
alternativ zu |
Die folgenden Element sind mehr oder weniger selbsterklärend: Innerhalb eines <form>-Elements können mehrere <block>-Elemente enthalten sein. In <block>-Elementen können <prompt>-Elemente stehen, die eine Sprachausgabe über das Text-to-Speech-System des Voicebrowsers bewirken. Ein Voicebrowser, der von einem Webserver das obige Dokument empfangen hat, sagt zuerst "Willkommen bei der Apfelmus GmbH", wartet dann eine Sekunde und sagt dann "Hier spricht der Asterisk".
Text-to-Speech-Systeme für den Asterisk sind mittlerweile in recht guter Qualität verfügbar. Als die am weitesten verbreiteten Produkte sind Festival, MBROLA und Cepstral zu nennen (siehe „Text2Speech (TTS)“).