DE102016226302A1 - Voice-action-system für entwickler - Google Patents

Voice-action-system für entwickler Download PDF

Info

Publication number
DE102016226302A1
DE102016226302A1 DE102016226302.1A DE102016226302A DE102016226302A1 DE 102016226302 A1 DE102016226302 A1 DE 102016226302A1 DE 102016226302 A DE102016226302 A DE 102016226302A DE 102016226302 A1 DE102016226302 A1 DE 102016226302A1
Authority
DE
Germany
Prior art keywords
voice action
action
voice
software application
new
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
DE102016226302.1A
Other languages
English (en)
Other versions
DE102016226302B4 (de
Inventor
Bo Wang
Sunil Vemuri
Barnaby John James
Scott B. Huffman
Pravir Kumar Gupta
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 DE102016226302A1 publication Critical patent/DE102016226302A1/de
Application granted granted Critical
Publication of DE102016226302B4 publication Critical patent/DE102016226302B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1822Parsing for meaning understanding
    • 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
    • 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/165Management of the audio stream, e.g. setting of volume, audio stream path
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • 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/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 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/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

Abstract

Verfahren, Systeme und Apparate zum Empfang, durch ein Voice-Action-System, von Daten, die eine neue Voice Action für eine Anwendung spezifizieren, die vom Voice-Action-System verschieden ist. Eine Voice-Action-Absicht für die Anwendung wurde auf Grundlage von zumindest den Daten erstellt, wobei die Voice-Action-Absicht Daten umfasst, die, wenn sie von der Anwendung empfangen werden, anfordern, dass die Anwendung eine oder mehrere Operationen ausführt, die für die neue Voice Action spezifiziert sind. Die Voice-Action-Absicht ist mit für die neue Voice Action spezifizierten Auslöserbegriffen verknüpft. Das Voice-Action-System ist dazu konfiguriert, eine Angabe einer Benutzeräußerung zu empfangen, die von einem Gerät erhalten wird, auf dem die Anwendung installiert ist, und stellt fest, dass eine Transkription der Benutzeräußerung den Auslöserbegriffen entspricht, die mit der Voice-Action-Absicht verknüpft sind. Auf die Feststellung hin stellt das Voice-Action-System dem Gerät die Voice-Action-Absicht bereit.

Description

  • SACHGEBIET
  • Diese Spezifikation bezieht sich auf Voice Actions, und eine bestimmte Implementierung bezieht sich auf die Konfiguration von Voice Actions.
  • ALLGEMEINER STAND DER TECHNIK
  • Eine Aufgabe in einer Anwendung kann eine oder mehrere in definierte Aktivitäten in Software beinhalten, mit der ein Benutzer interagiert, um eine bestimmte Arbeit auszuführen. Aktivität ist eine Kategorie, die den Lebenszyklus der Ausführung der Aufgabe steuert, so dass die verschiedenen Aktivitäten, die innerhalb der Aufgabe ausgeübt werden, dem Benutzer gestatten, die Arbeit auszuführen. In einigen Implementierungen kann ein Befehl mit einer Aktivität oder einer mit einer Aktivität verbundenen Aktion verknüpft sein, so dass eine Benutzereingabe des Befehls die Aktivität oder die Aktion auslösen kann. Eine spezifische Absicht kann ausgelöst werden, um den Beginn der Aktivität oder der Ausführung der Aktion auszulösen.
  • KURZDARSTELLUNG
  • Diese Spezifikation beschreibt eine Plattform, die es einem Anwendungsentwickler erlaubt, neue Voice Actions für zuvor installierte Software-Anwendungen auszurollen. Im Allgemeinen kann der Anwendungsentwickler unter Nutzung der Plattform Informationen eingeben, die die neue Voice Action definieren, wobei die Information die Anwendung spezifiziert, eine Aktion, die die neue Voice Action auslösen soll, einen Auslöserbegriff zum Auslösen der Aktion und einen Kontext, in dem der Auslöserbegriff anwendbar sein soll, um die Aktion in der Anwendung auszulösen.
  • Der vom Anwendungsentwickler eingegebene Kontext kann einen Benutzergerätestatus spezifizieren, in dem die Voice Action anwendbar sein soll, um die Aktion in der Anwendung auszulösen. Ein Gerätestatus kann beispielsweise beinhalten, welche Anwendung(en) im Vordergrund (d. h. gegenwärtig auf der Benutzeroberfläche des Geräts aktiv) oder im Hintergrund (d. h. gegenwärtig auf der Benutzeroberfläche des Geräts versteckt) läuft/laufen, oder kann spezifische Information zu Anwendungen beinhalten, wie beispielsweise die gegenwärtig laufenden Aktivitäten, den Status laufender Aktivitäten und so weiter.
  • Wenn der Anwendungsentwickler Informationen eingibt, die die neue Voice Action definieren, kann der Dienst oder das Werkzeug die Information, die die neue Voice Action definiert, validieren um festzustellen, ob die neue Voice Action mit der Anwendung kompatibel ist oder um auf andere Art festzustellen, ob die neue Voice Action implementiert werden kann. Wenn die neue Voice Action gültig ist, kann eine neue Instanz einer passiven Datenstruktur, die Absicht genannt wird und ein spezifisches Format besitzt, für die Voice Action durch Einfügung der Information, die die neue Voice Action definiert, erstellt werden. Die Absicht kann einen Teil oder die gesamte Information, die die neue Voice Action definiert, spezifizieren, wie beispielsweise die Anwendung, den Auslöserbegriff, die Aktivität oder Aktion, die auf die Erkennung des Auslöserbegriffs hin ausgelöst werden soll, sowie den nötigen Kontext für die Auslösung der Aktivität oder Aktion durch den Auslöserbegriff. Die Voice Action kann dann so für die Anwendung ausgerollt werden, dass die Voice Action eine freigegebene Voice Action für die Anwendung wird, ohne dass weitere Änderungen am Anwendungscode vorgenommen werden, um die Voice Action zu unterstützen.
  • Sobald die Voice Action ausgerollt ist, kann ein Benutzer, der ein Benutzergerät bedient, eine Spracheingabe vornehmen. Das Benutzergerät kann Kontextinformation für das Benutzergerät übermitteln, und die Kontextinformation und eine Transkription der Spracheingabe können genutzt werden, um eine Absicht zu identifizieren und die identifizierte Absicht auszulösen. Sobald die Absicht ausgelöst wird, werden Daten zur Ausführung der Aktivität oder Aktion bestimmt und an das Benutzergerät übertragen, um die Aktivität oder Aktion auf die Spracheingabe hin auszuführen.
  • Ein Anwendungsentwickler einer Mediaplayer-Anwendung kann beispielsweise eine neue Voice Action zum Springen zu einem nächsten Lied definieren, die den Auslöserbegriff „play next“ enthält. Der Anwendungsentwickler kann einen Kontext spezifizieren, in dem die Voice Action „play next“ freigegeben sein soll. Der Anwendungsentwickler kann beispielsweise spezifizieren, dass die Voice Action „play next“ den Mediaplayer nur dann dazu bringen soll, zum nächsten Lied zu springen, wenn die Mediaplayer-Anwendung im Vordergrund läuft und sich in einem Modus befindet, der die Mediaplayer-Anwendung dazu veranlasst, als Audioplayer zu funktionieren. Nachdem die Voice Action vom Anwendungsentwickler ausgerollt wurde, könnte ein Benutzer, der zuvor die Mediaplayer-Anwendung auf seinem Benutzergerät installiert hat, die Spracheingabe „play next“ vornehmen. Das Benutzergerät kann Kontextinformation übermitteln, die einen Status des Benutzergeräts oder von auf dem Benutzergerät installierten Anwendungen angibt, wie beispielsweise Kontextinformation, die angibt, dass die Mediaplayer-Anwendung im Vordergrund läuft und sich im Audioplayer-Modus befindet. Auf den Empfang der Spracheingabe „play next“ und der Information, die den Kontext spezifiziert, hin, können Daten an das Benutzergerät übertragen werden, die die Mediaplayer-Anwendung dazu bringen, zum nächsten Lied zu springen. Wenn im Gegensatz dazu die Spracheingabe als „play next“ bestimmt wird, die Kontextinformation aber anzeigt, dass eine Anwendung eines sozialen Netzwerks statt der Mediaplayer-Anwendung im Vordergrund des Benutzergeräts läuft, ist es möglich, dass die Spracheingabe „play next“ keinen Effekt hat, oder dazu führt, dass auf dem Benutzergerät eine andere Operation ausgeführt wird.
  • Innovative Aspekte des in dieser Spezifikation beschriebenen Gegenstands können in Verfahren ausgeführt sein, die die folgenden Aktionen beinhalten: Empfang von Daten über ein Voice-Action-System, die eine neue Voice Action für eine Software-Anwendung spezifizieren, die vom besagten Voice-Action-System verschieden ist, wobei die Daten eine oder mehrere Operationen zur Ausführung der neuen Voice Action sowie einen oder mehrere Auslöserbegriffe zur Auslösung der neuen Voice Action umfassen, Erstellung einer kontextuellen Voice-Action-Absicht für die Software-Anwendung durch das Voice-Action-System, die zumindest auf den empfangenen Daten beruht, wobei die kontextuelle Voice-Action-Absicht Daten umfasst, die, wenn sie von der Software-Anwendung empfangen werden, anfordern, dass die Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt, Verknüpfung der kontextuellen Voice-Action-Absicht mit dem einen oder den mehreren Aulöserbegriffen für die neue Voice Action durch das Voice-Action-System, wobei das Voice-Action-System dazu konfiguriert ist: eine Angabe der Benutzeräußerung zu empfangen, die von einem Gerät erhalten wird, auf dem die Software-Anwendung installiert ist, festzustellen, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind und, auf die Feststellung hin, dem Gerät die kontextuelle Voice-Action-Absicht bereitzustellen und dadurch anzufordern, dass die Software-Anwendung, die auf dem Gerät installiert ist, die eine oder die mehreren Operationen der neuen Voice-Action ausführt.
  • Diese und andere Ausführungsformen können jeweils optional eine oder mehrere der folgenden Funktionen beinhalten. In verschiedenen Beispielen spezifizieren die empfangenen Daten einen Kontext, wobei der Kontext einen Gerätestatus oder einen Status der Software-Anwendung spezifiziert, bei deren Vorliegen die neue Voice Action freigegeben ist; der Kontext spezifiziert, dass die Software-Anwendung im Vordergrund eines Geräts läuft, auf dem die Software-Anwendung installiert ist; der Kontext spezifiziert, dass die Software-Anwendung im Hintergrund eines Geräts läuft, auf dem die Software-Anwendung installiert ist; der Kontext spezifiziert, dass die Software-Anwendung eine spezifische Aktivität ausführt; der Kontext spezifiziert, dass eine von der Software-Anwendung ausgeführte spezifische Aktivität sich in einem bestimmten Aktivitätszustand befindet.
  • In anderen Beispielen können diese und andere Ausführungsformen jeweils optional Funktionen enthalten, umfassend: Verknüpfung der kontextuellen Voice-Action-Absicht mit dem Kontext für die neue Voice Action, Empfang von Kontextinformation durch das Voice-Action-System, die einen Status eines bestimmten Geräts, auf dem die Software-Anwendung installiert ist, oder der Software-Anwendung, die auf dem bestimmten Gerät installiert ist, angibt, Feststellung, dass die Kontextinformation die Kontextanforderungen für die neue Voice Action erfüllt, und auf die Feststellung hin, dass eine Transkription einer vom bestimmten Gerät erhaltenen Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind, und dass die Kontextinformation die Kontextanforderungen erfüllt, die mit der kontextuellen Voice-Action-Absicht verknüpft sind, Bereitstellung der kontextuellen Voice-Action-Absicht durch das Voice-Action-System an das bestimmte Gerät, und dadurch die Anfrage, dass die Software-Anwendung, die auf dem bestimmten Gerät installiert ist, die eine oder die mehreren Operationen der neuen Voice Action ausführt; Empfang der Kontextinformation, die den Status des bestimmten Geräts oder der Software-Anwendung, die auf dem bestimmten Gerät installiert ist, angibt, umfasst: Stellung einer Anfrage nach bestimmter Kontextinformation durch das Voice-Action-System an das bestimmte Gerät und Empfang der bestimmten Kontextinformation auf die Anfrage hin.
  • In weiteren Beispielen können diese und andere Ausführungsformen jeweils eine oder mehrere Funktionen beinhalten, umfassend: Feststellung, dass die Kontextinformation die Kontextanforderungen für eine zweite Voice Action erfüllt, und dass eine Transkription einer vom bestimmten Gerät erhaltenen Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit einer Absicht für die zweite Voice Action verknüpft sind, wobei die Absicht für die zweite Voice Action eine oder mehrere Operationen zur Ausführung der zweiten Voice Action spezifiziert, auf die Feststellung hin, Auswahl einer Voice Action zwischen der neuen Voice Action und der zweiten Voice Action und Bereitstellung der Absicht, die mit der ausgewählten Voice Action verknüpft ist, durch das Voice-Action-System an das bestimmte Gerät und dadurch die Anfrage, dass die Software-Anwendung, die auf dem bestimmten Gerät installiert ist, die eine oder die mehreren Operationen der ausgewählten Voice Action ausführt, Auswahl der ausgewählten Voice Action zwischen der neuen Voice Action und der zweiten Voice Action umfasst die Auswahl der ausgewählten Voice Action auf den Empfang von Daten hin, die eine Benutzerauswahl zwischen der neuen Voice Action und der zweiten Voice Action angeben; die Auswahl der ausgewählten Voice Action zwischen der neuen Voice Action und der zweiten Voice Action umfasst: Zuweisung eines Werts für sowohl die neue Voice Action als auch die zweite Voice Action und die Auswahl der ausgewählten Voice Action zumindest auf Grundlage des Werts, der jeweils der neuen Voice Action und der zweiten Voice Action zugewiesen wurde; die Auswahl der ausgewählten Voice Action zwischen der neuen Voice Action und der zweiten Voice Action umfasst die Auswahl der ausgewählten Voice Action auf die Feststellung hin, dass die Software-Anwendung, die mit der ausgewählten Voice Action verknüpft ist, im Vordergrund läuft.
  • In anderen Beispielen können diese und andere Ausführungsformen jeweils eine oder mehrere Funktionen beinhalten, umfassend: Erstellung der kontextuellen Voice-Action-Absicht für die die Software-Anwendung umfasst die Feststellung, dass die eine oder die mehreren Operationen der neuen Voice Action von der Software-Anwendung ausführbar sind; Feststellung, dass eine Transkription einer Benutzeräußerung, die von einem bestimmten Gerät erhalten wird, auf dem die Software-Anwendung installiert ist, Ähnlichkeit mit dem einen oder den mehreren Auslöserbegriffen aufweist, die mit der kontextuellen Voice-Action-Absicht verknüpft sind, auf die Feststellung hin, Bereitstellung von Daten durch das Voice-Action-System an das bestimmte Gerät, die eine Anfrage nach Benutzereingaben angeben, die bestätigen, ob die Benutzeräußerung den einen oder die mehreren Auslöserbegriffe spezifiziert haben oder das Ziel hatten, die Software-Anwendung dazu zu veranlassen, die neue Voice Action auszuführen, auf die Anfrage hin, Empfang, durch das Voice-Action-System vom bestimmten Gerät, von Daten, die eine Bestätigung angeben und auf den Empfang der Daten hin, die die Bestätigung angeben, Bereitstellung, durch das Voice-Action-System an das bestimmte Gerät, der kontextuellen Voice-Action-Absicht, und dadurch die Anfrage, dass die Software-Anwendung, die auf dem bestimmten Gerät installiert ist, die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  • In anderen Beispielen können diese und andere Ausführungsformen jeweils eine oder mehrere Funktionen beinhalten, umfassend: Empfang, durch das Voice-Action-System von einem mit der Software-Anwendung verbundenen Entwickler, einer Anfrage, die neue Voice Action für die Software-Anwendung auszurollen, und auf die Anfrage hin, Ausrollen der neuen Voice Action für die Software-Anwendung auf die Anfrage hin, wobei das Ausrollen der neuen Voice Action für die Software-Anwendung die neue Voice Action für die Software-Anwendung aktiviert; Empfang, durch das Voice-Action-System von einem mit der Software-Anwendung verbundenen Entwickler, einer Anfrage, das Ausrollen der neuen Voice Action für die Software-Anwendung rückgängig zu machen, und auf die Anfrage hin, Rückgängigmachen des Ausrollens der neuen Voice Action für die Software-Anwendung auf die Anfrage hin, wobei das Rückgängigmachen des Ausrollens der neuen Voice Action die neue Voice Action für die Software-Anwendung deaktiviert.
  • In anderen Beispielen können diese und andere Ausführungsformen jeweils eine oder mehrere Funktionen beinhalten, umfassend: Empfang, durch das Voice-Action-System von einem mit der Software-Anwendung verbundenen Entwickler, einer Anfrage, eine Erprobung der neuen Voice Action freizugeben, wobei die Anfrage ein oder mehrere Geräte spezifiziert, für die die neue Voice Action aktiviert werden soll, und auf die Anfrage hin, Aktivierung der neuen Voice Action für das eine oder die mehreren spezifizierten Geräte, wobei die neue Voice Action für Geräte, die nicht in den spezifizierten Geräten enthalten sind, deaktiviert ist; Empfang, durch das Voice-Action-System, einer Angabe einer Benutzeräußerung, die von einem bestimmten Gerät, auf dem die Software-Anwendung installiert ist, erhalten wird, Feststellung, durch das Voice-Action-System, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind, und, auf die Feststellung hin, Bereitstellung, durch das Voice-Action-System an das bestimmte Gerät, der kontextuellen Voice-Action-Absicht, und dadurch die Anfrage, dass die Software-Anwendung, die auf dem bestimmten Gerät installiert ist, die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  • Die Details einer oder mehrerer Ausführungsformen des Gegenstands, der in dieser Spezifikation beschrieben wird, werden in den beigefügten Zeichnungen und in der nachstehenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein beispielhaftes System für ein System und einen Dienst für die Voice-Action-Entwicklung.
  • 2 zeigt ein beispielhaftes System zur Erstellung neuer Voice Actions unter Nutzung eines Systems und Dienstes für die Voice-Action-Entwicklung.
  • 3 zeigt ein beispielhaftes System zur Nutzung von Voice Actions.
  • 4 ist ein Flussdiagramm eines beispielhaften Prozesses, der mit einem System und Dienst für die Voice-Action-Entwicklung verknüpft ist.
  • Gleiche Bezugszeichen in unterschiedlichen Zeichnungen geben gleiche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • 1 veranschaulicht ein Beispiel für ein Voice-Action-System 100. Voice-Action-System 100 bietet eine Plattform und einen Dienst, durch die ein Anwendungsentwickler neue Voice Actions für eine Anwendung, die zuvor auf den Geräten anderer Benutzer installiert worden ist, anlegen kann. Danach können Benutzer der Anwendung, die die Anwendung auf ihren Geräten installiert haben, Sprachbefehle nutzen, um die Anwendung dazu zu bringen, eine spezifische Operation wie von der neuen Voice Action spezifiziert auszuführen.
  • Voice-Action-System 100 empfängt Daten von den Terminals 102a102n, die neue Voice Actions definieren, die von den Anwendungsentwicklern 101a101n übermittelt werden, wobei die neuen Voice Actions für eine oder mehrere verschiedene Anwendungen vorgesehen sind. Voice-Action-System 100 kann feststellen, ob jede einzelnen neue Voice Action eine gültige Voice Action ist. Jede neue Voice Action, die als gültig bestimmt wird, kann eingefügt werden, um eine Absicht zu generieren, die der neuen Voice Action entspricht, und die Absicht, die der neuen Voice Action entspricht, kann in einer Anwendungs-Voice-Action-Datenbank 110 des Voice-Action-Systems 100 gespeichert werden.
  • Voice-Action-System 100 kann beispielsweise eine Validierungsengine besitzen, die die Daten, die die neue Voice Action definieren, empfängt und validiert. Die Validierung der Daten kann die Feststellung beinhalten, dass das Format der Daten, die die Voice Action definieren die Anforderungen erfüllt, dass die neue Voice Action mit der spezifizierten Anwendung kompatibel ist oder dass eine Voice Action auf Grundlage der vom Anwendungsentwickler 101a101n empfangenen Daten angelegt werden kann. Eine Kennzeichnungsengine des Voice-Action-Systems 100 kann die validierten Daten empfangen, die die neue Voice Action definieren und kann die Daten einfügen, um die der neuen Voice Action entsprechende Absicht zu erstellen. Die Absicht kann dann in der Anwendungs-Voice-Action-Datenbank 110 gespeichert werden.
  • Die Anwendungs-Voice-Action-Datenbank 110 kann Voice Actions speichern, die Aktivitäten oder Aktionen betreffen, die innerhalb zahlreicher verschiedener Software-Anwendung ausgeführt werden können. Die Voice Actions, die in der Anwendungs-Voice-Action-Datenbank 110 enthalten sind, können sowohl eingebaute Voice Actions beinhalten, die von Anwendungsentwicklern 101a101n während der Erstellung der Anwendung eingefügt wurden, als auch Voice Actions, die von Anwendungsentwicklern 101a101n nach der Erstellung der Anwendung für von der Anwendung unterstützte Operationen eingefügt wurden.
  • Die Voice Actions können auch anwendungsspezifische Voice Actions beinhalten, die standardmäßig vom Betriebssystem unterstützt werden. Diese vorunterstützten Voice Actions können Voice Actions sein, die in Anwendungen implementierbar sind, ohne von einem Anwendungsentwickler 101a101n in das Voice-Action-System 100 eingefügt werden zu müssen. Beispielsweise kann die Voice Action „Anwendung verlassen“, um eine im Vordergrund laufende Aufgabe oder Aktivität zu verlassen, für jedwede Anwendung automatisch verfügbar sein und kann für jede Anwendung in der Anwendungs-Voice-Action-Datenbank 110 enthalten sein, ohne dass ein Anwendungsentwickler 101a101n Information in das Voice-Action-System 100 einfügen muss, um die Voice Action „Anwendung verlassen“ zu definieren.
  • Zusätzlich zur Anwendungs-Voice-Action-Datenbank 110, kann das Voice-Action-System 100 eine Betriebssystem(OS)-Voice-Action-Datenbank 120 beinhalten, die Voice Actions speichert, die nicht mit einer bestimmten Anwendung oder einem bestimmten Kontext verknüpft sind. Eine Voice Action „Telefon sperren“, die ein Gerät in einen gesperrten Zustand versetzt, kann beispielsweise eine Voice Action sein, die in der OS-Voice-Action-Datenbank 120 als Voice Action spezifiziert ist, die nicht mit einer bestimmten Anwendung verknüpft ist oder die universell zugänglich ist, d. h. unabhängig vom Status eines Geräts, wenn die „Gerät sperren“-Voice-Action festgestellt wird. Im Allgemeinen sind die in der OS-Voice-Action-Datenbank 120 gespeicherten Voice Actions Voice Actions, die nicht auf Grundlage von Anwendungsentwicklern 101a101n definierten Voice-Actions erstellt werden, da die in der OS-Voice-Action-Datenbank 120 gespeicherten Voice Actions typisch für eine Betriebsumgebung eines Benutzergeräts sind und nicht für irgendeine bestimmte Anwendung, die von dritten Anwendungsentwicklern 101a101n erstellt wurde.
  • Voice-Action-System 100 gibt einem Benutzer 105, der sich im Besitz eines Benutzergeräts 104 befindet, die Möglichkeit, Spracheingaben an seinem Benutzergerät 104 vorzunehmen, um die Ausführung von Aktionen durch das Benutzergerät 104 oder durch Anwendungen, die auf seinem Benutzergerät 104 betrieben werden, auszulösen. Benutzer 105, der sich im Besitz eines Benutzergeräts 104 befindet, betreibt beispielsweise eine Mediaplayer-Anwendung auf seinem Benutzergerät 104 und nimmt die Spracheingabe „play next“ vor, während der Mediaplayer im Vordergrund des Benutzergeräts 104 läuft.
  • Audiodaten, die der Spracheingabe und der Kontextinformation entsprechen, die einen Status des Benutzergeräts 104 spezifiziert, inklusive des Status von Anwendungen, die auf dem Benutzergerät 104 laufen, werden an das Voice-Action-System 100 übertragen. Insbesondere für das gezeigte Beispiel in 1, werden die Audiodaten, die der Spracheingabe „play next“ entsprechen, von einer Spracherkennungsengine 130 des Voice-Action-Systems 100 empfangen, und die Kontextinformation, die den Status des Benutzergeräts 104 angibt, wird von einer Kontextanalyse-Engine 140 des Voice-Action-Systems 100 empfangen. Die Kontextinformation kann angeben, dass die Mediaplayer-Anwendung im Vordergrund des Benutzergeräts 104 läuft, dass die Mediaplayer-Anwendung sich derzeit im Audioplayer-Modus befindet, und kann andere Informationen zum Status des Benutzergeräts 104 und von Anwendungen, die auf dem Benutzergerät 104 installiert sind, angeben.
  • Die Spracherkennungsengine 130 empfängt die Audiodaten, die der Spracheingabe entsprechen, erstellt eine Transkription der Spracheingabe und stellt die Transkription der Spracheingabe dem Voice-Action-Selektor 150 bereit. Die Kontextanalyse-Engine 140 empfängt die Kontextinformation vom Benutzergerät 104 und verarbeitet die Kontextinformation, um relevante Kontextinformation zu bestimmen. Kontextanalyse-Engine 140 kann beispielsweise die Kontextinformation analysieren, um Anwendungen, die auf dem Benutzergerät 104 installiert sind, zu identifizieren, und Metadaten, die mit jeder dieser Anwendungen verknüpft sind, können verfügbare Voice Actions für die Anwendung spezifizieren, sowie Kontextinformation, die relevant für die Feststellung ist, welche der Voice Actions für einen gegebenen Gerätestatus aktiviert werden können. In einigen Fällen kann die Kontextanalyse-Engine 140 auf Grundlage der Analyse feststellen, dass zusätzliche Kontextinformation nötig ist um zu identifizieren, welche Voice Actions für einen bestimmten Status des Benutzergeräts 104 aktiviert sein sollten, wodurch die Kontextanalyse-Engine 140 zusätzliche Kontextinformation vom Benutzergerät 104 anfordern kann. Die Kontextanalyse-Engine 140 leitet die verarbeitete Kontextinformation an den Voice-Action-Selektor 150 weiter.
  • Wie zum Beispiel in 1, kann die Spracherkennungsengine 130 die Audiodaten empfangen, die der Spracheingabe „play next“ entsprechen und kann eine Transkription der Spracheingabe erhalten. Die Kontextanalyse-Engine 140 empfängt Kontextinformation vom Benutzergerät 104, die angibt, dass die Mediaplayer-Anwendung im Vordergrund läuft, dass die Mediaplayer-Anwendung in einem Audioplayer-Modus läuft, und die andere Informationen zum Benutzergerät 104 spezifiziert. Die Kontextinformation kann z. B. auch angeben, dass eine Anwendung eines sozialen Netzwerks im Hintergrund des Benutzergeräts 104 läuft, und dass die Batterieladung des Benutzergeräts 104 derzeit 50% beträgt. Die Kontextanalyse-Engine 150 kann Information erhalten, die angibt, dass auf dem Benutzergerät 104 sowohl der Mediaplayer als auch Anwendungen von sozialen Netzwerken installiert sind, und kann auf Grundlage von Kontextinformation, die einen Batterieladestatus des Geräts angibt, bestimmen, dass weder die Mediaplayer-Anwendung noch die Anwendungen von sozialen Netzwerken Voice Actions zulassen. Deshalb kann die Kontextanalyse-Engine 140 die Kontextinformation filtern, um nur anzugeben, dass die Mediaplayer-Anwendung im Vordergrund des Benutzergeräts 104 läuft, dass die Mediaplayer-Anwendung sich in einem Audioplayer-Modus befindet und dass die Anwendung des sozialen Netzwerks im Hintergrund des Benutzergeräts 104 läuft. Die gefilterte Kontextinformation und die Transkription der Spracheingabe „play next“ können dann dem Voice-Action-Selektor 150 bereitgestellt werden.
  • Voice-Action-Selektor 150 empfängt die Transkription der Spracheingabe von der Spracherkennungsengine 130 und einen Kontext von der Kontextanalyse-Engine 140, der verarbeitete Kontextinformation beinhaltet. Voice-Action-Selektor 150 nutzt die Transkription und den Kontext, um eine bestimmte Absicht zu identifizieren, die mit einer bestimmten Voice Action verknüpft ist, die auf dem Benutzergerät 104 auszulösen ist. Voice-Action-Selektor 150 kann z. B. auf die Anwendungs-Voice-Action-Datenbank 110 und auf die OS-Voice-Action-Datenbank 120 zugreifen, um einen Satz von möglichen Voice Actions zu identifizieren, die für den gegenwärtigen Kontext des Benutzergeräts 104 verfügbar sind. Die Identifizierung des Satzes von möglichen Voice Actions, kann die Identifizierung eines Satzes von Absichten beinhalten, die in der Anwendungs-Voice-Action-Datenbank 110 oder der OS-Voice-Action-Datenbank 120 gespeichert sind und die Kontexte spezifizieren, die mit dem vom Voice-Action-Selektor 150 erhaltenen Kontext übereinstimmen.
  • Sobald der Satz von möglichen Voice Actions, die für den gegenwärtigen Kontext verfügbar sind, identifiziert ist, kann der Voice-Action-Selektor 150 die Transkription der Spracheingabe mit einem oder mehreren Auslösersätzen vergleichen, die jeweils mit den verfügbaren Voice Actions verknüpft sind. Im Allgemeinen kann ein Auslösersatz einen oder mehrere Auslöserbegriffe beinhalten und operiert als Kennung für eine Voice Action, dergestalt dass die Erkennung des einen oder der mehreren Begriffe eines bestimmten Auslösersatzes zur Identifizierung und Auslösung der Voice Action führt, die dem bestimmten Auslösersatz entspricht. Voice-Action-Selektor 150 kann beispielsweise die Transkription mit entsprechenden Auslösersätzen vergleichen, die mit den Absichten der verfügbaren Voice Actions verknüpft sind. Voice-Action-Selektor 150 identifiziert eine bestimmte Absicht für eine bestimmte Voice Action auf Grundlage der Feststellung, dass die Transkription mit einem Auslöserbegriff übereinstimmt, der von der Absicht, die mit der bestimmten Voice Action verknüpft ist, spezifiziert wird.
  • Voice-Action-Selektor 150 kann z. B. die Transkription der Spracheingabe „play next“ und den Kontext für das Benutzergerät 104 empfangen und kann den empfangenen Kontext dazu nutzen, mögliche Voice Actions zu identifizieren, die auf dem Benutzergerät 104 initiierbar sind, d. h. Voice Actions, die auf dem Benutzergerät 104 auf Grundlage des gegenwärtigen Status des Benutzergeräts 104 initiiert werden können. Nach der Bestimmung des Satzes von möglichen Voice Actions für den Kontext des Benutzergeräts 104 vergleicht der Voice-Action-Selektor 150 die Transkription der Spracheingabe „play next“ mit Auslösersätzen, die von den Absichten der möglichen Voice Actions spezifiziert werden. Voice-Action-Selektor 150 kann feststellen, dass die Transkription „play next“ mit dem Auslösersatz übereinstimmt, der von der Absicht der „play next“-Voice-Action für die Mediaplayer-Anwendung spezifiziert wird.
  • Eine Transkription wird aufgrund der Feststellung, dass zumindest ein Teil der Transkription mit einem oder mehreren Begriffen des Auslösersatzes übereinstimmt, als mit einem Auslösersatz übereinstimmend identifiziert. Eine Übereinstimmung zwischen einer Transkription und einem Auslösersatz kann beispielsweise auf Grundlage dessen identifiziert werden, dass jeder der Begriffe der Transkription mit jedem der Begriffe des Auslösersatzes übereinstimmen. In einigen Implementierungen kann eine Übereinstimmung auf Grundlage der Feststellung identifiziert werden, dass weniger als alle Begriffe der Transkription mit Begriffen des Auslösersatzes übereinstimmen. Eine Transkription kann beispielsweise auch dann mit einem Auslösersatz übereinstimmen, wenn einige der Begriffe des Auslösersatzes in der Transkription abwesend sind, wenn die Transkription im Vergleich zum Auslösersatz zusätzliche Begriffe enthält oder wenn einer oder mehrere der Begriffe der Transkription sich von Begriffen des Auslösersatzes unterscheiden. Somit kann jedwede der Transkriptionen „neue E-Mail“, „neue E-Mail senden“ oder „ jetzt neue E-Mail öffnen“ als mit dem Auslösersatz „neue E-Mail öffnen“ übereinstimmend identifiziert werden, obwohl keine der Transkriptionen exakt mit dem Auslösersatz übereinstimmt. In einigen Fällen kann eine Transkription als mit einem Auslösersatz übereinstimmend identifiziert werden, wenn die Transkription einige oder alle Begriffe aus dem Auslösersatz in einer anderen Reihenfolge enthält als derjenigen, die vom Auslösersatz vorgegeben wird. Die Transkription „Sperrung Telefon“ kann beispielsweise als mit dem Auslösersatz „Telefon Sperrung“ übereinstimmend identifiziert werden. In einigen Fällen kann eine Transkription auf Grundlage der Feststellung als mit einem Auslösersatz übereinstimmend identifiziert werden, dass die Transkription eines oder mehrere Synonyme oder alternative Begriffe für Begriffe des Auslösersatzes beinhaltet. Somit können die Transkriptionen „neue E-Mail verfassen“ oder „neue E-Mail öffnen“ als mit dem Auslösersatz „neue E-Mail schreiben“ übereinstimmend identifiziert werden, basierend darauf, dass „verfassen“ ein Synonym von „schreiben“, und „öffnen“ ein identifizierter alternativer Begriff für „schreiben“ ist.
  • Sobald die bestimmte Voice Action identifiziert ist, stellt der Voice-Action-Selektor 150 dem Benutzergerät 104 aktionsauslösende Daten bereit, die die Initiierung der Aktivität oder Aktion, die mit der bestimmten Voice Action verknüpft ist, hervorrufen. Zu diesem Zweck kann der Voice-Action-Selektor 150 Information zur Steuerung des Benutzergeräts 104 erhalten, um die Aktion oder Aktivität, die mit der ausgewählten Voice Action verknüpft ist, auszuführen. In einigen Fällen kann die Steuerung des Benutzergeräts 104 zur Ausführung der Aktion oder Aktivität, die mit der ausgewählten Voice Action verknüpft ist, das Senden einer Absicht der ausgewählten Voice Action beinhalten. Das Senden der Absicht der ausgewählten Voice Action kann dazu führen, dass Information für die Initiierung der Aktivität oder Aktion, die mit der ausgewählten Voice Action verknüpft ist, dem Benutzergerät 104 bereitgestellt wird.
  • Die Absicht für die ausgewählte Voice Action kann beispielsweise Daten beinhalten, die die Ausführung von Aktionen oder Aktivitäten, die mit der Voice Action verknüpft sind, durch die mit der Voice Action verknüpfte Anwendung herbeiführen. Die ausgewählte Absicht kann an das Benutzergerät 104 übertragen werden, dergestalt dass der Empfang der Absicht durch das Benutzergerät 104 als Anfrage agieren kann oder die Ausführung der Aktionen oder Aktivitäten, die mit der Voice Action verknüpft sind, auslösen kann. Alternativ dazu kann der Voice-Action-Selektor 150 andere Daten dazu bestimmen, als Aktionsauslöserdaten zu operieren, die die ausgewählte Voice Action dazu bringen, auf dem Benutzergerät 104 ausgeführt zu werden und die Information an das Benutzergerät 104 zu übertragen. Eine Absicht kann beispielsweise lediglich die Aktionen oder Aktivitäten definieren, die durch das Benutzergerät 104 auszuführen sind, um die Voice Action auszuführen, und der Voice-Action-Selektor 150 kann aktionsauslösende Daten bestimmen, die die Anwendung auf dem Benutzergerät 104 steuern können, um die Aktionen und Aktivitäten, die mit der Voice Action verknüpft sind, auszuführen. Die bestimmten aktionsauslösenden Daten können so auf das Benutzergerät 104 übertragen werden, dass die aktionsauslösenden Daten die Ausführung der Aktionen oder Aktivitäten herbeiführen, die mit der Voice Action verknüpft sind.
  • Nach der Auswahl der „play next“-Voice-Action aus dem Satz von möglichen Voice Actions überträgt der Voice-Action-Selektor 150 beispielsweise die Absicht für die „play next“-Voice-Action an das Benutzergerät 104 oder erhält andere Informationen zur Steuerung der Mediaplayer-Anwendung, die auf dem Benutzergerät 104 läuft, um zum nächsten Lied zu springen. Voice-Action-Selektor 150 überträgt die Daten zur Steuerung der Mediaplayer-Anwendung zum Springen zum nächsten Lied an das Benutzergerät 104, welches wiederum einen Prozess zum Springen zum nächsten Lied für die Mediaplayer-Anwendung auf dem Benutzergerät 104 initiiert, beispielsweise zum Springen zum Lied „Fame“ von David Bowie.
  • Kurz gefasst, wie besprochen, beinhaltet das System aus 1 eines oder mehrere Terminals 102a102n, die einem oder mehreren Anwendungsentwicklern 101a101n entsprechen. Terminals 102a102n können jeweils mit dem Voice-Action-System 100 kommunizieren, beispielsweise über ein oder mehrere kabelbasierte oder drahtlose Netzwerke. Jedes der Terminals 102a102n kann ein Mobilgerät sein, wie beispielsweise ein Mobiltelefon, Smartphone, Tablet-Computer, Laptop-Computer, Personal Digital Assistant (PDA), Netbook-Computer oder ein anderes mobiles Computergerät, oder es kann jedwedes stationäre Computergerät sein, so wie Desktopcomputer oder andere stationäre Computer. Ein mit einem Benutzer 105 verknüpftes Benutzergerät 104 kann auch über ein oder mehrere kabelbasierte oder drahtlose Netzwerke mit dem Voice-Action-System 100 in Kommunikation stehen, wobei das Benutzergerät 104 auch ein mobiles oder stationäres Computergerät sein kann, so wie ein Mobiltelefon, Smartphone, Tablet-Computer, Netbook, PDA, Laptop-Computer, Desktopcomputer oder ein anderes Computergerät.
  • Das beispielhafte Voice-Action-System 100 aus 1 beinhaltet eine Anwendungs-Voice-Action-Datenbank 110, eine OS-Voice-Action-Datenbank 120, eine Spracherkennungsengine 130, eine Kontextanalyse-Engine 140 und einen Voice-Action-Selektor 150. Jede der Komponenten des Voice-Action-Systems 100, inklusive der Anwendungs-Voice-Action-Datenbank 110, der OS-Voice-Action-Datenbank 120, der Spracherkennungsengine 130, der Kontextanalyse-Engine 140 und des Voice-Action-Selektors 150, kann mit einer oder mehreren Komponenten des Voice-Action-Systems 100 über einen oder mehrere kabelbasierte oder drahtlose Datenwege, die den Austausch elektronischer Kommunikation ermöglichen, in Kommunikation stehen. In einigen Implementierungen können eine oder mehrere Komponenten des Voice-Action-Systems 100 so kombiniert sein, dass ihre Funktionen von einer einzigen Komponente ausgeführt werden oder können von zwei oder mehr Komponenten dargestellt werden, so dass ihre Funktionen sich unter den zwei oder mehr Komponenten aufteilen. Die Komponenten des Voice-Action-Systems 100 können auf einem einzelnen Computergerät implementiert sein oder sie können auf mehreren Computergeräten implementiert sein, die miteinander über einen oder mehrere kabelbasierte oder drahtlose Datenwege in Kommunikation stehen, die den Austausch von elektronischer Kommunikation zwischen den Komponenten ermöglichen.
  • 2 veranschaulicht ein beispielhaftes System, dass es einem Anwendungsentwickler ermöglicht, neue Voice Actions für eine Anwendung zu erstellen, die auf einem oder mehreren Benutzergeräten installiert ist. Beispielsweise kann der Anwendungsentwickler, nachdem eine Anwendung veröffentlicht und auf eines oder mehrere Benutzergeräte heruntergeladen worden ist, unter Nutzung eines Voice-Action-Entwicklungsdienstes eine neue Voice Action definieren. Der Voice-Action- Entwicklungsdienst kann die neue Voice Action ausrollen, um die neue Voice Action für die Anwendung zu aktivieren, ohne dass dazu Modifikationen an der Anwendung selbst nötig wären.
  • Kurz gefasst, 2 zeigt ein Entwickler-Voice-Action-System 200, das Voice-Action-Entwicklungsdienste für einen Anwendungsentwickler 201 bietet, der mit einem Terminal 202 verknüpft ist. Terminal 202 kann mit dem Entwickler-Voice-Action-System 200 über eine oder mehrere kabelbasierte oder drahtlose Netzwerkverbindungen in Kommunikation stehen, wie z. B. eine kabelbasierte oder drahtlose Internetverbindung, die das Terminal 202 in die Lage versetzt, elektronische Kommunikation mit dem Entwickler-Voice-Action-System 200 auszutauschen. Entwickler-Voice-Action-System 200 beinhaltet eine Validierungsengine 210, die mit einer Validierungskriterien-Datenbank 215 in Kommunikation steht. Entwickler-Voice-Action-System 200 beinhaltet des Weiteren eine Grammatikinduktions-Engine 220, die mit einem Anwendungsmetadaten-Backend 225 und einer Anwendungs-Voice-Action-Datenbank 230 in Kommunikation steht. Die Anwendungs-Voice-Action-Datenbank 230 ähnelt möglicherweise der Anwendungs-Voice-Action-Datenbank 110 aus 1 und kann Absichten speichern, die aus Grammatiken erstellt werden, die von Anwendungsentwicklern eingegeben werden, um neue Voice Actions für Anwendungen zu definieren oder die auf Information basieren, die von Anwendungsentwicklern eingegeben wird und neue Voice Actions definiert. In einigen Implementierungen ist das Entwickler-Voice-Action-System 200, das den Dienst bereitstellt, mit dem Anwendungsentwickler neue Voice Actions anlegen, möglicherweise ein Teil des Voice-Action-Systems 100 aus 1. In einigen Implementierungen können von Komponenten des Entwickler-Voice-Action-Systems 200 ausgeführte Operationen von verschiedenen Komponenten des Entwickler-Voice-Action-Systems 200 ausgeführt werden. Entwickler-Voice-Action-System 200 kann mehr, weniger oder andere Komponenten umfassen, um die Operationen auszuführen, die als vom Entwickler-Voice-Action-System 200 ausgeführt beschrieben werden.
  • Wie gezeigt in 2, kann der Anwendungsentwickler 201 unter Nutzung des Terminals 202 Information in das Entwickler-Voice-Action-System 200 einfügen, die eine neue Voice Action definiert. Der Terminal 202 kann beispielsweise eine Anwendung für einen Entwickler-Voice-Action-Dienst beinhalten oder der Terminal 202 kann in der Lage sein, auf den Entwickler-Voice-Action-Dienst über eine Netzwerkverbindung fernzuzugreifen, beispielsweise indem auf einer Website über das Internet auf den Entwickler-Voice-Action-Dienst zugegriffen wird. In anderen Implementierungen kann der Entwickler-Voice-Action-Dienst von einem Entwickler-Voice-Action-System 200 dergestalt gehostet werden, dass das Terminal 202 über die Netzwerkverbindung zwischen Terminal 202 und Entwickler-Voice-Action-System 200 auf den Entwickler-Voice-Action-Dienst im Entwickler-Voice-Action-System 200 zugreifen kann.
  • Um eine neue Voice Action für eine bestimmte Anwendung zu implementieren, kann der Anwendungsentwickler 201 eine neue Grammatik in das Entwickler-Voice-Action-System 200 einfügen, die die neue Voice Action definiert, oder er kann andere Informationen einfügen, die die neue Voice Action für das Entwickler-Voice-Action-System 200 definieren. Im Beispiel, dargestellt in 2, definiert der Anwendungsentwickler 201, um eine neue Voice Action zu implementieren, zunächst eine neue Voice Action für eine Mediaplayer-Anwendung, die bereits auf einem oder mehreren Benutzergeräten installiert ist. Zu diesem Zweck fügt der Anwendungsentwickler 201 eine Grammatik ein, die die neue Voice Action für die Mediaplayer-Anwendung definiert. Die vom Anwendungsentwickler 201 eingefügte Grammatik spezifiziert eine Anwendung, nämlich die Mediaplayer-Anwendung, einen Auslösersatz „play next“, der mit der neuen Voice Action zu verknüpfen ist, eine Aktion, die auf die Erkennung des Auslösersatzes „play next“ hin auszuführen ist, nämlich zum nächsten Lied zu springen, und einen Kontext für die Aktivierung der neuen Voice Action, nämlich dass die Mediaplayer-Anwendung im Vordergrund eines Benutzergeräts laufen muss und dass die Mediaplayer-Anwendung sich im Audioplayer-Modus befinden muss.
  • Die vom Anwendungsentwickler 201 eingefügte Grammatik kann ein spezifisches Format besitzen, dass es dem Anwendungsentwickler 201 ermöglicht, problemlos die neue Voice Action zu definieren, ohne mit einem spezifischen Datenformat, das vom Voice-Action-System 200 für Voice-Action-Absichten benutzt wird, vertraut zu sein. In anderen Implementierungen kann der Anwendungsentwickler 201 andere Informationen einfügen, die von der Validierungsengine 210 oder einer anderen Komponente des Entwickler-Voice-Action-Systems 200 empfangen und übersetzt werden können, um eine Grammatik zu erstellen, die die neue Voice Action definiert. Dem Anwendungsentwickler 201 kann beispielsweise ein Formular angezeigt werden, das Felder beinhaltet, die der Anwendungsentwickler 201 ausfüllen kann, um eine neue Voice Action zu definieren. Das Formular kann dem Anwendungsentwickler 201 die Möglichkeit geben, Information über die neue Voice Action zu spezifizieren, z. B. eine Anwendung, einen Auslösersatz für die neue Voice Action und eine Aktion oder Aktivität, die durch die Anwendung oder diese betreffend auf den Auslösersatz hin ausgeführt werden soll. Das Formular kann es dem Anwendungsentwickler 201 ermöglichen, einen Kontext anzugeben, der einen spezifischen Status eines Benutzergeräts oder von einer oder mehreren Anwendungen, die auf dem Benutzergerät laufen, erfordert, damit die neue Voice Action aktiviert wird, das heißt, damit die Voice Action eine mögliche Voice Action ist, die ein Benutzer durch Verwenden des Auslösersatzes auslösen kann. Andere Informationen, die nötig sind oder optional benutzt werden, um eine neue Voice Action zu definieren, können in das Formular eingegeben werden. Die Eingaben in den Feldern des Formulars, die vom Anwendungsentwickler 201 vorgenommen werden, können in eine Grammatik zur Eingabe in das Entwickler-Voice-Action-System 200 umgewandelt werden, oder die Eingaben können vom Entwickler-Voice-Action-System 200 empfangen werden und im Entwickler-Voice-Action-System 200 in eine Grammatik umgewandelt werden. Alternativ kann der Anwendungsentwickler 201 die neue Voice Action durch die Eingabe der nötigen Information unter Nutzung des Grammatikformats, das in das Voice-Action-Entwicklersystem 200 eingegeben wird, oder unter Nutzung eines anderen Formats, so wie eines Delimiter-Separated-Value (DSV)-Formats, definieren.
  • In einigen Implementierungen kann eine neue Voice Action dazu entwickelt werden, eine oder mehrere Operationen in einer Software-Anwendung, die auf einem Benutzergerät läuft, auszuführen, eine oder mehrere Operationen, die das Benutzergerät im Allgemeinen betreffen (d. h., die Hardware des Benutzergeräts zu steuern), eine Anwendung zu steuern, die extern zum Benutzergerät ist (d. h., eine Anwendung, die auf einem anderen Gerät läuft), oder um ein anderes Gerät zu steuern, das extern zum Benutzergerät ist. Der Anwendungsentwickler 201 kann beispielsweise eine Grammatik angeben, die eine neue Voice Action definiert, um eine spezifische Anwendung auf einem Benutzergerät zu steuern (z. B. eine Anwendung eines sozialen Netzwerks oder eine Mediaplayer-Anwendung), um das Benutzergerät zu steuern (z. B. um die Ausrichtung eines Bildschirms des Geräts zu ändern oder um das Gerät auszuschalten), um eine Anwendung zu steuern, die auf einem anderen Gerät läuft (z. B. um eine Kabelfernseh-Software zu steuern, die auf einem Kabelfernsehreceiver läuft, der extern zum Benutzergerät ist), oder um ein anderes Gerät zu steuern, das vom Benutzergerät getrennt ist (z. B. um ein Garagentor durch eine Spracheingabe zu steuern, die dem Benutzergerät bereitgestellt wird). In einigen Implementierungen kann eine Voice Action so definiert werden, dass die Auslösung der Voice Action zur Ausführung von zwei oder mehr Aktionen oder Aktivitäten führt, die in/auf zwei oder mehr verschiedenen Anwendungen oder Geräten ausgeführt werden.
  • Ein von einem Anwendungsentwickler 201 spezifizierter Kontext identifiziert eine oder mehrere Bedingungen, die erfüllt werden müssen, damit eine Voice Action aktiviert wird, d. h., so dass die Voice Action nicht von einem mit der Voice Action verknüpften Auslösersatz ausgelöst wird, solange der Kontext nicht auch erfüllt ist. Anwendungsentwickler 201 kann einen Kontext dazu definieren, eine oder mehrere verschiedene Anforderungen oder Bedingungen zu besitzen.
  • In einigen Fällen kann ein von einem Anwendungsentwickler 201 eingegebener Kontext einen Status oder Attribute eines Benutzergeräts spezifizieren, so wie ob das Benutzergerät eingeschaltet oder gesperrt ist, ob das Benutzergerät eine Kamera, ein Gyroskop, ein Barometer oder eine andere Komponente oder Funktion aufweist. Somit kann beispielsweise eine Voice Action zur Aufnahme eines Fotos unter Nutzung einer auf dem Benutzergerät installierten Anwendung möglicherweise nicht aktiviert sein, wenn vom Benutzergerät empfangene Kontextinformation angibt, dass das Benutzergerät keine Kamera besitzt.
  • In anderen Beispielen kann ein Kontext erfordern, dass spezifische Anwendungen im Vordergrund oder Hintergrund eines Benutzergeräts laufen. Wie beispielsweise gezeigt in 2, kann die „play next“-Voice-Action nur dann aktiviert sein, wenn die Mediaplayer-Anwendung im Vordergrund von Benutzergerät 204 läuft, aber nicht, wenn die Mediaplayer-Anwendung geschlossen ist oder im Hintergrund von Benutzergerät 204 läuft. In anderen Beispielen kann eine Voice Action mit einem Kontext definiert sein, der die Voice Action aktiviert, wenn eine Anwendung im Hintergrund läuft. Eine Anwendung eines sozialen Netzwerks kann beispielsweise eine verknüpfte Voice Action besitzen, um eine Anfrage zur Verbindung mit einem anderen Benutzer zu akzeptieren, und ein Benutzer kann in der Lage sein, die Voice Action zur Annahme der Anfrage, sich mit einem anderen Benutzer zu verbinden, auszulösen, auch wenn die Anwendung des sozialen Netzwerks nur im Hintergrund des Benutzergeräts läuft.
  • Ein Kontext kann zusätzlich oder alternativ erfordern, dass eine bestimmte Anwendung in einem bestimmten Modus läuft, damit eine Voice Action aktiviert wird. Ein Modus kann eine bestimmte Aktivität oder Aufgabe sein, die die Anwendung ausführt. Eine E-Mail-Anwendung kann beispielsweise darauf festgelegt sein, in einem Schreibmodus zu sein, eine Mediaplayer-Anwendung kann sich in einem Audioplayer-Modus befinden, oder eine Kameraanwendung kann sich in einem Kameramodus oder einem Bildbetrachtungsmodus für Fotoalben befinden. Das Benutzergerät kann in der Lage sein festzustellen, in welchem der Modi eine bestimmte Anwendung läuft und kann diese Information der Kontextinformation beifügen, die genutzt wird um zu bestimmen, ob eine bestimmte Voice Action aktiviert ist.
  • Zusätzlich kann ein Kontext in einigen Fällen erfordern, dass ein Anwendungsmodus einen gewissen Status besitzt. Ein Kontext kann beispielsweise angeben, dass eine Voice Action zum „Pausieren“ eines Films nur dann aktiviert ist, wenn eine Mediaplayer-Anwendung sich im Film-Abspielmodus befindet und wenn der Status der Anwendung im Film-Abspielmodus der ist, dass die Anwendung derzeit den Film abspielt. In einigen Fällen kann es sein, dass ein Benutzergerät nicht in der Lage ist, den Status einer Anwendung zu bestimmen, die in einem bestimmten Modus läuft. In diesen Fällen kann es notwendig sein, die Anwendung dazu zu konfigurieren, Information betreffend des Status der Anwendung in einem bestimmten Modus bereitzustellen. Somit kann die Spezifizierung einer solchen Bedingung in einem Kontext für eine bestimmte Anwendung Modifikationen an der Anwendung selbst erforderlich machen, damit die vom Benutzergerät bereitgestellte Kontextinformation die notwendige Statusinformation beinhaltet.
  • In einigen Beispielen kann ein für eine Voice Action spezifizierter Kontext erfordern, dass bestimmte Objekte oder Objekttypen auf einem Bildschirm eines Benutzergeräts dargestellt werden, damit die Voice Action aktiviert wird. Ein Kontext kann beispielsweise spezifizieren, dass eine „Bild speichern“-Voice-Action nur dann aktiviert ist, wenn ein Bild auf dem Display des Benutzergeräts ausgegeben wird, oder kann spezifizieren, dass eine „Markieren“-Voice-Action nur dann verfügbar ist, wenn auf dem Display Text angezeigt wird. In einem weiteren Beispiel kann eine Voice Action zur Auswahl eines bestimmten Listeneintrags, so wie die Voice Action „das erste auswählen“, nur dann verfügbar sein, wenn Kontextinformation angibt, dass eine Nummer „1“ oder ein Aufzählungszeichen auf dem Display des Benutzergeräts angezeigt wird, oder wenn eine Liste von Items auf dem Display angezeigt wird. In einigen Fällen kann es sein, dass das Benutzergerät nicht dazu in der Lage ist festzustellen, welche Information zu einem gegebenen Zeitpunkt auf seinem Display dargestellt wird, z.B. wenn eine Anwendung das Display steuert. Somit kann es, wenn ein Kontext spezifiziert, dass gewisse Informationen oder Informationstypen auf dem Display ausgegeben werden müssen, damit eine Voice Action aktiviert wird, notwendig sein, die Anwendung zu modifizieren, um diese Information bereitzustellen. Das Benutzergerät kann dann die Information, die angibt, was auf dem Display des Benutzergeräts ausgegeben wird, der Kontextinformation beifügen, die genutzt wird um festzustellen, ob eine spezifische Voice Action aktiviert sein sollte.
  • In anderen Fällen kann ein Kontext erfordern, dass eine Benachrichtigung oder ein bestimmter Typ von Benachrichtigung auf einem Benutzergerät ausgegeben wurde. Zum Beispiel kann eine E-Mail-Anwendung, die Benutzern Pop-up-Benachrichtigungen bereitstellt, wenn eine neue E-Mail empfangen wird, eine verknüpfte Voice Action „E-Mail lesen“ besitzen, die aktiviert ist, wenn eine neue E-Mail-Benachrichtigung von der Anwendung auf dem Display des Benutzergeräts ausgegeben wird. Somit kann die Kontextinformation angeben, ob eine Benachrichtigung auf dem Display des Benutzergeräts ausgegeben wird, und diese Information kann genutzt werden um festzustellen, ob die Voice Action „E-Mail lesen“ aktiviert sein sollte.
  • In einigen Beispielen kann ein Kontext erfordern, dass ein Benutzergerät sich an einem bestimmten geografischen Standort befindet, damit eine Voice Action aktiviert wird. Ein Benutzergerät kann dazu in der Lage sein, seinen geografischen Standort unter Nutzung von Mobilfunkmasten-Triangulation, auf Grundlage des Zugriffs auf eine Internetverbindung, die mit einem bestimmten geografischen Standort verknüpft ist, mit Hilfe von Global-Positioning-System(GPS)-Technologie oder mit anderen Mitteln zu bestimmen. Das Benutzergerät kann Information, die seinen geografischen Standort angibt, der Kontextinformation beifügen, und eine Voice Action kann auf Grundlage des geografischen Standorts aktiviert werden, wenn dieser die Standortbedingungen eines Kontextes erfüllt. Beispielsweise kann ein Kontext, der mit einer Voice Action für eine Einzelhändleranwendung verknüpft ist, spezifizieren, dass eine gewisse Voice Action nur dann verarbeitet werden sollte, wenn ein Benutzergerät, auf dem die Einzelhändleranwendung installiert ist, innerhalb der Reichweite eines der Geschäfte des Einzelhändlers ist. Die Voice Action für die Einzelhändleranwendung kann auf Grundlage von Kontextinformation vom Benutzergerät aktiviert werden, die angibt, dass der geografische Standort des Benutzergeräts einem geografischen Standort entspricht, der sich innerhalb der Reichweite eines der Geschäfte des Einzelhändlers befindet.
  • Ein von einem Anwendungsentwickler definierter Kontext kann auch angeben, dass eine Voice Action, die mit dem Kontext verknüpft ist, nur zu bestimmten Uhrzeiten, Daten, Monaten oder Jahreszeiten aktiviert ist, oder wenn andere zeitliche Bedingungen erfüllt sind. Ein Kontext kann beispielsweise spezifizieren, dass eine bestimmte Voice Action nur dann aktiviert ist, wenn die von einem Benutzergerät oder einer anderen Informationsquelle empfangene Kontextinformation eine zeitliche Bedingung erfüllt. Eine Voice Action für eine Banking-Anwendung kann beispielsweise mit einem Kontext verknüpft sein, der eine zeitliche Bedingung beinhaltet, dergestalt dass die Voice Action nur aktiviert wird, wenn Kontextinformation angibt, dass der Zeitpunkt der Eingabe der Voice Action zwischen 6:00 morgens und 10:00 abends liegt.
  • Ein Kontext kann andere Anforderungen für die Aktivierung einer Voice Action spezifizieren. Entwickler-Voice-Action-System 200 kann zum Beispiel Zugriff auf Information aus Quellen haben, die von einem Benutzergerät verschieden sind, oder kann in der Lage sein, Information von einem Benutzergerät zu empfangen, die aus einer oder mehreren Informationsquellen erhalten wurde. Die von den anderen Quellen empfangene Information kann erforderliche Kontextinformation für die Aktivierung einer Voice Action sein. Solche Information kann beispielsweise Wetterinformation, emotionale Information für einen Benutzer, Nachrichteninformation, Börseninformation oder andere Information beinhalten. Entwickler-Voice-Action-System 200 kann beispielsweise in der Lage sein, über eine oder mehrere kabelbasierte oder drahtlose Netzwerkverbindungen, z. B. eine Internetverbindung oder eine andere Netzwerkverbindung zu einem Serversystem, auf andere Informationsquellen zuzugreifen. Ein Kontext für eine Voice Action kann spezifizieren, dass die Voice Action nur dann aktiviert ist, wenn Wetterinformation für ein geografisches Gebiet, das dem Standort eines relevanten Benutzergeräts entspricht, angibt, dass es an diesem Standort regnet. Um zu überprüfen, ob die Kontextbedingung erfüllt ist, kann das Entwickler-Voice-Action-System 200 in der Lage sein, über die eine oder die mehreren Netzwerkverbindungen auf Wetterinformation für einen bekannten Standort eines Benutzergeräts zuzugreifen.
  • Die Grammatik oder andere Information, die die neue vom Anwendungsentwickler 201 eingegebene Voice Action definiert, kann über ein Netzwerk vom Terminal 202 aus an das Entwickler-Voice-Action-System 200 übermittelt werden. Die eingegebene Grammatik wird im Entwickler-Voice-Action-System 200 von der Validierungsengine 210 empfangen. Wenn der Anwendungsentwickler 201 Information in das Entwickler-Voice-Action-System 200 eingibt, die die Voice Action definiert, aber nicht im Grammatikformat ist, kann das Entwickler-Voice-Action-System 200 die Information, die die neue Voice Action definiert, in Grammatik umwandeln. Validierungsengine 210 analysiert die Grammatik um festzustellen, ob die eingegebene Grammatik in eine Absicht für eine neue Voice Action eingefügt werden kann. Die Validierungsengine 210 kann beispielsweise in der Lage sein festzustellen, ob ein von der Grammatik spezifizierter Auslösersatz ein gültiger Auslösersatz ist, kann feststellen, ob die von der Grammatik spezifizierte Aktivität von der spezifizierten Anwendung ausgeführt werden kann, kann feststellen, ob das Format der eingegebenen Grammatik syntaktisch gültig ist, kann feststellen, ob der von der Grammatik spezifizierte Kontext gültig ist oder kann anderweitig feststellen, ob die eingegebene Grammatik eine gültige Grammatik ist, die eingefügt werden kann, um eine Absicht für die neue Voice Action zu erstellen. Um die Validierung auszuführen, kann die Validierungsengine 210 auf eine Validierungskriterien-Datenbank 215 zugreifen, die Regeln beinhaltet, die benutzt werden, um die Grammatik zu validieren.
  • Die Validierungsengine 210 empfängt beispielsweise die Grammatik, die die neue Voice Action für die Mediaplayer-Anwendung spezifiziert. Die Grammatik spezifiziert den Auslösersatz „play next“, dass der Auslösersatz „play next“ die Mediaplayer-Anwendung dazu bringen soll, zu einem nächsten Lied zu springen, und einen Kontext, der spezifiziert, dass die neue Voice Action aktiviert sein soll, wenn die Mediaplayer-Anwendung im Vordergrund läuft und sich im Audioplayer-Modus befindet. Validierungsengine 210 kann in der Validierungskriterien-Datenbank 215 auf Validierungsregeln zugreifen und die empfangene Grammatik auf der Grundlage der Regeln validieren. Validierungsengine 210 kann beispielsweise feststellen, ob die Mediaplayer-Anwendung eine bestehende Anwendung ist, dergestalt dass neue Voice Actions für die spezifizierte Anwendung erstellt werden können. Validierungsengine 210 kann auf eine Regel zugreifen, die spezifiziert, dass ein Auslösersatz mehr als eine gesprochene Silbe lang sein muss, und kann den Auslösersatz „play next“ validieren, basierend darauf, dass der Auslösersatz „play next“ länger als eine gesprochene Silbe ist. Die Validierungsregeln können eine Liste von möglichen Aktionen spezifizieren, die die Mediaplayer-Anwendung ausführen kann, und kann die spezifizierte Aktion zum nächsten Lied zu springen validieren, basierend auf der Feststellung, dass das Springen zu einem nächsten Lied eine Operation ist, die die Validierungsengine 210 ausführen kann. Validierungsengine 210 kann den von der Grammatik spezifizierten Kontext validieren um sicherzustellen, dass der Kontext keine Widersprüche enthält. Die Validierungsengine kann beispielsweise sicherstellen, dass der spezifizierte Kontext es nicht erfordert, dass die Anwendung im Vordergrund läuft und auch im Hintergrund läuft, damit die neue Voice Action aktiviert wird, da nur eine dieser zwei Bedingungen erfüllt werden kann. Andere Validierungskriterien können auf eine empfangene Grammatik angewendet werden um festzustellen, ob die vom Anwendungsentwickler 201 eingefügte Grammatik gültig ist.
  • Andere Validierungsformen können von der Validierungsengine 210 ausgeführt werden. Validierungsengine 210 kann beispielsweise feststellen, ob der Anwendungsentwickler 201 autorisiert ist, neue Voice Actions für die spezifizierte Anwendung zu erstellen, kann feststellen, ob eine notwendige Gebühr zur Erstellung der neuen Voice Action bezahlt worden ist, oder kann anderweitig feststellen, ob eine von einem Anwendungsentwickler 201 eingefügte Grammatik in die Erstellung einer Absicht für die neue Voice Action münden kann.
  • Auf Grundlage des Ergebnisses der von der Validierungsengine 210 durchgeführten Validierung kann dem Anwendungsentwickler 201 Feedback gegeben werden, das angibt, ob die Grammatik gültig ist. Wenn Validierungsengine 210 feststellt, dass die Grammatik ungültig ist, kann Validierungsengine 210 das Terminal 202 dazu veranlassen, Information auszugeben, die angibt, dass die Grammatik ungültig ist, und die anfordert, dass der Anwendungsentwickler 201 die Grammatik korrigiert, oder kann auch Arten vorschlagen, auf die der Anwendungsentwickler 201 die Grammatik korrigieren kann. Wenn beispielsweise festgestellt wird, dass eine Grammatik ungültig ist, weil sie eine Aktion spezifiziert, die von der spezifizierten Anwendung nicht ausgeführt werden kann (z. B. wenn die Grammatik spezifiziert hat, dass die neue Voice Action die Mediaplayer-Anwendung dazu bringen soll, eine neue E-Mail zu öffnen), kann Validierungsengine 210 Information am Terminal 202 ausgeben lassen, die angibt, dass die Grammatik eine Aktion spezifiziert, die mit der spezifizierten Anwendung inkompatibel ist, und kann angeben, dass der Anwendungsentwickler 201 die Grammatik durch die Änderung der spezifizierten Aktion oder der spezifizierten Anwendung korrigieren kann. Wenn die eingefügte Grammatik gültig ist, kann die Validierungsengine 210 einen Hinweis bereitstellen, dass die eingefügte Grammatik gültig ist.
  • Zusätzlich kann die Validierungsengine 210 zusätzliche Eingaben vom Anwendungsentwickler 201 anfordern. Wenn beispielsweise festgestellt wird, dass die Grammatik gültig ist, kann die Validierungsengine 210 dem Anwendungsentwickler 201 die Option bieten, mit der Erstellung des Sprachbefehls fortzufahren, dergestalt dass keine Absicht für den neuen Sprachbefehl aus der Grammatik erstellt wird, solange der Anwendungsentwickler 201 nicht bestätigt, dass er mit der Erstellung des neuen Sprachbefehls fortfahren will. Dies kann einem Anwendungsentwickler 201 die Möglichkeit geben festzustellen, ob er Grammatiken richtig in das Entwickler-Voice-Action-System 200 eingibt, ohne mit der Grammatikinduktion oder dem Ausrollen der neuen Voice Action fortfahren zu müssen.
  • Auf Grundlage der Validierung der vom Anwendungsentwickler 201 übermittelten Grammatik und, optional, der Bereitstellung einer Eingabe durch den Anwendungsentwickler 201, die angibt, dass der Voice-Action-Erstellungsprozess fortgeführt werden soll, kann die Grammatik durch die Validierungsengine 210 der Grammatikinduktions-Engine 220 bereitgestellt werden. Die Grammatikinduktions-Engine 220 kann die empfangene Grammatik einfügen, um eine Absicht für die neue Voice Action zu erstellen. Die erstellte Absicht kann Information spezifizieren, die in der Grammatik enthalten ist, die die neue Voice Action definiert. Die Grammatikinduktions-Engine 220 kann eine empfangene Grammatik einfügen, um eine Instanz einer Absichts-Datenstruktur zu erstellen, die eines oder mehrere aus Anwendung, Auslösersatz, auf die Erkennung des Auslösersatz hin auszuführende Aktion oder Aktivität und für die neue Voice Action spezifiziertem Kontext spezifiziert. Grammatikinduktions-Engine 220 kann die Absicht für die neue Voice Action in der Anwendungs-Voice-Action-Datenbank 230 speichern.
  • Zum Beispiel, wie in 2, kann Grammatikinduktions-Engine 220 die vom Anwendungsentwickler 201 eingefügte Grammatik empfangen, die von der Validierungsengine 210 validiert worden ist. Grammatikinduktions-Engine 220 kann eine neue Absicht, „Absicht Y“ für die neue Voice Action auf Grundlage der empfangenen Grammatik erstellen. Um die Absicht zu erstellen, kann die Grammatikinduktions-Engine 220 eine neue Instanz einer Absichts-Datenstruktur erstellen, und die Absichts-Datenstruktur mit Information, die in der empfangenen Grammatik enthalten ist, bestücken, inklusive von Information, die die Mediaplayer-Anwendung spezifiziert, Information, die den Auslösersatz „play next“ spezifiziert, Information, die spezifiziert, dass die Voice Action „play next“ mit dem Springen zu einem nächsten Lied in der Mediaplayer-Anwendung verknüpft sein soll, und Information, die einen Kontext spezifiziert, der angibt, dass die Voice Action „play next“ aktiviert sein sollte, wenn die Mediaplayer-Anwendung im Vordergrund läuft und sich im Audioplayer-Modus befindet.
  • Die neue „Absicht Y“ kann von der Grammatikinduktions-Engine 220 in der Anwendungs-Voice-Action-Datenbank 230 gespeichert werden, die andere Absichten für andere Voice Actions beinhaltet, so wie „Absicht X“ und „Absicht Z“. Jede der Absichten „Absicht X“ und „Absicht Z“ kann mit anderen Voice Actions für andere Anwendungen verknüpft sein, oder mit anderen Voice Actions für die Mediaplayer-Anwendung. Sobald die neue „Absicht Y“ in der Anwendungs-Voice-Action-Datenbank 230 gespeichert wurde, kann die neue Voice Action so ausgerollt werden, dass die neue Voice Action von Benutzern, die die Mediaplayer-Anwendung auf ihren Geräten gespeichert haben, benutzt werden kann. Das bedeutet, dass Benutzer der Mediaplayer-Anwendung, sobald sie ausgerollt ist, die neue Voice Action „play next“ nutzen können, ohne dass sie ihre Anwendungen aktualisieren müssen.
  • In einigen Implementierungen kann die Einfügung der Grammatik zur Erstellung der Absicht auch die Erstellung eines oder mehrerer alternativer Auslöserbegriffe, die zumindest teilweise auf dem Auslöserbegriff basieren, der vom Anwendungsentwickler 201 eingefügt wurde, und die Einpflegung der alternativen Auslöserbegriffe in die für die neue Voice Action erstellte Absicht betreffen. Zum Beispiel können einen oder mehrere Erweiterungsregeln, Synonymregeln, Optionalisierungsregeln, Ersetzungsregeln, Rewriteregeln oder andere Regeln auf den vom Anwendungsentwickler 201 eingefügten Auslöserbegriff angewendet werden, um alternative Auslöserbegriffe zu bestimmen. Grammatikinduktions-Engine 220 kann die alternativen Auslöserbegriffe in die Absicht für die neue Voice Action einfügen, dergestalt dass die Erkennung des vom Anwendungsentwickler 201 eingefügten Auslöserbegriffs oder eines alternativen Auslöserbegriffs die Auslösung der Voice Action nach sich ziehen kann.
  • Zusätzlich kann in einigen Implementierungen die Grammatikinduktions-Engine 220 Informationen in Bezug auf eine neue Absicht getrennt von der Absichts-Datenstruktur speichern. Beispielsweise können Information, die einen Kontext spezifizieren, der erforderlich ist, damit die neue Voice Action aktiviert ist, oder ein Auslöserbegriff, der mit der neuen Voice Action verknüpft ist, getrennt von der Absicht für die neue Voice Action gespeichert werden. In solchen Fällen kann Kontextinformation, die von einem Benutzergerät empfangen wird, oder ein Auslöserbegriff, der vom Benutzergerät empfangen wird, mit dem Kontext und dem Auslöserbegriff verglichen werden, die mit der Absicht verknüpft sind, ohne dass auf die Daten in der Absicht zugegriffen werden muss. Die Absicht kann ausgelöst werden, basierend auf der Feststellung, dass die empfangene Kontextinformation und/oder der empfangene Auslöserbegriff mit dem entsprechenden Kontext und/oder Auslöserbegriff übereinstimmen, die mit der Absicht verknüpft sind. Auf diese Weise muss nur Information, die zur Auslösung der Aktivität oder Aktion, die mit der neuen Voice Action verknüpft ist, in die Absicht eingefügt werden, und andere Information, die genutzt wird, um die auszulösende Absicht auszuwählen, oder andere Information, kann extern von der Absicht gespeichert werden. Entwickler-Voice-Action-System 200 kann beispielsweise eine Zuordnungstabelle, eine verlinkte Liste oder andere Daten speichern, die einen Kontext oder Auslöserbegriff mit spezifischen Absichten verbindet, dergestalt dass die Identifikation einer bestimmten Paarung eines Kontexts und Auslöserbegriffs die mit dieser Paarung verknüpfte Absicht auslösen kann.
  • In einigen Implementierungen kann das Entwickler-Voice-Action-System 200 auch Möglichkeiten für den Anwendungsentwickler 201 bieten, die neue Voice Action zu testen, bevor sie für den öffentlichen Gebrauch ausgerollt wird. Entwickler-Voice-Action-System 200 kann beispielsweise Möglichkeiten für den Anwendungsentwickler 201 bieten, die neue Voice Action unter Nutzung des Terminals 202 zu testen, ohne dass die Voice Action für andere Benutzer verfügbar ist. Entwickler-Voice-Action-System 200 kann dem Anwendungsentwickler 201 auch Möglichkeiten bieten, eines oder mehrere Benutzergeräte zu spezifizieren, für die die neue Voice Action zum Test aktiviert sein soll. Anwendungsentwickler 201 kann beispielsweise spezifizieren, dass die neue Voice Action für eine Beta-Test-Gruppe von bekannten Benutzergeräten ausgerollt werden soll, um den ordnungsgemäßen Betrieb der neuen Voice Action vor dem Ausrollen der neuen Voice Action für den allgemeinen öffentlichen Gebrauch sicherzustellen.
  • In einigen Implementierungen kann das Entwickler-Voice-Action-System 200 die Erprobung der neuen Voice Action freigeben, indem es eine mit der Absicht verknüpfte Einstellung ändert, dergestalt dass die Absicht identifiziert werden kann und auf Grundlage des Empfangs eines Sprachbefehls von einem der zur Erprobung spezifizierten Benutzergeräte ausgelöst wird. Entwickler-Voice-Action-System 200 kann beispielsweise eine Einstellung für jede der in der Anwendungs-Voice-Action-Datenbank 230 gespeicherten Absichten speichern, wobei die Einstellung angibt, ob eine Absicht für eine bestimmte Voice Action allgemein für den öffentlichen Gebrauch ausgerollt wurde, oder es kann spezifische Benutzergeräte identifizieren, auf denen die Absicht zu Testzwecken ausgerollt wurde. Nach der Speicherung einer Absicht in der Anwendungs-Voice-Action-Datenbank 230 kann das Entwickler-Voice-Action-System 200 Information vom Terminal 202 empfangen, die angibt, dass die Absicht für einen spezifischen Satz von einem oder mehreren Benutzergeräten zu Testzwecken freigegeben werden soll. Daraufhin kann die Einstellung für die Absicht aktualisiert werden, um die Absicht auf dem spezifizierten Satz von Benutzergeräten so auszurollen, dass die mit der Absicht verknüpfte Voice Action ausgelöst werden kann. Nach der Testfreigabe kann eine Spracheingabe, die von einem Benutzergerät im Satz empfangen wird, die Absicht auslösen, wodurch der Test der Voice Action ermöglicht wird.
  • In anderen Ausführungsformen kann das Entwickler-Voice-Action-System 200 die Erprobung der neuen Voice Action freigeben, bevor die Absicht für die neue Voice Action in der Anwendungs-Voice-Action-Datenbank 230 gespeichert wird. Anwendungsentwickler 201 kann beispielsweise angeben, dass er die neue Voice Action testen möchte, bevor diese ausgerollt wird, und kann eine Anzahl von Benutzergeräten oder Benutzerkonten angeben, für die die neue Voice Action temporär zur Erprobung freigegeben werden soll. Nach der Erstellung der Absicht für die neue Voice Action kann das Entwickler-Voice-Action-System 200 die Voice Action für die spezifizierten Benutzergeräte oder Benutzerkonten freigeben, dergestalt dass ein spezifiziertes Benutzergerät oder ein mit einem spezifizierten Benutzerkonto verknüpftes Benutzergerät die neue Voice Action auslösen kann, wenn ein Benutzer den Auslösersatz, der mit der neuen Voice Action verknüpft ist, als Eingabe an einem der Benutzergeräte vornimmt.
  • In noch weiteren Implementierungen kann das Entwickler-Voice-Action-System 200 Testmöglichkeiten für neue Voice Actions bieten, bevor die Grammatik für die neue Voice Action von der Grammatikinduktions-Engine 220 eingefügt wird. Nach der Validierung der empfangenen Grammatik kann beispielsweise die Validierungsengine 210 oder eine andere Komponente des Entwickler-Voice-Action-Systems 200 in der Lage sein, den Betrieb der durch die Grammatik definierten neuen Voice Action zu simulieren, um dem Anwendungsentwickler 201 oder Benutzern anderer Geräte die Möglichkeit zu bieten, die neue Voice Action zu testen. In einigen Fällen kann das Simulieren der neuen Voice Action erfordern, dass das Terminal 202 oder andere für das Testen benutzte Benutzergeräte einen Simulator oder Testmodus benutzen, der vom Entwickler-Voice-Action-System 200 zur Simulation des Betriebs der neuen Voice Action bereitgestellt wird. Die Bereitstellung von Testmöglichkeiten vor der Einfügung der neuen Grammatik kann ein schnelleres iteratives Testen von neuen Voice Actions durch den Anwendungsentwickler 201 erlauben und dadurch den Voice-Action-Entwicklungsprozess insgesamt beschleunigen.
  • Die Möglichkeit Voice Action auszurollen und das Ausrollen von Voice Actions rückgängig zu machen kann auch durch das Entwickler-Voice-Action-System 200 zur Verfügung gestellt werden. Nachdem zum Beispiel eine Grammatik, die eine neue Voice Action definiert, durch den Anwendungsentwickler 201 ins Entwickler-Voice-Action-System 200 eingefügt wurde, validiert wurde, eingefügt wurde, um eine neue Absicht zu erstellen, und die neue Absicht in der Anwendungs-Voice-Action-Datenbank 230 gespeichert wurde, kann das Entwickler-Voice-Action-System 200 abfragen, ob der Anwendungsentwickler 201 die neue Voice Action ausrollen möchte. Anwendungsentwickler 201 kann entscheiden, die neue Voice Action auszurollen, wobei das Ausrollen der neuen Voice Action die Auslösung der neuen Voice Action auf Benutzergeräten der breiten Öffentlichkeit ermöglicht, auf denen die Anwendung, die mit der neuen Voice Action verknüpft ist, installiert ist. Anwendungsentwickler 201 kann eine Eingabe am Terminal 202 vornehmen, um die neue Voice Action auszurollen. Die neue Voice Action kann dann dergestalt ausgerollt werden, dass die neue Voice Action in der Lage ist, auf anderen Benutzergeräten, auf denen die mit der neuen Voice Action verknüpfte Anwendung installiert ist, ausgelöst zu werden. Das heißt, nachdem die neue Voice Action ausgerollt wurde, führt die Eingabe des Auslösersatzes für die neue Voice Action auf einem Benutzergerät, auf dem die Anwendung installiert ist, dazu, dass die Absicht, die mit der neuen Voice Action verknüpft ist, ausgelöst wird. Das Auslösen der mit der neuen Voice Action verknüpften Absicht führt dazu, dass die Absicht oder andere aktionsauslösende Daten an das Benutzergerät übertragen werden, so dass Daten in der Absicht oder die aktionsauslösenden Daten dafür sorgen, dass die Aktionen oder Aktivitäten der Voice Action vom Benutzergerät ausgeführt werden. Wie besprochen kann das Ausrollen der Absicht lediglich erfordern, dass das Entwickler-Voice-Action-System 200 eine Einstellung aktualisiert, die mit der Absicht der neuen Voice Action verknüpft ist, um die Absicht zu einer möglichen Absicht zu machen, die auf eine Spracheingabe hin auszulösen ist.
  • Nachdem eine Voice Action ausgerollt worden ist, kann Anwendungsentwickler 201 das Ausrollen der neuen Voice Action rückgängig machen, so dass die neue Voice Action nicht mehr auf Benutzergeräten ausgelöst werden kann, auf denen die mit der neuen Voice Action verknüpfte Anwendung installiert ist. Anwendungsentwickler 201 kann beispielsweise eine Eingabe im Entwickler-Voice-Action-System 200 vornehmen, die die Voice Action identifiziert und seinen Wunsch angibt, das Ausrollen der Voice Action rückgängig zu machen. Daraufhin kann das Entwickler-Voice-Action-System 200 das Ausrollen der Voice Action rückgängig machen, indem es beispielsweise eine Einstellung aktualisiert, die mit der Absicht für die Voice Action verknüpft ist, so dass die Absicht für die Voice Action nicht ausgelöst werden kann. Da das Ausrollen oder die Rücknahme eine Voice Action lediglich erfordert, dass das Entwickler-Voice-Action-System 200 auf dem Entwickler-Voice-Action-System 200 gespeicherte Information aktualisiert, ohne die auf Benutzergeräten gespeicherte Anwendung zu modifizieren, kann der Anwendungsentwickler 201 leicht Voice Actions ausrollen oder das Ausrollen rückgängig machen.
  • In einigen Implementierungen kann das Entwickler-Voice-Action-System 200 auch Auffindbarkeitsbeispiele für eine neue Voice Action erstellen. Ein Auffindbarkeitsbeispiel kann Information enthalten, die einem Benutzer eines Benutzergeräts angezeigt werden kann, die den Benutzer informiert, dass bestimmte Voice Actions verfügbar sind, wobei möglicherweise neue Voice Actions enthalten sind, die von einem Entwickler eingefügt wurden, nachdem die Anwendung installiert wurde. In einigen Fällen kann das Auffindbarkeitsbeispiel in Reaktion darauf ausgegeben werden, dass das Benutzergerät einen Status besitzt, der einem Kontext entspricht, der mit der Voice Action verknüpft ist, oder als Reaktion auf die Frage eines Benutzers, welche Voice Actions verfügbar sind.
  • Zum Beispiel kann Grammatikinduktions-Engine 220 oder eine andere Komponente des Entwickler-Voice-Action-Systems 200 auf Grundlage des Empfangs einer Grammatik, die eine neue Voice Action definiert, Auffindbarkeitsbeispiele für die von der Grammatik definierte Voice Action erstellen und die Auffindbarkeitsbeispiele im Anwendungs-Metadaten-Backend 225 speichern. Die Auffindbarkeitsbeispiele können Benutzergeräten bereitgestellt werden, auf denen die mit der neuen Voice Action verknüpfte Anwendung installiert ist. Die Metadaten der Anwendung können beispielsweise periodisch aktualisiert werden, um eine aktuelle Liste von Auffindbarkeitsbeispielen für die Anwendung zu beinhalten, die im Anwendungs-Metadaten-Backend 225 gespeichert sind. Alternativ kann auf Grundlage der Angabe von Kontextinformation durch ein Benutzergerät, die dessen aktuellen Status angibt, Information auf das Benutzergerät übertragen werden, die dazu führt, dass Auffindbarkeitsbeispiele für den Status des Benutzergeräts aktivierte Voice Actions auf dem Benutzergerät ausgegeben werden.
  • Beispielsweise kann das Entwickler-Voice-Action-System 200 zusätzlich zu der Erstellung der neuen „Absicht Y“ für die Voice Action „play next“ ein oder mehrere Auffindbarkeitsbeispiele für die Voice Action „play next“ erstellen. Auffindbarkeitsbeispiele können Information beinhalten, die auf Benutzergeräten angezeigt wird, auf denen die Mediaplayer-Anwendung installiert ist. Das Auffindbarkeitsbeispiel kann auf einem Benutzergerät angezeigt werden, basierend auf der Erfüllung des Kontextes, der mit der Voice Action „play next“ verknüpft ist, oder basierend auf anderen Bedingungen. Das Auffindbarkeitsbeispiel für die Voice Action „play next“ kann eine Nachricht „Versuchen Sie, ‘play next’ zu sagen“ sein, die angezeigt wird, wann immer die Mediaplayer-Anwendung im Vordergrund eines Benutzergeräts läuft und sich im Audioplayer-Modus befindet. In einigen Implementierungen kann ein Auffindbarkeitsbeispiel auf andere Ereignisse oder Bedingungen hin angezeigt werden. Zum Beispiel kann die Auffindbarkeitsbeispiel-Nachricht „Versuchen Sie, ‘play next’ zu sagen“ in Reaktion auf die Vornahme einer Eingabe durch einen Benutzer des Benutzergeräts angezeigt werden, indem dieser eine Taste oder ein Steuerelement betätigt oder sagt „Welche Voice Actions kann ich benutzen?“
  • Im Allgemeinen können Auffindbarkeitsbeispiele für Anwendungs-Voice-Actions Benutzern zur Verfügung gestellt werden, ohne dass die Anwendungen selbst Handlungen ausführen müssen. Anwender-Voice-Action-System 200 kann beispielsweise Daten inklusive Auffindbarkeitsbeispiele einem Benutzergerät bereitstellen, und das Benutzergerät kann dafür sorgen, dass die Auffindbarkeitsbeispiele angezeigt werden, ohne dass Anwendungen, die in Bezug zu den Auffindbarkeitsbeispielen stehen, Operationen ausführen müssen. In einigen Implementierungen kann ein Betriebssystem, das auf einem Benutzergerät läuft, in der Lage sein, Auffindbarkeitsbeispiele zu empfangen oder auf Anwendungsmetadaten zuzugreifen, die Auffindbarkeitsbeispiele spezifizieren und die Auffindbarkeitsbeispiele auf dem Benutzergerät anzeigen zu lassen. Somit können Auffindbarkeitsbeispiele für Voice Actions, die im Zusammenhang mit einer Bestimmten Anwendung stehen, ohne Modifikationen an der bestimmten Anwendung zur Anzeige bereitgestellt werden.
  • In einigen Implementierungen können Auffindbarkeitsbeispiele für Anwendungs-Voice-Actions dergestalt ausgegeben werden, dass ein Benutzer bemerken würde, dass die Auffindbarkeitsbeispiele nicht von der Anwendung selbst bereitgestellt werden. Zum Beispiel kann ein Benutzergerät Auffindbarkeitsbeispiele dergestalt anzeigen, dass es offensichtlich ist, dass die Auffindbarkeitsbeispiele vom Entwickler-Voice-Action-System 200 oder einem Betriebssystem bereitgestellt werden und nicht von den spezifischen Anwendungen, die im Zusammenhang mit den Voice Actions stehen. Ein Benutzergerät kann beispielsweise eine spezifische Computerstimme benutzen, die als mit dem Betriebssystem des Benutzergeräts verknüpft wiedererkennbar ist, wenn es Auffindbarkeitsbeispiele bereitstellt. Alternativ können Auffindbarkeitsbeispiele dergestalt ausgegeben werden, dass klar ist, dass die Anwendung die Auffindbarkeitsbeispiele nicht bereitstellt. Beispielsweise kann ein Auffindbarkeitsbeispiel ausgegeben werden, das lautet „Versuchen Sie, ‘play next’ oder ‘Pause’ zu sagen, und ich werde die Mediaplayer-Anwendung dazu bringen, ihre Anfrage zu bearbeiten“, um die Rolle des Betriebssystems von Aktionen zu unterscheiden, die von der Anwendung selbst ausgeführt werden. Andere Arten anzuzeigen, dass Auffindbarkeitsbeispiele von einem separaten System oder einer separaten Anwendung bereitgestellt werden, können auch implementiert werden.
  • 3 veranschaulicht ein beispielhaftes Voice-Action-System 300 zur Verarbeitung von Voice Actions, die von einem Benutzer eines Benutzergeräts empfangen werden. In einigen Implementierungen können die Voice Actions, die vom Voice-Action-System 300 verarbeitet werden, Voice Actions sein, die ein Anwendungsentwickler für eine Anwendung erstellt hat, nachdem die Anwendung auf das Benutzergerät heruntergeladen wurde. Die vom Anwendungsentwickler erstellte Voice Action kann für die Anwendung erstellt worden sein unter Nutzung des Entwickler-Voice-Action-Systems 200 aus 2.
  • Kurz gefasst, befindet sich Voice-Action-System 300 über ein oder mehrere kabelbasierte oder drahtlose Netzwerke, wie eine oder mehrere kabelbasierte oder drahtlose Internet- oder Handydaten-Verbindungen, die das Benutzergerät 304 in die Lage versetzen, elektronische Kommunikation mit dem Voice-Action-System 300 auszutauschen, in Kommunikation mit einem Benutzergerät 304, das einem Benutzer 305 gehört. Voice-Action-System 300 beinhaltet eine Spracherkennungs-Engine 330 und eine Kontextanalyse-Engine 340, die Information verarbeiten, die vom Benutzergerät 304 über die eine oder die mehreren Netzwerkverbindungen empfangen wurde. Das Voice-Action-System beinhaltet einen Matcher 350, der sich mit der Spracherkennungs-Engine 330 und der Kontextanalyse-Engine 340 in Kommunikation befindet und der auch Zugriff auf eine Anwendungs-Voice-Action-Datenbank 310 und eine Betriebssystem-Voice-Action-Datenbank 320 besitzt. Der Matcher 350 kommuniziert mit einem Aktionsauslöser-Generator 360, der Zugriff auf eine Anwendungsdaten-Datenbank 370 hat. Eine Disambiguierungs-Engine 380, die Zugriff auf einen Benutzeraktivitäts-Verlauf 390 hat, kann auch elektronische Kommunikationen mit dem Benutzergerät 304 über die eine oder die mehreren Netzwerkverbindungen senden oder empfangen.
  • Um eine vom Benutzer 305 eingegebene Spracheingabe zu verarbeiten, werden Audiodaten, die der Spracheingabe entsprechen und Kontextinformationen, die einen Status des Benutzergeräts 304 und/oder von Anwendungen, die auf dem Benutzergerät 304 laufen, angeben, dem Voice-Action-System 300 bereitgestellt. In einigen Fällen kann das Benutzergerät 304 die Spracheingabe erhalten, weil ein Benutzer 305 ein Steuerelement anwählt, das das Benutzergerät 304 dazu bringt, Sprechakte des Benutzers aufzunehmen, weil der Benutzer 305 einen Satz äußert, dessen Erkennung das Benutzergerät 304 dazu bringt, nachfolgende Spracheingaben vom Benutzer 305 zu erhalten, oder kann anderweitig bestimmen, die Spracheingabe des Benutzers 305 aufzunehmen. Eine Anfrage, spezifische Eingaben vorzunehmen, um die Aufnahme von Sprechakten des Benutzers auszulösen, kann verhindern, dass das Benutzergerät 304 unnötigerweise Sprechakte des Benutzers verarbeitet, d. h. durch die Reduktion der Menge an Audiodaten, die verarbeitet werden müssen, oder dass so viel von den Sprechakten des Benutzers aufgenommen wird, dass die Privatsphäre des Benutzers 305 verletzt wird, d. h. durch die exklusive Aufnahme spezifischer Sprechhandlungen, die der Benutzer 305 an das Benutzergerät 304 richtet.
  • Im Beispiel, dargestellt in 3, kann der Benutzer 305 beispielsweise ein Steuerelement am Benutzergerät 304 auswählen, um das Benutzergerät 304 dazu zu bringen, Spracheingaben des Benutzers 305 aufzunehmen, und nachdem der Benutzer 305 das Steuerelement angewählt hat, kann der Benutzer 305 eine Spracheingabe vornehmen, indem er „play next“ sagt. Benutzergerät 304 kann die der Spracheingabe entsprechenden Audiodaten über eines oder mehrere Netzwerke an das Voice-Action-System 300 übertragen. Zusätzlich kann Benutzergerät 304 Kontextinformation für das Benutzergerät 304 oder Anwendungen, die auf dem Benutzergerät 304 laufen, bestimmen, und Kontextinformation für das Benutzergerät 304 kann über das eine oder die mehreren Netzwerke an das Voice-Action-System 300 übertragen werden.
  • In einigen Fällen beinhaltet die Kontextinformation, die vom Benutzergerät 304 an das Voice-Action-System 300 übertragen wird, spezifische Information, die durch Informationen, die auf dem Benutzergerät 304 gespeichert ist, identifiziert wird. Benutzergerät 304 kann beispielsweise Information speichern, die spezifische Statusinformation angibt, die als Kontextinformation an das Voice-Action-System 300 zu übertragen ist. Die Kontextinformation, die dem Voice-Action-System 300 durch das Benutzergerät 304 bereitgestellt wird, kann einen standardisierten Körper von Kontextinformation beinhalten, dergestalt dass alle Benutzergeräte die gleiche Kontextinformation an das Voice-Action-System 300 schicken, oder die Kontextinformation, die durch das Benutzergerät 304 bereitgestellt wird, kann ein spezifischer Satz von Kontextinformation sein, der für das Benutzergerät 304 bestimmt wird. In einigen Implementierungen kann das Voice-Action-System 300 gewisse Kontextinformationen vom Benutzergerät 304 anfordern, und die Kontextinformation, die vom Benutzergerät übertragen wird, kann Information sein, die auf die Anfrage hin dem Voice-Action-System 300 bereitgestellt wird. In noch weiteren Fällen kann die mit auf dem Benutzergerät 304 installierten Anwendungen verknüpfte Information, wie beispielsweise Metadaten, Kontextinformation spezifizieren, die dem Voice-Action-System 300 bereitzustellen sind, und das Benutzergerät 304 kann Kontextinformation an das Voice-Action-System 300 übertragen, die die durch die Anwendungsdaten spezifizierte Information beinhaltet.
  • Beispielsweise im Beispiel, gezeigt in 3, kann die vom Benutzergerät 304 an das Voice-Action-System 300 übertragene Kontextinformation Information beinhalten, die angibt, dass eine Mediaplayer-Anwendung derzeit im Vordergrund des Benutzergeräts 304 läuft, dass die Mediaplayer-Anwendung in einem Audioplayer-Modus betrieben wird, und dass die derzeitige Batterieladung des Benutzergeräts 304 50% beträgt.
  • Die vom Benutzergerät 304 übertragenen Audiodaten können von der Spracherkennungsengine 330 des Voice-Action-Systems 300 empfangen werden, und die Spracherkennungsengine 330 kann eine Transkription der Audiodaten erstellen. Zum Beispiel, wie besprochen im Hinblick auf die Spracherkennungsengine 130 aus 1, kann die Spracherkennungsengine 330 in der Lage sein, die Audiodaten zu empfangen und eine Transkription der Audiodaten zu erstellen, die der Spracheingabe des Benutzers 305 entspricht. Nachdem sie die Transkription der Audiodaten erstellt hat, kann die Spracherkennungsengine 330 die Transkription dem Matcher 350 bereitstellen.
  • In einigen Implementierungen kann die Spracherkennungsengine 330, zusätzlich zum Empfang der Audiodaten, auch Kontextinformation empfangen, die dem Voice-Action-System 300 vom Benutzergerät 304 bereitgestellt wird. Spracherkennungs-System 330 kann die Spracherkennung auf Grundlage der empfangenen Kontextinformation beeinflussen. In einigen Implementierungen kann die Beeinflussung der Spracherkennung auf Grundlage von Kontextinformation beinhalten, die Wahrscheinlichkeit anzupassen, dass gewisse Wörter in Audiodaten erkannt werden. Spracherkennungssystem 330 kann beispielsweise die Wahrscheinlichkeit anpassen, dass gewisse Wörter erkannt werden, basierend auf ihrer Relevanz für einen von der Kontextinformation angegebenen Kontext.
  • Beispielsweise kann die Spracherkennungsengine 330 Audiodaten empfangen, die der Aussage „play next“ entsprechen, sowie Kontextinformation, die angibt, dass eine Mediaplayer-Anwendung derzeit im Vordergrund des Benutzergeräts 304 läuft. Spracherkennungsengine 330 kann die Spracherkennung dergestalt auf Grundlage der Kontextinformation beeinflussen, dass die Spracherkennungsengine 330 die Transkription „play next“ statt der Transkription „Planets“ erstellt, basierend darauf, dass die Spracherkennungsengine 330 eine Wahrscheinlichkeit erhöht, dass das Wort „play“ oder der Satz „play next“ in den Audiodaten erkannt wird oder die Wahrscheinlichkeit vermindert, dass das Wort „Planets“ erkannt wird, basierend auf der Feststellung, dass diese Wörter Relevanz oder keine Relevanz für die Mediaplayer-Anwendung besitzen, die im Vordergrund des Benutzergeräts 304 läuft.
  • Kontextanalyse-Engine 340 des Voice-Action-Systems empfängt die vom Benutzergerät 304 übertragene Kontextinformation und verarbeitet die Kontextinformation, um einen Kontext des Benutzergeräts 304 oder von Anwendungen, die auf dem Benutzergerät 304 laufen, festzustellen. Ähnlich zur Kontextanalyse-Engine 140 aus 1, kann die Kontextanalyse-Engine 340 des Voice-Action-Systems 300 empfangene Kontextinformation verarbeiten, um Teile der empfangenen Kontextinformation zu bestimmen, die relevant für die Identifikation einer auszulösenden Voice Action sind, oder kann die empfangene Kontextinformation verarbeiten, um festzustellen, ob eine andere Kontextinformation existiert, die vom Benutzergerät 304 benötigt wird, um eine auszulösende Voice Action zu identifizieren. Wenn zusätzliche Kontextinformation benötigt wird, um eine auszuführende Voice Action zu bestimmen, kann die Kontextanalyse-Engine 340 die zusätzliche Kontextinformation vom Benutzergerät 304 anfordern, dergestalt dass das Benutzergerät 304 mit der zusätzlichen Kontextinformation auf die Anfrage reagieren kann. In einigen Implementierungen kann die Kontextanalyse-Engine 340 das Format der empfangenen Kontextinformation modifizieren, um einen Kontext zu erstellen, der vom Voice-Action-System 300 dazu genutzt werden kann, eine auszulösende Voice Action zu identifizieren. Kontextanalyse-Engine 340 stellt die verarbeitete Kontextinformation dem Matcher 350 bereit.
  • Im Beispiel, dargestellt in 3, empfängt die Kontextanalyse-Engine 340 beispielsweise die Kontextinformation vom Benutzergerät 304. Die empfangene Kontextinformation kann angeben, dass eine Mediaplayer-Anwendung im Vordergrund des Benutzergeräts 304 läuft, dass die Mediaplayer-Anwendung im Audioplayer-Modus läuft und dass die Batterieladung des Benutzergeräts 304 50% beträgt. Kontextanalyse-Engine 340 kann feststellen, dass die Information zum Batterieladezustand dafür irrelevant ist zu bestimmen, welche Voice Action auf die Spracheingabe des Benutzers 305 hin ausgelöst wird, und somit kann die Kontextanalyse-Engine 340 dem Matcher 350 einen Kontext bereitstellen, der lediglich angibt, dass die Mediaplayer-Anwendung im Vordergrund des Benutzergeräts 304 läuft und sich im Audioplayer-Modus befindet.
  • Matcher 350 empfängt den Kontext von der Kontextanalyse-Engine 340 und die Transkription von der Spracherkennungs-Engine 330 und nutzt den empfangenen Kontext und die empfangene Transkription, um eine oder mehrere mögliche auszulösende Voice Actions zu identifizieren. Matcher 350 kann beispielsweise den von der Kontextanalyse-Engine 340 empfangenen Kontext mit den Kontexten abgleichen, die mit einer oder mehreren Absichten verknüpft sind, die in der Anwendungs-Voice-Action-Datenbank 310 und/oder der OS-Voice-Action-Datenbank 320 enthalten sind. Auf Grundlage der Feststellung, dass der empfangene Kontext mit Kontexten übereinstimmt, die mit einem oder mehreren der Absichten verknüpft sind, kann der Matcher 350 diese Absichten als mögliche auszulösende Absichten identifizieren. Nachdem auf Grundlage des Abgleichs des empfangenen Kontextes mit den Kontexten, die mit den möglichen Absichten verknüpft sind, mögliche Absichten identifiziert sind, kann der Matcher 350 den Satz von möglichen Absichten einengen, indem er die empfangene Transkription mit Auslösersätzen vergleicht, die mit den möglichen Absichten verknüpft sind. Matcher 350 kann Information, die den eingeengten Satz von möglichen Absichten identifiziert, dem Aktionsauslöser-Generator 360 bereitstellen.
  • In einigen Fällen kann der Matcher 350 mehrere mögliche Transkriptionen einer Spracheingabe empfangen und kann auf Grundlage der Feststellung, dass jede der möglichen Absichten mit einem Kontext, der mit dem von der Kontextanalyse-Engine 340 empfangenen Kontext übereinstimmt, und einer oder mehreren der möglichen Transkriptionen der von der Spracherkennungs-Engine 330 empfangenen Spracheingabe verknüpft ist, einen eingeengten Satz von möglichen Absichten identifizieren. Spracherkennungs-Engine 330 kann beispielsweise mehrere mögliche Transkriptionen für die Spracheingabe bestimmen und kann Information bereitstellen, die jede der möglichen Transkriptionen dem Matcher 350 angibt. Matcher 350 kann dann einen eingeengten Satz von möglichen Absichten identifizieren, die jeweils einen Kontext spezifizieren, der mit dem von Matcher 350 empfangenen Kontext kompatibel ist, die auch einen Auslösersatz spezifizieren, der mit einer möglichen Transkription der Spracheingabe übereinstimmt.
  • Im Beispiel, dargestellt in 3, empfängt der Matcher 350 einen Kontext, der angibt, dass auf dem Benutzergerät 304 die Mediaplayer-Anwendung im Vordergrund und im Audioplayer-Modus läuft. Matcher 350 empfängt auch zwei Transkriptionen der Audiodaten, nämlich die Transkriptionen „play next“ und „Planets“. Matcher 350 identifiziert auf Grundlage dieser Information mögliche auszulösende Absichten, indem er den empfangenen Kontext und die Transkriptionen mit dem Kontext und den Auslösersätzen vergleicht, die mit Absichten verknüpft sind, die in der Anwendungs-Voice-Action-Datenbank 310 und der OS-Voice-Action-Datenbank 320 gespeichert sind. Auf Grundlage des Vergleichs identifiziert der Matcher 350 zwei mögliche Absichten, inklusive einer Absicht für eine Voice Action „play next“, die die Mediaplayer-Anwendung dazu bringt, zu einem nächsten Lied zu springen, und einer Absicht für eine „Planets“, die eine Anwendung namens „Planets“ öffnet. Matcher 350 kann dem Aktionsauslöser-Generator 360 Information bereitstellen, die die zwei möglichen Absichten identifiziert, oder der Matcher 350 kann dem Aktionsauslöser-Generator 360 eine Kopie der möglichen Absichten bereitstellen.
  • Aktionsauslöser-Generator 360 empfängt Information, die eine oder mehrere mögliche Absichten, die auf die Spracheingabe hin auszulösen sind, und vom Benutzergerät 304 empfangene Kontextinformation. Aktionsauslöser-Generator 360 erstellt Aktionsauslöser für eine oder mehrere bestimmte Absichten, wobei jeder Aktionsauslöser Daten umfasst, die in der Lage sind, das Benutzergerät 304 zu steuern, damit dieses die mit der entsprechenden Absicht verknüpfte Voice Action ausführt. In einigen Implementierungen erstellt der Aktionsauslöser-Generator 360 einen Aktionsauslöser für jede vom Matcher 350 identifizierte mögliche Absicht. In anderen Implementierungen kann der Aktionsauslöser-Generator 360 eine Angabe einer bestimmten auszulösenden Absicht aus den möglichen Absichten erhalten, und kann einen Aktionsauslöser nur für die bestimmte Absicht erstellen. In beiden Implementierungen kann der Aktionsauslöser-Generator 360 einen Aktionsauslöser erstellen, basierend auf der vom Matcher 350 empfangenen Information und der Information auf die in der Anwendungsdaten-Datenbank 370 zugegriffen wird.
  • Beispielsweise kann der Aktionsauslöser-Generator 360 eine Absicht für eine mögliche Voice Action empfangen, und der Aktionsauslöser-Generator 360 kann auf Information in der Anwendungsdaten-Datenbank 370 zugreifen, die dazu führen kann, dass die Voice Action auf dem Benutzergerät 304 ausgeführt wird. Zum Beispiel kann die Information, auf die in der Anwendungsdaten-Datenbank 370 zugegriffen wird, Information zur Ausführung oder Auslösung der Aktivität oder Aktion beinhalten, die mit einer Voice Action verknüpft ist, so wie Information über das Benutzergerät 304, Information über die mit der Voice Action verknüpfte Anwendung oder Information über ein auf dem Benutzergerät 304 laufendes Betriebssystem. Aktionsauslöser-Generator 360 kann die abgerufene Information als Aktionsauslöser für die mögliche Voice Action nutzen oder kann die abgerufene Information nutzen, um Aktionsauslöserdaten zu erstellen, die in der Lage sind, die Aktionen oder Aktivitäten auszulösen, die mit der möglichen Voice Action auf dem Benutzergerät 304 verknüpft sind. In einigen Implementierungen beinhaltet das Voice-Action-System 300 möglicherweise weder Aktionsauslöser-Generator 360 noch Anwendungsdaten-Datenbank 370, dergestalt dass eine Absicht als solche an das Benutzergerät 304 übertragen werden kann, und Information in der Absicht das Benutzergerät 304 dazu bringen kann, die mit der Absicht verknüpfte Aktion oder Aktivität auszuführen.
  • Im Beispiel, dargestellt in 3, kann der Aktionsauslöser-Generator 360 eine Absicht für die Voice Action „play next“ für die Mediaplayer-Anwendung und eine Absicht für die Voice Action „Planets“ zum Öffnen der „Planets“-Anwendung erhalten. Aktionsauslöser-Generator 360 kann Aktionsauslöser für jede der „play next“- und „Planets“-Voice-Actions erstellen. Um einen Aktionsauslöser für die Voice Action „play next“ zu erstellen, greift der Aktionsauslöser-Generator 360 auf Information in der Anwendungsdaten-Datenbank 370 zu, die die auf dem Benutzergerät 304 installierte Mediaplayer-Anwendung betrifft, kann auf Information zugreifen, die das Benutzergerät 304 oder ein spezifisches Modell des Benutzergeräts 304 betrifft, oder kann auf Information zugreifen, die ein auf dem Benutzergerät 304 laufendes Betriebssystem betrifft. Aktionsauslöser-Generator 360 nutzt die empfangene Absicht und die Information, auf die in der Anwendungsdaten-Datenbank 370 zugegriffen wurde, um einen Aktionsauslöser für die Voice Action „play next“ zu erstellen. Auf ähnliche Weise kann der Aktionsauslöser-Generator 360 einen Aktionsauslöser für die Voice Action „Planets“ erstellen, indem er auf Information im Zusammenhang mit der „Planets“-Anwendung, dem Benutzergerät 304 oder einem Betriebssystem, das auf dem Benutzergerät 304 läuft, zugreift, und kann einen Aktionsauslöser für die Voice Action „Planets“ erstellen, basierend auf der empfangenen und abgerufenen Information.
  • Wie oben besprochen kann der Matcher 350 in einigen Beispielen mehr als eine mögliche auszulösende Absicht identifizieren, und in diesen Fällen kann es nötig sein, eine bestimmte auszulösende Absicht aus dem Satz von möglichen Absichten auszuwählen. Die Disambiguierungs-Engine 380 kann Operationen ausführen, um aus den möglichen Absichten auszuwählen oder eine Benutzereingabe zu empfangen, die dies tut. Beispielsweise kann die Disambiguierungs-Engine eine Anfrage an das Benutzergerät 304 richten, die den Benutzer 304 auffordert, eine bestimmte Voice Action aus den möglichen Voice Actions, die mit den möglichen Absichten verknüpft sind, auszuwählen. Auf die Anfrage hin kann der Benutzer 305 eine Eingabe am Benutzergerät 304 vornehmen, um eine bestimmte mögliche Voice Action zur Ausführung auszuwählen. Information, die die Benutzerauswahl angibt, kann von der Disambiguierungs-Engine 380 empfangen werden.
  • Alternativ kann die Disambiguierungs-Engine 380 Zugriff auf einen Benutzeraktivitäts-Verlauf 390 haben, der Information über vorangegangene am Benutzergerät 304 eingegebene Voice Actions oder andere am Benutzergerät 304 vorgenommene Handlungen beinhaltet. Benutzeraktivitäts-Verlauf 390 kann beispielsweise eine Anzahl von Fällen angeben, in denen der Benutzer 305 eine bestimmte mögliche Voice Action ausgelöst hat, die Anzahl von Fällen, in denen der Benutzer 305 spezifische Aktionen auf dem Benutzergerät 304 mit oder ohne Nutzung einer Voice Action ausgeführt hat, oder kann andere Information über die Nutzung des Benutzergeräts 305 durch den Benutzer 304 beinhalten. In einigen Fällen kann der Benutzeraktivitäts-Verlauf 390 Information beinhalten, die den Nutzungsverlauf von anderen Benutzern als dem Benutzer 305 angibt. Zum Beispiel kann der Benutzeraktivitäts-Verlauf 390 Information beinhalten, die Nutzungsmuster von allen Benutzern, die die Mediaplayer-Anwendung und/oder die „Planets“-Anwendung auf einem Benutzergerät installiert haben.
  • In einigen Implementierungen kann die Information im Benutzeraktivitäts-Verlauf 390 vom Voice-Action-System 300 genutzt werden, um aus möglichen Absichten auszuwählen, ohne eine Eingabe des Benutzers 305 anzufordern. Zum Beispiel kann die Disambiguierungs-Engine 380 auf Information im Benutzeraktivitäts-Verlauf 390 zugreifen, die angibt, dass der Benutzer 305 zuvor eine bestimmte mögliche Voice Action ausgewählt hat, als er eine ähnliche Spracheingabe vorgenommen hat, und auf Grundlage dieser Information kann die Disambiguierungs-Engine 380 eine bestimmte mögliche auszulösende Absicht auswählen, ohne eine Eingabeaufforderung an den Benutzer 305 zu richten. Auf ähnliche Weise kann die Disambiguierungs-Engine 380 feststellen, dass ein gewisser Anteil von Benutzern, die eine der vom Benutzer 305 empfangenen Spracheingabe ähnliche Spracheingabe vorgenommen haben, gewählt haben, eine bestimmte Voice Action auszulösen, und die Disambiguierungs-Engine 380 kann eine bestimmte mögliche auszulösende Sprachabsicht auswählen, basierend auf dieser Information und ohne eine Eingabeaufforderung an den Benutzer 305 zu richten. In einigen Implementierungen kann jede der möglichen Absichten einen verknüpften Wert besitzen, der die Stärke einer Beziehung zwischen einem bestimmten Auslösersatz und der bestimmten möglichen Absicht angibt. Eine bestimmte mögliche Absicht kann auf Grundlage der den möglichen Absichten zugewiesenen Werte ausgewählt werden, die die Stärke der Beziehung zwischen der möglichen Absicht und einem empfangenen Auslösersatz angeben.
  • Andere Faktoren können im Benutzeraktivitäten-Verlauf 390 berücksichtigt oder einbezogen werden, der bei der Auswahl einer möglichen Absicht genutzt wird. Voice-Action-System 300 kann Handlungen auf dem Benutzergerät 304 verfolgen, nachdem das Voice-Action-System eine bestimmte mögliche Absicht auslöst um festzustellen, ob die ausgelöste Absicht der Erwartung des Benutzers 305 entspricht. Wenn Benutzer 305 beispielsweise Operationen unternimmt, um eine andere Aktion auf dem Benutzergerät 304 durchzuführen, nachdem das Voice-Action-System 300 eine bestimmte Voice Action auslöst, kann das darauf hindeuten, dass das Voice-Action-System 300 die falsche mögliche Absicht ausgelöst hat, und somit kann das Voice-Action-System 300 Information zum Benutzeraktivitäts-Verlauf 390 hinzufügen, die angibt, dass die empfangene Spracheingabe die ausgelöste Absicht nicht oder seltener auslösen sollte. In anderen Beispielen kann der Benutzeraktivitäts-Verlauf 390 Information enthalten, die angibt, wie häufig der Benutzer 305 oder andere Benutzer eine bestimmte mögliche Absicht bei einem bestimmten Status ihres Benutzergeräts auswählen, z. B. bei einem bestimmten Status, der in der dem Voice-Action-System 300 bereitgestellten Kontextinformation angegeben ist. Auf andere im Benutzeraktivitäts-Verlauf 390 enthaltene Information kann von der Disambiguierungs-Engine 380 zugegriffen werden, und sie kann genutzt werden, um eine bestimmte mögliche Absicht aus einem Satz von möglichen Absichten auszuwählen.
  • Für das Beispiel, dargestellt in 3, kann die Disambiguierungs-Engine 380 auf Grundlage der Feststellung, dass die möglichen Absichten für den vom Benutzer 305 vorgenommene Spracheingabe die Absicht für die Voice Action „play next“ für die Mediaplayer-Anwendung oder die Absicht für die Voice Action „Planets“ zum Öffnen der „Planets“-Anwendung beinhalten, dem Benutzergerät 305 Information bereitstellen, die eine Benutzerauswahl einer bestimmten möglichen Voice Action anfordert. Wie gezeigt kann eine Anfrage auf dem Display des Benutzergeräts 304 angezeigt werden, die den Benutzer 305 auffordert, entweder eine Voice Action „play next“ oder eine Voice Action zum „Planets öffnen“ auszuwählen. Benutzer 305 nimmt eine Eingabe auf dem Benutzergerät 304 vor, um die Option „nächstes Lied“ auszuwählen. Daten, die die Benutzerauswahl angeben, werden an die Disambiguierungs-Engine 380 übertragen, und auf den Empfang von Daten in, die die Benutzerauswahl angeben, bestimmt die Disambiguierungs-Engine 380, die Absicht für die Voice Action „play next“ auszulösen. In einigen Beispielen kann die Disambiguierungs-Engine 380 auch Information im Benutzeraktivitäts-Verlauf 390 speichern, die angibt, dass der Benutzer 305 sich dafür entschieden hat, die Absicht für die Voice Action „play next“ und nicht die Absicht für die Voice Action „Planets“ auszulösen. Disambiguierungs-Engine 380 kann sich auf die Information stützen, die im Benutzeraktivitäts-Verlauf 390 gespeichert ist, um automatisch eine mögliche auszulösende Voice Action zu bestimmen, wenn eine ähnliche Spracheingabe später vom Voice-Action-System 300 vom Benutzergerät 304 empfangen wird.
  • In einer alternativen Implementierung des Beispiels, dargestellt in 3, kann die Disambiguierungs-Engine 380 eine bestimmte auszulösende mögliche Absicht auf Grundlage des Zugriffs auf den Benutzeraktivitäts-Verlauf 390 auswählen. Benutzeraktivitäts-Verlauf 390 kann beispielsweise angeben, dass der Benutzer 305 des Benutzergeräts 304 zuvor eine ähnliche Spracheingabe vorgenommen hat und sich dazu entschieden hat, die Absicht für die Voice Action „nächstes Lied abspielen“ auszulösen. Basierend darauf, dass der Benutzeraktivitäts-Verlauf 390 angibt, dass die Absicht für die Voice Action „play next“ zuvor ausgelöst wurde, nachdem die ähnliche Spracheingabe empfangen wurde, kann die Disambiguierungs-Engine 380 bestimmen, die Absicht für die Voice Action „play next“ auszulösen, ohne zusätzliche Eingaben vom Benutzer 305 anzufordern.
  • Nachdem eine bestimmte mögliche Absicht ausgewählt wurde, und, wenn nötig, ein Aktionsauslöser für die ausgewählte mögliche Voice Action erstellt wurde, überträgt das Voice-Action-System 300 Information an das Benutzergerät 304, die dazu führt, dass die ausgewählte Voice Action ausgeführt wird. Zum Beispiel kann die Disambiguierungs-Engine 380 oder eine andere Komponente des Voice-Action-Systems 300 die Absicht oder die aktionsauslösenden Daten für die gewählte Voice Action an das Benutzergerät 304 übertragen, um das Benutzergerät 304 dazu zu bringen, die ausgewählte Voice Action auszuführen.
  • Im Beispiel, dargestellt in 3, kann die Disambiguierungs-Engine 380 beispielsweise den Aktionsauslöser an das Benutzergerät 304 übertragen, nachdem der Benutzer 305 die „play next“-Option ausgewählt hat, um die Voice Action „play next“ auszuwählen, die die Mediaplayer-Anwendung dazu bringt, zu einem nächsten Lied zu springen, und nachdem ein Aktionsauslöser erstellt wurde, der Daten zur Steuerung der Mediaplayer-Anwendung zum Springen zu einem nächsten Lied enthält. Benutzergerät 304 kann den Aktionsauslöser empfangen, und der Aktionsauslöser kann das Benutzergerät 304 dazu bringen, die Voice Action „play next“ auszuführen, indem er die Mediaplayer-Anwendung dazu bringt, zu einem nächsten Lied zu springen.
  • In einigen Implementierungen kann eine Benachrichtigung, die eine ausgelöste Voice Action angibt, zur Anzeige auf dem Benutzergerät 304 bereitgestellt werden. Voice-Action-System 300 oder ein Betriebssystem der Benutzergeräts 304 können beispielsweise veranlassen, dass eine Benachrichtigung auf dem Benutzergerät 304 angezeigt wird, die die ausgelöste Voice Action identifiziert. In einigen Fällen kann die Benachrichtigung, die die ausgelöste Voice Action identifiziert, dergestalt bereitgestellt werden, dass es für den Benutzer 305 ersichtlich ist, dass die mit der ausgelösten Voice Action verknüpfte Anwendung nicht für die Erkennung der Voice Action oder die Auslösung der Voice Action verantwortlich ist. Eine auf dem Benutzergerät 304 bereitgestellte Benachrichtigung kann beispielsweise eine Stimme nutzen, die als mit dem Voice-Action-System 300, dem Benutzergerät 304 oder einem Betriebssystem des Benutzergeräts 304 verknüpft erkennbar ist, und nicht mit der Mediaplayer-Anwendung, die auf dem Benutzergerät 304 läuft. In einem anderen Beispiel kann eine Benachrichtigung auf eine Art angezeigt werden, dass das System oder die Anwendung, die die Spracheingabe des Benutzers 305 verarbeitet von der Anwendung unterscheidet, die die ausgelöste Voice Action ausführt. Eine Benachrichtigung kann beispielsweise angeben: „Sie haben die Voice Action ‘play next’ ausgelöst. Ich werde jetzt die Mediaplayer-Anwendung veranlassen, zu einem nächsten Lied zu springen“, wodurch dem Benutzer 305 angezeigt wird, dass die Mediaplayer-Anwendung nicht für die Verarbeitung der Spracheingabe verantwortlich war.
  • 4 zeigt ein Flussdiagramm für einen beispielhaften Prozess 400, der von einem Voice-Action-System ausgeführt wird. In einigen Beispielen kann der Prozess 400 aus 4 ausgeführt werden vom Voice-Action-System 100 aus 1, oder von Komponenten des Voice-Action-Systems 100 aus 1. Prozess 400 beschreibt einen Prozess durch den ein Anwendungsentwickler eine neue Voice Action für eine Anwendung anlegen kann, die auf einem oder mehreren Benutzergeräten installiert wurde, und durch das ein Benutzer eines Benutzergeräts, auf dem die Anwendung installiert ist, die neue Voice Action auslösen kann, um die Ausführung von Operationen zu veranlassen, die mit der von der Anwendung auf dem Benutzergerät auszuführenden neuen Voice Action verknüpft sind.
  • Zunächst werden Daten von einem Voice-Action-System empfangen, die eine neue Voice Action für einen Software-Anwendung spezifizieren, die vom Voice-Action-System verschieden ist, wobei die Daten einen oder mehrere Operationen zur Ausführung der neuen Voice Action und einen oder mehrere Auslöserbegriffe zur Auslösung der neuen Voice Action umfassen (402). Zum Beispiel kann ein mit der Software-Anwendung verknüpfter Anwendungsentwickler 101a101n unter Nutzung eines Terminals 102a102n Daten in das Voice-Action-System 100 eingeben, die eine neue Voice Action definieren.
  • Die Daten, die die neue Voice Action definieren, können Daten beinhalten, die eine oder mehrere Operationen zur Ausführung der neuen Voice Action und einen oder mehrere Auslöserbegriffe zur Auslösung der neuen Voice Action spezifizieren. Zum Beispiel können Daten, die einen neue Voice Action definieren den Auslöserbegriff „play next“ spezifizieren, und können spezifizieren, dass die neue Voice Action Operationen ausführen soll, die eine Mediaplayer-Anwendung dazu bringen, zu einem nächsten Lied zu springen. Die Daten können auch zusätzliche Information im Zusammenhang mit der neuen Voice Action spezifizieren, so wie die Anwendung, die die neue Voice Action betrifft, einen Kontext, in dem die neue Voice Action zur Nutzung durch einen Benutzer aktiviert sein soll, oder andere Information. Zum Beispiel können die Daten, die die Voice Action „play next“ definieren, auch spezifizieren, dass die Voice Action die Mediaplayer-Anwendung betrifft, und kann spezifizieren, dass die Voice Action aktiviert sein soll, wenn die Mediaplayer-Anwendung im Vordergrund läuft und sich im Audioplayer-Modus befindet.
  • Eine kontextuelle Voice-Action-Absicht für die Software-Anwendung wird vom Voice-Action-System auf Grundlage von mindestens den empfangenen Daten erstellt, wobei die kontextuelle Voice-Action-Absicht Daten umfasst, die, wenn sie von der Software-Anwendung empfangen werden, anfordern, dass die Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt (404). Zum Beispiel das Voice-Action-System 100 aus 1 kann die Daten empfangen, die die neue Voice Action spezifiziert, und kann auf Grundlage der empfangenen Daten eine kontextuelle Voice-Action-Absicht für die neue Voice Action erstellen. Voice-Action-System 100 kann die kontextuelle Voice-Action-Absicht in der Anwendungs-Voice-Action-Datenbank 110 speichern. In einigen Implementierungen kann das Voice-Action-System 100 die Absicht unter Nutzung eines Prozesses erstellen, der ähnlich zu dem beschriebenen ist in 2, durch die Validierung der Daten und der Einfügung der empfangenen Grammatik, um die kontextuelle Voice-Action-Absicht zu erstellen. In einigen Implementierungen kann die erstellte kontextuelle Voice-Action-Absicht Information speichern, die die Software-Anwendung steuern kann, um die eine oder die mehreren Operationen zur Ausführung der neuen Voice Action ausführen kann.
  • Die kontextuelle Voice-Action-Absicht ist mit dem einen oder den mehreren Auslöserbegriffen für die neue Voice Action durch das Voice-Action-System verknüpft (406). Nachdem beispielsweise die kontextuelle Voice-Action-Absicht für die neue Voice Action vom Voice-Action-System 100 erstellt wurde, kann das Voice-Action-System 100 die kontextuelle Voice-Action-Absicht für die neue Voice Action mit dem einen oder den mehreren Auslöserbegriffen verknüpfen, die in den empfangenen Daten spezifiziert werden. Die kontextuelle Voice-Action-Absicht mit dem/den verknüpften Auslöserbegriff(en) kann in der Anwendungs-Voice-Action-Datenbank 110 gespeichert werden. In einigen Implementierungen kann die Verknüpfung des einen oder der mehreren Auslöserbegriffe mit der kontextuellen Voice-Action-Absicht beinhalten, den einen oder die mehreren Auslöserbegriffe in der kontextuellen Voice-Action-Absicht zu spezifizieren. In anderen Implementierungen kann die Verknüpfung dadurch hergestellt werden, dass anderweitig der eine oder die mehreren Auslöserbegriffe mit der kontextuellen Voice-Action-Absicht verbunden werden, dergestalt dass der Empfang eines oder mehrerer Auslöserbegriffe zur Identifizierung der kontextuellen Voice-Action-Absicht führt.
  • Das Voice-Action-System ist dazu konfiguriert, eine Angabe einer Benutzeräußerung, die von einem Gerät empfangen wurde, auf dem die Software-Anwendung installiert ist, zu empfangen (408). Voice-Action-System 100 kann beispielsweise dazu konfiguriert sein, eine Angabe zu erhalten, dass eine Äußerung vom Benutzergerät 104 empfangen wurde, wobei die Äußerung vom Benutzergerät 104 als Spracheingabe des Benutzers 105 erhalten wird. Auf Benutzergerät 104 kann die mit der neuen Voice Action verknüpfte Software-Anwendung bereits installiert sein, beispielsweise die Mediaplayer-Anwendung, besprochen in Zusammenhang mit 1.
  • Das Voice-Action-System ist dazu konfiguriert festzustellen, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind (410). Voice-Action-System 100 kann beispielsweise dazu konfiguriert sein, Audiodaten zu empfangen, die der Benutzeräußerung entsprechen, und kann unter Nutzung der Spracherkennungs-Engine 130 des Voice-Action-Systems 100 eine Transkription der Benutzeräußerung erstellen. Die von der Spracherkennungs-Engine 130 erstellte Transkription der Benutzeräußerung kann mit mehreren kontextuellen Voice-Action-Absichten verknüpften Auslöserbegriffen verglichen werden, inklusive der kontextuellen Voice-Action-Absicht für die neue Voice Action und kontextueller Voice-Action-Absichten für andere Voice Actions.
  • In einigen Fällen kann der Vergleich durchgeführt werden vom Voice-Action-Selektor 150 aus 1, wobei der Voice-Action-Selektor 150 die Transkription der Benutzeräußerung mit Auslöserbegriffen für kontextuelle Voice-Action-Absichten vergleichen kann, die in der Anwendungs-Voice-Action-Datenbank 110 oder der OS-Voice-Action-Datenbank 130 gespeichert sind. Auf Grundlage des Vergleichs kann der Voice-Action-Selektor 150 feststellen, dass die Transkription der Benutzeräußerung mit einem oder mehreren von dem einen oder den mehreren Auslöserbegriffen übereinstimmt, die mit der kontextuellen Voice-Action-Absicht der neuen Voice Action verknüpft sind. Beispielsweise kann Spracherkennungs-Engine 130 eine Transkription für die vom Benutzergerät 104 empfangene Benutzeräußerung erstellen, die als „play next“ angezeigt wird. Voice-Action-Selektor 150 kann die Voice Action „play next“ mit Auslöserbegriffen vergleichen, die mit möglichen kontextuellen Voice-Action-Absichten verknüpft sind, um festzustellen, dass die Transkription mit dem Auslösersatz „play next“ übereinstimmt, der mit der kontextuellen Voice-Action-Absicht für die neue Voice Action „play next“ verknüpft ist.
  • Das Voice-Action-System ist dazu konfiguriert, die kontextuelle Voice-Action-Absicht dem bestimmten Gerät bereitzustellen und dadurch anzufordern, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt (412). Beispielsweise kann auf die Feststellung hin, dass die Transkription der Benutzeräußerung, die von der Spracherkennungs-Engine 130 des Voice-Action-Systems 100 erstellt wurde, mit dem einen oder den mehreren Auslöserbegriffen übereinstimmt, die mit der kontextuellen Voice-Action-Absicht für die neue Voice Action verknüpft sind, der Voice-Action-Selektor 150 dem Benutzergerät 104 die kontextuelle Voice-Action-Absicht für die neue Voice Action bereitstellen. Die kontextuelle Voice-Action-Absicht für die neue Voice Action kann effektiv anfordern, dass die Software-Anwendung, die auf dem Benutzergerät 104 installiert ist, die eine oder die mehreren Operationen der neuen Voice Action ausführt. Beispielsweise kann die kontextuelle Voice-Action-Absicht Daten beinhalten, die die eine oder die mehreren Operationen auslösen, die mit der neuen Voice Action verknüpft sind, sobald das Benutzergerät 104 die kontextuelle Voice-Action-Absicht empfängt.
  • Es wurde eine Reihe von Implementierungen beschrieben. Trotzdem versteht es sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen. Zum Beispiel können verschiedene Formen der vorstehend dargestellten Abläufe verwendet werden, wobei Schritte neu geordnet, hinzugefügt oder entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.
  • In Fällen, in denen die Systeme und/oder Verfahren, die hier besprochen werden, persönliche Informationen über Benutzer sammeln oder persönliche Informationen nutzen können, kann für die Benutzer eine Möglichkeit der Kontrolle bereitgestellt werden, ob Programme oder Funktionen persönliche Informationen sammeln, z. B. Informationen über das soziale Netzwerk eines Benutzers, soziale Handlungen oder Aktivitäten, Beruf, Präferenzen oder den derzeitigen Standort, oder um zu kontrollieren, ob und/oder wie das System und/oder die Verfahren für den Benutzer relevantere Operationen ausführen können. Zusätzlich können gewisse Daten auf einem oder mehreren Wegen anonymisiert werden, bevor sie gespeichert oder verwendet werden, so dass personenbezogene Informationen entfernt werden. Eine Benutzeridentität kann beispielsweise so anonymisiert werden, dass keine persönlichen identifizierbaren Informationen für den Benutzer bestimmt werden können, oder ein Standort des Benutzers kann verallgemeinert werden, wobei Standortinformationen entnommen werden, wie beispielsweise eine Stadt, Postleitzahl oder ein Bundesland, sodass ein bestimmter Standort eines Benutzers nicht festgestellt werden kann. So hat der Benutzer Kontrolle darüber, wie Informationen über ihn oder eingeholt und verwendet werden.
  • Während die vorgenannten Ausführungsformen hauptsächlich im Hinblick auf die Entwicklung von Voice Actions zur Nutzung mit auf Benutzergeräten installierten Anwendungen beschrieben wurden, können die beschriebenen Funktionen auch im Zusammenhang mit Maschinen, anderen Geräten, Robotern oder anderen Systemen genutzt werden. Zum Beispiel das Voice-Action-System 100 aus 1 kann genutzt werden, um Voice Actions zur Interaktion mit Maschinen zu entwickeln und zu implementieren, wobei die Maschinen ein verknüpftes Computersystem besitzen; es kann außerdem genutzt werden, um Voice Actions zur Interaktion mit Robotern oder Systemen mit Roboter-Komponenten zu entwickeln und zu implementieren; es kann genutzt werden, um Voice Actions zur Interaktion mit Haushaltsgeräten, Entertainment-Systemen oder anderen Geräten zu entwickeln und zu implementieren; oder es kann genutzt werden, um Voice Actions zur Interaktion mit einem Fahrzeug oder einem anderen Transportsystem zu entwickeln und zu implementieren.
  • Ausführungsformen und alle funktionsfähigen in dieser Beschreibung beschriebenen Operationen können in einer digitalen elektronischen Schaltung, in physisch greifbarer Computer-Software oder Firmware, in Computer-Hardware, darunter auch in aus dieser Beschreibung hervorgehenden Strukturen und deren strukturellen Äquivalenten oder in Kombinationen einer oder mehrerer derselben implementiert werden. Ausführungsformen können als eines oder mehrere Computerprogrammprodukte, d. h. als eines oder mehrere Module von Computerprogrammanweisungen, die auf einem computerlesbaren Medium für die Ausführung durch oder für die Kontrolle der Operation der datenverarbeitenden Einrichtung verschlüsselt sind, implementiert werden. Das maschinenlesbare Speichermedium kann eine maschinenlesbare Speichervorrichtung, ein maschinenlesbares Speichersubstrat, eine Speichervorrichtung, eine Stoffzusammensetzung, die ein maschinenlesbares verbreitetes Signal bewirkt, oder eine Kombination aus einem oder mehreren davon sein. Der Begriff „datenverarbeitende Einrichtung“ umfasst jedwede Einrichtung, Vorrichtung oder Maschine zur Verarbeitung von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers bzw. mehrerer Prozessoren oder Computer. Der Apparat kann neben der Hardware auch einen Code beinhalten, der eine Ausführungsumgebung für das betreffende Computerprogramm erstellt, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbank-Managementsystem, ein Betriebssystem oder eine Kombination einer oder mehrerer der genannten darstellt. Ein propagiertes Signal ist ein künstlich erzeugtes Signal, z. B. ein maschinell erzeugtes elektrisches, optisches oder elektromagnetisches Signal, das erzeugt wird, um Informationen für die Übertragung an eine geeignete Empfängereinrichtung zu kodieren.
  • Ein Computerprogramm (auch als Programm, Software, Software-Anwendung, Skript oder Code bezeichnet) kann in einer beliebigen Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, und das Computerprogramm kann in jeder beliebigen Form eingesetzt sein, darunter als unabhängiges Programm oder als ein Modul, Komponente, Subroutine, oder andere Einheit, die zur Benutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm entspricht nicht unbedingt einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält (z. B. eines oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind), in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann auf einem Computer oder auf mehreren Computern bereitgestellt und ausgeführt werden, die sich an einem Standort befinden oder über mehrere Standorte verteilt und durch ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Die in dieser Beschreibung beschriebenen Prozesse und Logikabläufe können von einem oder mehreren programmierbaren Computern ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, die durch den auf Eingabedaten basierenden Betrieb und das Erzeugen von Ausgabedaten bestimmte Funktionen aktivieren. Die Prozesse und die logischen Abläufe können auch durch logische Sonderzweckschaltungen durchgeführt werden, und der Apparat kann als Sonderzweckschaltungen implementiert werden, z. B. ein FPGA (Field Programmable Gate Array) oder eine ASIC (anwendungsspezifische integrierte Schaltung).
  • Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, umfassen beispielsweise sowohl allgemeine als auch Spezialmikroprozessoren sowie alle Arten von einem oder mehreren Prozessoren von jeglicher Art von digitalen Computern. Ein Prozessor nimmt im Allgemeinen Anweisungen und Daten von einem Festspeicher oder einem Arbeitsspeicher oder von beiden entgegen.
  • Die wesentlichen Elemente eines Computers sind ein Prozessor für das Ausführen von Befehlen und ein oder mehrere Speichergeräte für das Speichern von Befehlen und Daten. Ganz allgemein gehören zu einem Computer auch ein oder mehr Massenspeichergeräte für das Speichern von Daten, z. B. Magnet-, magnetooptische oder optische Disketten, um Daten entgegenzunehmen und/oder zu übertragen. Ein Computer muss jedoch nicht über solche Geräte verfügen. Außerdem kann ein Computer in ein anderes Gerät eingebettet sein, z. B. in ein Tablet, in ein Mobiltelefon, einen Organizer (PDA), einen mobilen Audioplayer, einen GPS-Empfänger (Global Positioning System), um nur einige zu nennen. Computerlesbare Medien, die für das Speichern von Computerprogrammbefehlen und -daten geeignet sind, schließen alle Formen von nichtflüchtigen Speichern, Medien und Speichergeräten ein, einschließlich beispielsweise Halbleiter-Speichergeräte, z. B. EPROM, EEPROM und Flash-Speicher; Magnetplatten, z. B. interne Festplatten oder Wechselplatten; magneto-optische Platten; und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können mit Speziallogikschaltungen ergänzt werden oder darin integriert sein.
  • Um eine Interaktion mit einem Benutzer bereitzustellen, können Ausführungsformen auf einem Computer mit einer Displayvorrichtung, wie z. B. ein CTR-(Kathodenstrahlröhren-) oder LCD-(Flüssigkristalldisplay-)Monitor zum Anzeigen von Informationen für den Benutzer und einer Tastatur und einem Zeigegerät, z. B. einer Maus oder einem Trackball, über die der Nutzer Eingaben in den Computer bereitstellen kann, erfolgen. Andere Arten von Geräten können auch verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; zum Beispiel kann eine dem Benutzer bereitgestellte Rückmeldung irgendeine Form von Sinnesrückmeldung sein, z. B. visuelle Rückmeldung, auditive Rückmeldung oder Tastrückmeldung; und eine Eingabe vom Benutzer kann in einer beliebigen Form empfangen werden, einschließlich akustischer, Sprach- oder Tasteingaben.
  • Ausführungsformen können in einem Rechensystem implementiert werden, das Folgendes umfasst: eine Backendkomponente, z. B. als Datenserver; eine Middlewarekomponente, z. B. einen Applikationsserver; eine Frontendkomponente, z. B. einen Clientcomputer mit grafischer Benutzeroberfläche oder einen Webbrowser, mit dem ein Benutzer mit einer Implementierung oder einer beliebigen Kombination einer oder mehrerer dieser Backend-, Middleware- oder Frontendkomponenten interagieren kann. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium von digitaler Datenkommunikation, z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele für Kommunikationsnetzwerke beinhalten ein lokales Netzwerk („LAN“) und ein Fernnetz („WAN“), z. B. das Internet.
  • Das Computersystem kann Clients und Server umfassen. Client und Server sind generell voneinander entfernt und interagieren in der Regel über ein Kommunikationsnetzwerk. Die Beziehung von Client und Server ergibt sich durch Computerprogramme, die auf den jeweiligen Computern ausgeführt werden und eine Client-Server-Beziehung zueinander haben.
  • Während diese Beschreibung viele Einzelheiten enthält, sollten diese nicht als Beschränkungen des Umfangs der Offenbarung oder von dem, was beansprucht werden kann aufgefasst werden, sondern vielmehr als Beschreibungen von bestimmten Merkmalen bestimmter Ausführungsformen. Bestimmte Merkmale, die innerhalb dieser Beschreibung im Zusammenhang mit separaten Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Ausführungsform beschrieben werden, auch in mehreren Ausführungsformen separat oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale weiter oben als in bestimmten Kombinationen wirkend beschrieben und sogar zunächst als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgeschnitten und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
  • Gleichermaßen sollte, obwohl die Vorgänge in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, dies nicht so verstanden werden, dass die besagten Vorgänge in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen, oder dass alle veranschaulichten Vorgänge durchgeführt werden, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht in allen Ausführungsformen als erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
  • In allen Fällen, in denen eine HTML-Datei erwähnt wird, kann diese durch andere Dateitypen oder -formate ersetzt werden. Eine HTML-Datei kann beispielsweise durch eine XML- oder JSON-Datei, eine Klartextdatei oder andere Dateitypen ersetzt werden. Darüber hinaus können wo eine Tabelle oder Hashtabelle erwähnt wird andere Dateistrukturen (wie Spreadsheets, relationale Datenbanken oder strukturierte Dateien) genutzt werden.
  • Weitere Implementierungen sind in den folgenden Beispielen zusammengefasst:
    Beispiel 1: Computerimplementiertes Verfahren, umfassend:
    das Empfangen von Daten durch ein Voice-Action-System, die eine neue Voice Action für eine Software-Anwendung spezifizieren, die vom besagten Voice-Action-System verschieden ist, wobei die Daten eine oder mehrere Operationen zur Ausführung der neuen Voice Action und einen oder mehrere Auslöserbegriffe zur Auslösung der neuen Voice Action umfassen.
    das Erstellen einer kontextuellen Voice-Action-Absicht für die Software-Anwendung durch das Voice-Action-System auf Grundlage von mindestens den empfangenen Daten, wobei die kontextuelle Voice-Action-Absicht Daten umfasst, die, wenn sie von der Software-Anwendung empfangen werden, anfordern, dass die Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt
    das Verknüpfen, durch das Voice-Action-System, der kontextuellen Voice-Action-Absicht mit dem einen oder den mehreren Auslöserbegriffen für die neue Voice Action;
    wobei das Voice-Action-System dazu konfiguriert ist:
    eine Angabe einer Benutzeräußerung, die von einem Gerät erhalten wurde, auf dem die Software-Anwendung installiert ist, zu empfangen,
    festzustellen, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind; und
    auf die Feststellung hin dem Gerät die kontextuelle Voice-Action-Absicht bereitzustellen und dadurch anzufordern, dass die auf dem Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  • Beispiel 2: Computerimplementiertes Verfahren nach Beispiel 1, wobei die empfangenen Daten einen Kontext spezifizieren, wobei der Kontext einen Status eines Geräts oder der Software-Anwendung spezifiziert, wenn die neue Voice Action aktiviert ist.
  • Beispiel 3: Computerimplementiertes Verfahren nach Beispiel 2, wobei der Kontext spezifiziert, dass die Software-Anwendung im Vordergrund eines Geräts läuft, auf dem die Software-Anwendung installiert ist.
  • Beispiel 4: Computerimplementiertes Verfahren aus Beispiel 2, wobei der Kontext spezifiziert, dass die Software-Anwendung im Hintergrund eines Geräts läuft, auf dem die Software-Anwendung installiert ist.
  • Beispiel 5: Computerimplementiertes Verfahren nach Beispiel 2, wobei der Kontext spezifiziert, dass die Software-Anwendung eine spezifische Aktivität ausführt.
  • Beispiel 6: Computerimplementiertes Verfahren nach Beispiel 2, wobei der Kontext spezifiziert, dass eine von der Software-Anwendung ausgeführte Aktivität spezifische Aktivität sich in einem bestimmten Aktivitätszustand befindet.
  • Beispiel Nr. 7: Computerimplementiertes Verfahren nach einem der Beispiele 2 bis 6, umfassend:
    das Verknüpfen der kontextuellen Voice-Action-Absicht mit dem Kontext für die neue Voice-Action;
    das Empfangen von Kontextinformation durch das Voice-Action-System, die einen Status eines bestimmten Geräts, auf dem die Software-Anwendung installiert ist, oder der auf dem bestimmten Gerät installierten Software-Anwendung angibt;
    das Feststellen, dass die Kontextinformation den Kontext für die neue Voice Action erfüllt; und
    das Bereitstellen, in Reaktion auf das Feststellen, dass eine Transkription einer Benutzeräußerung, die vom bestimmten Gerät erhalten wird, mit dem einen oder den mehreren Auslöserbegriffen übereinstimmt, die mit der kontextuellen Voice-Action-Absicht verknüpft sind, und dass die Kontextinformation den mit der kontextuellen Voice-Action-Absicht verknüpften Kontext erfüllt, durch das Voice-Action-System für das bestimmte Gerät, der kontextuellen Voice-Action-Absicht, und dadurch die Anfrage, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  • Beispiel Nr. 8: Computerimplementiertes Verfahren nach Beispiel 7, wobei das Empfangen der Kontextinformation, die den Status des bestimmten Geräts oder der auf dem bestimmten Gerät installierten Software-Anwendung angibt, Folgendes umfasst:
    das Bereitstellen, durch das Voice-Action-System für das bestimmte Gerät, einer Anfrage für bestimmte Kontextinformation; und
    das Empfangen der bestimmten Kontextinformation auf die Anfrage hin.
  • Beispiel Nr. 9: Computerimplementiertes Verfahren nach einem der Beispiele 7 oder 8, umfassend:
    das Feststellen, dass die Kontextinformation einen Kontext für eine zweite Voice Action erfüllt, und dass die Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit einer Absicht für die zweite Voice Action verknüpft sind, wobei die Absicht für die zweite Voice Action eine oder mehrere Operationen zur Ausführung der zweiten Voice Action spezifiziert.
    das Auswählen, in Reaktion auf das Feststellen, einer Voice Action aus der neuen Voice Action und der zweiten Voice Action; und
    das Bereitstellen, durch das Voice-Action-System für das bestimmte Gerät, der Absicht, die mit der ausgewählten Voice Action verknüpft ist, wodurch die Anfrage ergeht, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der ausgewählten Voice Action ausführt.
  • Beispiel Nr. 10: Computerimplementiertes Verfahren nach Beispiel 9, wobei das Auswählen der ausgewählten Voice Action aus der neuen Voice Action und der zweiten Voice Action die Auswahl der ausgewählten Voice Action auf den Empfang von Daten hin umfasst, die eine Benutzerauswahl einer aus der neuen Voice Action oder der zweiten Voice Action angeben.
  • Beispiel 11: Computerimplementiertes Verfahren nach Beispiel 9 oder 10, wobei die Auswahl der ausgewählten Voice Action aus der neuen Voice Action und der zweiten Voice Action Folgendes umfasst:
    das Zuweisen eines jeweiligen Werts für die neue Voice Action und die zweite Voice Action; und
    das Auswählen der ausgewählten Voice Action basierend auf mindestens dem jeweils zugewiesenen Wert für die neue Voice Action und die zweite Voice Action.
  • Beispiel Nr. 12: Computerimplementiertes Verfahren nach einem der Beispiele 9 bis 11, wobei das Auswählen der ausgewählten Voice Action aus der neuen Voice Action und der zweiten Voice Action das Auswählen der ausgewählten Voice Action auf die Feststellung hin umfasst, dass die mit der ausgewählten Voice Action verknüpfte Software-Anwendung im Vordergrund läuft.
  • Beispiel Nr. 13: Computerimplementiertes Verfahren nach einem der Beispiele 1 bis 12, wobei die Erstellung der kontextuellen Voice-Action-Absicht für die Software-Anwendung umfasst festzustellen, dass die eine oder die mehreren Operationen der neuen Voice Action von der Software-Anwendung ausführbar sind.
  • Beispiel Nr. 14: Computerimplementiertes Verfahren nach einem der Beispiele 1 bis 13, umfassend:
    das Feststellen, dass eine Transkription einer Benutzeräußerung, die von einem bestimmten Gerät erhalten wird, auf dem die Software-Anwendung installiert ist, dem einen oder den mehreren Auslöserbegriffen ähnelt, die mit der kontextuellen Voice-Action-Absicht verknüpft sind;
    das Bereitstellen, in Reaktion auf das Feststellen, durch das Voice-Action-System für das bestimmte Gerät, von Daten, die eine Anfrage einer Benutzereingabe angeben, die bestätigt, ob die Benutzeräußerung den einen oder die mehreren Auslöserbegriffe angegeben hat oder mit der Absicht erfolgt ist, die Software-Anwendung zu veranlassen, die neue Voice Action auszuführen;
    das Empfangen, in Reaktion auf die Anfrage, durch das Voice-Action System und vom bestimmten Gerät, von Daten, die eine Bestätigung angeben; und
    das Bereitstellen, in Reaktion auf das Empfangen der Daten, die die Bestätigung angeben, der kontextuellen Voice-Action-Absicht an das bestimmte Gerät durch das Voice-Action-System, wodurch die Anfrage ergeht, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  • Beispiel Nr. 15: Computerimplementiertes Verfahren nach einem der Beispiele 1 bis 14, umfassend:
    das Empfangen, durch das Voice-Action-System von einem mit der Software-Anwendung verknüpften Entwickler, einer Anfrage, die neue Voice Action für die Software-Anwendung auszurollen; und
    das Bereitstellen, in Reaktion auf die Anfrage, der neuen Voice Action für die Software-Anwendung in Reaktion auf die Anfrage, wobei das Ausrollen der neuen Voice Action für die Software-Anwendung die neue Voice Action für die Software-Anwendung freischaltet.
  • Beispiel Nr. 16: Computerimplementiertes Verfahren nach einem der Beispiele 1 bis 15, umfassend:
    das Empfang, durch das Voice-Action-System von einem mit der Software-Anwendung verknüpften Entwickler, einer Anfrage, das Ausrollen der neuen Voice Action für die Software-Anwendung rückgängig zu machen; und
    das Rückgängigmachen, in Reaktion auf die Anfrage, des Ausrollens der neuen Voice Action für die Software-Anwendung auf die Anfrage hin, wobei das Rückgängigmachen des Ausrollens der neuen Voice Action für die Software-Anwendung die neue Voice Action für die Software-Anwendung deaktiviert.
  • Beispiel Nr. 17: Computerimplementiertes Verfahren nach einem der Beispiele 1 bis 16, umfassend:
    das Empfang, durch das Voice-Action-System von einem mit der Software-Anwendung verknüpften Entwickler, einer Anfrage, die Erprobung der neuen Voice Action freizugeben, wobei die Anfrage ein oder mehrere Geräte spezifiziert, für die die neue Voice Action freigegeben werden soll; und
    das Freigeben, in Reaktion auf die Anfrage, der neuen Voice Action für das eine oder die mehreren spezifizierten Geräte, wobei die neue Voice Action für Geräte, die nicht in den spezifizierten Geräten enthalten sind, deaktiviert ist.
  • Beispiel Nr. 18: Computerimplementiertes Verfahren nach einem der Beispiele 1 bis 17, umfassend:
    das Empfang, durch das Voice-Action-System, einer Angabe einer Benutzeräußerung, die von einem bestimmten Gerät erhalten wird, auf dem die Software-Anwendung installiert ist.
    das Feststellen, durch das Voice-Action-System, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind; und
    das Bereitstellen, in Reaktion auf das Feststellen, der kontextuellen Voice-Action-Absicht an das bestimmte Gerät durch das Voice-Action-System, wodurch die Anfrage ergeht, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  • Beispiel Nr. 19: Nichtflüchtiges computerlesbares Speichergerät, das Software speichert, die durch einen oder mehrere Computer ausführbare Anweisungen umfasst, die bei einer solchen Ausführung den einen oder die mehreren Computer zum Ausführen von Tätigkeiten veranlassen, umfassend die Schritte der Beispiele 1 bis 18.
  • Verfahren, Systeme und Apparate zum Empfangen, durch ein Voice-Action-System, von Daten, die eine neue Voice Action für eine Anwendung spezifizieren, die vom Voice-Action-System verschieden ist, wurden beschrieben. Eine Voice-Action-Absicht für die Anwendung wird auf der Grundlage von zumindest den Daten erstellt, wobei die Voice-Action-Absicht Daten umfasst, die, wenn sie von der Anwendung empfangen werden, anfordern, dass die Anwendung eine oder mehrere Operationen ausführt, die für die neue Voice Action spezifiziert sind. Die Voice-Action-Absicht ist mit für die neue Voice Action spezifizierten Auslöserbegriffen verknüpft. Das Voice-Action-System ist dazu konfiguriert, eine Angabe einer Benutzeräußerung zu empfangen, die von einem Gerät erhalten wird, auf dem die Anwendung installiert ist, und stellt fest, dass eine Transkription der Benutzeräußerung den Auslöserbegriffen entspricht, die mit der Voice-Action-Absicht verknüpft sind. Auf die Feststellung hin stellt das Voice-Action-System dem Gerät die Voice-Action-Absicht bereit.
  • Somit wurden bestimmte Ausführungsformen beschrieben. Weitere Ausführungsformen liegen innerhalb des Schutzumfangs der folgenden Patentansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und erzielen immer noch gewünschte Ergebnisse.

Claims (21)

  1. Computerimplementiertes Verfahren, umfassend: das Empfang von Daten durch ein Voice-Action-System, die eine neue Voice Action für eine Software-Anwendung spezifizieren, die vom besagten Voice-Action-System verschieden ist, wobei die Daten eine oder mehrere Operationen zum Ausführen der neuen Voice Action und einen oder mehrere Auslöserbegriffe zur Auslösung der neuen Voice Action umfassen. das Erstellen einer kontextuellen Voice-Action-Absicht für die Software-Anwendung durch das Voice-Action-System auf Grundlage von mindestens den empfangenen Daten, wobei die kontextuelle Voice-Action-Absicht Daten umfasst, die, wenn sie von der Software-Anwendung empfangen werden, anfordern, dass die Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt; Verknüpfung, durch das Voice-Action-System, der kontextuellen Voice-Action-Absicht mit dem einen oder den mehreren Auslöserbegriffen für die neue Voice Action; wobei das Voice-Action-System dazu konfiguriert ist: eine Angabe einer Benutzeräußerung, die von einem Gerät erhalten wurde, auf dem die Software-Anwendung installiert ist, zu empfangen, festzustellen, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind; und dem Gerät die kontextuelle Voice-Action-Absicht bereitzustellen, in Reaktion auf das Feststellen, und dadurch anzufordern, dass die auf dem Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei die empfangenen Daten einen Kontext spezifizieren, wobei der Kontext einen Status eines Geräts oder der Software-Anwendung spezifiziert, wenn die neue Voice Action aktiviert ist.
  3. Computerimplementiertes Verfahren nach Anspruch 2, wobei der Kontext spezifiziert, dass die Software-Anwendung im Vordergrund eines Geräts läuft, auf dem die Software-Anwendung installiert ist.
  4. Computerimplementiertes Verfahren nach Anspruch 2, wobei der Kontext spezifiziert, dass die Software-Anwendung im Hintergrund eines Geräts läuft, auf dem die Software-Anwendung installiert ist.
  5. Computerimplementiertes Verfahren nach Anspruch 2, wobei der Kontext spezifiziert, dass die Software-Anwendung eine spezifische Aktivität ausführt.
  6. Computerimplementiertes Verfahren nach Anspruch 2, wobei der Kontext spezifiziert, dass eine von der Software-Anwendung ausgeführte Aktivität spezifische Aktivität sich in einem bestimmten Aktivitätszustand befindet.
  7. Computerimplementiertes Verfahren nach Anspruch 2, umfassend: das Verknüpfen der kontextuellen Voice-Action-Absicht mit dem Kontext für die neue Voice-Action; das Empfangen von Kontextinformation durch das Voice-Action-System, die einen Status eines bestimmten Geräts, auf dem die Software-Anwendung installiert ist, oder der auf dem bestimmten Gerät installierten Software-Anwendung angibt; das Feststellen, dass die Kontextinformation den Kontext für die neue Voice Action erfüllt; und das Bereitstellen, in Reaktion auf das Feststellen, dass eine Transkription einer Benutzeräußerung, die vom bestimmten Gerät erhalten wird, mit dem einen oder den mehreren Auslöserbegriffen übereinstimmt, die mit der kontextuellen Voice-Action-Absicht verknüpft sind, und dass die Kontextinformation den mit der kontextuellen Voice-Action-Absicht verknüpften Kontext erfüllt, durch das Voice-Action-System für das bestimmte Gerät, der kontextuellen Voice-Action-Absicht, und dadurch die Anforderung, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  8. Computerimplementiertes Verfahren nach Anspruch 7, wobei das Empfangen der Kontextinformation, die den Status des bestimmten Geräts oder der auf dem bestimmten Gerät installierten Software-Anwendung angibt, Folgendes umfasst: das Bereitstellen, durch das Voice-Action-System für das bestimmte Gerät, einer Anforderung für bestimmte Kontextinformation; und das Empfangen der bestimmten Kontextinformation auf die Anforderung hin.
  9. Computerimplementiertes Verfahren nach Anspruch 7, umfassend: das Feststellen, dass die Kontextinformation einen Kontext für eine zweite Voice Action erfüllt, und dass die Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit einer Absicht für die zweite Voice Action verknüpft sind, wobei die Absicht für die zweite Voice Action eine oder mehrere Operationen zur Ausführung der zweiten Voice Action spezifiziert. das Auswählen, in Reaktion auf das Feststellen, einer Voice Action aus der neuen Voice Action und der zweiten Voice Action; und das Bereitstellen, durch das Voice-Action-System für das bestimmte Gerät, der Absicht, die mit der ausgewählten Voice Action verknüpft ist, wodurch die Anforderung ergeht, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der ausgewählten Voice Action ausführt.
  10. Computerimplementiertes Verfahren nach Anspruch 9, wobei das Auswählen der ausgewählten Voice Action aus der neuen Voice Action und der zweiten Voice Action das Auswählen der ausgewählten Voice Action auf den Empfang von Daten hin umfasst, die eine Benutzerauswahl einer aus der neuen Voice Action oder der zweiten Voice Action angeben.
  11. Computerimplementiertes Verfahren nach Anspruch 9, wobei das Auswählen der ausgewählten Voice Action aus der neuen Voice Action und der zweiten Voice Action Folgendes umfasst: das Zuweisen eines jeweiligen Werts für die neue Voice Action und die zweite Voice Action; und das Auswählen der ausgewählten Voice Action basierend auf mindestens dem jeweils zugewiesenen Wert für die neue Voice Action und die zweite Voice Action.
  12. Computerimplementiertes Verfahren nach Anspruch 9, wobei das Auswählen der ausgewählten Voice Action aus der neuen Voice Action und der zweiten Voice Action das Auswählen der ausgewählten Voice Action in Reaktion auf das Feststellen umfasst, dass die mit der ausgewählten Voice Action verknüpfte Software-Anwendung im Vordergrund läuft.
  13. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Erstellen der kontextuellen Voice-Action-Absicht für die Software-Anwendung das Feststellen umfasst, dass die eine oder die mehreren Operationen der neuen Voice Action von der Software-Anwendung ausführbar sind.
  14. Computerimplementiertes Verfahren nach Anspruch 1, umfassend: das Feststellen, dass eine Transkription einer Benutzeräußerung, die von einem bestimmten Gerät erhalten wird, auf dem die Software-Anwendung installiert ist, dem einen oder den mehreren Auslöserbegriffen ähnelt, die mit der kontextuellen Voice-Action-Absicht verknüpft sind; das Bereitstellen, in Reaktion auf das Feststellen, durch das Voice-Action-System für das bestimmte Gerät, von Daten, die eine Anfrage einer Benutzereingabe angeben, die bestätigt, ob die Benutzeräußerung den einen oder die mehreren Auslöserbegriffe angegeben hat oder mit der Absicht erfolgt ist, die Software-Anwendung zu veranlassen, die neue Voice Action auszuführen; das Empfangen in Reaktion auf die Anfrage, durch das Voice-Action System und vom bestimmten Gerät, von Daten, die eine Bestätigung angeben; und das Bereitstellen, in Reaktion auf das Empfangen der Daten, die die Bestätigung angeben, der kontextuellen Voice-Action-Absicht an das bestimmte Gerät durch das Voice-Action-System, wodurch die Anfrage ergeht, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  15. Computerimplementiertes Verfahren nach Anspruch 1, umfassend: das Empfangen, durch das Voice-Action-System von einem mit der Software-Anwendung verknüpften Entwickler, einer Anfrage, die neue Voice Action für die Software-Anwendung auszurollen; und das Bereitstellen, in Reaktion auf die Anfrage, der neuen Voice Action für die Software-Anwendung auf die Anfrage hin, wobei das Bereitstellen der neuen Voice Action für die Software-Anwendung die neue Voice Action für die Software-Anwendung freischaltet.
  16. Computerimplementiertes Verfahren nach Anspruch 1, umfassend: das Empfangen, durch das Voice-Action-System von einem mit der Software-Anwendung verknüpften Entwickler, einer Anfrage, das Ausrollen der neuen Voice Action für die Software-Anwendung rückgängig zu machen; und auf die Anfrage hin, Rückgängigmachen des Ausrollens der neuen Voice Action für die Software-Anwendung auf die Anfrage hin, wobei das Rückgängigmachen des Ausrollens der neuen Voice Action für die Software-Anwendung die neue Voice Action für die Software-Anwendung deaktiviert.
  17. Computerimplementiertes Verfahren nach Anspruch 1, umfassend: das Empfangen, durch das Voice-Action-System von einem mit der Software-Anwendung verknüpften Entwickler, einer Anfrage, die Erprobung der neuen Voice Action freizugeben, wobei die Anfrage ein oder mehrere Geräte spezifiziert, für die die neue Voice Action freigegeben werden soll; und das Freigeben, in Reaktion auf die Anfrage, der neuen Voice Action für das eine oder die mehreren spezifizierten Geräte, wobei die neue Voice Action für Geräte, die nicht in den spezifizierten Geräten enthalten sind, deaktiviert ist.
  18. Computerimplementiertes Verfahren nach Anspruch 1, umfassend: das Empfangen, durch das Voice-Action-System, einer Angabe einer Benutzeräußerung, die von einem bestimmten Gerät erhalten wird, auf dem die Software-Anwendung installiert ist. das Feststellen, durch das Voice-Action-System, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind; und das Bereitstellen, in Reaktion auf das Feststellen, der kontextuellen Voice-Action-Absicht an das bestimmte Gerät durch das Voice-Action-System, wodurch die Anfrage ergeht, dass die auf dem bestimmten Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  19. System, umfassend: ein oder mehrere Computer, und eine oder mehrere Speichereinrichtungen, welche Anweisungen speichern, die betreibbar sind, wenn sie von einem oder mehreren Computern ausgeführt werden, um den ein oder die mehreren Computer dazu zu veranlassen, Operationen auszuführen, welche das Folgende umfassen: das Empfangen von Daten durch ein Voice-Action-System, die eine neue Voice Action für eine Software-Anwendung spezifizieren, die vom besagten Voice-Action-System verschieden ist, wobei die Daten eine oder mehrere Operationen zur Ausführung der neuen Voice Action und einen oder mehrere Auslöserbegriffe zur Auslösung der neuen Voice Action umfassen. das Erstellen einer kontextuellen Voice-Action-Absicht für die Software-Anwendung durch das Voice-Action-System auf Grundlage von mindestens den empfangenen Daten, wobei die kontextuelle Voice-Action-Absicht Daten umfasst, die, wenn sie von der Software-Anwendung empfangen werden, anfordern, dass die Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt; das Verknüpfen, durch das Voice-Action-System, der kontextuellen Voice-Action-Absicht mit dem einen oder den mehreren Auslöserbegriffen für die neue Voice Action; wobei das Voice-Action-System dazu konfiguriert ist: das Empfangen einer Angabe einer Benutzeräußerung, die von einem Gerät erhalten wurde, auf dem die Software-Anwendung installiert ist, das Feststellen, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind; und das Bereitstellen, in Reaktion auf das Feststellen, der kontextuellen Voice-Action-Absicht für das Gerät und dadurch anzufordern, dass die auf dem Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
  20. System nach Anspruch 19, wobei die empfangenen Daten einen Kontext spezifizieren, wobei der Kontext einen Status eines Geräts oder der Software-Anwendung spezifiziert, wenn die neue Voice Action aktiviert ist.
  21. Nichtflüchtiges computerlesbares Speichergerät, welches Software speichert, die durch einen oder mehrere Computer ausführbare Anweisungen umfasst, die bei einer solchen Ausführung den einen oder die mehreren Computer zum Ausführen von Tätigkeiten veranlassen, umfassend: das Empfangen von Daten durch ein Voice-Action-System, die eine neue Voice Action für eine Software-Anwendung spezifizieren, die vom besagten Voice-Action-System verschieden ist, wobei die Daten eine oder mehrere Operationen zur Ausführung der neuen Voice Action und einen oder mehrere Auslöserbegriffe zur Auslösung der neuen Voice Action umfassen. das Erstellen einer kontextuellen Voice-Action-Absicht für die Software-Anwendung durch das Voice-Action-System auf Grundlage von mindestens den empfangenen Daten, wobei die kontextuelle Voice-Action-Absicht Daten umfasst, die, wenn sie von der Software-Anwendung empfangen werden, anfordern, dass die Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt; Verknüpfung, durch das Voice-Action-System, der kontextuellen Voice-Action-Absicht mit dem einen oder den mehreren Auslöserbegriffen für die neue Voice Action; wobei das Voice-Action-System dazu konfiguriert ist: eine Angabe einer Benutzeräußerung, die von einem Gerät erhalten wurde, auf dem die Software-Anwendung installiert ist, zu empfangen; das Feststellen, dass eine Transkription der Benutzeräußerung dem einen oder den mehreren Auslöserbegriffen entspricht, die mit der kontextuellen Voice-Action-Absicht verknüpft sind; und das Bereitstellen, in Reaktion auf das Feststellen, der kontextuellen Voice-Action-Absicht dem Gerät und dadurch anzufordern, dass die auf dem Gerät installierte Software-Anwendung die eine oder die mehreren Operationen der neuen Voice Action ausführt.
DE102016226302.1A 2016-03-01 2016-12-29 Voice-action-system für entwickler Active DE102016226302B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/057,453 2016-03-01
US15/057,453 US9922648B2 (en) 2016-03-01 2016-03-01 Developer voice actions system

Publications (2)

Publication Number Publication Date
DE102016226302A1 true DE102016226302A1 (de) 2017-09-07
DE102016226302B4 DE102016226302B4 (de) 2024-02-22

Family

ID=57799868

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016226302.1A Active DE102016226302B4 (de) 2016-03-01 2016-12-29 Voice-action-system für entwickler
DE202016107480.0U Active DE202016107480U1 (de) 2016-03-01 2016-12-29 Voice-Action-Systeme für Entwickler

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202016107480.0U Active DE202016107480U1 (de) 2016-03-01 2016-12-29 Voice-Action-Systeme für Entwickler

Country Status (8)

Country Link
US (1) US9922648B2 (de)
EP (1) EP3424045B1 (de)
JP (1) JP6704450B2 (de)
CN (2) CN113113014A (de)
DE (2) DE102016226302B4 (de)
GB (1) GB2547968A (de)
RU (1) RU2704876C1 (de)
WO (1) WO2017151215A1 (de)

Families Citing this family (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US20120311585A1 (en) 2011-06-03 2012-12-06 Apple Inc. Organizing task items that represent tasks to perform
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
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
BR112015018905B1 (pt) 2013-02-07 2022-02-22 Apple Inc Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico
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
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
CN105264524B (zh) 2013-06-09 2019-08-02 苹果公司 用于实现跨数字助理的两个或更多个实例的会话持续性的设备、方法、和图形用户界面
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
EP3149728B1 (de) 2014-05-30 2019-01-16 Apple Inc. Eingabeverfahren durch einzelne äusserung mit mehreren befehlen
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
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
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
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
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
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
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
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
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
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US9922648B2 (en) 2016-03-01 2018-03-20 Google Llc Developer voice actions system
US10049670B2 (en) * 2016-06-06 2018-08-14 Google Llc Providing voice action discoverability example for trigger term
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10462619B2 (en) * 2016-06-08 2019-10-29 Google Llc Providing a personal assistant module with a selectively-traversable state machine
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10127926B2 (en) 2016-06-10 2018-11-13 Google Llc Securely executing voice actions with speaker identification and authentication input types
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
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
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) * 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
KR102348758B1 (ko) * 2017-04-27 2022-01-07 삼성전자주식회사 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
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
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
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
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
DK179549B1 (en) 2017-05-16 2019-02-12 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US11295735B1 (en) * 2017-12-13 2022-04-05 Amazon Technologies, Inc. Customizing voice-control for developer devices
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
US11145291B2 (en) * 2018-01-31 2021-10-12 Microsoft Technology Licensing, Llc Training natural language system with generated dialogues
US10861440B2 (en) * 2018-02-05 2020-12-08 Microsoft Technology Licensing, Llc Utterance annotation user interface
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US11133001B2 (en) * 2018-03-20 2021-09-28 Microsoft Technology Licensing, Llc Generating dialogue events for natural language system
US20190295540A1 (en) * 2018-03-23 2019-09-26 Cirrus Logic International Semiconductor Ltd. Voice trigger validator
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
CN108376544B (zh) * 2018-03-27 2021-10-15 京东方科技集团股份有限公司 一种信息处理方法、装置、设备及计算机可读存储介质
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
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
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
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
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US10496705B1 (en) 2018-06-03 2019-12-03 Apple Inc. Accelerated task performance
CN108881466B (zh) * 2018-07-04 2020-06-26 百度在线网络技术(北京)有限公司 交互方法和装置
KR20230145521A (ko) * 2018-08-23 2023-10-17 구글 엘엘씨 멀티-어시스턴트 환경의 특성에 따른 어시스턴트 응답성 규정하기
US10410639B1 (en) * 2018-09-06 2019-09-10 International Business Machines Corporation Determining contextual relevance in multi-auditory scenarios
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
US10943185B1 (en) * 2018-10-23 2021-03-09 Bank Of America Corporation Supervised machine-learning training platform with isolated update testing and bi-directional update propogation
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
US11062697B2 (en) * 2018-10-29 2021-07-13 International Business Machines Corporation Speech-to-text training data based on interactive response data
US11087749B2 (en) * 2018-12-20 2021-08-10 Spotify Ab Systems and methods for improving fulfillment of media content related requests via utterance-based human-machine interfaces
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
CN109817210B (zh) * 2019-02-12 2021-08-17 百度在线网络技术(北京)有限公司 语音写作方法、装置、终端和存储介质
US11741951B2 (en) * 2019-02-22 2023-08-29 Lenovo (Singapore) Pte. Ltd. Context enabled voice commands
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
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
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
WO2020226670A1 (en) * 2019-05-06 2020-11-12 Google Llc Initializing non-assistant background actions, via an automated assistant, while accessing a non-assistant application
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11468890B2 (en) 2019-06-01 2022-10-11 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
US11488406B2 (en) 2019-09-25 2022-11-01 Apple Inc. Text detection using global geometry estimators
CN111354360A (zh) * 2020-03-17 2020-06-30 北京百度网讯科技有限公司 语音交互处理方法、装置和电子设备
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11810578B2 (en) 2020-05-11 2023-11-07 Apple Inc. Device arbitration for digital assistant-based intercom systems
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
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
US11558546B2 (en) 2020-11-24 2023-01-17 Google Llc Conditional camera control via automated assistant commands
CN113593544A (zh) * 2021-06-11 2021-11-02 青岛海尔科技有限公司 设备的控制方法和装置、存储介质及电子装置
US11727068B2 (en) * 2021-11-29 2023-08-15 Salesforce, Inc. Customizable intent driven application triggering system

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0607615B1 (de) * 1992-12-28 1999-09-15 Kabushiki Kaisha Toshiba Spracherkennungs-Schnittstellensystem, das als Fenstersystem und Sprach-Postsystem verwendbar ist
CA2119397C (en) 1993-03-19 2007-10-02 Kim E.A. Silverman Improved automated voice synthesis employing enhanced prosodic treatment of text, spelling of text and rate of annunciation
US6125347A (en) * 1993-09-29 2000-09-26 L&H Applications Usa, Inc. System for controlling multiple user application programs by spoken input
US5748191A (en) 1995-07-31 1998-05-05 Microsoft Corporation Method and system for creating voice commands using an automatically maintained log interactions performed by a user
DE69822296T2 (de) 1997-10-20 2005-02-24 Koninklijke Philips Electronics N.V. Mustererkennungsregistrierung in einem verteilten system
US6263375B1 (en) 1998-08-31 2001-07-17 International Business Machines Corp. Method for creating dictation macros
US6192343B1 (en) * 1998-12-17 2001-02-20 International Business Machines Corporation Speech command input recognition system for interactive computer display with term weighting means used in interpreting potential commands from relevant speech terms
US6424357B1 (en) 1999-03-05 2002-07-23 Touch Controls, Inc. Voice input system and method of using same
EP1045374B1 (de) * 1999-04-13 2010-08-11 Sony Deutschland GmbH Zusammenfügen von Sprachschnittstellen zur gleichzeitigen Benützung von Vorrichtungen und Anwendungen
US6374226B1 (en) * 1999-08-06 2002-04-16 Sun Microsystems, Inc. System and method for interfacing speech recognition grammars to individual components of a computer program
US6442522B1 (en) * 1999-10-12 2002-08-27 International Business Machines Corporation Bi-directional natural language system for interfacing with multiple back-end applications
US6748361B1 (en) 1999-12-14 2004-06-08 International Business Machines Corporation Personal speech assistant supporting a dialog manager
US7085723B2 (en) * 2001-01-12 2006-08-01 International Business Machines Corporation System and method for determining utterance context in a multi-context speech application
US20050234727A1 (en) * 2001-07-03 2005-10-20 Leo Chiu Method and apparatus for adapting a voice extensible markup language-enabled voice system for natural speech recognition and system response
US7167831B2 (en) * 2002-02-04 2007-01-23 Microsoft Corporation Systems and methods for managing multiple grammars in a speech recognition system
US7398209B2 (en) * 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7502737B2 (en) 2002-06-24 2009-03-10 Intel Corporation Multi-pass recognition of spoken dialogue
JP4107093B2 (ja) * 2003-01-30 2008-06-25 株式会社日立製作所 対話型端末装置及び対話アプリケーション提供方法
US7013282B2 (en) 2003-04-18 2006-03-14 At&T Corp. System and method for text-to-speech processing in a portable device
US20080249779A1 (en) * 2003-06-30 2008-10-09 Marcus Hennecke Speech dialog system
US7363228B2 (en) 2003-09-18 2008-04-22 Interactive Intelligence, Inc. Speech recognition system and method
US7158779B2 (en) * 2003-11-11 2007-01-02 Microsoft Corporation Sequential multimodal input
US8942985B2 (en) * 2004-11-16 2015-01-27 Microsoft Corporation Centralized method and system for clarifying voice commands
JP3984988B2 (ja) 2004-11-26 2007-10-03 キヤノン株式会社 ユーザインタフェース設計装置およびその制御方法
US8788271B2 (en) 2004-12-22 2014-07-22 Sap Aktiengesellschaft Controlling user interfaces with contextual voice commands
US7640160B2 (en) * 2005-08-05 2009-12-29 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7949529B2 (en) 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
JP4260788B2 (ja) 2005-10-20 2009-04-30 本田技研工業株式会社 音声認識機器制御装置
JP4878471B2 (ja) 2005-11-02 2012-02-15 キヤノン株式会社 情報処理装置およびその制御方法
US8301448B2 (en) * 2006-03-29 2012-10-30 Nuance Communications, Inc. System and method for applying dynamic contextual grammars and language models to improve automatic speech recognition accuracy
US7899673B2 (en) * 2006-08-09 2011-03-01 Microsoft Corporation Automatic pruning of grammars in a multi-application speech recognition interface
KR100873956B1 (ko) * 2006-08-17 2008-12-15 삼성전자주식회사 에뮬레이션 시스템
US7881932B2 (en) * 2006-10-02 2011-02-01 Nuance Communications, Inc. VoiceXML language extension for natively supporting voice enrolled grammars
US20080114604A1 (en) 2006-11-15 2008-05-15 Motorola, Inc. Method and system for a user interface using higher order commands
US8099287B2 (en) * 2006-12-05 2012-01-17 Nuance Communications, Inc. Automatically providing a user with substitutes for potentially ambiguous user-defined speech commands
US7840409B2 (en) 2007-02-27 2010-11-23 Nuance Communications, Inc. Ordering recognition results produced by an automatic speech recognition engine for a multimodal application
US20090030691A1 (en) * 2007-03-07 2009-01-29 Cerra Joseph P Using an unstructured language model associated with an application of a mobile communication facility
US7877258B1 (en) 2007-03-29 2011-01-25 Google Inc. Representing n-gram language models for compact storage and fast retrieval
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
US8165886B1 (en) 2007-10-04 2012-04-24 Great Northern Research LLC Speech interface system and method for control and interaction with applications on a computing system
US8219407B1 (en) * 2007-12-27 2012-07-10 Great Northern Research, LLC Method for processing the output of a speech recognizer
US8370160B2 (en) 2007-12-31 2013-02-05 Motorola Mobility Llc Methods and apparatus for implementing distributed multi-modal applications
US20090171663A1 (en) 2008-01-02 2009-07-02 International Business Machines Corporation Reducing a size of a compiled speech recognition grammar
US7917368B2 (en) 2008-02-25 2011-03-29 Mitsubishi Electric Research Laboratories, Inc. Method for interacting with users of speech recognition systems
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
TWI420433B (zh) 2009-02-27 2013-12-21 Ind Tech Res Inst 語音互動系統與方法
US10540976B2 (en) 2009-06-05 2020-01-21 Apple Inc. Contextual voice commands
US9684741B2 (en) 2009-06-05 2017-06-20 Microsoft Technology Licensing, Llc Presenting search results according to query domains
US20110099507A1 (en) 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
US8868427B2 (en) 2009-12-11 2014-10-21 General Motors Llc System and method for updating information in electronic calendars
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
US8515734B2 (en) 2010-02-08 2013-08-20 Adacel Systems, Inc. Integrated language model, related systems and methods
US8731939B1 (en) 2010-08-06 2014-05-20 Google Inc. Routing queries based on carrier phrase registration
US8682661B1 (en) 2010-08-31 2014-03-25 Google Inc. Robust speech recognition
DE102010040553A1 (de) * 2010-09-10 2012-03-15 Siemens Aktiengesellschaft Spracherkennungsverfahren
US20120078635A1 (en) 2010-09-24 2012-03-29 Apple Inc. Voice control system
KR101828273B1 (ko) 2011-01-04 2018-02-14 삼성전자주식회사 결합기반의 음성명령 인식 장치 및 그 방법
US9082408B2 (en) 2011-06-13 2015-07-14 Mmodal Ip Llc Speech recognition using loosely coupled components
WO2012177646A2 (en) 2011-06-19 2012-12-27 Mmodal Ip Llc Speech recognition using context-aware recognition models
US8762156B2 (en) * 2011-09-28 2014-06-24 Apple Inc. Speech recognition repair using contextual information
JP2012128440A (ja) * 2012-02-06 2012-07-05 Denso Corp 音声対話装置
US20130219277A1 (en) * 2012-02-21 2013-08-22 Mobotap Inc. Gesture and Voice Controlled Browser
US20130238326A1 (en) 2012-03-08 2013-09-12 Lg Electronics Inc. Apparatus and method for multiple device voice control
EP2639792A1 (de) 2012-03-16 2013-09-18 France Télécom Sprachsteuerung von Anwendungen durch Verknüpfung von Benutzereingaben mit Handlung-Kontext-Identifiziererpaaren
US9275411B2 (en) 2012-05-23 2016-03-01 Google Inc. Customized voice action system
US9489940B2 (en) 2012-06-11 2016-11-08 Nvoq Incorporated Apparatus and methods to update a language model in a speech recognition system
US8532675B1 (en) 2012-06-27 2013-09-10 Blackberry Limited Mobile communication device user interface for manipulation of data items in a physical space
US8965759B2 (en) 2012-09-01 2015-02-24 Sarah Hershenhorn Digital voice memo transfer and processing
US10042603B2 (en) 2012-09-20 2018-08-07 Samsung Electronics Co., Ltd. Context aware service provision method and apparatus of user device
KR20140039946A (ko) * 2012-09-28 2014-04-02 삼성전자주식회사 영상처리장치 및 그 제어방법, 영상처리 시스템
KR20140089861A (ko) 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
US9112984B2 (en) * 2013-03-12 2015-08-18 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
US20140279233A1 (en) 2013-03-14 2014-09-18 Andrew Man-Hon Lau System and method for an affinity capture, user feedback and affinity analysis
US9292254B2 (en) 2013-05-15 2016-03-22 Maluuba Inc. Interactive user interface for an intelligent assistant
US9443507B2 (en) 2013-07-15 2016-09-13 GM Global Technology Operations LLC System and method for controlling a speech recognition system
US10095471B2 (en) * 2013-09-20 2018-10-09 Oracle International Corporation Context aware voice interface for computing devices
KR102155482B1 (ko) * 2013-10-15 2020-09-14 삼성전자 주식회사 디스플레이장치 및 그 제어방법
US9697522B2 (en) 2013-11-01 2017-07-04 Plantronics, Inc. Interactive device registration, setup and use
US8849675B1 (en) * 2013-12-18 2014-09-30 Google Inc. Suggested query constructor for voice actions
US9582246B2 (en) 2014-03-04 2017-02-28 Microsoft Technology Licensing, Llc Voice-command suggestions based on computer context
US9639854B2 (en) 2014-06-26 2017-05-02 Nuance Communications, Inc. Voice-controlled information exchange platform, such as for providing information to supplement advertising
US9548066B2 (en) 2014-08-11 2017-01-17 Amazon Technologies, Inc. Voice application architecture
US9472196B1 (en) * 2015-04-22 2016-10-18 Google Inc. Developer voice actions system
US9922648B2 (en) * 2016-03-01 2018-03-20 Google Llc Developer voice actions system

Also Published As

Publication number Publication date
WO2017151215A1 (en) 2017-09-08
CN107146606A (zh) 2017-09-08
EP3424045A1 (de) 2019-01-09
CN113113014A (zh) 2021-07-13
GB2547968A (en) 2017-09-06
JP6704450B2 (ja) 2020-06-03
DE202016107480U1 (de) 2017-06-02
RU2704876C1 (ru) 2019-10-31
CN107146606B (zh) 2020-11-10
GB201621570D0 (en) 2017-02-01
DE102016226302B4 (de) 2024-02-22
US9922648B2 (en) 2018-03-20
EP3424045B1 (de) 2020-09-23
US20170256256A1 (en) 2017-09-07
JP2019512102A (ja) 2019-05-09

Similar Documents

Publication Publication Date Title
DE102016226302B4 (de) Voice-action-system für entwickler
DE102016125508B4 (de) Auffindbarkeitssystem für Sprachaktionen
DE112016001852T5 (de) Entwicklersprachaktionssystem
DE112019001533T5 (de) Erweiterung von trainingsdaten für die klassifikation von natürlicher sprache
US11657061B2 (en) Application programming interface using digital templates to extract information from multiple data sources
US8032527B2 (en) Search filtering
WO2019011356A1 (de) Verfahren zur dialogführung zwischen mensch und computer
DE202017105860U1 (de) Bedingte Bereitstellung von Zugriff durch interaktive Assistentenmodule
DE112012001750T5 (de) Automatisierte Selbstbedienungs-Benutzerunterstützung auf der Grundlage der Ontologieanalyse
DE202016008241U1 (de) Bereitstellen von Vorschlägen für die Interaktion mit einem automatisierten Assistenten in einem Multi-User Nachrichtenaustausch-Thread
DE102018007060A1 (de) Hervorheben von Schlüsselabschnitten eines Texts innerhalb eines Dokuments
DE102019000294A1 (de) Erstellen unternehmensspezifischer Wissensgraphen
DE202011110124U1 (de) Hybridabfrageausführungsplan
DE202015009254U1 (de) Automatisch erzeugende ausführungssequenzen für workflows
DE102014215621A1 (de) Vorlagensystem zum Generieren von benutzerangepassten Dokumenten
DE112016003626T5 (de) Natürlichsprachliche Schnittstelle zu Datenbanken
DE112018006345T5 (de) Abrufen von unterstützenden belegen für komplexe antworten
DE102017122326A1 (de) Bereitstellen einer Eingabeaufforderung in einer automatisierten Dialogsitzung basierend auf ausgewähltem Inhalt von vorherigen automatisierten Dialogsitzungen
DE102009040570A1 (de) Verfahren und System zum Erzeugen eines dynamischen Hilfe-Dokuments
DE202016008173U1 (de) Einbindung von auswählbaren Anwendungsverknüpfungen in Nachrichtenaustausch-Threads
DE102013205737A1 (de) System und Verfahren zum automatischen Erkennen und interaktiven Anzeigen von Informationen über Entitäten, Aktivitäten und Ereignisse aus multimodalen natürlichen Sprachquellen
DE112020005268T5 (de) Automatisches erzeugen von schema-annotationsdateien zum umwandeln von abfragen in natürlicher sprache in eine strukturierte abfragesprache
DE202017105914U1 (de) Autonomes Liefern von Suchergebnissen rückwirkend, auch im Kontext eines Dialogassistenten
DE102010023691A1 (de) Gemeinsame Nutzung von dynamischen Inhaltsvoreinstellungen und Verhalten von EDV-Geräten
DE102019007354A1 (de) Narrationssystem für interaktive dashboards

Legal Events

Date Code Title Description
R012 Request for examination validly filed
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: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R082 Change of representative

Representative=s name: VENNER SHIPLEY GERMANY LLP, DE

Representative=s name: VENNER SHIPLEY LLP, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division