-
Querverweis auf verwandte Anmeldungen
-
Diese Anmeldung beansprucht die Priorität der U.S. Prov. Pat. App. Nr. 61/844,646, die am 10. Juli 2013 eingereicht wurde, deren gesamte Inhalte durch Bezugnahme hierin aufgenommen sind.
-
Technisches Gebiet
-
Das technische Gebiet bezieht sich im Allgemeinen auf Sprachsysteme und insbesondere bezieht es sich auf Verfahren und Systeme zum Auswählen zwischen verfügbaren Sprachdialogdiensten.
-
Hintergrund
-
Fahrzeugsysteme für Sprachdialoge (oder ”Sprachsysteme”) führen unter anderem eine Spracherkennung durch, die auf einer Sprache basiert, welche durch Besitzer eines Fahrzeugs geäußert werden. Die Sprachäußerungen schließen typischerweise Kommandos ein, die mit einem oder mehreren Merkmalen des Fahrzeugs sowie andere(n) Systeme(n), die durch das Fahrzeug zugänglich sind, kommunizieren oder diese steuern. Ein Sprachsystem erzeugt Sprachbefehle in Reaktion auf die Sprachäußerung, und in einigen Fällen werden Sprachbefehle in Reaktion auf das Sprachsystem erzeugt, das weitere Informationen benötigt, um die Spracherkennung durchzuführen.
-
Zunehmend können solche Sprachdialogdienste durch multiple Geräte und/oder Applikationen innerhalb der Umgebung des Nutzers zur Verfügung gestellt werden. Im Kontext eines Fahrzeugsystems für Sprachdialoge ist es zum Beispiel nicht ungewöhnlich für derartige Service bzw. Dienste, dass sie simultan von dem mobilen Gerät des Nutzers (über eine oder mehrere Applikationen, die auf dem mobilen Gerät vorhanden sind), von dem Sprachsystem an Bord des Fahrzeugs und von externen Servern Dritter (welche über ein Netzwerk mit dem an Bord befindlichen Kommunikationsnetzwerk gekoppelt sind) verfügbar sind.
-
In derartigen Fällen könnten zwei oder mehr der Sprachdialogdienste Kandidaten für die Bearbeitung einer gegebenen Sprachäußerung und/oder für ein Ausführen der geforderten Aufgabe sein, obwohl vielleicht nur einer der Dienste für die besonderen Anforderungen des Nutzers optimal oder sogar geeignet ist. Zum Beispiel könnte eine Anfrage für eine Navigationsinformation entweder durch das an Bord befindliche Navigationssystem oder durch eine Navigationsapplikation, die auf dem Smartphone des Nutzers vorhanden ist, bearbeitet werden – wobei beide Systeme entsprechende Stärken und Schwächen in einem bestimmten Kontext aufweisen. In bekannten Systemen wird dieses Problem über den Gebrauch von mehreren Knöpfen bzw. Buttons oder anderen Nutzerschnittstellentechniken adressiert (z. B. basierend darauf, welche Applikation ”im Fokus” auf einem Touchscreen steht), wobei jede mit einem besonderen Sprachdialogdienst korrespondiert. Derartige Verfahren können beim Nutzer zu Verwirrung und/oder zu unbefriedigenden Ergebnissen führen.
-
Demgemäß ist es wünschenswert, verbesserte Verfahren und Systeme für das Auswählen von Sprachdialogdiensten in einem Sprachsystem bereitzustellen. Überdies werden andere wünschenswerte Merkmale und Kennzeichen der vorliegenden Erfindung durch die nachfolgende detaillierte Beschreibung und die anhängenden Ansprüche in Verbindung mit den begleitenden Zeichnungen und dem vorhergehenden technischen Gebiet und dem Hintergrund verständlich.
-
Zusammenfassung
-
Verfahren und Systeme für ein Arbitrieren bzw. Entscheiden oder Vermitteln von Sprachdialogservicen werden bereitgestellt. Gemäß unterschiedlicher Ausführungsformen wird ein Eignungskatalog, der mit einer Vielzahl von Geräten assoziiert ist, die in einer Umgebung (z. B. einem Fahrzeug) zugänglich sind, bestimmt. Der Eignungskatalog schließt eine Liste der Geräte ein, die einer Liste von Sprachdialogdiensten zugeordnet ist, welche durch jedes der Vielzahl der Geräte bereitgestellt werden. Das System arbitriert bzw. entscheidet zwischen der Vielzahl von Geräten und den Sprachdialogdiensten in dem Eignungskatalog, um ein ausgewähltes Gerät und einen ausgewählten Dialogdienst zu bestimmen. Das System leitet dann die Sprachäußerung zu dem ausgewählten Sprachdialogdienst bzw. -service auf dem ausgewählten Gerät weiter.
-
In einer Ausführungsform empfängt das System eine Sprachäußerung von einem Nutzer innerhalb der Umgebung, klassifiziert die Sprachäußerung, um einen Satz von Kandidaten der Geräte und einen Satz der Sprachdialogdienste zu bestimmen, basierend auf dem Eignungskatalog, und bestimmt ein ausgewähltes Gerät aus dem Satz der Kandidaten der Geräte und einen ausgewählten Sprachdialogdienst bzw. -service aus dem Satz der Kandidaten der Sprachdialogdienste, basierend auf einem Verifikationskriterium.
-
Beschreibung der Zeichnungen
-
Die beispielhaften Ausführungsformen werden hiernach in Zusammenhang mit den nachfolgenden Zeichnungsfiguren beschrieben, wobei gleiche Nummern gleiche Elemente bezeichnen, und wobei:
-
1 ein funktionelles Blockdiagramm eines Fahrzeugs ist, das ein Sprachsystem gemäß unterschiedlicher beispielhafter Ausführungsformen einschließt;
-
2 ein funktionelles Blockdiagramm ist, das ein Arbitrierungsmodul gemäß unterschiedlicher beispielhafter Ausführungsformen einschließt;
-
3 ein funktionelles Blockdiagramm ist, das ein Arbitrierungsmodul gemäß beispielhafter Ausführungsformen darstellt, welches mit einem oder mehreren Geräten kommuniziert,;
-
4 ein funktionelles Blockdiagramm ist, das ein Arbitrierungsmodul gemäß unterschiedlicher beispielhafter Ausführungsformen darstellt;
-
5 ein Flussdiagramm ist, das eine Arbitrierungsmethode eines Sprachdialogservices zeigt, gemäß der beispielhaften Ausführungsform, die in 3 gezeigt wird; und
-
6 ein Flussdiagramm ist, das eine Arbitrierungsmethode eines Sprachdialogservices gemäß der beispielhaften Ausführungsform zeigt,, die in 4 gezeigt wird.
-
Detaillierte Beschreibung
-
Die nachfolgende detaillierte Beschreibung ist in ihrer Art nur beispielhaft und es ist nicht beabsichtigt, die Applikation oder den Gebrauch zu limitieren. Ferner besteht keine Absicht, durch irgendeine ausgedrückte oder verwendete Theorie, die in dem vorhergehenden technischen Gebiet, dem Hintergrund, der kurzen Zusammenfassung oder der nachfolgenden detaillierten Beschreibung präsentiert wird, gebunden zu sein. Der hierin verwendete Ausdruck ”Modul” bezieht sich auf eine anwendungsspezifische integrierte Schaltung (ASIC, application specific integrated circuit), einen elektronischen Schaltkreis, einen Prozessor (anteilig, speziell zur Verfügung gestellt, oder als Gruppe) und einen Speicher, der eine oder mehrere Software- oder Firmware-Programme durchführt, eine kombinierte logische Schaltung und/oder andere geeignete Komponenten, welche die beschriebene Funktionalität bereitstellen.
-
Nun auf 1 Bezug nehmend, wird gemäß den beispielhaften Ausführungsformen des hierin beschriebenen Gegenstandes ein Sprachdialogsystem (oder einfach ”Sprachsystem”) 10 innerhalb eines Fahrzeugs 12 bereitgestellt. Im Allgemeinen stellt ein Sprachsystem 10 eine Spracherkennung, ein Dialogmanagement und eine Spracherzeugung für ein oder mehrere Fahrzeugsysteme durch ein Mensch-Maschine-Schnittstellenmodul 14 (HMI, human machine interface) bereit, das konfiguriert ist, um durch einen oder mehrere Nutzer 40 (z. B. einen Fahrer, Beifahrer usw.) betrieben zu werden (oder in anderer Weise mit diesem in Wechselwirkung zu treten). Derartige Fahrzeugsysteme können zum Beispiel ein Telefonsystem 16, ein Navigationssystem 18, ein Mediasystem 20, ein Telematiksystem 22, ein Netzwerksystem 24 und irgendwelche anderen Fahrzeugsysteme einschließen, die eine sprachabhängige Applikation umfassen. In einigen Ausführungsformen sind ein oder mehrere der Fahrzeugsysteme kommunikativ über ein Netzwerk gekoppelt (z. B. ein proprietäres Netzwerk, ein 4G Netzwerk oder dergleichen), die eine Datenkommunikation mit einem oder mehreren Backendservern 26 bereitstellen.
-
Ein oder mehrere mobile Geräte 50 könnten auch innerhalb des Fahrzeugs 12 vorhanden sein, einschließlich einem oder mehrerer Smartphones, Tabletcomputern, Ausstattungstelefonen (engl. feature phones) usw. Ein mobiles Gerät 50 kann auch kommunikativ mit der HMI 14 über eine geeignete drahtlose Verbindung gekoppelt sein (z. B. Bluetooth oder WiFi), so dass eine oder mehrere Applikationen, die auf dem mobilen Gerät 50 resident sind, für den Nutzer 40 über das HMI 14 zugänglich sind. Somit kann typischerweise ein Nutzer 40 einen Zugriff auf Applikationen haben, die auf drei unterschiedlichen Plattformen aktiv sind: Applikationen, die innerhalb des Fahrzeugsystems selbst ausgeführt werden, Applikationen, die auf einem mobilen Gerät 50 in Einsatz sind, und Applikationen, die auf einem Abschlussserver 26 residieren bzw. installiert sind. Weiterhin können ein oder mehrere dieser Applikationen gemäß ihrer eigenen jeweiligen Sprachdialogsysteme arbeiten, und somit kann eine Vielzahl von Geräten in der Lage sein, in unterschiedlichem Ausmaß auf die Anfrage, die von einem Nutzer 40 gesprochen wird, zu reagieren.
-
Das Sprachsystem 10 kommuniziert mit den Fahrzeugsystemen 14, 16, 18, 20, 22, 24 und 26 über einen Kommunikations-Bus und/oder über ein anderes Datenkommunikationsnetzwerk 29 (z. B. drahtgebunden, nahbereichsdrahtlos oder fernbereichsdrahtlos). Der Kommunikations-Bus kann zum Beispiel ein CAN-Bus (CAN, controller area network), ein LIN-Bus (LIN, local interconnect network) oder dergleichen sein. Es ist sinnvoll, dass das Sprachsystem 10 in Verbindung sowohl mit fahrzeugbasierenden Umgebungen als auch mit nicht-fahrzeugbasierenden Umgebungen verwendet wird, welche eine oder mehrere sprachabhängige Applikationen aufweisen, und die hier vorgesehenen fahrzeugbasierenden Beispiele werden allegemeingültig dargelegt.
-
Wie dargestellt, umfasst das Sprachsystem 10 ein Sprachverständnismodul 32, ein Dialogmanagermodul 34 und ein Spracherzeugungsmodul 35. Diese funktionalen Module können als separate Systeme oder als ein kombiniertes, integriertes System ausgeführt sein. Im Allgemeinen empfängt das HMI-Modul 14 ein akustisches Signal (oder eine ”Sprachäußerung”) 41 von einem Nutzer 40, welche dem Sprachverständnismodul 32 zur Verfügung gestellt wird.
-
Das Sprachverständnismodul 32 umfasst jede Kombination der Hardware und/oder Software, die konfiguriert ist, um die Sprachäußerung vom HMI-Modul 14 (empfangen über ein oder mehrere Mikrofone 52) zu verarbeiten, und zwar unter Verwenden geeigneter Spracherkennungsverfahren, welche zum Beispiel automatische Spracherkennung und semantische Decodierung (oder Verständnis der gesprochen Sprache (SLU, spoken language understanding)) aufweisen. Unter Verwenden derartiger Techniken erzeugt das Sprachverständnismodul 32 eine Liste (oder Listen) 33 möglicher Ergebnisse von der Sprachäußerung. In einer Ausführungsform umfasst die Liste 33 einen oder mehrere Satzhypothesen, die eine Wahrscheinlichkeitsverteilung über den Satz der Äußerungen repräsentieren, welche durch den Nutzer 40 gesprochen sein könnten (nämlich die Äußerung 41). Die Liste 33 könnte zum Beispiel die Form einer N-Bestenliste annehmen. In unterschiedlichen Ausführungsformen erzeugt das Sprachverständnismodul 32 die Liste 33 unter Verwenden vordefinierter Möglichkeiten, die in einem Datenspeicher gespeichert sind. Zum Beispiel könnten die vordefinierten Möglichkeiten Namen oder Nummern sein, die in einem Telefonbuch gespeichert sind, Namen oder Adressen sein, die in einem Adressbuch gespeichert sind, Namen von Liedern, Alben oder Künstlern sein, die in einem Musikverzeichnis gespeichert sind, usw. In einer Ausführungsform entwickelt das Sprachverständnismodul 32 eine Front-End-Merkmalsextraktion, auf die ein HMM-Modell (Hiden Markov Model) und ein Punktezählmechanismus folgt.
-
Das Dialogmanagermodul 34 schließt jede Kombination von Hardware und/oder Software ein, die konfiguriert ist, um eine Interaktionssequenz und eine Auswahl der Sprachaufforderungen 42, die zu dem Nutzer zu sprechen sind, basierend auf einer Liste 33 zu managen. Wenn eine Liste 33 mehr als ein mögliches Ergebnis enthält, verwendet das Dialogmanagermodul 34 Eindeutigkeitsstrategien, um einen Dialog von Aufforderungen mit dem Nutzer 40 zu managen, so dass ein erkanntes Ergebnis bestimmt werden kann. Demgemäß ist in einer beispielhaften Ausführungsform das Dialogmanagermodul 34 in der Lage, Dialogkontexte zu managen, wie es weiter unten beschrieben wird.
-
Das Spracherzeugungsmodul 35 umfasst jede Kombination von Hardware und/oder Software, die konfiguriert ist, um gesprochene Aufforderungen 42 an den Nutzer 40 zu erzeugen, und zwar basierend auf dem Dialog, der durch das Dialogmanagermodul 34 bestimmt ist. In dieser Beziehung wird das Spracherzeugungsmodul 35 im Allgemeinen eine natürliche Spracherzeugung (NLG, natural language generation) und eine Sprachsynthese oder eine Text-zu-Sprache (TTS, text-to-speech) bereitstellen.
-
Die Liste 33 schließt ein oder mehrere Elemente ein, die ein mögliches Ergebnis repräsentieren. In unterschiedlichen Ausführungsformen umfasst jedes Element der Liste 33 einen oder mehrere ”Ausschnitte” bzw. ”Slots”, die jeweils mit einem Slot- bzw. Ausschnitttyp assoziiert sind, der von der Applikation abhängt. Wenn zum Beispiel die Applikation das Telefonieren mit Telefonbuch-Kontakten unterstützt (z. B. ”Ruf John Doe an”), dann kann jedes Element Ausschnitte mit Ausschnitttypen eines Vornamens, eines Mittelnamens und/oder eines Familiennamens einschließen. Wenn in einem anderen Beispiel die Applikation die Navigation unterstützt (z. B. ”Fahre zu 1111 Sunshine Boulevard”), dann kann jedes Element Ausschnitte mit Ausschnitttypen einer Hausnummer und eines Straßennamens usw. einschließen. In unterschiedlichen Ausführungsformen können die Ausschnitte und die Ausschnitttypen in einem Datenspeicher gespeichert sein, und von jedem der dargestellten Systeme kann auf sie zugegriffen werden. Jedes Element oder jeder Ausschnitt der Liste 33 ist mit einem Vertrauenslevel bzw. Konfidenzwert assoziiert.
-
Zusätzlich zu einem gesprochenen Dialog könnten die Nutzer 40 auch mit der HMI 14 über unterschiedliche Tasten, Schalter, Touchscreen-Nutzer-Schnittstellenelemente, Gesten (z. B. Handgesten, die durch eine oder mehrere Kameras, die innerhalb des Fahrzeugs 12 bereitgestellt sind) und dergleichen zusammenwirken. In einer Ausführungsform wird eine Taste 54 (z. B. eine ”Drücken-zum-Sprechen”-Taste oder einfach ”Sprechen-Taste”) bereitgestellt, die leicht von einem oder mehreren Nutzern 40 erreichbar ist. Die Taste 54 kann zum Beispiel in einem Lenkrad 56 eingebettet sein.
-
Nun bezugnehmend auf 2 umfasst in Übereinstimmung mit unterschiedlichen beispielhaften Ausführungsformen das HMI-Modul 14 ein Arbitrierungsmodul 202, das kommunikativ über geeignete Kommunikationskanäle (entweder drahtgebunden oder drahtlos) mit einem oder mehreren Geräten 201 gekoppelt ist. In der gezeigten Ausführungsform sind zum Beispiel drei Geräte 201 kommunikativ mit dem Arbitrierungsmodul 202 gekoppelt: Gerät 210, Gerät 220 und Gerät 230. Die Geräte 201 könnten mit unterschiedlichen Komponenten oder Kombinationen von Komponenten, die in 1 dargestellt sind, korrespondieren. Das Gerät 210 könnte zum Beispiel mit dem mobilen Gerät 50 in 1, korrespondieren, das Gerät 220 könnte mit dem Backend-Server 26 in 1 korrespondieren, und das Gerät 230 könnte mit dem HMI-Modul 14 korrespondieren, das in Verbindung mit einem oder mehreren der Fahrzeuggeräte 16, 18, 20 usw. arbeitet.
-
Jedes Gerät 201 kann eine oder mehrere Applikationen aufweisen, die konfiguriert sind, um einen oder mehrere Sprachdialogservice, wie oben beschrieben, auszuführen. Zum Beispiel weist, wie dargestellt, das Gerät 210 eine Applikation 211 auf, das Gerät 220 weist eine Applikation 211 auf, das Gerät 220 weist Applikationen 221 und 222 auf, und das Gerät 230 weist Applikationen 231 und 232 auf. Darüber hinaus könnte eine individuelle Applikation (211, 222 usw.) in der Lage sein, mehr als einen Sprachdialogdienst auszuführen. Eine einzelne Applikation könnte zum Beispiel konfiguriert sein, um einen Sprachdialog zu erkennen und basierend auf diesem Sprachdialog sowohl Navigationsdienste als auch Mediendienste bereitstellen. In 2 sind die beispielhaften Sprachdialogdienste durch quadratische Bereiche innerhalb jeder Applikation gezeigt, z. B. die Dienste 213 und 214 der Applikation 211.
-
Eine Vielzahl von Applikationen sind bekannt, die in der Lage sind, Sprachdialogdienste auszuführen und weitere werden wahrscheinlich in der Zukunft entwickelt. Gegenwärtige Beispiele derartiger Applikationen umfassen, sind aber nicht beschränkt auf, Pandora® Internet Radio, iGoTM Navigation, Google MapsTM, Google NowTM, StitcherTM sowie unterschiedliche Fahrzeug-Navigationssystem-Applikationen, die im Stand der Technik bekannt sind.
-
Nun bezugnehmend auf 3 wird nun ein Arbitrierungsmodul 302 gemäß einer Ausführungsform in Verbindung mit einem beispielhaften Arbitrierungsverfahren 500, das in 5 gezeigt wird, beschrieben. Wie in 3 dargestellt, umfasst das Arbitrierungsmodul 302 ein Geräteklassifikationsmodul 303, ein Service- bzw. Dienstklassifikationsmodul 304, ein Verifikationsmodul 305, ein Geräte-Gate-Modul 306 und einen Eignungskatalog 307 (auf den auch manchmal als ”Eignungsplan” Bezug genommen wird).
-
Ursprünglich wird der Eignungskatalog 307 bei 502 in 5 festgelegt. Mit Bezug auf 3 umfasst der Eignungskatalog 307 jede geeignete Datenstruktur oder -strukturen zum Speichern der Daten, die mit den Eignungen der Geräte 201 assoziiert sind (z. B. Applikationsfunktionalität, Hardwarebegrenzungen usw.). In einer Ausführungsform umfasst der Eignungskatalog 307 eine Liste der verfügbaren Geräte (z. B. 210, 220, 230), die als eine Liste von Sprachdialogdiensten, die durch jedes der Vielzahl der Geräte bereitgestellt werden, festgelegt ist. Somit könnte zum Beispiel der Eignungskatalog 307 zeigen, dass – mit Bezug auf die Applikationen, die Sprachdialogdienste aufweisen – das Gerät 210 in der Lage ist, Navigationsdienste und Mediendienste auszuführen, das Gerät 220 in der Lage ist, nur Navigationsdienste auszuführen (welche die gleichen oder unterschiedliche von denen, die durch das Gerät 210 durchgeführt werden, sein können) und das Gerät 230 in der Lage ist, nur kontinuierliche Radiodienste durchzuführen.
-
Der Eignungskatalog 307 kann aus einer Vielzahl von bekannten Techniken bestehen. Ein Registrierungsverfahren kann zum Beispiel durchgeführt werden, wenn jedes der Geräte 201 in der Leistung hochgefahren wird oder in anderer Weise mit dem Arbitrierungsmodul 302 kommunikativ gekoppelt wird. Bluetooth- und/oder WiFi-Assoziationstechniken können angewandt werden, um jedes Gerät 201 abzufragen, um die betreffenden Sprachdialogdienste zu bestimmen, die durch jedes Gerät 201 bereitgestellt werden.
-
Nach Empfangen einer Sprachäußerung 41 klassifiziert das Klassifikationsmodul 303 die Äußerung, um einen Satz von Kandidaten der Geräte, basierend auf dem Eignungskatalog bei 504 in 5 zu bestimmen. Das bedeutet mit Bezugnahme zurück auf 3, dass unter Verwenden der Liste der Geräte und der Dienste, die durch den Eignungskatalog 307 gespeichert sind, das Geräte-Klassifikationsmodul 303 einen Satz (z. B. eine N-Bestenliste) der Geräte 201 bestimmt, die konfiguriert sind, um die geforderte Funktion auszuführen. Dieser Satz kann alle Geräte 201, eine geeignete Teilmenge der Geräte 201 oder keines der Geräte 201 einschließen. Gemäß einer Ausführungsform ist das Geräte-Klassifikationsmodul 303 konfiguriert, um ein Konfidenzniveau bzw. einen Vertrauenslevel zu erzeugen, der mit jedem der Geräte, die in dem Satz aufgelistet sind, assoziiert ist. Das Geräteklassifikationsmodul 303 kann zum Beispiel bestimmen, dass die Geräte 210 und 220 beide in der Lage sind, Navigationsfunktionen auszuführen, aber dass ihr Vertrauenslevel für das Gerät 210 größer ist als für das Gerät 220, und zwar basierend auf einem oder mehreren Faktoren (z. B. Hardwareleistungsfähigkeiten, historische Trainingsdaten und dergleichen). Historische Trainingsdaten schließen jede Information in Verbindung mit Geräten und/oder Diensten ein, die vorher durch das System für spezielle Sprachäußerungen oder jede andere nicht-gesprochene Interaktion, die eine Nutzerpräferenz, eine Systemleistung oder dergleichen anzeigt, verwendet werden. Das Geräteklassifikationsmodul 303 kann dann einen oder mehrere Lernalgorithmen auf die historischen Trainingsdaten anwenden, um eine Sprachäußerung zu klassifizieren.
-
Nach Empfangen der Sprachäußerung 41 klassifiziert das Serviceklassifikationsmodul 304 in ähnlicher Weise die Sprachäußerung 41, um einen Satz von Kandidaten der Dienste zu bestimmen, und zwar basierend auf dem Eignungskatalog bei 506 in 5. Mit Bezug zurück auf 3, verwendet dieses Modul, wie es bei dem Klassifikationsmodul 303 ist, die Liste der Geräte und Service, die durch den Eignungskatalog 307 gespeichert sind, um einen Satz (z. B. eine N-Bestenliste) der Dienste zu bestimmen, die konfiguriert sind, um die geforderte Aufgabe auszuführen. Gemäß einer Ausführungsform ist das Serviceklassifikationsmodul 304 konfiguriert, um einen Vertrauenslevel zu erzeugen, der mit jedem Service, der in dem Satz gelistet ist, assoziiert ist. Das Geräte-Klassifikationsmodul 303 kann zum Beispiel bestimmen, dass Dienste innerhalb beider Geräte 210 und 220 in der Lage sind, Navigationsfunktionen auszuführen, aber dass ihr Vertrauenslevel für das Gerät 220 höher ist als für das Gerät 210, und zwar basierend auf einem oder mehreren Faktoren (z. B. Softwarebegrenzungen und/oder historischen Trainingsdaten).
-
Das Verifikationsmodul 305, das kommunikativ mit beiden Modulen 303 und 304 gekoppelt ist, stimmt die Kandidaten (die möglicherweise in Konflikt stehen), welche durch das Geräteklassifikationsmodul 303 und das Serviceklassifikationsmodul 304 bei 508 in 5 bereitgestellt werden, miteinander ab. Das bedeutet, das Verifikationsmodul 305 ist konfiguriert, um ein Gerät oder Geräte aus dem Satz der Kandidaten der Geräte und der korrespondierenden Sprachdialogdienste aus dem Satz der Kandidaten der Sprachdialogdienste auszuwählen, um eine geordnete Liste von einem oder mehreren Geräte/Servicepaaren zu erzeugen. In einer Ausführungsform basiert diese Auswahl auf einem Verifikationskriterium, wie es unten genauer beschrieben wird. Das Verifikationskriterium kann auf wenigstens einem von den nachfolgenden basieren: den Hardwareleistungsfähigkeiten von jedem der Kandidaten der Geräte, den monetären Kosten von jedem der Kandidaten der Sprachdialogdienste, der Funktionalität von jedem der Kandidaten der Sprachdialogdienste.
-
Mit Bezug auf 3 ist das Verifikationsmodul 305 konfiguriert, um mit dem Dialogmanager 34 (einseitig) zu kommunizieren. Dieses ermöglicht, dass ein zusätzlicher Dialog mit dem Nutzer durchgeführt wird, um mögliche Zweideutigkeiten in der gewünschten Aufgabe (510) zu klären. Zum Beispiel kann der Nutzer gebeten werden, ausdrücklich auszusuchen (über gesprochenen Dialog oder auf andere Weise), welches Gerät 201 und/oder welcher Service für die Aufgabe verwendet werden sollte.
-
Nach Bestimmen des ausgewählten Geräts 201 und des ausgewählten Services wird diese Information durch den Dialogmanager 34 dem Geräte-Gate-Modul 306 zur Verfügung gestellt, welches daraufhin die Sprachäußerung mit dem ausgewählten Sprachdialogdienst bzw. -service auf dem ausgewählten Gerät verarbeitet. Das bedeutet, dass das Ergebnis oder die Ergebnisse von diesem Dienst verwendet werden, um die Aufgabe, die durch den Nutzer gefordert wird, auszuführen. Das Geräte-Gate-Modul 306 könnte zum Beispiel die Sprachäußerung 41 mit dem Navigationsdienst, der auf dem Gerät 210 resident ist, verarbeiten.
-
Da das Arbitrierungsmodul 302 effektiv jedes Gerät 201 als eine ”Blackbox” behandelt und mit einer offenen Rückkopplung betreibt bzw. steuert, um die Sprachäußerung an das ausgewählte Geräts weiterzuleiten, kann auf die Ausführungsform, die in 3 dargestellt wird, als ein ”Router-Modus”-Arbitrierungsmodul Bezug genommen werden.
-
Bezugnehmend nun auf 4 wird nun ein Arbitrierungsmodul 402 gemäß einer anderen Ausführungsform in Verbindung mit einem beispielhaften Arbitrierungsverfahren 600, das in 6 gezeigt wird, beschrieben. Wie gezeigt, umfasst das Arbitrierungsmodul 402 ein Geräte-Klassifikationsmodul 403, ein Service- bzw. Dienstklassifikationsmodul 404, ein Verifikationsmodul 405, ein Geräte-Applikations-Programmierungsschnittstellen-Modul bzw. API-Modul 406 (API, application programming interface) und einen Eignungskatalog 407. Somit ist die Ausführungsform, die in 4 gezeigt wird, ähnlich zu der, die in 3 gezeigt wird, mit der Ausnahme, dass sie ein Geräte-API-Modul 406 einschließt (das zu einer engeren Zusammenarbeit mit der internen Sprachdialogfunktionalität von jedem Gerät 201 befähigt ist). Weiterhin geht, wie es durch die Pfeile gezeigt wird, welche die unterschiedlichen Module verbinden, die Kommunikation von dem Modul 406 zu dem Dialogmanager 34 über zwei Wege, wie auch die Kommunikation von dem Geräte-API-Modul 406 zu den Geräten 201 und von dem Verifikationsmodul 305 zu dem Geräte-API-Modul 406. Während eines normalen Betriebs kann die Ausführungsform, die in 4 gezeigt wird, in einer Weise konsistent mit der 3 und der 5 arbeiten (nämlich in einem ”Router-Modus”). Wenn jedoch bestimmt wird, dass die Verifikation und/oder Klassifikation der Sprachäußerung falsch oder unbestimmt ist, dann kann das Verfahren, das in 6 gezeigt wird, durchgeführt werden. Genauer gesagt, wird die Sprachäußerung 41 zu zwei oder mehr Geräten 201 über die Geräte-API 406 gesendet und jene Geräte senden dann einen Konfidenzwert bzw. Vertrauenslevel, die mit der Erkennung der Sprachäußerung 41 bei 602 in 6 assoziiert sind, zurück. Die Geräte werden typischerweise auch eine Reaktion zurücksenden (z. B. eine Aufforderung).
-
Die Verifikation wird dann über das Verifikationsmodul 305 bei 604 basierend auf dem Vertrauenslevel, der von dem Gerät 201 empfangen wurde, ausgeführt. Das System bestimmt bei 605, ob die Zweideutigkeit bestehen bleibt. Wenn nicht, verwendet das System das ausgewählte Gerät und den ausgewählten Sprachdialogdienst bei 606 (und antwortet dem Nutzer mit der empfangenen Aufforderung, wenn überhaupt). Wenn die Zweideutigkeit bestehen bleibt, dann kann das Arbitrierungsmodul (durch den Dialogmanager 34) zusätzliche Informationen von dem Nutzer anfordern (610) und dann bei 608 fortfahren, bis die Zweideutigkeit zufriedenstellend gelöst ist. Da das Arbitrierungsmodul 402 den Dialogmanager 34 und die API 406 verwendet, um zusammenwirkend und direkt mit den Geräten 201 zu arbeiten, kann auf die Ausführungsform, die in 4 gezeigt wird, als ein Arbitrierungsmodul mit ”integrierten Modus” Bezug genommen werden.
-
In einer Ausführungsform werden Standardeinstellungen für eine Auswahl von Sprachdialogdiensten und assoziierten Geräten bereitgestellt. Derartige voreingestellte Präferenzeinstellungen werden dann modifiziert (nämlich die Präferenzen des Nutzers für bestimmte Aufgaben), und zwar basierend auf dem Verhalten des Nutzers. Das System könnte zum Beispiel die Präferenzen basierend auf dem Durchführen einer bestimmten Aufgabe durch den Nutzer unter Verwenden eines bestimmten Sprachdialogdienstes modifizieren. Der Nutzer kann dann aufgefordert werden, diese Präferenz zu sichern (z. B. ”Möchten Sie immer Adressenanfragen an Google Maps senden?”).
-
Beispielsweise zeigt der folgende Dialog unterschiedliche Anwendungsfälle. In jedem Fall bestimmt das Arbitrierungsmodul, welches Gerät und welcher Dialogservice (z. B. ein eingebautes Gerät oder ein Smartphone-Gerät) in Reaktion auf die Sprachäußerung des Nutzers anzuwenden sind.
Nutzer: ”Ich möchte eine Station, die auf Billy Joel basiert, hören.” Arbitrator: Leitet ein Tonsignal an das eingebaute Gerät des Fahrzeugs. (Das eingebaute Gerät stellt einen Stationsdienst bzw. -service bereit).
Nutzer: ”Ich möchte eine Station, die auf Billy Joel basiert, hören.” Arbitrator: ”Soll das eingebaute Gerät oder die Musikapplikation Deines Smartphones verwendet werden?”
(Dialogmanager löst die Zweideutigkeit durch Auffordern des Nutzers).
Nutzer: ”Ich möchte eine Station, die auf Billy Joel basiert, hören.” Arbitrator: Sendet die Äußerung simultan zu einer externen Applikation und einem eingebauten Gerät. Das eingebaute Gerät sendet eine positive Reaktion zurück, während die externe Applikation keinen geeigneten Kanal aufweist. Der Arbitrator verwendet das eingebaute Gerät.
(Dialogdienst, der basierend auf einer Geräte/Dienstreaktion ausgewählt wird).
Nutzer: ”Ich möchte eine Station, die auf Billy Joel basiert, auf Stitcher hören.” Der Nutzer wählt ausdrüclich das Gerät und den Dialogdienst (z. B. Stitcher oder irgendeinen ähnlichen Dienst, der jetzt bekannt ist oder später entwickelt wird).
Nutzer: ”Ich möchte eine Station, die auf Billy Joel basiert, hören.”
Arbitrator: Sucht eingebautes Gerät aus, weil es den kostengünstigsten Service bereitstellt.
(Auswahl basierend auf Kosten).
Nutzer: ”Führe mich zu einem Chinesischen Restaurant in Troy.”
Arbitrator: Leitet ein Tonsignal an Google Maps [oder einen ähnlichen Kartenservice, der jetzt bekannt ist oder später entwickelt wird] auf einem Smartphone, nicht an das eingebaute Navigationssystem, weil das letztere eine Suche nicht unterstützt – nur eine Navigation zu einer Adresse.
(Auswahl basierend auf der Verfügbarkeit einer Suchfunktionalität).
Nutzer: ”Rufe Paul Mazoyevsky an.”
Arbitrator: Sendet ein Tonsignal an ein eingebautes Gerät und eine Backend-Adressbucherkennung. Wählt das Backend aufgrund eines höheren Vertrauens, das vom Backend zurückgemeldet wird.
(Auswahl basierend auf einem Vertrauenslevel).
Nutzer: ”Weiter”
Arbitrator: Leitet eine Äußerung an das Musikabspielgerät zum Überspringen eines Titels und wählt nicht die ”nächste” Bildschirmseite.
(Auswahl basierend auf einem Kontext)
-
Im Allgemeinen können die Verfahren, die oben beschrieben werden, unter Verwenden jeden gewünschten Automatisierungsgrades eingesetzt werden. Das bedeutet zum Beispiel, die Arbitrierung kann erreicht werden: (a) automatisch (ohne Nutzereingabe), (b) automatisch, wobei aber dem Nutzer eine Gelegenheit zur Änderung gegeben wird, oder (c) automatisch, wobei aber dem Nutzer ermöglicht wird, zu bestätigen.
-
Während wenigstens eine beispielhafte Ausführungsform in der vorhergehenden detaillierten Beschreibung präsentiert wurde, sollte erwähnt sein, dass eine beträchtliche Anzahl von Variationen existiert. Es sollte auch erwähnt sein, dass die beispielhafte Ausführungsform oder die beispielhaften Ausführungsformen nur Beispiele sind, und es nicht beabsichtigt ist, den Umfang, die Anwendbarkeit oder die Konfiguration der Offenbarung in irgendeiner Weise zu begrenzen. Vielmehr wird die vorhergehende detaillierte Beschreibung dem Fachmann der Technik einen geeigneten Plan zum Ausführen der beispielhaften Ausführungsform oder den beispielhaften Ausführungsformen bereitstellen. Es sollte klar sein, dass unterschiedliche Änderungen in der Funktion und der Anordnung der Elemente durchgeführt werden können, ohne von dem Umfang der Offenbarung, wie er in den anhängenden Ansprüchen und den gesetzlichen Äquivalenten davon festgelegt ist, abzuweichen.
-
Beispiele:
-
Beispiel 1. Ein Verfahren zum Arbitrieren von Sprachdialogdiensten, wobei das Verfahren umfasst:
Bestimmen eines Eignungskatalogs, der mit einer Vielzahl von Geräten assoziiert ist, die innerhalb einer Umgebung zugänglich sind, wobei der Eignungskatalog eine Liste der Vielzahl von Geräten einschließt, die einer Liste von Sprachdialogdiensten zugeordnet ist, die durch jedes der Vielzahl der Geräte bereitgestellt werden;
Empfangen einer Sprachäußerung von einem Nutzer innerhalb der Umgebung;
Arbitrieren zwischen der Vielzahl von Geräten und den Sprachdialogdiensten in dem Eignungskatalog, um ein ausgewähltes Gerät und einen ausgewählten Dialogdienst zu bestimmen; und
Bearbeiten der Sprachäußerung mit dem ausgewählten Sprachdialogdienst auf dem ausgewählten Gerät.
-
Beispiel 2. Das Verfahren von Beispiel 1, wobei das Arbitrieren umfasst:
Klassifizieren der Sprachäußerung, um einen Satz von Kandidaten der Geräte aus der Vielzahl von Geräten und einen Satz von Sprachdialogdiensten basierend auf dem Eignungskatalog zu bestimmen; und
Bestimmen des ausgewählten Geräts aus dem Satz der Kandidaten der Geräte und des ausgewählten Sprachdialogservices aus der Liste der Kandidaten der Sprachdialogdienste basierend auf einem Verifikationskriterium.
-
Beispiel 3. Das Verfahren von einem der Beispiele 1–2, wobei das Verifikationskriterium einen Konfidenzwert bzw. Vertrauenslevel umfasst, der mit der Klassifikation der Sprachäußerung assoziiert ist.
-
Beispiel 4. Das Verfahren von einem der Beispiele 1–3, weiterhin umfassend ein Durchführen des Klassifizierens des Sprachdialogdienstes in Verbindung mit den Trainingsdaten, die mit einer früheren Klassifikationsdurchführung assoziiert sind, und/oder dem Nutzerverhalten.
-
Beispiel 5. Das Verfahren von einem der Beispiele 1–4, weiterhin umfassend, ein Bestimmen des ausgewählten Geräts und des ausgewählten Sprachdialogdienstes basierend auf einer Zusatzinformation, die vom Nutzer an gefordert wird.
-
Beispiel 6. Das Verfahren von einem der Beispiele 1–5, wobei die Umgebung eine Fahrzeugumgebung ist, und wobei die Vielzahl der Geräte wenigstens eines der folgenden aufweist: ein mobiles Gerät, das entfernbar innerhalb der Fahrzeugumgebung angeordnet ist, ein Gerät, das in die Fahrzeugumgebung eingebaut ist, und ein Gerät, das einen Netzwerkserver entfernt von der Fahrzeugumgebung umfasst.
-
Beispiel 7. Das Verfahren von einem der Beispiele 1–6, weiterhin umfassend:
Weiterleiten der Sprachäußerung zu einem ersten Sprachdialogdienst und zu einem zweiten Sprachdialogdienst innerhalb des Eignungskatalogs;
Empfangen eines ersten Konfidenzwertes bzw. Vertrauenslevels, der mit der Erkennung der Sprachäußerung, von dem ersten Sprachdialogdienst verbunden ist;
Empfangen eines zweiten Vertrauenslevels, der mit der Erkennung der Sprachäußerung von dem zweiten Sprachdialogdienst verbunden ist; und
Bestimmen des Verifikationskriteriums basierend wenigstens teilweise auf den ersten und zweiten Konfidenzwerten bzw. Vertrauenslevels.
-
Beispiel 8. Das Verfahren von einem der Beispiele 1–7, weiterhin umfassend:
Spezifizieren von Standardeinstellungen, die mit der Vielzahl von Geräten und den Sprachdialogdiensten assoziiert sind; und
Modifizieren der Standardeinstellungen basierend auf einem Nutzerverhalten.
-
Beispiel 9. Ein System für eine Sprachdialogarbitrierung, wobei das System umfasst:
ein Sprachverständnismodul, das konfiguriert ist, um eine Sprachäußerung, die von einem Nutzer innerhalb einer Umgebung empfangen wird, zu bearbeiten;
ein Arbitrierungsmodul, das kommunikativ mit dem Sprachverständnismodul gekoppelt ist, wobei das Arbitrierungsmodul konfiguriert ist, um einen Eignungskatalog zu bestimmen, der mit einer Vielzahl von Geräten assoziiert ist, die innerhalb der Umgebung zugänglich sind, wobei der Eignungskatalog eine Liste einer Vielzahl von Geräten einschließt, die einer Liste von Sprachdialogdiensten, die durch jedes der Vielzahl der Geräte bereitgestellt werden, zugeordnet sind; Empfangen der Sprachäußerung; Arbitrieren bzw. Vermitteln zwischen einer Vielzahl von Geräten und den Sprachdialogdiensten in dem Eignungskatalog, um ein ausgewähltes Gerät und einen ausgewählten Dialogdienst zu bestimmen; und Verarbeiten der Sprachäußerung mit dem ausgewählten Sprachdialogdienst auf dem ausgewählten Gerät.
-
Beispiel 10. Das System von Beispiel 9, wobei das Arbitrierungsmodul konfiguriert ist zum:
Klassifizieren der Sprachäußerung, um einen Satz von Kandidaten der Geräte aus der Vielzahl von Geräten und einen Satz der Sprachdialogdiensten basierend auf dem Eignungskatalog zu bestimmen; und
Bestimmen des ausgewählten Geräts aus dem Satz der Kandidaten der Geräte und dem ausgewählten Sprachdialogdienst von aus der Liste der Kandidaten der Sprachdialogservice, basierend auf einem Verifikationskriterium.
-
Beispiel 11. Das System von einem der Beispiele 9–10, wobei das Verifikationskriterium einen Vertrauenslevel umfasst, der mit der Klassifikation der Sprachäußerung assoziiert ist.
-
Beispiel 12. Das System von einem der Beispiele 9–11, wobei das Arbitrierungsmodul das Klassifizieren des Sprachdialogdienstes in Verbindung mit Trainingsdaten, die mit einer früheren Klassifikationsdurchführung assoziiert sind, und/oder dem Nutzerverhalten durchführt.
-
Beispiel 13. Das System von einem der Beispiele 9–12, wobei das Arbitrierungsmodul konfiguriert ist zum:
Weitergeben der Sprachäußerung an einen ersten Sprachdialogdienst und einen zweiten Sprachdialogdienst innerhalb des Eignungskatalogs;
Empfangen eines ersten Vertrauenslevels von dem ersten Sprachdialogdienst, der mit der Erkennung der Sprachäußerung assoziiert ist;
Empfangen eines zweiten Vertrauenslevels von dem zweiten Sprachdialogdienst, der mit der Erkennung der Sprachäußerung assoziiert ist; und
Bestimmen des Verifikationskriteriums basierend wenigstens teilweise auf den ersten und zweiten Vertrauenslevels.
-
Beispiel 14. Das System von einem der Beispiele 9–13, wobei das Arbitrierungsmodul konfiguriert ist zum:
Spezifizieren von Standardeinstellungen, die mit der Vielzahl von Geräten und den Sprachdialogdiensten assoziiert sind; und
Modifizieren von Standardeinstellungen basierend auf einem Nutzerverhalten.
-
Beispiel 15. Das System von einem der Beispiele 9–14, wobei das Arbitierungsmodul einen Geräteklassifizierer, einen Serviceklassifizierer und ein Verifikationsmodul umfasst.
-
Beispiel 16. Ein Arbitrierungsverfahren umfassend:
Festlegen eines Eignungskatalogs, der mit einer Vielzahl von Geräten assoziiert ist, die innerhalb eines Fahrzeugs zugänglich sind, wobei der Eignungskatalog eine Liste der Vielzahl von Geräten einschließt, die einer Liste von Sprachdialogdiensten, die durch jedes der Vielzahl der Geräte bereitgestellt werden, zugeordnet sind;
Empfangen der Sprachäußerung;
Arbitrieren zwischen der Vielzahl von Geräten und den Sprachdialogdiensten in dem Eignungskatalog, um ein ausgewähltes Gerät und einen ausgewählten Dialogdienst zu bestimmen, wobei das Arbitrieren ein Klassifizieren der Sprachäußerung einschließt, um einen Satz von Kandidaten der Geräte aus der Vielzahl von Geräten und einen Satz der Sprachdialogdienste basierend auf dem Eignungskatalog festzulegen, und Bestimmen des ausgewählten Geräts aus dem Satz der Kandidaten der Geräte und des gewählten Sprachdialogdienstes aus der Liste der Kandidaten der Sprachdialogdienste basierend auf einem Verifikationskriterium; und
Bearbeiten der Sprachäußerung mit dem ausgewählten Sprachdialogdienst auf dem ausgewählten Gerät.
-
Beispiel 16. Das Verfahren von Beispiel 15, wobei das Verifikationskriterium einen Konfidenzwert bzw. Vertrauenslevel umfasst, der mit der Klassifikation der Sprachäußerung assoziiert ist.
-
Beispiel 17. Das Verfahren von einem der Beispiele 15–16, weiterhin umfassend, ein Ausführen des Klassifizierens des Sprachdialogdienstes in Verbindung mit Trainingsdaten, die mit einer früheren Klassifikationsdurchführung assoziiert sind, und/oder dem Nutzerverhalten.
-
Beispiel 18. Das Verfahren von einem der Beispiele 15–17, weiterhin umfassend:
Spezifizieren von Standardeinstellungen, die mit der Vielzahl von Geräten und den Sprachdialogdiensten assoziiert sind; und
Modifizieren der Standardeinstellungen basierend auf einem Nutzerverhalten.
-
Beispiel 19. Das Verfahren von einem der Beispiele 15–18, weiterhin umfassend:
Weitergeben der Sprachäußerung an einen ersten Sprachdialogdienst und einen zweiten Sprachdialogdienst innerhalb des Eignungskatalogs;
Empfangen eines ersten Vertrauenslevels, der mit der Erkennung der Sprachäußerung assoziiert ist, von dem ersten Sprachdialogdienst;
Empfangen eines zweiten Vertrauenslevels, der mit der Erkennung der Sprachäußerung assoziiert ist, von dem zweiten Sprachdialogdienst; und
Bestimmen des Verifikationskriteriums basierend wenigstens teilweise auf den ersten und zweiten Vertrauenslevels.
-
Beispiel 20. Das Verfahren von Beispiel 19, wobei auf die Schritte des Empfangens des ersten Vertrauenslevels von dem ersten Sprachdialogdienst und des Empfangens des zweiten Vertrauenslevels von dem zweiten Sprachdialogdienst ein oder mehrere der folgenden Schritte folgen: Auffordern des Nutzers für eine zusätzliche Eingabe und Bereitstellen der zusätzlichen Äußerungen an beide Dienste gleichzeitig und Auswahl eines der Dienste, wenn das Vertrauen, das durch den Dienst zurückgegeben wird, ausreichend höher als das von dem anderen Dienst ist.