Transcript Document
Praktikumsprojekt Vorlagen und Beispiele Dr. Martin Westphal, [email protected] Praktikum, Universität Karlsruhe WS 2008/2009 http://csl.ira.uka.de 1 Termin- und Eventplaner Sie sollen einen sprachgesteuerten Termin-und Eventplaner erstellen Schon mal einen wichtigen Termin vergessen? Das soll mit diesem Telefon-basierten System nicht mehr passieren. Eingabe und Abfrage von Terminen. Auf Wunsch auch erinnern lassen. Andere Leute zu Events einladen und eingeladen werden. Das alles soll kinderleicht möglich sein und den potentiellen Kunden dieses Services schmackhaft gemacht werden. 2 Beispiel-Terminologie Benutzer: Person, die das System benutzt oder benutzen will. Falls nicht gesondert vermerkt, ist ein Benutzer bereits beim System registriert. Termin: Ein Eintrag im Kalender zu dem ein Tag, eine Zeit und eine Dauer gehören. Gemeinsamer Termin: Termin zu dem mindestens ein Freund oder eine Gruppe eingeladen wurde. Freund: Ein anderer Benutzer, der zu eigenen Terminen eingeladen werden kann. Erinnerung/Erinnerungsanruf: Telefonische Benachrichtung für einen Termin. Vorlauf: Zeitspanne, um die der Erinnerungsanruf vor dem Startzeitpunkt des Termines erfolgen soll. Registrierung: Eine Person wird dem System bekannt gegeben. Als Informationen werden Name, PIN, usw eingetragen. Authentifizierung: Ein Benutzer weist sich im Laufe eines Anrufes dem System gegenüber mit seiner PIN aus. PIN: ... ... 3 Use Cases: Administration neuen Benutzer anlegen Benutzer löschen Administrator Benutzerdaten ändern Diese Use Cases werden nicht implementiert, sondern über direkten Datenbankzugriff vorgenommen. Man könnte hierfür auch ein Webinterface einrichten oder diese als Use Case des Benutzers definieren und als Funktion in die Anwendung einbauen (z.B. Benutzerdaten ändern). 4 Use Cases: Termine <<include>> neuen Termin anlegen Termin suchen Tag festlegen ... <<extend>> (?) <<extend>> (nicht eingeloggt) <<include>> Authentifizierung Benutzer Termin ändern Termin löschen an Termin erinnern 5 Use Cases: gemeinsame Termine ... ... Termin suchen <<include>> Benutzer Freund einladen Gruppe einladen eingeladener Benutzer an Termin erinnern 6 Datenbankentwurf 1:n Benutzer BNummer Name PIN 1:0..1 Termin 4digits string 4digits TIndex BNummer Datum Zeit Dauer Typ integer 4digits date time duration enum Wiederholung TIndex Zeitraum Anzahl Wenn der Benutzername eindeutig ist, könnte die Authenifizierung auch über diesen erfolgen. In jedem Fall kann der Name zur Ansprache des Benutzers verwendet werden. Sollen lieber Vor- und Nachname verwendet werden? Die ‚enum‘-Typen sind noch zu spezifizieren wie im Beispiel Zeitraum. integer (Tag, Woche, Monat, Jahr) integer 7 Dialogfluss Begrüßung Authentifizierung Hauptmenü Termin anlegen Benutzernummer Voice Nummer bestätigen falsch DTMF richtig PIN Eingabe nein falsch richtig count=2? ja 8 Dialogskript: allgemeines Verhalten Event Aktion keine Eingabe Ansage wiederholen Falscherkennnung „Tut mir leid, das habe ich nicht verstanden.“ + Ansage wiederholen „Hilfe“ „Was kann ich sagen?“ „Auf Wiederhören.“ „Hauptmenü“ Rücksprung zum Dialogschritt ‚Hauptmenü‘ 9 Dialogskript Dialogschritt Nachrichtentyp Aus- oder Eingabe Folgende Aktion Begrüßung Ansage „Herzlich willkommen bei Ihrem persönlichen Terminplaner.“ Benutzernummer Eingabe Benutzernummer Eingabe Prompt „Bitte geben Sie mir zunächst Ihre Benutzernummer.“ Prompt count=2 „Bitte geben Sie nun Ihre 5-stellige Benutzernummer ein.“ Prompt count=3 „Sie können Ihre Benutzernummer in einzelnen Ziffern sprechen oder eintippen.“ Anrufer tippt Nummer über DTMF PIN Eingabe Anrufer sagt Nummer Nummer bestätigen PIN Eingabe Prompt ... 10 Grammatik: Beispielsätze (1) (2) Neuen Termin anlegen ich möchte einen neuen Termin anlegen neuer Termin Termin eintragen einen neuen Termin bitte Termin festlegen Termin ändern (2) diesen Termin ändern die Dauer ändern Zeit ändern Termin verschieben Termin suchen wann ist der nächste Termin? nächster Termin (1) welche Termine habe ich heute? welche Termine habe ich morgen? Termin löschen (2) diesen Termin bitte löschen den zweiten Termin bitte löschen den vorigen Termin streichen Ist nicht eindeutig: ist der nächste ab jetzt gemeint oder derjenige nachdem zuvor gefundenen? Wie ist das Konzept? Soll zunächst ein Termin gesucht werden, den man dann ändern oder löschen kann oder soll man äußern einen Termin ändern/löschen zu wollen, den man dann suchen muss? 11 MRCP Umgebung einrichten Lokales VoiceWeb mit Datenbank, Web Server, Voice Browser, Voice Server und VoIP Telefon 12 Übersicht MRCP Umgebung Host System: Windows XP - 192.168.254.1 VMWarePlayer VM: Linux CentOS - 192.168.254.3 SJphone (VoIP phone) SIP WebSphere Application Server Voice Enabler (VoiceXML Browser) MRCP Voice Server (ASR + TTS) VoiceXML Apache (Web Server mit php) SQL php Scripte, Grammatiken, Audiodateien mySQL (Datenbank) Daten 13 MRCP Umgebung einrichten VMWare Player/Server installieren VoiceServer Image kopieren (WVS) VM konfigurieren und starten VM Netzwerk konfigurieren VM Image (CentOS Linux) starten login: root password: ibmwvs WVS starten VTK starten und für WVS konfigurieren 14 Configure VMWare Image Host System: 192.168.254.1 Check connection: > ipconfig > ping 192.168.254.3 VMWarePlayer with VM Image VM: 192.168.254.3 Check connection: > ping 192.168.254.1 15 CentOS Basics 16 Netzwerkkarte unter CentOS einrichten 1 17 Netzwerkkarte unter CentOS einrichten 2 18 WebSphere Voice Server Basics Pfade: AS=/opt/WebSphere/AppServer/ VS=/opt/WebSphere/VoiceServer/ AppServer starten und stoppen: cd $AS/bin; ./startServer.sh server 1 cd $AS/bin; ./stopServer.sh server 1 VoiceServer Administration: http://localhost:9090/admin Funktionstest: cd $VS/firststeps; ./firststeps.sh 19 Configure VTK for WVS rtsp://192.168.254.3/media/recognizer rtsp://192.168.254.3/media/synthesizer 20 Grammatiktest über MRCP Voraussetzung: ASR MRCP Server z.B. WebSphere Voice Server (WVS) Interaktiv mit VTK (VoiceToolKit) Entwicklung, Funktionstest SISR Batch-Test mit VTK Abschlusstest, Abdeckung voiceTest Command-Line Tool, nur WVS erforderlich 21 1) Interaktiver Test mit VTK 22 2) Batch-Test mit VTK Testet große Anzahl Grammatiken und Audiodateien Spezifikation von Spracherkenner-Parameter Detailierte Ergebnisanzeige Speichert, vergleicht und exportiert Daten mehrerer Testläufe Direkte Einbindung des Transkriptionstools Analyse der Erkennungsgenauigkeit 23 3) voiceTest cd /opt/WebSphere/VoiceServer/lib echo "1 2 3" > 123.txt ./voiceTest.sh synthesize –speak 123.txt –audioTTS 123.wav ./voiceTest.sh recognize –audioASR 123.wav –grammar builtin:grammar/digits –speech-language de_DE 24 VoiceXML Testumgebungen 25 VOICE Testcenter http://www.voice-community.de/index.aspx?page=200 26 27