270 likes | 387 Views
Praktikumsprojekt. Vorlagen und Beispiele. . Dr. Martin Westphal, westphal@de.ibm.com Praktikum, Universität Karlsruhe WS 2008/2009 http://csl.ira.uka.de. Termin- und Eventplaner. Sie sollen einen sprachgesteuerten Termin-und Eventplaner erstellen
E N D
Praktikumsprojekt Vorlagen und Beispiele Dr. Martin Westphal, westphal@de.ibm.com Praktikum, Universität Karlsruhe WS 2008/2009 http://csl.ira.uka.de
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.
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: ... ... Beispiel-Terminologie
Use Cases: Administration neuen Benutzer anlegen Benutzer löschen Benutzerdaten ändern Administrator 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).
Use Cases: Termine <<include>> Tag festlegen neuen Termin anlegen ... <<extend>> (?) Termin suchen <<extend>> (nicht eingeloggt) <<include>> Authentifizierung Termin ändern Benutzer Termin löschen an Termin erinnern
Use Cases: gemeinsame Termine ... ... Termin suchen <<include>> Freund einladen Benutzer Gruppe einladen eingeladener Benutzer an Termin erinnern
Datenbankentwurf 1:n 1:0..1 Benutzer Termin Wiederholung BNummer 4digits Name string PIN 4digits TIndex integer BNummer 4digits Datum date Zeit time Dauer duration Typ enum TIndex integer Zeitraum (Tag, Woche, Monat, Jahr) Anzahl integer 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.
Dialogfluss Begrüßung Authentifizierung Hauptmenü Benutzernummer Termin anlegen Voice Nummer bestätigen falsch DTMF richtig PIN Eingabe nein count=2? falsch ja richtig
Neuen Termin anlegen ich möchte einen neuen Termin anlegen neuer Termin Termin eintragen einen neuen Termin bitte Termin festlegen Termin suchen wann ist der nächste Termin? nächster Termin (1) welche Termine habe ich heute? welche Termine habe ich morgen? Termin ändern (2) diesen Termin ändern die Dauer ändern Zeit ändern Termin verschieben Termin löschen (2) diesen Termin bitte löschen den zweiten Termin bitte löschen den vorigen Termin streichen Grammatik: Beispielsätze • 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 kannoder soll man äußern einen Termin ändern/löschen zu wollen, den man dann suchen muss?
MRCP Umgebung einrichten Lokales VoiceWebmit Datenbank, Web Server, Voice Browser, Voice Server und VoIP Telefon
Übersicht MRCP Umgebung Host System: Windows XP - 192.168.254.1 VMWarePlayer VM: Linux CentOS - 192.168.254.3 VoiceXML SJphone (VoIP phone) SIP WebSphere Application Server Voice Enabler (VoiceXML Browser) Apache (Web Server mit php) php Scripte, Grammatiken, Audiodateien MRCP SQL Voice Server (ASR + TTS) mySQL (Datenbank) Daten
MRCP Umgebung einrichten • VMWare Player/Server installieren • VoiceServer Image kopieren (WVS) • VM konfigurieren und starten • VM Netzwerk konfigurieren • VM Image (CentOS Linux) startenlogin: root password: ibmwvs • WVS starten • VTK starten und für WVS konfigurieren
Configure VMWare Image Host System: 192.168.254.1 VMWarePlayer with VM Image Check connection: > ipconfig > ping 192.168.254.3 VM: 192.168.254.3 Check connection: > ping 192.168.254.1
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
Configure VTK for WVS rtsp://192.168.254.3/media/recognizer rtsp://192.168.254.3/media/synthesizer
Grammatiktest über MRCP Voraussetzung: ASR MRCP Serverz.B. WebSphere Voice Server (WVS) • Interaktiv mit VTK (VoiceToolKit)Entwicklung, Funktionstest SISR • Batch-Test mit VTKAbschlusstest, Abdeckung • voiceTestCommand-Line Tool, nur WVS erforderlich
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
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
VOICE Testcenter http://www.voice-community.de/index.aspx?page=200