DE102016125823A1 - Unterstützung bei der semantischen offline-bearbeitung durch ein gerät mit begrenzten möglichkeiten - Google Patents

Unterstützung bei der semantischen offline-bearbeitung durch ein gerät mit begrenzten möglichkeiten Download PDF

Info

Publication number
DE102016125823A1
DE102016125823A1 DE102016125823.7A DE102016125823A DE102016125823A1 DE 102016125823 A1 DE102016125823 A1 DE 102016125823A1 DE 102016125823 A DE102016125823 A DE 102016125823A DE 102016125823 A1 DE102016125823 A1 DE 102016125823A1
Authority
DE
Germany
Prior art keywords
resource
limited
offline
request
voice
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.)
Granted
Application number
DE102016125823.7A
Other languages
English (en)
Other versions
DE102016125823B4 (de
Inventor
Yuli Gao
Sangsoo Sung
Pedro Jose Moreno Mengibar
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.)
Google LLC
Original Assignee
Google LLC
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
Application filed by Google LLC filed Critical Google LLC
Publication of DE102016125823A1 publication Critical patent/DE102016125823A1/de
Application granted granted Critical
Publication of DE102016125823B4 publication Critical patent/DE102016125823B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3343Query execution using phonetics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Abstract

Ein semantischer Offline-Prozessor eines sprachgestützten Gerätes mit beschränkten Ressourcen, wie beispielsweise ein Mobilgerät, verwendet ein Offline-Grammatikmodell mit verringertem Ressourcenbedarf, um die semantische Offline-Verarbeitung mit dem Gerät mit beschränkten Ressourcen zu erleichtern. In einigen Implementierungen wird eine Anfrage an das Gerät mit beschränkten Ressourcen semantisch verarbeitet, um eine oder mehrere mögliche Antwortaktion(en) zu identifizieren, die von dem Gerät mit beschränkten Ressourcen ausgeführt werden kann/können. Statistiken zur Ausführung möglicher Antwortaktionen können analysiert werden, um eine qualifizierende Antwortaktion aus den möglichen auszuwählen. In verschiedenen Implementierungen können sich die Statistiken zur Ausführung möglicher Antwortaktionen auf die Ausführung einer oder mehrerer der möglichen Antwortaktionen durch das Gerät mit beschränkten Ressourcen nach der Stellung einer Anfrage beziehen. Ein Offline-Grammatikmodells in einem Gerät mit beschränkten Ressourcen kann aktualisiert werden, um ein Mapping der gestellten Anfrage und der qualifizierenden Antwortaktion einzuschließen, wobei das Offline-Grammatikmodell Mappings für Anfragen und Aktionen anlegt, die von dem Gerät mit beschränkten Ressourcen offline ausgeführt werden.

Description

  • Hintergrund
  • Sprachgestützte Benutzerschnittstellen werden in zunehmendem Maße bei der Steuerung von Computern und anderen elektronischen Geräten verwendet. Eine besonders nützliche Anwendung für sprachgestützte Benutzerschnittstellen findet sich bei mobilen Elektronikgeräten wie Mobiltelefonen, Uhren, Tablet-Computern, Geräten, die am Kopf befestigt werden sowie Geräten aus den Bereichen virtueller oder erweiterter Realität o.ä. Ein anderer nützlicher Einsatzbereich bezieht sich auf elektronische Fahrzeugsysteme wie beispielsweise automobile Systeme mit Navigations- und Audiofähigkeiten. Außerdem gibt es andere nützliche Anwendungsmöglichkeiten bei Geräten und anderen Vorrichtungen, die man traditionsgemäß nicht mit Computern in Verbindung bringt, wie Beleuchtung, Haushaltsgeräte, Heizung und Sanitärinstallationen, Sicherheitssysteme usw., die sich in der Kategorie „Internet der Dinge“ (IoT) finden. Solche Anwendungen zeichnen sich allgemein durch nicht traditionelle Gestaltung aus, die den Einsatz einer eher traditionellen Eingabe über Tastatur oder Touchscreen einschränken und/oder durch Situationen, in denen es wünschenswert ist, einen Benutzer dazu anzuregen, sich auf andere Aufgaben zu konzentrieren, beispielsweise wenn der Benutzer fährt oder geht.
  • Sprachgestützte Benutzerschnittstellen haben sich von den frühen rudimentären Schnittstellen, die nur einfache und direkte Befehle verstanden, zu höher entwickelten Schnittstellen gewandelt, die auf Eingaben in natürlicher Sprache reagieren, den Kontext verstehen, sowie Wechseldialoge oder Gespräche mit Benutzern führen können. Viele sprachgestützte Benutzerschnittstellen verfügen sowohl über eine Spracherkennung (Sprache-zu-Text), die eine Audioaufnahme einer menschlichen Stimme in Text umwandelt, als auch über eine Semantikanalyse, die den Text im Hinblick auf die inhaltliche Bedeutung der Anfrage des Benutzers analysiert. Aufgrund der ermittelten inhaltlichen Bedeutung der Sprachaufnahme kann eine Aktion ausgeführt werden, beispielsweise eine Suche oder eine andere Form der Steuerung eines Computers oder anderen elektronischen Gerätes.
  • Der Bedarf an Rechenressourcen, z. B. in Bezug auf Prozessor- und/oder Speicherfähigkeiten, kann bei sprachgestützten Benutzerschnittstellen erheblich sein, daher setzen einige herkömmliche Ansätze für sprachgestützte Benutzerschnittstellen eine Client-Server-Architektur ein, bei der die Sprache von dem verhältnismäßig schwach ausgestatteten Client-Gerät aufgezeichnet wird, anschließend wird die Aufnahme über ein Netz wie das Internet an einen Online-Service für die Spracherkennung, die semantische Analyse und die Formulierung einer passenden Antwort übertragen, die Antwort wird an das Client-Gerät geschickt. Im Online-Service können erhebliche Rechenressourcen für die Verarbeitung der Spracheingabe, eine komplexere Spracherkennung und die semantische Analyse verwendet werden, was mit dem Client-Gerät vor Ort nicht möglich wäre. Allerdings erfordert der Client-Server-Ansatz notwendigerweise eine Online-Verbindung (für die Kommunikation mit dem Online-Service) bei der Verarbeitung der Spracheingabe. Besonders bei mobilen und Automobilanwendungen kann eine durchgehende Online-Anbindung nicht ständig und überall garantiert werden, daher kann eine sprachgestützte Benutzerschnittstelle im Client-Gerät gesperrt werden, wann immer dieses Gerät „offline“ geht und daher nicht mit dem Online-Service verbunden ist.
  • Kurzdarstellung
  • Diese Spezifikation bezieht sich allgemein auf verschiedene Implementierungen, die eine semantische Verarbeitung durch ein Gerät mit beschränkten Ressourcen im Offline-Modus erleichtert. Die hier beschriebenen unterschiedlichen Implementierungen können zum Beispiel dazu dienen, ein robusteres sprachgestütztes Gerät zur Verfügung zu stellen, das unabhängig davon ob es Zugang zu einem Netz hat oder nicht, sprachgestützte Anfragen effektiv handhaben kann. Auch in Situationen, in denen das Gerät eine Netzanbindung hat, kann es sprachgestützte Anfragen ohne Zugriff auf das Netz bearbeiten und somit Rechenleistung und Bandbreite sparen, die mit einem solchem Zugriff verbunden sind. Weiter kann in einigen Fällen das sprachgestützte Gerät mit beschränkten Ressourcen als Reaktion auf eine sprachgestützte Anfrage schneller Maßnahmen ergreifen, als das über eine Netzverbindung möglich wäre, speziell wenn nur eine langsame und/oder schwache Verbindung besteht.
  • Ein Offline-Semantikprozessor eines solchen Gerätes verwendet im Offline-Modus ein entsprechendes Offline-Grammatikmodell mit geringeren Anforderungen an die Ressourcen, um die sprachgestützten Anfragen zu verarbeiten. In einigen Implementierungen kann das Offline-Grammatikmodell so aktualisiert werden, dass es Mappings von Langversionen sprachgestützter Anfragen und den zu ergreifenden Maßnahmen des Gerätes mit beschränkten Ressourcen bei Verwendung des Grammatikmodells enthält. Auf diese Weise können Benutzer dem Grammatikmodell maßgeschneiderte Reaktionsmappings für den Offline-Semantikprozessor hinzufügen, der dem persönlichen DV-Gerät des Benutzers zugeordnet ist.
  • Folglich kann bei einigen Implementierungen ein Verfahren die folgenden Punkte einschließen: die semantische Verarbeitung einer Anfrage an ein Gerät mit beschränkten Ressourcen, um eine oder mehrere Reaktionsmöglichkeit(en) des Gerätes mit beschränkten Ressourcen zu identifizieren; die Analyse der Statistiken zur Ausführung der möglichen Antwortaktionen, um aus den Möglichkeiten eine als qualifizierende Antwortaktion auszuwählen, die Statistiken beziehen sich auf Ausführungen durch das Gerät mit beschränkten Ressourcen nach Stellung der Anfrage; und die Aktualisierung des im Gerät mit beschränkten Ressourcen abgelegten Offline-Grammatikmodells in der Art, dass ein Mapping der Anfrage und der gewählten Möglichkeit enthalten ist, damit das Offline-Grammatikmodell Anfragen mit Reaktionen verknüpft, die das Gerät mit den beschränkten Ressourcen offline ausführen kann. Fähigkeiten, Leistung und Effizienz des Gerätes mit beschränkten Ressourcen können dadurch verbessert werden.
  • In einigen Implementierungen kann das Verfahren außerdem die Ausgabe von einer oder mehreren Aufforderung(en) an den Benutzer umfassen, der das Gerät mit den beschränkten Ressourcen betreibt, eine oder mehrere der ausgewählten Möglichkeiten auszuführen. In einigen Implementierungen kann zu der Analyse auch die Auswertung von Statistiken gehören, die das Antwortverhalten des Benutzers auf eine oder mehrere Aufforderung(en) enthalten. In einigen Implementierungen können eine oder mehrere der Aufforderungen ein wählbares Grafikelement enthalten. In einigen Implementierungen können eine oder mehrere der Aufforderungen ein wählbares akustisches oder taktiles Element enthalten.
  • In einigen Implementierungen kann das Verfahren weiterhin die Übermittlung des Offline-Grammatikmodells an das Gerät mit beschränkten Ressourcen zur Speicherung und Verwendung durch einen semantischen Prozessor des Gerätes mit beschränkten Ressourcen im Offline-Betrieb. In einigen Implementierungen wird bei der Übermittlung des Offline-Grammatikmodells an das Gerät mit beschränkten Ressourcen das dort gespeicherte Offline-Grammatikmodell dynamisch aktualisiert.
  • In einigen Implementierungen kann die gestellte Anfrage eine sprachgestützte Anfrage sein und das Offline-Grammatikmodell kann die sprachgestützten Anfragen mit den Aktionen mappen. In einigen Implementierungen kann das Verfahren weiterhin eine Sammlung von Daten einschließen, die einen Hinweis auf die Ausführung von einer oder mehreren der möglichen Antwortaktionen durch eine Vielzahl von Geräten mit beschränkten Ressourcen bieten, die mit dem Benutzer des Gerätes mit beschränkten Ressourcen assoziiert sind. In einigen Implementierungen kann die Analyse der Statistiken auf den gesammelten Daten basieren.
  • In einigen Implementierungen kann die semantische Verarbeitung mit einem Online-Grammatikmodell durchgeführt werden, in Relation zu diesem Online-Grammatikmodell hat das Offline-Grammatikmodell einen geringeren Bedarf an Ressourcen. In einigen Implementierungen kann das Verfahren einen eingeschränkten Zugriff auf eines oder mehrere der Mappings, die gestellte Anfrage und die Offline-Grammatik des Gerätes mit beschränkten Ressourcen haben.
  • Zusätzlich schließen einige Implementierungen ein Gerät mit einem Speicher und einem oder mehreren Prozessor(en) ein, der/die im Speicher abgelegte Anweisungen ausführen kann/können, bei den Anweisungen handelt es sich dabei um beliebige der zuvor erwähnten Verfahren. Sonstige Implementierungen können über ein nicht-flüchtiges computerlesbares Speichermedium mit darin gespeicherten Anweisungen verfügen, die von einem oder mehreren Prozessoren ausführbar sind, um beliebige der zuvor erwähnten Verfahren auszuführen.
  • Es versteht sich von selbst, dass alle Kombinationen der vorstehenden Konzepte und der zusätzlichen Konzepte, die hierin näher beschrieben werden, als Teil des hierin offenbarten Gegenstands vorgesehen sind. Zum Beispiel werden alle Kombinationen des beanspruchten Gegenstands, der am Ende dieser Offenbarung erscheint, als Teil des hierin offenbarten Gegenstands vorgesehen.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt eine Beispielarchitektur eines Computersystems.
  • 2 ist ein Blockdiagramm mit einem Beispiel für ein verteilt verarbeitendes Spracheingabeumfeld.
  • 3 ist ein Flussdiagramm, das ein Beispielverfahren der Verarbeitung einer Spracheingabe mit dem Umfeld aus 2 zeigt.
  • 4 veranschaulicht ein Beispiel für ein Grammatikmodell für die Verarbeitung von Spracheingaben in einem Aktionsgebiet.
  • 5 ist ein Flussdiagramm, das ein Beispielverfahren für den Aufbau und/oder die Aktualisierung eines Offline-Grammatikmodells zeigt.
  • Ausführliche Beschreibung
  • In den nachfolgend erläuterten Implementierungen verwendet ein semantischer Offline-Prozessor eines sprachgestützten Gerätes mit beschränkten Ressourcen ein entsprechendes Offline-Grammatikmodell mit geringeren Anforderungen an die Ressourcen, um die eingegangenen sprachgestützten Anfragen zu verarbeiten. In einigen Implementierungen kann das Offline-Grammatikmodell so aktualisiert werden, dass es Mappings von Langversionen sprachgestützter Anfragen und den zu ergreifenden Maßnahmen des Gerätes mit beschränkten Ressourcen bei Verwendung des Grammatikmodells enthält. In ihrer Verwendung hier bezieht sich „Langversion“ auf eine Anfrage, die einzigartig ist oder verhältnismäßig selten in einer Suche nach Anfragen auftritt. In einigen Fällen kann eine Langversion einer Anfrage tatsächlich lang sein (z. B. eine verhältnismäßig große Zahl von Zeichen enthalten), das ist aber keine Anforderung. Als Beispiel für eine sprachgestützte Anfrage kann „Spiel <Künstlername>" von vielen Benutzern einer großen Benutzermenge verwendet werden, um das Abspielen der Musik des bestimmten Künstlers einzuleiten, folglich würde das nicht als eine lange Anfrage gelten. Als Kontrast dazu nehmen Sie an, dass der Benutzer die Wiedergabe der Musik eines Künstlers mit einem Ausdruck wie „ich bin wirklich in der Stimmung für etwas von <Künstlername>" einleitet. Die letzte Frage würde wahrscheinlich als lange Anfrage eingestuft werden (es sei denn, sie würde in Zukunft von vielen Benutzern auf die gleiche Weise verwendet werden).
  • Weitere Details bezüglich bestimmter Implementierungen werden nachfolgend behandelt. Es versteht sich jedoch, dass auch andere Implementierungen denkbar sind und die hier offenbarten somit nicht exklusiv sind.
  • Beispiel für die Hard- und Softwareumgebung
  • Jetzt mit Bezug zu den Zeichnungen, in denen gleiche Zahlen für gleiche Teile durchgängig in vielen Ansichten stehen, zeigt die 1 ein Blockdiagramm der elektronischen Bauelemente in einem Beispiel für ein Computersystem 10. Das System 10 hat in der Regel mindestens einen Prozessor 12, der mit einer Reihe von Peripheriegeräten über das Bus-Subsystem 14 kommuniziert. Diese peripheren Geräte können Subsysteme für die Speicherung 16 enthalten, darunter ein Speicher-Subsystem 18 und ein Dateispeicher-Subsystem 20, Ein- und Ausgabegeräte der Benutzerschnittstelle 22, 24 und ein Subsystem der Netzwerkschnittstelle 26. Die Eingabe- und Ausgabegeräte ermöglichen die Interaktion des Benutzers mit dem System 10. Das Netzwerkschnittstellen-Subsystem 26 stellt eine Schnittstelle zu externen Netzwerken bereit und ist mit entsprechenden Schnittstellengeräten anderer Computergeräten verbunden.
  • In einigen Implementierungen können zu den Eingabegeräten der Benutzerschnittstellen 22 eine Tastatur, Zeigeeinrichtungen, wie etwa eine Maus, ein Trackball, ein Touchpad und/oder eine Grafik-Tablett gehören, ein Scanner, ein Touchscreen in einem Display, Audio-Eingabegeräte, wie etwa Stimmenerkennungssysteme, Mikrofone und/oder sonstige Arten von Eingabegeräten. Im Allgemeinen soll die Verwendung des Begriffs „Eingabegerät“ alle möglichen Gerätearten und Wege der Eingabe von Informationen in das Computersystem 10 oder ein Kommunikationsnetzwerk einschließen.
  • Zu den Ausgabegeräten 24 der Benutzerschnittstelle können ein Display-Subsystem, ein Drucker, eine Faxmaschine gehören, oder nicht-visuelle Ausgaben beispielsweise durch Audiogeräte. Das Anzeige-Untersystem kann eine Kathodenstrahlröhre (CRT), ein Flachdisplaygerät, wie etwa eine Flüssigkristallanzeige (LCD), ein Projektionsgerät oder einen sonstigen Mechanismus für das Erstellen eines sichtbaren Bildes beinhalten. Das Anzeige-Untersystem kann auch eine nicht visuelle Anzeige, wie etwa über Audioausgabegeräte bereitstellen. Im Allgemeinen soll die Verwendung des Begriffs „Ausgabegerät“ alle möglichen Gerätearten und Wege der Ausgabe von Informationen aus dem Computersystem 10 an den Benutzer einschließen, auch von einer anderen Maschine oder einem anderen Computersystem.
  • Das Speicher-Subsystem 16 speichert Programm- und Datenkonstrukte, welche die Funktionalität einiger oder aller hierin beschriebenen Module liefern. Zum Beispiel kann das Speicher-Subsystem 16 die Logik enthalten, um ausgewählte Aspekte der nachfolgend offenbarten Verfahren auszuführen.
  • Diese Softwaremodule werden im Allgemeinen vom Prozessor 12 allein oder in Kombination mit anderen Prozessoren ausgeführt. Das Speicher-Subsystem 18, das im Speicher-Subsystem 16 verwendet wird, kann eine Anzahl von Speichern beinhalten, einschließlich eines Hauptzugriffsspeichers (RAM) 28 zum Speichern von Anweisungen und Daten während der Programmausführung und einen Nur-Lese-Speicher (ROM) 30 in dem feststehende Anweisungen gespeichert sind. Ein Dateispeicher-Subsystem 20 kann eine persistente Speicherung für Programm- und Datendateien bereitstellen und kann ein Festplattenlaufwerk, ein Floppy-Disk-Laufwerk zusammen mit zugehörigen Wechseldatenträgern, ein CD-ROM-Laufwerk, ein optisches Laufwerk oder eine entfernbare Medienkassette enthalten. Die Module, welche die Funktonalität bestimmter Implementierungen umsetzen, können im Dateispeicher-Subsystem 20, dem Speicher-Subsystem 16 oder in sonstigen Geräten gespeichert werden, auf die der/die Prozessor(en) 12 zugreifen können.
  • Das Bus-Subsystem 14 stellt einen Mechanismus bereit, der es unterschiedlichen Komponenten und Subsystemen des Computersystems 10 erlaubt, wie beabsichtigt miteinander zu kommunizieren. Obwohl das Bus-Subsystem 14 schematisch als ein einzelner Bus gezeigt ist, können alternative Implementierungen des Bus-Subsystems mehrere Busse verwenden.
  • Das System 10 kann in unterschiedlichen Ausführungen vorliegen, darunter ein Mobilgerät, ein transportables Elektronikgerät, ein eingebettetes Gerät, ein Desktop-Computer, ein Laptop-Computer, ein Tablet-Computer, ein tragbares Gerät, eine Workstation, ein Server, ein Computer-Cluster, ein Blade-Server, eine Serverfarm oder jedes andere DV-System oder Computergerät. Zusätzlich kann die durch das System 10 gelieferte Funktionalität auf mehrere Systeme verteilt werden, die miteinander über ein oder mehrere Netze zusammengeschaltet sind, z. B. in einer Client-Server-, Peer-to-Peer- oder anderen Netzanordnung. Aufgrund der sich ständig weiter entwickelnden Computer und Netze dient die Beschreibung von System 10 in 1 nur als ein spezifisches Beispiel zur Veranschaulichung einiger Implementierungen. Viele andere Konfigurationen des Computersystems 10 haben möglicherweise mehrere oder weniger Komponenten, als das Computersystem in 1.
  • Die nachfolgend erläuterten Implementierungen können ein oder mehrere Verfahren einschließen, mit dem/denen verschiedene Kombinationen der hier offenbarten Funktionalität umgesetzt werden. Sonstige Implementierungen können ein nicht-flüchtiges computerlesbares Speichermedium zur Ablage von Anweisungen enthalten, die von einem Prozessor ausführbar sind, um ein oder mehrere der hier beschriebenen Verfahren auszuführen. Noch andere Implementierungen können ein Gerät mit einem Speicher und einem oder mehreren Prozessor(en) haben, die im Speicher abgelegte Anweisungen ausführen können, bei denen es sich ein oder mehrere der hier beschriebenen Verfahren handelt.
  • Nachfolgend beschriebene unterschiedliche Programme lassen sich anhand der Anwendung identifizieren, in der sie bei den verschiedenen Umsetzungen implementiert sind. Es sollte jedoch bedacht werden, dass jede der folgenden bestimmten Programmbezeichnungen nur aus Zweckmäßigkeit verwendet wird. Weiterhin sollte verständlich sein, dass einige Implementierungen nicht auf die hier beschriebene spezifische Organisation und Zuweisung von Programmfunktionen beschränkt sind, vielmehr ergeben sich endlose Möglichkeiten, Computerprogramme in Programme, Verfahren, Methoden, Module, Gegenstände und dergleichen zu organisieren, sowie verschiedene Wege, Programmfunktionalität auf verschiedene Ebenen der Software zu verteilen, die innerhalb eines typischen Computers vorhanden sind (z. B. Betriebssysteme, Bibliotheken, APIs, Anwendungen, Applets, usw.).
  • Außerdem versteht es sich, dass die verschiedenen hier beschriebenen Operationen mit jedem möglichen Programmcode sowie nach beliebigen Routinen, Arbeitsabläufen und dergleichen ausgeführt werden können, sie können kombiniert werden, aufgeteilt, neu geordnet, ausgelassen, nacheinander oder parallel mit anderen Techniken ausgeführt werden, folglich sind einige Implementierungen nicht auf die hier beschriebenen bestimmten Reihenfolgen der Operationen beschränkt.
  • Umfeld für verteilte Verarbeitung von Spracheingaben
  • 2 zeigt ein Beispiel für ein Umfeld zur verteilten Verarbeitung von Spracheingaben 50, z. B. für den Einsatz in einem sprachgestützten Gerät 52 in Verbindung mit einem Online-Service wie beispielsweise einem Online-Suchdienst 54. In den nachfolgend besprochenen Implementierungen wird das sprachgestützte Gerät 52 beispielsweise als Mobilgerät beschrieben, wie etwa ein Mobiltelefon oder Tablet-Computer. Andere Implementierungen können eine Vielzahl anderer sprachgestützter Geräte einsetzen, die nachfolgenden Erwähnungen von Mobilgeräten dienen lediglich der Vereinfachung der Betrachtung. Unzählige andere Arten von sprachgestützten Geräten können die hier beschriebenen Funktionen verwenden, z. B. Laptop-Computer, Uhren, am Kopf getragene Geräte, Geräte für virtuelle oder erweiterte Realität, andere tragbare Geräte, Audio-/Videosysteme, Navigationsanlagen, Automobil- und andere Fahrzeugsysteme usw. Außerdem können viele solcher sprachgestützten Geräte bezüglich ihrer Ressourcen als beschränkt betrachtet werden, da die Speicher- und/oder Verarbeitungskapazitäten dieser Geräte aus technologischen, ökonomischen oder anderen Gründen begrenzt sein können, speziell im Vergleich mit den Kapazitäten von Online- oder Cloud-Diensten, bei denen praktisch unbegrenzte Rechenressourcen für einzelne Aufgaben angeboten werden. Einige solcher Geräte können auch als Offline-Geräte betrachtet werden, da sie zumindest für eine gewisse Zeit „offline“ ohne Verbindung zu einem Online-Service arbeiten können, z. B. aufgrund der Erwartung, dass die Geräte von Zeit zu Zeit im normalen Betrieb zeitweise Verbindungsschwierigkeiten erfahren werden.
  • Der Online-Suchdienst 54 kann bei einigen Implementierungen als Cloud-Service umgesetzt sein und eine Cloud-Infrastruktur einsetzen, z. B. unter Verwendung einer Serverfarm oder Clustern von Hochleistungs-Computern, auf denen Software für die Verarbeitung großer Mengen von Anfragen von vielen Benutzern läuft. In der gezeigten Implementierung ist der Online-Suchdienst 54 in der Lage, eine oder zwei Datenbank(en) bezüglich den angeforderten Informationen abzufragen, z. B. um eine Liste von Webseiten inklusive der angeforderten Informationen zur Verfügung zu stellen. Der Online-Suchdienst 54 ist möglicherweise nicht auf sprachgestützte Abfragen beschränkt, sondern kann auch andere Suchen durchführen, die z. B. auf Text oder Bildern usw. beruhen. In anderen Implementierungen muss ein Online-System nicht notwendigerweise Suchen durchführen und kann auf die Verarbeitung von Spracheingaben beschränkt sein, die sich nicht mit Suchen befassen sondern beispielsweise Weck- und Erinnerungsfunktionen, Listenmanagement, Aufbau der Kommunikation mit anderen Benutzern über Telefon, Text, E-Mail usw. oder die Ausführung beliebiger anderer Aktionen, die sprachgestützt eingeleitet werden können. Für die Zwecke dieser Offenbarung können sprachgestützte Anforderungen und andere Formen der Spracheingabe zusammenfassend als sprachgestützte Anfragen bezeichnet werden, unabhängig davon, ob sie einen Suchvorgang einleiten, eine Frage stellen, einen Kommentar ausdrücken sollen o.ä. Generell wird folglich im Kontext der erläuterten Implementierungen jegliche Spracheingabe, z. B. auch in Form von einem oder mehreren Wort/Wörtern oder Phrasen als sprachgestützte Anfrage betrachtet.
  • In der Implementierung in 2 wird die Spracheingabe, die vom sprachgestützten Gerät 52 empfangen wurde, mit einer sprachgestützten Anwendung (oder „App“) 56 verarbeitet, die bei einigen Implementierungen eine Suchanwendung sein kann. In anderen Implementierungen kann die Spracheingabe vom eigenen Betriebssystem oder der Firmware eines sprachgestützten Gerätes verarbeitet werden. Die Anwendung 56 in der gezeigten Implementierung hat ein Sprachmodul 58, ein Online-Interfacemodul 60 und ein Render-/Synchronisierungsmodul 62. Das Sprachmodul 58 erhält die Spracheingabe für die Anwendung und koordiniert die Analyse der Spracheingabe und die Durchführung von einer oder mehreren Aktion(en) für den Benutzer des sprachgestützten Gerätes 52. Das Online-Interfacemodul 60 bietet eine Schnittstelle zu dem Online-Suchdienst 54 einschließlich der Weiterleitung von Spracheingaben an den Service 54 und den Erhalt der Antworten von diesem. Das Render-/Synchronisierungsmodul 62 handhabt die Generierung einer Antwort an einen Benutzer, z. B. über eine Sichtanzeige, eine Audioausgabe oder einen anderen Weg der Rückmeldung, der für ein bestimmtes sprachgestütztes Gerät geeignet ist. Zusätzlich handhabt das Modul 62 bei einigen Implementierungen auch die Synchronisierung mit dem Online-Suchdienst 54, z. B. immer dann, wenn eine Antwort oder Aktion die Daten beeinflusst, die für den Benutzer im Online-Suchdienst gehalten werden (z. B. bei der sprachgestützten Einrichtung eines Termins, der in einem Cloud-basierten Kalender abgelegt wird).
  • Die Handhabung der Spracheingabe durch die Anwendung 56 beruht auf verschiedenen Aspekten aus Middleware, Rahmenwerk, Betriebssystem und/oder Firmwaremodulen und schließt beispielsweise auch den Transport zum Textmodul 64, dem Semantik-Prozessor 66 einschließlich eines Parser-Moduls 68 ein, sowie das Dialogmanagermodul 70 und das Aktionsmodul 72.
  • Das Modul 64 empfängt eine Audioaufnahme der Spracheingabe, z. B. in Form von digitalen Audiodaten und wandelt die digitalen Audiodaten in ein(e) oder mehrere Wort/Wörter oder Phrasen als Text um (hier auch „Zeichen“ genannt). In der gezeigten Implementierung ist das Modul 64 auch ein Streaming-Modul, daher wird die Spracheingabe Zeichen für Zeichen in Text umgewandelt und kann in Echtzeit (oder nahezu Echtzeit) vom Modul 64 im Prinzip zeitgleich mit der Sprache des Benutzers übertragen werden noch während der Benutzer spricht. Möglicherweise vertraut das Modul 64 auf ein oder mehrere lokal gespeicherte Sprachmodelle 74 (akustik- oder sprachgestützt), die zusammen eine Relation zwischen Audiosignalen und phonetischen Einheiten einer Sprache mit Wortreihenfolgen in der Sprache formen. In einigen Implementierungen kann ein einzelnes Modell 74 benutzt werden, während in anderen Fällen mehrere Modelle unterstützt werden können, z. B. für mehrere Sprachen, Sprecher usw.
  • Während das Modul 64 Sprache in Text umwandelt, versucht das Modul 66, die Semantik oder die Bedeutung des Textes zu erkennen, der durch das Modul 64 mit dem Ziel der Formulierung einer passenden Antwort ausgegeben wird. Das Parser-Modul 68 stützt sich beispielsweise auf ein oder mehrere Offline-Grammatikmodul(e) 76, um Text und bestimmte Aktionen zu mappen und Attribute zu identifizieren, die den Durchsatz solcher Aktionen hemmen, z. B. Eingabevariablen für solche Aktionen. In einigen Implementierungen kann ein einzelnes Modell 76 benutzt werden, während in anderen Fällen mehrere Modelle unterstützt werden können, z. B. um unterschiedliche Aktionen oder Aktionsbereiche zu unterstützen (z. B. Gruppen von verwandten Aktionen wie Kommunikation, Suche, Audio-/Visuelle Aktionen, Kalender, Steuerung usw.).
  • So kann zum Beispiel ein Offline-Grammatikmodell 76 eine Aktion wie „richte eine Erinnerung ein“ unterstützen, die einen Parameter vom Typ Merker hat, der die Art von Erinnerung spezifiziert, die eingerichtet werden soll, einen Parameter Einzelteil, der ein oder mehrere Einzelteil(e) spezifiziert, auf den/die sich die Erinnerung bezieht und einen Zeitparameter, der eine Zeit spezifiziert, zu der die Erinnerung zu aktivieren ist, um den Benutzer zu erinnern. Das Parser-Modul 64 kann eine Reihe von Zeichen wie beispielsweise „erinnere mich an,“ „mitnehmen,“ „Brot,“ und „nach der Arbeit“ und die Reihenfolge der Zeichen mit der Aktion mappen um eine Erinnerung zu erstellen, bei der die folgenden Parameter gelten: Typ „Einkaufsanzeige", Einzelteil „Brot“, Zeit „17:00 h“, so dass der Benutzer um 17:00 Uhr eine Erinnerung mit dem Inhalt „Brot kaufen“ erhält.
  • Das Parser-Modul 68 kann auch zusammen mit einem Dialogmanagermodul 70 arbeiten, welches einen Dialog mit einem Benutzer führt. In diesem Kontext bezieht sich ein Dialog auf eine Reihe von Spracheingaben und Antworten ganz ähnlich einer Unterhaltung zwischen zwei Personen. Das Modul 70 vermerkt folglich einen „Zustand“ eines Dialogs, um die Informationen, die von einem Benutzer zuvor bei einer Spracheingabe erhalten worden sind, bei einer erneuten Spracheingabe verwenden zu können. Sagt ein Benutzer beispielsweise „ erinnere mich daran, Brot zu kaufen“ könnte eine Antwort erzeugt werden, die lautet „OK, wann möchten Sie erinnert werden?“ Eine darauf folgende Spracheingabe „nach der Arbeit“ würde mit der ursprünglichen Anfrage verknüpft werden, um die Erinnerung zu generieren.
  • Das Aktionsmodul 72 empfängt den bearbeiteten Text vom Parser-Modul 68 mit einer Interpretation der Spracheingabe und erzeugt zusammen mit allen verbundenen Parametern für die Verarbeitung durch das Modul 62 der sprachgestützten Anwendung 56 eine Aktion. Das Aktionsmodul 72 kann sich auf ein oder mehrere Offline-Aktionsmodelle 78 stützen, die verschiedene Richtlinien für die Gestaltung von Aktionen aus analysiertem Text enthalten. In einigen Implementierungen können die Aktionen beispielsweise als Funktionen F definiert werden, so dass F (IT) = Au, wobei T die Art der Eingabeinterpretation und U die Art der Ausgabeaktion darstellt. F kann eine Vielzahl von Eingabepaaren (T, U) enthalten, für die ein Mapping existiert, z. B. als f (it) = au, wo es eine Eingabevariable der Art t ist und au ein modulares Ausgabeargument oder ein Parameter der Art u ist. Es versteht sich, dass einige Parameter direkt als Spracheingabe empfangen werden können, während andere Parameter auf andere Weisen ermittelt werden können, z. B. aufgrund der Position eines Benutzers, demographischen Informationen oder anderen für den Benutzer spezifischen Informationen. Sagt ein Benutzer beispielsweise „ erinnere mich daran, beim Lebensmittelgeschäft Brot zu kaufen“, so kann ein Positionsparameter möglicherweise nicht ohne zusätzliche Informationen ermittelt werden, wie die gegenwärtige Position des Benutzers, den bekannten Weg des Benutzers zwischen Arbeitsstelle und dem Heim, das übliche Lebensmittelgeschäft des Benutzers usw. bestimmbar sein.
  • Es versteht sich, das bei einigen Implementierungen die Modelle 74, 76 und 78 zu weniger Modellen kombiniert oder in zusätzliche Modelle unterteilt werden können, was die Funktion der Module 64, 68, 70 und 72 sein kann. Zudem werden die Modelle 7478 hier als Offline-Modelle bezeichnet, da sie lokal in dem sprachgestützten Gerät 52 gespeichert werden und folglich offline zugänglich sind, wenn das Gerät 52 keine Verbindung zum Online-Suchdienst 54 hat.
  • Außerdem schließt der Online-Suchdienst 54 im Allgemeinen eine ergänzende Funktion für die Behandlung der Spracheingabe ein, z. B. einen Prozessor 80 für sprachgestützte Anfragen, der sich auf verschiedene akustische/sprachliche Grammatik- und/oder Aktionsmodelle 82 stützt. Es versteht sich, dass bei einigen Implementierungen, speziell in Fällen, in denen das sprachgestützte Gerät 52 in seinen Ressourcen beschränkt ist, der Prozessor 80 für sprachgestützte Anfragen und die verwendeten Modelle 82 komplexere und mehr Rechneressourcen benötigende Funktionen der Sprachverarbeitung umsetzen, als das dem sprachgestützten Gerät 52 lokal möglich ist. In anderen Implementierungen hingegen wird möglicherweise keine ergänzende Online-Funktionalität verwendet.
  • In einigen Implementierungen können sowohl die Online- als auch die Offline-Funktionalität unterstützt werden, z. B. in der Art, dass immer dann die Online-Funktionen genutzt werden, wenn ein Gerät eine Verbindung zu einem Online-Service hat, anderenfalls jedoch die Offline-Funktionen genutzt werden. In anderen Implementierungen können unterschiedliche Aktionen oder Aktionsbereiche den Online- und Offline-Funktionen zugeordnet werden, während bei noch anderen Implementierungen die Online-Funktionalität nur dann verwendet werden kann, wenn die Offline-Funktionalität eine bestimmte Spracheingabe nicht entsprechend handhaben kann.
  • 3 zeigt beispielsweise eine Routine 100 zur Sprachverarbeitung, die durch das sprachgestützte Gerät 52 ausgeführt werden kann, um eine Spracheingabe zu handhaben. Die Routine 100 beginnt bei Block 102 mit dem Empfang der Spracheingabe, z. B. in Form eines digitalen Audiosignals. In dieser Implementierung wird ein Ausgangsversuch unternommen, die Spracheingabe an den Online-Suchdienst weiterzuleiten (Block 104). Bleibt das erfolglos, z. B. aufgrund einer mangelhaften Verbindung, oder weil der Online-Suchdienst keine Antwort gibt, übergibt der Block 106 die Steuerung an den Block 108, wo die Spracheingabe in Textzeichen umgewandelt wird (Block 108, z. B. unter Verwendung von Modul 64 aus 2), die Textzeichen analysiert werden (Block 110, z. B. unter Verwendung von Modul 68 aus 2) und darauf basierend eine Aktion generiert wird (Block 112, z. B. unter Verwendung von Modul 72 aus 2). Die resultierende Aktion wird dann verwendet, um sie auf der Client-Seite umzusetzen und zu synchronisieren (Block 114, z. B. unter Verwendung von Modul 62 aus 2) und die Verarbeitung der Spracheingabe ist damit abgeschlossen.
  • Zurück zu Block 106, falls der Versuch, die Spracheingabe zum Online-Suchdienst zu schicken, erfolgreich ist, umgeht der Block 106 die Blöcke 108112 und übergibt die Steuerung direkt an den Block 114 zur Umsetzung und Synchronisation auf der Client-Seite. Die Verarbeitung der Spracheingabe ist damit abgeschlossen. Es versteht sich, dass bei anderen Implementierungen, wie zuvor bemerkt, die Offline-Verarbeitung vor der Online-Verarbeitung versucht wird, z. B. um unnötigen Datenaustausch zu vermeiden, wenn eine Spracheingabe lokal verarbeitet werden kann.
  • Dynamisch aktualisierbares Offline-Grammatikmodell für Offline-Geräte mit beschränkten Ressourcen
  • Wie zuvor erwähnt, kann bei einigen Implementierungen ein sprachgestütztes Gerät beschränkte Ressourcen haben und nicht die Rechen- und/oder Speicherkapazitäten haben, die ein Online-Service aufweist. Ein großer Teil der Komplexität bezüglich der Umsetzung einer sprachgestützten Benutzerschnittstelle findet sich in den Modellen, die von den unterschiedlichen Modulen benutzt werden, die Funktionen umfassen, wie zum Beispiel das Mappen von Text zu Aktionen durch die Grammatikmodelle.
  • Ein Grammatikmodell kann sich in diesem Sinne auf jede mögliche Datenstruktur beziehen, die für das Mapping eines oder mehrerer Textwörter oder Phrasen (hier „Zeichen“ genannt) mit einer oder mehrerer der von dem Gerät zu implementierenden Aktionen geeignet ist. Die Textwörter oder Phrasen, die mit einer bestimmten Aktion gemappt werden, können auch als das Mapping eindeutiger sprachgestützter Anfragen mit den Aktionen verstanden werden. Ein Grammatikmodell kann beispielsweise als Übergangsstatusgraph oder in anderen geeigneten Datenstrukturen umgesetzt werden. Ferner kann ein Grammatikmodell auf unterschiedliche Weisen erzeugt werden, z. B. durch Programmierung, Training usw.
  • Eine Aktion kann praktisch jede Operation sein, die von einem bestimmten Gerät durchführbar ist, wie die Durchführung einer Suche, Einleitung eines Anrufes, das Senden einer Textnachricht oder einer E-Mail, die Einrichtung einer Erinnerung, Bezug von Routeninformationen, Einrichtung eines Termins, Änderung von Einstellungen des Gerätes, Erzeugen einer Notiz, Wiedergabe eines Liedes oder Videos, Änderung der Lautstärke usw. In einigen Implementierungen können die Aktionen zu Aktionsbereichen gruppiert werden, z. B. für Kommunikation (für die Einleitung von Anrufen, das Senden von Nachrichten usw.), für Medien (Wiedergabe von Musik und Videos usw.), für Planung (Erinnerungen, Termine usw.) und für Navigation (Anzeige von Karten, Routen) und andere mehr. Es versteht sich, dass sich die Grammatikmodelle für unterschiedliche Sprachen, Sprecher und Endbenutzeranwendungen jeweils unterscheiden können.
  • Das Dienstprogramm eines Grammatikmodells basiert zumindest teilweise auf der Zahl der unterschiedlichen Mappings, die für unterschiedliche Aktionen hergestellt werden. Sprache entwickelt sich ständig weiter und unterschiedliche Sprecher können unterschiedliche Anweisungen zur Ausführung der gleichen Aktionen geben, z. B. gegründet auf Altersunterschieden, Land, Region usw. Die Zahl der Mappings innerhalb eines Grammatikmodells erhöht im Allgemeinen sowohl den Speicherbedarf als auch die erforderliche Rechenleistung und -zeit, um ein bestimmtes Mapping im Modell zu identifizieren.
  • Berücksichtigt man die umfangreiche Rechenleistung, die viele Online-Services zur Verfügung stellen, so setzen viele solcher Dienste große und komplizierte Grammatikmodelle ein, die eine Vielzahl von Mappings handhaben können. In 4 wird beispielsweise ein Teil eines Beispiels für ein Grammatikmodell 120 gezeigt, das als Transitionsgraph mit finitem Zustand umgesetzt wird und eine Vielzahl von Zuständen 122 und Transitionen 124 gemappt hat, um eine Aktion 126 „Erstellung einer Einkaufserinnerung“ mit Parametern für Einzelteil, Zeit/Datum und Standort 128, 130 und 132 zu erzeugen. Wie in der Abbildung zu sehen, werden zahlreiche Zeichen unterstützt, sowohl für die Auslösung der Erinnerung (z. B. „erinnere mich an“ „Erinnerung um“ „lass mich nicht vergessen“ usw.) als auch für die Spezifikation, dass die Erinnerung eine Einkaufserinnerung ist (z. B. „am Laden halten, um zu kaufen“ „kauf“ „mitnehmen“ „holen“, „etwas besorgen“ „anhalten und mitnehmen“ usw.), mit dem Ergebnis, dass es eine große Zahl möglicher Mappings gibt und folglich auch synonyme Phrasen oder sprachgestützte Anfragen, um eine Einkaufserinnerung zu erstellen.
  • Außerdem können für jeden der Parameter 128, 130, 132 viele mögliche Werte im Grammatikmodell gemappt werden. Für die Liste der Einzelteile 128 können beispielsweise unzählige Produktnamen und Beschreibungen 134 möglich sein (z. B. „Brot“ „Milch“ usw.), einschließlich der generischen Bezeichnungen für Einzelteile sowie bestimmter Markennamen. Für den Zeit/Datum-Parameter 130 können verschiedene mit Datum und/oder Zeit assoziierte Phrasen 136 unterstützt werden, darunter sowohl numerische Werte (z. B. „18:00 Uhr“) als auch nicht-numerische Werte (z. B. „nach der Arbeit“, „morgen früh“ usw.). Für den Positions-Parameter 132 können Adressen (z. B. „Hauptstraße 101“), generische Positionen (z. B. „Lebensmittelgeschäft“), Handelsnamen (z. B. ein bestimmtes Lebensmittelgeschäft) usw. angegeben werden). In einigen Implementierungen können einer oder mehrere der Parameter wahlweise angegeben werden. Zusätzlich können bei einigen Implementierungen einer oder mehrere der Parameter auf nicht sprachgestützten Daten beruhen, z. B. die gegenwärtige GPS-Position, Lieblingsgeschäfte eines Benutzers, Wissen um die typischen Arbeitsstunden eines Benutzers usw. und in einigen Fällen auf einer Kombination aus Sprach- und Nichtsprachdaten (z. B. wenn ein Benutzer „Lebensmittelgeschäft“ angibt und diese Eingabe im Verbund mit dem bekannten Heimweg des Benutzers dazu verwendet wird, ein bestimmtes Lebensmittelgeschäft entlang des Weges zu identifizieren). Außerdem können Parameter bei einigen Implementierungen aus Dialogen abgeleitet werden, so dass die Parameter zumindest teilweise von früheren Spracheingaben stammen.
  • Der Graph 120 stellt nur eine kleine Teilmenge der möglichen Mappings dar, die in einem Grammatikmodell enthalten sein können, es versteht sich, dass Mappings von allen möglichen Variationen im Grammatikmodell enthalten sein müssten, um alle möglichen Variationen von sprachgestützten Anfragen abzudecken, die ein Benutzer stellen könnte. Die Online-Dienste haben viele der Einschränkungen bei Ressourcen nicht, mit denen einzelne Computer und elektronische Geräte zu kämpfen haben und können sich den Luxus leisten, eine Vielzahl von Mappings zu haben, um die Nutzbarkeit eines Grammatikmodells zu maximieren. Als Folge sind die Grammatikmodelle, die bei den Online-Diensten zum Einsatz kommen (hier als „Online“-Grammatikmodelle bezeichnet) jedoch im Allgemeinen zu groß und/oder zu rechenintensiv, um in einzelnen Computern und elektronischen Geräten eingesetzt zu werden, obwohl besonders viele dieser Geräte den größten Bedarf an sprachgestützten Benutzerschnittstellen haben.
  • In den hier besprochenen Implementierungen kann jedoch ein kleineres und weniger rechenintensives Offline-Grammatikmodell erzeugt werden, um in einem sprachgestützten Gerät offline mit beschränkten Ressourcen eingesetzt zu werden und dabei den Speicher- und Rechengrenzen des Gerätes Rechnung zu tragen. Ferner kann das Offline-Grammatikmodell anhand von sprachgestützten Anfragen erstellt werden, die einer oder mehrere von spezifischen Benutzern an eines oder mehrere von spezifischen Geräten mit beschränkten Ressourcen gestellt haben, als Ergänzung oder Ersatz zu/für eine(r) Vielzahl von sprachgestützten Anfragen, die häufig von vielen Benutzern an eine Vielzahl von Geräten mit beschränkten Ressourcen gestellt werden. Im Ergebnis enthält das Offline-Grammatikmodell wunschgemäß sprachgestützte Anfragen, die speziell auf eine kleine Zahl von bestimmten Geräten mit beschränkten Ressourcen zugeschnitten sind und/oder für eine begrenzte Anzahl von Benutzern solcher Geräte mit beschränkten Ressourcen in der Art, dass ein Offline-Semantikprozessor wunschgemäß auf sprachgestützte Anfragen reagiert, die wahrscheinlich an das bestimmte Gerät mit beschränkten Ressourcen gerichtet werden, und das bei geringerem Ressourcenbedarf im Vergleich zu einem Online-Grammatikmodell.
  • In verschiedenen Implementierungen kann ein Offline-Grammatikmodell auf der Basis statistischer Analysen der Aktionsleistung des Gerätes mit beschränkten Ressourcen nach Ergehen einer sprachgestützten Anfrage. Beispielsweise werden bei einigen Implementierungen Anfragen an das Gerät mit beschränkten Ressourcen semantisch verarbeitet, um eine oder mehrere mögliche Antwortaktion(en) zu identifizieren, die von dem Gerät mit beschränkten Ressourcen ausgeführt werden kann/können. Sogenannte „Statistiken zur Ausführung möglicher Antwortaktionen“ können analysiert werden, um eine qualifizierte Antwortaktion aus den möglichen auszuwählen. Diese Statistiken möglicher Antwortaktionen können sich auf die Ausführung der möglichen Antwortaktionen für das Gerät mit beschränkten Ressourcen nach Erhalt einer Anfrage beziehen. Die qualifizierte Antwortaktion kann eine Aktion sein, die von dem Gerät nach dem Erhalt einer sprachgestützten Anfrage ausgeführt wird. Ferner kann bei einigen Implementierungen muss die Ausführung der Aktion, die auf die sprachgestützte Anfrage folgt, eines oder mehrere aus einer Reihe von Qualifikationskriterien erfüllen. Zum Beispiel können sich die Qualifikationskriterien auf eine Wechselbeziehung zwischen der gestellten Anfrage und der durchgeführten Aktion beziehen (z. B. liegt die Wechselbeziehung über einem Grenzwert). Die Wechselbeziehung kann beispielsweise von einem oder mehreren der folgenden Faktoren abhängig sein: abgelaufene Zeit zwischen der sprachgestützten Anfrage und der Aktion, ob es irgendwelche intervenierenden Aktionen gab, ob die Ausführung der Aktion als Reaktion auf eine Aufforderung des Gerätes geschah und eine Anzahl von möglichen Aktionen, für die Aufforderungen ausgegeben wurden. In einigen Beispielen können sich die Qualifikationskriterien direkt auf einen oder mehrere der oben beschriebenen Faktoren beziehen. Zum Beispiel kann eine ausgeführte Aktion als eine qualifizierende Aktion gelten, wenn die abgelaufene Zeit zwischen der Ausgabe der Anfrage und der Ausführung der Aktion unterhalb eines Grenzwertes liegt und/oder es keine intervenierenden Aktionen gab. Ähnlich kann eine ausgeführte Aktion als eine qualifizierende Aktion gelten, wenn die Aktion als Reaktion auf eine Aufforderung durch das Gerät ausgeführt wurde.
  • Ein Offline-Grammatikmodell in einem Gerät mit beschränkten Ressourcen – das Anfragen mit Aktionen mappen kann, die von einem Gerät mit beschränkten Ressourcen ausgeführt werden können – kann dann aktualisiert werden, um ein Mapping der gestellten Anfrage und der qualifizierenden Antwortaktion einzuschließen. Im Ergebnis werden nicht alle vom Online-Grammatikmodell unterstützten Anfragen vom Offline-Grammatikmodell übernommen, aber der Bedarf an Speicher und Rechenleistung zur Nutzung des Offline-Grammatikmodells wurde verringert, um der Beschränkung der Ressourcen eines Offline-Gerätes Rechnung zu tragen.
  • 5 veranschaulicht als Beispiel eine Routine 150, die für einen Online- oder einen Offline-Service zur Erzeugung eines Offline-Grammatikmodells geeignet ist, das zumindest teilweise auf der Analyse der Statistik zur Ausführung der möglichen Antwortaktion beruht. Die Routine 150 kann von dem gleichen Service ausgeführt werden, der die sprachgestützten Anfragen verarbeitet, oder es kann ein ganz anderer Service sein. Ferner kann die Routine 150 dazu verwendet werden, das Offline-Grammatikmodell erstmalig zu erzeugen oder ein aktualisiertes Offline-Grammatikmodell zu erzeugen, das ein zuvor erzeugtes Offline-Grammatikmodell ersetzen soll.
  • Die Blöcke 152156 der Routine 150 ähneln unterschiedlichen Blöcken der Routine 100 in 3. In Block 152 wird die Spracheingabe empfangen, z. B. in Form eines digitalen Audiosignals. In Block 154, wird die Spracheingang in Textzeichen umgewandelt (z. B. durch Verwendung von Modul 64 und/oder 82 in 2). In Block 110 können die Textzeichen analysiert werden (z. B. durch Verwendung von Modul 68 und/oder 82 in 2).
  • In Block 158 können eine oder mehrere aus den möglichen Aktionen als Reaktion auf die gestellte Anfrage identifiziert werden, z. B. durch die Module 64, 68 und 72 des Gerätes mit beschränkten Ressourcen 52, oder, falls online, durch das Modul 82. In einigen Implementierungen kann die Identifikation von möglichen Antwortaktionen im Block 158 in einer ähnlichen Weise durchgeführt werden, wie die Operationen im Block 112. Nehmen wir an, der Benutzer erlässt eine bestimmte Langversion einer Anfrage wie „Junge, ich sollte mir etwas Crazy Hair reinziehen.“ Ein semantischer Prozessor (z. B. 66 oder 82 in 2) kann mit verschiedenen Techniken, wie Wesenserkennung mit einem Wissensgraph feststellen, dass sich „Crazy Hair“ auf einen Musiker bezieht. Davon ausgehend kann der nächste logische Schritt (d. h. eine mögliche Antwortaktion) des Gerätes 52 das Starten des Music Players sein, um Musik von The Crazy Hair Band abzuspielen.
  • In verschiedenen Implementierungen können mehrere mögliche Antwortaktionen identifiziert werden. So kann es mehrere Auswahlmöglichkeiten für das Abspielen von Musik eines bestimmten Künstlers geben. Eine Streaming-App kann Musik von einem Streaming-„Kanal“, mit dem der Künstler verbunden ist (und/oder mit Musik für einen ähnlichen musikalischem Geschmack) über ein oder mehrere Netz(e) zu dem Gerät mit beschränkten Ressourcen senden. Eine andere App zur Musikwiedergabe kann die Musik abspielen, die lokal auf dem Gerät mit beschränkten Ressourcen gespeichert ist. In solch einer Situation würde das Öffnen einer dieser Apps zur Wiedergabe von Musik von The Crazy Hair Band eine Antwortaktion ausmachen, die möglicherweise eine Reaktion auf die Anfrage „Junge, ich sollte mir etwas Crazy Hair reinziehen.“ ist.
  • Viele Benutzer können mehrere Geräte mit beschränkten Ressourcen betreiben, z. B. als Teil eines koordinierten „Ökosystems“, in dem der Benutzer lange sprachgestützte Anfragen ausgeben kann. Z.B. kann ein Benutzer ein Mobiltelefon und eine Smart Watch haben. In einigen Fällen kann sich die Smart Watch mit dem Mobiltelefon über eine leistungsarme und/oder drahtlose Kurzstreckentechnologie, wie Bluetooth, Wi-Fi usw. verbinden, das ist jedoch keine Anforderung. Wenn der Benutzer über eines der Geräte eine lange sprachgestützte Anfrage stellt, (z. B. durch Sprechen in ein Mikrophon der Smart Watch), dann kann der Benutzer wünschen, dass eine Antwortaktion vom gleichen oder einem anderen Gerät ausgeführt wird. Dementsprechend können im Block 158 bei verschiedenen Implementierungen eine oder mehrere der ausführbaren Antwortaktionen für ein oder beide Gerät(e) identifiziert werden.
  • Wie im Block 160 angemerkt, können bei einigen Ausführungsformen eine oder mehrere Aufforderungen bezüglich der/den möglichen Antwortaktion(en), die im Block 158 identifiziert wurde(n), an den Benutzer des Gerätes mit beschränkten Ressourcen 52 ausgegeben werden. Jede Aufforderung kann die Ausführung einer entsprechenden Antwortaktion durch das Gerät mit beschränkten Ressourcen 52 vorschlagen. Aufforderungen können verschiedene Formen annehmen, wie akustisch, visuell und/oder taktiles (z. B. durch Vibration) Feedback. Setzen wir als Beispiel das oben geschilderte Szenario fort, so können dem Benutzer zwei wählbare graphische Elemente angeboten werden, eines, um eine für die Wiedergabe eines Kanals mit Bruce Springsteen eine Streaming-App zu starten und ein anderes, um die Wiedergabe von lokal gespeicherten Inhalten von Bruce Springsteen abzuspielen.
  • Die Aufforderungen können auf dem Gerät mit beschränkten Ressourcen auf verschiedene Art und Weise dargestellt werden (z. B. als Ausgabe). In einigen Implementierungen können die Aufforderungen beispielsweise als Teil der graphischen Benutzerschnittstelle einer anderen Anwendung dargestellt werden. Die Anwendung kann zum Beispiel ein Web-Browser, eine Social-Media-App, eine PDA-App o.ä. sein. Die Aufforderung kann als Pop-Up, Hyperlink (als Text oder grafisch) und/oder als sogenannte „Karte“ dargestellt werden, die der Benutzer wählen, ignorieren und/oder zurückweisen kann. Zusätzlich oder ersatzweise kann die Aufforderung akustisch erfolgen. So kann beispielsweise ein Gerät mit beschränkten Ressourcen als Reaktion auf eine sprachgestützte Anfrage mit mehreren möglichen Antwortaktionen akustisch ausgeben: „Wollen Sie die Aktion x oder die Aktion y ausführen"?
  • Wie zuvor angemerkt, können einige Benutzer zusätzlich mehrere Geräte als Teil eines einzelnen koordinierten Ökosystems betreiben. In einigen dieser Implementierungen können eine oder mehrere Aufforderung(en) auf einem oder mehreren der Geräte ausgegeben werden. Nehmen wir an, die Benutzerin stellt die sprachgestützte Anfrage „finde den Weg zu Punkt X“ an die Smart Watch. Zwar kann die Smart Watch eine Anzeige haben, aber wenn die Benutzerin fährt oder auf einem Fahrrad unterwegs ist, kann es unangebracht sein, auf eine Sichtaufforderung reagieren zu müssen, die auf der Anzeige dargestellt wird. Allerdings kann das Mobiltelefon der Benutzerin einen Lautsprecher haben, oder ist möglicherweise mit einer anderen Audiovorrichtung, wie einem Auto-Stereogerät oder Bluetooth-Kopfhörern verbunden, die die Benutzerin trägt. Solch ein Lautsprecher kann für die Ausgabe einer akustischen Aufforderung an die Benutzerin geeignet sein. In so einem Fall kann das Mobiltelefon der Benutzerin als eine Reaktion auf die durch sie gestellte sprachgestützte Anfrage über die Smart Watch eine hörbare Aufforderung an die Benutzerin absetzen, z. B. „meinen Sie die Stelle X in Stadt A oder in Stadt B?“
  • In Block 162 können die Statistiken zur Ausführung der möglichen Antwortaktionen von einem oder mehreren der Geräte mit beschränkten Ressourcen gesammelt werden, die ein Benutzer in Betrieb hat. In den verschiedenen Implementierungen können sich die Statistiken zur Ausführung der möglichen Antwortaktionen auf die Ausführung einer oder mehrerer der im Block 158 identifizierten möglichen Antwortaktionen beziehen und/oder auf diese hinweisen. In verschiedenen Implementierungen kann ein Gerät mit beschränkten Ressourcen diese Statistiken selbst sammeln, z. B. durch das Beobachten und Aufzeichnen des Benutzerverhaltens in verschiedenen Zeitabständen nach Erteilung einer sprachgestützten Anfrage. In einigen Implementierungen kann das Gerät mit beschränkten Ressourcen verschiedene Daten zu Benutzerantworten (oder deren Mangel) auf Aufforderungen vom Block 160 beobachten und notieren, beispielsweise wie schnell der Benutzer auf die Aufforderung geantwortet hat, ob der Benutzer die Aufforderung missachtet hat und das Gerät mit beschränkten Ressourcen dazu veranlasste, eine alternative Aktion durchzuführen usw.
  • Im Block 164 können die im Block 162 gesammelten Statistiken zur Ausführung von möglichen Antwortaktionen analysiert werden. Wenn im Block 160 keine Aufforderungen abgegeben wurden, dann können eine oder mehrere von beobachteten Benutzerinteraktionen mit einem oder mehreren der Geräte mit beschränkten Ressourcen, nach Stellung der Anfrage indirekt (z. B. durch Indizien) den Beweis für eine Wechselbeziehung zwischen der gestellten Anfrage und einer oder mehrerer der möglichen Antwortaktionen darstellen. Aber nehmen wir an, dass zwischen Abgabe der sprachgestützten Anfrage und der Einleitung jeglicher möglicher Antwortaktion ein verhältnismäßig langer Zeitabschnitt liegt. Das kann eine solche Wechselbeziehung dann weniger beweiskräftig darstellen, insbesondere, wenn der Benutzer in der Zwischenzeit ein oder mehrere andere der Geräte mit beschränkten Ressourcen verwendet hat, um eine oder mehrere Aktionen durchzuführen, die nicht im Block 158 als mögliche Antwortaktionen identifiziert wurden.
  • Nehmen wir an, der Benutzer gibt eine bestimmte Langversion einer Anfrage wie „Junge, ich sollte mir etwas Springsteen anhören.“ ab. Wie zuvor angemerkt, können die Module 64, 68 und 72 des Gerätes mit beschränkten Ressourcen 52, oder im Onlinemodus das Modul 82, eine oder mehrere der möglichen Antwortaktionen identifizieren, welche die Wiedergabe von Musik von Bruce Springsteen einschließen. So kann beispielsweise eine mögliche Antwortaktion das Starten einer Streaming-App zur Wiedergabe eines Bruce Springsteen Kanals sein; eine andere, eine Musik-App zu starten, um lokal gespeicherte Lieder von Bruce Springsteen abzuspielen. Wenn die im Block 162 gesammelten Statistiken anzeigen, dass der Benutzer unmittelbar nach Abgabe der sprachgestützten Anfrage die Streaming-App zur Wiedergabe des Bruce Springsteen Kanals gestartet hat, dann kann im Block 164 festgestellt werden, dass es eine stärkere Wechselbeziehung zwischen der abgegebenen Benutzeranfrage und der Streaming-App gibt, als zwischen der abgegebenen Benutzeranfrage und der Musik-App zum Abspielen der lokal gespeicherten Musik.
  • Zusätzlich, oder als Alternative, nehmen wir an, eine oder mehrere der Aufforderungen wurden im Block 160 ausgegeben. Die Antwort des Benutzers auf die eine oder mehrere der Aufforderungen, ob in Form der Auswahl eines grafischen Symbols oder einer Sprachantwort auf eine hörbare Aufforderung, kann analysiert werden. Weil die Aufforderungen eine Reaktion auf eine abgegebene Anfrage war, kann eine bestätigende Benutzerantwort auf eine Aufforderung als unmittelbarer Beweis für eine Wechselbeziehung zwischen der gestellten Anfrage und der durch die Aufforderung eingeleiteten Aktion gewertet werden. Zusätzlich zu der Frage, ob der Benutzer auf eine Aufforderung reagierte, kann auch ausgewertet werden, wie schnell der Benutzer auf die Aufforderung reagierte, wie viele alternative Aufforderungen zur Reaktion es gab usw.
  • Aufgrund der Analyse im Block 164 können im Block 166 ein oder mehrere der Mappings zwischen einer gestellten Anfrage und einer oder mehrerer der möglichen Antwortaktionen identifiziert werden. In einigen Implementierungen kann das Gerät mit den beschränkten Ressourcen 52 (ein) identifizierte(s) Mapping(s) zurück an das Modul 82 schicken (oder an eine andere Online-Komponente). In Situationen, in denen die Mappings vertrauliche Informationen enthalten (ein geheimes Kennwort zur Bedienung des Garagentors, zum Beispiel), können die Mappings vor der Übertragung anonymisiert werden. Zusätzlich oder alternativ kann ein Benutzer das Gerät mit beschränkten Ressourcen 52 so konfigurieren, dass die Mappings im Gerät 52 als private Mappings gespeichert und nicht an das Modul 82 gegeben werden.
  • Im Block 168 können ein oder mehrere Offline-Grammatikmodelle (z. B. 76 in 2) in einem oder mehreren der vom Benutzer betriebenen Geräte mit beschränkten Ressourcen (z. B. Gerät 52 und/oder Modul 82) aktualisiert werden, um (das) Mapping(s) einzuschließen, das/die im Block 166 identifiziert wurde(n). So kann beispielsweise ein Offline-Grammatikmodell im Modul 82 gepackt und an ein oder mehrere sprachgestützte(s) Offline-Gerät(e) mit beschränkten Ressourcen verteilt werden (z. B. mehrere Geräte eines bestimmten Benutzers, der eine eindeutige lange sprachgestützte Anfrage verwendet). Ein oder mehrere der sprachgestützten Offline-Geräte mit beschränkten Ressourcen können das verpackte Offline-Grammatikmodell empfangen und auspacken und das Modell im jeweiligen Gerät speichern. Das Verpacken dient der Komprimierung des Offline-Grammatikmodells, um die Übertragungsgröße zu reduzieren und das Modell in ein Format zu bringen, das für die jeweiligen Geräte geeignet ist. Dementsprechend kann das Gerät mit beschränkten Ressourcen das Offline-Grammatikmodell im Offline- oder sogar Onlinemodus verwenden, um sprachgestützte Anfragen zu verarbeiten.
  • Zusätzlich oder anstelle der Routine 150, die zur erstmaligen Erzeugung eines Offline-Grammatikmodells verwendet wurde, kann die Routine 150 auch für die Aktualisierung eines Offline-Grammatikmodells verwendet werden, z. B. um Veränderungen der Nutzung über einen Zeitraum besser verfolgen zu können und zusätzliche lange sprachgestützte Anfragen für spezifische Benutzer einzubeziehen usw. Solche Updates können als dynamisch betrachtet werden, da das Gerät mit beschränkten Ressourcen entweder im Zuge eines System-Updates, eines Anwendungs-Updates oder Hintergrund-Updates aktualisiert werden kann, das einem Benutzer nicht gezeigt wird.
  • In einigen Implementierungen können Mappings zwischen langen Anfragen und Antwortaktionen zusätzlich in einem Online-Grammatikmodell neben Einträgen in (dem) Offline-Grammatikmodell(en) enthalten sein. Auf diese Weise kann das gleiche Mapping zu verschiedenen Offline-Grammatikmodellen für eines oder mehrere Geräte mit beschränkten Ressourcen hinzugefügt werden, wenn ein neuer Benutzer eine lange Anfrage stellt, die zuvor für einen anderen Benutzer identifiziert und gemappt wurde. In einigen Implementierungen können Benutzer sich jedoch gegen eine solche Zusammenarbeit entscheiden, um Privatsphäre, Anonymität und/oder Sicherheit ihrer möglicherweise sensiblen langen Anfragen zu bewahren.
  • Obwohl hier verschiedene Implementierungen beschrieben und dargestellt sind, kann eine Vielfalt von weiteren Mechanismen und/oder Strukturen verwendet werden, um die Funktion durchzuführen und/oder um die Ergebnisse zu erlangen und/oder um einen oder mehrere der hier beschriebenen Vorteile zu erlangen, und es ist beabsichtigt, dass jede solcher Variationen und/oder Modifikationen innerhalb des Umfangs der Implementierungen, wie hierin beschrieben, umfasst ist. Genauer gesagt sollen jegliche Parameter, Ausmaße, Materialien und Konfigurationen, wie hier beschrieben, als beispielhaft betrachtet werden, und die aktuellen Parameter, Ausmaße, Materialien und/oder Konfigurationen sollen von der spezifischen Anwendung oder von Anwendungen, bei welchen die erfindungsgemäße Lehre angewendet wird, abhängen. Der Fachmann wird anerkennen oder dazu in der Lage sein, sicherzustellen, unter Gebrauch von einer lediglich routinegemäßen Handlung, zu vielen Äquivalenten der hier beschriebenen spezifischen Implementierungen zu gelangen. Es ist daher zu verstehen, dass die zuvor genannten Ausführungsformen lediglich mittels Beispiel dargelegt sind, und dass, innerhalb des Umfangs der anliegenden Ansprüche und deren Äquivalente, erfindungsgemäße Ausführungsformen andersartig in die Praxis umgesetzt werden können als spezifisch beschrieben und beansprucht. Implementierungen der vorliegenden Beschreibung sind auf jedes individuelle Merkmal, System, Artikel, Material, Satz und/oder Verfahren, wie hier beschrieben, gerichtet. Zusätzlich ist eine jegliche Kombination von zwei oder mehreren solcher Merkmale, Systeme, Artikel, Materialien, Sätze und/oder Verfahren, vorausgesetzt, dass solche Merkmale, Systeme, Artikel, Materialien, Sätze und/oder Verfahren nicht gegenseitig inkonsistent sind, innerhalb des Umfangs der vorliegenden Offenbarung umfasst.

Claims (20)

  1. Ein Verfahren, umfassend: die semantische Verarbeitung einer Anfrage an ein Gerät mit beschränkten Ressourcen, um eine oder mehrere mögliche Antwortaktion(en) zu identifizieren, die von dem Gerät mit beschränkten Ressourcen ausgeführt werden kann/können; die Analyse der Ausführung möglicher Antwortaktionen, um eine oder mehrerer der möglichen Antwortaktionen als qualifizierende Antwortaktion auszuwählen, wobei sich besagte Statistik auf die Ausführung einer oder mehrerer der möglichen Antwortaktionen durch das Gerät mit beschränkten Ressourcen nach Stellung einer Anfrage bezieht; und die Aktualisierung eines Offline-Grammatikmodells in einem Gerät mit beschränkten Ressourcen, um ein Mapping der gestellten Anfrage und der qualifizierenden Antwortaktion einzuschließen, wobei das Offline-Grammatikmodell Mappings für Anfragen und Aktionen anlegt, die von dem Gerät mit beschränkten Ressourcen offline ausgeführt werden.
  2. Verfahren nach Anspruch 1, bei dem außerdem die Ausgabe von einer oder mehreren Aufforderung(en) an den Benutzer eingeschlossen ist, der das Gerät mit den beschränkten Ressourcen betreibt, eine oder mehrere der ausgewählten Möglichkeiten auszuführen.
  3. Verfahren nach Anspruch 2, bei dem zu der Analyse auch die Auswertung von Statistiken gehört, die das Antwortverhalten des Benutzers auf eine oder mehrere Aufforderung(en) enthalten.
  4. Verfahren nach Anspruch 2 oder Anspruch 3, bei dem die eine oder mehrere der Aufforderungen ein wählbares grafisches Element enthält/enthalten.
  5. Verfahren nach Anspruch 2 oder Anspruch 3, bei dem die eine oder mehrere der Aufforderungen ein akustisches oder taktiles Element enthält/enthalten.
  6. Verfahren nach den Ansprüchen 1 bis 5, zu dem weiterhin die Übertragung des Offline-Grammatikmodells an das Gerät mit beschränkten Ressourcen zur Speicherung und Verwendung durch einen semantischen Prozessor des Gerätes mit beschränkten Ressourcen im Offline-Betrieb gehört.
  7. Verfahren nach Anspruch 6, bei dem die Übertragung des Offline-Grammatikmodells an das Gerät mit beschränkten Ressourcen das im Gerät mit beschränkten Ressourcen gespeicherte Offline-Grammatikmodell dynamisch aktualisiert.
  8. Verfahren nach jedem der zuvor erwähnten Ansprüche, bei dem die gestellte Anfrage eine sprachgestützte Anfrage ist und das Offline-Grammatikmodell Mappings zwischen sprachgestützten Anfragen und Aktionen erstellt.
  9. Verfahren nach jedem der zuvor erwähnten Ansprüche, weiterhin umfassend die Sammlung von Daten, die einen Hinweis auf die Ausführung von einer oder mehreren der möglichen Antwortaktionen durch die Vielzahl der Geräte mit beschränkten Ressourcen bieten, die der Benutzer betreibt, die Auswertung der Statistik basiert auf den gesammelten Daten.
  10. Verfahren nach jedem der zuvor erwähnten Ansprüche, bei dem die semantische Verarbeitung durch die Verwendung eines Online-Grammatikmodells erledigt wird, in Relation zu diesem Online-Grammatikmodell hat das Offline-Grammatikmodell einen geringeren Bedarf an Ressourcen.
  11. Verfahren nach jedem der zuvor erwähnten Ansprüche, bei dem der Zugriff auf ein oder mehrere der Mappings, die gestellte Anfrage und die Offline-Grammatik des Gerätes mit beschränkten Ressourcen beschränkt ist.
  12. System einschließlich Speicher und einem oder mehreren Prozessor(en) zum Ausführen von Anweisungen, die im Speicher abgelegt sind, umfassend Anweisungen zu Folgendem: dem semantischen Verarbeiten einer Anfrage an ein Gerät mit beschränkten Ressourcen, um eine oder mehrere mögliche Antwortaktion(en) zu identifizieren, die von dem Gerät mit beschränkten Ressourcen ausgeführt werden kann/können; das Analysieren der Statistiken der Ausführung möglicher Antwortaktionen, um eine oder mehrere der möglichen Antwortaktionen als qualifizierende Antwortaktion auszuwählen, wobei sich besagte Statistik auf die Ausführung einer oder mehrerer der möglichen Antwortaktionen durch das Gerät mit beschränkten Ressourcen nach Stellung einer Anfrage bezieht; und das Aktualisieren eines Offline-Grammatikmodells in einem Gerät mit beschränkten Ressourcen, um ein Mapping der gestellten Anfrage und der qualifizierenden Antwortaktion einzuschließen, wobei das Offline-Grammatikmodell Mappings für Anfragen und Aktionen anlegt, die von dem Gerät mit beschränkten Ressourcen offline ausgeführt werden.
  13. Verfahren nach Anspruch 12, des Weiteren umfassend Anweisungen zum Veranlassen der Bereitstellung einer Ausgabe an einen Benutzer, der der das Gerät mit beschränkten Ressourcen betreibt, wobei die Ausgabe eine oder mehreren Aufforderung(en) beinhaltet, welche das Durchführen der jeweiligen einen oder mehreren Möglichkeiten vorschlagen.
  14. Verfahren nach Anspruch 13, des Weiteren Anweisungen umfassend zum Analysieren von Statistiken in Bezug auf die Reaktion des Benutzers auf die eine oder die mehrere Aufforderung(en).
  15. Verfahren nach Anspruch 13 oder Anspruch 14, wobei die eine oder mehreren Aufforderungen ein wählbares grafisches Element umfassen.
  16. Verfahren nach Anspruch 13 oder Anspruch 14, wobei die eine oder mehreren Aufforderungen ein akustisches oder taktiles Element umfassen.
  17. Verfahren nach den Ansprüchen 12 bis 16, des Weiteren umfassend Anweisungen zum Übertragen des Offline-Grammatikmodells an das Gerät mit beschränkten Ressourcen zum Speichern und Verwenden durch einen semantischen Prozessor des Gerätes mit beschränkten Ressourcen im Offline-Betrieb.
  18. System nach irgendeinem der Ansprüche 12 bis 17, wobei die gestellte Anfrage eine sprachgestützte Anfrage ist und das Offline-Grammatikmodell Mappings zwischen sprachgestützten Anfragen und Aktionen erstellt.
  19. System nach irgendeinem der Ansprüche 12 bis 18, des Weiteren umfassend die Anweisungen, Daten zu sammeln, die einen Hinweis auf die Ausführung von einer oder mehreren der möglichen Antwortaktionen durch die Vielzahl der Geräte mit beschränkten Ressourcen bieten, die der Benutzer betreibt, die Auswertung der Statistik basiert auf den gesammelten Daten.
  20. Von einem Computer ausführbare Anweisungen, die bei Ausführung durch ein Computersystem, den Ablauf des Verfahrens nach den Ansprüchen 1 bis 11 auf dem Computersystem verursachen.
DE102016125823.7A 2016-02-24 2016-12-28 Unterstützung bei der semantischen offline-bearbeitung durch ein gerät mit begrenzten möglichkeiten Active DE102016125823B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/051,778 US9836527B2 (en) 2016-02-24 2016-02-24 Customized query-action mappings for an offline grammar model
US15/051,778 2016-02-24

Publications (2)

Publication Number Publication Date
DE102016125823A1 true DE102016125823A1 (de) 2017-08-24
DE102016125823B4 DE102016125823B4 (de) 2021-01-14

Family

ID=57794346

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016125823.7A Active DE102016125823B4 (de) 2016-02-24 2016-12-28 Unterstützung bei der semantischen offline-bearbeitung durch ein gerät mit begrenzten möglichkeiten
DE202016008225.7U Active DE202016008225U1 (de) 2016-02-24 2016-12-28 Unterstützung bei der semantischen Offline-Bearbeitung durch ein Gerät mit begrenzten Möglichkeiten

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202016008225.7U Active DE202016008225U1 (de) 2016-02-24 2016-12-28 Unterstützung bei der semantischen Offline-Bearbeitung durch ein Gerät mit begrenzten Möglichkeiten

Country Status (9)

Country Link
US (1) US9836527B2 (de)
EP (1) EP3405885B1 (de)
JP (1) JP6518020B1 (de)
KR (1) KR101938806B1 (de)
CN (1) CN107122154A (de)
DE (2) DE102016125823B4 (de)
GB (1) GB2547744B (de)
RU (1) RU2685392C1 (de)
WO (1) WO2017146803A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074353B (zh) * 2016-10-10 2022-11-08 微软技术许可有限责任公司 用于信息检索的方法、装置和系统
US10986002B1 (en) * 2017-11-03 2021-04-20 EMC IP Holding Company LLC Centralizing enterprise-specific information across cloud-based systems
US11170762B2 (en) 2018-01-04 2021-11-09 Google Llc Learning offline voice commands based on usage of online voice commands
US10678857B2 (en) 2018-03-23 2020-06-09 International Business Machines Corporation Managing a distributed knowledge graph
JP6918255B1 (ja) * 2018-06-27 2021-08-11 グーグル エルエルシーGoogle LLC 局所的なテキスト応答マップを利用する、ユーザの口頭発話への応答のレンダリング
US11394627B1 (en) 2019-07-31 2022-07-19 Express Scripts Strategie Development, Inc. Systems and methods for monitoring inter-application communications in complex computing ecosystems
JP7029434B2 (ja) * 2019-10-23 2022-03-03 サウンドハウンド,インコーポレイテッド コンピュータによって実行される方法、サーバ装置、情報処理システム、プログラム、およびクライアント端末

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601026B2 (en) 1999-09-17 2003-07-29 Discern Communications, Inc. Information retrieval by natural language querying
WO2001098942A2 (en) 2000-06-19 2001-12-27 Lernout & Hauspie Speech Products N.V. Package driven parsing using structure function grammar
EP1215661A1 (de) * 2000-12-14 2002-06-19 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Sprachgesteuertes tragbares Endgerät
US6751595B2 (en) 2001-05-09 2004-06-15 Bellsouth Intellectual Property Corporation Multi-stage large vocabulary speech recognition system and method
DE10147341B4 (de) 2001-09-26 2005-05-19 Voiceobjects Ag Verfahren und Vorrichtung zum Aufbau einer in einem Computersystem implementierten Dialogsteuerung aus Dialogobjekten sowie zugehöriges Computersystem zur Durchführung einer Dialogsteuerung
US20030191802A1 (en) * 2002-04-03 2003-10-09 Koninklijke Philips Electronics N.V. Reshaped UDDI for intranet use
US7197331B2 (en) 2002-12-30 2007-03-27 Motorola, Inc. Method and apparatus for selective distributed speech recognition
US7729913B1 (en) 2003-03-18 2010-06-01 A9.Com, Inc. Generation and selection of voice recognition grammars for conducting database searches
US20040224674A1 (en) * 2003-04-07 2004-11-11 O'farrell Robert System and method for context sensitive mobile data and software update
US7200559B2 (en) * 2003-05-29 2007-04-03 Microsoft Corporation Semantic object synchronous understanding implemented with speech application language tags
US7349845B2 (en) 2003-09-03 2008-03-25 International Business Machines Corporation Method and apparatus for dynamic modification of command weights in a natural language understanding system
US7606708B2 (en) 2005-02-01 2009-10-20 Samsung Electronics Co., Ltd. Apparatus, method, and medium for generating grammar network for use in speech recognition and dialogue speech recognition
US20070005579A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Query based synchronization
US7949529B2 (en) 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
US7822699B2 (en) 2005-11-30 2010-10-26 Microsoft Corporation Adaptive semantic reasoning engine
US7818315B2 (en) * 2006-03-13 2010-10-19 Microsoft Corporation Re-ranking search results based on query log
US7689420B2 (en) 2006-04-06 2010-03-30 Microsoft Corporation Personalizing a context-free grammar using a dictation language model
US8949130B2 (en) 2007-03-07 2015-02-03 Vlingo Corporation Internal and external speech recognition use with a mobile communication facility
US8396713B2 (en) 2007-04-30 2013-03-12 Nuance Communications, Inc. Method and system for using a statistical language model and an action classifier in parallel with grammar for better handling of out-of-grammar utterances
US20090254512A1 (en) * 2008-04-03 2009-10-08 Yahoo! Inc. Ad matching by augmenting a search query with knowledge obtained through search engine results
US20090327224A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Automatic Classification of Search Engine Quality
RU2509350C2 (ru) * 2008-11-07 2014-03-10 Матрокс Профешнл Инк Способ семантической обработки естественного языка с использованием графического языка-посредника
TWI384378B (zh) * 2008-12-29 2013-02-01 Ind Tech Res Inst 網頁應用程式執行方法
US8515966B2 (en) * 2009-01-09 2013-08-20 Ebay Inc. Analyzing queries to generate product intention rules
US8392543B1 (en) * 2009-01-30 2013-03-05 Sprint Communications Company L.P. Synchronization of content change across multiple devices
US9172803B2 (en) 2009-08-23 2015-10-27 Aspect Software, Inc. System and method for integrating runtime usage statistics with developing environment
US9323843B2 (en) * 2010-04-07 2016-04-26 Yahoo! Inc. Method and system for performing bi-directional search
US8538915B2 (en) * 2010-07-12 2013-09-17 International Business Machines Corporation Unified numerical and semantic analytics system for decision support
US8954422B2 (en) * 2010-07-30 2015-02-10 Ebay Inc. Query suggestion for E-commerce sites
US8655881B2 (en) * 2010-09-16 2014-02-18 Alcatel Lucent Method and apparatus for automatically tagging content
US8364709B1 (en) * 2010-11-22 2013-01-29 Google Inc. Determining word boundary likelihoods in potentially incomplete text
US9679561B2 (en) 2011-03-28 2017-06-13 Nuance Communications, Inc. System and method for rapid customization of speech recognition models
US8626711B2 (en) * 2011-07-07 2014-01-07 Daniel Allan Mooney Systems, methods, and media for correlating objects according to relationships
US9135237B2 (en) * 2011-07-13 2015-09-15 Nuance Communications, Inc. System and a method for generating semantically similar sentences for building a robust SLM
US20130086024A1 (en) * 2011-09-29 2013-04-04 Microsoft Corporation Query Reformulation Using Post-Execution Results Analysis
CA2767676C (en) * 2012-02-08 2022-03-01 Ibm Canada Limited - Ibm Canada Limitee Attribution using semantic analysis
US8868587B1 (en) * 2012-05-04 2014-10-21 Google Inc. Determining correction of queries with potentially inaccurate terms
WO2013185109A2 (en) 2012-06-08 2013-12-12 Apple Inc. Systems and methods for recognizing textual identifiers within a plurality of words
US20130346403A1 (en) * 2012-06-25 2013-12-26 Google Inc. Signal based recommender
US8903838B2 (en) * 2012-10-29 2014-12-02 Dropbox, Inc. System and method for preventing duplicate file uploads in a synchronized content management system
JP2014106523A (ja) * 2012-11-30 2014-06-09 Aisin Aw Co Ltd 音声入力対応装置及び音声入力対応プログラム
US9594837B2 (en) * 2013-02-26 2017-03-14 Microsoft Technology Licensing, Llc Prediction and information retrieval for intrinsically diverse sessions
US9424354B2 (en) * 2013-03-15 2016-08-23 Microsoft Technology Licensing, Llc Providing crowdsourced answers to information needs presented by search engine and social networking application users
US9430465B2 (en) * 2013-05-13 2016-08-30 Facebook, Inc. Hybrid, offline/online speech translation system
US9460211B2 (en) * 2013-07-08 2016-10-04 Information Extraction Systems, Inc. Apparatus, system and method for a semantic editor and search engine
US9772994B2 (en) * 2013-07-25 2017-09-26 Intel Corporation Self-learning statistical natural language processing for automatic production of virtual personal assistants
DE102013219649A1 (de) * 2013-09-27 2015-04-02 Continental Automotive Gmbh Verfahren und System zum Erstellen oder Ergänzen eines benutzerspezifischen Sprachmodells in einem mit einem Endgerät verbindbaren lokalen Datenspeicher
US9218366B1 (en) * 2013-11-27 2015-12-22 Google Inc. Query image model
US9251224B2 (en) * 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
US20160055203A1 (en) * 2014-08-22 2016-02-25 Microsoft Corporation Method for record selection to avoid negatively impacting latency
US10068008B2 (en) * 2014-08-28 2018-09-04 Microsoft Technologies Licensing, LLC Spelling correction of email queries
US9342707B1 (en) * 2014-11-06 2016-05-17 Sap Se Searchable encryption for infrequent queries in adjustable encrypted databases
US9760681B2 (en) * 2014-11-24 2017-09-12 Practice Fusion, Inc. Offline electronic health record management
JP6834118B2 (ja) * 2015-02-16 2021-02-24 富士通株式会社 端末装置、画面更新プログラム、画面更新方法及び情報処理システム
US10223437B2 (en) * 2015-02-27 2019-03-05 Oracle International Corporation Adaptive data repartitioning and adaptive data replication
US9922138B2 (en) * 2015-05-27 2018-03-20 Google Llc Dynamically updatable offline grammar model for resource-constrained offline device
US10102482B2 (en) * 2015-08-07 2018-10-16 Google Llc Factorized models
US10146815B2 (en) * 2015-12-30 2018-12-04 Oath Inc. Query-goal-mission structures

Also Published As

Publication number Publication date
RU2685392C1 (ru) 2019-04-17
GB2547744A (en) 2017-08-30
EP3405885B1 (de) 2022-04-13
US9836527B2 (en) 2017-12-05
US20170242914A1 (en) 2017-08-24
GB2547744B (en) 2019-08-14
GB201621095D0 (en) 2017-01-25
DE202016008225U1 (de) 2017-05-16
CN107122154A (zh) 2017-09-01
WO2017146803A1 (en) 2017-08-31
JP6518020B1 (ja) 2019-05-22
EP3405885A1 (de) 2018-11-28
DE102016125823B4 (de) 2021-01-14
JP2019516150A (ja) 2019-06-13
KR101938806B1 (ko) 2019-01-16
KR20180112813A (ko) 2018-10-12

Similar Documents

Publication Publication Date Title
DE102016125823B4 (de) Unterstützung bei der semantischen offline-bearbeitung durch ein gerät mit begrenzten möglichkeiten
DE102017122515A1 (de) Aufgaben-Initiierung unter Verwendung von langen Sprachbefehlen
DE102017122357B4 (de) Kontextbezogener mensch-computer-dialog
DE102017122200A1 (de) Bilden einer Chatbot-Ausgabe auf der Grundlage eines Anwenderzustandes
DE112016004863T5 (de) Parametersammlung und automatische Dialogerzeugung in Dialogsystemen
US10552489B2 (en) Dynamically updatable offline grammar model for resource-constrained offline device
DE202017105844U1 (de) Bereitstellen einer Eingabeaufforderung in einer automatisierten Dialogsitzung basierend auf ausgewähltem Inhalt von vorherigen automatisierten Dialogsitzungen
KR102313474B1 (ko) 자동화된 어시스턴트를 통해 대화 세션 재개를 위한 시스템, 방법 및 장치
DE102016125801A1 (de) Nichtdeterministische Aufgabeninitiierung durch ein persönliches Assistenzmodul
DE202017106466U1 (de) Streaming-Dialogmanagement in Echtzeit
DE112016002370T5 (de) Lokales persistent machen von daten für eine selektiv offline taugliche sprachaktion in einer sprachfähigen elektronischen vorrichtung
DE202017105142U1 (de) Verwenden einer Anwendereingabe, um Suchergebnisse, die für die Darstellung für den Anwender bereitgestellt werden, anzupassen
DE102017125196A1 (de) Proaktive Aufnahme von nicht angefordertem Inhalt in Mensch-Computer-Dialoge
DE102016125594A1 (de) Automatisch augmentierende Nachrichtenaustauschthread basierend auf der Nachrichtenklassifizierung
DE202017105865U1 (de) Umwandlung von Sprache in Text basierend auf Agenteninhalt Dritter
Lopatovska et al. User recommendations for intelligent personal assistants
DE102016125804A1 (de) Das Einbeziehen auswählbarer Anwendungslinks in Konversationen mit persönlichen Assistenz-Modulen
DE102020128250A1 (de) Fahrzeugbasierte gebärdensprachkommunikationssysteme und -verfahren
CN111428018B (zh) 智能问答方法及装置

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R138 Derivation of utility model

Ref document number: 202016008225

Country of ref document: DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: VENNER SHIPLEY LLP, DE

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: VENNER SHIPLEY GERMANY LLP, DE

Representative=s name: VENNER SHIPLEY LLP, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final