DE102012019178A1 - Verwendung von Kontextinformationen zum Erleichtern der Verarbeitung von Befehlen bei einem virtuellen Assistenten - Google Patents

Verwendung von Kontextinformationen zum Erleichtern der Verarbeitung von Befehlen bei einem virtuellen Assistenten Download PDF

Info

Publication number
DE102012019178A1
DE102012019178A1 DE102012019178A DE102012019178A DE102012019178A1 DE 102012019178 A1 DE102012019178 A1 DE 102012019178A1 DE 102012019178 A DE102012019178 A DE 102012019178A DE 102012019178 A DE102012019178 A DE 102012019178A DE 102012019178 A1 DE102012019178 A1 DE 102012019178A1
Authority
DE
Germany
Prior art keywords
user
context
input
context information
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102012019178A
Other languages
English (en)
Inventor
Thomas Robert Gruber
Christopher Dean Brigham
Daniel S. Keen
Gregory Novick
Benjamin S. Phipps
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/250,854 external-priority patent/US9858925B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE102012019178A1 publication Critical patent/DE102012019178A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/227Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of the speaker; Human-factor methodology
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • Digital Computer Display Output (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

Ein virtueller Assistent verwendet Kontextinformation, um natürliche Sprache oder Gesteneingabe eines Benutzers zu ergänzen. Kontext hilft, die Absicht des Benutzers klarzustellen, und die Anzahl an Kandidateninterpretationen der Benutzereingabe zu reduzieren, und reduziert die Notwendigkeit für den Benutzer, übermäßige Klarstellungseingaben bereitzustellen. Kontext kann jegliche verfügbare Information beinhalten, die von dem Assistenten genutzt werden kann, um ausdrückliche Benutzereingabe zu ergänzen zum Beschränken eines Informationsverarbeitungsproblems und/oder zum Personalisieren von Ergebnissen. Kontext kann verwendet werden, um Lösungen während unterschiedlicher Phasen der Verarbeitung zu beschränken, einschließlich beispielsweise Spracherkennung, Verarbeitung natürlicher Sprache, Task-Fluss-Verarbeitung und Dialoggenerierung.

Description

  • Querverweise zu verbundenen Anmeldungen
  • Diese Anmeldung beansprucht als eine Continuation-in-part die Priorität der US-Utility Application Anmeldenr. 12/479,477, bezeichnet „Contextual Voice Commands” („Kontextabhängige Sprachbefehle”), Aktenzeichen des Vertreters P7393US1, eingereicht am 5. Juni 2009, welche hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird.
  • Diese Anmeldung beansprucht weiterhin als Continuation-in-part die Priorität der US-Utility Application Anmeldenr. 12/987,982, bezeichnet „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters P10575US1, eingereicht am 10. Januar 2011, welche hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird.
  • US-Utility Application mit Anmeldenr. 12/987,982 beansprucht die Priorität der US-Provisional Patent Application mit Anmeldenr. 61/295,774, bezeichnet „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters SIRIP003P, eingereicht am 18. Januar 2010, welche hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird.
  • Diese Anmeldung beansprucht weiterhin die Priorität der US-Provisional Application mit Anmeldenr. 61/493,201, bezeichnet „Generating and Processing Data Items That Represent Tasks to Perform” („Generieren und Verarbeiten von Daten-Items, die auszuführende Tasks darstellen”), Aktenzeichen des Vertreters P11337P1, eingereicht am 3. Juni 2011, welche hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird.
  • Diese Anmeldung ist verbunden mit US-Utility Application mit Anmeldenr. ___/____, bezeichnet „Generating and Processing Task Items That Represent Tasks to Perform” („Generieren und Verarbeiten von Task-Items, die auszuführende Tasks darstellen”), Aktenzeichen des Vertreters P11337US1, eingereicht am gleichen Tag wie die vorliegende Anmeldung, welche hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird.
  • Diese Anmeldung ist verbunden mit US-Utility Application mit Anmeldenr. ___/_____, bezeichnet „Automatically Adapting User Interfaces for Hands-Free Interaction” („Automatisches Anpassen von Benutzerschnittstellen zur handfreien Interaktion”), Aktenzeichen des Vertreters P11357US1, eingereicht am gleichen Tag wie die vorliegende Anmeldung, welche hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird.
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf virtuelle Assistenten, und spezifischer auf Mechanismen zum Verbessern der Interpretation und Verarbeitung von Befehlen, die einem solchen Assistenten bereitgestellt werden.
  • Hintergrund der Erfindung
  • Heutige elektronische Vorrichtungen sind in der Lage, auf eine große, wachsende und vielfältige Zahl von Funktionen, Diensten und Informationen zuzugreifen, sowohl über das Internet wie auch aus anderen Quellen. Die Funktionalität für solche Geräte wächst schnell an, da viele Vorrichtungen von Konsumenten, Smartphones, Tablet-Computer und Ähnliches in der Lage sind, Softwareanwendungen auszuführen, um verschiedene Tasks durchzuführen und unterschiedliche Typen von Information zur Verfügung zu stellen. Häufig weist jede(s) Anwendung, Funktion, Webseite oder Merkmal seine/ihre eigene Benutzerschnittstelle und seine/ihre eigenen Bedienungsparadigmen auf, wobei viele hiervon für Benutzer mühsam zu erlernen oder erdrückend sind. Zusätzlich haben viele Benutzer sogar Schwierigkeiten, zu entdecken, welche Funktionalität und/oder Information auf ihren elektronischen Vorrichtungen oder auf verschiedenen Webseiten verfügbar ist; folglich können solche Benutzer frustriert oder erdrückt werden, oder können schlicht nicht in der Lage sein, die ihnen zur Verfügung stehenden Ressourcen in einer effektiven Weise zu nutzen.
  • Insbesondere unbedarfte Benutzer oder Personen, die in irgendeiner Weise beeinträchtigt oder behindert sind, und/oder älter, beschäftigt, abgelenkt sind, und/oder ein Fahrzeug bedienen, können Schwierigkeiten haben, die Schnittstellen ihrer elektronischen Vorrichtungen effektiv zu bedienen und/oder Onlinedienste effektiv in Anspruch zu nehmen. Bei solchen Benutzern ist es besonders wahrscheinlich, dass sie Schwierigkeiten mit der großen Anzahl an vielfältigen und inkonsistenten Funktionen, Anwendungen und Webseiten, die zu ihrer Verwendung verfügbar sein können, haben.
  • Dementsprechend sind bestehende Systeme häufig schwierig zu benutzen und zu navigieren und präsentieren den Benutzern häufig inkonsistente und erdrückende Schnittstellen, die häufig die Benutzer davon abhalten, die Technologie effektiv zu verwenden.
  • Ein intelligenter, automatisierter Assistent, welcher hierin auch als ein virtueller Assistent bezeichnet wird, kann eine verbesserte Schnittstelle zwischen Mensch und Computer zur Verfügung stellen. Ein solcher Assistent, der implementiert werden kann, wie beschrieben in der verbundenen US-Utility Application mit Anmeldenr. 12/987,982, betreffend „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters P10575US1, eingereicht am 10. Januar 2011, welche hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird, erlaubt Benutzern mit einer Vorrichtung oder einem System unter Verwendung natürlicher Sprache in gesprochener und/oder Textform zu interagieren. Ein solcher Assistent interpretiert die Benutzereingaben, operationalisiert die Benutzerabsicht in Tasks und Parameter für diese Tasks, führt Dienste aus, um diese Tasks zu unterstützen und produziert Ausgaben, die für den Benutzer verständlich sind.
  • Ein virtueller Assistent kann auf jegliche aus einer Reihe von Informationsquellen zum Verarbeiten von Benutzereingaben zurückgreifen, einschließlich beispielsweise Wissensbasen, Modelle und/oder Daten. In vielen Fällen ist die Eingabe des Benutzers allein nicht ausreichend, um die Benutzerabsicht und den auszuführenden Task klar zu definieren. Dies kann auf das Rauschen in dem Eingabestrom, individuelle Unterschiede zwischen den Benutzern und/oder der inhärenten Mehrdeutigkeit von natürlicher Sprache zurückzuführen sein. Beispielsweise könnte der Benutzer einer Textnachrichtenanwendung auf einem Telefon einen virtuellen Assistenten aufrufen und den Befehl „call her” („rufe sie an”) sprechen. Während ein solcher Befehl völlig verständliches Englisch darstellt, handelt es sich nicht um eine präzise, ausführbare Aussage, da es viele Interpretationen und mögliche Lösungen für diese Anforderung gibt. Folglich mag ein virtueller Assistent, ohne weitere Information, nicht in der Lage sein, eine solche Eingabe korrekt zu interpretieren und zu verarbeiten. Mehrdeutigkeit dieses Typs kann zu Fehlern führen, dazu, dass falsche Aktionen ausgeführt werden und/oder dazu, dass der Benutzer übermäßig mit Anforderungen belastet wird, seine Eingabe klarzustellen.
  • Zusammenfassung
  • Bei verschiedenen Ausführungsformen der vorliegenden Erfindung verwendet ein virtueller Assistent Kontextinformation (hierin auch als ”Kontext” bezeichnet), um die natürliche Sprache oder Gesteneingabe eines Benutzers zu ergänzen. Dies hilft, die Benutzerabsicht klarzustellen und die Anzahl an Kandidateninterpretationen der Eingabe des Benutzers zu reduzieren, und verringert den Bedarf für den Benutzer, übermäßige Klarstellungseingaben zur Verfügung zu stellen. Der Kontext kann jede verfügbare Information aufweisen, die von dem Assistenten verwendbar ist, um die ausdrückliche Benutzereingabe zu ergänzen, um ein Informationsverarbeitungsproblem zu beschränken und/oder die Ergebnisse zu personalisieren. Enthält beispielsweise die Eingabe des Benutzers ein Pronomen (so wie „sie”” in dem Befehl „Rufe sie an”), kann der virtuelle Assistent den Kontext verwenden, um denjenigen herauszufinden, auf den sich das Pronomen bezieht, beispielsweise um die Identität der Person festzustellen, die anzurufen ist und/oder die zu verwendende Telefonnummer. Weitere Verwendung von Kontext wird hierin beschrieben.
  • Gemäß verschiedener Ausführungsformen der vorliegenden Erfindung kann jeder aus einer Reihe von Mechanismen zum Akquirieren und Anwenden von Kontextinformation implementiert werden, um Berechnungen in einem virtuellen Assistenten, der auf einer elektronischen Vorrichtung implementiert ist, durchzuführen. Bei verschiedenen Ausführungsformen stellt der virtuelle Assistent einen intelligenten, automatisierten Assistenten dar, wie er beschrieben ist in der US-Utility Application mit Anmeldenr. 12/987,982 betreffend „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters P10575US1, eingereicht am 10. Januar 2011, welche in ihrer Gesamtheit durch Bezugnahme hierin eingebunden ist. Ein solcher Assistent interagiert mit dem Benutzer in einer integrierten, interaktiven Weise unter Verwendung eines natürlichen Sprachdialogs und ruft gegebenenfalls externe Dienste auf, um eine Information zu erhalten oder verschiedene Aktionen durchzuführen. Gemäß der hierin beschriebenen Techniken wird Kontextinformation in einem solchen Assistenten beispielsweise verwendet, um die Mehrdeutigkeit beim Durchführen von Informationsverarbeitungsfunktionen wie beispielsweise Spracherkennung, Verarbeitung natürlicher Sprache, Task-Fluss-Verarbeitung und Dialogerzeugung zu reduzieren.
  • Gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung kann ein virtueller Assistent eingerichtet, gestaltet und/oder betreibbar sein, Kontext beim Durchführen mehrerer unterschiedlicher Typen von Operationen, Funktionalitäten und/oder Merkmalen zu verwenden, und/oder eine Vielzahl von Merkmalen, Operationen und Anwendungen auf einer elektronischen Vorrichtung, auf welcher dieser installiert ist, zu kombinieren. In einigen Ausführungsformen kann ein virtueller Assistent der vorliegenden Erfindung beim Durchführen beliebiger oder aller nachfolgenden Aktionen Kontext verwenden: aktives Auslösen von Eingaben eines Benutzers, Interpretieren von Benutzerabsicht, Eindeutig-Machen zwischen konkurrierenden Interpretationen, Anfordern und Empfangen von klarstellenden erforderlichen Informationen und/oder Ausführen (oder Initiieren) von Aktionen basierend auf der erkannten Absicht.
  • Aktionen können beispielsweise durch das Aktivieren von und/oder dem Interagieren mit beliebigen Anwendungen oder Diensten, die auf einer elektronischen Vorrichtung verfügbar sind, wie auch Dienste, die über ein elektronisches Netzwerk wie z. B. dem Internet verfügbar sind, durchgeführt werden. Bei verschiedenen Ausführungsformen kann ein solches Aktivieren von externen Diensten mittels Anwendungsprogrammierschnittstellen (APIs) oder mittels jeglichem anderen geeigneten Mechanismus ausgeführt werden. Auf diese Weise kann ein virtueller Assistent, der gemäß den verschiedenen Ausführungsformen der vorliegenden Erfindung implementiert ist, die Erfahrung des Benutzers im Hinblick auf viele unterschiedliche Anwendungen und Funktionen einer elektronischen Vorrichtung, und im Hinblick auf Dienste, die über das Internet verfügbar sind, vereinheitlichen, vereinfachen und verbessern. Dem Benutzer kann dadurch die Last abgenommen werden, zu erlernen, welche Funktionalität auf der Vorrichtung und von Web-verbundenen Diensten verfügbar ist, wie mit solchen Diensten zu interagieren ist, um zu erhalten, was er oder sie will, und wie die Ausgabe, die von diesen Diensten erhalten wird, zu verstehen ist; vielmehr kann der Assistent der vorliegenden Erfindung als ein Bindeglied zwischen dem Benutzer und solchen unterschiedlichen Diensten handeln.
  • Darüber hinaus kann in verschiedenen Ausführungsformen der virtuelle Assistent der vorliegenden Erfindung eine Konversationsschnittstelle zur Verfügung stellen, die der Benutzer intuitiver und weniger beschwerlich als herkömmliche grafische Benutzerschnittstellen finden kann. Der Benutzer kann in einer Form des interaktiven Dialogs mit dem Assistenten unter Verwendung beliebiger Mechanismen aus einer Reihe von verfügbaren Ein- und Ausgabemechanismen aktiv werden, wie beispielsweise Sprache, grafische Benutzerschnittstellen (Tasten und Links), Texteingabe und Ähnliches. Das System kann unter Verwendung jeglicher aus einer Reihe unterschiedlicher Plattformen implementiert werden, wie beispielsweise Vorrichtungs-APIs, das Web, E-Mail und Ähnliches, oder jegliche Kombination daraus. Anforderungen für zusätzliche Eingabe können dem Benutzer in dem Kontext einer solchen Konversation präsentiert werden. Kurz- und Langzeitspeicher können aktiviert werden, so dass die Benutzereingabe im richtigen Kontext interpretiert werden kann, angesichts von früheren Ereignissen und Kommunikationen innerhalb einer gegebenen Sitzung, wie auch angesichts von historischen Informationen und Profilinformationen über den Benutzer.
  • Zusätzlich kann bei verschiedenen Ausführungsformen die Kontextinformation, die aus einer Benutzerinteraktion mit einem Merkmal, einer Operation oder Anwendung abgeleitet wurde, verwendet werden, um die Bedienung von anderen Merkmalen, Operationen oder Anwendungen auf der Vorrichtung oder auf anderen Vorrichtungen zu optimieren. Beispielsweise kann der virtuelle Assistent den Kontext eines Telefonanrufes (wie beispielsweise die angerufene Person) nutzen, um das Initiieren einer Textnachricht zu optimieren (beispielsweise um zu bestimmen, dass die Textnachricht zu der gleichen Person gesendet werden soll, ohne dass der Benutzer den Empfänger der Textnachricht explizit spezifizieren muss). Der virtuelle Assistent der vorliegenden Erfindung kann dabei Instruktionen wie beispielsweise „Sende ihm eine Textnachricht” interpretieren, wobei das „ihm” gemäß Kontextinformation, die aus einem gegenwärtigen Telefonanruf und/oder aus jeglichem Merkmal, jeglicher Bedienung oder Anwendung auf der Vorrichtung abgeleitet wird, interpretiert wird. Bei verschiedenen Ausführungsformen berücksichtigt der virtuelle Assistent verschiedene Typen von verfügbaren Kontextdaten, um zu bestimmen, welcher Adressbuchkontakt zu verwenden ist, welche Kontaktdaten zu verwenden sind, welche Telefonnummer für den Kontakt zu verwenden ist und Ähnliches, so dass der Benutzer solche Informationen nicht manuell nochmals spezifizieren muss.
  • Kontextinformationsquellen beinhalten beispielsweise und ohne Einschränkung: den gegenwärtigen Zustand einer Vorrichtung, die als eine Schnittstelle zu dem Assistenten verwendet wird, wie beispielsweise die gegenwärtige Zeit, den Ort, die Anwendung oder das Datenobjekt; persönliche Daten wie beispielsweise ein Adressbuch des Benutzers, Kalender und Anwendungsverwendungshistorie; und den Zustand des Dialogs zwischen dem Benutzer und dem virtuellen Assistenten, wie beispielsweise zuletzt erwähnte Personen und/oder Orte.
  • Der Kontext kann für eine Vielfalt von Berechnungen und Rückschlüsse bei der Bedienung des virtuellen Assistenten angewendet werden. Beispielsweise kann der Kontext verwendet werden, um die Mehrdeutigkeit zu reduzieren, oder anderweitig die Anzahl von Lösungen zu beschränken bei Verarbeitung der Benutzereingabe. Der Kontext kann folglich verwendet werden, um die Lösungen während verschiedener Phasen der Verarbeitung zu beschränken, einschließlich beispielsweise und ohne Einschränkung:
    • • Spracherkennung – Empfangen von Spracheingabe und Generieren von Kandidateninterpretationen als Text, beispielsweise „Rufe sie an” („call her”), „Kragen” („collar”) und „Rufe Herb an” („call Herb”). Kontext kann verwendet werden, um einzuschränken, welche Wörter und Phrasen von einem Spracherkennungsmodul berücksichtigt werden, wie sie eingestuft werden und welche als oberhalb eines Schwellwertes zur Berücksichtigung akzeptiert werden. Beispielsweise kann das Adressbuch des Benutzers persönliche Namen einem anderweitig allgemeinsprachigen Modell von Sprache hinzufügen, so dass diese Namen erkannt werden können und ihnen Vorrang gegeben werden kann.
    • • Natürliche Sprachverarbeitung (Natural Language Processing, NLP) – Parsen von Text und Assoziieren der Wörter mit syntaktischen und semantischen Rollen, beispielsweise Bestimmen, dass die Benutzereingabe das Durchführen eines Telefonanrufes zu einer Person, welche durch das Pronomen „sie” bezeichnet wurde, betrifft, und Auffinden einer spezifischen Datendarstellung für diese Person. Beispielsweise kann der Kontext einer Textnachrichtenanwendung helfen, die Interpretation von „sie” einzuschränken, so dass gemeint ist „die Person mit der ich mich über Textnachricht unterhalte”.
    • • Task-Fluss-Verarbeitung – Identifizierung eines Tasks eines Benutzers, von Taskschritten und Task-Parametern, die verwendet werden, um den Task zu unterstützen, beispielsweise, welche Telefonnummer für die Person, die als „sie” bezeichnet wurde, zu verwenden ist. Erneut kann der Kontext der Textnachrichtenanwendung die Interpretation der Telefonnummer einschränken, um anzuzeigen, dass das System die gegenwärtig oder kürzlich für eine Textnachrichtenunterhaltung verwendete Nummer verwenden soll.
    • • Dialoggenerierung – Generieren von Antworten des Assistenten als Teil einer Unterhaltung mit dem Benutzer über ihre Task, beispielsweise um die Benutzerabsicht mit der Antwort „OK, ich werde Rebecca auf ihrem Mobiltelefon... anrufen” zu paraphrasieren. Das Ausmaß an Wortfülle und informellem Umgangston sind Wahlmöglichkeiten, die sich an Kontextinformation orientieren können.
  • Bei verschiedenen Ausführungsformen kann der virtuelle Assistent der vorliegenden Erfindung verschiedene Merkmale und Operationen einer elektronischen Vorrichtung steuern. Beispielsweise kann der virtuelle Assistent Dienste, die eine Schnittstelle mit Funktionalität und Anwendungen auf einer Vorrichtung haben, über APIs oder über andere Mittel aufrufen, um so Funktionen und Operationen auszuführen, die anderweitig unter Verwendung einer konventionellen Benutzerschnittstelle auf der Vorrichtung initiiert werden könnten. Solche Funktionen und Operationen können beispielsweise beinhalten: Einstellen eines Alarms, Durchführen eines Telefonanrufs, Senden einer Textnachricht oder E-Mail-Nachricht, Hinzufügen eines Kalenderereignisses und Ähnliches. Solche Funktionen und Operationen können als Add-on-Funktionen in dem Kontext eines interaktiven Dialogs zwischen einem Benutzer und dem Assistenten ausgeführt werden. Solche Funktionen und Operationen können durch den Benutzer in dem Kontext eines solchen Dialogs spezifiziert werden, oder sie können automatisch basierend auf dem Kontext des Dialogs ausgeführt werden. Ein Fachmann wird erkennen, dass der Assistent dabei als ein Steuermechanismus zum Initiieren und Steuern verschiedener Operationen auf der elektronischen Vorrichtung verwendet werden kann, welcher als eine Alternative zu konventionellen Mechanismen wie beispielsweise Tasten oder grafische Benutzerschnittstellen verwendet werden kann. Wie hierin beschrieben kann Kontextinformation verwendet werden, um über eine solche Verwendung des virtuellen Assistenten als einen Steuermechanismus zu informieren und diese zu verbessern.
  • Kurze Beschreibung der Zeichnungen
  • Die beigefügten Zeichnungen illustrieren mehrere Ausführungsformen der Erfindung und dienen, zusammen mit der Beschreibung, dazu, die Prinzipien der Erfindung gemäß der Ausführungsformen zu erklären. Ein Fachmann wird erkennen, dass die bestimmten in den Zeichnungen illustrierten Ausführungsformen lediglich beispielhaft sind, und sollen nicht den Bereich der vorliegenden Erfindung beschränken.
  • 1 ist ein Blockdiagramm, welches einen virtuellen Assistenten und einige Beispiele von Quellen von Kontext zeigt, die seine Operation gemäß einer Ausführungsform beeinflussen können.
  • 2 ist ein Flussdiagramm, welches ein Verfahren zur Verwendung von Kontext bei verschiedenen Stufen der Verarbeitung in einem virtuellen Assistenten zeigt, gemäß einer Ausführungsform.
  • 3 ist ein Flussdiagramm, welches ein Verfahren zur Verwendung von Kontext bei der Ermittlung und Interpretation von Sprache zeigt, gemäß einer Ausführungsform.
  • 4 ist ein Flussdiagramm, welches ein Verfahren zur Verwendung von Kontext bei natürlicher Sprachverarbeitung zeigt, gemäß einer Ausführungsform.
  • 5 ist ein Flussdiagramm, welches ein Verfahren zur Verwendung von Kontext bei Task-Fluss-Verarbeitung zeigt, gemäß einer Ausführungsform.
  • 6 ist ein Blockdiagramm, welches ein Beispiel von Quellen von Kontext, die zwischen einem Client und Server verteilt sind, zeigt, gemäß einer Ausführungsform.
  • 7a bis 7d sind Ereignisdiagramme, welche Beispiele von Mechanismen zum Erhalten und Koordinaten von Kontextinformation gemäß verschiedener Ausführungsformen zeigen.
  • 8a bis 8d zeigen Beispiele von verschiedenen Darstellungen von Kontextinformation wie sie in Verbindung mit verschiedenen Ausführungsformen der vorliegenden Erfindung verwendet werden kann.
  • 9 zeigt ein Beispiel einer Konfigurationstabelle, die Kommunikations- und Caching-Strategien für verschiedene Kontextinformationsquellen spezifiziert, gemäß einer Ausführungsform.
  • 10 ist ein Ereignisdiagramm, welches ein Beispiel zum Zugreifen auf die in 9 konfigurierten Kontextinformationsquellen während der Verarbeitung einer Interaktionssequenz zeigt, gemäß einer Ausführungsform.
  • 11 bis 13 stellen eine Serie von Bildschirmkopien dar, die ein Beispiel der Verwendung von Anwendungskontext bei einem Textnachrichtenbereich zeigt, um einen Bezug für ein Pronomen abzuleiten, gemäß einer Ausführungsform.
  • 14 ist eine Bildschirmkopie, die einen virtuellen Assistenten darstellt, der zum Eindeutig-Machen eines Namens auffordert, gemäß einer Ausführungsform.
  • 15 ist eine Bildschirmkopie, die einen virtuellen Assistenten darstellt, der Dialogkontext verwendet, um den Ort für einen Befehl zu erschließen, gemäß einer Ausführungsform.
  • 16 ist eine Bildschirmkopie, die ein Beispiel der Verwendung einer Telefon-Favoriten-Liste als eine Quelle von Kontext zeigt, gemäß einer Ausführungsform.
  • 17 bis 20 stellen eine Serie von Bildschirmkopien dar, die ein Beispiel der Verwendung von gegenwärtigem Anwendungskontext zeigen, um einen Befehl zu interpretieren und zu operationalisieren, gemäß einer Ausführungsform.
  • 21 ist eine Bildschirmkopie, die ein Beispiel der Verwendung des gegenwärtigen Anwendungskontext zeigt, um einen Befehl zu interpretieren, der eine unterschiedliche Anwendung aufruft.
  • 22 bis 24 sind eine Serie von Bildschirmkopien, die ein Beispiel der Verwendung von Ereigniskontext in der Form einer eingehenden Textnachricht zeigen, gemäß einer Ausführungsform.
  • 25A und 25B sind eine Serie von Bildschirmkopien, die ein Beispiel der Verwendung von vorangehendem Dialogkontext zeigen, gemäß einer Ausführungsform.
  • 26A und 26B sind Bildschirmkopien, die ein Beispiel einer Benutzerschnittstelle zur Auswahl zwischen Kandidateninterpretationen zeigen, gemäß einer Ausführungsform.
  • 27 ist ein Blockdiagramm, welches ein Beispiel einer Ausführungsform eines virtuellen Assistenz-Systems zeigt.
  • 28 ist ein Blockdiagramm, welches eine Rechenvorrichtung zeigt, die geeignet ist, zumindest einen Teil eines virtuellen Assistenten nach zumindest einer Ausführungsform zu implementieren.
  • 29 stellt ein Blockdiagramm dar, welches eine Architektur zum Implementieren von zumindest einem Teil eines virtuellen Assistenten auf einem unabhängigen Computersystem zeigt, gemäß zumindest einer Ausführungsform.
  • 30 stellt ein Blockdiagramm dar, welches eine Architektur zum Implementieren von zumindest einem Teil eines virtuellen Assistenten auf einem verteilten Rechennetzwerk zeigt, gemäß zumindest einer Ausführungsform.
  • 31 stellt ein Blockdiagramm dar, welches eine Systemarchitektur zeigt, die mehrere unterschiedliche Typen von Clients und Operationsmodi zeigt.
  • 32 stellt ein Blockdiagramm dar, welches einen Client und einen Server zeigt, die miteinander kommunizieren, um die vorliegende Erfindung gemäß einer Ausführungsform zu implementieren.
  • Detaillierte Beschreibung der Ausführungsformen
  • Gemäß verschiedener Ausführungsformen der vorliegenden Erfindung wird eine Vielfalt von Kontextinformationen erfasst und angewendet, um Informations-Verarbeitungs-Funktionen zur Unterstützung der Operationen eines virtuellen Assistenten auszuführen. Für die Zwecke der Beschreibung ist der Begriff „virtueller Assistent” äquivalent zu dem Begriff „intelligenter automatisierter Assistent”, wobei sich beide auf jegliches Informations-Verarbeitungs-System beziehen, welches eine oder mehrere der folgenden Funktionen ausführt:
    • • Interpretieren von menschlicher Spracheingabe in gesprochener Form und/oder Textform;
    • • Operationalisieren einer Darstellung einer Absicht eines Benutzers in eine Form, die ausgeführt werden kann, wie beispielsweise eine Darstellung eines Tasks mit Schritten und/oder Parametern;
    • • Ausführen von Task-Darstellungen, durch Aufrufen von Programmen, Methoden, Diensten, APIs und Ähnliches; und
    • • Generieren von Ausgabe-Antworten für den Benutzer in Sprachform und/oder grafischer Form.
  • Ein Beispiel eines solchen virtuellen Assistenten ist in der verbundenen US-Utility Application mit Anmeldenr. 12/987,982, betreffend „Intelligent Automated Assistant” („Intelligenter Automatisierter Assistent”), Aktenzeichen des Vertreters P10575US1, eingereicht am 10. Januar 2011, beschrieben, wobei die gesamte Offenbarung dieser Anmeldung durch Bezugnahme hierin eingebunden ist.
  • Verschiedene Techniken werden nun im Einzelnen unter Bezugnahme auf die beispielhaften Ausführungsformen, wie sie in den beigefügten Zeichnungen dargestellt sind, beschrieben. In der nachfolgenden Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, um ein tiefgründiges Verständnis von einem oder mehreren hierin beschriebenen oder referenzierten Aspekten und/oder Merkmalen bereitzustellen. Es wird jedoch einem Fachmann offensichtlich sein, dass ein oder mehrere der hierin beschriebenen oder referenzierten Aspekte und/oder Merkmale ausgeführt werden können, ohne einige oder all diese spezifischen Einzelheiten. Bei anderen Gelegenheiten wurden wohl bekannte Prozessschritte und/oder Strukturen nicht im Einzelnen beschrieben, um einige der hierin beschriebenen oder referenzierten Aspekte und/oder Merkmale nicht unklar zu machen.
  • Eine oder mehrere unterschiedliche Erfindungen können in der vorliegenden Anmeldung beschrieben sein. Weiterhin können zahlreiche Ausführungsformen für eine oder mehrere der hierin beschriebenen Erfindung(en) in dieser Patentanmeldung beschrieben sein, und sind nur für erklärende Zwecke dargestellt. Die beschriebenen Ausführungsformen sollen nicht in irgendeinem Sinne beschränkend sein. Eine oder mehrere der Erfindung(en) können breit für zahlreiche Ausführungsformen anwendbar sein, wie aus der Offenbarung bereits offensichtlich ist. Diese Ausführungsformen werden in ausreichenden Einzelheiten beschrieben, um den Fachleuten zu ermöglichen, eine oder mehrere der Erfindung(en) auszuführen, und es soll verstanden werden, dass andere Ausführungsformen verwendet werden können, sowie, dass strukturelle, logische, Software-, elektrische und andere Änderungen gemacht werden können, ohne von dem Bereich der einen oder mehreren der Erfindung(en) abzurücken. Dementsprechend werden die Fachleute erkennen, dass die eine oder die mehreren der Erfindung(en) mit verschiedenen Modifikationen und Veränderungen ausgeführt werden können. Besondere Merkmale von einer oder mehrerer der Erfindung(en) können unter Bezugnahme auf eine oder mehrere besondere Ausführungsformen oder Figuren beschrieben sein, die einen Teil der vorliegenden Offenbarung darstellen und in welchen zum Zwecke der Darstellung spezifische Ausführungsformen von einer oder mehrerer der Erfindung(en) gezeigt werden. Es soll jedoch verstanden werden, dass solche Merkmale nicht auf die Verwendung in der einen oder den mehreren bestimmten Ausführungsformen oder Figuren, für welche sie beschrieben sind, beschränkt sind. Die vorliegende Offenbarung stellt weder eine wörtliche Beschreibung aller Ausführungsformen von einer oder mehrerer der Erfindung(en) dar, noch eine Auflistung von Merkmalen von einer oder mehrerer der Erfindung(en), welche in allen Ausführungsformen vorhanden sein muss.
  • Überschriften von Abschnitten, die in dieser Patentanmeldung bereitgestellt werden und der Titel dieser Patentanmeldung dienen lediglich der Zweckmäßigkeit, und dürfen nicht so verstanden werden, dass sie die Offenbarung in irgendeiner Weise einschränken.
  • Vorrichtungen, welche miteinander in Kommunikation stehen, müssen nicht in kontinuierlicher Kommunikation miteinander stehen, soweit nicht anderweitig ausdrücklich spezifiziert. Darüber hinaus können Vorrichtungen, die in Kommunikation miteinander stehen, direkt oder indirekt über einen oder mehrere Vermittler miteinander kommunizieren.
  • Eine Beschreibung einer Ausführungsform mit mehreren miteinander in Kommunikation stehenden Komponenten impliziert nicht, dass alle solche Komponenten benötigt werden. Im Gegenteil: es wird eine Vielfalt von optionalen Komponenten beschrieben, um die breite Vielfalt von möglichen Ausführungsformen von einer oder mehrerer der Erfindung(en) darzustellen.
  • Obwohl weiterhin Prozessschritte, Verfahrensschritte, Algorithmen oder Ähnliches in einer sequenziellen Reihenfolge beschrieben sein können, können solche Prozesse, Verfahren und Algorithmen so eingerichtet sein, dass sie in jeder geeigneten Reihenfolge funktionieren. Anders gesagt stellt jegliche Sequenz oder Reihenfolge von Schritten, die in dieser Patentanmeldung beschrieben sein können, an und für sich, keine Anforderung dar, dass die Schritte in dieser Reihenfolge ausgeführt werden müssen. Weiterhin können einige Schritte gleichzeitig ausgeführt werden, obwohl beschrieben oder impliziert ist, dass sie nicht gleichzeitig auftreten (z. B. weil ein Schritt nach dem anderen Schritt beschrieben ist). Darüber hinaus impliziert die Darstellung eines Prozesses durch seine Wiedergabe in einer Zeichnung nicht, dass der dargestellte Prozess andere Variationen und Modifikationen daran ausschließt, dass der dargestellte Prozess oder jeglicher seiner Schritte für eine oder mehrere der Erfindung(en) notwendig ist und dass der dargestellte Prozess bevorzugt ist.
  • Wenn eine einzelne Vorrichtung oder ein einzelner Gegenstand beschrieben ist, wird es ohne Weiteres ersichtlich sein, dass mehr als ein(e) Vorrichtung/Gegenstand (unabhängig davon, ob sie kooperieren) anstelle einer einzelnen/eines einzelnen Vorrichtung/Gegenstandes verwendet werden kann. Ähnlich wird es ohne Weiteres ersichtlich sein, dass, wo mehr als eine Vorrichtung oder ein Gegenstand beschrieben sind (unabhängig davon, ob sie kooperieren), eine einzelne Vorrichtung/ein einzelner Gegenstand verwendet werden kann anstelle der/des mehr als einen Vorrichtung oder Gegenstandes.
  • Die Funktionalität und/oder die Merkmale einer Vorrichtung können alternativ durch eine oder mehrere andere Vorrichtungen verkörpert sein, für die nicht ausdrücklich beschrieben ist, dass sie solche Funktionalität/Merkmale aufweisen. Folglich müssen andere Ausführungsformen von einer oder mehrerer der Erfindung(en) die Vorrichtung selbst nicht beinhalten.
  • Hierin beschriebene Techniken und Mechanismen werden gelegentlich zu Klarheitszwecken in Singularform beschrieben. Jedoch soll beachtet werden, dass bestimmte Ausführungsformen mehrere Iterationen einer Technik oder mehrere Instanziierungen eines Mechanismus beinhalten können, soweit nicht anderweitig angegeben.
  • Obwohl die hierin beschriebenen verschiedenen Aspekte und Techniken innerhalb des Kontexts von Technologie zum Implementieren eines intelligenten, automatisierten Assistenten, auch als virtueller Assistent bekannt, beschrieben werden, kann verstanden werden, dass diese auch in anderen Gebieten von Technologie, die menschliche und/oder rechnergestützte Interaktion mit Software involvieren, betrieben und/oder angewendet werden.
  • Andere Aspekte, die sich auf virtuelle Assistenz-Technologie beziehen (z. B. die von einem oder mehreren hierin beschriebener Ausführungsformen von virtuellen Assistenz-Systemen verwendet werden, zur Verfügung gestellt werden und/oder implementiert werden), werden in einer oder mehr der Folgenden beschrieben, deren gesamte Offenbarung hierin mittels Bezugnahme eingebunden ist:
    • • US-Utility Application Anmeldenr. 12/987,982 betreffend „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters P10575US1, eingereicht am 10. Januar 2011;
    • • US-Provisional Patent Application Anmeldenr. 61/295,774 betreffend „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters SIRIP003P, eingereicht am 18. Januar 2010;
    • • US-Patent Application Anmeldenr. 11/518,292 betreffend „Method And Apparatus for Building an Intelligent Automated Assistant” („Verfahren und Vorrichtung zum Errichten eines intelligenten automatisierten Assistenten”), eingereicht am 8. September 2006; und
    • • US-Provisional Patent Application Anmeldenr. 61/186,414 betreffend „System and Method for Semantic Auto-Completion” („System und Verfahren für semantische Autovervollständigung”), eingereicht am 12. Jni 2009.
  • Hardware Architektur
  • Im Allgemeinen können die hierin offenbarten virtuellen Assistenz-Techniken in Hardware oder einer Kombination von Software und Hardware implementiert werden. Beispielsweise können sie in einem Betriebssystemkern implementiert sein, in einem getrennten Benutzerprozess, in einem Bibliothekspaket, welches in Netzwerkanwendungen eingebunden ist, auf einer spezifisch konstruierten Maschine und/oder auf einer Netzwerkschnittstellenkarte. Bei einer spezifischen Ausführungsform können die hierin offenbarten Techniken in Software implementiert sein, wie beispielsweise ein Betriebssystem oder in einer Anwendung, die auf dem Betriebssystem läuft.
  • Hybride Software/Hardware-Implementierung(en) von zumindest einigen der Ausführungsform(en) des virtuellen Assistenten, die hierin beschrieben sind, können auf einer programmierbaren Maschine so implementiert sein, dass sie durch ein im Speicher vorgehaltenes Computerprogramm selektiv aktiviert oder rekonfiguriert werden. Solche Netzwerkvorrichtungen können mehrere Netzwerkschnittstellen aufweisen, die dazu eingerichtet oder gestaltet sind, unterschiedliche Typen von Netzwerkkommunikationsprotokollen zu verwenden. Eine allgemeine Architektur für einige dieser Maschinen kann sich aus den hierin offenbarten Beschreibungen ergeben. Gemäß spezifischer Ausführungsformen können zumindest einige der Merkmale und/oder Funktionalitäten der verschiedenen hierin beschriebenen Ausführungsformen des virtuellen Assistenten auf einer oder mehreren Universal-Netzwerk-Host-Maschinen, wie einem Endbenutzercomputer-System, Computer, Netzwerk-Server oder Server-System, mobile Rechenvorrichtung (z. B. Persönlicher Digitaler Assistent, Mobiltelefon, Smartphone, Laptop, Tablet Computer oder Ähnliches), Unterhaltungselektronik-Vorrichtung, Musikplayer oder jegliche andere geeignete elektronische Vorrichtung, Router, Switch oder Ähnliches, oder jegliche Kombination davon implementiert sein. Bei zumindest einigen Ausführungsformen können zumindest einige der Merkmale und/oder Funktionalitäten der verschiedenen hierin offenbarten Ausführungsformen des virtuellen Assistenten auf einer oder mehreren virtualisierten Rechenumgebungen (z. B. Netzwerk-Rechen-Clouds oder Ähnliches) implementiert sein.
  • 28, auf welche nun Bezug genommen wird, zeigt ein Blockdiagramm, welches eine Rechenvorrichtung 60 zeigt, die geeignet ist, zumindest einen Teil der hierin offenbarten Merkmale und/oder Funktionalitäten des virtuellen Assistenten zu implementieren. Die Rechenvorrichtung 30 kann beispielsweise ein Endbenutzer-Computer-System, ein Netzwerk-Server oder -Server-System, eine mobile Rechenvorrichtung (z. B. Persönlicher Digitaler Assistent, Mobiltelefon, Smartphone, Laptop, Tablet-Computer oder Ähnliches), eine Unterhaltungselektronik-Vorrichtung, ein Musikplayer oder jegliche andere geeignete elektronische Vorrichtung oder jegliche(r) Kombination oder Teil hiervon sein. Die Rechenvorrichtung 60 kann angepasst sein, um mit anderen Rechenvorrichtungen, wie Clients und/oder Server, über ein Kommunikationsnetzwerk wie das Internet unter Verwendung bekannter Protokolle für solche Kommunikation, egal ob drahtlos oder drahtgebunden, zu kommunizieren.
  • Bei einer Ausführungsform enthält die Rechenvorrichtung 60 eine zentrale Prozessoreinheit (CPU) 62, Schnittstellen 68, und einen Bus 67 (wie einen Peripheral Component Interconnect (PCI) Bus). Wenn die CPU 62 unter der Steuerung von geeigneter Software oder Firmware agiert, kann sie verantwortlich sein, spezifische Funktionen, die mit den Funktionen einer spezifisch konfigurierten Rechenvorrichtung oder Maschine assoziiert sind, zu implementieren. Beispielsweise kann bei zumindest einer Ausführungsform ein Persönlicher Digitaler Assistent (PDA) oder Smartphone eines Benutzers eingerichtet oder gestaltet sein, um als ein virtuelles Assistenz-System unter Verwendung von CPU 62, Speicher 6i, 65 und Schnittstelle(n) 68 zu funktionieren. Bei zumindest einer Ausführungsform kann die CPU 62 veranlasst werden, einen oder mehrere der unterschiedlichen Typen von Funktionen und/oder Operationen des virtuellen Assistenten unter der Steuerung von Software-Modulen/Komponenten auszuführen, die beispielsweise ein Betriebssystem und jegliche geeignete Anwendungssoftware, Treiber und Ähnliches beinhalten.
  • Die CPU 62 kann einen oder mehrere Prozessor(en) 63 beinhalten, wie beispielsweise einen Prozessor aus der Motorola- oder Intel-Familie von Mikroprozessoren oder der MIPS-Familie von Mikroprozessoren. Bei einigen Ausführungsformen kann (können) Prozessor(en) 63 speziell gestaltete Hardware (z. B. anwendungsspezifische integrierte Schaltkreise (ASICs), elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs), Feld-programmierbare Gatter-Anordnungen (FPGAs) und Ähnliches zur Steuerung von Operationen von Rechenvorrichtung 60 beinhalten. Bei einer spezifischen Ausführungsform stellt ein Speicher 61 (wie nichtflüchtiger Speicher mit wahlfreiem Zugriff (RAM) und/oder Nur-Lese-Speicher (ROM)) auch einen Teil von CPU 62 dar. Jedoch gibt es viele unterschiedliche Arten zum Verbinden von Speicher mit dem System. Speicherblock 61 kann für eine Vielfalt von Zwecken verwendet werden, wie beispielsweise Caching und/oder Speichern von Daten, Programmier-Instruktionen und Ähnliches.
  • Wie hierin verwendet, ist der Begriff „Prozessor” nicht nur beschränkt auf jene integrierten Schaltkreise, welche in der Technik als Prozessor bezeichnet werden, sondern bezieht sich umfassend auf einen Mikro-Controller, einen Mikro-Computer, einen programmierbaren Logik-Controller, einen anwendungsspezifischen integrierten Schaltkreis und jeglichen anderen programmierbaren Schaltkreis.
  • Bei einer Ausführungsform werden Schnittstellen 68 als Schnittstellen-Karten bereitgestellt (manchmal auch als „Netzkarten” („Line Cards”) bezeichnet). Im Allgemeinen steuern sie das Senden und Empfangen von Datenpaketen über ein Rechennetzwerk und unterstützen manchmal andere Peripheriegeräte, die mit Rechenvorrichtung 60 verwendet werden. Unter den Schnittstellen, die bereitgestellt werden können, sind Ethernet-Schnittstellen, Frame Relay-Schnittstellen, Kabel-Schnittstellen, DSL-Schnittstellen, Token Ring-Schnittstellen und Ähnliches. Darüber hinaus können verschiedene Typen von Schnittstellen zur Verfügung gestellt werden, wie beispielsweise Universal Serial Bus (USB), Serial, Ethernet, Firewire, PCI, Parallel, Hochfrequenz (HF), BluetoothTM, Nahbereichskommunikation (z. B. unter Verwendung von Nahbereichsmagnetik), 802.11 (WiFi), Frame Relay, TCP/IP, ISDN, Fast-Ethernet-Schnittstellen, Gigabit-Ethernet-Schnittstellen, Asynchronous Transfer Mode(ATM)-Schnittstellen, High-Speed-Serial-Interface(HSSI)-Schnittstellen, Point of Sale-(POS)-Schnittstellen, Fiber Data Distributed Interfaces (FDDIs) und Ähnliches. Im Allgemeinen können solche Schnittstellen 68 Ports beinhalten, die für Kommunikation mit den geeigneten Medien geeignet sind. In einigen Fällen können sie auch einen unabhängigen Prozessor und, bei einigen Beispielen, flüchtigen und/oder nicht-flüchtigen Speicher (z. B. RAM) beinhalten.
  • Obwohl das in 28 gezeigte System eine spezifische Architektur für eine Rechenvorrichtung 60 zur Implementierung der Techniken der hierin beschriebenen Erfindung zeigt, ist es keinesfalls die einzige Vorrichtungs-Architektur, auf welcher zumindest ein Teil der Merkmale und Techniken, wie sie hierin beschrieben sind, implementiert werden kann. Beispielsweise können Architekturen, die einen oder eine beliebige Anzahl von Prozessoren 63 aufweisen, verwendet werden, und solche Prozessoren 63 können in einer einzigen Vorrichtung oder verteilt zwischen beliebig vielen Vorrichtungen vorhanden sein. Bei einer Ausführungsform verarbeitet ein einziger Prozessor 63 Kommunikationen wie auch Routing-Berechnungen. Bei verschiedenen Ausführungsformen können unterschiedliche Typen von Merkmalen und/oder Funktionalitäten des virtuellen Assistenten in einem virtuellen Assistenz-System, welches eine Client-Vorrichtung (wie ein Persönlicher Digitaler Assistent oder ein Smartphone, auf welchem Client-Software läuft) und Server-System(e) (wie Server-Systeme, die nachfolgend genauer beschrieben werden) aufweist, implementiert sein.
  • Unabhängig von einer Netzwerkvorrichtungskonfiguration kann das System der vorliegenden Erfindung ein oder mehrere Speicher oder Speichermodule (wie beispielsweise Speicherblock 65) verwenden, die zum Speichern von Daten, Programm-Instruktionen für die Universalnetzwerk-Operationen und/oder andere Information, die sich auf die Funktionalität der hierin beschriebenen virtuellen Assistenz-Techniken bezieht, eingerichtet sind. Die Programm-Instruktionen können beispielsweise die Operation eines Betriebssystems und/oder einer oder mehrerer Anwendung(en) steuern. Der Speicher oder die Speicher können auch eingerichtet sein, um Datenstrukturen, Schlüsselwort-Taxonomie-Information, Werbeinformation, Click- und Eindruck-Information eines Benutzers, und/oder andere hierin beschriebene spezifische nicht-programmbezogene Information zu speichern.
  • Da solche Informationen und Programm-Instruktionen verwendet werden können, um die hierin beschriebenen Systeme/Verfahren zu implementieren, können zumindest einige Ausführungsformen einer Netzwerkvorrichtung nicht-flüchtige, maschinenlesbare Speichermedien beinhalten, die beispielsweise dazu eingerichtet oder gestaltet sind, Programminstruktionen, Statusinformationen und Ähnliches zum Ausführen verschiedener hierin beschriebener Operationen zu speichern. Beispiele von solchen nicht-flüchtigen, maschinenlesbaren Speichermedien beinhalten, aber sind nicht beschränkt auf, magnetische Medien wie Festplatten, Floppy Disks und Magnetband; optische Medien wie CD-ROM-Disketten; magnetisch-optische Medien wie Floptical-Disketten, und Hardware-Vorrichtungen, die spezifisch zum Speichern und Ausführen von Programminstruktionen eingerichtet sind, wie Nur-Lese-Speichervorrichtungen (ROM), Flash-Speicher, Memristor-Speicher, Speicher mit wahlfreiem Zugriff (RAM) und Ähnliches. Beispiele von Programm-Instruktionen beinhalten sowohl Maschinen-Code, wie von einem Compiler erzeugt, als auch Dateien, die Code von höherer Ebene beinhalten, der von dem Computer unter Verwendung eines Interpreters ausgeführt werden kann.
  • Bei einer Ausführungsform ist das System der vorliegenden Erfindung auf einem unabhängigen Rechensystem implementiert. In 29, auf die nun Bezug genommen wird, ist ein Blockdiagramm gezeigt, welches eine Architektur zur Implementierung zumindest eines Teils eines virtuellen Assistenten auf einem unabhängigen Rechensystem gemäß zumindest einer Ausführungsform darstellt. Rechenvorrichtung 60 beinhaltet Prozessor(en) 63, die Software zur Implementierung eines virtuellen Assistenten 1002 ausführen. Eingabevorrichtung 1206 kann jeglicher Typ sein, der geeignet ist, Benutzereingaben zu empfangen, einschließlich beispielsweise eine Tastatur, ein Berührungsbildschirm, ein Mikrofon (z. B. für Spracheingabe), eine Maus, ein Berührungspad, ein Trackball, ein Fünf-Wege-Schalter (Five-Way-Switch), ein Joystick und/oder jegliche Kombination hieraus. Ausgabevorrichtung 1207 kann ein Monitor, ein Lautsprecher, ein Drucker und/oder jegliche Kombination hieraus sein. Speicher 1210 kann ein Speicher mit wahlfreiem Zugriff sein, der eine Struktur und Architektur aufweist, wie sie in der Technik bekannt sind, zur Verwendung durch den/die Prozessor(en) 63 während des Ausführens von Software. Speichervorrichtung 1208 kann jegliche magnetische, optische und/oder elektrische Speichervorrichtung zum Speichern von Daten in digitaler Form sein; Beispiele beinhalten Flash-Speicher, magnetische Festplatte, CD-ROM und/oder Ähnliches.
  • Bei einer anderen Ausführungsform ist das System der vorliegenden Erfindung auf einem verteilten Rechennetzwerk, wie ein solches, das beliebig viele Clients oder Server aufweist, implementiert. In 30, auf die nun Bezug genommen wird, ist ein Blockdiagramm dargestellt, welches eine Architektur zum Implementieren von zumindest einem Teil eines virtuellen Assistenten auf einem verteilten Rechennetzwerk gemäß zumindest einer Ausführungsform zeigt.
  • In der in 30 gezeigten Anordnung werden beliebig viele Clients 1304 bereitgestellt; jeder Client 1304 kann Software ausführen, um Clientseitige Teile der vorliegenden Erfindung zu implementieren. Darüber hinaus können beliebig viele Server 1340 zum Verarbeiten von Anfragen, die von Clients 1304 empfangen werden, bereitgestellt werden. Clients 1304 und Server 1340 können miteinander über ein elektronisches Netzwerk 1361, wie das Internet, kommunizieren. Das Netzwerk 1361 kann unter Verwendung jeglicher bekannter Netzwerkprotokolle, beinhaltend beispielsweise drahtgebundene und/oder drahtlose Protokolle, implementiert sein.
  • Darüber hinaus können bei einer Ausführungsform die Server 1340 bei Bedarf externe Dienste 1360 aufrufen, um zusätzliche Information zu erhalten, oder sich auf Speicherdaten, die frühere Interaktionen mit bestimmten Nutzern betreffen, beziehen. Die Kommunikation mit externen Diensten 1360 kann beispielsweise über das Netzwerk 1361 stattfinden. Bei verschiedenen Ausführungsformen können die externen Dienste 1360 Web-fähige Dienste und/oder Funktionalität, die sich auf die Hardwarevorrichtung selbst bezieht oder darauf installiert ist, beinhalten. Beispielsweise kann der Assistent 1002 bei einer Ausführungsform, bei welcher der Assistent 1002 auf einem Smartphone oder auf einer anderen elektronischen Vorrichtung implementiert ist, Information erhalten, die in einer Kalenderanwendung (”App”), in Kontakten und/oder anderen Quellen gespeichert ist.
  • Bei verschiedenen Ausführungsformen kann der Assistent 1002 viele Merkmale und Operationen einer elektronischen Vorrichtung, auf der er installiert ist, steuern. Beispielsweise kann der Assistent 1002 die externen Dienste 1360, die mit Funktionalität und Anwendungen auf einer Vorrichtung über APIs oder über andere Mittel interagieren, aufrufen, um Funktionen und Operationen auszuführen, die anderweitig unter Verwendung einer konventionellen Benutzerschnittstelle auf der Vorrichtung initiiert werden. Solche Funktionen und Operationen können beispielsweise beinhalten: Einstellen eines Alarms, Durchführen eines Telefonanrufs, Senden einer Textnachricht oder E-Mail-Nachricht, Hinzufügen eines Kalenderereignisses und Ähnliches. Solche Funktionen und Operationen können als Add-on-Funktionen im Kontext eines interaktiven Dialogs zwischen einem Benutzer und Assistenten 1002 ausgeführt werden. Solche Funktionen und Operationen können von dem Benutzer im Kontext eines solchen Dialogs festgelegt werden, oder sie können automatisch basierend auf dem Kontext des Dialogs ausgeführt werden. Ein Fachmann wird erkennen, dass der Assistent 1002 dabei als ein Steuermechanismus zum Initiieren und Steuern verschiedener Operationen auf der elektronischen Vorrichtung verwendet werden kann, der als eine Alternative zu konventionellen Mechanismen, wie Tasten oder grafische Benutzerschnittstellen verwendet werden kann.
  • Beispielsweise kann der Benutzer dem Assistenten 1002 eine Eingabe wie ”Ich muss morgen um 8 Uhr aufwachen” zur Verfügung stellen. Sobald der Assistent 1002 die Benutzerabsicht bestimmt hat, unter Verwendung der hierin beschriebenen Techniken, kann der Assistent 1002 externe Dienste 1340 aufrufen, um mit einer Weckerfunktion oder Anwendung auf der Vorrichtung zu interagieren. Der Assistent 1002 stellt den Alarm im Auftrag des Benutzers ein. Auf diese Weise kann der Benutzer den Assistenten 1002 als Ersatz für konventionelle Mechanismen zum Einstellen des Alarms oder Ausführen anderer Funktionen auf der Vorrichtung verwenden. Wenn die Anfragen des Benutzers mehrdeutig sind oder weiterer Klarstellung bedürfen, kann der Assistent 1002 die verschiedenen hierin beschriebenen Techniken nutzen, einschließlich aktiver Ermittlung, Paraphrasieren, Vorschläge und Ähnliches und einschließlich Erhalten von Kontextinformation, so dass die korrekten Dienste 1340 aufgerufen werden und die beabsichtigte Aktion ausgeführt wird. Bei einer Ausführungsform kann der Assistent 1002 den Benutzer zur Bestätigung auffordern und/oder zusätzliche Kontextinformation aus jeglicher geeigneten Quelle anfragen, ehe dieser einen Dienst 1340 zum Ausführen einer Funktion aufruft. Bei einer Ausführungsform kann ein Benutzer die Fähigkeit des Assistenten 1002, bestimmte Dienste 1340 aufzurufen, selektiv ausschalten, oder kann das gesamte Aufrufen von Diensten ausschalten, wenn gewünscht.
  • Das System der vorliegenden Erfindung kann mit jeglichem aus einer Reihe unterschiedlicher Typen von Clients 1304 und Operationsmodi implementiert werden. In 31, auf die nun Bezug genommen wird, ist ein Blockdiagramm dargestellt, welches eine Systemarchitektur zeigt, die unterschiedliche Typen von Clients 1304 und Operationsmodi darstellt. Ein Fachmann wird erkennen, dass die unterschiedlichen Typen von Clients 1304 und Operationsmodi, wie sie in 31 gezeigt sind, lediglich beispielhaft sind, und dass das System der vorliegenden Erfindung unter Verwendung anderer als der dargestellten Clients 1304 und/oder Operationsmodi implementiert werden kann. Darüber hinaus kann das System jegliche oder alle dieser Clients 1304 und/oder Operationsmodi beinhalten, allein oder in jeglicher Kombination. Dargestellte Beispiele beinhalten:
    • • Computervorrichtungen mit Eingabe/Ausgabevorrichtungen und/oder Sensoren 1402. Eine Client-Komponente kann auf jeder solchen Computervorrichtungen 1402 betrieben werden. Zumindest eine Ausführungsform kann unter Verwendung eines Web-Browsers 1304A oder einer anderen Softwareanwendung zum Ermöglichen von Kommunikation mit Servern 1340 über Netzwerk 1361 implementiert sein. Eingabe- und Ausgabe-Kanäle können von jeglichem Typ sein, einschließlich beispielsweise visueller und/oder akustischer Kanäle. Beispielsweise kann das System der Erfindung bei einer Ausführungsform unter Verwendung von sprachbasierten Kommunikationsverfahren implementiert sein, wodurch eine Ausführungsform des Assistenten für Blinde ermöglicht wird, dessen Äquivalent eines Web-Browsers durch Sprache gesteuert wird und Sprache als Ausgabe verwendet.
    • • Mobile Vorrichtungen mit E/A und Sensoren 1406, für die der Client als eine Anwendung auf der mobilen Vorrichtung 1304B implementiert sein kann. Dies beinhaltet, aber ist nicht beschränkt auf, Mobiltelefone, Smartphones, persönliche digitale Assistenten, Tablet-Vorrichtungen, vernetzte Spielekonsolen und Ähnliches.
    • • Verbrauchergeräte mit E/A und Sensoren 1410, für die der Client als eine eingebettete Anwendung auf dem Gerät 1304C implementiert sein kann.
    • • Automobile und andere Fahrzeuge mit Armaturenbrettschnittstellen und Sensoren 1414, für die der Client als eine eingebettete Systemanwendung 1304D implementiert sein kann. Dies beinhaltet, aber ist nicht beschränkt auf Autonavigationssysteme, Sprachsteuersysteme, Unterhaltungssysteme im Fahrzeuginnenraum und Ähnliches.
    • • Vernetzte Rechenvorrichtungen wie Router 1418 oder jegliche andere Vorrichtung, die auf einem Netzwerk liegt, oder eine Schnittstelle zu einem Netzwerk aufweist, bei welcher der Client als eine auf der Vorrichtung liegende Anwendung 1304E implementiert sein kann.
    • • E-Mail-Clients 1424, für die eine Ausführungsform des Assistenten über einen E-Mail-Modalitäten-Server 1426 verbunden ist. Der E-Mail-Modalitäten-Server 1426 agiert als eine Kommunikationsbrücke, beispielsweise nimmt er Eingaben von dem Benutzer als E-Mail-Nachrichten, die zu dem Assistenten gesendet wurden, entgegen, und versendet Ausgaben von dem Assistenten zum Benutzer als Antworten.
    • • Clients für Sofortnachrichtendienste 1428, für die eine Ausführungsform des Assistenten über einen Nachrichten-Modalitäten-Server 1430 verbunden ist. Der Nachrichten-Modalitäten-Server 1430 agiert als Kommunikationsbrücke, nimmt Eingaben von dem Benutzer, die als Nachrichten zu dem Assistenten gesendet werden entgegen, und sendet in Beantwortung Ausgaben von dem Assistenten zum Benutzer als Nachrichten.
    • • Sprachtelefone 1432, bei welchen eine Ausführungsform des Assistenten über einen Internet-Protokoll-Telefonie-(VoIP)-Modalitäten-Server 1430 verbunden ist. Der VoIP-Modalitäten-Server 1430 agiert als Kommunikationsbrücke, der Eingaben vom Benutzer als Sprache, die zu dem Assistenten gesprochen wurde, entgegennimmt, und in Beantwortung Ausgaben vom Assistenten zum Benutzer sendet, beispielsweise als synthetisierte Sprache.
  • Für Nachrichten-Plattformen, einschließlich, aber nicht beschränkt auf, E-Mail, Sofortnachrichtendienste, Diskussionsforen, Gruppen-Chat-Sitzungen, Live-Hilfe oder Kunden-Support-Sitzungen und Ähnliches, kann der Assistent 1002 als ein Teilnehmer in den Unterhaltungen agieren. Der Assistent 1002 kann die Unterhaltung beobachten und Einzelnen oder der Gruppe unter Verwendung einer oder mehrerer Techniken oder Methoden, wie hierin für Eins-zu-Eins-Interaktionen beschrieben, erwidern.
  • Bei verschiedenen Ausführungsformen kann die Funktionalität zum Implementieren der Techniken der vorliegenden Erfindung zwischen einer beliebigen Anzahl von Client- und/oder Server-Komponenten verteilt sein. Beispielsweise können verschiedene Software-Module zum Ausführen verschiedener Funktionen in Verbindung mit der vorliegenden Erfindung implementiert sein, und solche Module können unterschiedlich implementiert sein, um auf Server- und/oder Client-Komponenten ausgeführt zu werden. Weitere Einzelheiten einer solchen Anordnung sind in der verwandten US-Utility Application Anmeldenr. 12/987,982, betreffend „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters P10575US1, eingereicht am 10. Januar 2011, enthalten, wobei die gesamte Offenbarung dieser Anmeldung hierin mittels Bezugnahme eingebunden ist.
  • In dem Beispiel der 32 sind Eingabeermittlungsfunktionalität und Ausgabeverarbeitungsfunktionalität zwischen Client 1304 und Server 1340 verteilt, wobei ein Client-Teil der Eingabeermittlung 2794a und ein Client-Teil der Ausgabeverarbeitung 2792a auf dem Client 1304 vorliegen, und ein Server-Teil von Eingabeermittlung 2794b und ein Server-Teil von Ausgabeverarbeitung 2792b auf Server 1340 vorliegen. Die folgenden Komponenten befinden sich auf dem Server 1340:
    • • komplettes Vokabular 2758b;
    • • komplette Bibliothek von Sprachmuster-Erkennern 2760b;
    • • Masterversion von persönlichem Kurzzeitspeicher 2752b;
    • • Masterversion von persönlichem Langzeitspeicher 2754b.
  • In einer Ausführungsform hält der Client 1304 Untermengen und/oder Teile dieser Komponenten lokal vor, um die Reaktionsfähigkeit zu verbessern und die Abhängigkeit von Netzwerkkommunikationen zu reduzieren. Solche Untermengen und/oder Teile können gemäß wohlbekannter Cache-Verwaltungstechniken unterhalten und aktualisiert werden. Solche Untermengen und/oder Teile beinhalten beispielsweise:
    • • Untermenge von Vokabular 2758a;
    • • Untermenge der Bibliothek von Sprachmuster-Erkennern 2760a;
    • • Cache des persönlichen Kurzzeitspeichers 2752a;
    • • Cache des persönlichen Langzeitspeichers 2754a.
  • Zusätzliche Komponenten können als Teil des Servers 1340 implementiert sein, die beispielsweise beinhalten:
    • • Sprach-Interpreter 2770;
    • • Dialog-Fluss-Prozessor 2780;
    • • Ausgabeprozessor 2790;
    • • Bereichs-Entitäten-Datenbanken 2772;
    • • Task-Fluss-Modelle 2786;
    • • Dienste-Orchestrierung 2782;
    • • Dienste-Fähigkeitsmodelle 2788.
  • Jede dieser Komponenten wird nachfolgend genauer beschrieben. Der Server 1340 erhält bei Bedarf zusätzliche Information durch Interagieren mit externen Diensten 1360.
  • Konzeptionelle Architektur
  • In 27, auf die nun Bezug genommen wird, ist ein vereinfachtes Blockdiagramm eines spezifischen Ausführungsbeispiels eines virtuellen Assistenten 1002 dargestellt. Wie mit mehr Einzelheiten in den voranstehend einbezogenen verwandten US-Utility Applications dargestellt wird, können unterschiedliche Ausführungsformen des virtuellen Assistenten 1002 eingerichtet, gestaltet und/oder betreibbar sein, um mehrere unterschiedliche Typen von Operationen, Funktionalitäten und/oder Merkmalen, die sich allgemein auf die Technologie des virtuellen Assistenten beziehen, zur Verfügung zu stellen. Weiterhin können, wie hierin genauer beschrieben, viele der unterschiedlichen Operationen, Funktionalitäten und/oder Merkmale des virtuellen Assistenten 1002, die hierin offenbart sind, unterschiedliche Typen von Vorteilen und/oder Nutzen für unterschiedliche Entitäten, die mit dem virtuellen Assistenten 1002 interagieren, ermöglichen oder zur Verfügung stellen. Die in 27 gezeigte Ausführungsform kann implementiert werden unter Verwendung jeglicher der oben beschriebenen Hardware-Architekturen oder unter Verwendung eines unterschiedlichen Typs von Hardware-Architektur.
  • Beispielsweise kann der virtuelle Assistent 1002 gemäß unterschiedlicher Ausführungsformen eingerichtet, gestaltet und/oder betreibbar sein, um mehrere unterschiedliche Typen von Operationen, Funktionalitäten und/oder Merkmalen, wie beispielsweise eine oder mehr der Folgenden (oder Kombinationen hieraus) zur Verfügung zu stellen:
    • • Automatisieren der Anwendung von Daten und Diensten, die über das Internet verfügbar sind, um Produkte und Dienste zu entdecken, aufzufinden, zwischen ihnen zu wählen, zu kaufen, zu stornieren, oder zu bestellen. Zusätzlich zur Automatisierung des Prozesses zur Verwendung dieser Daten und Dienste kann der virtuelle Assistent 1002 die kombinierte Verwendung von mehreren Quellen von Daten und Diensten auf einmal ermöglichen. Beispielsweise kann er Informationen über Produkte aus mehreren Rezessionsseiten kombinieren, Preise und Verfügbarkeit von mehreren Distributoren prüfen und ihre Beschränkungen hinsichtlich Ort und Zeit prüfen, und einem Benutzer helfen, eine personalisierte Lösung zu seinem Problem zu finden.
    • • Automatisieren der Verwendung von Daten und Diensten, die über das Internet verfügbar sind, zum Entdecken, Erforschen, Auswählen unter, Stornieren und anderweitig Lernen über Dinge, die getan werden können (einschließlich, aber nicht beschränkt auf, Filme, Events, Darbietungen, Ausstellungen, Shows und Attraktionen); Orte, die besucht werden können (einschließlich, aber nicht beschränkt auf, Reiseziele, Hotels und andere Bleiben, Wahrzeichen und andere Orte von Interesse und Ähnliches); Orte zum Essen oder Trinken (wie Restaurants und Bars), Zeiten und Orte, um andere zu treffen, und jegliche andere Quelle von Unterhaltung oder sozialer Interaktion, die im Internet gefunden werden kann.
    • • Ermöglichen des Betriebs von Anwendungen und Diensten über natürlichen Sprachdialog, die anderweitig von dedizierten Anwendungen mit grafischen Benutzerschnittstellen bereitgestellt wird, einschließlich Suche (einschließlich ortsbezogener Suche); Navigation (Karten und Richtungen); Datenbankabfragen (wie Auffinden von Geschäften oder Menschen mittels Namen oder anderer Eigenschaften); Erhalten von Wetterbedingungen und Vorhersagen, Prüfen des Preises von Marktobjekten oder Status von finanziellen Transaktionen; Überwachen von Verkehr oder des Status von Flügen; Zugreifen auf und Aktualisieren von Kalendern und Zeitplänen; Verwalten von Remindern, Alarmsignalen, Tasks und Projekten; Kommunizieren über E-Mail oder andere Nachrichtenplattformen; und Betreiben von Vorrichtungen von lokal oder von entfernt (z. B. Wählen eines Telefons, Steuern von Licht und Temperatur, Steuern von Heimsicherheitsvorrichtungen, Spielen von Musik oder Video und Ähnliches). Bei einer Ausführungsform kann der virtuelle Assistent 1002 verwendet werden, um viele Funktionen und Apps, die auf der Vorrichtung verfügbar sind, zu initiieren, zu betreiben und zu steuern.
    • • Anbieten persönlicher Empfehlungen für Aktivitäten, Produkte, Dienste, Quellen von Unterhaltung, Zeitmanagement oder jegliche andere Art von Empfehlungsdienst, die von einem interaktiven Dialog in natürlicher Sprache und automatisierten Zugriff auf Daten und Dienste profitiert.
  • Gemäß unterschiedlicher Ausführungsformen kann zumindest ein Teil der verschiedenen Typen von Funktionen, Operationen, Aktionen und/oder anderen Merkmalen, die von dem virtuellen Assistenten 1002 zur Verfügung gestellt werden, auf einem oder mehreren Client-System(en), auf einem oder mehreren Server-System(en) und/oder Kombinationen hieraus implementiert sein.
  • Gemäß unterschiedlicher Ausführungsformen kann zumindest ein Teil der verschiedenen Typen von Funktionen, Operationen, Aktionen und/oder anderer Merkmale, die von dem virtuellen Assistenten 1002 zur Verfügung gestellt werden, beim Interpretieren und Operationalisieren von Benutzereingabe Kontextinformation verwenden, wie hierin genauer beschrieben.
  • Beispielsweise kann der virtuelle Assistent 1002 bei zumindest einer Ausführungsform betreibbar sein, um mehrere unterschiedliche Typen von Daten und/oder andere Typen von Information beim Ausführen spezifischer Tasks und/oder Operationen zu nutzen und/oder zu generieren. Dies kann beispielsweise Eingabedaten/Information und/oder Ausgabedaten/Information beinhalten. Beispielsweise kann der virtuelle Assistent 1002 bei zumindest einer Ausführungsform zum Zugreifen auf, Verarbeiten und/oder anderweitig Nutzen von Informationen aus einer oder mehreren unterschiedlichen Typen von Quellen betreibbar sein, wie beispielsweise einem oder mehrerer lokaler und/oder entfernter Speicher, Vorrichtungen und/oder Systemen. Zusätzlich kann der virtuelle Assistent 1002 bei zumindest einer Ausführungsform betrieben werden, um eine oder mehrere unterschiedliche Typen von Ausgabedaten/Information zu generieren, die beispielsweise in einem Speicher einer oder mehrerer lokaler und/oder entfernter Vorrichtungen und/oder Systeme gespeichert sein kann.
  • Beispiele von unterschiedlichen Typen von Eingabedaten/Information, auf die der virtuelle Assistent 1002 zugreifen und/oder diese nutzen kann, können beinhalten, aber sind nicht beschränkt auf, eine oder mehr der Folgenden (oder Kombinationen hieraus):
    • • Spracheingabe: von mobilen Vorrichtungen wie Mobiltelefonen und Tablets, Computer mit Mikrofonen, Bluetooth-Headsets, Sprachsteuersystemen in Automobilen, System über das Telefon (over the telephone system), Aufnahmen auf Antwort-Diensten, Audio-Voicemail bei integrierten Nachrichtendiensten, Verbraucheranwendungen mit Spracheingabe, wie Radiowecker, Telefonstation, Heim-Unterhaltungs-Steuerungssysteme und Spielekonsolen.
    • • Texteingabe von Tastaturen auf Computern oder mobilen Vorrichtungen, Tastenfelder (Keypads) auf Fernsteuerungen oder andere Vorrichtungen von Unterhaltungselektronik, E-Mail-Nachrichten, die dem Assistenten gesendet werden, Sofortnachrichten oder ähnliche Kurznachrichten, die dem Assistenten gesendet werden, Text, der von Spielern in Mehrbenutzer-Spieleumgebungen empfangen wird, und Text, der in Nachrichten-Feeds strömt.
    • • Ortsangaben, die aus Sensoren oder standortbasierten Systemen stammen. Beispiele beinhalten Global Positioning System (GPS) und Assisted-GPS (A-GPS) auf mobilen Vorrichtungen. Bei einer Ausführungsform werden Ortsangaben mit ausdrücklicher Benutzereingabe kombiniert. Bei einer Ausführungsform ist das System der vorliegenden Erfindung in der Lage, zu erkennen, wenn ein Benutzer zu Hause ist, basierend auf bekannter Adressinformation und gegenwärtiger Standortbestimmung. Auf diese Weise können bestimmte Schlussfolgerungen gemacht werden im Hinblick auf den Typ von Information, die den Benutzer interessieren könnte, wenn er zu Hause ist, im Gegensatz dazu, wenn er außer Haus ist, wie auch im Hinblick auf den Typ von Diensten und Aktionen, die im Namen des Benutzers aufgerufen werden sollen, abhängig davon, ob er oder sie zu Hause ist.
    • • Zeitangaben von Uhren auf Client-Vorrichtungen. Dies kann beispielsweise die Zeit von Telefonen oder anderen Client-Vorrichtungen, welche die lokale Zeit und Zeitzone angeben, beinhalten. Darüber hinaus kann Zeit im Zusammenhang mit Benutzeranfragen verwendet werden, um beispielsweise Phrasen wie „in einer Stunde” und „heute Abend” zu interpretieren.
    • • Kompass, Beschleunigungsmesser, Gyroskop und/oder Reisegeschwindigkeitsdaten, wie auch andere Sensordaten von mobilen oder Handheld-Vorrichtungen oder eingebetteten Systemen wie Automobilsteuerungssystemen. Dies kann auch Vorrichtungspositionsdaten von Fernsteuerungen für Geräte und Spielekonsolen beinhalten.
    • • Klicken und Menüauswahl und andere Ereignisse von einer grafischen Benutzerschnittstelle (GUI) auf jeglicher Vorrichtung, die eine GUI aufweist. Weitere Beispiele beinhalten Berührungen bei einem Berührungsbildschirm.
    • • Ereignisse von Sensoren und anderen datengetriebenen Auslösern, wie Wecker, Kalender-Alarme, Preisänderungs-Auslöser, Standort-Auslöser, Push-Benachrichtigung auf einer Vorrichtung von Servern und Ähnliches.
  • Die Eingabe bei den hierin beschriebenen Ausführungsformen beinhaltet auch den Kontext der Historie der Benutzerinteraktion, einschließlich Dialog- und Anforderungshistorie.
  • Wie in den in verwandten US-Utility Applications, auf welche oben querverwiesen wurde, beschrieben ist, können viele unterschiedliche Typen von Ausgabedaten/Information von dem virtuellen Assistenten 1002 generiert werden. Diese können beinhalten, aber sind nicht beschränkt auf, eine oder mehr der Folgenden (oder Kombinationen hieraus):
    • • Textausgabe, die direkt einer Ausgabevorrichtung und/oder zu der Benutzerschnittstelle einer Vorrichtung gesendet wird;
    • • Text und Grafiken, die einem Benutzer über E-Mail gesendet werden;
    • • Text und Grafiken, die einem Benutzer über einen Nachrichtendienst gesendet werden;
    • • Sprachausgabe, die eine oder mehr der Folgenden beinhalten kann (oder Kombinationen hieraus):
    • • synthetisierte Sprache;
    • • abgetastete Sprache;
    • • aufgenommene Nachrichten;
    • • grafisches Layout von Information mit Fotos, Rich Text, Videos, Sounds und Hyperlinks (beispielsweise der Inhalt, der in einem Web-Browser wiedergegeben wird);
    • • Aktuatorausgabe zum Steuern von physikalischen Aktionen auf einer Vorrichtung, wie Veranlassen, dass sie ein- oder ausgeschaltet wird, einen Sound produziert, Farbe ändert, vibriert, ein Licht steuert und Ähnliches;
    • • Aufrufen von anderen Anwendungen auf einer Vorrichtung, wie Aufrufen einer Karten-Anwendung, Sprachwahl eines Telefons, Versenden einer E-Mail oder Sofortnachricht, Abspielen von Medien, Vornehmen von Einträgen in Kalendern, Taskverwaltungen und Notizanwendungen und anderen Anwendungen;
    • • Aktuatorausgabe zum Steuern von physikalischen Aktionen von Vorrichtungen, verbunden mit oder gesteuert von einer Vorrichtung, wie Betreiben einer entfernten Kamera, Steuern eines Rollstuhls, Spielen von Musik auf entfernten Lautsprechern, Spielen von Videos auf entfernten Anzeigen und Ähnliches.
  • Es soll erkannt werden, dass der virtuelle Assistent 1002 aus 27 lediglich ein Beispiel aus einem breiten Bereich von Ausführungsformen eines virtuellen Assistenz-Systems ist, welche implementiert werden können. Andere Ausführungsformen des virtuellen Assistenz-Systems (nicht gezeigt) können zusätzliche, weniger und/oder unterschiedliche Komponenten/Merkmale als jene, die zum Beispiel in der beispielhaften Ausführungsform des virtuellen Assistenz-Systems von 27 dargestellt sind, beinhalten.
  • Der virtuelle Assistent 1002 kann eine Vielzahl von unterschiedlichen Typen von Komponenten, Vorrichtungen, Modulen, Prozessen, Systemen und Ähnliches beinhalten, die beispielsweise durch die Verwendung von Hardware und/oder Kombinationen von Hardware und Software implementiert und/oder instanziiert sein können. Beispielsweise kann der Assistent 1002, wie dargestellt in der beispielhaften Ausführungsform von 27, eine oder mehr der folgenden Typen von Systemen, Komponenten, Vorrichtungen, Prozessen und Ähnliches (oder Kombinationen hieraus) beinhalten:
    • • eine oder mehr aktive Ontologien 1050;
    • • aktive Eingabeermittlungskomponente(n) 2794 (kann/können Client-Teil2794a und Server-Teil 2794b beinhalten);
    • • persönliche Kurzzeitspeicherkomponente(n) 2752 (kann/können Master-Version 2752b und Cache 2752a beinhalten);
    • • persönliche Langzeitspeicherkomponente(n) 2754 (kann/können Master-Version 2754b und Cache 2754a beinhalten; kann/können beispielsweise persönliche Datenbanken 1058, Anwendungspräferenzen und Verwendungshistorie 1072 und Ähnliches beinhalten);
    • • Bereichs-Modell-Komponente(n) 2756;
    • • Vokabular-Komponente(n) 2758 (kann/können vollständiges Vokabular 2758b und Untermenge 2758a beinhalten);
    • • Komponente(n) mit Erkenner(n) von Sprachmustern 2760 (kann/können vollständige Bibliothek 2760b und Untermenge 2760a beinhalten);
    • • Komponente(n) mit Sprachinterpretierer 2770;
    • • Bereichs-Entitäts-Datenbanke(n) 2772;
    • • Dialog-Fluss-Prozessor-Komponente(n) 2780;
    • • Komponente(n) zur Dienste-Orchestrierung 2782;
    • • Dienste-Komponente(n) 2784;
    • • Komponente(n) mit Task-Fluss-Modellen 2786;
    • • Komponente(n) mit Dialog-Fluss-Modellen 2787;
    • • Komponente(n) mit Dienst-Modellen 2788;
    • • Ausgabeprozessorkomponente(n) 2790.
  • Bei bestimmten Client/Server-basierten Ausführungsformen können einige oder alle dieser Komponenten zwischen Client 1304 und Server 1340 verteilt sein.
  • Bei einer Ausführungsform erhält der virtuelle Assistent 1002 Benutzereingabe 2704 mittels jeglicher geeigneter Eingabemodalität, einschließlich beispielsweise Eingabe mittels Berührungsbildschirm, Tastatur-Eingabe, gesprochene Eingabe und/oder jegliche Kombination hieraus. Bei einer Ausführungsform erhält der Assistent 1002 auch Kontext-Information 1000, die Ereigniskontext 2706 und/oder jegliche andere Typen von Kontext wie hierin genauer beschrieben beinhalten kann.
  • Beim Verarbeiten der Benutzereingabe 2704 und der Kontext-Information 1000 gemäß den hierin beschriebenen Techniken generiert der virtuelle Assistent 1002 Ausgabe 2708 zur Darstellung für den Benutzer. Die Ausgabe 2708 kann gemäß jeglicher geeigneter Ausgabemodalität generiert werden, die gegebenenfalls durch den Kontext 1000 wie auch durch anderen Faktoren geprägt sein kann. Beispiele von Ausgabemodalitäten beinhalten visuelle Ausgabe, wie sie auf einem Bildschirm dargestellt wird, akut Ausgabe (die gesprochene Ausgabe und/oder Piepstöne und andere Sounds beinhalten kann), haptische Ausgabe (wie Vibration) und/oder jegliche Kombination hieraus.
  • Zusätzliche Einzelheiten betreffend die Operation der verschiedenen Komponenten, die in 27 gezeigt sind, sind in der verwandten US-Utility Application Anmeldenr. 12/987,982 betreffend „Intelligent Automated Assistant” („Intelligenter automatisierter Assistent”), Aktenzeichen des Vertreters P10575US1, eingereicht am 10. Januar 2011, bereitgestellt, wobei die gesamte Offenbarung dieser Anmeldung hierin mittels Bezugnahme eingebunden ist.
  • Kontext
  • Wie oben beschrieben erfasst der virtuelle Assistent 1002 bei einer Ausführungsform eine Vielfalt von Kontextinformation, um Informationsverarbeitungsfunktionen auszuführen, und wendet diese Vielfalt an. Die folgende Beschreibung legt dar:
    • • einen Bereich von Quellen von Kontextinformation zur Benutzung des virtuellen Assistenten 1002;
    • • Techniken zur Darstellung, zum Organisieren und Suchen von Kontextinformation;
    • • Verfahren mittels welcher Kontextinformation den Betrieb von mehreren Funktionen des virtuellen Assistenten unterstützen kann; und
    • • Verfahren zum effizienten Erfassen, Zugreifen auf und Anwenden von Kontextinformation in einem verteilten System.
  • Ein Fachmann wird erkennen, dass die nachfolgende Beschreibung von Quellen, Techniken und Verfahren zur Verwendung von Kontextinformation lediglich beispielhaft ist, und dass andere Quellen, Techniken und Verfahren verwendet werden können, ohne dass von den wesentlichen Charakteristiken der vorliegenden Erfindung abgewichen wird.
  • Quellen von Kontext
  • Während Phasen von Informationsverarbeitung, die von dem virtuellen Assistenten 1002 ausgeführt werden, können mehrere unterschiedliche Arten von Kontext verwendet werden, um mögliche Interpretationen einer Benutzereingabe zu reduzieren. Beispiele beinhalten Anwendungskontext, Kontext persönlicher Daten und vorangegangene Dialoghistorie. Ein Fachmann wird erkennen, dass auch andere Quellen von Kontext verfügbar sein können.
  • In 1, auf die nun Bezug genommen wird, ist ein Blockdiagramm dargestellt, welches den virtuellen Assistenten 1002 und einige Beispiele von Quellen von Kontext zeigt, die seine Operation gemäß einer Ausführungsform beeinflussen können. Der virtuelle Assistent 1002 nimmt Benutzereingabe 2704, wie gesprochene oder getippte Sprache entgegen, verarbeitet die Eingabe und generiert Ausgabe 2708 für den Benutzer und/oder führt 2710 Aktionen im Namen des Benutzers aus. Es soll erkannt werden, dass der wie in 1 dargestellte virtuelle Assistent 1002 lediglich ein Beispiel aus einem breiten Bereich von implementierbaren Ausführungsformen eines virtuellen Assistenz-Systems darstellt. Andere Ausführungsformen von virtuellen Assistenz-Systemen (nicht gezeigt) können zusätzliche, weniger und/oder unterschiedliche Komponenten/Merkmale enthalten, als jene, die beispielsweise in dem beispielhaften virtuellen Assistenten 1002, wie in 1 gezeigt, dargestellt sind.
  • Wie hierin im Einzelnen beschrieben kann der virtuelle Assistent 1002 auf jegliche aus einer Reihe unterschiedlicher Quellen von Wissen und Daten zurückgreifen, wie Wörterbücher, Bereichs-Modelle und/oder Task-Modelle. Aus der Perspektive der vorliegenden Erfindung sind solche Quellen, die als Hintergrundquellen hierin bezeichnet sind, intern für den Assistenten 1002. Zusätzlich zur Benutzereingabe 2704 und den Hintergrundquellen kann der Assistent 1002 auch auf Informationen aus mehreren Quellen von Kontext zurückgreifen, einschließlich beispielsweise Vorrichtungssensordaten 1056, Anwendungspräferenzen und Verwendungshistorie 1072, Dialoghistorie und Speicher des Assistenten 1052, persönliche Datenbanken 1058, persönliche akustische Kontextdaten 1080, gegenwärtiger Anwendungskontext 1060 und Ereigniskontext 2706. Diese werden hierin im Einzelnen beschrieben.
  • Anwendungskontext 1060
  • Anwendungskontext 1060 bezieht sich auf den Zustand der Anwendung oder ähnlicher Software, in welcher der Benutzer etwas macht. Beispielsweise könnte der Benutzer eine Textnachrichtenanwendung benutzen, um mit einer bestimmten Person zu chatten. Der virtuelle Assistent 1002 muss nicht spezifisch für oder Teil der Benutzerschnittstelle der Textnachrichtenanwendung sein. Vielmehr kann der virtuelle Assistent 1002 Kontext aus jeglicher Anzahl von Anwendungen erhalten, wobei jede Anwendung ihren Kontext einbringt, um den virtuellen Assistenten 1002 zu informieren.
  • Falls der Benutzer gegenwärtig eine Anwendung benutzt, wenn der virtuelle Assistent 1002 aufgerufen wird, kann der Zustand dieser Anwendung hilfreiche Kontextinformation zur Verfügung stellen. Wird beispielsweise der virtuelle Assistent 1002 von innerhalb einer E-Mail-Anwendung aufgerufen, kann die Kontextinformation Absenderangaben, Empfängerangaben, Sendedatum und/oder Sendezeit, Betreff, Daten, die aus dem E-Mail-Inhalt extrahiert wurden, Mailbox- oder Verzeichnisname und Ähnliches beinhalten.
  • In 11 bis 13, auf die nun Bezug genommen wird, wird eine Menge von Bildschirmkopien gemäß einer Ausführungsform dargestellt, die Beispiele der Verwendung von Anwendungskontext in einem Textnachrichten-Bereich zeigen, um einen Bezug für ein Pronomen abzuleiten. 11 zeigt Bildschirm 1150, welcher angezeigt werden kann, während der Benutzer in einer Textnachrichtenanwendung ist. 12 zeigt den Bildschirm 1250, nachdem der virtuelle Assistent 1002 im Kontext der Textnachrichtenanwendung aktiviert wurde. In diesem Beispiel präsentiert der virtuelle Assistent 1002 dem Benutzer Aufforderung 1251. Bei einer Ausführungsform kann der Benutzer Spracheingabe durch Antippen von Mikrofon-Icon 1252 bereitstellen. Bei einer anderen Ausführungsform ist der Assistent 1002 in der Lage, sprachliche Eingabe zu jeder Zeit zu akzeptieren und erfordert nicht, dass der Benutzer Mikrofon-Icon 1252 antippt, bevor er Eingabe bereitstellt; folglich kann Icon 1252 eine Erinnerung sein, dass der Assistent 1002 auf gesprochene Eingabe wartet.
  • In 13 wurde der Benutzer durch einen Dialog mit dem virtuellen Assistenten 1002 aktiv, wie auf Bildschirm 1253 gezeigt. Die Spracheingabe des Benutzers „Rufe ihn an” wurde zurückgegeben und der virtuelle Assistent 1002 antwortet, dass er eine bestimmte Person auf einer bestimmten Telefonnummer anrufen wird. Um die mehrdeutige Eingabe des Benutzers zu interpretieren, verwendet der virtuelle Assistent 1002 eine Kombination aus mehreren Quellen von Kontext, um einen Bezug für ein Pronomen, wie hierin genauer dargelegt, abzuleiten.
  • In 17 bis 20, auf die nun Bezug genommen wird, wird ein anderes Beispiel der Verwendung von gegenwärtigem Anwendungskontext dargestellt, um gemäß einer Ausführungsform einen Befehl zu interpretieren und zu operationalisieren.
  • In 17 wird dem Benutzer sein oder ihr E-Mail-Eingang 1750 dargestellt, und er/sie wählt eine bestimmte E-Mail-Nachricht 1751 zur Ansicht aus. 18 zeigt die E-Mail-Nachricht 1751, nachdem sie zur Ansicht ausgewählt wurde. In diesem Beispiel enthält die E-Mail-Nachricht 1751 ein Bild.
  • In 19 hat der Benutzer den virtuellen Assistenten 1002 von innerhalb der E-Mail-Anwendung aktiviert, während der Ansicht der E-Mail-Nachricht 1751. Bei einer Ausführungsform bewegt sich die Anzeige der E-Mail-Nachricht 1751 nach oben, um auf dem Bildschirm für Aufforderung 150 des virtuellen Assistenten 1002 Platz zu machen. Diese Anzeige untermauert die Vorstellung, dass der virtuelle Assistent 1002 Hilfestellung in dem Kontext der gegenwärtig betrachteten E-Mail-Nachricht 1751 anbietet. Dementsprechend wird die Eingabe des Benutzers für den virtuellen Assistenten 1002 in dem gegenwärtigen Kontext, wobei die E-Mail-Nachricht 1751 betrachtet wird, interpretiert.
  • In 20 hat der Benutzer einen Befehl 2050 zur Verfügung gestellt: „Antworte lass uns dies sofort zum Marketing bringen”. Kontextinformation, einschließlich Information über die E-Mail-Nachricht 1751 und die E-Mail-Anwendung, in welcher sie dargestellt wird, wird verwendet, um den Befehl 2050 zu interpretieren. Dieser Kontext kann verwendet werden, um die Bedeutung der Wörter „Antworte” und „dies” bei Befehl 2050 zu bestimmen, und aufzuklären, wie eine E-Mail-Kompositions-Transaktion für einen bestimmten Empfänger bei einem bestimmten Nachrichtenstrang aufzubauen ist. In diesem Fall ist der virtuelle Assistent 1002 in der Lage, auf Kontextinformationen zuzugreifen, um zu bestimmen, dass „Marketing” sich auf einen Empfänger namens John Applecore bezieht, und ist in der Lage, eine zu verwendende E-Mail-Adresse für den Empfänger zu bestimmen. Dementsprechend stellt der virtuelle Assistent 1002 E-Mail 2052 für den Benutzer zur Genehmigung und zum Versenden zusammen. Auf diese Weise ist der virtuelle Assistent 1002 in der Lage, einen Task (Zusammenstellen einer E-Mail-Nachricht) basierend auf Benutzereingabe zusammen mit Kontextinformation, die den Zustand der gegenwärtigen Anwendung beschreibt, zu operationalisieren.
  • Anwendungskontext kann auch helfen, die Bedeutung der Benutzerabsicht zwischen Anwendungen zu identifizieren. In 21, auf die nun Bezug genommen wird, wird ein Beispiel gezeigt, bei welchem der Benutzer den virtuellen Assistenten 1002 in dem Kontext der Darstellung einer E-Mail-Nachricht (wie E-Mail-Nachricht 1751) aufgerufen hat, aber der Befehl des Benutzers 2150 sagt „Sende ihm einen Text ...”. Der Befehl 2150 wird von dem virtuellen Assistenten 1002 so interpretiert, dass eine Textnachricht anstelle einer E-Mail, gesendet werden soll. Jedoch indiziert das Wort „ihm”, dass der gleiche Empfänger (John Appleseed) beabsichtigt ist. Der virtuelle Assistent 1002 erkennt also, dass die Kommunikation zu diesem Empfänger gehen soll, jedoch auf einem anderen Kanal (eine Textnachricht zu der Telefonnummer der Person), die aus Kontaktinformationen erhalten wird, die auf der Vorrichtung gespeichert sind. Dementsprechend stellt der virtuelle Assistent 1002 Textnachricht 2152 für den Benutzer zur Genehmigung und zum Senden zusammen.
  • Beispiele von Kontextinformation, die von Anwendung(en) erhalten werden können, beinhalten, ohne Beschränkung:
    • • Identität der Anwendung;
    • • gegenwärtige(s) Objekt oder Objekte, die in der Anwendung bearbeitet werden, wie gegenwärtige E-Mail-Nachricht, gegenwärtig gespieltes Lied oder Liedliste oder Kanal, gegenwärtiges Buch oder Film oder Foto, gegenwärtiger KalenderTag/Woche/Monat, gegenwärtige Erinnerungsliste, gegenwärtiger Telefonanruf, gegenwärtige Textnachrichtenunterhaltung, gegenwärtiger Kartenstandort, gegenwärtige Webseite oder Suchanfrage, gegenwärtige Stadt oder anderer Standort für Standort-sensitive Anwendungen, gegenwärtiges soziales Netzwerk-Profil oder jegliche andere anwendungsspezifische Vorstellung von gegenwärtigen Objekten;
    • • Namen, Orte, Daten und andere identifizierbare Entitäten oder Werte, die aus den gegenwärtigen Objekten extrahiert werden können.
  • Persönliche Datenbanken 1058
  • Eine andere Quelle von Kontextdaten ist/sind die persönlichen Datenbank(en) 1058 des Benutzers auf einer Vorrichtung, wie einem Telefon, wie beispielsweise ein Adressbuch, welches Namen und Telefonnummern enthält. In 14, auf die nun Bezug genommen wird, ist ein Beispiel einer Bildschirmkopie 1451 dargestellt, gemäß einer Ausführungsform, bei welcher der virtuelle Assistent 1002 zum Eindeutig-Machen eines Namens auffordert. Hier hat der Benutzer gesagt „Rufe Herb an”; der virtuelle Assistent 1002 fordert den Benutzer auf, zwischen den passenden Kontakten in dem Adressbuch des Benutzers zu wählen. Folglich wird das Adressbuch als eine Quelle von persönlichem Daten-Kontext verwendet.
  • Bei einer Ausführungsform wird persönliche Information des Benutzers aus den persönlichen Datenbanken 1058 zur Verwendung als Kontext zum Interpretieren und/oder Operationalisieren der Benutzerabsicht oder anderer Funktionen des virtuellen Assistenten 1002 erhalten. Beispielsweise können Daten in einer Kontaktdatenbank eines Benutzers verwendet werden, um Mehrdeutigkeit beim Interpretieren eines Befehls eines Benutzers zu reduzieren, wenn der Benutzer zu jemandem lediglich mittels Vorname Bezug nimmt. Beispiele von Kontextinformation, die aus persönlichen Datenbanken 1058 erhalten werden können, beinhalten, ohne Beschränkung:
    • • die Kontaktdatenbank des Benutzers (Adressbuch) – beinhaltend Information über Namen, Telefonnummern, physikalische Adressen, Netzwerkadressen, Kontoidentifizierung, wichtige Daten – über Personen, Firmen, Organisationen, Orte, Webseiten und andere Identitäten, auf die sich ein Benutzer beziehen könnte,
    • • der eigene Name des Benutzers, bevorzugte Aussprachen, Adressen, Telefonnummern und Ähnliches;
    • • die vom Benutzer benannten Beziehungen, wie Mutter, Vater, Schwester, Chef und Ähnliches;
    • • die Kalenderdaten des Benutzers, beinhaltend Kalenderereignisse, Benennung spezieller Tage oder jegliche andere benannte Einträge, auf die sich ein Benutzer beziehen könnte;
    • • die Erinnerungen oder Tasklisten des Benutzers, beinhaltend Listen von zu erledigenden, zu erinnernden oder zu besorgenden Dingen, auf welcher sich der Benutzer beziehen könnte;
    • • Namen von Liedern, Genres, Liedlisten und andere Daten, die mit der Musikbibliothek des Benutzers assoziiert sind, auf die sich der Benutzer beziehen könnte;
    • • Personen, Orte, Kategorien, Tags, Label oder andere symbolische Namen auf Fotos oder Videos oder anderen Medien in der Medienbibliothek des Benutzers;
    • • Titel, Autoren, Genres oder andere symbolische Namen in Büchern oder anderer Literatur in der persönlichen Bibliothek des Benutzers.
  • Dialoghistorie 1052
  • Eine andere Quelle von Kontextdaten ist die Dialoghistorie 1052 des Benutzers mit dem virtuellen Assistenten 1002. Eine solche Historie kann beispielsweise Bezugnahmen auf Bereiche, Personen, Orte usw. beinhalten. In 15, auf die nun Bezug genommen wird, ist ein Beispiel gezeigt, in welchem der virtuelle Assistent 1002 Dialogkontext verwendet, um gemäß einer Ausführungsform den Standort für einen Befehl zu erschließen. In Bildschirm 1551 fragt der Benutzer zunächst „Wie viel Uhr ist es in New York?”; der virtuelle Assistent 1002 antwortet 1552, indem er die gegenwärtige Uhrzeit in New York City bereitstellt. Der Benutzer fragt dann „Wie ist das Wetter?”. Der virtuelle Assistent 1002 verwendet die vorausgegangene Dialoghistorie, um zu erschließen, dass der für die Wetteranfrage beabsichtigte Standort der in der Dialoghistorie zuletzt erwähnte Standort ist. Deshalb stellt seine Antwort 1553 Wetterinformationen für New York City zur Verfügung.
  • Falls der Benutzer, in einem weiteren Beispiel, sagt „Finde Kamera-Geschäfte in der Nähe” und anschließend, nach dem Prüfen der Ergebnisse, sagt „Wie sieht's in San Francisco aus?”, kann der Assistent den Dialogkontext verwenden, um zu bestimmen, dass „Wie sieht's aus?” bedeutet „Mache den gleichen Task (Finde Kamera-Geschäfte)” und „in San Francisco” bedeutet „Ändere den Ort der Suche von hier auf San Francisco”. Der virtuelle Assistent 1002 kann als Kontext auch vorangegangene Einzelheiten eines Dialogs, wie vorangegangene Ausgabe, die dem Benutzer bereitgestellt wird, verwenden. Beispielsweise könnte der virtuelle Assistent 1002, falls er eine kluge Antwort, die als Humor beabsichtigt ist, wie „Auf jeden Fall, Du bist der Boss” verwendet, erinnern, dass er dies bereits gesagt hat und so verhindern, diese Phrase innerhalb einer Dialogsitzung zu wiederholen.
  • Beispiele von Kontextinformation aus Dialoghistorie und Speicher des virtuellen Assistenten beinhalten, ohne Beschränkung:
    • • Personen, die in einem Dialog erwähnt sind;
    • • Orte und Standorte, die in einem Dialog erwähnt sind;
    • • gegenwärtig fokussierter Zeitrahmen;
    • • gegenwärtig fokussierter Anwendungs-Bereich, wie E-Mail oder Kalender;
    • • gegenwärtig fokussierter Task, wie Lesen einer E-Mail oder Erstellen eines Kalendereintrags;
    • • gegenwärtig fokussierte Bereichs-Objekte, wie eine E-Mail-Nachricht, die gerade gelesen wurde oder ein Kalendereintrag, der gerade erzeugt wurde;
    • • gegenwärtiger Zustand eines Dialogs oder Transaktionsflusses, wie ob eine Frage gestellt wird und welche möglichen Antworten erwartet werden;
    • • Historie von Benutzeranfragen, wie „gute italienische Restaurants”;
    • • Historie von Ergebnissen von Benutzeranfragen, wie Mengen von zurückgegebenen Restaurants;
    • • Historie von Phrasen, die von dem Assistenten im Dialog verwendet werden;
    • • Fakten, die dem Assistenten vom Benutzer mitgeteilt wurden, wie „Meine Mutter ist Rebecca Richards” und „Ich mochte dieses Restaurant”.
  • In 25A und 25B, auf die nun Bezug genommen wird, wird gemäß einer Ausführungsform eine Serie von Bildschirmkopien dargestellt, welche ein Beispiel der Verwendung von früherem Dialogkontext zeigen. In 25A hat der Benutzer eine Anfrage 2550 für irgendeine neue E-Mail von John eingegeben. Der virtuelle Assistent 1002 antwortet, indem er eine E-Mail-Nachricht 2551 von John anzeigt. In 25B hat der Benutzer den Befehl 2552 „Antworte lass uns dies sofort zum Marketing bringen” eingegeben. Der virtuelle Assistent 1002 interpretiert den Befehl 2552 unter Verwendung von früherem Dialogkontext; konkret wird der Befehl so interpretiert, dass er sich auf die E-Mail-Nachricht 2551, die in 25 angezeigt wird, bezieht.
  • Vorrichtungssensordaten 1056
  • In einer Ausführungsform kann eine physikalische Vorrichtung, auf die der virtuelle Assistent 1002 läuft, einen oder mehrere Sensoren aufweisen. Solche Sensoren können Quellen von Kontextinformation zur Verfügung stellen. Beispiele solcher Information beinhalten, ohne Beschränkung:
    • • den gegenwärtigen Standort des Benutzers;
    • • die lokale Zeit am gegenwärtigen Standort des Benutzers;
    • • die Position, Orientierung und Bewegung der Vorrichtung;
    • • das gegenwärtige Lichtlevel, die Temperatur und andere Maße der Umwelt;
    • • die Eigenschaften der verwendeten Mikrofone und Kameras;
    • • die gegenwärtig verwendeten Netzwerke und Signaturen von verbundenen Netzwerken, beinhaltend Ethernet, Wi-Fi und Bluetooth. Signaturen beinhalten MAC-Adressen von Netzwerkzugriffspunkten, zugewiesene IP-Adressen, Vorrichtungsidentifizierungen wie Bluetooth-Namen, Frequenzkanäle und andere Eigenschaften von drahtlosen Netzwerken.
  • Sensoren können von jeglichem Typ sein, einschließlich beispielsweise: ein Beschleunigungsmesser, Kompass, GPS-Einheit, Höhenmesser, Lichtsensor, Thermometer, Barometer, Uhr, Netzwerkschnittstelle, Stromspeicher-Test-Schaltkreis und Ähnliches.
  • Anwendungspräferenzen und Verwendungshistorie 1072
  • Bei einer Ausführungsform werden Informationen, die die Präferenzen und Einstellungen des Benutzers für verschiedene Anwendungen beschreiben, wie auch seine oder ihre Verwendungshistorie 1072, als Kontext zum Interpretieren und/oder Operationalisieren der Benutzerabsicht oder anderer Funktionen des virtuellen Assistenten 1002 verwendet. Beispiele von solchen Präferenzen und Historie beinhalten, ohne Beschränkung:
    • • Verknüpfungen, Favoriten, Lesezeichen, Listen von Freunden, oder jegliche andere Zusammenstellung von Nutzerdaten über Personen, Firmen, Adressen, Telefonnummern, Orte, Webseiten, E-Mail-Nachrichten oder jegliche andere Referenzen;
    • • auf der Vorrichtung kürzlich ausgeführte Anrufe;
    • • kürzliche Textnachrichten-Unterhaltungen, einschließlich der an den Konversationen Beteiligten;
    • • kürzliche Anfragen nach Karten oder Richtungen;
    • • kürzliche Web-Suchen und URLs;
    • • Aktien, die in einer Aktien-Anwendung gelistet sind;
    • • kürzlich gespielte(s) Lieder oder Video oder andere Medien;
    • • die Bezeichnung von Alarmen, die bei Alarm-Anwendungen eingestellt sind;
    • • die Bezeichnungen von Anwendungen oder anderen digitalen Objekten auf der Vorrichtung;
    • • die bevorzugte Sprache des Benutzers oder die am Standort des Benutzers verwendete Sprache.
  • In 16, auf die nun Bezug genommen wird, ist ein Beispiel der Verwendung einer Telefon-Favoritenliste als eine Quelle von Kontext gemäß einer Ausführungsform dargestellt. Bildschirm 1650 zeigt eine Liste von Favoriten-Kontakten 1651. Falls der Benutzer die Eingabe „Rufe John an” bereitstellt, kann diese Liste von Favoriten-Kontakten 1651 verwendet werden, um zu bestimmen, dass sich „John” auf die Mobilnummer von John Appleseed bezieht, da diese Nummer in der Liste erscheint.
  • Ereigniskontext 2706
  • Bei einer Ausführungsform ist der virtuelle Assistent 1002 in der Lage, Kontext, der mit asynchronen Ereignissen, die unabhängig von der Interaktion des Benutzers mit dem virtuellen Assistenten 1002 auftreten, zu verwenden. In 22 bis 24, auf die nun Bezug genommen wird, ist ein Beispiel gemäß einer Ausführungsform dargestellt, welches Aktivieren des virtuellen Assistenten 1002 zeigt, nachdem ein Ereignis auftritt, welches Ereigniskontext oder Alarmkontext bereitstellt. In diesem Fall ist das Ereignis eine eingehende Textnachricht 2250, wie in 22 gezeigt. In 23 wurde der virtuelle Assistent 1002 aufgerufen und die Textnachricht 2250 wird zusammen mit Eingabeaufforderung 1251 angezeigt. Bei 24 hat der Benutzer den Befehl „Rufe ihn an” 2450 eingegeben. Der virtuelle Assistent 1002 verwendet den Ereigniskontext, um den Befehl eindeutig zu machen, indem er interpretiert, dass „ihn” die Person meint, die die eingehende Textnachricht 2250 gesendet hat. Der virtuelle Assistent 1002 verwendet weiterhin den Ereigniskontext, um zu bestimmen, welche Telefonnummer für den ausgehenden Anruf zu verwenden ist. Bestätigungsnachricht 2451 wird gezeigt, um anzugeben, dass der Anruf ausgeführt wird.
  • Beispiele von Alarmkontextinformation beinhalten, ohne Beschränkung:
    • • eingehende Textnachrichten oder Seiten;
    • • eingehende E-Mail-Nachrichten;
    • • eingehende Telefonanrufe;
    • • Erinnerungs-Mitteilungen oder Task-Alarme;
    • • Kalenderalarme;
    • • Wecker, Timer oder andere zeitbasierte Alarme;
    • • Mitteilungen von Ergebnissen oder anderen Ereignissen von Spielen;
    • • Mitteilungen von finanziellen Ereignissen wie Aktienpreis-Alarme;
    • • Nachrichten-Kurzmeldungen (News Flashes) oder andere Rundfunkmitteilungen;
    • • Push-Mitteilungen aus jeglicher Anwendung.
  • Persönliche akustische Kontextdaten 1080
  • Beim Interpretieren von Spracheingabe kann der virtuelle Assistent 1002 auch die akustische Umgebung, in welcher die Sprache eingegeben wird, berücksichtigen. Beispielsweise sind die Geräuschprofile eines ruhigen Büros unterschiedlich von denen von Automobilen oder öffentlichen Orten. Falls ein Spracherkennungssystem akustische Profildaten identifizieren und speichern kann, können diese Daten auch als Kontextinformation zur Verfügung gestellt werden. Wenn diese mit anderer Kontextinformation wie den Eigenschaften des verwendeten Mikrofons, dem gegenwärtigen Ort und dem gegenwärtigen Dialogzustand kombiniert wird, kann akustischer Kontext beim Erkennen und Interpretieren von Eingaben behilflich sein.
  • Darstellen und Zugreifen auf Kontext
  • Wie voranstehend beschrieben kann der virtuelle Assistent 1002 Kontextinformationen aus jeglichen aus einer Reihe unterschiedlicher Quellen verwenden. Jeglicher aus einer Reihe von Mechanismen kann zur Darstellung von Kontext verwendet werden, so dass dieser für den virtuellen Assistenten 1002 verfügbar gemacht werden kann. In 8a bis 8d, auf die nun Bezug genommen wird, werden mehrere Beispiele von Darstellungen von Kontextinformation dargestellt, wie sie in Verbindung mit verschiedenen Ausführungsformen der vorliegenden Erfindung verwendet werden können.
  • Darstellen von Personen, Orten, Zeiten, Bereichen, Tasks und Objekten
  • 8a zeigt Beispiele 801 bis 809 von Kontextvariablen, die einfache Eigenschaften wie Geo-Koordinaten des gegenwärtigen Standorts des Benutzers darstellen. Bei einer Ausführungsform können die gegenwärtigen Werte für eine Kernmenge von Kontextvariablen erhalten werden. Beispielsweise kann es einen gegenwärtigen Benutzer, einen gegenwärtig fokussierten Ort, einen gegenwärtig fokussierten Zeitrahmen, einen gegenwärtig fokussierten Anwendungs-Bereich, einen gegenwärtig fokussierten Task und ein gegenwärtig fokussiertes Bereichs-Objekt geben. Eine Datenstruktur, wie beispielsweise in 8a gezeigt, kann für eine solche Darstellung verwendet werden.
  • 8b zeigt Beispiel 850 einer komplexeren Darstellung, die zum Speichern von Kontextinformation für einen Kontakt verwendet werden kann. Auch wird ein Beispiel 851 einer Darstellung beinhaltend Daten für einen Kontakt gezeigt. Bei einer Ausführungsform kann ein Kontakt (oder eine Person) als ein Objekt mit Eigenschaften für Name, Geschlecht, Adresse, Telefonnummer und anderen Eigenschaften, die in einer Kontaktdatenbank gehalten werden können, dargestellt sein. Ähnliche Darstellungen können verwendet werden für Orte, Zeiten, Anwendungs-Bereiche, Tasks, Bereichs-Objekte und Ähnliches.
  • Bei einer Ausführungsform sind Mengen von gegenwärtigen Werten eines bestimmten Typs dargestellt. Solche Mengen können sich auf gegenwärtige Personen, gegenwärtige Orte, gegenwärtige Zeiten und Ähnliches beziehen.
  • Bei einer Ausführungsform werden Kontextwerte in einer Historie angeordnet, so dass bei Iteration N ein Rahmen von aktuellen Kontextwerten und ebenso ein Rahmen von Kontextwerten, die bei Iteration N – 1 aktuell waren, vorliegt, und zurückgeht bis zu einer gewünschten Grenze der Länge der Historie. 8c stellt ein Beispiel eines Arrays 811 dar, welches eine Historie von Kontextwerten beinhaltet. Konkret stellt jede Spalte von 8c eine Kontextvariable dar, wobei die Zeilen unterschiedlichen Zeiten entsprechen.
  • Bei einer Ausführungsform werden Mengen von typbezogenen Kontextvariablen in Historien wie in 8d gezeigt angeordnet. In dem Beispiel wird eine Menge 861 von Kontextvariablen, die sich auf Personen beziehen, zusammen mit einer anderen Menge 871 von Kontextvariablen, die sich auf Orte beziehen, gezeigt. Folglich können relevante Kontextdaten für eine bestimmte Zeit in der Historie abgerufen und angewendet werden.
  • Ein Fachmann wird erkennen, dass die bestimmten in 8a bis 8d gezeigten Darstellungen lediglich beispielhaft sind, und dass viele andere Mechanismen und/oder Datenformate zur Darstellung von Kontext verwendet werden können. Beispiele beinhalten:
    • • Bei einer Ausführungsform kann der gegenwärtige Benutzer des Systems auf spezielle Weise dargestellt sein, so dass der virtuelle Assistent 1002 weiß, wie der Benutzer zu adressieren ist und wie auf die Heim-, Arbeitsplatz-, Mobiltelefonnummer des Benutzers und Ähnliches Bezug zu nehmen ist.
    • • Bei einer Ausführungsform können die Beziehungen zwischen Personen dargestellt sein, was dem virtuellen Assistenten 1002 ermöglicht, Bezugnahmen wie „meine Mutter” oder „das Haus meines Chefs” zu verstehen.
    • • Orte können als Objekte mit Eigenschaften wie Namen, Straßenadresse, Geo-Koordinaten und Ähnliches dargestellt sein.
    • • Zeiten können als Objekte mit Eigenschaften beinhaltend Weltzeit, Zeitzonenversatz, Auflösung (wie Jahr, Monat, Tag, Stunde, Minute oder Sekunde) dargestellt sein. Zeitobjekte können auch symbolische Zeiten wie „heute”, „diese Woche”, „dieses (bevorstehende) Wochenende”, „nächste Woche”, „Geburtstag von Annie” und Ähnliches darstellen. Zeitobjekte können auch Zeitdauer oder Zeitpunkte darstellen.
    • • Kontext kann auch bezogen auf einen Anwendungsbereich, der einen Dienst oder Anwendung oder Bereich eines Diskurs darstellt, zur Verfügung gestellt sein, wie E-Mail, Textnachricht, Telefon, Kalender, Kontakte, Fotos, Videos, Karten, Wetter, Erinnerungen, Uhr, Web-Browser, Facebook, Pandora usw. Der gegenwärtige Bereich gibt an, welche dieser Bereiche relevant sind.
    • • Kontext kann auch eine oder mehrere Tasks oder auszuführende Operationen innerhalb eines Bereichs definieren. Beispielsweise gibt es innerhalb des E-Mail-Bereichs Tasks wie E-Mail-Nachricht lesen, E-Mail suchen, neue E-Mail erstellen und Ähnliches.
    • • Bereichs-Objekte sind Datenobjekte, die mit den verschiedenen Bereichen assoziiert sind. Beispielsweise operiert der E-Mail-Bereich auf E-Mail-Nachrichten, der Kalender-Bereich operiert auf Kalenderereignisse und Ähnliches.
  • Zum Zwecke der hierin wiedergegebenen Beschreibung wird auf diese Darstellungen von Kontextinformation als Kontextvariablen eines bestimmten Typs Bezug genommen. Beispielsweise ist eine Darstellung des gegenwärtigen Benutzers eine Kontextvariable vom Typ Person.
  • Darstellen von Kontext Ableitung
  • Bei einer Ausführungsform ist die Ableitung von Kontextvariablen ausdrücklich dargestellt, so dass sie bei der Informationsverarbeitung verwendet werden kann. Die Ableitung von Kontextinformation ist eine Charakterisierung der Quelle und/oder Mengen von Rückschlüssen, die gemacht worden sind, um auf die Information zu schließen oder diese zu erhalten. Beispielsweise könnte ein Person-Kontextwert 851 wie in 8b gezeigt von einem Text-Nachrichten-Bereichs-Objekt abgeleitet worden sein, welches von Ereigniskontext 2706 erfasst wurde. Diese Quelle des Kontextwertes 851 kann dargestellt sein.
  • Darstellen einer Historie von Benutzeranfragen und/oder Absicht
  • Bei einer Ausführungsform kann eine Historie der Anfragen des Benutzers gespeichert sein. Bei einer Ausführungsform kann auch eine Historie der Tiefenstruktur, die die Benutzerabsicht (wie aus der Verarbeitung natürlicher Sprache abgeleitet) darstellt, gespeichert sein. Dies ermöglicht dem virtuellen Assistenten 1002 den Sinn von neuen Eingaben in dem Kontext von vorangegangenen interpretierten Eingaben zu verstehen. Fragt der Benutzer beispielsweise „Wie ist das Wetter in New York?” könnte Sprachinterpretierer 2770 die Frage so interpretieren, dass sie sich auf den Ort New York bezieht. Falls der Benutzer anschließend sagt „Wie ist es an diesem Wochenende?” kann der virtuelle Assistent 1002 zu dieser vorangegangenen Interpretation Bezug nehmen, um zu bestimmen, dass „Wie ist es” als „Wie ist das Wetter” interpretiert werden soll.
  • Darstellen einer Historie von Ergebnissen
  • Bei einer Ausführungsform kann eine Historie der Ergebnisse von Benutzeranfragen in der Form von Bereichsobjekten gespeichert sein. Beispielsweise kann die Benutzeranfrage „Finde mir einige gute italienische Restaurants” eine Menge von Bereichsobjekten zurückgeben, die Restaurants darstellen. Falls der Benutzer dann einen Befehl wie „Rufe bei Amilio's an” eingibt, kann der virtuelle Assistent 1002 die Ergebnisse nach Restaurants namens Amilio's innerhalb der Suchergebnisse durchsuchen, welches eine geringere Menge als alle möglichen Orte, die angerufen werden können, darstellt.
  • Verzögertes Anbinden von Kontextvariablen
  • Bei einer Ausführungsform können Kontextvariablen Informationen darstellen, die auf Abruf (on demand) abgerufen oder abgeleitet werden. Beispielsweise kann eine Kontextvariable, die den aktuellen Ort darstellt, wenn auf sie zugegriffen wird, eine API aufrufen, die aktuelle Ortsdaten von einer Vorrichtung abruft, und führt anschließend andere Verarbeitung zum Berechnen beispielsweise einer Straßenadresse aus. Der Wert dieser Kontextvariable kann für eine Zeitspanne erhalten werden, abhängig von einer Caching-Strategie.
  • Suchen von Kontext
  • Der virtuelle Assistent 1002 kann jeglichen aus Reihe von unterschiedlichen Ansätzen zum Suchen nach relevanter Kontextinformation verwenden, um Informationsverarbeitungsprobleme zu lösen. Beispiele von unterschiedlichen Typen von Suchen beinhalten, ohne Beschränkung:
    • • Suche mit Kontextvariablen-Name. Falls der Name einer benötigten Kontextvariable bekannt ist, wie „Aktueller Benutzer-Vorname”, kann der virtuelle Assistent 1002 nach Instanzen hiervon suchen. Falls eine Historie gehalten wird, kann der virtuelle Assistent 1002 aktuelle Werte zuerst und anschließend frühere Daten konsultieren, bis ein Treffer gefunden wird.
    • • Suche mit Kontextvariablen-Typ. Falls der Typ einer benötigten Kontextvariable bekannt ist, wie Person, kann der virtuelle Assistent 1002 nach Instanzen von Kontextvariablen dieses Typs suchen. Falls eine Historie gehalten wird, kann der virtuelle Assistent 1002 zunächst die aktuellen Werte suchen, und anschließend frühere Werte konsultieren, bis ein Treffer gefunden wird.
  • In einer Ausführungsform wird die Suche beendet, sobald ein Treffer gefunden wurde, falls das aktuelle Informationsverarbeitungsproblem einen einzigen Treffer erfordert. Falls mehrere Treffer erlaubt sind, können passende Treffer abgerufen werden, bis eine Grenze erreicht wird.
  • Falls situationsgerecht kann der virtuelle Assistent 1002 bei einer Ausführungsform seine Suche auf Daten, die eine bestimmte Ableitung aufweisen, beschränken. Falls der virtuelle Assistent 1002 beispielsweise nach Personen-Objekten innerhalb eines Task-Flusses für E-Mail sucht, kann er nur Kontextvariablen in Betracht ziehen, deren Ableitung eine Anwendung, die mit diesem Bereich assoziiert ist, darstellt.
  • Bei einer Ausführungsform verwendet der virtuelle Assistent 1002 Regeln, um Treffer gemäß Heuristiken einzustufen, unter Verwendung jeglicher verfügbarer Eigenschaften von Kontextvariablen. Beispielsweise interpretiert der virtuelle Assistent 1002 bei der Verarbeitung von Benutzereingabe beinhaltend einen Befehl „Sage ihr, dass ich mich verspäte” den Begriff „ihr” durch Kontextreferenz. Dadurch kann der virtuelle Assistent 1002 eine Einstufung anwenden, um eine Präferenz für Personen-Objekte anzugeben, deren Ableitung Anwendungsverwendungshistorien für Kommunikationsanwendungen wie Textnachrichten und E-Mail darstellt. Bei einem weiteren Beispiel kann der virtuelle Assistent 1002 beim Interpretieren eines Befehls „Rufe sie an” eine Einstufung anwenden, um Personen-Objekte, die Telefonnummern aufweisen, gegenüber denjenigen, deren Telefonnummern nicht bekannt sind, zu bevorzugen. Bei einer Ausführungsform können Einstufungsregeln mit Bereichen assoziiert sein. Beispielsweise können unterschiedliche Einstufungsregeln verwendet werden, um Personen-Variablen für E-Mail- und Telefonbereiche einzustufen. Ein Fachmann wird erkennen, dass jegliche solche Einstufungsregel(n) erzeugt und/oder angewendet werden kann/können, abhängig von der bestimmten Darstellung und Zugriff auf benötigte Kontextinformation.
  • Verwendung von Kontext zur Verbesserung der Verarbeitung des virtuellen Assistenten
  • Wie voranstehend beschrieben lässt sich Kontext auf eine Vielfalt von Berechnungen und Rückschlüssen in Zusammenhang mit der Operation des virtuellen Assistenten 1002 anwenden. In 2, auf die nun Bezug genommen wird, ist ein Flussdiagramm dargestellt, welches gemäß einer Ausführungsform ein Verfahren 10 zur Verwendung von Kontext bei verschiedenen Verarbeitungsstufen beim virtuellen Assistenten 1002 zeigt.
  • Das Verfahren 10 kann in Zusammenhang mit einer oder mehrerer Ausführungsformen des virtuellen Assistenten 1002 implementiert sein.
  • Bei zumindest einer Ausführungsform kann das Verfahren 10 betreibbar sein, um verschiedene Typen von Funktionen, Operationen, Aktionen und/oder anderen Merkmalen wie beispielsweise eine oder mehr der folgenden (oder Kombinationen hieraus) auszuführen und/oder zu implementieren:
    • • Ausführen einer Flussschleife einer Schnittstellensteuerung von einer interaktiven Schnittstelle zwischen dem Benutzer und virtuellen Assistenten 1002. Zumindest eine Iteration des Verfahrens 10 kann als eine Lage (ply) in der Unterhaltung dienen. Eine interaktive Schnittstelle ist eine Schnittstelle, bei der der Benutzer und Assistent 1002 kommunizieren, indem sie in einer interaktiven Weise Äußerungen hin und her machen.
    • • Bereitstellen von ausführendem Steuerungsfluss für virtuellen Assistenten 1002. Dies bedeutet, dass die Prozedur das Sammeln von Eingabe, Verarbeiten der Eingabe, Generieren von Ausgabe und Präsentieren der Ausgabe zu dem Benutzer steuert.
    • • Koordinieren von Kommunikationen zwischen Komponenten des virtuellen Assistenten 1002. Dies bedeutet er kann anweisen, wo die Ausgabe einer Komponente eine andere versorgt, und wo die gesamte Eingabe aus der Umgebung und Aktion auf der Umgebung auftreten kann.
  • Bei zumindest einigen Ausführungsformen können Teile des Verfahrens 10 auch auf anderen Vorrichtungen und/oder Systemen eines Computer-Netzwerks implementiert sein.
  • Gemäß spezifischer Ausführungsformen können mehrere Instanzen oder Threads von Verfahren 10 gleichzeitig implementiert und/oder initiiert sein, durch die Verwendung von einem oder mehreren Prozessor(en) 63 und/oder anderen Kombinationen von Hardware und/oder Hardware und Software. Bei zumindest einer Ausführungsform kann/können ein oder mehrere oder ausgewählte Teil(e) von Verfahren 10 auf einem oder mehreren Client(s) 1304, auf einem oder mehreren Server(n) 1340 und/oder Kombinationen hieraus implementiert sein.
  • Beispielsweise können bei zumindest einigen Ausführungsformen verschiedene Aspekte, Merkmale und/oder Funktionalitäten von Verfahren 10 mittels Software-Komponenten, Netzwerkdiensten, Datenbanken und/oder Ähnlichem oder jeglicher Kombination hieraus durchgeführt, implementiert und/oder initiiert sein.
  • Gemäß unterschiedlicher Ausführungsformen kann/können ein(e) oder mehrere unterschiedliche Threads oder Instanzen von Verfahren 10 in Reaktion auf das Erkennen von einer oder mehreren Bedingungen oder Ereignissen, die ein Kriterium oder mehrere unterschiedliche Typen von Kriterien (wie beispielsweise minimale Schwellwertkriterien) zum Auslösen des Initiierens von zumindest einer Instanz von Verfahren 10 erfüllt/erfüllen, initiiert werden. Beispiele von verschiedenen Typen von Bedingungen oder Ereignissen, die Initiieren und/oder Implementieren von einem/einer oder mehreren unterschiedlichen Threads oder Instanzen des Verfahrens auslösen, können enthalten, aber sind nicht beschränkt auf eine oder mehr der folgenden (oder Kombinationen hieraus):
    • • Eine Benutzer-Sitzung mit einer Instanz des virtuellen Assistenten 1002, wie beispielsweise, aber nicht beschränkt auf, eine oder mehrere von:
    • • eine Anwendung einer mobilen Vorrichtung, die beispielsweise eine Anwendung einer mobilen Vorrichtung startet, die eine Ausführungsform des virtuellen Assistenten 1002 implementiert;
    • • eine Computer-Anwendung, die beispielsweise eine Anwendung startet, die eine Ausführungsform des virtuellen Assistenten 1002 implementiert;
    • • Drücken einer dedizierten Taste auf einer mobilen Vorrichtung, wie „Spracheingabe-Taste”;
    • • eine Taste auf einer peripheren Vorrichtung, die mit einem Computer oder einer mobilen Vorrichtung verbunden ist, wie ein Headset, Telefon-Handgerät oder Basisstation, ein(e) GPS-Navigationssystem, Unterhaltungsgerät, Fernsteuerung oder jegliche andere Vorrichtung mit einem Taste, der mit dem Aufrufen von Assistenz assoziiert sein könnte;
    • • eine Web-Sitzung, die von einem Web-Browser gestartet wird, auf einer Webseite, die den virtuellen Assistenten 1002 implementiert;
    • • eine Interaktion, die von innerhalb einer existierenden Web-Browser-Sitzung gestartet wird, auf eine Webseite, die den virtuellen Assistenten 1002 implementiert, bei welcher beispielsweise der Dienst des virtuellen Assistenten 1002 angefordert wird;
    • • eine E-Mail-Nachricht, die zu einem Modalitäten-Server 1426 gesendet wird, welcher Kommunikation mit einer Ausführungsform des virtuellen Assistenten 1002 vermittelt;
    • • eine Textnachricht wird einem Modalitäten-Server 1426 gesendet, welcher Kommunikation mit einer Ausführungsform des virtuellen Assistenten 1002 vermittelt;
    • • ein Telefonanruf wird zu einem Modalitäten-Server 1434 gemacht, welcher Kommunikation mit einer Ausführungsform des virtuellen Assistenten 1002 vermittelt;
    • • ein Ereignis wie ein Alarm oder eine Mitteilung wird einer Applikation gesendet, die eine Ausführungsform des virtuellen Assistenten 1002 zur Verfügung stellt,
    • • wenn eine Vorrichtung, die den virtuellen Assistenten 1002 zur Verfügung stellt, angeschaltet wird und/oder gestartet wird.
  • Gemäß unterschiedlichen Ausführungsformen können ein(e) oder mehrere unterschiedliche Threads oder Instanzen von Verfahren 10 manuell, automatisch, statisch, dynamisch, gleichzeitig und/oder aus Kombinationen hieraus initiiert werden und/oder implementiert sein. Zusätzlich können unterschiedliche Instanzen und/oder Ausführungsformen von Verfahren 10 zu einem oder mehreren unterschiedlichen Zeitintervallen initiiert werden (z. B. während eines spezifischen Zeitintervalls, zu regelmäßigen periodischen Intervallen, zu unregelmäßigen periodischen Intervallen, auf Abruf und Ähnliches).
  • Bei zumindest einer Ausführungsform kann eine gegebene Instanz von Verfahren 10 mehrere unterschiedliche Typen von Daten und/oder andere Typen von Information nutzen und/oder generieren, wenn sie spezifische Tasks und/oder Operationen, einschließlich hierin beschriebener Kontextdaten, ausführt. Daten können auch jeglichen anderen Typ von Eingabedaten/Information und/oder Ausgabedaten/Information beinhalten. Beispielsweise kann bei zumindest einer Ausführungsform zumindest eine Instanz von Verfahren 10 auf Information aus einer Quelle oder mehreren unterschiedlichen Typen von Quellen, wie beispielsweise einer oder mehreren Datenbanken, zugreifen, diese verarbeiten und/oder anderweitig nutzen. Bei zumindest einer Ausführungsform kann zumindest auf einen Teil der Datenbank-Information mittels Kommunikation mit einer oder mehrerer lokaler und/oder entfernter Speichervorrichtungen zugegriffen werden. Zusätzlich kann zumindest eine Instanz von Verfahren 10 eine oder mehrere unterschiedliche Typen von Ausgabe-Daten-Information erzeugen, die beispielsweise auf lokalen Speicher- und/oder entfernten Speicher-Vorrichtungen abgelegt sein können.
  • Bei zumindest einer Ausführungsform kann eine anfängliche Konfiguration einer gegebenen Instanz von Verfahren 10 unter Verwendung von einem oder mehreren unterschiedlichen Typen von Initialisierungsparametern ausgeführt werden. Bei zumindest einer Ausführungsform kann zumindest auf einen Teil der Initialisierungsparameter mittels Kommunikation mit einer oder mehreren lokalen und/oder entfernten Speichervorrichtungen zugegriffen werden. Bei zumindest einer Ausführungsform kann zumindest ein Teil der Initialisierungsparameter, die einer Instanz von Verfahren 10 zur Verfügung gestellt sind, dem/der Eingabedaten/Information entsprechen und/oder können hieraus abgeleitet sein.
  • In dem bestimmten Beispiel von 2 wird angenommen, dass ein einzelner Benutzer auf eine Instanz des virtuellen Assistenten 1002 über ein Netzwerk von einer Client-Anwendung mit Spracheingabefähigkeiten aus zugreift.
  • Spracheingabe wird ermittelt und interpretiert 100. Das Ermitteln kann das Präsentieren von Aufforderungen in jeglichem geeigneten Modus beinhalten. Bei verschiedenen Ausführungsformen bietet die Benutzerschnittstelle des Clients mehrere Eingabe-Modi an. Diese können beispielsweise beinhalten:
    • • eine Schnittstelle für getippte Eingabe, die eine aktive Tipp-Eingabe-Ermittlungs-Prozedur aufrufen kann;
    • • eine Schnittstelle für Spracheingabe, die eine aktive Spracheingabe-Ermittlungs-Prozedur aufrufen kann;
    • • eine Schnittstelle zur Auswahl von Eingaben aus einem Menü, die eine aktive GUI-basierte Eingabe-Ermittlung aufrufen kann.
  • Techniken zum Ausführen jeder dieser Modi sind in den oben einbezogenen verwandten Patentanmeldungen beschrieben. Ein Fachmann wird erkennen, dass andere Eingabe-Modi bereitgestellt werden können. Die Ausgabe bei Schritt 100 ist eine Menge von Kandidateninterpretationen 190 der Eingabesprache.
  • Die Menge an Kandidateninterpretationen 190 wird von einem Sprachinterpretierer 2770 (auch als natürlicher Sprachprozessor, oder NLP bezeichnet), welcher die Texteingabe parst und eine Menge von möglichen Interpretationen der Benutzerabsicht 290 generiert, verarbeitet 200.
  • Bei Schritt 300 wird/werden die Darstellung(en) der Benutzerabsicht 290 einem Dialog-Fluss-Prozessor 2780 übergeben, der eine Ausführungsform einer Dialog- und Fluss-Analyse-Prozedur wie in Zusammenhang mit 5 beschrieben implementiert. Der Dialog-Fluss-Prozessor 2780 bestimmt, welche Interpretation der Absicht am wahrscheinlichsten ist, bildet diese Interpretation auf Instanzen von Bereichs-Modellen und Parametern eines Task-Modells ab und bestimmt den nächsten Flussschritt in einem Task-Fluss.
  • Bei Schritt 400 wird der identifizierte Flussschritt ausgeführt. Bei einer Ausführungsform wird der Aufruf des Flussschrittes durch Dienste-Orchestrierungs-Komponente 2782 ausgeführt, welche eine Menge an Diensten im Auftrag der Anfrage des Benutzers aufruft. Bei einer Ausführungsform tragen diese Dienste einige Daten für ein gemeinsames Ergebnis bei.
  • Bei Schritt 500 wird eine Dialogantwort generiert. Bei Schritt 700 wird die Antwort zu der Client-Vorrichtung zur Ausgabe hierauf gesendet. Client-Software gibt diese auf dem Bildschirm (oder anderen Ausgabevorrichtungen) der Client-Vorrichtung wieder.
  • Falls der Benutzer, nach Ansicht der Antwort fertig ist 790, endet das Verfahren. Falls der Benutzer nicht fertig ist, wird eine weitere Iteration der Schleife durch Zurückgehen auf Schritt 100 initiiert.
  • Kontextinformation 1000 kann von verschiedenen Komponenten des Systems zu verschiedenen Punkten im Verfahren 10 verwendet werden. Beispielsweise kann Kontextinformation 1000, wie in 2 gezeigt, bei Schritten 100, 200, 300 und 500 verwendet werden. Weitergehende Beschreibung der Verwendung von Kontext 1000 in diesen Schritten wird nachstehend bereitgestellt. Ein Fachmann wird jedoch erkennen, dass die Verwendung von Kontextinformation nicht auf diese spezifischen Schritte beschränkt ist, und dass das System Kontextinformation bei anderen Punkten ebenso nutzen kann, ohne von den wesentlichen Charakteristiken der vorliegenden Erfindung abzuweichen.
  • Darüber hinaus wird ein Fachmann erkennen, dass unterschiedliche Ausführungsformen von Verfahren 10 zusätzliche Merkmale und/oder Operationen als jene, die für die spezifische in 2 gezeigte Ausführungsform dargestellt sind, beinhalten können, und/oder können zumindest einen Teil der Merkmale und/oder Operationen von Verfahren 10, wie für die spezifische Ausführungsform von 2 dargestellt, weglassen.
  • Verwendung von Kontext bei Sprachermittlung und Interpretation
  • In 3, auf die nun Bezug genommen wird, ist ein Flussdiagramm dargestellt, welches ein Verfahren zur Verwendung von Kontext bei Sprachermittlung und Interpretation 100 verwendet, um gemäß einer Ausführungsform Spracherkennung zu verbessern. Kontext 1000 kann beispielsweise zum Eindeutig-Machen bei Spracherkennung verwendet werden, um die Generierung, das Einstufen und Filtern von Kandidaten-Hypothesen, die Phoneme zu Wörtern zuordnen, zu führen. Unterschiedliche Spracherkennungssysteme verwenden verschiedene Mischungen von Generierung, Einstufung und Filter, aber Kontext 1000 kann allgemein angewendet werden, um den Hypothesen-Raum bei jeder Stufe zu reduzieren.
  • Das Verfahren beginnt 100. Der Assistent 1002 empfängt 121 Stimmen- oder Spracheingabe in der Form eines auditiven Signals. Ein Sprache-zu-Text-Dienst 122 oder Prozessor generiert eine Menge von Kandidatentextinterpretationen 124 des auditiven Signals. Bei einer Ausführungsform wird der Sprache-zu-Text-Dienst 122 unter Verwendung von beispielsweise Nuance Recognizer, verfügbar von Nuance Communications, Inc. aus Burlington, Massachusetts, implementiert.
  • Bei einer Ausführungsform verwendet der Assistent 1002 statistische Sprachmodelle 1029, um Kandidatentextinterpretationen 124 von Spracheingabe 121 zu generieren. Bei einer Ausführungsform wird Kontext 1000 verwendet, um die Generierung, Filterung und/oder Einstufung von Kandidateninterpretationen 124, die von dem Sprache-zu-Text-Dienst 122 generiert wurden, zu beeinflussen. Beispielsweise:
    • • Sprache-zu-Text-Dienst 122 kann Vokabular aus persönlicher/persönlichen Benutzer-Datenbank(en) 1058 verwenden, um statistische Sprachmodelle 1029 zu beeinflussen.
    • • Sprache-zu-Text-Dienst 122 kann einen Dialog-Zustand-Kontext verwenden, um ein benutzerdefiniertes statistisches Sprachmodell 1029 auszuwählen. Beispielsweise kann ein statistisches Sprachmodell 1029 beim Stellen einer Ja/Nein-Frage ausgewählt werden, welches bevorzugt diese Wörter hört.
    • • Sprache-zu-Text-Dienst 122 kann aktuellen Anwendungskontext verwenden, um relevante Wörter zu bevorzugen. Beispielsweise kann „Rufe sie an” („call her”) gegenüber „Kragen” („collar”) in einem Textnachrichtenanwendungs-Kontext bevorzugt sein, da ein solcher Kontext Personen-Objekte zur Verfügung stellt, die angerufen werden können.
  • Beispielsweise kann eine gegebene Spracheingabe den Sprache-zu-Text-Dienst 122 dazu führen, Interpretationen „Rufe sie an” („call her”) und „Kragen” („collar”) zu generieren. Geführt von statistischen Sprachmodellen (SLMs) 1029 kann der Sprache-zu-Text-Dienst 122 durch grammatikalische Beschränkungen abgestimmt werden, so dass er Namen hört, nachdem er „rufe an” („call”) gehört hat. Der Sprache-zu-Text-Dienst 122 kann auch basierend auf Kontext 1000 abgestimmt sein. Ist beispielsweise „Herb” ein Vorname in dem Adressbuch des Benutzers, kann dieser Kontext verwendet werden, um den Schwellwert zu verringern, um „Herb” als eine Interpretation der zweiten Silbe in Betracht zu ziehen. Dies bedeutet, dass die Präsenz von Namen in dem persönlichen Datenkontext des Benutzers die Auswahl und Abstimmung des statistischen Sprachmodells 1029, welches zum Generieren von Hypothesen verwendet wird, beeinflussen kann. Der Name „Herb” kann Teil eines allgemeinen SLM 129 sein, oder er kann direkt durch Kontext 1000 hinzugefügt werden. Bei einer Ausführungsform kann er als zusätzliche SLM 1029 hinzugefügt werden, welche basierend auf Kontext 1000 abgestimmt wird. Bei einer Ausführungsform kann er ein Abstimmen eines existierenden SLM 1029 sein, welches basierend auf Kontext 1000 abgestimmt wird.
  • Bei einer Ausführungsform werden die statistischen Sprachmodelle 1029 auch darauf abgestimmt, nach Wörtern, Namen und Phrasen aus Anwendungspräferenzen und Verwendungshistorie 1072 und/oder persönlichen Datenbanken 1058, die im persönlichen Langzeitspeicher 2754 abgelegt sein können, zu suchen. Beispielsweise kann statistischen Sprachmodellen 1029 Text aus zu erledigenden Punkten (to-do items) Listenpunkten (list items), persönlichen Notizen, Kalendereinträgen, Personennamen in Kontakt/Adressbüchern, E-Mail-Adressen, Straßen oder Stadtnamen, welche in Kontakt/Adressbüchern erwähnt sind und Ähnliches gegeben werden.
  • Eine Einstufungs-Komponente analysiert Kandidateninterpretationen 124 und stuft 126 diese danach ein, wie gut sie zu syntaktischen und/oder semantischen Modellen des virtuellen Assistenten 1002 passen. Jegliche Quelle von Beschränkungen von Benutzereingabe kann verwendet werden. Beispielsweise kann bei einer Ausführungsform der Assistent 1002 die Ausgabe des Sprache-zu-Text-Interpretierers danach einstufen, wie gut die Interpretationen in einem syntaktischen und/oder semantischen Sinne, einem Bereichs-Modell, Task-Fluss-Modell und/oder Dialogmodell und/oder Ähnliches parsen: er evaluiert, wie gut verschiedene Kombinationen von Wörtern von Kandidateninterpretationen 124 zu den Konzepten, Beziehungen, Entitäten und Eigenschaften einer aktiven Ontologie und ihrer assoziierten Modelle passen, wie in den oben eingebundenen verwandten US-Utility Applications beschrieben.
  • Einstufen 126 von Kandidateninterpretationen kann auch durch Kontext 1000 beeinflusst sein. Führt der Benutzer beispielsweise aktuell eine Unterhaltung in einer Textnachrichtenanwendung durch, wenn der virtuelle Assistent 1002 aufgerufen wird, ist es wahrscheinlicher, dass die Phrase „Rufe sie an” („call her”) eine richtige Interpretation ist, als das Wort „Kragen” („collar”), denn es gibt eine mögliche „sie” („her”), die in diesem Zusammenhang angerufen werden kann. Eine solche Beeinflussung kann durch Abstimmen der Einstufung von Hypothesen 126 erreicht werden, indem Phrasen wie „Rufe sie an” („call her”) oder „Rufe <Kontaktname> an” („call <contact name>”) bevorzugt werden, wenn der aktuelle Anwendungskontext auf eine Anwendung deutet, die „anrufbare Entitäten” bereitstellen kann.
  • Bei unterschiedlichen Ausführungsformen können Algorithmen oder Prozeduren, die von dem Assistenten 1002 beim Interpretieren von Texteingaben verwendet werden, einschließlich jeglicher Ausführungsform der Verarbeitungsprozeduren mit natürlicher Sprache, wie in 3 gezeigt, verwendet werden, um Kandidatentextinterpretationen 124, welche von dem Sprache-zu-Text-Dienst 122 generiert werden, einzustufen und zu bewerten.
  • Kontext 1000 kann auch verwendet werden, um Kandidateninterpretationen 124 zu filtern, anstelle des oder zusätzlich zum Beschränken ihrer Generierung oder Beeinflussung ihrer Einstufung. Beispielsweise könnte eine Filterregel vorschreiben, dass der Kontext des Adressbucheintrags für „Herb” ausreichend angibt, dass die Phrase, welche diesen enthält, als Spitzenkandidat 130 angesehen werden soll, selbst wenn dieser anderweitig unterhalb eines Filter-Schwellwertes wäre. Abhängig von der bestimmten Spracherkennungstechnologie, die verwendet wird, können Beschränkungen, die auf Kontext-Beeinflussung basieren, bei den Generierungs-, Einstufungs- und/oder Filterstufen verwendet werden.
  • Bei einer Ausführungsform kann, falls die Einstufungs-Komponente 126 bestimmt 128, dass die höchst-eingestufte Sprach-Interpretation von Interpretationen 124 über einem spezifizierten Schwellwert liegt, diese höchst-eingestufte Interpretation automatisch selektiert werden 130. Falls keine Interpretation oberhalb eines spezifizierten Schwellwerts liegt, werden mögliche Kandidateninterpretationen von Sprache 134 dem Benutzer präsentiert 132. Der Benutzer kann dann zwischen den angezeigten Möglichkeiten auswählen 136.
  • In 26A und 26B, auf die nun Bezug genommen wird, sind Bildschirmkopien gezeigt, welche gemäß einer Ausführungsform ein Beispiel einer Benutzerschnittstelle zur Auswahl zwischen Kandidateninterpretationen zeigen. 26A stellt eine Präsentation der Benutzersprache mit Punkten dar, welchen eine mehrdeutige Interpretation 2651 zugrunde liegt. Falls der Benutzer den Text antippt, zeigt sie alternative Interpretationen 2652A, 2652B wie in 26B dargestellt. Bei einer Ausführungsform kann Kontext 1000 beeinflussen, welche der Kandidateninterpretationen 2652A, 2652B eine bevorzugte Interpretation ist (die als eine anfängliche Vorgabe in 26A dargestellt ist) und auch die Auswahl einer endlichen Menge von darzustellenden Alternativen wie in 26B.
  • Bei verschiedenen Ausführungsformen kann Benutzerauswahl 136 zwischen den angezeigten Möglichkeiten durch jeglichen Eingabemodus erreicht werden, einschließlich beispielsweise multimodaler Eingabe. Solche Eingabemodi beinhalten, ohne Beschränkung, aktiv ermittelte getippte Eingabe, aktiv ermittelte Spracheingabe, aktiv präsentierte GUI zur Eingabe und/oder Ähnliches. Bei einer Ausführungsform kann der Benutzer zwischen Kandidateninterpretationen 134 beispielsweise durch Antippen oder Sprechen wählen. Im Falle von Sprechen ist die mögliche Interpretation der neuen Spracheingabe stark beschränkt durch die kleine Menge an angebotenen Möglichkeiten 134.
  • Egal ob Eingabe automatisch selektiert 130 oder durch den Benutzer selektiert 136 wird, wird/werden die eine oder mehr resultierende(n) Textinterpretation(en) 190 zurückgegeben. Bei zumindest einer Ausführungsform ist die zurückgegebene Eingabe kommentiert, so dass Information darüber, welche Auswahlen bei Schritt 136 gemacht wurden, zusammen mit der Texteingabe erhalten bleibt. Dies ermöglicht beispielsweise, dass die semantischen Konzepte oder Entitäten, denen eine Zeichenkette zugrunde liegt, mit der Zeichenkette assoziiert werden, wenn sie zurückgegeben wird, was die Genauigkeit nachfolgender Sprachinterpretationen verbessert.
  • Jegliche der Quellen, die in Zusammenhang mit 1 beschrieben wurden, können Kontext 1000 dem Sprachermittlungs- und Interpretationsverfahren, welches in 3 gezeigt ist, zur Verfügung gestellt werden. Beispielsweise:
    • • Persönliche Akustische Kontextdaten 1080 werden verwendet, um aus möglichen SLMs 1029 zu wählen, oder diese zum Optimieren für erkannten akustischen Kontext abzustimmen.
    • • Vorrichtungssensordaten 1056, welche Eigenschaften von verwendeten Mikrofonen und/oder Kameras beschreiben, können verwendet werden, um aus möglichen SLMs 1029 auszuwählen, oder diese anderweitig zum Optimieren für erkannten akustischen Kontext abzustimmen.
    • • Vokabular aus persönlichen Datenbanken 1058 und Anwendungspräferenzen und Verwendungshistorie 1072 kann als Kontext 1000 verwendet werden. Beispielsweise können die Titel von Medien und Namen von Künstlern verwendet werden, um Sprachmodelle 1029 abzustimmen.
    • • Aktueller Dialogzustand, Teil von Dialoghistorie und Assistenzspeicher 1052 können verwendet werden, um Generieren/Filtern/Einstufen von Kandidateninterpretation 124 durch den Text-zu-Sprache-Dienst 122 zu beeinflussen. Beispielsweise stellt eine Art von Dialogzustand eine Ja/Nein-Frage. In einem solchen Zustand kann Verfahren 100 ein SLM 1029 auswählen, welches Hören dieser Wörter bevorzugt, oder es kann das Einstufen und Filtern dieser Wörter bei einer Kontext-spezifischen Anpassung bei 122 beeinflussen.
  • Verwendung von Kontext bei Verarbeitung natürlicher Sprache
  • Kontext 1000 kann verwendet werden, um Verarbeitung natürlicher Sprache (NLP) zu erleichtern – das Parsen von Texteingabe zu semantischen Strukturen stellt die möglichen Parses (parses) dar. In 4, auf die nun Bezug genommen wird, ist ein Flussdiagramm dargestellt, welches gemäß einer Ausführungsform ein Verfahren zur Verwendung von Kontext bei Verarbeitung natürlicher Sprache zeigt, welches von einem Sprachinterpretierer 2770 ausgeführt werden kann.
  • Das Verfahren beginnt 200. Eingabetext 202 wird empfangen. Bei einer Ausführungsform wird der Eingabetext 202 mit Wörtern und Phrasen unter Verwendung eines Muster-Erkenners 2760, Vokabular-Datenbanken 2758, Ontologien und anderer Modelle abgeglichen, um Assoziationen zwischen Benutzereingabe und Konzepten zu identifizieren. Schritt 210 führt zu einer Menge von syntaktischen Kandidaten-Parses 212, die mit semantischer Relevanz abgeglichen werden 220, um semantische Kandidaten-Parses 222 zu erzeugen. Anschließend werden Kandidaten-Parses verarbeitet, um bei 230 mehrdeutige Alternativen zu entfernen, werden gefiltert und nach Relevanz sortiert 232 und zurückgegeben.
  • Während der Verarbeitung natürlicher Sprache kann Kontextinformation 1000 angewendet werden, um den Hypothesen-Raum zu reduzieren und mögliche Parses zu beschränken. Falls der Sprachinterpretierer 2770 beispielsweise zwei Kandidaten „Rufe sie an” („call her”) und „Rufe Herb an” („call Herb”) empfängt, würde der Sprachinterpretierer 2770 Anbindungen 212 für die Wörter „Rufe an” („call”), „sie” („her”) und „Herb” finden. Anwendungskontext 1060 kann verwendet werden, um die möglichen Wortbedeutungen für „Rufe an” („call”) zu beschränken, so dass gemeint ist „Telefonanruf” („phone call”). Kontext kann auch verwendet werden, um die Bezüge für „sie” („her”) und „Herb” zu finden. Für „sie” („her”) könnten die Kontextquellen 1000 nach einer Quelle für anrufbare Entitäten durchsucht werden. In diesem Beispiel ist der Beteiligte einer Textnachrichten-Unterhaltung eine anrufbare Entität und diese Information ist Teil des Kontexts, der aus der Textnachrichtenanwendung stammt. Im Falle von „Herb” ist das Adressbuch des Benutzers eine Quelle von Kontext zum Eindeutig-Machen, wie auch andere persönliche Daten wie Anwendungspräferenzen (wie Favoritennummern aus Bereichs-Entitäts-Datenbanken 2772) und Anwendungsverwendungshistorie (wie kürzliche Telefonanrufe aus Bereichs-Entitäts-Datenbanken 2772) sind. Bei einem Beispiel, bei dem die aktuelle Beteiligte einer Textnachrichtunterhaltung RebeccaRichards ist, und es einen HerbGowen in dem Adressbuch des Benutzers gibt, wären die zwei Parses, die vom Sprachinterpretierer 2770 erzeugt werden, semantische Strukturen, die „TelefonAnruf (RebeccaRichards)” („Phone-Call (RebeccaRichards)”) und „TelefonAnruf (HerbGowen)” („Phone-Call (HerbGowen)”) darstellen.
  • Daten aus Anwendungspräferenzen und Verwendungshistorie 1072, Dialoghistorie und Assistenzspeicher 1052 und/oder persönliche Datenbanken 1058 können auch von dem Sprachinterpretierer 2770 beim Generieren von syntaktischen Kandidaten-Parses 212 verwendet werden. Solche Daten können beispielsweise aus Kurz- und/oder Langzeitspeicher 2752, 2754 erhalten werden. Auf diese Weise kann Eingabe, die früher in der gleichen Sitzung bereitgestellt wurde und/oder bekannte Information über den Benutzer verwendet werden, um Leistung zu verbessern, Mehrdeutigkeit zu reduzieren und die Unterhaltungsnatur der Interaktion zu stärken. Daten aus aktiver Ontologie 1050, Bereichs-Modelle 2756 und Task-Fluss-Modelle 2786 können ebenso verwendet werden, um beweiskräftige Schlussfolgerungen beim Bestimmen valider syntaktischer Kandidaten-Parses 212 zu implementieren. Beim semantischen Abgleichen 220 betrachtet der Sprachinterpretierer 2770 Kombinationen von möglichen Parse-Ergebnissen danach, wie gut sie zu semantischen Modellen, wie Bereichs-Modellen und Datenbanken passen. Semantisches Abgleichen 220 kann beispielsweise Daten aus aktiver Ontologie 1050, persönlichem Kurzzeitspeicher 2752 und persönlichem Langzeitspeicher 2754 verwenden. Beispielsweise kann semantisches Abgleichen 220 Daten aus vorangegangenen Bezugnahmen auf Orte oder lokale Ereignisse im Dialog (aus Dialoghistorie und Assistenzspeicher 1052) oder persönliche Favoriten-Orte (aus Anwendungspräferenzen und Verwendungshistorie 1072) verwenden. Der Schritt des semantischen Abgleichens 220 verwendet auch Kontext 1000, um Phrasen zu Bereichs-Absichts-Strukturen zu interpretieren. Eine Menge Kandidaten oder möglichen, semantischen Parse-Ergebnissen wird generiert 222.
  • In einem Schritt des Eindeutig-Machens 230 wägt der Spracheninterpretierer 2770 die Beweiskraftstärke von semantischen Kandidaten-Parse-Ergebnissen 222 ab. Das Eindeutig-Machen 230 beinhaltet Reduzieren der Anzahl von semantischen Kandidaten-Parse 222 durch Eliminieren unwahrscheinlicher oder redundanter Alternativen. Das Eindeutig-Machen 230 kann beispielsweise Daten aus der Struktur von aktiver Ontologie 1050 verwenden. Bei zumindest einer Ausführungsform stellen die Verbindungen zwischen Knoten in einer aktiven Ontologie beweiskräftige Unterstützung zum Eindeutig-Machen zwischen semantischen Kandidaten-Parse-Ergebnissen 222 dar. Bei einer Ausführungsform wird Kontext 1000 verwendet, um bei diesem Eindeutig-Machen zu helfen. Beispiele eines solchen Eindeutig-Machens beinhalten: Bestimmen einer von mehreren Person(en), die den gleichen Namen hat/haben; Bestimmen eines Bezugs in einem Befehl wie „Antworte” („reply”) (E-Mail- oder Textnachricht); Pronomen-Dereferenzieren und Ähnliches.
  • Beispielsweise bezieht sich eine Eingabe wie „Rufe Herb an” („call Herb”) möglicherweise auf jegliche Entität, die zu „Herb” passt. Es kann eine beliebige Anzahl solcher Entitäten geben, nicht nur in dem Adressbuch des Benutzers (persönliche Datenbanken 1058), sondern auch in Datenbanken mit Namen von Unternehmen von persönlichen Datenbanken 1058 und/oder Bereichs-Entitäts-Datenbanken 2772. Mehrere Quellen von Kontext können die Menge an passenden „Herbs” beschränken, und/oder diese einstufen und filtern in Schritt 232. Beispielsweise:
    • • Andere Anwendungspräferenzen und Verwendungshistorie 1072, wie ein Herb, der auf einer Favoriten-Telefonnummernliste ist, oder kürzlich angerufen wurde, oder kürzlich Beteiligter bei einer Textnachrichten-Unterhaltung oder E-Mail-Thread gewesen ist;
    • • Herb erwähnt in persönlichen Datenbanken 1058, wie ein Herb, der als Beziehung bezeichnet ist, wie Vater oder Bruder, oder in einem kürzlichen Kalenderereignis als Beteiligter gelistet ist. Wäre der Task ein Abspielen von Medien anstelle eines Telefonanrufs, würden die Namen aus Medien-Titeln, Erzeugern und Ähnliches Quellen für Einschränkung darstellen;
    • • eine kürzliche Lage (ply) eines Dialogs 1052, entweder als Anfrage oder Ergebnisse. Wie beispielsweise oben in Zusammenhang mit 25A und 25B beschrieben, kann der Benutzer, nachdem er nach einer E-Mail von John gesucht hat, eine Antwort erstellen, mit dem Suchergebnis noch im Dialog-Kontext. Der Assistent 1002 kann den Dialog-Kontext verwenden, um den spezifischen Anwendungsbereichs-Objekt-Kontext zu identifizieren.
  • Kontext 1000 kann auch helfen, die Mehrdeutigkeit bei anderen Wörtern als richtigen Namen zu reduzieren. Sagt der Benutzer einer E-Mail-Anwendung dem Assistenten 1002 beispielsweise zu „Antworten” (wie in 20 gezeigt), so hilft der Kontext der Anwendung, um zu bestimmen, dass das Wort mit E-MailErwiderung (E-MailReply) anstelle von Text-NachrichtenErwiderung (TextMessagingReply) assoziiert werden soll.
  • Bei Schritt 232 filtert und sortiert 232 der Sprachinterpretierer 2770 die oberen semantischen Parses als die Darstellung von Benutzerabsicht 290. Kontext 1000 kann verwendet werden, um solches Filtern und Sortieren 232 anzuregen. Das Ergebnis ist eine Darstellung von Benutzerabsicht 290.
  • Verwendung von Kontext in Task-Fluss-Verarbeitung
  • In 5, auf die nun Bezug genommen wird, ist gemäß einer Ausführungsform ein Flussdiagramm dargestellt, welches ein Verfahren zur Verwendung von Kontext bei Task-Fluss-Verarbeitung zeigt, wie es von Dialog-Fluss-Prozessor 2780 ausgeführt werden kann. Bei der Task-Fluss-Verarbeitung werden Kandidaten-Parses, die von dem Verfahren von 4 generiert wurden, eingestuft und instanziiert, um operationale Task-Beschreibungen, die ausgeführt werden können, zu erzeugen.
  • Das Verfahren beginnt 300. Mehrere Kandidatendarstellungen von Benutzerabsicht 290 werden empfangen. Wie im Zusammenhang mit 4 beschrieben, enthalten bei einer Ausführungsform Darstellungen von Benutzerabsicht 290 eine Menge von semantischen Parses.
  • Bei Schritt 312 bestimmt Dialog-Fluss-Prozessor 2780 die bevorzugte Interpretation des/der semantischen Parse(s) mit anderer Information, um einen auszuführenden Task und seine Parameter zu bestimmen, basierend auf einer Bestimmung der Benutzerabsicht. Information kann beispielsweise aus Bereichs-Modellen 2756, Task-Fluss-Modellen 2786 und/oder Dialog-Fluss-Modellen 2787 oder jeglicher Kombination hieraus erhalten werden. Beispielsweise könnte ein Task TelefonAnruf (PhoneCall) sein, und ein Task-Parameter ist die anzurufende Telefon-Nummer (PhoneNumber).
  • Bei einer Ausführungsform wird Kontext 1000 beim Ausführen von Schritt 312 verwendet, um das Anbinden von Parametern 312 zu führen, durch Erschließen von Vorgabewerten und Auflösen von Mehrdeutigkeit. Beispielsweise kann Kontext 1000 die Instanziierung der Task-Beschreibungen führen und bestimmen, ob es eine beste Interpretation der Benutzerabsicht gibt.
  • Beispielsweise angenommen die Absichts-Eingaben 290 sind „Telefon-Anruf (RebeccaRichards)” („PhoneCall (RebeccaRichards)”) und „TelefonAnruf (HerbGowen)” („PhoneCall (HerbGowen)”). Der Task Telefon-Anruf erfordert Parameter TelefonNummer. Mehrere Quellen von Kontext 1000 können angewendet werden, um zu bestimmen, welche Telefonnummer für Rebecca und Herb funktionieren würde. In diesem Beispiel hat der Adressbucheintrag für Rebecca in einer Kontaktdatenbank zwei Telefonnummern, und der Eintrag für Herb hat keine Telefonnummern, jedoch eine E-Mail-Adresse. Die Verwendung von Kontextinformation 1000 aus persönlichen Datenbanken 1058, wie die Kontaktdatenbank, ermöglicht dem virtuellen Assistenten 1002, Rebecca gegenüber Herb zu bevorzugen, da es eine Telefonnummer für Rebecca gibt, und keine für Herb. Um zu bestimmen, welche Telefonnummer für Rebecca zu verwenden ist, kann Anwendungskontext 1060 konsultiert werden, um die Nummer auszuwählen, die beim Ausführen von Textnachrichtenunterhaltung mit Rebecca verwendet wird. Der virtuelle Assistent 1002 kann folglich bestimmen, dass „Rufe sie an” („call her”) im Zusammenhang mit einer Textnachrichtenunterhaltung mit Rebecca Richards bedeutet, führe einen Telefonanruf zu dem Mobiltelefon, welches Rebecca für den Textnachrichtendienst verwendet, durch. Diese spezifische Information wird in Schritt 390 zurückgegeben.
  • Kontext 1000 kann für mehr als das Reduzieren von Telefonnummer-Mehrdeutigkeit verwendet werden. Er kann immer verwendet werden, wenn es mehrere mögliche Werte für einen Task-Parameter gibt, solange eine Quelle von Kontext 1000, die Werte für diesen Parameter aufweist, verfügbar ist. Andere Beispiele, bei denen Kontext 1000 die Mehrdeutigkeit reduzieren kann (und verhindert, den Benutzer aufzufordern, zwischen Kandidaten zu wählen) beinhalten, ohne Beschränkung: E-Mail-Adressen; physikalische Adressen; Zeit und Daten; Orte; Namen von Listen; Titel von Medien; Künstlernamen; Geschäftsnamen; oder jeglicher anderer Wertebereich.
  • Andere Arten von Rückschlüssen, die zur Task-Fluss-Verarbeitung 300 erforderlich sind, können auch von Kontext 1000 profitieren. Beispielsweise kann ein voreingestellter Rückschlusswert den/die aktuelle/aktuellen Zeit, Ort und andere aktuelle Werte verwenden. Der voreingestellte Rückschlusswert ist hilfreich, um die Werte von Task-Parametern, die implizit in der Benutzeranfrage sind, zu bestimmen. Falls beispielsweise jemand sagt „Wie ist das Wetter?”, meint er/sie implizit, wie das Wetter hier in der Gegend ist.
  • Bei Schritt 310 bestimmt der Dialog-Fluss-Prozessor 2780, ob diese Interpretation von Benutzerabsicht stark genug unterstützt wird, um fortzufahren, und/oder ob sie besser als alternative, mehrdeutige Parses unterstützt wird. Falls es konkurrierende Mehrdeutigkeiten oder ausreichende Unsicherheit gibt, wird Schritt 322 ausgeführt, um den Dialog-Flussschritt einzustellen, sodass die Ausführungsphase den Dialog veranlasst, eine Aufforderung für weitere Information von dem Benutzer auszugeben. Ein Beispiel einer Bildschirmkopie zur Aufforderung des Benutzers, eine Mehrdeutigkeit aufzulösen, ist in 14 dargestellt. Kontext 1000 kann in Schritt 322 verwendet werden, zum Sortieren und Kommentieren des angezeigten Menüs von Kandidatenelementen für den Benutzer zur Auswahl hieraus.
  • Bei Schritt 320 wird das Task-Fluss-Model konsultiert, um einen angemessenen nächsten Schritt zu bestimmen. Information kann beispielweise aus Bereichs-Modellen 2756, Task-Fluss-Modellen 2786 und/oder Dialog-Fluss-Modellen 2787 oder jeglicher Kombination hieraus erhalten werden.
  • Das Ergebnis von Schritt 320 oder Schritt 322 ist eine Darstellung der Benutzeranfrage 390, die die für den Dialog-Fluss-Prozessor 2780 und Dienste-Orchestrierung 2782 ausreichenden Task-Parameter enthält, um den angemessenen Dienst zu entsenden.
  • Verwendung von Kontext um Dialog-Generierung zu verbessern
  • Während Dialog-Antwort-Generierung 500 kann der Assistent 1002 sein Verständnis der Benutzerabsicht und wie dieses in einem Task operationalisiert wird zurückparaphrasieren. Ein Beispiel einer solchen Ausgabe ist „Okay, ich werde Rebecca auf ihrer Mobilnummer... anrufen”. Dies ermöglicht dem Benutzer, den Assistenten 1002 zu autorisieren, die assoziierte Task-Automatisierung, wie Durchführen eines Anrufes, auszuführen. Bei Dialog-Generierungs-Schritt 500 bestimmt der Assistent 1002, wie viele Einzelheiten dem Benutzer beim Paraphrasieren des Verständnisses der Benutzerabsicht zurück zu übertragen sind.
  • Bei einer Ausführungsform kann Kontext 1000 auch verwendet werden, um das angemessene Niveau von Einzelheiten im Dialog auszuwählen, wie auch, um basierend auf vorangegangener Ausgabe zu filtern (um somit zu verhindern, dass Information wiederholt wird). Beispielsweise kann der Assistent 1002 das Wissen, dass die Person und Telefonnummer aus Kontext 1000 erschlossen wurden, verwenden, um zu bestimmen, ob der Name und die Telefonnummer zu erwähnen sind, und mit welchem Detaillierungsgrad. Beispiele von Regeln, die angewendet werden können, beinhalten ohne Beschränkung:
    • • Wenn ein Pronomen durch Kontext aufgelöst wird, erwähne die anzurufende Person mit Namen.
    • • Wenn eine Person aus bekanntem Kontext, wie Textnachrichtendienst, erschlossen wird, verwende nur den Vornamen.
    • • Wenn eine Telefonnummer aus Anwendungs- oder persönlichem Datenkontext erschlossen wird, verwende den symbolischen Namen der Telefonnummer, wie „Mobiltelefon”, anstelle der eigentlichen zu wählenden Nummer.
  • Zusätzlich zum Anleiten des angemessenen Detaillierungsgrads, kann Kontext 1000 auch bei Dialog-Generierungs-Schritt 500 verwendet werden, um beispielsweise vorangegangene Aussagen zu filtern, um so eine Wiederholung zu vermeiden, und auf früher erwähnte Entitäten in der Unterhaltung Bezug zu nehmen.
  • Ein Fachmann wird erkennen, dass Kontext 1000 auch auf andere Weise verwendet werden kann. Zum Beispiel kann Kontext 1000 im Zusammenhang mit den hierin beschriebenen Techniken gemäß Mechanismen verwendet werden, wie sie in der verwandten US-Utility Application Anmeldenummer 12/479,477 betreffend „Contextual Voice Commands” („Interaktive Sprachbefehle”), Aktenzeichen des Vertreters P7393US1, eingereicht am 5. Juni 2009, deren gesamte Offenbarung hierin mittels Bezugnahme eingebunden ist, beschrieben sind.
  • Sammeln von Kontext und Kommunikationsmechanismen
  • Bei verschiedenen Ausführungsformen werden unterschiedliche Mechanismen zum Sammeln und Kommunizieren von Kontextinformation in dem virtuellen Assistenten 1002 verwendet. Beispielsweise ist bei einer Ausführungsform der virtuelle Assistent 1002 in einer Client-/Serverumgebung implementiert, so dass seine Dienste zwischen dem Client und dem Server verteilt sind, und Quellen von Kontext 1000 auch verteilt sein können.
  • In 6, auf die nun Bezug genommen wird, ist ein Beispiel einer Verteilung von Quellen von Kontext 1000 zwischen Client 1304 und Server 1340 gemäß einer Ausführungsform dargestellt. Die Client-Vorrichtung 1304, die eine mobile Rechenvorrichtung oder andere Vorrichtung sein kann, kann die Quelle von Kontextinformation 1000, wie Vorrichtungssensordaten 1056, aktueller Anwendungskontext 1060, Ereigniskontext 2706 und Ähnliches sein. Andere Quellen von Kontext 1000 können verteilt auf Client 1304 oder Server 1340 oder einer Kombination von beiden sein. Beispiele beinhalten Anwendungspräferenzen und Verwendungshistorie 1072c, 1072s; Dialoghistorie und Assistenzspeicher 1052c, 1052s; persönliche Datenbanken 1058c, 1058s; und persönliche akustische Kontextdaten 1080c, 1080s. In jedem dieser Beispiele können Quellen von Kontext 1000 auf Server 1340, auf Client 1304, oder auf beiden vorliegen. Weiterhin können, wie vorangehend beschrieben, die verschiedenen in 2 dargestellten Schritte von Client 1304 oder Server 1340 oder einer Kombination von beiden ausgeführt werden.
  • Bei einer Ausführungsform kann Kontext 1000 zwischen verteilten Komponenten, wie Client 1304 und Server 1340, kommuniziert werden. Solche Kommunikation kann über eine lokale API oder über ein verteiltes Netzwerk, oder durch andere Mittel, stattfinden.
  • In 7a bis 7d, auf die nun Bezug genommen wird, sind Ereignisdiagramme dargestellt, die Beispiele von Mechanismen zum Erhalten und Koordinieren von Kontextinformation 1000 gemäß verschiedener Ausführungsformen zeigen. Verschiedene Techniken existieren zum Laden oder Kommunizieren von Kontext, so dass dieser dem virtuellen Assistenten 1002 zur Verfügung steht, wenn benötigt oder hilfreich. Jeder dieser Mechanismen ist hinsichtlich vier Ereignissen, die beim Betrieb des virtuellen Assistenten 1002 auftreten können, beschrieben: Initialisierung von Vorrichtung oder Anwendung 601; ursprüngliche Benutzereingabe 602; ursprüngliche Eingabeverarbeitung 603 und kontextabhängiges Verarbeiten 604.
  • 7a stellt einen Ansatz dar, bei welchem Kontextinformation 1000 unter Verwendung eines „Pull”-Mechanismus geladen wird, sobald Benutzereingabe begonnen hat 602. Sobald der Benutzer den virtuellen Assistenten 1002 aufruft und zumindest irgendeine Eingabe 602 bereitstellt, lädt 610 der virtuelle Assistent 1002 Kontext 1000. Das Laden 610 kann durch Anfordern oder Abrufen von Kontextinformation 1000 aus einer angemessenen Quelle durchgeführt werden. Eingabeverarbeitung 603 beginnt, sobald Kontext 1000 geladen worden ist 610.
  • 7b stellt einen Ansatz dar, bei welchem irgendeine Kontextinformation 1000 geladen wird 620, wenn eine Vorrichtung oder Anwendung initialisiert wird 601; zusätzliche Kontextinformation 1000 wird unter Verwendung eines „Pull”-Mechanismus geladen, sobald Benutzereingabe begonnen hat 602. Bei einer Ausführungsform kann Kontextinformation 1000, die beim Initialisieren geladen wird 620, statischen Kontext (d. h. Kontext, der sich nicht häufig ändert) beinhalten; Kontextinformation 1000, die geladen wird 621, sobald Benutzereingabe beginnt 602, enthält dynamischen Kontext (d. h. Kontext, der sich geändert haben kann, seitdem der statische Kontext geladen wurde 620). Ein solcher Ansatz kann Leistung verbessern, indem die Kosten für das Laden statischer Kontextinformation 1000 von der Laufzeit-(runtime)Leistung des Systems entfernt werden.
  • 7c stellt eine Variation des Ansatzes von 7b dar. In diesem Beispiel darf die dynamische Kontextinformation 1000 weiterhin geladen werden 621, nachdem Verarbeitung der Eingabe begonnen hat 603. Folglich kann das Laden 621 parallel zur Eingabeverarbeitung stattfinden. Das Verfahren des virtuellen Assistenten 1002 ist nur bei Schritt 604 blockiert, wenn die Verarbeitung von empfangener Kontextinformation 1000 abhängt.
  • 7d stellt eine vollständig konfigurierbare Version, welche Kontext in jeglicher von bis zu fünf unterschiedlichen Weisen bearbeitet, dar:
    • • Statistische Kontextinformation 1000 wird synchronisiert 640 in einer Richtung, von Kontextquelle zur Umgebung oder Vorrichtung, auf welcher der virtuelle Assistent 1002 läuft. Da sich Daten in der Kontextquelle verändern, werden die Änderungen zu dem virtuellen Assistenten 1002 geschoben (pushed). Beispielsweise könnte ein Adressbuch mit dem virtuellen Assistenten 1002 synchronisiert werden, wenn es anfänglich erstellt oder aktiviert wird. Wann immer das Adressbuch modifiziert wird, werden Änderungen zu dem virtuellen Assistenten 1002 geschoben, entweder sofort oder in einer in Schüben angeordneten (batched) Wei se. Wie in 7d dargestellt, kann eine solche Synchronisierung 640 zu jeder Zeit, einschließlich bevor Benutzereingabe beginnt 602, stattfinden.
    • • Bei einer Ausführungsform können statische Kontextquellen auf einen Synchronisierungsstatus geprüft werden, wenn Benutzereingabe beginnt 602. Falls nötig, wird ein Prozess zum Synchronisieren verbleibender statischer Kontextinformation 1000 begonnen 641.
    • • Wenn Benutzereingabe beginnt 602, wird irgendein dynamischer Kontext 1000 geladen 642, wie es der Fall war bei 610 und 621. Prozeduren, die Kontext 1000 brauchen, werden nur blockiert, um auf die bislang ungeladene Kontextinformation 1000, die sie benötigen, zu warten.
    • • Andere Kontextinformation 1000 wird durch Prozesse auf Abruf 643 geladen, wenn diese sie benötigen.
    • • Ereigniskontext 2706 wird von einer Quelle zu der Vorrichtung, auf welcher der virtuelle Assistent 1002 läuft, gesendet 644, wenn Ereignisse auftreten. Prozesse, die Ereigniskontext 2706 brauchen, warten nur darauf, dass der Cache von Ereignissen bereit ist und können ohne zu blockieren zu jeder Zeit danach fortfahren. Ereigniskontext 2706, der auf diese Weise geladen wird, kann eine oder mehrere der folgenden beinhalten:
    • • Ereigniskontext 2706, der geladen wird, bevor die Benutzereingabe beginnt 602, z. B. Mitteilungen ungelesener Nachrichten. Solche Information kann beispielsweise unter Verwendung eines synchronisierten Cache gehalten werden.
    • • Ereigniskontext 2706, der gleichzeitig mit oder nachdem die Benutzereingabe begonnen hat 602, geladen wird. Zum Beispiel kann eine Textnachricht ankommen, während der Benutzer mit dem virtuellen Assistenten 1002 interagiert; der Ereigniskontext, der den Assistenten 1002 dieses Ereignis mitteilt, kann parallel mit der Verarbeitung des Assistenten 1002 geschoben werden.
  • Bei einer Ausführungsform wird Flexibilität beim Erhalten und Koordinieren von Kontextinformation 1000 dadurch erreicht, dass für jede Quelle von Kontextinformation 1000 eine Kommunikationsstrategie und eine Zugangs-API, die die Kosten von Kommunikation mit dem Wert der Verfügbarkeit dieser Information bei jeder Anfrage abwägt, vorgegeben werden. Zum Beispiel können Variablen, die für jede Sprache-zu-Text-Anfrage relevant sind, die persönliche akustische Kontextdaten 1080 oder Vorrichtungssensordaten 1056, die Parameter von Mikrofonen beschreiben, bei jeder Anfrage geladen werden. Solche Kommunikationsstrategien können beispielsweise in einer Konfigurationstabelle festgelegt sein.
  • In 9, auf die nun Bezug genommen wird, ist ein Beispiel einer Konfigurationstabelle 900 gezeigt, die gemäß einer Ausführungsform zum Festlegen von Kommunikations- und Caching-Strategien für verschiedene Quellen von Kontextinformation 1000 verwendet werden kann. Für jede aus einer Reihe von unterschiedlichen Kontextquellen einschließlich Benutzername, Adressbuchnamen, Adressbuchnummern, SMS-Ereigniskontext und Kalenderdatenbank, wird ein bestimmter Typ des Ladens von Kontext für jeden der Schritte von 2 spezifiziert: ermittle und interpretiere Spracheingabe 100, interpretiere natürliche Sprache 200, identifiziere Task 300 und generiere Dialogantwort 500. Jeder Eintrag in Tabelle 900 gibt eine oder mehrere der folgenden an:
    • • Sync: Kontextinformation 1000 wird auf der Vorrichtung synchronisiert;
    • • auf Abruf (on demand): Kontextinformation 1000 wird in Reaktion auf eine Anfrage des virtuellen Assistenten 1002 bereitgestellt;
    • • Push: Kontextinformation 1000 wird auf die Vorrichtung geschoben (pushed).
  • Das vollständig konfigurierbare Verfahren ermöglicht das Verfügbarmachen eines großen Raumes von möglicherweise relevanter Kontextinformation 1000, um die Interaktion mit natürlicher Sprache zwischen Mensch und Maschine zu optimieren. Anstelle diese gesamte Information die ganze Zeit zu laden, was zu Ineffizienzen führen könnte, wird manche Information sowohl in der Kontextquelle wie auch beim virtuellen Assistenten 1002 gehalten, während andere Information auf Abruf abgefragt wird. Zum Beispiel wird, wie oben beschrieben, Information, wie Namen, die in Echtzeit-Operationen, wie Spracherkennung, verwendet werden, lokal gehalten, während Information, die lediglich von irgendwelchen möglichen Anfragen, wie ein persönlicher Kalender eines Benutzers, verwendet wird, auf Abruf abgefragt. Daten, die nicht antizipiert werden können, wenn ein Benutzer den Assistenten abruft, wie eingehende SMS-Ereignisse, werden geschoben (pushed), wenn sie auftreten.
  • In 10, auf die nun Bezug genommen wird, ist ein Ereignisdiagramm 950 dargestellt, welches gemäß einer Ausführungsform ein Beispiel des Zugriffs auf Kontextinformationsquellen, die in 9 eingerichtet wurden, während der Verarbeitung einer Interaktionssequenz, bei welcher der Assistent 1002 sich in einem Dialog mit einem Benutzer befindet, zeigt.
  • Die in 10 gezeigte Sequenz stellt die folgende Interaktionssequenz dar:
    • • T1: Assistent 1002: „Hallo Steve, was kann ich für dich tun?”
    • • T2: Benutzer: „Wann ist mein nächstes Meeting?”
    • • T3: Assistent 1002: „Dein nächstes Meeting ist um 1:00 p.m. im Sitzungssaal.”
    • • T4: [Sound einer eingehenden SMS-Nachricht]
    • • T5: Benutzer: „Lese mir diese Nachricht vor.”
    • • T6: Assistent 1002: „Deine Nachricht von Johnny sagt 'Wie sieht's mit Mittagessen aus?”
    • • T7: Benutzer: „Sage Johnny, dass ich es heute nicht schaffe.”
    • • T8: Assistent 1002: „Ok, ich werde es ihm sagen.”
  • Zur Zeit T0, bevor die Interaktion beginnt, wird Benutzername synchronisiert 770 und Adressbuchnamen werden synchronisiert 771. Diese stellen Beispiele von statischem Kontext dar, der zur Initialisierungszeit geladen wird, wie bei Element 640 bei 7d gezeigt. Dies ermöglicht dem Assistenten 1002, sich an den Benutzer mit seinem Vornamen („Steve”) zu wenden.
  • Zur Zeit T1 sind Synchronisierungsschritte 770 und 771 abgeschlossen. Zur Zeit T2 spricht der Benutzer eine Anfrage, die gemäß Schritte 100, 200 und 300 von 2 verarbeitet wird. Bei dem Task-Identifizierungsschritt 300 fragt 774 der virtuelle Assistent 1002 persönliche Datenbanken des Benutzers 1058 als eine Quelle von Kontext 1000 ab: konkret fordert der virtuelle Assistent 1002 Information aus der Kalenderdatenbank des Benutzers, die gemäß Tabelle 900 für Zugriff auf Abruf eingerichtet ist. Zur Zeit T3 wird Schritt 500 ausgeführt und eine Dialogantwort wird generiert.
  • Zur Zeit T4 wird eine SMS-Nachricht erhalten; dies ist ein Beispiel von Ereigniskontext 2706. Eine Mitteilung des Ereignisses wird zu dem virtuellen Assistenten 1002 geschoben 773, basierend auf der Konfiguration in Tabelle 900.
  • Zur Zeit T5 bittet der Benutzer den virtuellen Assistenten 1002, die SMS-Nachricht zu lesen. Das Vorliegen des Ereigniskontexts 2706 leitet die NLP-Komponente beim Ausführen von Schritt 200 an, um so „diese Nachricht” als eine neue SMS-Nachricht zu interpretieren. Zur Zeit T6 kann Schritt 300 von der Task-Komponente ausgeführt werden, um eine API aufzurufen, um die SMS-Nachricht dem Benutzer vorzulesen. Zur Zeit T7 führt der Benutzer eine Anfrage mit einem mehrdeutigen Wert („sage”) und Namen („Johnny”) aus. Die NLP-Komponente interpretiert natürliche Sprache 200, in dem diese Mehrdeutigkeiten unter Verwendung verschiedener Quellen von Kontext 1000, einschließlich dem Ereigniskontext 2706, der in Schritt 773 erhalten wurde, aufgelöst werden; dies sagt der NLP-Komponente, dass sich der Befehl auf eine SMS-Nachricht von einer Person namens Johnny bezieht. Bei Schritt T7, wird Ausführungsflussschritt 400 durchgeführt, beinhaltend ein Zuordnen des Namens 771 durch Nachschlagen der zu verwenden Nummer aus dem empfangenen Ereigniskontextobjekt. Der Assistent 1002 ist folglich in der Lage, eine neue SMS-Nachricht zusammen zu stellen, und diese an Johnny zu senden, wie in Schritt T8 bestätigt.
  • Die vorliegende Erfindung wurde mit besonderen Einzelheiten im Hinblick auf mögliche Ausführungsformen beschrieben. Die Fachleute werden erkennen, dass die Erfindung auch bei anderen Ausführungsformen ausgeführt werden kann. Zunächst ist die bestimmte Benennung der Komponenten, Großschreibung von Begriffen, die Attribute, Datenstrukturen oder jeglicher anderer Programmieraspekt oder struktureller Aspekt nicht verpflichtend oder wesentlich, und die Mechanismen, die die Erfindung oder ihre Merkmale implementieren, können unterschiedliche Namen, Formate oder Protokolle aufweisen. Darüber hinaus kann das System mittels einer Kombination von Hardware und Software, wie beschrieben, oder vollständig mit Hardware-Elementen oder vollständig mit Software-Elementen implementiert sein. Auch ist die hierin beschriebene bestimmte Aufteilung von Funktionalität zwischen den verschiedenen Systemkomponenten lediglich beispielhaft und nicht zwingend; Funktionen, die von einer einzelnen Systemkomponente ausgeführt werden, können stattdessen von mehreren Komponenten ausgeführt werden, und Funktionen, die von mehreren Komponenten ausgeführt werden, können stattdessen von einer einzelnen Komponente ausgeführt werden.
  • Bei verschiedenen Ausführungsformen kann die vorliegende Erfindung als ein System oder ein Verfahren zum Ausführen der oben beschriebenen Techniken, entweder einzeln oder in jeglicher Kombination, implementiert sein. Bei einer anderen Ausführungsform kann die vorliegende Erfindung als ein Computerprogrammprodukt, welches ein nichtflüchtiges computerlesbares Speichermedium und auf dem Medium codierten Computerprogrammcode aufweist, implementiert sein, um einen Prozessor in einer Rechenvorrichtung oder anderen elektronischen Vorrichtung zu veranlassen, die oben beschriebenen Techniken auszuführen.
  • Bezugnahme in der Spezifikation auf „eine Ausführungsform” („one embodiment” oder „an embodiment”) bedeuten, dass ein/eine bestimmte/bestimmtes Merkmal, Struktur oder Charakteristikum, welches/welche im Zusammenhang mit den Ausführungsformen beschrieben ist, bei zumindest einer Ausführungsform der Erfindung enthalten ist. Die Vorkommen der Phrase „bei einer Ausführungsform” an verschiedenen Stellen in der Spezifikation beziehen sich nicht notwendigerweise alle auf die gleiche Ausführungsform.
  • Einige Teile des Voranstehenden wurden bezüglich Algorithmen und symbolischen Darstellungen von Operationen auf Datenbits innerhalb eines Speichers einer Rechenvorrichtung präsentiert. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die von den Fachleuten im Bereich der Datenverarbeitung verwendet werden, um die Substanz ihrer Arbeit am effektivsten anderen Fachleuten zu vermitteln. Ein Algorithmus wird hier, und im Allgemeinen, als eine selbstständige Sequenz von Schritten (Instruktionen), die zu einem gewünschten Ergebnis führen, verstanden. Die Schritte sind jene, die physikalische Manipulationen von physikalischen Quantitäten erfordern. Üblicherweise, wenn auch nicht notwendigerweise, nehmen diese Quantitäten die Form von elektrischen, magnetischen oder optischen Signalen an, die geeignet sind, gespeichert, übertragen, kombiniert, verglichen oder anderweitig manipuliert zu werden. Es ist bisweilen passend, vorwiegend aus Gründen gemeinsamer Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen (characters), Terme, Nummern oder Ähnliches zu bezeichnen. Darüber hinaus ist es bisweilen auch passend, bestimmte Anordnungen von Schritten, die physikalische Manipulationen von physikalischen Quantitäten erfordern, als Module oder Code-Vorrichtungen zu bezeichnen, ohne Beschränkung der Allgemeinheit.
  • Es sollte jedoch beachtet werden, dass all diese und ähnliche Begriffe mit den zugehörigen physikalischen Quantitäten verbunden werden müssen und lediglich für diese Quantitäten geeignete und angewendete Kennungen sind. Wenn aus der nachfolgenden Darstellung nichts spezifisch anderes hervorgeht, werden in der gesamten Beschreibung die Darlegungen unter Verwendung von Begriffen wie „Verarbeiten” oder „Rechnen” oder ”Berechnen” oder „Anzeigen” oder „Bestimmen” oder Ähnliches so verstanden, dass sie sich auf den Vorgang und die Prozesse eines Computersystems oder ähnliches elektronisches Rechenmodul und/oder Vorrichtung beziehen, welche Daten, die als physikalische (elektronische) Quantitäten innerhalb der Computersystemspeicher oder Register oder anderer solcher Informationsspeicher, Übertragungs- oder Anzeigevorrichtungen manipuliert und transformiert.
  • Bestimmte Aspekte der vorliegenden Erfindung beinhalten Prozessschritte und Instruktionen, die hierin in der Form eines Algorithmus beschrieben sind. Es soll beachtet werden, dass die Prozessschritte und Instruktionen der vorliegenden Erfindung in Software, Firmware und/oder Hardware eingebettet sein können, und, wenn sie in Software eingebettet sind, heruntergeladen werden können, um auf unterschiedlichen Plattformen, die von einer Vielfalt von Betriebssystemen verwendet werden, abgelegt und betrieben zu werden.
  • Die vorliegende Erfindung bezieht sich auch auf eine Vorrichtung zur Durchführung der Operationen hierin. Diese Vorrichtung kann spezifisch für die erforderlichen Zwecke konstruiert sein, oder sie kann eine Universalrechenvorrichtung umfassen, die durch ein Computerprogramm, das in der Rechenvorrichtung gespeichert ist, selektiv aktiviert oder rekonfiguriert wird. Solch ein Computerprogramm kann in einem computerlesbaren Speichermedium abgelegt sein, wie z. B., worauf es jedoch nicht beschränkt ist, jeglicher Typ von Diskette, einschließlich Floppy-Disks, optische Disketten, CD-ROMs, magnetisch-optische Disketten, Nur-Lese-Speicher (ROMs), Speicher mit wahlfreiem Zugriff (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten, anwendungsspezifische integrierte Schaltkreise (ASICs) oder jeglicher Typ von Medien, die zum Speichern elektronischer Instruktionen geeignet sind, wobei jedes an einen Computersystembus angeschlossen ist. Weiterhin können die hierin in Bezug genommenen Rechenvorrichtungen einen einzelnen Prozessor beinhalten, oder können Architekturen sein, die Mehr-Prozessor-Designs zur erhöhten Rechenfähigkeit benutzen.
  • Die hierin präsentierten Algorithmen und Anzeigen sind nicht inhärent bezogen auf eine bestimmte/ein bestimmtes Rechenvorrichtung, virtuelles System oder andere Vorrichtung. Verschiedene Universalsysteme können auch mit Programmen gemäß der Lehre hierin benutzt werden, oder es kann sich als geeignet erweisen, spezialisiertere Vorrichtung zum Durchführen der erforderlichen Verfahrensschritte zu konstruieren. Die benötigte Struktur für eine Vielfalt dieser Systeme wird aus der hierin bereitgestellten Beschreibung offensichtlich sein. Darüber hinaus ist die vorliegende Erfindung nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es soll erkannt werden, dass eine Vielfalt von Programmiersprachen verwendet werden kann, um die Lehren der vorliegenden Erfindung, wie hierin beschrieben, zu implementieren, und jegliche vorangegangene Bezüge auf spezifische Sprachen werden zur Offenbarung von Befähigung (enablement) und besten Modus (best mode) der vorliegenden Erfindung bereitgestellt.
  • Dementsprechend kann die vorliegende Erfindung bei verschiedenen Ausführungsformen mit Software, Hardware und/oder anderen Elementen zur Steuerung eines Computersystems, einer Rechenvorrichtung oder einer anderen elektronischen Vorrichtung oder jeglicher Kombination oder Vielzahl hieraus implementiert sein. Eine solche elektronische Vorrichtung kann beispielsweise einen Prozessor, eine Eingabevorrichtung (wie ein/eine/einen Tastatur, Maus, Berührungspad, Trackpad, Joystick, Trackball, Mikrofon und/oder jegliche Kombination hieraus), eine Ausgabevorrichtung (wie einen Bildschirm, Lautsprecher und/oder Ähnliches), Speicher, Langzeitspeicher (wie magnetischer Speicher, optischer Speicher und/oder Ähnliches) und/oder Netzwerkkonnektivität, gemäß Techniken, die in der Technik wohl bekannt sind, beinhalten. Eine solche elektronische Vorrichtung kann tragbar oder nicht tragbar sein. Beispiele von elektronischen Vorrichtungen, die zum Implementieren der Erfindung verwendet werden können, beinhalten: ein Mobiltelefon, einen persönlichen digitalen Assistenten, Smartphone, Kiosk, Desktop-Computer, Laptop-Computer, Tablet-Computer, elektronische Vorrichtung von Konsumenten, Vorrichtung der Unterhaltungselektronik, Musikspieler, Kamera, Fernseher, Set-Topbox, elektronische Spieleinheit oder Ähnliches. Eine elektronische Vorrichtung zum Implementieren der vorliegenden Erfindung kann jegliches Betriebssystem verwenden, wie beispielsweise iOS oder MacOS, verfügbar von Apple Inc. aus Cupertino, Kalifornien oder jegliches anderes Betriebssystem, das zur Benutzung auf der Vorrichtung angepasst ist. Während die Erfindung bezüglich einer begrenzten Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute, die von der obigen Beschreibung profitieren, erkennen, dass andere Ausführungsformen entwickelt werden können, ohne von dem Bereich der hierin beschriebenen vorliegenden Erfindung abzuweichen. Darüber hinaus sollte beachtet werden, dass die Sprache, die in der Spezifikation verwendet wurde, vorwiegend aus Gründen der Lesbarkeit und für lehrende Zwecke verwendet wurde, und nicht verwendet wurde, um den erfinderischen Gegenstand abzugrenzen oder zu umschreiben. Dementsprechend ist die Offenbarung der vorliegenden Erfindung beabsichtigt, den Bereich der Erfindung, wie hier in den Ansprüchen dargelegt, zu erläutern aber nicht einzuschränken.

Claims (20)

  1. Computerprogrammprodukt zum Interpretieren einer Benutzereingabe, um einen Task auf einer mindestens einen Prozessor aufweisenden Rechenvorrichtung auszuführen, aufweisend: ein nicht-flüchtiges computerlesbares Speichermedium; und Computerprogrammcode, der auf dem Medium kodiert ist, eingerichtet, um zumindest einen Prozessor zu veranlassen, ein Verfahren auszuführen zum: Empfangen von Kontextinformation von einer Kontextquelle; Veranlassen einer Ausgabevorrichtung, einen Benutzer zu einer Eingabe aufzufordern; Empfangen einer Benutzereingabe über eine Eingabevorrichtung; Interpretieren der empfangenen Benutzereingabe, um eine Darstellung der Absicht des Benutzers abzuleiten, Identifizieren zumindest eines Tasks und zumindest eines Parameters für den Task, basierend zumindest teilweise auf der abgeleiteten Darstellung der Absicht des Benutzers; Ausführen des zumindest einen Tasks unter Verwendung des zumindest einen Parameters, um ein Ergebnis abzuleiten; Generieren einer Dialogantwort basierend auf dem abgeleiteten Ergebnis; und Veranlassen der Ausgabevorrichtung, die generierte Dialogantwort auszugeben; wobei der Computerprogrammcode eingerichtet ist, zumindest einen Prozessor zu veranlassen, zumindest eines der folgenden unter Verwendung der empfangenen Kontextinformation auszuführen: Veranlassen der Ausgabevorrichtung den Benutzer zu einer Eingabe aufzufordern, Interpretieren der empfangenen Benutzereingabe, Identifizieren des zumindest einen Tasks und des zumindest einen Parameters für den Task, und Generieren der Dialogantwort.
  2. System zum Interpretieren einer Benutzereingabe, um einen Task auszuführen, aufweisend: eine Ausgabevorrichtung, eingerichtet um einen Benutzer zu einer Eingabe aufzufordern; eine Eingabevorrichtung, eingerichtet um eine Benutzereingabe zu empfangen; zumindest einen Prozessor, kommunikativ mit der Ausgabevorrichtung und der Eingabevorrichtung verbunden, eingerichtet die folgenden Schritte auszuführen: Empfangen von Kontextinformation von einer Kontextquelle; Interpretieren der empfangenen Benutzereingabe, um eine Darstellung der Absicht des Benutzers abzuleiten, Identifizieren zumindest eines Tasks und zumindest eines Parameters für den Task, basierend zumindest teilweise auf der abgeleiteten Darstellung der Absicht des Benutzers; Ausführen des zumindest einen Tasks unter Verwendung des zumindest einen Parameters, um ein Ergebnis abzuleiten; und Generieren einer Dialogantwort basierend auf dem abgeleiteten Ergebnis; wobei die Rechenvorrichtung weiterhin eingerichtet ist, die generierte Dialogantwort auszugeben; und wobei zumindest eines der folgenden unter Verwendung der empfangenen Kontextinformation ausgeführt wird: Auffordern des Benutzers zu einer Eingabe, Interpretieren der empfangenen Benutzereingabe, Identifizieren des zumindest einen Tasks und des zumindest einen Parameters für den Task und Generieren der Dialogantwort.
  3. System nach Anspruch 2, wobei die empfangene Kontextinformation zumindest eine Information aufweist, die aus der Gruppe ausgewählt ist, welche besteht aus: Anwendungskontext; persönliche Daten assoziiert mit dem Benutzer; Daten aus einer Datenbank assoziiert mit dem Benutzer; Daten erhalten aus Dialoghistorie; Daten erhalten von zumindest einem Sensor; Anwendungspräferenzen; Anwendungsverwendungshistorie; Daten, die ein Ereignis beschreiben; Daten, die eine akustische Umgebung beschreiben, in der die gesprochene Eingabe empfangen wird; gegenwärtigen Dialogzustand; Eingabe, die früher von dem Benutzer bereitgestellt wurde; Standort; lokale Zeit; und Umgebungsbedingungen.
  4. System nach Anspruch 2, wobei: die Ausgabevorrichtung eingerichtet ist, den Benutzer über eine Dialogschnittstelle aufzufordern; und die Eingabevorrichtung eingerichtet ist, eine Benutzereingabe über die Dialogschnittstelle zu empfangen, indem eine gesprochene Eingabe empfangen wird; und wobei der zumindest eine Prozessor eingerichtet ist, die gesprochene Eingabe in eine Textdarstellung umzuwandeln.
  5. System nach Anspruch 4, wobei der zumindest eine Prozessor eingerichtet ist, die gesprochene Eingabe in eine Textdarstellung umzuwandeln, durch: Generieren einer Vielzahl von Kandidatentextinterpretationen der gesprochenen Eingabe; und Einstufen zumindest einer Teilmenge der generierten Kandidatentextinterpretationen; wobei zumindest einer der Schritte der Generierung und Einstufung unter Verwendung der empfangenen Kontextinformation ausgeführt wird.
  6. System nach Anspruch 5, wobei die empfangene Kontextinformation, die zumindest bei einem von Generieren und Einstufen verwendet wird, zumindest eine Information aufweist, die aus der Gruppe ausgewählt ist, welche besteht aus: Daten, die eine akustische Umgebung beschreiben, in der die gesprochene Eingabe empfangen wird; Daten erhalten von zumindest einem Sensor; Vokabular, das aus einer mit dem Benutzer assoziierten Datenbank erhalten wird, Vokabular, das mit den Anwendungspräferenzen assoziiert ist, Vokabular, das von der Verwendungshistorie erhalten wird; und gegenwärtiger Dialogzustand.
  7. System nach Anspruch 2, wobei die Ausgabevorrichtung eingerichtet ist, den Benutzer aufzufordern, indem zumindest eine Aufforderung generiert wird, die zumindest teilweise auf der empfangenen Kontextinformation basiert.
  8. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, die empfangene Benutzereingabe zu interpretieren, um eine Darstellung der Absicht des Benutzers abzuleiten, indem natürliche Sprachverarbeitung mit der empfangenen Benutzereingabe durchgeführt wird, die zumindest teilweise auf der empfangenen Kontextinformation basiert.
  9. System nach Anspruch 8, wobei die empfangene Kontextinformation, die beim Interpretieren der empfangenen Benutzereingabe verwendet wird, zumindest eine Information aufweist, die aus der Gruppe ausgewählt ist, welche besteht aus: Daten, die ein Ereignis beschreiben; Anwendungskontext; Eingabe, die früher von dem Benutzer bereitgestellt wurde; bekannte Information über den Benutzer; Standort; Datum; Umgebungsbedingungen; und Historie.
  10. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, den zumindest einen Task und den zumindest einen Parameter für den Task zu identifizieren, indem der zumindest eine Task und der zumindest eine Parameter für den Task zumindest teilweise basierend auf der empfangenen Kontextinformation identifiziert wird.
  11. System nach Anspruch 10, wobei die empfangene Kontextinformation, die beim Identifizieren des zumindest einen Tasks und des zumindest einen Parameters für den Task verwendet wird, zumindest eine Information aufweist, die aus der Gruppe ausgewählt ist, welche besteht aus: Daten, die ein Ereignis beschreiben; Daten aus einer Datenbank assoziiert mit dem Benutzer; Daten erhalten von zumindest einem Sensor; Anwendungskontext; Eingabe, die früher von dem Benutzer bereitgestellt wurde; bekannte Information über den Benutzer; Standort; Datum; Umgebungsbedingungen; und Historie.
  12. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, eine Dialogantwort zu generieren, durch Generieren einer Dialogantwort basierend zumindest teilweise auf der empfangenen Kontextinformation.
  13. System nach Anspruch 12, wobei die empfangene Kontextinformation, die beim Generieren einer Dialogantwort verwendet wird, zumindest eine Information aufweist, die aus der Gruppe ausgewählt ist, welche besteht aus: Daten aus einer Datenbank assoziiert mit dem Benutzer; Anwendungskontext; Eingabe, die früher von dem Benutzer bereitgestellt wurde; bekannte Information über den Benutzer; Standort; Datum; Umgebungsbedingungen; und Historie.
  14. System nach Anspruch 2, wobei die empfangene Kontextinformation zumindest eine Information aufweist, die aus der Gruppe ausgewählt ist, welche besteht aus: Kontextinformation, die auf einem Server gespeichert wird; und Kontextinformation, die auf einem Client gespeichert wird.
  15. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, Kontextinformation von einer Kontextquelle zu erhalten, durch: Anfragen der Kontextinformation von einer Kontextquelle; und Empfangen der Kontextinformation in Reaktion auf die Anfrage.
  16. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, Kontextinformation von einer Kontextquelle zu erhalten, durch: Empfangen von zumindest einem Teil der Kontextinformation vor dem Empfang einer Benutzereingabe.
  17. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, Kontextinformation von einer Kontextquelle zu erhalten, durch: Empfangen von zumindest einem Teil der Kontextinformation nach dem Empfang einer Benutzereingabe.
  18. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, Kontextinformation von einer Kontextquelle zu erhalten, durch: Empfangen von statischer Kontextinformation als Teil eines Initialisierungsschrittes; und Empfangen von zusätzlicher Kontextinformation nach dem Empfang einer Benutzereingabe.
  19. System nach Anspruch 2, wobei der zumindest eine Prozessor eingerichtet ist, Kontextinformation von einer Kontextquelle zu erhalten, durch: Empfangen einer Push-Benachrichtigung einer Änderung in der Kontextinformation; und reagierend auf die Push-Benachrichtigung, Aktualisieren der lokal gespeicherten Kontextinformation.
  20. System nach Anspruch 2, wobei die Ausgabevorrichtung, die Eingabevorrichtung und der zumindest eine Prozessor als Komponenten implementiert sind von zumindest einer Vorrichtung, die aus der Gruppe ausgewählt ist, welche besteht aus: ein Telefon; ein Smartphone; ein Tablet-Computer; ein Laptop-Computer; ein persönlich digitaler Assistent; ein Desktop-Computer; ein Kiosksystem; eine elektronische Vorrichtung für Konsumenten; eine elektronische Unterhaltungsvorrichtung für Konsumenten; ein Musikspieler; eine Kamera; ein Fernseher; eine elektronische Spieleeinheit; und eine Set-Top-Box.
DE102012019178A 2011-09-30 2012-09-28 Verwendung von Kontextinformationen zum Erleichtern der Verarbeitung von Befehlen bei einem virtuellen Assistenten Withdrawn DE102012019178A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/250,854 2011-09-30
US13/250,854 US9858925B2 (en) 2009-06-05 2011-09-30 Using context information to facilitate processing of commands in a virtual assistant

Publications (1)

Publication Number Publication Date
DE102012019178A1 true DE102012019178A1 (de) 2013-04-04

Family

ID=47225421

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012019178A Withdrawn DE102012019178A1 (de) 2011-09-30 2012-09-28 Verwendung von Kontextinformationen zum Erleichtern der Verarbeitung von Befehlen bei einem virtuellen Assistenten

Country Status (12)

Country Link
EP (3) EP3200185A1 (de)
JP (7) JP5698203B2 (de)
KR (7) KR101683083B1 (de)
CN (1) CN103226949B (de)
AU (1) AU2012232977A1 (de)
BR (1) BR102012024861B1 (de)
CA (2) CA2791277C (de)
DE (1) DE102012019178A1 (de)
GB (1) GB2495222B (de)
MX (1) MX2012011426A (de)
NL (1) NL2009544B1 (de)
RU (1) RU2542937C2 (de)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014224794A1 (de) * 2014-12-03 2016-06-09 Bayerische Motoren Werke Aktiengesellschaft Sprachassistenzverfahren für ein Kraftfahrzeug
DE102015213722A1 (de) * 2015-07-21 2017-01-26 Volkswagen Aktiengesellschaft Verfahren zum Betreiben eines Spracherkennungssystems in einem Fahrzeug und Spracherkennungssystem
DE102016104316A1 (de) * 2016-03-09 2017-09-14 "Wortkampfkunst" - Kommunikationsschule für Dienstleistungen, Industrie und Handwerk e.K. Einrichtung zur psychischen Selbstschulung
DE102016212073A1 (de) * 2016-07-04 2018-01-04 Bayerische Motoren Werke Aktiengesellschaft Fortbewegungsmittel, Vorrichtung und Verfahren zur Aktivierung einer Empfangsfunktion eines Assistentensystems in einem Fortbewegungsmittel
US10430440B2 (en) 2016-10-21 2019-10-01 Fujitsu Limited Apparatus program and method for data property recognition
US10445427B2 (en) 2016-10-21 2019-10-15 Fujitsu Limited Semantic parsing with knowledge-based editor for execution of operations
EP3576084A1 (de) 2018-05-29 2019-12-04 Christoph Neumann Effiziente dialoggestaltung
US10776107B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Microservice-based data processing apparatus, method, and program
US10776170B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Software service execution apparatus, system, and method
US10783193B2 (en) 2016-10-21 2020-09-22 Fujitsu Limited Program, method, and system for execution of software services
US11113473B2 (en) 2018-04-02 2021-09-07 SoundHound Inc. Interpreting expressions having potentially ambiguous meanings in different domains
DE102021120246A1 (de) 2021-08-04 2023-02-09 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem
DE102022112444A1 (de) 2022-05-18 2023-11-23 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem
DE112014006542B4 (de) * 2014-03-31 2024-02-08 Mitsubishi Electric Corporation Einrichtung und Verfahren zum Verständnis von einer Benutzerintention

Families Citing this family (390)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US8181205B2 (en) 2002-09-24 2012-05-15 Russ Samuel H PVR channel and PVR IPG information
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
DE112014000709B4 (de) 2013-02-07 2021-12-30 Apple Inc. Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10445115B2 (en) * 2013-04-18 2019-10-15 Verint Americas Inc. Virtual assistant focused user interfaces
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101959188B1 (ko) * 2013-06-09 2019-07-02 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9728184B2 (en) 2013-06-18 2017-08-08 Microsoft Technology Licensing, Llc Restructuring deep neural network acoustic models
US9589565B2 (en) 2013-06-21 2017-03-07 Microsoft Technology Licensing, Llc Environmentally aware dialog policies and response generation
US9311298B2 (en) 2013-06-21 2016-04-12 Microsoft Technology Licensing, Llc Building conversational understanding systems using a toolset
CN103309618A (zh) 2013-07-02 2013-09-18 姜洪明 移动操作系统
US10776375B2 (en) 2013-07-15 2020-09-15 Microsoft Technology Licensing, Llc Retrieval of attribute values based upon identified entities
KR101749009B1 (ko) 2013-08-06 2017-06-19 애플 인크. 원격 디바이스로부터의 활동에 기초한 스마트 응답의 자동 활성화
CN104423844B (zh) * 2013-08-30 2019-03-29 联想(北京)有限公司 一种信息处理方法、装置和电子设备
WO2015030796A1 (en) * 2013-08-30 2015-03-05 Intel Corporation Extensible context-aware natural language interactions for virtual personal assistants
JP2015052743A (ja) * 2013-09-09 2015-03-19 Necパーソナルコンピュータ株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US20150074524A1 (en) * 2013-09-10 2015-03-12 Lenovo (Singapore) Pte. Ltd. Management of virtual assistant action items
US9240182B2 (en) * 2013-09-17 2016-01-19 Qualcomm Incorporated Method and apparatus for adjusting detection threshold for activating voice assistant function
US9754591B1 (en) 2013-11-18 2017-09-05 Amazon Technologies, Inc. Dialog management context sharing
US10162813B2 (en) * 2013-11-21 2018-12-25 Microsoft Technology Licensing, Llc Dialogue evaluation via multiple hypothesis ranking
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US8862467B1 (en) 2013-12-11 2014-10-14 Google Inc. Contextual speech recognition
US20170004829A1 (en) * 2014-01-06 2017-01-05 Ntt Docomo, Inc. Terminal apparatus, program, and server apparatus for providing information according to user data input
US8938394B1 (en) * 2014-01-09 2015-01-20 Google Inc. Audio triggers based on context
US10186256B2 (en) 2014-01-23 2019-01-22 Nuance Communications, Inc. Method and apparatus for exploiting language skill information in automatic speech recognition
US10978060B2 (en) 2014-01-31 2021-04-13 Hewlett-Packard Development Company, L.P. Voice input command
US20150234930A1 (en) 2014-02-19 2015-08-20 Google Inc. Methods and systems for providing functional extensions with a landing page of a creative
US9324321B2 (en) 2014-03-07 2016-04-26 Microsoft Technology Licensing, Llc Low-footprint adaptation and personalization for a deep neural network
CN103885596B (zh) * 2014-03-24 2017-05-24 联想(北京)有限公司 一种信息处理方法及电子设备
US9529794B2 (en) 2014-03-27 2016-12-27 Microsoft Technology Licensing, Llc Flexible schema for language model customization
US9710546B2 (en) * 2014-03-28 2017-07-18 Microsoft Technology Licensing, Llc Explicit signals personalized search
US9614724B2 (en) 2014-04-21 2017-04-04 Microsoft Technology Licensing, Llc Session-based device configuration
US9520127B2 (en) 2014-04-29 2016-12-13 Microsoft Technology Licensing, Llc Shared hidden layer combination for speech recognition systems
US9384334B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content discovery in managed wireless distribution networks
US9430667B2 (en) 2014-05-12 2016-08-30 Microsoft Technology Licensing, Llc Managed wireless distribution network
US10111099B2 (en) 2014-05-12 2018-10-23 Microsoft Technology Licensing, Llc Distributing content in managed wireless distribution networks
US9384335B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content delivery prioritization in managed wireless distribution networks
US9874914B2 (en) 2014-05-19 2018-01-23 Microsoft Technology Licensing, Llc Power management contracts for accessory devices
US10726831B2 (en) * 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US10838378B2 (en) 2014-06-02 2020-11-17 Rovio Entertainment Ltd Control of a computer program using media content
EP2953374B1 (de) * 2014-06-02 2021-07-28 Rovio Entertainment Ltd Steuerung eines Computerprogramms
US10037202B2 (en) 2014-06-03 2018-07-31 Microsoft Technology Licensing, Llc Techniques to isolating a portion of an online computing service
CN107113222B (zh) * 2014-06-06 2020-09-01 谷歌有限责任公司 基于环境的主动聊天信息系统
US9367490B2 (en) 2014-06-13 2016-06-14 Microsoft Technology Licensing, Llc Reversible connector for accessory devices
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
KR102261552B1 (ko) 2014-06-30 2021-06-07 삼성전자주식회사 음성 명령어 제공 방법 및 이를 지원하는 전자 장치
US10015234B2 (en) * 2014-08-12 2018-07-03 Sony Corporation Method and system for providing information via an intelligent user interface
CN104239767B (zh) * 2014-09-03 2018-05-01 陈飞 基于环境参数对自然语言命令自动补正操作序列以简化使用的装置及方法
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
KR102342623B1 (ko) 2014-10-01 2021-12-22 엑스브레인, 인크. 음성 및 연결 플랫폼
KR101610151B1 (ko) * 2014-10-17 2016-04-08 현대자동차 주식회사 개인음향모델을 이용한 음성 인식장치 및 방법
CN104360897B (zh) * 2014-10-29 2017-09-22 百度在线网络技术(北京)有限公司 对话处理方法和对话管理系统
KR20160056548A (ko) 2014-11-12 2016-05-20 삼성전자주식회사 질의 응답을 위한 디스플레이 장치 및 방법
US11327711B2 (en) 2014-12-05 2022-05-10 Microsoft Technology Licensing, Llc External visual interactions for speech-based devices
CN111427534B (zh) * 2014-12-11 2023-07-25 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
KR102241289B1 (ko) * 2014-12-12 2021-04-16 엘지전자 주식회사 디스플레이 장치 및 그 제어 방법
US9552816B2 (en) 2014-12-19 2017-01-24 Amazon Technologies, Inc. Application focus in speech-based systems
CN107206896B (zh) * 2014-12-22 2021-03-05 大众汽车有限公司 手指板条和手指板条的应用
US9836452B2 (en) * 2014-12-30 2017-12-05 Microsoft Technology Licensing, Llc Discriminating ambiguous expressions to enhance user experience
US10713005B2 (en) 2015-01-05 2020-07-14 Google Llc Multimodal state circulation
US9865280B2 (en) * 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US10152299B2 (en) * 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) * 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
CN106020784B (zh) * 2015-03-18 2020-09-08 小米科技有限责任公司 应用消息显示方法、装置及终端
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US20160320198A1 (en) * 2015-04-29 2016-11-03 Ford Global Technologies, Llc Ride-sharing routing using contextual constraints
US10114676B2 (en) * 2015-05-05 2018-10-30 Microsoft Technology Licensing, Llc Building multimodal collaborative dialogs with task frames
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10083688B2 (en) * 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
RU2614930C2 (ru) * 2015-06-05 2017-03-30 Закрытое акционерное общество "Лаборатория Касперского" Система и способ контроля исполнения приложений дополненной реальности, установленных на устройстве пользователя, в зависимости от состояния окружающей среды
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US20180190272A1 (en) * 2015-06-30 2018-07-05 Nuance Communications, Inc. Method and apparatus for processing user input
US10249297B2 (en) * 2015-07-13 2019-04-02 Microsoft Technology Licensing, Llc Propagating conversational alternatives using delayed hypothesis binding
US10686738B2 (en) 2015-07-24 2020-06-16 Facebook, Inc. Providing personal assistant service via messaging
CN106469040B (zh) 2015-08-19 2019-06-21 华为终端有限公司 通信方法、服务器及设备
US10339916B2 (en) 2015-08-31 2019-07-02 Microsoft Technology Licensing, Llc Generation and application of universal hypothesis ranking model
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) * 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10503265B2 (en) * 2015-09-08 2019-12-10 Microvision, Inc. Mixed-mode depth detection
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
CN105205133A (zh) 2015-09-15 2015-12-30 小米科技有限责任公司 信息收集方法和装置
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
EP3380949B1 (de) * 2015-11-25 2021-10-20 Microsoft Technology Licensing, LLC Automatische entdeckung von skripten mit gesprochenem dialog
CN106814639A (zh) * 2015-11-27 2017-06-09 富泰华工业(深圳)有限公司 语音控制系统及方法
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
CN108476164B (zh) * 2015-12-21 2021-10-08 谷歌有限责任公司 在消息传送应用中自动地提供机器人服务的方法
US10530723B2 (en) 2015-12-21 2020-01-07 Google Llc Automatic suggestions for message exchange threads
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10049666B2 (en) 2016-01-06 2018-08-14 Google Llc Voice recognition system
WO2017138777A1 (en) 2016-02-12 2017-08-17 Samsung Electronics Co., Ltd. Method and electronic device for performing voice based actions
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10133612B2 (en) * 2016-03-17 2018-11-20 Nuance Communications, Inc. Session processing interaction between two or more virtual assistants
US10757048B2 (en) 2016-04-08 2020-08-25 Microsoft Technology Licensing, Llc Intelligent personal assistant as a contact
US10158593B2 (en) * 2016-04-08 2018-12-18 Microsoft Technology Licensing, Llc Proactive intelligent personal assistant
US10319371B2 (en) * 2016-05-04 2019-06-11 GM Global Technology Operations LLC Disambiguation of vehicle speech commands
US10263933B2 (en) * 2016-05-17 2019-04-16 Google Llc Incorporating selectable application links into message exchange threads
US20170337284A1 (en) * 2016-05-17 2017-11-23 Google Inc. Determining and using attributes of message exchange thread participants
US10291565B2 (en) * 2016-05-17 2019-05-14 Google Llc Incorporating selectable application links into conversations with personal assistant modules
US10783178B2 (en) 2016-05-17 2020-09-22 Google Llc Generating a personal database entry for a user based on natural language user interface input of the user and generating output based on the entry in response to further natural language user interface input of the user
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10049670B2 (en) * 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10282218B2 (en) * 2016-06-07 2019-05-07 Google Llc Nondeterministic task initiation by a personal assistant module
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10462619B2 (en) * 2016-06-08 2019-10-29 Google Llc Providing a personal assistant module with a selectively-traversable state machine
US12223282B2 (en) 2016-06-09 2025-02-11 Apple Inc. Intelligent automated assistant in a home environment
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10490187B2 (en) * 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK201670540A1 (en) * 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) * 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US12197817B2 (en) 2016-06-11 2025-01-14 Apple Inc. Intelligent device arbitration and control
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10474946B2 (en) 2016-06-24 2019-11-12 Microsoft Technology Licensing, Llc Situation aware personal assistant
CN106250474B (zh) * 2016-07-29 2020-06-23 Tcl科技集团股份有限公司 一种语音控制的处理方法及系统
RU2635902C1 (ru) * 2016-08-05 2017-11-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система отбора обучающих признаков для алгоритма машинного обучения
US10192551B2 (en) 2016-08-30 2019-01-29 Google Llc Using textual input and user state information to generate reply content to present in response to the textual input
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US11240179B2 (en) * 2016-09-16 2022-02-01 Oracle International Corporation Internet cloud-hosted natural language interactive messaging system with virtual database
DE112017003594B4 (de) 2016-09-20 2026-03-26 Google Llc Bot, der Genehmigung zum Zugriff auf Daten anfordert
US10015124B2 (en) 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
CN117634495A (zh) 2016-09-20 2024-03-01 谷歌有限责任公司 基于消息贴纸的建议响应
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US20180096072A1 (en) * 2016-10-03 2018-04-05 Google Inc. Personalization of a virtual assistant
US10552742B2 (en) 2016-10-14 2020-02-04 Google Llc Proactive virtual assistant
CN106601216A (zh) * 2016-11-30 2017-04-26 宇龙计算机通信科技(深圳)有限公司 通过音乐实现电子设备控制的方法及系统
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
KR102668438B1 (ko) * 2016-12-26 2024-05-24 현대자동차주식회사 음성 처리 장치, 이를 포함하는 차량 및 음성 처리 방법
US10924376B2 (en) * 2016-12-30 2021-02-16 Google Llc Selective sensor polling
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
KR102338990B1 (ko) 2017-01-23 2021-12-14 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR20180102871A (ko) * 2017-03-08 2018-09-18 엘지전자 주식회사 이동단말기 및 이동단말기의 차량 제어 방법
US10636418B2 (en) 2017-03-22 2020-04-28 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
CN107122179A (zh) 2017-03-31 2017-09-01 阿里巴巴集团控股有限公司 语音的功能控制方法和装置
CN107146610B (zh) * 2017-04-10 2021-06-15 易视星空科技无锡有限公司 一种用户意图的确定方法及装置
US20180308481A1 (en) * 2017-04-20 2018-10-25 Semantic Machines, Inc. Automated assistant data flow
US20180314532A1 (en) * 2017-04-26 2018-11-01 Google Inc. Organizing messages exchanged in human-to-computer dialogs with automated assistants
KR102309031B1 (ko) 2017-04-27 2021-10-06 삼성전자 주식회사 지능형 에이전트 관리 방법 및 장치
KR102375800B1 (ko) * 2017-04-28 2022-03-17 삼성전자주식회사 음성 인식 서비스를 제공하는 전자 장치 및 그 방법
KR102380717B1 (ko) 2017-04-30 2022-03-31 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 이 전자 장치의 제어 방법
US9865260B1 (en) 2017-05-03 2018-01-09 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
CN110574023A (zh) * 2017-05-11 2019-12-13 苹果公司 脱机个人助理
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
WO2018212941A1 (en) * 2017-05-15 2018-11-22 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. Multi-modal interfaces
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10275651B2 (en) 2017-05-16 2019-04-30 Google Llc Resolving automated assistant requests that are based on image(s) and/or other sensor data
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
WO2018212822A1 (en) 2017-05-16 2018-11-22 Google Inc. Suggested actions for images
US11074280B2 (en) * 2017-05-18 2021-07-27 Aiqudo, Inc Cluster based search and recommendation method to rapidly on-board commands in personal assistants
US10664533B2 (en) * 2017-05-24 2020-05-26 Lenovo (Singapore) Pte. Ltd. Systems and methods to determine response cue for digital assistant based on context
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
CN109102802B (zh) 2017-06-21 2023-10-17 三星电子株式会社 用于处理用户话语的系统
US10742435B2 (en) * 2017-06-29 2020-08-11 Google Llc Proactive provision of new content to group chat participants
US11017037B2 (en) * 2017-07-03 2021-05-25 Google Llc Obtaining responsive information from multiple corpora
KR102406718B1 (ko) * 2017-07-19 2022-06-10 삼성전자주식회사 컨텍스트 정보에 기반하여 음성 입력을 수신하는 지속 기간을 결정하는 전자 장치 및 시스템
US11074911B2 (en) 2017-09-05 2021-07-27 First Advantage Corporation Digital assistant
CN110019699B (zh) * 2017-09-05 2023-10-20 声音猎手公司 域间通过语法槽的分类
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10394957B2 (en) * 2017-09-25 2019-08-27 Microsoft Technology Licensing, Llc Signal analysis in a conversational scheduling assistant computing system
KR102487669B1 (ko) 2017-09-29 2023-01-13 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
CN107773982B (zh) * 2017-10-20 2021-08-13 科大讯飞股份有限公司 游戏语音交互方法及装置
WO2019103200A1 (ko) * 2017-11-23 2019-05-31 주식회사 모다 통합 음성비서 서비스 제공 방법 및 장치
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
WO2019112614A1 (en) * 2017-12-08 2019-06-13 Google Llc Isolating a device, from multiple devices in an environment, for being responsive to spoken assistant invocation(s)
CN109920429A (zh) * 2017-12-13 2019-06-21 上海擎感智能科技有限公司 一种用于车载的语音识别数据处理方法及系统
US11836592B2 (en) * 2017-12-15 2023-12-05 International Business Machines Corporation Communication model for cognitive systems
KR102532300B1 (ko) * 2017-12-22 2023-05-15 삼성전자주식회사 어플리케이션 실행 방법 및 이를 위한 장치
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
KR102066451B1 (ko) * 2018-02-02 2020-01-15 주식회사 오비고 차량용 ai 서비스를 제공하는 방법 및 이를 이용한 장치
CN110209776B (zh) * 2018-02-13 2023-10-27 鼎捷软件股份有限公司 操作虚拟助理的方法及系统
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
CN111819566A (zh) * 2018-03-05 2020-10-23 谷歌有限责任公司 通过自动助理在先前对话场境之间的转变
KR102508677B1 (ko) 2018-03-08 2023-03-13 삼성전자주식회사 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) * 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11056107B2 (en) * 2018-03-30 2021-07-06 International Business Machines Corporation Conversational framework
CN109948017B (zh) 2018-04-26 2021-03-30 华为技术有限公司 一种信息处理方法及装置
EP3753016A4 (de) 2018-05-02 2021-05-05 Samsung Electronics Co., Ltd. Kontextuelle empfehlung
US10877718B2 (en) 2018-05-07 2020-12-29 Spotify Ab Adaptive voice communication
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
CN110489517B (zh) * 2018-05-09 2023-10-31 鼎捷软件股份有限公司 虚拟助理的自动学习方法及系统
KR102695306B1 (ko) 2018-06-27 2024-08-16 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
KR102795892B1 (ko) * 2018-05-17 2025-04-16 현대자동차주식회사 대화 시스템 및 대화 처리 방법
KR102914689B1 (ko) 2018-07-11 2026-01-19 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
KR102562227B1 (ko) 2018-06-12 2023-08-02 현대자동차주식회사 대화 시스템, 그를 가지는 차량 및 차량의 제어 방법
KR20200042127A (ko) 2018-10-15 2020-04-23 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
KR20190133100A (ko) 2018-05-22 2019-12-02 삼성전자주식회사 어플리케이션을 이용하여 음성 입력에 대한 응답을 출력하는 전자 장치 및 그 동작 방법
KR102788793B1 (ko) * 2018-05-23 2025-04-01 주식회사 케이티 음성 메시지 서비스를 제공하는 미디어 재생 장치 및 방법
KR20190135676A (ko) 2018-05-29 2019-12-09 현대자동차주식회사 대화 시스템, 이를 포함하는 차량 및 대화 처리 방법
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US10504518B1 (en) 2018-06-03 2019-12-10 Apple Inc. Accelerated task performance
KR102777603B1 (ko) 2018-06-22 2025-03-10 현대자동차주식회사 대화 시스템 및 이를 이용한 차량
KR102783184B1 (ko) 2018-06-25 2025-03-19 현대자동차주식회사 대화 시스템 및 대화 처리 방법
US11386338B2 (en) * 2018-07-05 2022-07-12 International Business Machines Corporation Integrating multiple domain problem solving in a dialog system for a user
KR102914685B1 (ko) 2018-07-11 2026-01-19 현대자동차주식회사 대화 시스템 및 대화 처리 방법
US11075007B2 (en) 2018-07-18 2021-07-27 International Business Machines Corporation Dynamic selection of virtual agents in a mutli-domain expert system
EP4373054A3 (de) 2018-08-20 2024-07-10 Samsung Electronics Co., Ltd. Elektronische vorrichtung und steuerungsverfahren dafür
JP7159707B2 (ja) * 2018-09-04 2022-10-25 富士フイルムビジネスイノベーション株式会社 表示装置及びプログラム
KR102748336B1 (ko) 2018-09-05 2024-12-31 삼성전자주식회사 전자 장치 및 단축 명령어에 대응하는 태스크 수행 방법
CN110930999A (zh) * 2018-09-19 2020-03-27 上海博泰悦臻电子设备制造有限公司 语音互动方法、装置及车辆
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US12418517B2 (en) * 2018-10-19 2025-09-16 Apple Inc. Media intercom over a secure device to device communication channel
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
WO2020085924A1 (en) 2018-10-26 2020-04-30 Motorola Solutions, Inc Device, system and method for modifying actions associated with an emergency call
KR102883520B1 (ko) * 2018-11-13 2025-11-12 엔에이치엔 주식회사 인공지능 스피커 및 이를 이용한 대화 진행 방법
US11386889B2 (en) * 2018-12-03 2022-07-12 Google Llc Contextual tagging and biasing of grammars inside word lattices
RU2701090C1 (ru) * 2018-12-19 2019-09-24 Самсунг Электроникс Ко., Лтд. Система и способ для автоматического выполнения команд, заданных пользователем
JP7286772B2 (ja) * 2018-12-28 2023-06-05 グーグル エルエルシー 選択されたサジェスチョンによる自動アシスタントへのボイス入力の補足
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11455982B2 (en) * 2019-01-07 2022-09-27 Cerence Operating Company Contextual utterance resolution in multimodal systems
RU2721999C1 (ru) * 2019-03-18 2020-05-25 Сергей Александрович Гайдамаков Ассоциативная сеть контактов, заметок и/или событий
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
KR102865791B1 (ko) * 2019-04-10 2025-09-29 삼성전자주식회사 자연어 응답을 생성하는 전자 장치 및 자연어 응답 생성 방법
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
EP3966808B1 (de) * 2019-05-10 2026-01-28 Google LLC Verwendung von kontextinformationen mit end-zu-end-modellen zur spracherkennung
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
WO2020242493A1 (en) * 2019-05-31 2020-12-03 Google Llc Dynamically assigning multi-modality circumstantial data to assistant action requests for correlating with subsequent requests
EP3959713B1 (de) * 2019-05-31 2023-08-23 Apple Inc. Sprachassistententdeckbarkeit durch abzielung und personalisierung auf vorrichtung
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. User activity shortcut suggestions
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
CN110211584A (zh) * 2019-06-04 2019-09-06 广州小鹏汽车科技有限公司 车辆控制方法、装置、存储介质及控制终端
CN110413654B (zh) * 2019-06-20 2023-11-21 平安科技(深圳)有限公司 一种确定客户可信联系信息的方法、装置、计算机设备和存储介质
US11438452B1 (en) 2019-08-09 2022-09-06 Apple Inc. Propagating context information in a privacy preserving manner
CN119296533A (zh) * 2019-08-15 2025-01-10 深圳引望智能技术有限公司 语音交互方法、装置、终端及存储介质
KR102884820B1 (ko) * 2019-08-16 2025-11-14 엘지전자 주식회사 인공 지능을 이용한 음성 인식 방법 및 그 장치
US11551676B2 (en) * 2019-09-12 2023-01-10 Oracle International Corporation Techniques for dialog processing using contextual data
EP4034984A1 (de) * 2019-09-24 2022-08-03 Apple Inc. Auflösung von mehrdeutigkeiten von natürlicher sprache in bezug auf eine simulierte realitätsumgebung
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
US20210104220A1 (en) * 2019-10-08 2021-04-08 Sarah MENNICKEN Voice assistant with contextually-adjusted audio output
KR20210046475A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 전자 장치 및 이의 음성 인식 기능 구동 방법
KR102135859B1 (ko) 2019-10-24 2020-07-20 주식회사 유니온플레이스 개인화된 가상 비서를 제공하는 장치
US20210125610A1 (en) * 2019-10-29 2021-04-29 Facebook Technologies, Llc Ai-driven personal assistant with adaptive response generation
US11227583B2 (en) 2019-11-05 2022-01-18 International Business Machines Corporation Artificial intelligence voice response system having variable modes for interaction with user
EP3847546B1 (de) 2019-11-27 2024-08-14 Google LLC Schnittstellenbildung mit anwendungen durch dynamische aktualisierung von natürlicher sprachverarbeitung
US11574634B2 (en) 2019-11-27 2023-02-07 Google Llc Interfacing with applications via dynamically updating natural language processing
CN110995936B (zh) * 2019-12-19 2021-03-19 大众问问(北京)信息科技有限公司 一种语音交互方法、装置及设备
CN111061453B (zh) * 2019-12-26 2023-12-26 北京官匠空间科技有限公司 一种用于app生态系统的语音交互方法、装置
CN111222322B (zh) * 2019-12-31 2022-10-25 联想(北京)有限公司 信息处理方法和电子设备
US20230134103A1 (en) * 2020-03-25 2023-05-04 Sony Group Corporation Information processing apparatus and information processing method
CN111488441B (zh) * 2020-04-08 2023-08-01 北京百度网讯科技有限公司 问题解析方法、装置、知识图谱问答系统和电子设备
KR102389179B1 (ko) * 2020-04-14 2022-04-22 주식회사 오비고 차량 AVN 시스템의 상태 정보를 이용한 차량앱 제어 방법 및 이를 이용한 AI Service Agent
US12301635B2 (en) 2020-05-11 2025-05-13 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US12027163B2 (en) 2020-07-27 2024-07-02 Samsung Electronics Co., Ltd. Electronic device and operation method thereof
CN112182373B (zh) * 2020-09-25 2023-06-02 中国人民大学 一种基于上下文表示学习的性化搜索方法
EP3989057A1 (de) * 2020-10-23 2022-04-27 Deutsche Telekom AG Adaptiver sprachassistent bedienbar durch einen nutzer mittels eines nutzerendgeräts
KR20220057249A (ko) 2020-10-29 2022-05-09 삼성전자주식회사 사용자 발화를 처리하는 전자 장치, 및 그 전자 장치의 제어 방법
US11705111B2 (en) 2020-11-12 2023-07-18 Samsung Electronics Co., Ltd. Methods and systems for predicting non-default actions against unstructured utterances
US12112747B2 (en) 2020-12-04 2024-10-08 Samsung Electronics Co., Ltd. Method for controlling external device based on voice and electronic device thereof
CN112631138A (zh) * 2020-12-09 2021-04-09 创维集团有限公司 一种基于智能家居智能控制系统的办公控制方法
US12277934B2 (en) 2021-02-17 2025-04-15 Samsung Electronics Co., Ltd. Electronic device for analyzing domain associations and reconstructing hints customized for a user based on a common parameter
US11886482B2 (en) * 2021-03-12 2024-01-30 Google Llc Methods and systems for providing a secure automated assistant
CN113066489B (zh) * 2021-03-16 2024-10-29 深圳地平线机器人科技有限公司 语音交互方法、装置、计算机可读存储介质及电子设备
CN117099077A (zh) * 2021-03-23 2023-11-21 微软技术许可有限责任公司 具有用户视图上下文和多模态输入支持的支持语音助手的客户端应用
US11705125B2 (en) 2021-03-26 2023-07-18 International Business Machines Corporation Dynamic voice input detection for conversation assistants
CN113297359B (zh) * 2021-04-23 2023-11-28 阿里巴巴新加坡控股有限公司 交互信息的方法以及装置
US12288036B2 (en) 2021-06-01 2025-04-29 Apple Inc. Reform input in flow execution
US12300230B2 (en) 2021-08-11 2025-05-13 MeetKai, Inc. Conversational artificial intelligence system in a virtual reality space
US12243523B2 (en) 2021-09-24 2025-03-04 Apple Inc. Digital assistant for providing handsfree notification management
US12518092B2 (en) 2021-10-15 2026-01-06 Adeia Guides Inc. Systems and methods to generate contextual based actions
TWI823195B (zh) * 2021-11-25 2023-11-21 荷蘭商荷蘭移動驅動器公司 智慧推薦方法及系統
KR20230102506A (ko) 2021-12-30 2023-07-07 삼성전자주식회사 전자 장치 및 이의 제어 방법
KR20230105254A (ko) 2022-01-03 2023-07-11 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US12424218B2 (en) 2022-05-27 2025-09-23 Apple Inc. Digital assistant response framework
US11978436B2 (en) 2022-06-03 2024-05-07 Apple Inc. Application vocabulary integration with a digital assistant
US11995457B2 (en) 2022-06-03 2024-05-28 Apple Inc. Digital assistant integration with system interface
CN115064168B (zh) * 2022-08-17 2022-12-13 广州小鹏汽车科技有限公司 语音交互方法、服务器和存储介质
US12235889B2 (en) 2022-08-26 2025-02-25 Google Llc Device messages provided in displayed image compilations based on user content
CN120077361A (zh) * 2022-08-30 2025-05-30 谷歌有限责任公司 减少与自动化助理请求一起传输的元数据
US12585696B2 (en) 2022-08-30 2026-03-24 Google Llc Reducing metadata transmitted with automated assistant requests
WO2024058474A1 (ko) * 2022-09-15 2024-03-21 삼성전자주식회사 음성 인식을 수행하는 전자 장치 및 이의 제어 방법
EP4528721A4 (de) 2022-09-15 2025-07-09 Samsung Electronics Co Ltd Elektronische vorrichtung zur durchführung von spracherkennung und verfahren zur steuerung davon
EP4586132A4 (de) * 2022-09-28 2025-08-13 Lg Electronics Inc Vorrichtung der künstlichen intelligenz und verfahren zum betrieb davon
US12332730B2 (en) 2022-10-11 2025-06-17 Cisco Technology, Inc. Error context for bot optimization
WO2024102123A1 (en) * 2022-11-09 2024-05-16 Google Llc Voice input disambiguation
CN115565519B (zh) * 2022-11-30 2023-04-07 广汽埃安新能源汽车股份有限公司 对话语音生成方法、装置、设备、计算机可读介质
US11695867B1 (en) 2022-12-07 2023-07-04 V Group Inc. Methods and systems for facilitating context-to-call communications between communication points via dedicated context-to-call-enabled contact numbers
KR102551531B1 (ko) * 2023-04-10 2023-07-05 (주)인스웨이브시스템즈 맥락 기반 대화형 서비스 제공 시스템 및 방법
EP4462197A1 (de) * 2023-05-11 2024-11-13 BSH Hausgeräte GmbH Elektronisches gerät und verfahren zur interaktion mit einem nutzer in einem haushalt
KR102572200B1 (ko) 2023-06-29 2023-08-29 (주)인스웨이브시스템즈 맥락 기반 대화형 서비스 제공 시스템 및 방법
WO2025041876A1 (ko) * 2023-08-22 2025-02-27 엘지전자 주식회사 대화형 인공지능을 위한 프롬프트 생성을 위한 장치 또는 이를 위한 방법
WO2025080070A1 (ko) * 2023-10-13 2025-04-17 삼성전자주식회사 전자 장치 및 사용자 발화 처리 방법
WO2025127383A1 (ko) * 2023-12-11 2025-06-19 삼성전자주식회사 캐싱을 이용하여 커맨드에 대응하는 기능을 실행하기 위한 전자 장치 및 그 방법
US20250198790A1 (en) * 2023-12-15 2025-06-19 Google Llc Generating a Customized Digital Map Via a Generative Machine-Learned Model
WO2026003999A1 (ja) * 2024-06-26 2026-01-02 株式会社I’mbesideyou 情報処理システム及び情報処理方法
WO2026014661A1 (ko) * 2024-07-08 2026-01-15 삼성전자주식회사 메시지를 생성하기 위한 전자 장치, 방법, 및 비-일시적 컴퓨터 판독가능 저장 매체

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339288A (ja) * 1995-06-14 1996-12-24 Canon Inc 情報処理装置及びその制御方法
RU2163032C2 (ru) * 1995-09-14 2001-02-10 Эрикссон Инк. Система адаптивной фильтрации аудиосигналов для улучшения разборчивости речи при наличии шума
US6584439B1 (en) * 1999-05-21 2003-06-24 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
US20030093281A1 (en) * 1999-05-21 2003-05-15 Michael Geilhufe Method and apparatus for machine to machine communication using speech
US6324512B1 (en) * 1999-08-26 2001-11-27 Matsushita Electric Industrial Co., Ltd. System and method for allowing family members to access TV contents and program media recorder over telephone or internet
JP4200607B2 (ja) * 1999-09-03 2008-12-24 ソニー株式会社 情報処理装置および方法、並びにプログラム格納媒体
JP3941299B2 (ja) * 1999-10-12 2007-07-04 三菱電機株式会社 音声対話装置
US6353794B1 (en) * 1999-10-19 2002-03-05 Ar Group, Inc. Air travel information and computer data compilation, retrieval and display method and system
JP2001188721A (ja) * 1999-12-28 2001-07-10 Casio Comput Co Ltd データ入力装置及びデータ入力処理プログラムを記憶した記憶媒体
JP2001216131A (ja) * 2000-02-04 2001-08-10 Sony Corp 情報処理装置および方法、並びにプログラム格納媒体
JP2001318839A (ja) * 2000-05-11 2001-11-16 Casio Comput Co Ltd 情報収集装置及び記憶媒体
KR100380829B1 (ko) * 2000-09-09 2003-04-18 주식회사 모빅텔커뮤니케이션스 에이전트를 이용한 대화 방식 인터페이스 운영 시스템 및방법과 그 프로그램 소스를 기록한 기록 매체
US20020087306A1 (en) * 2000-12-29 2002-07-04 Lee Victor Wai Leung Computer-implemented noise normalization method and system
US7257537B2 (en) * 2001-01-12 2007-08-14 International Business Machines Corporation Method and apparatus for performing dialog management in a computer conversational interface
US7031916B2 (en) * 2001-06-01 2006-04-18 Texas Instruments Incorporated Method for converging a G.729 Annex B compliant voice activity detection circuit
US20030233230A1 (en) * 2002-06-12 2003-12-18 Lucent Technologies Inc. System and method for representing and resolving ambiguity in spoken dialogue systems
US7003464B2 (en) * 2003-01-09 2006-02-21 Motorola, Inc. Dialog recognition and control in a voice browser
JP2004239963A (ja) * 2003-02-03 2004-08-26 Mitsubishi Electric Corp 車載制御装置
CN100485603C (zh) * 2003-04-04 2009-05-06 雅虎公司 用于从搜索查询中产生概念单元的系统和方法
KR20040088975A (ko) * 2003-04-14 2004-10-20 주식회사 케이티 개인비서 전화서비스 시스템 및 그 방법
US7302392B1 (en) * 2003-10-07 2007-11-27 Sprint Spectrum L.P. Voice browser with weighting of browser-level grammar to enhance usability
US7669177B2 (en) * 2003-10-24 2010-02-23 Microsoft Corporation System and method for preference application installation and execution
US20060036430A1 (en) 2004-08-12 2006-02-16 Junling Hu System and method for domain-based natural language consultation
US8942985B2 (en) * 2004-11-16 2015-01-27 Microsoft Corporation Centralized method and system for clarifying voice commands
US7826945B2 (en) * 2005-07-01 2010-11-02 You Zhang Automobile speech-recognition interface
US7949529B2 (en) * 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
US8126120B2 (en) * 2005-12-12 2012-02-28 Tellme Networks, Inc. Providing missed call and message information
US7480870B2 (en) * 2005-12-23 2009-01-20 Apple Inc. Indication of progress towards satisfaction of a user input condition
US7657849B2 (en) * 2005-12-23 2010-02-02 Apple Inc. Unlocking a device by performing gestures on an unlock image
IL174107A0 (en) 2006-02-01 2006-08-01 Grois Dan Method and system for advertising by means of a search engine over a data network
US7599861B2 (en) * 2006-03-02 2009-10-06 Convergys Customer Management Group, Inc. System and method for closed loop decisionmaking in an automated care system
JP5146979B2 (ja) * 2006-06-02 2013-02-20 株式会社国際電気通信基礎技術研究所 自然言語における多義解消装置及びコンピュータプログラム
US8423347B2 (en) * 2006-06-06 2013-04-16 Microsoft Corporation Natural language personal information management
JP4716432B2 (ja) * 2006-06-09 2011-07-06 勝美 吉野 高齢者対応通信システム
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8073681B2 (en) * 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
US20080147411A1 (en) * 2006-12-19 2008-06-19 International Business Machines Corporation Adaptation of a speech processing system from external input that is not directly related to sounds in an operational acoustic environment
US8762143B2 (en) * 2007-05-29 2014-06-24 At&T Intellectual Property Ii, L.P. Method and apparatus for identifying acoustic background environments based on time and speed to enhance automatic speech recognition
US9954996B2 (en) * 2007-06-28 2018-04-24 Apple Inc. Portable electronic device with conversation management for incoming instant messages
US8140335B2 (en) * 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US20090182562A1 (en) * 2008-01-14 2009-07-16 Garmin Ltd. Dynamic user interface for automated speech recognition
US8082148B2 (en) * 2008-04-24 2011-12-20 Nuance Communications, Inc. Testing a grammar used in speech recognition for reliability in a plurality of operating environments having different background noise
US8121837B2 (en) * 2008-04-24 2012-02-21 Nuance Communications, Inc. Adjusting a speech engine for a mobile computing device based on background noise
KR101462932B1 (ko) 2008-05-28 2014-12-04 엘지전자 주식회사 이동 단말기 및 그의 텍스트 수정방법
US8117136B2 (en) 2008-08-29 2012-02-14 Hewlett-Packard Development Company, L.P. Relationship management on a mobile computing device
JP2010066519A (ja) * 2008-09-11 2010-03-25 Brother Ind Ltd 音声対話装置、音声対話方法、および音声対話プログラム
JP2010079103A (ja) * 2008-09-26 2010-04-08 Brother Ind Ltd 音声対話装置及びそのプログラム並びに音声対話処理方法
US8285545B2 (en) * 2008-10-03 2012-10-09 Volkswagen Ag Voice command acquisition system and method
US8584031B2 (en) * 2008-11-19 2013-11-12 Apple Inc. Portable touch screen device, method, and graphical user interface for using emoji characters
US20100146437A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Glanceable animated notifications on a locked device
US8539382B2 (en) 2009-04-03 2013-09-17 Palm, Inc. Preventing unintentional activation and/or input in an electronic device
US10255566B2 (en) * 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US9117448B2 (en) * 2009-07-27 2015-08-25 Cisco Technology, Inc. Method and system for speech recognition using social networks
US9197736B2 (en) * 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
JP4848450B2 (ja) * 2009-11-26 2011-12-28 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の宛先アドレスに送信される電子メールの処理方法、コンピュータ・プログラム及び装置
US8301121B2 (en) * 2010-01-22 2012-10-30 Sony Ericsson Mobile Communications Ab Regulating alerts generated by communication terminals responsive to sensed movement
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
EP2559030B1 (de) * 2010-03-19 2017-06-21 Digimarc Corporation Intuitive berechnungsverfahren und -systeme

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112014006542B4 (de) * 2014-03-31 2024-02-08 Mitsubishi Electric Corporation Einrichtung und Verfahren zum Verständnis von einer Benutzerintention
DE102014224794B4 (de) 2014-12-03 2024-02-29 Bayerische Motoren Werke Aktiengesellschaft Sprachassistenzverfahren für ein Kraftfahrzeug
DE102014224794A1 (de) * 2014-12-03 2016-06-09 Bayerische Motoren Werke Aktiengesellschaft Sprachassistenzverfahren für ein Kraftfahrzeug
DE102015213722B4 (de) 2015-07-21 2020-01-23 Volkswagen Aktiengesellschaft Verfahren zum Betreiben eines Spracherkennungssystems in einem Fahrzeug und Spracherkennungssystem
DE102015213722A1 (de) * 2015-07-21 2017-01-26 Volkswagen Aktiengesellschaft Verfahren zum Betreiben eines Spracherkennungssystems in einem Fahrzeug und Spracherkennungssystem
DE102016104316A1 (de) * 2016-03-09 2017-09-14 "Wortkampfkunst" - Kommunikationsschule für Dienstleistungen, Industrie und Handwerk e.K. Einrichtung zur psychischen Selbstschulung
EP3216480A3 (de) * 2016-03-09 2017-10-25 "Wortkampfkunst" - Kommunikationsschule für Dienstleistungen, Industrie und Handwerk e.K. Einrichtung zur psychischen selbstschulung
DE102016212073A1 (de) * 2016-07-04 2018-01-04 Bayerische Motoren Werke Aktiengesellschaft Fortbewegungsmittel, Vorrichtung und Verfahren zur Aktivierung einer Empfangsfunktion eines Assistentensystems in einem Fortbewegungsmittel
US10783193B2 (en) 2016-10-21 2020-09-22 Fujitsu Limited Program, method, and system for execution of software services
US10776107B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Microservice-based data processing apparatus, method, and program
US10776170B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Software service execution apparatus, system, and method
US10445427B2 (en) 2016-10-21 2019-10-15 Fujitsu Limited Semantic parsing with knowledge-based editor for execution of operations
US10430440B2 (en) 2016-10-21 2019-10-01 Fujitsu Limited Apparatus program and method for data property recognition
US11113473B2 (en) 2018-04-02 2021-09-07 SoundHound Inc. Interpreting expressions having potentially ambiguous meanings in different domains
WO2019228667A1 (de) 2018-05-29 2019-12-05 Christoph Neumann Effiziente dialoggestaltung
EP3576084A1 (de) 2018-05-29 2019-12-04 Christoph Neumann Effiziente dialoggestaltung
US11488600B2 (en) 2018-05-29 2022-11-01 Gk Easydialog Efficient dialogue configuration
DE102021120246A1 (de) 2021-08-04 2023-02-09 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem
DE102022112444A1 (de) 2022-05-18 2023-11-23 Bayerische Motoren Werke Aktiengesellschaft Spracherkennungssystem

Also Published As

Publication number Publication date
RU2542937C2 (ru) 2015-02-27
KR20210122755A (ko) 2021-10-12
JP6740162B2 (ja) 2020-08-12
JP7357113B2 (ja) 2023-10-05
AU2012232977A1 (en) 2013-04-18
CA2791277C (en) 2019-01-15
JP2020194557A (ja) 2020-12-03
KR102048375B1 (ko) 2019-11-25
KR20220136304A (ko) 2022-10-07
JP7082645B2 (ja) 2022-06-08
JP2013080476A (ja) 2013-05-02
KR20180052112A (ko) 2018-05-17
JP7631460B2 (ja) 2025-02-18
CA3023918A1 (en) 2013-03-30
NL2009544B1 (en) 2017-05-24
KR102309489B1 (ko) 2021-10-07
KR102904375B1 (ko) 2025-12-26
GB2495222A (en) 2013-04-03
CN103226949B (zh) 2017-02-01
JP6285883B2 (ja) 2018-02-28
BR102012024861A2 (pt) 2017-02-14
KR20190132321A (ko) 2019-11-27
CA2791277A1 (en) 2013-03-30
KR20240010057A (ko) 2024-01-23
JP5698203B2 (ja) 2015-04-08
BR102012024861B1 (pt) 2021-02-09
JP2022119908A (ja) 2022-08-17
JP2017139004A (ja) 2017-08-10
CN103226949A (zh) 2013-07-31
EP3200185A1 (de) 2017-08-02
GB2495222B (en) 2016-10-26
KR102622737B1 (ko) 2024-01-10
EP2575128A3 (de) 2013-08-14
JP2015122104A (ja) 2015-07-02
EP2575128A2 (de) 2013-04-03
KR102447546B1 (ko) 2022-09-26
JP2025076458A (ja) 2025-05-15
JP2023169360A (ja) 2023-11-29
NL2009544A (en) 2013-04-03
KR102145660B1 (ko) 2020-08-18
CA3023918C (en) 2022-11-29
KR101683083B1 (ko) 2016-12-07
RU2012141604A (ru) 2014-04-10
EP3392876A1 (de) 2018-10-24
KR20160142802A (ko) 2016-12-13
GB201217449D0 (en) 2012-11-14
KR20130035983A (ko) 2013-04-09
MX2012011426A (es) 2013-04-01

Similar Documents

Publication Publication Date Title
KR102904375B1 (ko) 가상 비서에서 커맨드 처리를 용이하게 하기 위한 컨텍스트 정보의 이용
US20230409283A1 (en) Interface for a virtual digital assistant
AU2017203847B2 (en) Using context information to facilitate processing of commands in a virtual assistant
US9858925B2 (en) Using context information to facilitate processing of commands in a virtual assistant
DE112014002747T5 (de) Vorrichtung, Verfahren und grafische Benutzerschnittstelle zum Ermöglichen einer Konversationspersistenz über zwei oder mehr Instanzen eines digitalen Assistenten
HK1183151A (en) Using context information to facilitate processing of commands in a virtual assistant

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003160000

Ipc: G06F0017200000

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017200000

Ipc: G06F0040000000

R120 Application withdrawn or ip right abandoned