-
Diese
Erfindung betrifft eine interaktive Dialogvorrichtung und Dialogverfahren
und bezieht sich insbesondere, wenn auch nicht ausschließlich auf
jene, die eine Spracheingabe und/oder -ausgabe, vorzugsweise unter
Verwendung von Schnittstellenverfahren für die maschinelle Sprachverarbeitung,
verwenden.
-
Ein
spezielles Beispiel derartiger Dialoge betrifft die automatisierte
Telefonanrufweiterleitung.
-
Systeme
für die
interaktive Sprachausgabe (IVR, für Interactive Voice Response)
werden in "Towards fluency-structured
dialogues with natural speech input", D. J. Attwater, J. S. Fischer und
H. R. Greenhow, BT Techol. J. Band 17, Nr. 1, Januar 1999, erörtert. Hierin
wird ein Aufbau zum Befolgen einer Dialogstruktur beschrieben, worin
Spracheingaben erkannt und zum Gewinnen von Informationen analysiert
werden und worin Sprachaufforderungen abhängig von der Vorgeschichte
der in der Dialogstruktur besuchten Knoten erzeugt werden.
-
In
der Druckschrift WO 9618260 wird ein automatisches Telefonanrufbeantwortungssystem
offenbart, das dynamisch veränderliche
sprachliche Ausgaben erzeugt, die entsprechend einer Echtzeitverarbeitung
von auf einer Vielzahl früherer
Antworten von Anrufern basierenden historischen Daten in dem Dialog
zusammengestellt werden.
-
In "Spontaneous speech
dialogue system TOSBURG II – the
user centered multimodal interface" von Yoichi Takeyabashi, Systems & Computers in
Japan, US, Scripta Technical Journals, New York, Band 26, Nr. 14,
15. November 1995, Seite 77–91,
wird die Verwendung eines Sprachdialogsystems mit einem Dialogmanager
gezeigt, der ein Modell für Übergänge zwischen
Zuständen
verwendet. Auch hier werden historische Dialogdaten basierend auf
den Ergebnissen des Dialogverständnisses
aktualisiert und eine Antwort erzeugt. Takeyabashi fasst auch eine
multimodale Ausgabe ins Auge, die synthetisierte Sprache, Text und
Bilder umfasst.
-
Gemäß einem
Aspekt der Erfindung wird eine interaktive Dialogvorrichtung angegeben,
die umfasst:
Eine Einrichtung zum Erzeugen von auszugebenden
Ansagen;
eine Einrichtung zur Verarbeitung eingehender Antworten
für das
Erzeugen von Antwortdaten;
einen Speicher zum Speichern von
Antwortdaten;
einen Speicher zum Speichern von Daten, die einen
Anfangszustand,
eine Vielzahl von nachfolgenden Zuständen, mögliche Übergänge zwischen
Zuständen
und für
jeden Übergang
eine zugeordnete Bedingung definieren, die erfüllt sein muss, bevor der Übergang
als zulässig
anzusehen ist, wobei zumindest einige der Zustände die gespeicherten Antwortdaten
umfassen; und
eine Steuereinrichtung, die ausgebildet ist
- (a) ein syntaktisches Verfahren auszuführen, bei
dem sie untersucht, ob Übergangsbedingungen
erfüllt sind,
um nachfolgende Zustände
zu bestimmen, hinsichtlich derer
(i) die dem Übergang
bzw. den Übergängen von
einem Referenzzustand zu diesem Zustand zugeordnete(n) Bedingung(en)
erfüllt
sind, und
(ii) keine einem Übergang
von diesem Zustand zugeordnete Bedingung erfüllt ist;
- (b) Auswählen
einer auszugebenden Ansage in Abhängigkeit des so bestimmten
Zustands; worin die Steuereinrichtung ausgebildet ist, bei Erhalt
einer Antwort das syntaktische Verfahren unter Verwendung des Anfangszustands
als Referenzzustand zu wiederholen.
-
Gemäß einem
weiteren Aspekt wird eine interaktive Dialogvorrichtung angegeben,
die umfasst:
Eine Einrichtung zum Erzeugen von auszugebenden
Ansagen;
eine Einrichtung zur Verarbeitung eingehender Antworten
für das
Erzeugen von Antwortdaten;
einen Speicher zum Speichern von
Antwortdaten;
einen Speicher zum Speichern von Daten, die einen
Anfangszustand,
eine Vielzahl von nachfolgenden Zuständen, mögliche Übergänge zwischen
Zuständen
und für
jeden Übergang
eine zugeordnete Bedingung festlegen, die erfüllt sein muss, bevor der Übergang
als zulässig
anzusehen ist, wobei zumindest einige der Zustände die gespeicherten Antwortdaten
umfassen;
einen Zustandsvorgeschichtespeicher; und
eine
Steuereinrichtung, die ausgebildet ist
- (a)
ein syntaktisches Verfahren auszuführen, bei dem sie untersucht,
ob Übergangsbedingungen
erfüllt sind,
um nachfolgende Zustände
zu bestimmen, hinsichtlich derer
(i) die dem Übergang
bzw. den Übergängen von
einem Referenzzustand zu diesem Zustand zugeordnete(n) Bedingung(en)
erfüllt
sind, und
(ii) keine einem Übergang
von diesem Zustand zugeordnete Bedingung erfüllt ist;
- (b) die bestimmten Zustände
in dem Vorgeschichtespeicher aufzuzeichnen;
- (c) eine auszugebende Ansage abhängig von den Inhalten des Vorgeschichtespeichers
auszuwählen;
worin
die Vorrichtung einen Ansagedefinitionsspeicher zum Speichern einer
Vielzahl von Ansagendefinitionen umfasst, von denen jede Ansagedefinition
ein sequenzielles Muster eines oder mehrerer dieser zugeordneten Zustände aufweist,
und die Steuereinrichtung ausgebildet ist, von den Ansagen, die
einem sequenziellen Muster zugeordnet sind, das zumindest mit dem
neuesten Teil der Folge von Zuständen
in dem Zustandsvorgeschichtespeicher übereinstimmt, die Ansage auswählt, die
die längste
derartige Übereinstimmung
aufweist.
-
Nach
einem weiteren Aspekt, der nicht die Verwendung eines Zustandsmodells
voraussetzt, wird eine interaktive Dialogvorrichtung angegeben,
die umfasst:
Eine Einrichtung zum Erzeugen von auszugebenden
Ansagen;
eine Einrichtung zur Verarbeitung eingehender Antworten
für das
Erzeugen von Antwortdaten;
eine Steuereinrichtung, die ausgebildet
ist, ein Dialogverfahren durchzuführen, bei dem sie abhängig von
den Antwortdaten eine auszugebende Ansage auswählt;
eine Einrichtung
zum Speichern der zuletzt ausgegebenen Ansage;
eine Einrichtung,
die ausgebildet ist, die ausgewählte
Ansage mit der gespeicherten, letzten Ansage zu vergleichen, und
im Falle einer Übereinstimmung
das Dialogverfahren zu beenden.
-
Die
Erfindung erstreckt sich auch auf die dazugehörigen Verfahren. Weitere Aspekte
der Erfindung werden in den Ansprüchen definiert.
-
Im
Folgenden wird eine beispielhafte Ausführungsform der Erfindung unter
Bezugnahme auf die beiliegenden Zeichnungen beschrieben, worin:
-
1 eine
schematische Darstellung eines Computers wiedergibt, auf den eine
erfindungsgemäße Software
geladen wurde;
-
2 einen
bekannten Aufbau eines Systems zur maschinellen Sprachverarbeitung
zeigt;
-
3 den
Dialogmanager von 2 etwas ausführlicher zeigt;
-
4 eine
zwei Zustände
verbindende Kante mit zugehörigen
Kantenbedingungen zeigt;
-
5 einen
automatisch hinzugefügten,
expliziten Bestätigungszustand
zeigt;
-
6 eine
Kantenbedingung veranschaulicht, die es ermöglicht, einen Zustand in dem
Dialog zu überspringen;
-
7 ein
Dialogmodell für
einen Teil eines Fehlermeldedialogs zeigt; und
-
8 ein
Flussdiagramm für
den Funktionsablauf des Dialogmanagers zeigt.
-
Im
Folgenden wird ein System zur maschinellen Sprachdialogverarbeitung
beschrieben. In diesem Beispiel ist das System Teil eines Steuerungssystems
für Telefonanrufe,
dessen letztendliche Aufgabe darin besteht, von einem Anrufer genügend Information
sicherzustellen, um zu entscheiden, wohin der Anruf geleitet werden
soll und diese Information dann an das Fernsprechnetz zu übergeben,
das den Anruf genau genommen weiterleitet. Es ist jedoch auch für viele
andere Anwendungen geeignet. Insbesondere könnten, auch wenn das beschriebene
System Spracherkennung und Sprachsyntheseverfahren zur Durchführung eines
gesprochenen Dialogs verwendet, dieselben Prinzipien auch auf Systeme
angewandt werden, die andere Formen für die Ein- und Ausgabe verwenden
wie beispielsweise Text, oder wohl auch auf gemischte Kommunikationsarten
(z. B. Texteingabe und Sprachausgabe) oder Systeme, die mehr als
eine solches Arten gleichzeitig verwenden.
-
Soweit
es die Hardware betrifft, wird das System auf einem standardmäßigen Desktopcomputer 101 (1)
ausgeführt.
-
Der
Computer 101 weist eine Zentraleinheit 102, die
mit einem Bus 103 zur Kommunikation mit dem Speicher 104 verbunden
ist, eine herkömmliche
Plattenspeichereinheit 105 zum Speichern von Daten und
Programmen, eine Tastatur 106 und Maus 107 für Benutzerein gaben
und einen Drucker 108 sowie eine Anzeigeeinheit 109 für die Darstellung
von Ausgaben des Computers 101, auf. Der Computer 101 weist
auch eine Soundkarte 110 und für den Zugriff auf (nicht gezeigte)
externe Netzwerke eine Karte zur Netzwerkanbindung 111 auf.
-
Der
Plattenspeicher 105 enthält eine Reihe von Programmen,
die in den Speicher geladen und von dem Prozessor 102 ausgeführt werden
können,
und zwar ein herkömmliches
Betriebssystem 112 und ein Programm 113, das eine
Vorrichtung zur interaktiven Sprachausgabe für die Anrufsteuerung unter
Verwendung einer Schnittstelle für
die maschinelle Sprachverarbeitung schafft.
-
Das
Programm 113 arbeitet gemäß der von dem funktionellen
Blockschaltbild in 2 dargestellten Struktur. Die
(über die
Netzwerkkarte 111 von 1) erhaltene
sprachliche Äußerung eines
Benutzers wird in die Spracherkennung 10 eingegeben. Die
erhaltene sprachliche Äußerung wird
von der Erkennung 10 unter Bezugnahme auf ein Sprachmodell 22,
das eines von einer (nicht gezeigten) Vielzahl möglicher Sprachmodelle darstellt,
analysiert. Das Sprachmodell 22 verkörpert die Wort- oder Subwortsequenzen,
die von der Erkennung 10 erkannt werden können, sowie
die Wahrscheinlichkeit des Auftretens dieser Sequenzen. Die Erkennung 10 analysiert
die erhaltene sprachliche Äußerung und
liefert als Ergebnis eine Darstellung der Wort- oder Subwortsequenzen,
die der erhaltenen sprachlichen Äußerung am ähnlichsten
sind. In diesem Beispiel wird angenommen, dass die Darstellung aus
der wahrscheinlichsten Wort- oder Subwortsequenz besteht. Alternativ
könnte
eine Sequenz "zweiter
Wahl" oder eine
andere Multiple-Choice-Darstellung, wie beispiels weise die bekannte "Graphen"-Darstellung, der
wahrscheinlichsten Sequenz erstellt werden.
-
Da
die Erkennungsergebnisse erwartungsgemäß sehr fehleranfällig sind,
erstellt die Erkennung auch einen Zuverlässigkeitswert, der jedem Wort
in der Ergebnisdarstellung zugeordnet ist. Der Zuverlässigkeitswert
ist ein Maß bezüglich der
Wahrscheinlichkeit, dass das zugeordnete Wort von der Erkennung 10 korrekt erkannt
wurde. Das Erkennungsergebnis wird einschließlich des Zuverlässigkeitswerts
von einem Klassifizierer 6 empfangen, der die Äußerung zur
Bildung einer semantischen Klassifizierung einem vorgegebenen Satz von
Bedeutungen gemäß und unter
Bezugnahme auf ein semantisches Modell 20 (das eines aus
einer (nicht gezeigten) Vielzahl möglicher semantischer Modelle
darstellt) klassifiziert. Die semantische Klassifizierung weist
einen Wahrscheinlichkeitenvektor auf, wobei sich jede Wahrscheinlichkeit
auf eine bestimmte aus dem vorgegebenen Satz von Bedeutungen bezieht.
-
Das
Herz des Systems wird von einem Dialogmanager 4 gebildet,
der weiter unten ausführlicher
besprochen werden wird. Er dient der Steuerung des Dialogs unter
Verwendung der Informationen aus dem Dialogmodel 18. Er
kann einen Nachrichtengenerator 8 veranlassen, eine Nachricht
zu erzeugen, die über
die Telefonschnittstelle unter Verwendung des Sprachsynthesizers 12 zu
dem Benutzer gesprochen wird. Der Nachrichtengenerator 8 verwendet
Informationen aus dem Nachrichtenmodell 14, um die geeigneten
Nachrichten aufzubauen. Der Sprachsynthesizer nutzt eine Spracheinheitdatenbank 16,
die jeweils eine bestimmte Äußerung darstellende
Spracheinheiten enthält.
Der Dialogmanager setzt auch die Erkennung 10 darüber in Kenntnis,
welches Sprachmodell für
die Erkennung einer Antwort eines Benutzers auf die bestimmte erzeugte Nachricht
zu verwenden ist, und weist auch den Klassifizierer 6 dahingehend
an, welches semantische Modell für
die Klassifizierung der Antwort zu verwenden ist. Falls eine Texteingabe
erforderlich sein sollte, kann die Erkennung 10 ausgelassen
oder umgangen werden.
-
Er
erhält
die Antwort eines Benutzers wie sie vom Klassifizierer 6 ausgegeben
wird und kommt möglicherweise über weitere
Abfragen und Antworten zu einer Schlussfolgerung, woraufhin er (in
diesem Beispiel) über
die Netzwerkverbindung 111, die in 2 als externes
System 2 (zum Beispiel eine rechnergestützte Fernsprechverbindung zur
Anrufsteuerung oder eine Kundendatenbank) gezeigt ist, eine Anweisung
ausgibt.
-
Der
Dialogmanager weist einen Speicher 28 (3)
auf, der im Folgenden als Schwarzer-Brett-Speicher bezeichnet wird
und in dem die während
des Dialogs gesammelte Information aufgezeichnet wird. Diese umfasst
(a) Information, die die momentane "Überzeugung" des Dialogmanagers
bezüglich
der Wünsche
des Benutzers darstellt, (b) aus dem Dialog gewonnene zeitweilige
Information und (c) eine Zustandsvorgeschichte.
-
Der
Dialogmanager verwendet ein Zustandsmodell 18. Eine Reihe
von Zuständen
werden von den in einem Zustandsdefinitionsspeicher 32 gespeicherten
Daten definiert, während
(als Kanten bezeichnete) mögliche Übergänge von
einem Zustand in einen anderen Zustand (dem Nachfolgezustand) von
Daten definiert werden, die in einem Kantendefinitionsspeicher 34 gespeichert
sind. Diese Daten umfassen auch den Kanten zugeordnete logische
Bedingungen, unter Einschluss der in dem Schwarzen-Brett-Speicher
gespeicherten Information. Die Zustandsdefinitionsdaten und Kantendefinitionsdaten
bilden zusammen das Modell 18.
-
Das
Zustandsmodell funktioniert in der Weise, dass der Dialogmanager
das Modell insofern syntaktisch analysiert, dass er mit einem Anfangszustand
beginnend die von dem Zustand wegführenden Kanten untersucht und,
falls eine Kantenbedingung erfüllt
ist, mit dem dieser Kante entsprechenden Nachfolgezustand fort fährt. Dieser
Vorgang wird wiederholt, bis er nicht mehr weitergeführt werden
kann, weil keine Kantenbedingung mehr erfüllt (oder keine Kante mehr
vorhanden) ist. Der auf diese Weise erreichte Zustand wird als aktueller
Zustand bezeichnet: Seine Identität wird der in dem Schwarzen-Brett-Speicher gespeicherten
Zustandsvorgeschichte hinzugefügt.
Diese Vorgeschichte wird von dem Dialogmanager zur Entscheidung
für die nächste Ansage
(unter Verwendung eines Ansagenspeichers 24) verwendet.
Der Dialogmanager dient auch zur Eingabe von Daten in den Schwarzen-Brett-Speicher
und zum Verwalten des Schwarzen-Brett-Speichers unter
Verwendung von Ableitungsregeln aus einem Ableitungsregelspeicher 36.
In der Praxis werden die Speicher 32, 34, 24, 36 von
verschiedenen Bereichen des in 1 gezeigten
Speichers 123 gebildet.
-
Der
Zweck des Dialogmanagers 4 besteht in der Steuerung eines
Dialogs mit dem Nutzer so, dass von dem Nutzer ein vorgegebener
Satz von Informationselementen erhalten wird. Sobald der vorgegebene
Satz von Elementen erhalten wurde, ist der Vorgang abgeschlossen;
der Dialogmanager besitzt dann alle Informationen, die von dem ex ternen
System 2 benötigt
werden. Bei dem hierin beschriebenen System werden von dem Benutzer
erhaltene Informationselemente zum Füllen von Slots verwendet, wobei
der von dem Dialogmanager benötigte
vordefinierte Satz von Elementen von einem Satz von Slots dargestellt
wird, in dem jeder Slot jeweils mit einem Informationselement gefüllt wird,
wie es von dem Benutzer erhalten wurde. Ein von dem Klassifizierer
erhaltenes Informationselement wird in Form von drei Werten dargestellt
(in der Beschreibung als 'Triplet' bezeichnet, wobei
Triplet und Informationselement in dieser Beschreibung gegeneinander
austauschbar verwendet werden), die einen Slotnamen, das Informationselement
und den die Wahrscheinlichkeit, dass das Informationselement korrekt
verstanden wurde, darstellenden Zuverlässigkeitswert definieren. Die drei
Felder des Triplets werden als "Slot:Wert:Zuverlässigkeit" bezeichnet. Ein
Beispiel eines solchen Triplets ist "Tag:Dienstag:0,9", das bedeutet, dass der Slotname 'Tag' mit dem Informationselement 'Dienstag' gefüllt wurde
und dass die Wahrscheinlichkeit, dass 'Dienstag' korrekt ist 0,9 beträgt. Bei
einer automatischen Anrufweiterleitung umfassen die Beispiele der
für die
Anrufsteuerungsaufgaben zu füllenden
Slots 'Vorwahl', 'Tag' und 'Anrufkategorie'. Die 'Anrufkategorie' kann zum Beispiel
von 'Verzeichnisabfrage', 'Fehlermeldung', 'Weckruf usw. gebildet
werden. Beim Füllen
der Slots speichert der Dialogmanager solche Triplets in dem Schwarzen-Brett-Speicher 28.
Der Schwarze-Brett-Speicher 28 enthält damit eine Repräsentation
der gegenwärtigen Überzeugung
des Systems über
die Absichten des Benutzers. Auch wenn ein typischer Eintrag auf
dem schwarzen Brett von einem Triplet 'Slot:Wert:Vertrauen' gebildet wird (so zum Beispiel 'Tag:Samstag:0,5' – hier ist das System zu 50
% sicher, dass der von dem Benutzer erwähnte Tag Samstag ist), so werden
doch auch Einzelheiten, die der Benutzer von sich wies (z. B. 'nein, nicht Samstag'), im schwarzen Brett
gespeichert, wobei in diesem Fall der Eintrag 'Tag: Samstag:0' lautet. Neue Ergebnisse der jüngsten Äußerungen
des Benutzers werden den momentan im Schwarzen-Brett-Speicher 28 enthaltenen
Informationselementen hinzugefügt oder
mit diesen kombiniert.
-
Unter "kombiniert mit" stellen wir uns
ein weiteres Triplet vor, das auf einen bestimmten Slot bezogen ist,
für den
in dem schwarzen Brett-Speicher bereits ein Triplet mit derselben
Bedeutung gespeichert wurde (d. h. es unterscheidet sich nur in
der Zuverlässigkeit).
Es kann zum Ersetzen des existierenden Eintrags oder zum Berechnen
eines Ersatzeintrags aus der Kombination der beiden Ergebnisse verwendet
werden (In diesem Beispiel wird angenommen, dass die Speicherung
von zwei Triplets, die sich nur in der Zuverlässigkeit unterscheiden, nicht
zulässig
ist).
-
Nachfolgend
ein möglicher
Algorithmus:
Eine schwarze Tafel enthält eine Liste von Slots S,
von denen jeder einen Satz von Werten V mit zugehörigen Zuverlässigkeitswerten
aufweist.
-
Die
Fusionierung von schwarzen Brettern ist ein Vorgang, bei dem zwei
schwarze Bretter mathematisch zu einem einzigen neuen schwarzen
Brett kombiniert werden. Innerhalb des vorliegenden Kontexts wird das
existierende schwarze Brett (das die momentane Systemüberzeugung
enthält)
mit den neuesten Ergebnissen der jüngsten Erkennung (die als zweites
schwarzes Brett angesehen wird) kombiniert, um ein neues schwarzes
Brett zu bilden, das die neue Systemüberzeugung enthält.
-
Ausgehend
von den schwarzen Brettern A und B beschreibt dieser Vorgang, wie
ein (ursprünglich
leeres) neues schwarzes Brett C gefüllt wird. Die Fusionierung
wird erzielt, indem die Werte von jedem (entweder am schwarzen Brett
A oder B auftretenden) Slot der Reihe nach berücksichtigt werden.
-
Nachfolgend
wird folgende Notation verwendet:
Conf (A,S,V) – ist die
Konfidenz des Slots S, der am schwarzen Brett A den Wert V aufweist
(oder null, falls nicht definiert).
-
Für jeden
der entweder an A und/oder B auftretenden Slots S:
Sofern Slot
S nur am schwarzen Brett A vorliegt (d. h. an B sind keine Slotwerte
spezifiziert), werden die Werte des Slot S von A dem schwarzen Brett
C hinzugefügt.
-
Sofern
sich Slot S nur am schwarzen Brett B vorliegt (d. h. an A sind keine
Slotwerte spezifiziert), werden alle Slot S-Werte von B dem schwarzen
Brett C hinzugefügt.
-
Sofern
sowohl an A wie an B Slots vorliegen, werden die Ergebnisse wie
folgt zusammengeführt:
Für jeden
Wert V, der für
Slot S entweder am schwarzen Brett A und/oder B vorliegt,
wird
ein neuer Wert für
den Slot S dem schwarzen Brett C hinzugefügt, wobei die Konfidenz gegeben
ist durch:
worin die Gewichte W wie
folgt definiert sind
und v
i ein oder mehrere Werte für den Slot
S darstellen, für
den eine Konfidenzangabe am schwarzen Brett verfügbar ist.
-
Die
obige Entropie ist nur für
bestimmte Werte am schwarzen Brett definiert. Eine Alternative hierzu besteht
in der Berechnung der Entropie über
alle möglichen
Werte des Slots und nicht nur über
jene, die gerade am schwarzen Brett registriert sind. Es wird eine
Approximierung der maximalen Entropie vorgenommen, bei der alle
nicht spezifizierten Wahrscheinlichkeiten,
gleichförmig über mögliche, aber nicht bestimmte
Slotwerte verteilt werden.
-
Eine
in dem Dialogzustandsdefinitionsspeicher 32 gespeicherte
Dialogzustandsdefinition weist die folgenden Attribute auf:
- • Name
(Name des Zustands)
- • Typ
(Zustandstyp)
- • ConfSlot
(fakultativ) (Name des zu bestätigenden
Slots)
- • NextSlot
(fakultativ) (Name eines Slots, für den die Information erneut
beschafft werden muss).
-
Der
Zustandsname stellt eine eindeutige Kennung dar, die zur Bezugnahme
auf den Zustand verwendet wird. Es existieren sechs unterschiedliche
Zustandstypen, nämlich:
-
ConfSlot
verzeichnet den Slotnamen, der durch die Bestätigung der Informationselemente
durch den Benutzer betroffen ist. In diesem Beispiel wird nur ein
Slot verwendet, falls gewünscht
können
aber auch mehrere verwendet werden. Solche Slots sind in einer Ansage
enthalten. Eine positive oder negative Antwort (d. h. ja oder nein)
beeinflusst die einem bestimmten Slotwertfeld in dem maßgeblichen
Triplet zugeordnete Konfidenz.
-
NextSlot
verzeichnet alle Slotnamen, für
die der Benutzer Informationselemente liefern könnte. Üblicherweise werden diese Informationselemente
explizit abgefragt (d. h. 'welcher
Tag?' würde NextSlot
auf 'Tag' setzen).
-
Zum
Beispiel würde
der Zustand, der die Ansage 'Zu
welcher Zeit am Montag?' voraussetzt,
ein ConfSlot gleich 'Tag' aufweisen, da der 'Tag'-Slot implizit durch
das Aufweisen des Werts 'Montag' bestätigt wird.
NextSlot würde 'Zeit' und 'Vormittag/Nachmittag' entsprechen, da
der Benutzer in einer Weise antworten könnte, dass der 'Zeit' und/oder der 'Vormittag/Nachmittag'-Slot ausgefüllt werden.
-
In
dieser Ausführungsform
der Erfindung kann ConfSlot nur einen (oder null) Slotnamen enthalten. Dies
bedeutet, dass Abfragen, wie beispielsweise 'Zu welcher Zeit am Montag Morgen?' nicht möglich sind, bei
denen sowohl die 'Tag' als 'Vormittag/Nachmittag'-Slotwerte gleichzeitig
bestätigt
werden.
-
Zustände werden über Kanten
verbunden. Diese enthalten Bedingungen, die bei der syntaktischen Analyse
des Dialogmodells untersucht werden (das syntaktische Analysieren
des Dialogmodells wird im Einzelnen nachfolgend unter Bezugnahme
auf die 7 beschrieben). Während des
syntaktischen Analysierens muss eine Kantenbedingung wahr sein,
damit man die Kante überschreiten
und den nächsten
Zustand berücksichtigen
kann. In dem Schwarzen-Brett-Speicher 28 gespeicherte
Informationselemente werden untersucht, um zu bestimmen, ob eine
Kantenbedingung wahr ist. Ein Beispiel für eine Kantenbedingung ist: 'Tag'-Slot ist gefüllt und
sein Wert weist eine hohe Zuverlässigkeit
für seine
Richtigkeit auf.
-
4 zeigt
beispielhaft zwei Zustände 41, 42,
bei denen für
jeden der Name, Typ und die zugeordneten Slotnamen angezeigt sind.
Zustand 41 soll den Benutzer veranlassen, den Wert von
Slots 1 zu bestätigen und
weitere Informationen zu liefern. Das Modell gestattet es einem
nicht, mit Zustand 42 (der zur Bestätigung von Slot 42 vorgesehen
ist) weiterzumachen, bevor Slot 1 nicht zufrieden stellend bestätigt wurde
und die Daten für
Slot 2 mit einer akzeptablen Zuverlässigkeit empfangen wurden.
Somit besteht die Kantenbedingung darin, dass die Slot 1 zugeordnete
Zuverlässigkeit
größer als
0,99 und die Slot 2 zugeordnete Zuverlässigkeit größer als 0,8 ist.
-
Jedes
Mal, wenn das System den Benutzer zu etwas auffordern muss, wird
ein aktueller Dialogstatus durch syntaktisches Analysieren des Dialogmodells
beginnend von einem bestimmten Startzustand aus bestimmt, bis ein
Zustand aufgefunden wird, bei dem keiner der Bedingungen an den
aus diesem Zustand herausführenden
Kanten entsprochen wird.
-
Indem
das Modell jedes Mal von Anfang an syntaktisch analysiert wird,
ist es einem Benutzer möglich, sich
um das Dialogmodell herum zu bewegen und falsch erkannte Einzelheiten
eher zu korrigieren, als einem vorgegebenen Dialogweg zu folgen.
Diese Art des Dialogs wird oftmals als Dialog mit gemischter Initiative
bezeichnet, da der Benutzer nicht die von dem System gestellte Frage
beantworten muss, sondern etwas anderes sagen kann. Das jedesmalige
syntaktische Analysieren des Modells besitzt den Vorteil, dass sich
zu Beginn des Dialogs auftretende Fehler nicht notwendigerweise
fortpflanzen. Nimmt man zum Beispiel eine Benutzeräußerung an,
die ein R-Gespräch oder
einen Leitungstest (der Klassifizierer ist sich nicht sicher was, aber
das R-Gespräch
besitzt den höheren
Zuverlässigkeitswert)
zusammen mit einer deutlich zu verstehenden Vorwahl angibt, dann
wird die erste syntaktische Analyse des Dialogmodells zu einem Zustand
führen,
bei dem eine Ansage, wie beispielsweise 'R- Gespräch an 01473...' wiedergegeben wird.
Wenn der Benutzer dies richtig stellt – indem er z. B. sagt "Ich wollte die Leitung
testen", so wird
das Dialogmodell erneut syntaktisch analysiert und gelangt dieses
Mal zu einem Leitungstestzustand, wobei die Ansage 'Leitungstest zu 01473...' wiedergegeben wird.
Da jedesmal erneut syntaktisch analysiert wird, ermöglicht es
in einem Schritt von einem Zustand, der sich mehrere Zustände entlang
eines Zweigs des Dialogmodells befindet, zu einem Zustand zu springen, der
sich mehrere Zustände
entlang eines anderen Zweigs befindet (im obigen Fall besteht keine
Notwendigkeit zu einer erneuten Aufforderung für die Eingabe der Vorwahl).
-
Jedes
Mal, wenn dem Schwarzen-Brett-Speicher 28 Informationen
hinzugefügt
werden, werden die Elemente entsprechend den im Ableitungsregelspeicher 36 gespeicherten
Ableitungsregeln aktualisiert. Nachdem die Elemente aktualisiert
wurden, wird das Dialogmodell, um den nächsten Dialogzustand aufzufinden, beginnend
vom Anfangszustand erneut syntaktisch analysiert. Wenn der nächste Dialogzustand
eine Null oder eine Markierung ist, so werden die Elemente gemäß den Ableitungsregeln
erneut aktualisiert und das Dialogmodell wird wiederholt beginnend
vom Anfangszustand syntaktisch analysiert.
-
Wie
zuvor erwähnt,
muss der Dialogmanager 4 die Erkennung 10 und
den Klassifizierer 6 darüber informieren, welches Sprachmodell 22 und
welches semantisches Modell für
einen bestimmen Dialogzustand zu verwenden sind. Das für einen
Zustand zu verwendende Erkennungsmodell kann, wie in der folgenden
Tabelle angegeben, über
die Zustandsdefinition erhalten werden.
-
-
Eine
allgemeine Regel zur Bestimmung des Erkennungsmodells kann so ausgedrückt werden: "Verwende alle spezifizierten
confSlots und nextSlots plus ja/nein, falls der Zustand entweder
eine explizite oder implizite Bestätigung darstellt".
-
In
einem Dialog benutzen oftmals mehr als ein Slot dieselbe Sprachlehre
gemeinsam (z. B. Ankunfts- und Abfahrtsort, und kurze Zahlenfolgen
bei einer Telefonnummer). [Naheliegend, + Eingangszeit?] Für eine Ja/Nein-Fragestellung,
wie beispielsweise 'Möchten Sie
eine weitere Anfrage eingeben?',
wird nextSlot auf ja/nein gesetzt. In diesem Fall enthalten das
Erkennungsmodell und das semantische Modell nur die Ja/Nein-Sprachlehre.
-
Im
Folgenden wird beschrieben, in welcher Weise die Zustandsvorgeschichte
zur Auswahl der geeignetsten Ansage verwendet wird.
-
Ansagen
werden von dem Dialogmanager unter Verwendung von Regeln ausgewählt. Die
Ansageauswahl beruht auf der jüngsten
Zustandsvorgeschichte, wobei eine 'N-Gram'-Analyse verwendet wird, um aus der
Zustandsvorgeschichteliste die geeignetste Aufforderung herauszufinden.
Es werden Prioritäten
für die
Regeln festgelegt, wobei die Regeln, die eine längere Zustandsvorgeschichteliste
erfordern, zuerst berücksichtigt
werden. Falls keine Übereinstimmung
mit einer langen Zustandsvorgeschichte besteht (die zum Beispiel
festlegt, welche die dieser Ansage vorangegangenen vier Zustände sein
müssten),
so werden die Regeln für
kürzere
Zustandsvorgeschichten verwendet (zum Beispiel für drei vorangegangene Zustände). Dieses
als Back-Off (oder als Back-Off-Algorithmus) bekannte Verfahren
wird bis zum Auffinden einer Übereinstimmung fortgesetzt.
Ein derartiges Back-Off kann solange fortgesetzt werden, bis einer
ausschließlich
auf dem aktuellen Zustand beruhenden Bedingung genügt ist.
Man kann dies als Standardansage des Zustands ansehen. Diese Standardansagen
werden in Vorlagen festgelegt, wie sie die folgende Tabelle mit
typischen Vorlagen für unterschiedliche
Zustandsarten veranschaulicht, und die sich in dem Ansagespeicher
befinden können.
-
-
Hierin
geben die Feldnamen innerhalb der < > Platzhalter (token)
an, die durch tatsächliche
Werte ersetzt werden müssen.
Für die
Zu standstypen 'Null' und 'Markierung' werden keine Ansagen
wiedergegeben, womit auch keine Ansagen festgelegt werden müssen.
-
Standardansagen,
wie die oben gezeigten, gestatten den schnellen Aufbau und die spätere Verfeinerung
eines auf maschineller Sprachverarbeitung beruhenden IVR-Systems
(interaktives Sprachausgabesystem). Das Hinzufügen von Ansagen auf der Grundlage
längerer
Zustandsvorgeschichten (d. h. von Folgen von Zuständen aus
der Vorgeschichte und nicht nur eines einzelnen aktuellen Zustands)
ermöglicht
die Verwendung anaphorischer Verbindungen. Wenn die vorangehende
Ansage 'einen Weckruf
erwähnte,
kann die nachfolgende Ansage zum Beispiel, um sich darauf zu beziehen
und den Ausdruck nicht wiederholen zu müssen, sicher 'ihn' verwenden.
-
Nachfolgend
Beispiele für
in dem Ansagespeicher
24 gespeicherte Einträge:
-
Die
Syntax setzt sich hierbei aus einer entsprechenden Zustandsvorgeschichte,
einem Punkt, einer Aufforderungsvorgabe, einem senkrechten Strich
und schließlich
dem (später
zu erläuterten)
Kostenwert zusammen. Das erste Beispiel zeigt eine Standardansage
für den
Zustand zustand0. Das zweite Beispiel zeigt, dass, wenn der Zustand
zustand0 zweimal eingenommen wurde, zum Beispiel wenn der Benutzer
nichts sagt oder wenn die Aussage des Benutzers zurückgewiesen
wird (d. h. keine erfolgreich extrahierte Information enthält), eine
andere Ansage verwendet wird. Das dritte Beispiel enthält eine
für eine
Vorgeschichte aus drei Zuständen
gebildete Bedingung. Dies ermöglicht
die Verwendung des Wortes 'dies', da dem Benutzer
die Bedeutung von 'dies' bekannt sein wird.
-
Das
Verfahren zum Benennen von Regeln, nach denen Zuständen in
der Zustandsvorgeschichte entsprochen werden muss, kann über die
Verwendung von normalen Ausdrücken
zur Beschreibung von Zustandsnamen erweitert werden. Auf diese Weise
kann eine einzelne Regel einer Reihe von verschiedenen, doch möglicherweise ähnlichen
Zustandsvorgeschichten entsprechen. Wie zuvor hat die längste Sequenz übereinstimmender
Zustände
Vorrang vor den kürzeren
Listen.
-
Für diesen
Fall sind im Folgenden Beispiele von Einträgen in dem Ansagespeicher angegeben:
-
In
diesem Fall bedeutet das '?' ein einzelnes Zeichen
mit irgendeinem Wert. Auf regulären
Ausdrücken basierende
Sprachen (regular expression languages) sehen (wie in dem obigen
Beispiel gezeigt) Platzhalter vor, beispielsweise 'ein oder mehr Zeichen', 'null oder mehr Zeichen' oder 'genau ein Zeichen'. In diesem Kontext
ist jeder andere, von einer Standardsprache zum Abgleich mit von
regulären
Ausdrücken
gebildeten Mustern unterstützte,
Mechanismus, wie zum Beispiel der in der 'perl' Programmiersprache
verwendete, zulässig. In diesem
Fall wird die Abgleichfunktionseinheit für reguläre Ausdrücke stets versuchen, die kürzeste Sequenz von
Symbolen abzugleichen.
-
Dieser
Mechanismus kann weiter ausgebaut werden, indem man zulässt, dass
die regulären
Ausdrucksmuster in den Regeln verwendet werden, um mit der Zustandssequenz
als Gesamtausdruck und nicht als Abfolge von Ausdrücken abgeglichen
zu werden. Eine einfache Art dies umzusetzen besteht darin, jedes in
einer Regel definierte Zustandsmuster eins nach dem anderen in einem
regulären
Gesamtausdrucksabgleich mit der aktuellen Zustandsvorgeschichteliste
abzugleichen. Dies kann durch die Darstellung der Zustandsvorgeschichte
als verkettete Liste von Zustandsnamen erreicht werden, die durch
dasselbe Trennzeichen getrennt sind, das in den Ansageauswahlregelbeschreibungen
verwendet wird (in den Beispielen wird ein Doppelpunkt verwendet).
Jedes Ansageregelmuster wird als Ganzes (vom Beginn der Regel bis
zum Dezimalpunkt, wenn die Syntax des obigen Beispiels verwendet
wird) mit dieser verketteten Darstellung abgeglichen, wodurch eine
Verankerung des Abgleichs an der rechten Seite der Vorgeschichteliste
erzwungen wird. Die Regel, die der längsten Abfolge von Zuständen entspricht,
wird als Abgleichregel gewählt.
Falls mehr als eine Regel existiert, die mit derselben Anzahl von
Zuständen übereinstimmen,
dann wird die mit der größeren Anzahl
exakter Zustandsübereinstimmungen
ausgewählt.
-
Es
wird die folgende Beispielregel angenommen:
-
Diese
Regel entspricht 'Zustand2', gefolgt von einem
oder mehreren (das Plus-Symbol) Zuständen, die dem Muster 'Zustand' entsprechen, gefolgt
von einem einzelnen Zeichen (das Fragezeichen-Symbol) und endet
mit 'Zustand6'.
-
Bei
normaler Verwendung enden die Regeln für den aktuellen Zustand stets
mit dem Namen des aktuellen Zustands, dies muss aber nicht notwendigerweise
so sein.
-
Die
Ausgabe des Dialogmanagers an den Nachrichtengenerator 8 besteht
in einer Vorlage für
die erforderliche Ansage (z. B. "<Zu_welcher_Zeit_am> <Tag> <An_welchem_Tag> <Zeit>", "<R-Gespräch_für><Gebiet>"). Die Vorlage enthält eine Abfolge von in spitzen
Klammern dargestellten Platzhaltern [innerhalb der spitzen Klammern
ist hier inkonsistenter Klartext gezeigt, jedoch nicht in der obigen
Tabelle]. Die Platzhalter müssen
durch Werte ersetzt werden (zum Beispiel ist der <Tag>-Platzhalter durch
den in dem schwarzen Brett gespeicherten Tag zu ersetzen). Der Nachrichtengenerator 8 empfängt die
Vorlage und gibt sie in eine Liste von an den Synthesizer 12 zu
sendenden Sprachdateien ein. Als Alternative kann ein Synthesizer
für die
Wandlung von Text in Sprache verwendet werden, so dass an den Synthesizer
Text- statt Sprachdateien gesandt werden. Falls eine Textausgabe
gewünscht
ist, könnten
die Textfolgen direkt ausgegeben werden. Der Nachrichtengenerator 8 verwendet
Informationen des Nachrichtenmodells 14, das dem Text oder
den Platzhalterwerten Sprachdateien zuordnet. Einigen Vorlagen sind
Bedingungen zugeordnet, die erfüllt
sein müssen,
bevor die jeweilige Vorlage verwendet werden kann. Die Bedingungen
beziehen sich auf Informationsele mente, die in dem Schwarzen-Brett-Speicher 28 oder
in dem Speicher 30 für
globale Variablen gespeichert sind.
-
Nachfolgend
ein Beispiel für
die in dem Nachrichtenmodell
14 gespeicherte Information:
-
Die
Syntax setzt sich hierbei aus Symbol, Punkt, Klartext (zur Verwendung
für die
Ermittlung von Ansageduplikaten), einem senkrechter Strich, dem
Namen der Sprachdatei und einem Doppelpunkt gefolgt von der Bedingung
zusammen.
-
Wenn
das System der <Willkommen>-Platzhalter wiedergibt,
können
drei unterschiedliche Sprachdateien (mit einer .wav-Dateierweiterung)
wiedergegeben werden. Die Einträge
werden der Reihe nach geprüft und
es wird die Sprachdatei verwendet, die eine Bedingung als erste
erfüllt.
Die in dem Schwarzen-Brett-Speicher 28 gespeicherten Informationselemente
(d. h. die Slots "grüßen" und "stille") werden verwendet,
um zu bestimmen, welche geeignet ist. Die dritte Anweisung ist unbedingt.
-
Ein
weiteres Beispiel ist das Erzeugen der für eine Vorlage erforderlichen
Nachricht, wie beispielsweise:
-
Das
Beispiel "<Begrüßung> <Zu_welcher_Zeit_am> <Tag>" würde
also die folgende, an den Synthesizer 12 zu sendende Liste
von Sprachdateien erzeugen: "gutenMorgen.wav
zuwelcherZeitam.wav Montag.wav".
-
Vorlagen
können
auf andere Vorlagen verweisen. Der <Tageszeit>-Platzhalter
kann zum Beispiel einen Zeitplatzhalter zusammen mit einem dem Vormittag/Nachmittag-Platzhalter
enthalten, zum Beispiel:
-
In
dem Ableitungsregelspeicher 36 abgespeicherte Ableitungsregeln
aktualisieren die Inhalte des Schwarzen-Brett-Speichers 28.
Eine Ableitungsregel kann zum Beispiel festlegen, dass wenn als
Zeit Punkt 2 Uhr des heutigen Tages angegeben wurde und
es bereits nach zwei Uhr nachts ist, angenommen werden kann, dass
der Benutzer (beim Einrichten eines zukünftigen Weckrufes) den Nachmittag
meint.
-
Ableitungsregeln
werden auch dazu verwendet, um zeitweilige Einträge vom schwarzen Brett zu entfernen.
Wenn ein Benutzer zum Beispiel 'Ja' sagt, dann wird
dies in den Schwarzen-Brett-Speicher eingetragen (beispielsweise
als Eintrag 'bestätige:y:0,95'). Auch wenn dies
für den
aktuellen Dialogzustand von Bedeutung ist, muss dies vor dem Erkennen
der nächsten
Benutzeräußerung entfernt
werden, damit es nicht als Antwort auf nachfolgende Bestätigungsaufforderungen
interpretiert wird. Die Äußerung des
Benutzers kann als Begrüßung (der
Benutzer sagt "Hallo") klassifiziert werden.
In diesem Fall wird das Triplet 'callClass:grüßen:wert' in dem schwarzen
Brett-Speicher 28 vorhanden
sein. Beim Eingeben eines neuen Zustands muss dieses entfernt werden,
um wiederholten Begrüßungen vorzubeugen.
Schließlich
kann das schwarze Brett eine dritte Art zeitweili ger Einträge enthalten,
nämlich
ein Kennzeichen, das angibt, dass der Benutzer sich still verhalten
hat. Der Zweck dieses Eintrags ist es, die als nächstes wiedergegebene Ansage
zu modifizieren (auch wenn sich der Dialogzustand nicht ändert),
um mehr Anweisungen zu geben und den Benutzer zum Sprechen zu ermutigen.
Auch dieser Eintrag wird entfernt, sobald die nächste Äußerung des Benutzers erkannt
wird.
-
Eine
Ableitungsregel kann auch dazu verwendet werden, um dem Schwarzen-Brett-Speicher 28 Information
hinzuzufügen,
beispielsweise eine Vorwahl von einer anderen Quelle (beispielsweise
CLI). Wenn ein Benutzer zum Beispiel eine Telefonnummer ohne Vorwahl
angibt, ist es auf der Grundlage der Annahme, dass es sich um eine
Telefonnummer aus demselben Ort handelt, vollkommen angemessen zu
fragen, 'Handelt
es sich um 01473?' (dies
ist etwas, das Telefonisten normalerweise tun).
-
Wie
zuvor erwähnt,
sind mit jeder Formulierung einer Ansage Kosten verbunden. Dies
ist ein Maßstab dafür, 'wie gut sich das
System macht'. Beim
Erstellen der Standardansagen können
Kostenvorgaben für
jeden Zustandstyp (Frage, imp, exp, usw.) automatisch festgelegt
werden. Wie zuvor können
diese Werte dann manuell weiterbearbeitet werden. Wenn zusätzliche
Ansagen hinzugefügt
werden, müssen
ihnen zugeordneten Kosten festgelegt werden. Insbesondere würden Ansagen,
die verwendet werden, ohne dass sich der gegenwärtige Zustand geändert hat
(z. B. 'zustand1
zustand2 zustand2'),
höhere
Kosten aufweisen. Solche Zustände
zeigen einen mangelnden Fortschritt des Dialogs an. Das kann sein,
weil sich der Benutzer still verhält, etwas sagt, ohne dass daraus
eine nützliche
Information extrahiert werden kann (die Äußerung wurde eigentlich zurückgewiesen),
oder durch Korrigieren eines Fehlers. All dies führt zu überlangen Dialogen und einer schlechten
Beurteilung durch den Benutzer, und somit zu höheren Kosten.
-
Beim
syntaktischen Analysieren des Dialogmodells während eines Anrufs werden die
mit jeder verwendeten Ansage verbundenen Kosten aufsummiert.
-
Einigen
Ansagen können
negative Kosten zugeordnet sein, wodurch sich die aufsummierten
Kosten verringern. Diese Zustände
repräsentieren
Meilensteine des Dialogs, wie beispielsweise die Zusammenstellung
einer vollständigen
Telefonnummer. Sobald ein solcher Meilenstein passiert wurde, nimmt
die Auffassungsgabe des Benutzers für das System wahrscheinlich
zu – dies
wird von den negativen Kosten modellieren.
-
Bei
anderen Ausführungsformen
der Erfindung können
die Kosten mit der Zeit auch verfallen, um die Kurzzeitgedächtniseffekte
des Benutzers zu modellieren.
-
Für die Kosten
wird ein Schwellwert festgesetzt und sollten die aufsummierten Kosten
den Kostenschwellwert überschreiten,
so wird dies erkannt und der Benutzer an einen menschlichen Telefonisten übergeben.
-
Ein
zweiter, niedriger Kostenschwellenwert wird festgelegt, um eine
frühzeitige
Warnung auszugeben, dass bei einem Anruf Schwierigkeiten auftreten.
Einem Telefonisten kann dann gestattet sein, den An ruf kurzzeitig
zu überwachen,
wobei er diesen nahtlos von dem automatischen System übernimmt
falls es erforderlich sein sollte. Der Telefonist kann sich aus
dem Anruf zurückziehen,
wenn der Dialog Fortschritte im Dialog zeigt.
-
Gemäß einer
weiteren Besonderheit kann es so eingerichtet werden, dass der automatische
Dialog beendet und der Benutzer immer dann mit einem menschlichen
Telefonisten verbunden wird, wenn eine Formulierung einer Ansage
erzeugt werden soll, die mit der unmittelbar zuvor an den Benutzer
ausgegebenen Ansage übereinstimmt.
Da es viele Möglichkeiten
der Dialogführung
gibt (einschließlich
vieler Wiederholungen desselben Ansagezustands), ist es nicht möglich, alle
Eventualitäten
der Zustandsvorgeschichte mit geeignet formulierten Ansagen abzudecken.
Daher wird jedes Mal, wenn eine Ansage wiedergegeben wird, die Ansage außerdem in
geeigneter Form abgespeichert. Wenn eine neue Ansage erzeugt wird,
wird sie vor der Wiedergabe mit der gespeicherten verglichen. Die
aktuelle und die vorangehende Ansage müssen in ihrer gesprochenen
Form identisch sein, nicht in der von dem N-Gram ausgewählten Vorlage.
So kann zum Beispiel 'Wann am <Tag>?' wiederholt werden, vorausgesetzt dass
der Tagesslot einen anderen Wert aufweist.
-
Wenn
außer
den Standardansagen keine weiteren Ansagen definiert wurden, besteht
eine hohe Wahrscheinlichkeit für
Wiederholungen derselben Ansage. Die Verwendung von Ansagen mit
längerer
Vorgeschichte reduziert das Risiko, einen Benutzer Ansagenwiederholungen
auszusetzen. Dies ist ein sehr mächtiges
Mittel der Vorbeugung von Dialogwiederholungen – der extra Aufwand für das Hinzufügen zusätzlicher
Ansagen erhöht
den Durchsatz des Systems, ohne die Grenzen der für den Dialog
verfügbaren
Ansagen bloßzulegen.
-
Es
wird darauf hingewiesen, dass die Identität der Formulierung das Kriterium
für eine Übergabe
an den Telefonisten sein könnte,
wobei der Vergleich in diesem Fall zwischen Textketten (mit übersetzten
Platzhaltern) vorgenommen würde.
Als Alternative könnten
die erzeugten Sprachdateinamensketten gespeichert und die neu erzeugten
Sprachdateinamensketten damit verglichen werden. Dies lässt die
Möglichkeit
zu, dass zwei sprachliche Äußerungen
mit identischer Formulierung aber unterschiedlicher Betonung (z.
B. "Bitte wiederholen
Sie den Namen")
als nicht identisch angesehen werden.
-
7 stellt
ein Beispiel eines Dialogmodells dar, bei dem ein Benutzer eine
Störung
meldet. Störungsmeldungen
werden entweder an eine Servicestelle für Privat- oder an eine Servicestelle
für Geschäftskunden weiter
verwiesen. Der Dialog muss bestätigen,
dass der Benutzer eine Störung
melden will, und muss festlegen auf welche Nummer er verwiesen werden
muss. Die Zustände
mit den Nummern 72, 74, 75 sind explizite Bestätigungszustände, die
dem Dialog wie oben beschrieben automatisch hinzugefügt wurden.
Diese Zustände
werden nur verwendet, wenn sich der Dialogmanager eines Elements
nicht sicher ist und eine explizite Bestätigung (d. h. 'War dies privat?') benötigt. Die
Ansagevorlagen sind für
jeden Zustand zusammen mit der für die
Verwendung der Ansagevorlage erforderlichen zugeordneten Zustandsvorgeschichte
gezeigt. Die meisten der Ansagevorlagen sind Standardvorlagen, die
als Vorgeschichte einen einzigen Zustand erfordern, aber es gibt
auch einige mit einer Vorgeschichte aus zwei Zuständen (z.
B. 'WieKannIchHelfen,
RefFaultB', das
einen direkten Sprung von 'WieKannIchHelfen' zum aktuellen Zustand 'RefFaultB' bedeutet). Jeder
Zustand weist einen Namen (z. B. 'FaultRB-e') und einen Typ (z. B. 'exp') auf und bestimmt
dann Slots für 'confSlot' und 'nextSlot'. In diesem Beispiel
werden nur zwei Slots verwendet.
-
Das
Flussdiagramm der 8 zeigt die Funktionsweise des
Dialogmanagers. Das Verfahren beginnt bei 200 mit dem Auftreten
eines Ereignisses, wie beispielsweise der Erkennung von Sprache
durch die Erkennung 10, oder durch ein äußeres Ereignis, wie beispielsweise
den Beginn oder die Beendigung einer Telefonverbindung zu der Vorrichtung.
Falls Sprache erkannt wird, wird sie bei 201 durch den
Klassifizierer 6 klassifiziert. Repräsentiert das resultierende
Triplet eine positive oder negative Bestätigung, so wird die in dem Schwarzen-Brett-Speicher
aufgezeichnete Konfidenz entsprechend angepasst (202, 203).
Zur selben Zeit werden alle anderen für denselben Slot vorhandenen
Werte angepasst, so dass die Gesamtheit der Konfidenzen für diesen
Slot gleich bleibt (Wenngleich dies auch als Teil des nachfolgenden
Zusammenfügungsprozesses
erledigt werden könnte,
falls gewünscht).
Die neuen resultierenden Triplets werden mit den existierenden Schwarzen-Brett-Triplets
zusammengeführt
(204). In Schritt 205 werden die Ableitungen wie
zuvor beschrieben durchgeführt.
Dann wird das Dialogmodell vom Startzustand aus syntaktisch analysiert
(206) und der aktuelle Zustand wird aufgezeichnet. Sofern
der aktuelle Zustand nicht null ist, wird er an den Vorgeschichtespeicher
in 207 angefügt.
Das Verfahren springt zurück
zu Schritt 205, falls der aktuelle Zustand ein Null- oder
Markierungstyp ist. Andernfalls werden die Ableitungen erneut ausgeführt (208)
und die Ansagedefinition wird in Schritt 209 auf der Grundlage
der Inhalte des Vorgeschichtespeichers erzeugt. Falls die Ansage
gleich der vorangehenden ist, wird in Schritt 210 eine Übergabe
an eine Anweisung initiiert. Es wird darauf hingewiesen, dass die
für einen
Endzustand erzeugte Ansagedefinition anstatt (oder zusätzlich zu)
einer tatsächlichen
Ansagedefinition eine Anweisung enthalten kann, die die Aktion bezeichnet,
die bei Beendigung des Dialogs vorzunehmen ist. Falls eine solche
Anweisung gefunden wird, wird die entsprechende Aktion bei 211 ausgeführt.
-
Die
für die
nächste
Ansage erforderliche Erkennungs- und Klassifiziererkonfiguration
wird in 211 unter der Annahme bestimmt, dass keines dieser
Ereignisse auftritt. Hier durchsucht der Dialogmanager den Ansagespeicher,
um den Eintrag mit der längsten Übereinstimmung
mit den Inhalten des Vorgeschichtespeichers aufzufinden, bei dem
alle in dem Eintrag enthaltenen Bedingungen erfüllt sind. In Schritt 212 wird
die Ansage dem Synthesizer 12 zugestellt und die Konfiguration
wird in die für
die nächste
Benutzereingabe bereite Erkennung 10 und den Klassifizierer 6 geladen.
Das Verfahren kehrt dann zu Schritt 200 zurück um die
Antwort des Benutzers abzuwarten.
-
Nachfolgend
wird unter Bezugnahme auf die 7 ein Beispiel
für das
Verfahren zur syntaktischen Analyse beschrieben. Betrachtet wird
der Startzustand 71. Zunächst ist die für das Weitergehen
zum nächsten Zustand 72 erforderliche
Kantenbedingung falsch. Daher bleibt die erste syntaktische Analyse
bei Zustand 71 stehen, der als aktueller Zustand aufgezeichnet
wird. Die erforderliche Ansage wird erzeugt und dem Benutzer über den
Sprachsynthesizer 12 ausgegeben. Die Erkennung 10 erkennt
die Antwort des Benutzers, worauf hin die erkannte Äußerung vom
Klassifizierer 6 klassifiziert wird. Das Ergebnis der Klassifizierung
wird mit dem bereits im Schwarzen-Brett-Speicher 28 gespeicherten
Ergebnissen kombiniert und die Ableitungsregeln werden zur Aktualisierung
des Schwarzen-Brett-Speichers 28 verwendet.
Das Dialogmodell wird dann erneut syntaktisch analysiert, wobei
zunächst
der Startzustand 71 berücksichtigt
wird: Falls die Überprüfung der
verbindenden Kante 81, die den Startzustand 71 mit
dem nächsten
Zustand 72 verbindet, ergibt, dass die Kantenbedingung 81 wahr
ist, so wird mit der Untersuchung der Kantenbedingung, die den Zustand 72 mit
den nachfolgenden Zuständen
verbindet, fortgefahren. Dieser Vorgang wird wiederholt, indem die
Kantenbedingungen reihum untersucht werden – es wird darauf hingewiesen,
dass zum Beispiel die Kantenbedingungen 83 und 84 in
einer bestimmten Reihenfolge untersucht werden, in diesem Fall wird
die Bedingung 83 vor der Bedingung 84 berücksichtigt,
auch wenn sich in diesem Beispiel die Bedingungen gegenseitig ausschließen, so
dass die Reihenfolge in der die Kanten untersucht werden keine Auswirkungen
auf das Endergebnis haben. Wenn eine zu einem nächsten Zustand führende Kantenbedingung
wahr ist, dann wird die aus diesem nächsten Zustand führende Bedingung
untersucht. Wenn keine von den berücksichtigten Kantenbedingungen,
die aus einem Zustand führen,
wahr ist, dann wird dieser Zustand zum aktuellen Zustand.
-
Basierend
auf dem Dialogmodell von 7 werden nun drei Beispieldialoge
mit einem Benutzer beschrieben.
-
Erstens
ein Beispiel für
eine typische Anfrage:
- System: Willkommen bei BT. Wie kann
ich Ihnen helfen?
- Benutzer: Die Störungsstelle
bitte.
(callClass wird als "Störungsstelle" mit genügend hoher
Zuverlässigkeit
erkannt, um die Notwendigkeit einer expliziten Bestätigung zu
umgehen. Das Dialognetzwerk wird von Beginn an durchlaufen und gelangt
zum FaultRB-Zustand 73, an dem die Ansage des Systems wiedergegeben
wird)
- System: Störungsstelle,
selbstverständlich.
Ist das eine private oder eine geschäftliche Anfrage?
- Benutzer: private
(Diesmal ist das Erkennen von 'private' weniger zuverlässig – aber immer
noch zuverlässig
genug, um einer expliziten Bestätigung
vorzubeugen, aber nicht ausreichend, um den Anruf zu abzuschließen. Der
Dialog tritt in den Zustand FaultR ein und erbittet eine implizite
Bestätigung.)
- System: Eine private, danke
- Benutzer: Schweigen
(Da der Zustand FaultR 76 einen
impliziten Bestätigungszustand
darstellt, erhöht
das Schweigen die Zuverlässigkeit
der bestätigten
Daten, in diesem Fall von private. Nun wird das Netzwerk erneut
durchlaufen und diese Mal wird der Zustand RefFaultR erreicht – ein Zustand
mit einer abschließenden
Feststellung.)
- System: Bitte bleiben Sie am Apparat, während ich Sie verbinde.
-
Ein
anderer möglicher
Dialog, bei dem auf jeder Stufe eine explizite Bestätigung benötigt wird
(d. h. unklare Rede) zeigt sich wie folgt:
- System: Willkommen
bei BT. Wie kann ich Ihnen helfen?
- Benutzer: Die Störungsstelle
bitte.
- System: Wünschen
Sie die Störungsstelle?
- Benutzer: Ja.
- System: Ist dies eine private oder eine geschäftliche
Anfrage? (Unter Verwendung der Ansage für die Vorgeschichte 'FaultBR-e FaultRB')
- Benutzer: privat.
- System: Ist dies privat?
- Benutzer: Ja.
- System: Bitte bleiben Sie am Apparat, während ich Sie verbinde.
-
Ein
weiteres Beispiel betrifft einen Benutzer, der mit hoher Zuverlässigkeit
erkannt wird und alle Einzelheiten in einem. Zug ausspricht.
- System:
Willkommen bei BT. Wie kann ich Ihnen helfen?
- Benutzer: Die Störungsstelle
für Privatkunden
bitte.
- System: Bitte halten Sie sich für die Störungsstelle für Privatkunden
bereit (Unter Verwendung der Ansage für die Vorgeschichte 'WieKannIchIhnenHelfen
RefFaultR')
-
Das
IVR-Programm 109 kann auf verschiedenen Übertragungs- und/oder Speichermedien,
wie beispielsweise einer Floppydisk, einer CD-ROM oder einem Magnetband,
enthalten sein, so dass das Programm auf ein oder mehrere Mehrzweckcomputer
geladen werden kann oder über
ein Computernetzwerk unter Verwendung eines geeigneten Übertragungsmediums
abgerufen werden kann.
-
Sofern
sich aus dem Zusammenhang nicht deutlich etwas anderes ergibt, sind
die in der Beschreibung und in den Ansprüchen verwendeten Wörter "aufweisen", "aufweisend" und dergleichen
im einschlie ßenden Sinn
und im Gegensatz zu einem ausschließenden oder erschöpfenden
Sinn zu verstehen; das bedeutet im Sinne von "einschließlich, aber nicht darauf beschränkt".
-
Wie
bei bekannten Systemen üblich,
werden in dem obigen Beispiel das Dialogmodell, die Ansagen und
die Ableitungsregeln für
eine bestimmte Anwendung manuell erzeugt (in dieser Beschreibung
als 'handkodiert' bezeichnet). Für ein gutes
Zusammenspielen mit einem Benutzer ist etwas Handkodieren notwendig; falls
gewünscht
kann der Aufbau des Dialogmodells jedoch zu einem gewissen Grad
automatisiert werden.
-
Die
Kenntnis der Systemdomäne
wird für
das manuelle Erzeugen von Zustandsdefinitionen, die auf Mensch-zu-Mensch-
(Akronym: H-H-, für
Human-Human-) Dialogen basieren, verwendet. In unserer internationalen
Patentanmeldung Nr. PCT/GB00/04904 wird ein Verfahren zum automatischen
Erzeugen von Zustandsdefinitionen aus einem Stamm von übertragenen
H-H-Dialogen beschrieben, die zur Verwendung hier geeignet sind.
Diese Zustandsdefinitionen werden dann durch Hinzufügen neuer
Zustandsdefinitionen aufgestockt, die im Allgemeinen nicht in H-H-Dialogen
aufgefunden werden, die aber für
Mensch-Computer-(Akronym: H-C-, für Human-Computer-)Dialoge notwendig
sind. Diese Aufstockung wird weiter unten ausführlicher beschrieben.
-
Kanten
werden zunächst
per Hand hinzugefügt.
Diese definieren zulässige
Zustandsübergänge und verwenden
die Kenntnis von der Domäne
(z. B. werden, um einen bestimmten Dienst einzurichten, Tag, Zeit und
Name benötigt).
Zunächst
enthalten die Kanten keine Be dingungen, sondern definieren nur die
zulässigen Dialogpfade.
Bedingungen werden manuell hinzugefügt, wobei sie auf den wahrscheinlichsten
Wert für
einen Slot basieren und nicht darauf, ob der Wert einen bestimmen
ihm zugeordneten Zuverlässigkeitswert
aufweist. Ein Beispiel für
eine solche Bedingung wäre,
dass der Tag-Slot ausgefüllt
ist und der wahrscheinlichste Wert Montag wäre.
-
In
dieser Ausführungsform
der Erfindung werden die Kantenbedingungen automatisch hinzugefügt, wobei
die ConfSlot-Attribute der zwei von ihnen verbundenen Zustände verwendet
werden. Dieser Vorgang wird nun unter Bezugnahme auf die 4 beschrieben
[auch wenn der Algorithmus nicht wirklich klar ist]. Eine Kante 40 führt aus
dem Zustand 41 heraus und in den Zustand 42 hinein,
der ein Zustand vom Typ 'imp'- (implizite Bestätigung)
oder 'exp'- (explizite Bestätigung)
sein kann. Der Zuverlässigkeitswert
des Slotnamens in ConfSlot für
Zustand 41, aus dem die Kante herausführt, muss größer als
ein vorgegebener Wert sein; in diesem Beispiel muss der Zuverlässigkeitswert
größer als
99 % sein. Der Zuverlässigkeitswert
für einen
in NextSlot bezeichneten Slot (in diesem Fall Slot2) muss ebenfalls
größer als
ein vorgegebener Wert sein; 80 % für eine implizite Bestätigung wie
in 4 gezeigt, oder größer als 30 % für eine explizite
Bestätigung.
-
Daher
wird einer Kante, die von einem Zustand des Typs einer impliziten
oder expliziten Bestätigung herausführt, eine
Bedingung mit der Folge hinzugefügt,
dass die Zuverlässigkeit
des zu bestätigenden
Werts einen entsprechend vorgegebenen Wert überschreitet.
-
Einer
Kante, die zu einem Zustand mit impliziter oder expliziter Bestätigung hinführt, wird
eine Bedingung mit der Folge hinzugefügt, dass die Zuverlässigkeit
des zu bestätigenden
Werts einen entsprechend vorgegebenen Wert überschreitet.
-
Die 5 zeigt
die Dialogzustände
von 4 nach Hinzufügen
eines weiteren Zustands 51. Spracherkennungen machen mehr
Fehler als Menschen und daher sind H-C-Dialoge anders als H-H-Dialoge.
Insbesondere enthalten H-C-Dialoge oft explizite Bestätigungen
(d. h. 'Sagten Sie
Dienstag'), die
in H-H-Dialogen selten vorkommen. Ein neuer, expliziter Bestätigungszustand 51 kann
vor dem impliziten Bestätigungszustand 42 automatisch
hinzugefügt
werden. Das ConfSlot-Zustandsattribut des impliziten Bestätigungszustands
wird zum Festlegen der an den Kanten 53 und 54 gezeigten
Bedingungen verwendet.
-
Der
zusätzliche
explizite Bestätigungszustand 51 basiert
auf einer Kopie des impliziten Zustands 42. Jedoch wurden
die Kantenbedingungen wie in 5 gezeigt
abgeändert.
Es wird ein neuer Schwellwert (in diesem Beispiel 30 %) benötigt. Der
Schwellwert für
die explizite Bestätigung
ist niedriger als der für
die implizite Bestätigung;
falls sich das System über
ein Informationselement nicht sicher ist, wird am besten eine explizite
Bestätigung
statt einer impliziten Bestätigung
verwendet.
-
Daher
wird ein Zustand vom expliziten Bestätigungstyp vor einen Zustand
vom impliziten Bestätigungstyp
hinzugefügt
und es werden Bedingungen wie oben beschrieben hinzugefügt.
-
Die
in diesem Beispiel verwendeten Werte von 30 %, 80 % und 99 bestimmen
jeweils:
- • Die
minimal erforderliche Zuverlässigkeit
eines Ergebnisses vor dem Anfordern einer expliziten Bestätigung.
- • Die
minimal erforderliche Zuverlässigkeit
eines Ergebnisses vor dem Anfordern einer impliziten Bestätigung (Überspringen
des expliziten Zustands).
- • Die
zum Überspringen
des impliziten Bestätigungszustands
erforderliche minimale Zuverlässigkeit
eines Ergebnisses.
-
Die
Zuverlässigkeit
eines Elements wird erhöht,
wenn es explizit oder implizit bestätigt wird. Eine explizite Bestätigung erfordert
eine positive (z. B. ja, jawohl) Antwort zum Erhöhen der Zuverlässigkeit
oder eine negative Antwort (nein, das ist falsch usw.) zum Verringern
der Zuverlässigkeit.
Dieselben Regeln sind auf eine implizite Bestätigung anzuwenden, wobei auch
eine neutrale Antwort (z. B. Schweigen oder indem einfach zusätzliche
Informationen gegeben werden) die Zuverlässigkeit erhöht. Dies
ist der einzige Unterschied zwischen einer impliziten und expliziten
Bestätigung.
-
Zwei
Werte werden benötigt:
Die Zuverlässigkeitswerte
der expliziten und impliziten Bestätigung. In diesem Beispiel
werden Werte von 100 % und 99,5 % verwendet. Ein explizit bestätigtes Element
wird als endgültig
richtig angesehen und ein implizit bestätigtes Element besitzt einen
geringfügig
niedrigeren Zuverlässigkeitswert.
In der 6 ist ein Beispiel gezeigt, bei dem ein Element
(in Slot2) explizit bestätigt
wurde (in Zustand1a 51). Wenn das Dialogmodell daher erneut
syntaktisch analysiert wird, wird der implizite Bestätigungszustand
(Zustand2 42) redundant und wird übersprungen (da die Zu verlässigkeit
für Slot2
auf 100 % gesetzt wurde und sowohl die Kantenbedingung 54 als
auch die Kantenbedingung 61 wahr ist). Der aktuelle Zustand
für den
nächsten
Dialog mit dem Benutzer ist Zustand3 62.
-
Als
Alternative kann der Zuverlässigkeitswert
für ein
explizit bestätigtes
Element auf der Erkennungsgenauigkeit einer 'Ja/Nein'-Erkennung (gewöhnlicherweise nahe 98 %) basieren.
In ähnlicher
Weise kann die Zuverlässigkeit
einer impliziten Bestätigung
auf dem Erkennungserfolg zusammen mit der Quote von Leuten basieren,
die solche Ansagen korrigieren.
-
Wichtig
ist, dass die Zuverlässigkeitswerte
für die
implizite und explizite Bestätigung
mit den zum Festlegen der Kantenbedingungen verwendeten globalen
Werten konsistent sind. Andernfalls könnte es nicht mehr möglich sein
einen Zustand zu verlassen, so dass der Benutzer in diesem Zustand
gefangen bleibt.
-
Der
Klassifizierer 6 gibt ein Zuverlässigkeitsmaß für eine Ja/Nein-Spracherkennung zurück, wobei
es in anderen Ausführungsformen
der Erfindung möglich
sein könnte,
dieses in das in dem Schwarzen-Brett-Speicher 28 gespeicherte
relevante Triplet mit einzubeziehen. Wenn sich der Klassifizierer 6 zum Beispiel
zu 100 % sicher ist, dass der Benutzer ja sagte, dann wird die Zuverlässigkeit
des bestätigten
Slots auf 100 % gesetzt. Falls die Ja/Nein-Erkennungszuverlässigkeit
andererseits nur 70 % beträgt,
dann könnte diese
Zuverlässigkeit
auf 70 % gesetzt werden.
-
Die
jeder Ansage zugeordneten Kosten und Kostenschwellwerte erfordern
eine manuelle Festsetzung. Um dies zu erreichen, wird das Dialogmodell
nach dem Zugfallsprinzip getestet, um die möglichen Dialoge aufzufinden.
Die Kostenschwellwerte werden angepasst, um unakzeptabel lange Dialoge
auszuschließen.
-
Ein
Dialogmodell wird zusammenfassend mit den folgenden Schritten geschaffen:
- 1) Festlegen der Zustände (manuell aus einem Stamm
von H-H-Dialogen definiert)
- 2) Manuelles Definieren von Verbindungen zwischen den Zuständen
- 3) Manuelles Definieren der Bedingungen von Slot-Inhalten an
einigen Kanten
- 4) Automatisches Erweitern mit Bestätigungszuständen
- 5) Automatisches Anfügen
von Bedingungen an die Kanten (unter Verwendung vorgegebener Zuverlässigkeitsschwellwerte)
- 6) Automatisches Erzeugen einer Standardansage für jeden
Zustand
- 7) Automatisches Anfügen
von Kosten an die Ansagen
- 8) Anpassen der Zuverlässigkeitsbedingungen
an den Kanten. Zum Beispiel kann die explizite Bestätigung eines
Slots durch Setzen eines hohen Zuverlässigkeitsschwellwerts erzwungen
werden.
- 9) Manuelles Editieren der Standardansage für jeden Zustand
- 10) Manuelles Anfügen
von Ansagen für
jeden Zustand gemäß einer
bestimmten Zustandsvorgeschichte
- 11) Testen des Modells nach dem Zufallsprinzip zum Festsetzen
der Kostenschwellwerte für
das Übergeben
eines Benutzers an den Telefonisten