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