-
Technisches Gebiet
-
Die vorliegende Offenbarung betrifft allgemein die Verwendung eines semantischen Systems zur Unterstützung von Benutzerendgeräten. Konkret werden ein Verfahren zum automatischen Trainieren eines Dialogsystems und ein entsprechendes Dialogsystem angegeben, um semantische Annotationen auf Basis von Nutzerinformationen automatisch zu erzeugen.
-
Hintergrund
-
In vielen technischen Bereichen wird eine Textsteuerung oder sprachgestützte Steuerung bereits heute eingesetzt. Eine Textsteuerung ermöglicht es einem Benutzer mittels vorgegebener Textbausteine (wie einem Wort oder einer Wortsequenz) Befehle in ein System einzugeben. In diesen Bereich fallen auch Suchanfragen, Schreiben und Senden von Textnachrichten etc., die durch Texteingabe und meist eine nachfolgende Bestätigung erfolgen.
-
Eine sprachgestützte Steuerung ermöglicht es einem Benutzer, Steuerungsbefehle oder andere Informationen, wie zum Beispiel Einstellungen, Parameter, etc., mittels gesprochener Worte bzw. Sprache einzugeben. Diese erleichtert die Eingabe dahingehend, dass der Benutzer keine herkömmlichen Eingabemittel, wie zum Beispiel Tastatur, Funktionstasten, Auswahlwerkzeuge, etc., bedienen muss.
-
Technische Bereiche, in denen solche Spracheingaben bereits Einsatz finden, sind unter anderem Mobiltelefone, Fahrzeug-Steuereinrichtungen sowie Navigationsgeräte. Der Benutzer kann beispielsweise Kontakte aus einem Adressbuch, Steuerungen bestimmter Fahrzeugelemente bzw. Zieladressen durch gezielte Sprachbefehle eingeben. Zu der Fahrzeugsteuerung gehört unter anderem das An-/Ausschalten, Anpassen oder Verstellen von Fahrzeugelementen, wie zum Beispiel Scheibenwischer, Temperatur (Heizung und Klimaanlage), Innenraumbeleuchtung, Sitze etc.
-
In der US-Patentanmeldungs-Offenlegung Nr. 2008/0312934 A1 wird ein Spracherkennungssystem beschrieben, welches für bestimmte Anwendungen Einsatz findet. Zu diesen Anwendungen gehören eine Navigationsanwendung, Nachrichtenanwendung, Musikanwendung, Suchanwendung für (gespeicherte) Inhalte und Umgebungssuchanwendung. Bei Verwendung mit einer Navigationsanwendung kann ein navigationsbezogener Inhalt in einer Datenbank gespeichert sein und durch eine Spracherkennungseinrichtung verwendet werden. Beispielsweise kann eine Spracherkennungseinrichtung den navigationsbezogenen Inhalt verwenden, um ein Spracherkennungsmodell zu beeinflussen. Dabei können verschiedene Sprachmodelle zum Einsatz kommen, die an die entsprechende Anwendung angepasst sind.
-
Gemäß der Offenbarung der
US 2008/0312934 A1 können verschiedene Anwendungen auf eine Spracherkennungseinrichtung zurückgreifen bzw. verwenden, um dem Benutzer Eingaben für die entsprechende Anwendung zu vereinfachen. Die Verwendung verschiedener Sprachmodelle erlaubt es zudem, die Spracherkennung für bestimmte Ausdrücke, Wörter oder Befehle, spezifisch für die bestimmte Anwendung, einzusetzen. Dies hat jedoch den Nachteil, dass eine weitere Anpassung der Sprachmodelle einzeln geschehen muss. Beispielsweise müsste ein bestimmter Begriff für jedes Sprachmodell trainiert werden.
-
Kurzer Abriss
-
Der vorliegenden Offenbarung liegt die Aufgabe zugrunde, das automatische Trainieren eines Dialogsystems zu verbessern und ein entsprechendes Verfahren und Dialogsystem bereitzustellen.
-
Gemäß einem Aspekt der vorliegenden Offenbarung wird ein computerimplementiertes Verfahren zum automatischen Trainieren eines Dialogsystems offenbart. Das Verfahren dient dem automatischen Erzeugen von semantischen Annotationen auf Basis einer empfangenen Spracheingabe, wobei die semantischen Annotationen zum Steuern von Geräten oder zur Kommunikation mit einem Nutzer bestimmt sind. Das Verfahren umfasst ein Empfangen wenigstens einer Spracheingabe im Zuge einer Interaktion mit einem Nutzer und ein Erfassen und Bewerten eines Sinngehalts der Spracheingabe, indem die Spracheingabe auf Basis eines trainierbaren semantischen Modells klassifiziert wird, um eine semantische Annotation für die Spracheingabe automatisch bereitzustellen. Das Verfahren umfasst ferner ein Berücksichtigen von weiteren, mit dem Empfang der Spracheingabe in Zusammenhang stehenden Nutzerinformationen, wenn der erfasste Sinngehalt fehlerhaft, unvollständig und/oder als nicht vertrauenswürdig bewertet wird, und ein automatisches Erlernen des Sinngehalts der Spracheingabe auf Basis der zusätzlichen Nutzerinformation.
-
Nutzerinformationen sind unter anderem Kontextinformationen, wie zum Beispiel weitere Eingaben des Benutzers im Kontext der Spracheingabe, und/oder generelle Informationen über den Benutzer und/oder Informationen über die Art und Weise, wie der Benutzer mit dem Dialogsystem interagiert.
-
Mit einem Dialogsystem interagiert der Benutzer über Sprache. Eine Spracheingabe eines Benutzers, kann eine oder mehrere gesprochene, geschriebene und/oder getippte Äußerungen, sowie Mimik, Gestik und/oder Gebärden umfassen. Systeme, in denen das Verfahren eingesetzt werden kann, sind Suchmaschinen, Chatbots, Spielekonsolen, Webmining-Anwendungen oder andere interaktive Dienste.
-
Dieses Verfahren bietet gemäß manchen Ausprägungen den Vorteil, anhand eines trainierbaren semantischen Modells den Sinngehalt einer Spracheingabe erfassen und der Spracheingabe unterschiedliche Bedeutungen zuweisen zu können. Insbesondere durch die Berücksichtigung von Nutzerinformationen, die im Zusammenhang mit dem Empfang der Spracheingabe stehen, lassen sich auch neue Bedeutungen bzw. ein neuer Sinngehalt für eine Spracheingabe erfassen.
-
Gemäß einer Implementierung wird das semantische Modell auf Basis der empfangenen Spracheingabe, des erlernten Sinngehalts der Spracheingabe und/oder einer entsprechenden Transkription in eine semantische Annotation trainiert.
-
Das Erlernen auf Basis der Nutzerinformationen erfolgt gemäß einer Variante nur dann, wenn ein Zusammenhang zwischen dem Empfang der Spracheingabe und den Benutzerinformationen festgestellt werden kann. Dieser Zusammenhang zwischen dem Empfang der Spracheingabe und den Nutzerinformationen kann anhand einer zeitlichen und/oder semantischen Korrelation bestimmt werden.
-
Gemäß einer weiteren Implementierung kann der Schritt des Erlernens wenigstens ein Feststellen des Sinngehalts der Nutzerinformationen, ein Vergleichen der empfangenen Spracheingabe mit dem Sinngehalt der Nutzerinformationen, und/oder ein sukzessives Ableiten oder Vervollständigen des Sinngehalts der empfangenen Spracheingabe auf Basis eines bekannten Sinngehalts der Nutzerinformationen umfassen.
-
Das Berücksichtigen weiterer Nutzerinformationen und das Erlernen kann solange fortgesetzt werden, bis der Sinngehalt der empfangenen Spracheingabe vollständig und/oder für vertrauenswürdig erkannt wird oder durch eine Nutzerabbruchhandlung beendet wird.
-
Alternativ oder zusätzlich hierzu kann die Vertrauenswürdigkeit des Sinngehalts der Spracheingabe anhand von bei der Klassifikation der Spracheingabe zugewiesenen Konfidenzwerten beurteilt werden.
-
Ebenfalls alternativ oder zusätzlich hierzu kann das Erlernen wenigstens ein Vervollständigen einer unvollständig klassifizierten empfangenen Spracheingabe, ein Berichtigen eines falsch interpretierten Teils der empfangenen Spracheingabe, und/oder ein Neuklassifizieren einer falsch oder nicht klassifizierten Spracheingabe umfassen.
-
Gemäß einer weiteren Implementierung kann das Berücksichtigen der Nutzerinformationen ein Ableiten der Nutzerinformationen aus wenigstens einer Nutzereingabe, welche dem Empfang der Spracheingabe unmittelbar nachfolgt, umfassen. Dabei kann die wenigstens eine Nutzereingabe wenigstens eine korrigierende Steuerungseingabe umfassen, welche einen vorausgehenden, auf Basis der Spracheingabe bereitgestellten Steuerbefehl korrigiert.
-
In einer weiteren Implementierung kann das Berücksichtigen der Nutzerinformationen wenigstens ein Bereitstellen einer eingeschränkten Auswahl von Eingabeoptionen, und/oder Empfangen einer oder mehrerer Nutzereingaben auf Basis der bereitgestellten Eingabeoptionen umfassen. Dabei können die Nutzereingaben allgemein auf akustischen oder haptischen Aktionen des Nutzers beruhen. Alternativ oder zusätzlich umfassen sie auch Mimik, Gestik und/oder Gebärden, die durch den Benutzer gemacht werden.
-
In einer weiteren Implementierung werden die Spracheingabe und die Kontextinformationen als symbolische Repräsentation verarbeitet. In einem Vorverarbeitungsschritt wird z. B. mittels Sprach-, Mimik-, Gesten- und/oder Gebärdenerkennung eine symbolische Repräsentation erzeugt.
-
In einem weiteren Aspekt wird ein Computerprogramm-Produkt mit Programm-Code zum Durchführen eines der oben aufgezeigten Verfahren, wenn das Computerprogramm-Produkt auf einer Computereinrichtung ausgeführt wird, offenbart. Das Computerprogramm-Produkt kann auf einem Computer-lesbaren Aufzeichnungsmedium abgespeichert sein.
-
Gemäß einem weiteren Aspekt wird ein lernfähiges Dialogsystem für den Einsatz in Endgeräten offenbart. Das Dialogsystem ist ausgebildet, semantische Annotationen auf Basis einer empfangenen Spracheingabe automatisch zu erzeugen, wobei die semantischen Annotationen zum Steuern der Endgeräte oder zur Kommunikation mit einem Nutzer bestimmt sind. Das Dialogsystem umfasst dabei eine Eingabeschnittstelle, die dazu ausgebildet ist, wenigstens eine Spracheingabe im Zuge einer Interaktion mit einem Nutzer zu empfangen. Außerdem umfasst das Dialogsystem eine semantische Klassifiziereinrichtung, welche dazu ausgebildet ist, den Sinngehalt der Spracheingabe auf Basis eines trainierbaren semantischen Modells zu erfassen und zu klassifizieren, eine semantische Annotation für die Spracheingabe auf Basis der Klassifizierung automatisch bereitzustellen, weitere, mit dem Empfang der Spracheingabe in Zusammenhang stehende Nutzerinformationen zu berücksichtigen, wenn der erfasste Sinngehalt fehlerhaft, unvollständig und/oder nicht als vertrauenswürdig bewertet wird, und den Sinngehalt der Spracheingabe auf Basis der zusätzlichen Nutzerinformationen zu erlernen.
-
Die Eingabeschnittstelle kann als Schnittstelle für eine Spracherkennungseinrichtung ausgebildet sein. Alternativ oder zusätzlich hierzu ist die Eingabeschnittstelle als Schnittstelle für eine Texteingabe, zum Beispiel mittels Tastatur, Tastenfeld und/oder Funktionstasten, ausgebildet. Diese Schnittstelle für eine Texteingabe erlaubt das Empfangen eines Worts oder einer Wortsequenz, also einer Spracheingabe im oben definierten Sinne. Ferner kann die Schnittstelle in der Lage sein, die empfangene Wortsequenz weiterzuleiten.
-
Gemäß einer Implementierung umfasst das Dialogsystem eine Trainiereinrichtung, welche dazu vorgesehen ist, das semantische Modell auf Basis des erlernten Sinngehaltes einer Spracheingabe, der Spracheingabe, und/oder einer Transkription in eine semantische Annotation zu trainieren. Hierzu kann die Spracheingabe in Form einer symbolischen Repräsentation vorliegen.
-
Alternativ oder zusätzlich hierzu umfasst das Dialogsystem eine Speichereinrichtung, welche dazu vorgesehen ist, die empfangene Spracheingabe, den erlernten Sinngehalt der empfangenen Spracheingabe und/oder eine Transkription in eine semantische Annotation ganz oder teilweise abzuspeichern.
-
Ebenfalls alternativ oder zusätzlich hierzu umfasst das Dialogsystem einen Dialogmanager, welcher dazu vorgesehen ist, eine Eingabe-Aufforderung an einen Nutzer bereitzustellen, um zusätzliche Information zu erhalten, wenn ein Klassifizierungsergebnis fehlerhaft, unvollständig oder als nicht vertrauenswürdig bewertet worden ist.
-
Gemäß einer Implementierung ist das semantische Modell in der Gestalt eines neuronalen Netzes, eines Bayes-Klassifikators, einer Support-Vektor-Maschine, eines Parsers oder eines Entscheidungsbaums ausgebildet.
-
Gemäß einer weiteren Implementierung umfasst das Dialogsystem eine Kommunikationseinrichtung, welche dazu vorgesehen ist, die empfangene Spracheingabe, zusammen mit dem erlernten Sinngehalt der Spracheingabe und/oder mit der Transkription, an einen Server zu senden oder von einem Server abzurufen. Alternativ oder zusätzlich hierzu ist das Dialogsystem Teil einer Mensch-Maschine-Schnittstelle.
-
Gemäß einem weiteren Aspekt ist eine Steuereinrichtung offenbart, die das obige Dialogsystem umfasst. Die Steuereinrichtung kann eine Einrichtung sein, die zur Steuerung von Fahrzeugteilen eingerichtet ist. Zu diesen Teilen zählen Scheibenwischersteuerung, Fensterheber, Temperatur- und Klimasteuerung, Sitzsteuerung, Spiegelsteuerung, Innenraumbeleuchtungssteuerung usw. Ferner kann die Steuereinrichtung zu einem Navigationsgerät (z. B. für ein Fahrzeug) gehören.
-
Kurze Beschreibung der Zeichnungen
-
Weitere Aspekte, Vorteile und Einzelheiten der vorliegenden Offenbarung ergeben sich aus der nachfolgenden Beschreibung der Ausführungsbeispiele im Zusammenhang mit den Figuren, wobei:
-
1 ein Blockdiagramm eines Ausführungsbeispiels eines Dialogsystems zeigt;
-
2 ein Blockdiagramm eines Ausführungsbeispiels einer Eingabeeinheit und einer Spracherkennungsvorrichtung zeigt;
-
3 ein Blockdiagramm eines Ausführungsbeispiels einer Ausgabeeinheit sowie Ausgabekomponenten eines Dialogsystems zeigt;
-
4 ein Blockdiagramm des Datenflusses innerhalb eines Dialogsystems zeigt; und
-
5 ein Ablaufdiagramm eines Ausführungsbeispiels eines Verfahrens zum automatischen Trainieren eines Dialogsystems darstellt.
-
Detaillierte Beschreibung
-
Die vorliegende Offenbarung wird unter Zuhilfenahme schematischer Blockdiagramme und Ablaufdiagramme erläutert. Die diesen Diagrammen zugrunde liegende technische Lehre kann sowohl in Hardware als auch Software oder einer Kombination aus Hardware und Software implementiert werden. Zu solchen Implementierungen zählen auch digitale Signalprozessoren (DSP), anwendungsspezifische integrierte Schaltkreise (ASIC) und andere Schalt- oder Rechenkomponenten.
-
1 zeigt ein Dialogsystem, welches in einem Kraftfahrzeug oder Endgerät (z. B. portables Navigationsgerät) Einsatz findet. Das Dialogsystem ist dazu ausgebildet, semantische Annotationen auf Basis von empfangenen Spracheingaben automatisch zu erzeugen, wobei die semantischen Annotationen zum Steuern der Endgeräte oder zur Kommunikation mit einem Nutzer bestimmt sind.
-
Mit dem Dialogsystem interagiert der Benutzer über Sprache. Eine Spracheingabe eines Benutzers, kann eine oder mehrere gesprochene, geschriebene und/oder getippte Äußerungen, sowie Mimik, Gestik und/oder Gebärden umfassen.
-
Es ist selbstverständlich, dass die vorliegende Offenbarung nicht auf den Empfang bzw. die Eingabe einer Spracheingabe im Sinne einer Wortsequenz, also einer Vielzahl von Worten, beschränkt ist. Die Eingabe eines einzelnen Worts, einer Silbe oder auch nur eines Lauts ist ebenso möglich wie die Eingabe ganzer Sätze. Daher kann die Bedeutung des Begriffs ”Spracheingabe” in der gesamten Offenbarung auch auf ein einzelnes Wort, eine Silbe oder einen Laut ausgeweitet werden.
-
Das Dialogsystem umfasst eine Schnittstelle 10. Dabei kann es sich um eine universelle Schnittstelle handeln, wie zum Beispiel eine serielle oder parallele Schnittstelle. Die Schnittstelle 10 kann auch aus einer Gruppe von speziellen, proprietären Schnittstellen bestehen. Beispielsweise kann sie eine Eingabeschnittstelle 12 und eine Ausgabeschnittstelle 15 einschließen.
-
Die Schnittstelle 10 sowie die Eingabeschnittstelle 12 und Ausgabeschnittstelle 15 können als Hardware-Schnittstelle, Software-Schnittstelle oder einer Kombination aus Hardware und Software ausgeführt sein. Es kann sich um kabellose oder kabelgebundene Schnittstelle handeln.
-
Die Eingabeschnittstelle 12 dient in erster Linie zum Empfangen von Spracheingaben. Dazu ist die Eingabeschnittstelle 12 eingerichtet, Daten und insbesondere Daten, die Spracheingaben repräsentieren, zu empfangen. Wie in 2 detaillierter gezeigt ist, kann die Schnittstelle 10 eine oder mehrere Eingabeschnittstellen 12 umfassen. Eine erste Eingabeschnittstelle kann beispielsweise mit einer Erkennungseinheit 210 verbunden sein. Diese erzeugt eine symbolische Repräsentation, zum Beispiel Wortnummern- oder Wortsequenzen, aus einer Spracheingabe und überträgt bzw. leitet diese über die Eingabeschnittstelle 12 an das Dialogsystem weiter.
-
Die Erkennungseinheit 210 umfasst verschiedene Erkennungseinrichtungen. Dazu zählen eine Spracherkennungseinrichtung 211, eine Paralinguistikerkennungseinrichtung 212, eine Mimikerkennungseinrichtung 213 und/oder eine Gestenerkennungseinrichtung 214. Für die Erkennungseinheit 210 bzw. die darin umfassten Erkennungseinrichtungen 211–214 gibt es eine Modelleinheit 215. Die Modelleinheit 215 umfasst verschiedene Modelle, auf die die Erkennungseinrichtungen 211–214 zugreifen können. Dazu zählen ein Sprachmodell 216, ein Paralinguistikmodell 217, ein Mimikmodell 218 und/oder ein Gestenmodell 219.
-
Die Spracherkennungseinrichtung 211 kann zum Beispiel von einem Mikrofon 230 Sprachsignale empfangen. Die empfangenen Signale werden anschließend mittels eines oder mehrerer Sprachmodelle 215 in Text oder eine andere symbolische Repräsentation umgewandelt, das heißt, die Sprachsignale werden in ein oder mehrere gesprochene Untereinheiten, wie Worte, Silben, Buchstaben, Schriftzeichen oder Zahlen, übersetzt und in digitalen Text umgewandelt. Mit Hilfe eines oder mehrerer Sprachmodelle 215 wird dabei die Wahrscheinlichkeit ermittelt, dass ein bestimmtes empfangenes Sprachsignal eine Untereinheit repräsentiert. Dabei wird durch die Sprachmodelle 215 auch berücksichtigt, mit welcher Wahrscheinlichkeit eine bestimmte Abfolge von empfangen Sprachsignalen einer bestimmten Abfolge von Worten (Wortsequenz) entspricht. Es werden also die Wahrscheinlichkeiten, dass bestimmte Worte in einer bestimmten Reihenfolge gesprochen werden, berücksichtigt.
-
Die Spracherkennung mittels Sprachmodellen ist bekannt und wird daher nicht weiter im Detail beschrieben. Die Spracherkennungseinheit 210 gibt zumindest eine symbolische Repräsentation eines Worts oder mehrerer Worte, das heißt eine Wortsequenz, in Form von digitalen Daten aus. Beispielsweise kann die Spracherkennungseinheit 210 einen ASCII-Code für die Zeichen der erkannten Wortsequenz ausgeben. Es ist selbstverständlich, dass andere Standards oder Codes zur Ausgabe des erkannten Textes, wie zum Beispiel UTF-8, Unicode oder Wortnummern, verwendet werden können.
-
In ähnlicher Weise funktionieren die Paralinguistikerkennung, die Mimikerkennung und Gestenerkennung durch die Paralinguistikerkennungseinrichtung 212, die Mimikerkennungseinrichtung 213 bzw. die Gestenerkennungseinrichtung 214. Mit der Paralinguistikerkennungseinrichtung 212 wird zum Beispiel Lachen aus einem Sprachsignal erkannt und in eine symbolische Repräsentation mittels des Paralinguistikmodells 217 überführt.
-
Für die Mimik- und Gestikerkennung wird ein Videosignal einer Kamera 235 ausgewertet und in eine symbolische Repräsentation überführt. Die Gestikerkennung kann auch Gebärden erfassen und in eine symbolische Repräsentation überführen. Auch hierzu sind Verfahren bereits bekannt.
-
Die symbolischen Repräsentationen, die in den Sprach-, Paralinguistik-, Mimik-, oder Gestikerkennungseinrichtungen 211–214 erzeugt werden, können Zeitstempel enthalten.
-
Die ausgegebenen digitalen Sprachdaten werden an die Eingabeschnittstelle 12 des Dialogsystems übertragen, um dort weiterverarbeitet zu werden. Die Eingabeschnittstelle 12 kann entweder eine spezielle Eingabeschnittstelle für die Übermittlung der digitalen Sprachdaten aufweisen, oder eine universelle Schnittstelle für digitale Sprachdaten und weitere Daten und/oder Signale sein.
-
In der 2 ist eine Implementierung gezeigt, die zwei getrennte Eingabeschnittstellen aufweist. Dabei dient eine zweite Schnittstelle dem Anschließen einer Eingabeeinheit 220. Die Eingabeeinheit kann das Mikrofon 230, die Kamera 235, eine Tastatur 240, ein Tastenfeld 245 und/oder einen Touchscreen 250 umfassen. Jede dieser Komponenten 230 bis 250 dient der Interaktion eines Benutzers zur Eingabe von Sprachsignalen, Texteingaben, Textbefehlen, Nutzerinformationen, Parametern oder anderen Daten durch einen Benutzer. Im Fall des Touchscreens 250 ist die Eingabeeinheit Teil einer Ausgabeeinheit, da ein Touchscreen sowohl Eingabe- als auch Ausgabeeinheit für einen Benutzer darstellt.
-
Die von den oben beschriebenen Komponenten 230 bis 250 der Eingabeeinheit 220 ausgegebenen Signale sind hinlänglich bekannt und werden daher nicht weiter beschrieben. Die Ausgabesignale der Eingabeeinheit 220 werden ebenfalls an die Eingabeschnittstelle 12 übertragen, um vom Dialogsystem weiter verarbeitet zu werden.
-
Wieder mit Bezug auf 1 umfasst das Dialogsystem einen Prozessor 20. Dieser kann als integrierter Schaltkreis oder anderes Datenverarbeitungsbauelement implementiert sein. Der Prozessor 20 kann aber auch aus mehreren Schaltkreisen, Komponenten, Bauelementen, etc. bestehen.
-
Als Beispiel zeigt 1 einen Dialogmanager 30 sowie eine semantisch Klassifiziereinrichtung 40, die als einzelne Bauelemente implementiert sein können. Alternativ können der Dialogmanager 30 und die Klassifiziereinrichtung 40 als Software implementiert sein, die durch den Prozessor 20 ausgeführt wird.
-
Sowohl der Dialogmanager 30 als auch die Klassifiziereinrichtung 40 können die an die Eingabeschnittstelle 12 übertragenen Daten und/oder Signale verarbeiten. Dazu ist die Eingabeschnittstelle 12 mit dem Prozessor 20 bzw. Dialogmanager 30 und der Klassifiziereinrichtung 40, beispielsweise mittels eines Busses, verbunden.
-
Die Funktionsweise des Prozessors 20, des Dialogmanagers 30 und der Klassifiziereinrichtung 40 wird anhand eines Beispiels beschrieben, in dem das Dialogsystem in ein Fahrzeug (z. B. zur Steuerung einer Klimaautomatik oder eines On-Board-Navigationsgeräts) integriert ist. Ein Benutzer gibt den Sprachbefehl ”Temperatur hoch setzen” oder ”nach Nürnberg fahren” ein. Dabei wird über das Mikrofon 230 die Sprache des Benutzers in Sprachsignale umgewandelt, die an die Spracherkennungseinrichtung 211 übertragen werden. Mit Hilfe des Sprachmodells (der Sprachmodelle) 216 werden die Sprachsignale erkannt und in Text umgewandelt, der als Sprachdaten an die Eingabeschnittstelle 10 übertragen wird. Das Dialogsystem empfängt somit den Text bzw. die Wortsequenz ”Temperatur hoch setzen” oder ”nach Nürnberg fahren”. Die Klassifiziereinrichtung 40 empfängt die Wortsequenz und erfasst den Sinngehalt unter Zuhilfenahme eines semantischen Modells 60.
-
In einem anderen Beispiel wird der Prozessor der vorliegenden Offenbarung in einer Suchmaschine, einem Chatbot, einer Webmining-Anwendungen oder einem anderen interaktiven Dienst eingesetzt. Diese Systeme und Dienste ermöglichen eine Texteingabe durch einen Benutzer. Diese Texteingabe wird wie oben beschrieben als Wort oder Wortsequenz über die Eingabeschnittstelle 12 an den Prozessor weitergeleitet. Die Klassifiziereinrichtung 40 empfängt ebenfalls wieder die Wortsequenz und erfasst den Sinngehalt unter Zuhilfenahme eines semantischen Modells 60.
-
Das semantische Modell 60 kann durch ein neuronales Netz oder einen Entscheidungsbaum verwirklicht sein. Alternativ kann das semantische Modell 60 auch in Form eines Bayes-Klassifikators, einer Support-Vektor-Maschine oder eines Parsers umgesetzt sein. Gemäß einer Implementierung ist das semantische Modell 60 eine Datenstruktur, die Schlüssel/Wert-Paare und zugehörige Wahrscheinlichkeiten speichert. Diese Schlüssel/Wert-Paare können Bedeutung/Wort-Paare sein, denen jeweils eine bestimmte Wahrscheinlichkeit zugeordnet ist. Ferner kann die Datenstruktur in dem semantischen Modell 60 auch die Wahrscheinlichkeiten von Bedeutung/Wortsequenz-Paaren speichern. Mit anderen Worten speichert das semantische Modell 60 eine Bedeutung zusammen mit einem Wort bzw. einer Wortsequenz und einer Wahrscheinlichkeit für diese Bedeutung-Wort(sequenz)-Kombination. Es können auch mehrere solcher Kombinationen für verschiedene Bedeutungen eines Worts bzw. einer Wortsequenz mit entsprechender Wahrscheinlichkeit gespeichert werden. Natürlich ist auch umgekehrt die Speicherung mehrerer Kombinationen einer Bedeutung und verschiedener Worte/Wortsequenzen möglich.
-
Das semantische Modell 60 wird aus einer Datensammlung mit Worten, Wortsequenzen oder Sätzen gewonnen, denen semantische Bedeutungen zugeordnet sind, wie zum Beispiel für ein Navigationsgerät:
ZoomIn: ”bitte die Karte vergrößern”
ZoomIn: ”höhere Auflösung bitte”
ZoomOut: ”die Karte verkleinern bitte”
ZoomOut: ”niedrigere Auflösung”
-
Es enthält dann Listen von Gewichten und/oder Wahrscheinlichkeiten, die einer Bedeutung und einem oder mehreren Worten zugeordnet sind:
0,5; ZoomIn; Karte
0,5; ZoomOut; Karte
1; ZoomIn; vergrößern
1; ZoomOut; verkleinern
1, ZoomIn, höhere Auflösung
1, ZoomOut; niedrigere Auflösung
-
Zudem können die Wahrscheinlichkeiten P(Bedeutung|Wort) für jedes Wort und jede Bedeutung ausgerechnet werden. Das semantische Modell 60 ist somit eine Datenstruktur, die diese Wahrscheinlichkeiten enthält. Gibt es nun eine Wortsequenz oder Wortkette (W1, W2, W3) und soll herausgefunden werden, ob diese die Bedeutung B1 oder B2 hat, so lassen sich unter Annahme der statistischen Unabhängigkeit die Wahrscheinlichkeiten P(B1/W1, W2, W3) = P(B1/W1)P(B1/WZ)P(B1/W3) und P(B2/W1, W2, W3) = P(B2/W1)P(B2/W2)P(B2/W3) approximativ berechnen. Wenn sich dabei ergibt, dass P(B1/W1, W2, W3) > P(B2/W1, W2, W3) gilt, so wird die Wortkette mit B1 annotiert; andernfalls mit B2. Dieses Verfahren kann natürlich auch bei mehr als zwei Bedeutungen angewandt werden. Je mehr Wortsequenzen zum Schätzen der Wahrscheinlichkeiten zur Verfügung stehen und je genauer sie dem entsprechen, was der Benutzer sagen wird, desto besser wird die Klassifiziereinrichtung 40.
-
In einem anderen Beispiel könnte dem Wort ”Temperatur” die Bedeutung ”Temperatursteuerung” oder ”Menü für Temperatursteuerung” zugewiesen sein. Das semantische Modell 60 würde demnach eine bestimmte Wahrscheinlichkeit für das Bedeutung/Wort-Paar (Temperatureinstellung + ”Temperatur”) speichern. Den Wörtern ”hoch setzen” kann eine andere Wahrscheinlichkeit zugeordnet werden, die in dem semantischen Modell 60 gespeichert ist. Möglicherweise gibt es auch schon eine Wahrscheinlichkeit für eine bestimmte Bedeutung der Wortsequenz ”Temperatur hoch setzen”.
-
Die Klassifiziereinrichtung 40 kann somit anhand der gespeicherten Wahrscheinlichkeiten berechnen, wie hoch die Wahrscheinlichkeit ist, dass der Benutzer die Temperatureinstellung aufrufen möchte, die Temperatur im Innenraum des Fahrzeugs hochsetzen möchte oder ähnliches. Wenn die berechnete Wahrscheinlichkeit einen bestimmten Schwellenwert übersteigt, wird die entsprechende Komponente des Fahrzeugs gesteuert. Wenn mehrere berechnete Wahrscheinlichkeiten den Schwellenwert übersteigen, wird (wie oben verdeutlicht) die Bedeutung mit der größten Wahrscheinlichkeit verwendet. Im vorliegenden Beispiel könnte für die Bedeutung, die Temperatur um 1 Grad höher zu stellen, die höchste Wahrscheinlichkeit berechnet worden sein. Danach würde das Dialogsystem die Temperatursteuerung des Fahrzeugs anweisen, die Temperatur um 1 Grad hochzusetzen.
-
Das semantische Modell 60 und die Klassifiziereinrichtung 40 sind somit in der Lage, die Semantik, das heißt den Sinngehalt, die Bedeutung oder die Eingruppierung, eines empfangenen Worts bzw. empfangener Wortsequenz zu ermitteln. Die Klassifiziereinrichtung 40 ist demnach in der Lage, jedem Wort oder der gesamten Spracheingabe eine semantische Annotation auf Basis der Klassifizierung automatisch bereitzustellen. Die semantische Annotation kann anschließend durch eine weitere Komponente, wie zum Beispiel den Dialogmanager 30, weiter verwendet werden.
-
Der Dialogmanager 30 empfängt die semantische Annotation von der Klassifiziereinrichtung 40, um weitere Schritte durchzuführen. Optional kann der Dialogmanager 30 auch zusammen mit der semantischen Annotation die Wortsequenz empfangen. Mit der Wortsequenz könnte der Dialogmanager einen Dialog mit dem Nutzer starten. Es ist selbstverständlich, dass der Dialogmanager 30 die Wortsequenz (oder ein einzelnes Wort) auch direkt von der Eingabeschnittstelle 12 erhalten kann, und von der Klassifiziereinrichtung 40 lediglich die dazugehörige(n) Annotation(en).
-
Unter Zuhilfenahme eines oder mehrerer Dialogmodelle 50 ist der Dialogmanager 30 in der Lage, eine Eingabe-Aufforderung an einen Benutzer bereitzustellen, um zusätzliche Nutzerinformation zu erhalten, wenn ein Klassifizierungsergebnis von der Klassifiziereinrichtung 40 fehlerhaft, unvollständig oder als nicht vertrauenswürdig bewertet worden ist. Bei den Nutzerinformationen handelt es sich um jegliche Informationen, die von dem Nutzer des Systems an das System übermittelt oder eingegeben werde. Würde in dem obigen Beispiel die Wörter ”hoch setzen” nicht klassifiziert worden sein oder nur mit unzureichender Wahrscheinlichkeit, ist der Dialogmanager 30 in der Lage, eine weitere Eingabe durch den Benutzer einzuholen. Dazu bedient sich der Dialogmanager 30 einer oder mehrerer Ausgabeeinheiten, die an die Ausgabeschnittstelle 15 angeschlossen sind.
-
Wie in 3 detaillierter dargestellt ist, kann es sich bei der Ausgabeeinheit 320 um einen Lautsprecher 330, einen Bildschirm 340 oder eine haptische Ausgabeeinheit 350 handeln. Über die Ausgabeschnittstelle 15 sind diese Ausgabeeinheiten mit dem Dialogsystem gekoppelt. Durch die Ausgabeschnittstelle 15 ist es dem Prozessor 20, dem Dialogmanager 30 und/oder Klassifiziereinrichtung 40 möglich, auf die Ausgabeeinheit 320 zuzugreifen bzw. diese zu nutzen.
-
Ferner ist eine Text-zu-Sprache-Einheit 310 (Text-To-Speach, TTS) vorgesehen, die einen oder mehrere Textbefehle in Sprache umwandelt, um sie mittels des Lautsprechers 330 an den Benutzer auszugeben. Wieder mit Bezug auf das obige Beispiel (”hoch setzen” wurde nicht oder unzureichend erkannt) erstellt der Dialogmanager 30 unter Verwendung eines oder mehrerer Dialogmodelle 50 die Frage ”Soll die Temperatur um 1 Grad erhöht werden?” Dieser Text wird über die Text-zu-Sprache-Einheit 310 in Audio-Signale umgewandelt und an die Ausgabeeinheit 320, insbesondere Lautsprecher 330, weitergeleitet.
-
Alternativ oder zusätzlich hierzu kann der vom Dialogmanager 30 erzeugte Text auch an den Bildschirm 340 übertragen werden, um dort als Text angezeigt zu werden. Optional kann auch die haptische Ausgabeeinheit 350 angesteuert werden, um ein haptisches Signal, wie zum Beispiel eine Vibration im Lenkrad, zu erzeugen. Durch diese haptische Ausgabe wird der Benutzer darauf hingewiesen, dass zum Beispiel auf dem Bildschirm eine Frage von dem Dialogsystem angezeigt wird. Diese Ausgabe ist besonders vorteilhaft, falls kein Lautsprecher 330 vorhanden ist, oder aufgrund festgestellter hoher Umgebungsgeräusche eine akustische Ausgabe der Frage von dem Benutzer nicht verstanden würde. Dies verhindert weitere Fehler, die durch ein Missverständnis mit dem Benutzer erzeugt würden.
-
Wieder mit Bezug auf 1 erzeugt der Dialogmanager 30 im Zusammenspiel mit dem Dialogmodell 50 einen Dialog mit dem Benutzer. Dabei ist das Dialogmodell 50 (oder die Dialogmodelle 50) so eingerichtet, dass der Benutzer einfache Antworten geben kann, wie zum Beispiel ”ja”/”nein” oder ”1 Grad”, ”1/2 Grad”, ”an”/”aus”, etc.
-
Der Benutzer würde dieses Nachfragen durch das Dialogsystem durch eine weitere Eingabe beantworten. Beispielsweise kann der Benutzer mit ”ja” antworten oder mit ”1 Grad wärmer”. Die vorliegende Offenbarung erlaubt hierbei jegliche Eingabe durch den Benutzer, sowohl akustisch, durch Mimik, Gesten oder Gebärden als auch mittels weiterer Eingabeeinrichtungen 240–250 (siehe 2).
-
Alternativ hierzu kann das Dialogsystem auch direkt eine Fahrzeugkomponente steuern. Dies ist möglich, wenn die Wahrscheinlichkeit der Bedeutung einen bestimmten Schwellenwert überschritten hat. Somit kann das Dialogsystem einen langen Dialog mit dem Benutzer, in dem immer wieder Befehle des Benutzers missverstanden werden, vermeiden. Wie ebenfalls in 3 gezeigt ist, bedient sich das Dialogsystem dabei der Ausgabeschnittstelle 15, an die eine Steuereinheit bzw. Fahrzeugkomponente 360 des Fahrzeugs angeschlossen ist. Im obigen Beispiel könnte das Dialogsystem die Temperatur um 1 Grad erhöhen und dies dem Benutzer anzeigen. Dieses Anzeigen kann wieder akustisch, haptisch, auf einem Bildschirm oder einer Kombination daraus erfolgen. Falls es die falsche Einstellung war, kann der Benutzer dies selbst ändern. Mittels dieser Korrektur wiederum kann das Dialogsystem entsprechend trainiert werden.
-
Im Fall eines weiteren Sprachbefehls oder Texteingabe am Bildschirm würde über die Eingabeschnittstelle 12 eine weitere Eingabe an das Dialogsystem übertragen werden und der Prozess der semantischen Klassifizierung und semantischen Annotation der empfangenen Eingaben würde erneut beginnen. Diese Iteration wird solange fortgesetzt, bis das Dialogsystem die Eingabe des Benutzers mit ausreichender Wahrscheinlichkeit erkannt hat.
-
In einer weiteren besonders vorteilhaften Ausführungsform der vorliegenden Offenbarung umfasst das Dialogsystem eine Speichereinrichtung 70 sowie eine Trainiereinheit 80. Die Speichereinrichtung 70 ist dazu vorgesehen, die empfangene Spracheingabe/Texteingabe, die erkannte Wortsequenz, den erlernten Sinngehalt der empfangenen Wortsequenz und/oder eine Transkription in eine semantische Annotation ganz oder teilweise abzuspeichern.
-
Dies wird nun anhand eines weiteren Beispiels unter Verwendung des Dialogsystems erläutert. Wenn das Dialogsystem in einem Fahrzeug implementiert ist, kann ein Benutzer die Anweisung ”mir ist kalt” an das Dialogsystem mittels Sprach- oder Texteingabe übermitteln. Im Fall einer Spracheingabe wird diese durch die Spracherkennungseinrichtung 211 (2) zunächst erkannt. In jedem Fall wird über die Eingabeschnittstelle 12 die Wortsequenz ”mir ist kalt” an das Dialogsystem übermittelt.
-
Ein untrainiertes Dialogsystem, aber auch ein bereits voreingestelltes Dialogsystem, wird dieser Anweisung keinen eindeutigen Sinn zuweisen können. Die Klassifiziereinrichtung 40 wird zumindest dem Wort ”kalt” den Sinn bzw. die Bedeutung ”Temperatur” zuweisen. Daher ist es notwendig, von dem Benutzer weitere Informationen einzuholen.
-
Wie oben bereits beschrieben, wird die Klassifiziereinrichtung 40 den Dialogmanager 30 anweisen, einen Dialog bezüglich der Temperatur mit dem Benutzer zu beginnen. Da in der Äußerung des Benutzers das Wort ”kalt” erkannt wurde und ein Sinngehalt klassifiziert werden konnte, wird der Dialogmanager 30 oder Prozessor 20 die Temperatureinstellung des Fahrzeugs in den Dialog einbeziehen. Optional kann das Dialogsystem die Temperatureinstellung aufrufen oder gleich die Temperatur nach unten, also kälter, setzen. Wie ebenfalls in 3 gezeigt ist, bedient sich das Dialogsystem dabei der Ausgabeschnittstelle 15, an die eine Steuereinheit bzw. Fahrzeugkomponente 360 des Fahrzeugs angeschlossen ist. Ferner ist es möglich, dass das Dialogsystem eine haptische Ausgabe an die haptische Ausgabeeinheit 350 übermittelt, so dass der Benutzer feststellt, dass die Temperaturanzeige aufgerufen wurde bzw. die Temperatur herabgesetzt wurde. Ebenso ist eine sprachliche Ausgabe der vorgenommenen Temperatureinstellung möglich.
-
In jedem Fall dürfte der Benutzer auf dieses Vorgehen des Dialogsystems reagieren. Dabei übermittelt der Benutzer weitere oder zusätzliche Nutzerinformation an das System. Diese Nutzerinformation ist wiederum eine Spracheingabe, Texteingabe, Funktionsauswahl einer Komponente (z. B. eines Temperaturreglers oder eines anderen, mit der Spracheingabe im Zusammenhang stehenden Reglers) oder ähnliches. Beispielsweise könnte der Benutzer sagen, ”die Temperatur bitte erhöhen”. Alternativ hierzu könnte der Benutzer wie erwähnt auch die Temperatursteuerung selbst vornehmen und die Temperatur erhöhen bzw. warmer stellen.
-
In beiden Fällen wird dem Dialogsystem von der Eingabeeinheit 220 und/oder der Erkennungseinheit 210 (siehe 2) ein Signal oder Daten, die die Nutzerreaktion repräsentieren, übermittelt. Das Dialogsystem wird in beiden Fällen feststellen, dass der Wortsequenz ”mir ist kalt” nicht ein Niedrigerstellen der Temperatur sondern ein Erhöhen der Temperatur zuzuordnen ist.
-
Daher wird der Dialogmanager 30 oder die Klassifiziereinrichtung 40 in dem Speicher 70 die Wortsequenz ”mir ist kalt” zusammen mit der semantischen Annotation (TemperaturEinstellen (Temperatur = ”hoch”)) ablegen bzw. speichern.
-
Das Speichern erfolgt dabei nur, wenn eine teilweise richtig erkannte Äußerung vorliegt, eine zeitliche und semantische Nähe vorliegt oder nur eine zeitliche Nähe vorliegt. Eine teilweise richtig erkannte Äußerung ist das Bedeutung/Wort-Paar TemperaturEinstellen/”kalt”. Eine zeitliche und semantische Nähe liegt vor, wenn der Benutzer nach dem Herunterstellen der Temperatur durch das Dialogsystem innerhalb einer festgelegten Zeitspanne eingreift und die Temperatur selbst hochstellt oder eine weitere Sprach-/Texteingabe vornimmt. Der Benutzer bleibt also im Bereich der Temperatureinstellung (semantische Nähe) und greift innerhalb einer festgelegten Zeitspanne z. B. durch Betätigen geeigneter Regler im Kraftfahrzeug ein (zeitliche Nähe). Eine rein zeitliche Nähe bedeutet, dass der Benutzer innerhalb einer festgelegten Zeitspanne eingreift oder eine Einstellung selbst vornimmt, die nichts mit der erkannten zu tun hat (semantisch entfernt).
-
Dass die oben genannte Äußerung ”mir ist kalt” teilweise richtig erkannt wurde, kann das Dialogsystem daran feststellen, dass der Benutzer auf das Nachfragen des Dialogsystems entsprechend antwortet oder eingreift bzw. die angezeigte Einstellmöglichkeit bedient. Im obigen Beispiel hat das Dialogsystem zumindest richtig erkannt, dass es sich um eine Temperatureinstellung handeln soll.
-
Das Abspeichern bei zeitlicher und semantischer Nähe erfolgt, wenn der Benutzer innerhalb einer bestimmten (kurzen) Zeitspanne (z. B. 0–5 sek. oder 0–1,5 sek.) auf das Nachfragen des Dialogsystems oder die zur Verfügung gestellte Eingabemöglichkeit reagiert. Reagiert der Benutzer beispielsweise erst nach einer längeren Zeitspanne (> 8 sek.), ist nicht sichergestellt, dass die Handlung des Benutzers noch im Zusammenhang mit der Äußerung ”mir ist kalt” steht. Demnach erfolgt keine Speicherung der oben genannten Daten.
-
Das Abspeichern kann aber auch nur bei einer zeitlichen Nähe zwischen Interaktion des Dialogsystems und des Benutzers erfolgen. Wechselt der Benutzer beispielsweise von der (vom Dialogsystem) angezeigten Temperatureinstellung zur Einstellung der Klimaanlage, um diese auszuschalten, oder bedient die Fensterheber, um die Fenster zu schließen, kann dies ebenfalls im Zusammenhang mit ”mir ist kalt” abgespeichert werden. Wenn diese Reaktion des Benutzers innerhalb einer bestimmten kurzen Zeitspanne nach der Interaktion des Dialogsystems erfolgt, geht das Dialogsystem davon aus, dass eine bestimmte zeitliche Nähe vorliegt. In diesem Fall wird die Äußerung ”mir ist kalt” auch zusammen mit der semantischen Annotation (Fensterheber (Fenster = ”schließen”)) oder (KlimaanlageEinstellen (Klimaanlage = ”aus”)) gespeichert werden. Wie aus diesem Beispiel ersichtlich ist, ist die semantische Nähe des zuerst erkannten Sinngehalts, nämlich dem Einstellen der Temperatur, nicht erfüllt, sondern ausschließlich die zeitliche Nähe.
-
Die in dem Speicher 70 abgelegten Spracheingabesignale bzw. Worte oder Wortsequenzen zusammen mit semantischen Annotationen werden durch die Trainiereinheit 80 verarbeitet. Diese Verarbeitung kann periodisch erfolgen, oder nach dem Abspeichern einer bestimmten Anzahl neuer Bedeutung/Wort(sequenz)-Paare (Datenpaare).
-
Die Trainiereinheit 80 kann dabei Teil des Dialogsystems sein. Sie kann aber ebenfalls ein autarkes System sein und an einer dezentralen Stelle, wie zum Beispiel einem Server (nicht gezeigt) eines Service-Anbieters, implementiert sein. In letzterem Fall ist das Dialogsystem in der Lage, mittels einer Kommunikationseinheit 90 die im Speicher 70 abgelegten Daten an die Trainiereinheit eines Servers zu übermitteln.
-
Die Trainiereinheit 80 nimmt nun die im Speicher 70 abgespeicherten Daten in das semantische Modell 60 auf. Sind in dem Speicher 70 bereits semantische Annotationen zusammen mit Wortsequenzen abgespeichert, können diese direkt in das semantische Modell 60 übernommen werden. Andernfalls ist die Trainiereinheit 80 dazu eingerichtet, die im Speicher 70 abgelegten Daten, wie zum Beispiel Spracheingabesignal, Wortsequenz, Interaktion des Dialogsystems, Zeitspanne bis zur Reaktion des Benutzers, Benutzerreaktion, etc., zu verarbeiten, um entsprechende Daten für das semantische Modell 60 zu generieren. Beispielsweise können vorhandene Wahrscheinlichkeitswerte in dem semantischen Modell 60 angepasst werden oder es können neue Bedeutungen sowie neue Worte/Wortsequenzen mit zugehörigen Wahrscheinlichkeiten aufgenommen werden.
-
Alternativ kann der Prozessor 20, Dialogmanager 30 und/oder Klassifiziereinrichtung 40 alle Daten in dem Speicher 70 ablegen und mit einem Zeitstempel versehen. Bei diesen abgelegten Daten kann es sich dann um die empfangenen Sprachsignale, empfangene Wortsequenz, ausgegebener Dialog des Dialogmanagers, erkannte semantische Klassifizierung, etc. handeln. Die Trainiereinheit 80 ist dann in der Lage, anhand der Zeitstempel zu ermitteln, ob die abgespeicherten Daten verworfen werden (unzureichende zeitliche bzw. semantische Nähe) oder ob die Daten in das semantische Modell eingepflegt werden.
-
Ist die Trainiereinheit auf einem entfernten Rechnersystem (Server) eingerichtet, ist sie in der Lage, die Daten einer Vielzahl von Dialogsystemen zu verarbeiten. Nach dem Training eines gemeinsamen semantischen Modells auf dem Server kann ein aktualisiertes semantisches Modell an das Dialogsystem über die Kommunikationseinheit 90 übermittelt werden. Damit kann periodisch das semantische Modell 60 des Dialogsystems aktualisiert werden und die Äußerungen und Interaktionen verschiedener Benutzer aufnehmen. Dies hat den Vorteil, dass eine Vielzahl von Dialogsystemen schnell angelernt und an verschiedene Äußerungen angepasst werden kann.
-
Zur Verdeutlichung werden noch weitere Beispiele der vorliegenden Offenbarung gezeigt. Ein Benutzer kann an das Dialogsystem die Äußerung ”Bitte ruf meinen Vater an” übermitteln. Aus den Worten ”ruf” und ”an” ist das Dialogsystem in der Lage, den Sinngehalt der Wortsequenz zumindest teilweise zu ermitteln, nämlich dass das Telefon benutzt werden soll. über den Dialogmanager 30 und die Ausgabeeinheit 320 kann das System nachfragen, ”Wen soll ich anrufen?” oder das Adressbuch bzw. Telefonbuch des Systems anzeigen. Aus der nächsten Reaktion des Benutzers, wie zum Beispiel der Äußerung ”Peter Müller” oder dem Auswählen dieses Namens auf einem Bildschirm mittels Tastatur 240 oder Touchscreen 250, ”lernt” das System, dass ”Bitte ruf meinen Vater an” gleichbedeutend ist mit (Anruf (Name = ”Peter Müller”)).
-
In einem weiteren Beispiel äußert der Benutzer den Ausdruck ”es regnet”. Als Reaktion darauf kann das Dialogsystem eventuell erkennen, dass mit ”regnet” die Scheibenwischer gemeint sind. Nach dem Einschalten der Scheibenwischer oder dem Nachfragen, ob die Scheibenwischer eingeschaltet werden sollen, registriert das Dialogsystem, dass der Benutzer innerhalb kurzer Zeit die Fenster schließt. Daher kann das Dialogsystem erlernen, dass mit ”es regnet” sowohl das Einschalten der Scheibenwischer als auch das Schließen der Fenster gemeint sind. Weitere semantische Bedeutungen, zum Beispiel für ein Navigationsgerät, sind ”bitte die Karte vergrößern” für Zoom in; ”höhere Auflösung bitte” für Zoom in; die Karte verkleinern bitte” für Zoom out; ”niedrigere Auflösung” für Zoom out, etc.
-
Das semantische Modell entwickelt dadurch eine immer umfangreichere Datenstruktur, die die jeweilige Wahrscheinlichkeit enthält, dass eine bestimmte Bedeutung einem Wort zugeordnet ist oder dass einer bestimmten Wortsequenz eine bestimmte Bedeutung zugeordnet ist.
-
Mit Bezug auf die 4 werden die verschiedenen Daten, die zwischen dem Prozessor 20 und dem Speicher 70 übermittelt werden, gezeigt. Dies kann zum einen das Sprachsignal sein, wie es durch die Eingabeeinheit 220 (2) empfangen wurde. Ebenso kann es sich hierbei um ein Texteingabesignal handeln, falls die Eingabe nicht mittels Sprache sondern über eine Tastatur 240 erfolgte. Des Weiteren kann die erkannte Wortsequenz zur Speicherung von dem Prozessor 20 zu dem Speicher 70 übertragen werden. Dabei handelt es sich um die durch die Erkennungseinheit 210 (2) erkannte Wortsequenz des empfangenen Sprachsignals oder eine über die Tastatur 240 erfolgte Texteingabe. Ferner wird die semantische Annotation, wie sie durch die Klassifiziereinrichtung 40 ermittelt wurde, an den Speicher 70 übertragen. Außerdem kann die über die Eingabeschnittstelle 12 empfangene weitere Nutzerinformation an den Speicher 70 übertragen werden. Dabei handelt es sich um Benutzer-Interaktionen mit dem System und ähnliches, die über die Eingabeeinheit 220 empfangen werden. Beispielsweise sind dies weitere Eingaben über die Tastatur 240, das Tastenfeld 245 oder den Touchscreen 250 (alle 2). Letztendlich können auch Kontextinformationen von dem Prozessor 20 an den Speicher 70 übermittelt werden. Dazu gehören weitere Daten des Systems, wie zum Beispiel Sensorsignale (Regensensor, Lichtsensor, etc.) oder andere Zustände des Systems (Geschwindigkeit, aktuelle Position, etc.).
-
Diese Daten werden entweder direkt im Zusammenhang an den Speicher übermittelt oder jeweils zusammen mit einem Zeitstempel abgespeichert. Zum Beispiel kann eine erkannte Wortsequenz, eine klassifizierte semantische Annotation und eine weitere Reaktion des Benutzers einzeln und jeweils mit Zeitstempel gespeichert werden. In jedem Fall werden die Daten in dem Speicher 70 so abgelegt, dass die Trainiereinheit 80 das semantische Modell auf Basis des neuen Sinngehalts einer Wortsequenz, der Wortsequenz und/oder einer Transkription in eine semantische Annotation trainieren kann.
-
5 zeigt ein Ablaufdiagramm eines Verfahrens gemäß der vorliegenden Offenbarung. In einem ersten Schritt 501 wird eine Spracheingabe des Benutzers empfangen. Ebenso kann auch eine Texteingabe empfangen werden.
-
In dem nächsten, optionalen Schritt 502 findet eine Spracherkennung statt, um das empfangene Sprachsignal zu analysieren und ein Wort oder eine Wortsequenz zu erkennen. Dieses erkannte Wort bzw. erkannte Wortsequenz oder die Texteingabe wird anschließend, zum Beispiel als symbolische Repräsentation, ausgegeben.
-
In einem Schritt 503 erfasst und bewertet das Dialogsystem einen Sinngehalt der Wortsequenz, indem die Wortsequenz auf Basis eines trainierbaren semantischen Modells klassifiziert wird. Wie oben beschrieben, wird dabei eine semantische Annotation für das Wort bzw. die Wortsequenz bereitgestellt.
-
In einem Schritt 504 wird die semantische Annotation zusammen mit dem Wort bzw. der Wortsequenz ausgegeben.
-
Falls eine weitere Nutzerinformation erfolgt oder notwendig ist, wird in einem Schritt 505 diese weitere Nutzerinformation berücksichtigt. Das Berücksichtigen der Nutzerinformation kann ein Ableiten der Nutzerinformation aus einer Nutzereingabe, die dem Empfangen der Wortsequenz (Schritt 501) unmittelbar nachfolgt, umfassen. Natürlich kann die Nutzereingabe auch nach einer Rückfrage durch den Dialogmanager oder die Vornahme einer Einstellung durch das System erfolgen. Wie oben beschrieben, kann es sich um eine korrigierende Steuerungseingabe handeln, die einen vorausgehenden, auf Basis der Wortsequenz bereitgestellten Steuerbefehl korrigiert. Es kann sich aber auch um das Empfangen einer oder mehrerer Nutzereingaben in Reaktion auf ein Bereitstellen einer eingeschränkten Auswahl von Eingabeoptionen handeln.
-
In einem Schritt 506 wird der Sinngehalt der Wortsequenz auf Basis der zusätzlichen Nutzerinformation erlernt. Das Erlernen erfolgt nur dann, wenn auch ein Zusammenhang zwischen der Wortsequenz und den Nutzerinformationen festgestellt werden kann. Dieser Zusammenhang wird anhand einer zeitlichen und/oder semantischen Korrelation, wie oben erläutert, bestimmt. Bei dem Erlernen kann es sich auch um das Feststellen des Sinngehalts der Nutzerinformationen, das Vergleichen der empfangenen Wortsequenz mit dem Sinngehalt der Nutzerinformationen und/oder ein sukzessives Ableiten oder Vervollständigen des Sinngehalts der empfangenen Wortsequenz auf Basis eines bekannten Sinngehalts der Nutzerinformationen handeln.
-
In einem Schritt 507 wird ermittelt, ob ein Ende des Erlernens des Sinngehalts erreicht ist. Mit anderen Worten werden solange weitere Nutzerinformationen berücksichtigt und erlernt, bis der Sinngehalt der empfangenen Wortsequenz vollständig und/oder für vertrauenswürdig erkannt und/oder durch einen Nutzerabbruch beendet wird. Als vertrauenswürdig gilt der Sinngehalt, wenn ein Konfidenzwert, d. h. eine Wahrscheinlichkeit für das Bedeutung/Wort-Paar, ermittelt wird, der über einem vorgegebenen Schwellenwert liegt. Die Wahrscheinlichkeit kann aufgrund der zeitlichen und/oder semantischen Nähe festgelegt werden. Ist ein Ende nicht erreicht, geht der Prozess zu dem Schritt 505 zurück, andernfalls fährt er mit dem Schritt 508 fort.
-
In Schritt 508 werden alle Informationen, die im Zusammenhang mit der Spracheingabe entstanden sind, in dem Datenspeicher 70 abgespeichert. Dazu können die von der Erkennungseinheit 210 gelieferte Wortsequenz, die Nutzerinformationen, der erlernte Sinngehalt sowie der Konfidenzwert gehören.
-
Wenn genug Daten gesammelt sind, wird ein semantisches Modell auf Basis der gespeicherten Daten, also der empfangenen Wortsequenz, des erlernten Sinngehalts der Wortsequenz und/oder einer entsprechenden Transkription in eine semantische Annotation trainiert. So werden durch Vervollständigen einer unvollständig klassifizierten Wortsequenz, ein Berichtigen eines falsch interpretierten Teils der empfangenen Wortsequenz und/oder einer Neuklassifizierung einer falsch oder nicht klassifizierten Wortsequenz die Trainingsdaten erweitert. Zum Trainieren des semantischen Modells stehen nun vorher unbekannte Daten zur Verfügung, aus denen weitere Bedeutung/Wort-Paare erlernt oder bestehende verbessert werden können. Somit wird das semantische Modell insgesamt verbessert.
-
Die oben beschriebenen Ausführungsformen und Beispiele beziehen sich auf eine Fahrzeugsteuerung. Selbstverständlich können das offenbarte System und Verfahren auch in anderen interaktiven Systemen angewandt werden. Zu solchen Systemen zählen Suchmaschinen, Chatbots, Spielekonsolen, Webmining-Anwendungen sowie andere interaktive Dienste. Diese Systeme und Dienste ermöglichen eine Eingabe durch einen Benutzer, zum Beispiel über eine Hardware-Benutzerschnittstelle oder graphische Benutzeroberfläche (Graphical User Interface, GUI). Die Eingabe und zusätzliche Nutzerinformationen durch weitere Interaktionen können durch die Klassifiziereinrichtung empfangen werden und der Sinngehalt unter Zuhilfenahme eines semantischen Modells, wie oben erläutert, erfasst werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2008/0312934 A1 [0006]