FBSV: FriedBerger SprachserVer

Zum Testen einfacher VoiceXML-Dialoge wurde ein entsprechender Interpreter realisiert. Die Anwendung besteht aus einer Anzahl von Java-Klassen. Spracheingaben und Ausgaben erfolgen über die Audio-Schnittstelle von Java. Für die Spracherkennung wird das HTK-Tool HVite eingesetzt.

Das Hauptziel der Entwicklung war ein einfaches, leicht einsetzbares Programm zur Demonstration grundlegender Möglichkeiten von VoiceXML. Daher wurde Wert gelegt auf: FBSV ist nicht zu vergleichen mit professionellen VoiceXML-Plattformen. Unter anderem gilt

Verwendung

Installation und Ausführung

Alle notwendigen Dateien sind als Release in einem Archiv zusammengestellt. Die HTK-Tools und Sprachsynthese werden zusätzlich benötigt. Im Archiv bereits enthalten ist der Open-Source Javascript-Interpreter Rhino.

Nach der Installation sollten im Hauptverzeichnis die Dateien vorhanden sein. Mit run.bat wird die Anwendung gestartet. Dabei wird aus fbsv.ini der Name der ersten VoiceXML-Datei gelesen. Wenn alles richtig funktioniert, sollten zwei Fenster erscheinen:
  1. Das Hauptfenster mit Feldern für Textausgabe, Erkennungsergebnis und Fehlermeldungen
  2. Ein Fenster für Texteingaben
In der Konfigurationsdatei sind durch die Zeilen
TTSON=no
TextInput=true
die Sprachsynthese und -erkennung ausgeschaltet. Daher erscheint automatisch das Fenster TextInput für Texteingaben. In diesem Fenster kann man die Eingaben eines Erkenners simulieren. Dazu trägt man im Textfeld die Wortfolge ein und schickt sie dann mit dem Knopf Send an die Anwendung. In dem Beispiel kann man Ziffern 0 bis 9 eingeben. Nach Eingabe von 3 ergibt sich folgendes Bild:
Die Ziffer wurde automatisch in die Form Drei gewandelt, an die Anwendung geschickt und dort als erkannter Text behandelt. In TextInput wurde die Eingabe für die erneute Eingabe auf einen Knopf gelegt. Diese Belegung kann mit Save in eine Datei gespeichert und später mit Load wieder von dort geladen werden.

Spracherkennung

Die Anwendung ist vorbereitet zur Spracherkennung mit den HTK-Programmen. Diese sind allerdings nicht in dem Release enthalten sondern müssen von hier geholt werden. Dann kann man die Option TextInput in der Konfigurationsdatei auf false setzen. Auch in der Anwendung kann durch das Menü REC zwischen den beiden Eingabemodi umgeschaltet werden. Allerdings wirkt die Umschaltung nicht sofort sondern erst ab der nächsten Eingabe.

Sprachsynthese

FBSV unterstützt zwei Systeme zur Sprachsynthese:

FreeTTS ist eine Java-Implementierung eines Systems zur Sprachsynthese. Die Software ist frei verfügbar. Die Verwendung ist einfach. Das System wird von Sourceforge geholt und entpackt. Dann muss nur noch die Anwendung Server.jar im Verzeichnis bin gestartet werden. FBSV findet dann beim Start den Server und kann ihn für die Sprachsynthese verwenden. Allerdings spricht FreeTTS dann nur Englisch.

Flexibler ist MBROLA. Neben der Software benötigt man Sprecher/innen. Auf der MBROLA-Seite stehen acht verschiedene (de1 bis de8) zur Verfügung. Standard für FBSV ist c:/database/de5/de5. Dies kann mit der Parameter mbrolaDB in der Konfigurationsdatei geändert werden. Zur Umsetzung in die Phonemfolge wird das Programm Txt2Pho verwendet. Ein vom Standard c:/programme/txt2pho abweichendes Verzeichnis muss mit dem Parameter t2pDir in der Konfigurationsdatei eingetragen werden.

Weitere Beispiele

Im Verzeichnis vxml sind einige Beispiele enthalten. Die Schach-Anwendung realisiert die Eingabe von Spielergebnissen. An diesem Beispiel soll die Arbeitsweise von FBSV näher erläutert werden. Im ersten Feld
<field name="vereine">
<grammar src="net/vereine.net" />
<prompt>Bitte die beiden Vereine eingeben.</prompt>
</field> 
werden die beiden Vereinsnamen erfragt. Das Netzwerk zur Erkennung steht in der Datei net/vereine.net und wurde mit dem HTK-Tool HParse aus der Beschreibung
$city = 
Bensheim |
Biebertal |
Dettingen |
Eppstein |
Friedberg |
Fulda |
Giessen |
Hofheim |
Limburg |
Marburg |
Oberursel |
Schoeneck
;

($city $city)
(Datei vereine.gram) generiert. In der derzeitigen Version wird die Äußerung zunächst aufgezeichnet und dann mit HVite verarbeitet. Dabei wird entweder ein angegebenes Netzwerk oder ein aus den Angaben in VoiceXML temporär erzeugtes verwendet.

Die Details zur Spracherkennung sind in der ini-Datei festgelegt. In vorliegenden Version sind die Modelle und Listen im Verzeichnis arbeit abgelegt. Es werden einfache Phonem-Modelle zusammen mit einem kleinen Aussprachelexikon verwendet. Um den Wortschatz zu erweitern, müssen entsprechende neue Einträge in das Aussprachelexikon eingefügt werden.

In der gleichen Art und Weise wie die Vereine wird das Ergebnis abgefragt. Schließlich werden die Daten an einen Perl-Skript übergeben. In dem Beispiel sendet der Skript das Ergebnis an die Anwendung Sprachserver (ebenfalls im Archiv enthalten). Weiterhin wird VoiceXML-Code für die weitere Verarbeitung ausgegeben. Die Ausgabe wird in einer Datei submit_tmp.vxml gespeichert. In FBSV wird dann diese Datei als nächstes verarbeitet.