DE112022003216T5 - Early call for context data processing - Google Patents
Early call for context data processing Download PDFInfo
- Publication number
- DE112022003216T5 DE112022003216T5 DE112022003216.2T DE112022003216T DE112022003216T5 DE 112022003216 T5 DE112022003216 T5 DE 112022003216T5 DE 112022003216 T DE112022003216 T DE 112022003216T DE 112022003216 T5 DE112022003216 T5 DE 112022003216T5
- Authority
- DE
- Germany
- Prior art keywords
- utterance
- context data
- data
- data item
- routing
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Input From Keyboards Or The Like (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Ein Sprachverarbeitungssystem verwendet Kontextdaten, um die spezifischen Domänen, Subdomänen und Anwendungen zu bestimmen, die geeignet sind, als Reaktion auf gesprochene Befehle und andere Äußerungen Maßnahmen zu ergreifen. Das System kann Signale und andere Kontextdaten verwenden, die einer Äußerung zugeordnet sind, wie etwa Standortsignale, Inhaltskatalogdaten, Daten bezüglich historischen Nutzungsmustern, Daten bezüglich Inhalt, der zum Zeitpunkt einer Äußerung visuell auf einem Anzeigebildschirm einer Rechenvorrichtung dargestellt wird, andere Daten oder Kombinationen davon.A speech processing system uses context data to determine the specific domains, subdomains, and applications appropriate to take actions in response to spoken commands and other utterances. The system may use signals and other context data associated with an utterance, such as location signals, content catalog data, data regarding historical usage patterns, data regarding content visually presented on a display screen of a computing device at the time of an utterance, other data, or combinations thereof.
Description
AUFNAHME DURCH BEZUGNAHMEADDITION BY REFERENCE
Die folgenden Anmeldungen werden durch Bezugnahme hierin aufgenommen und zum Teil dieser Beschreibung gemacht:
ALLGEMEINER STAND DER TECHNIKGENERAL STATE OF THE ART
Elektronische Vorrichtungen, wie etwa sprachgestützte elektronische Vorrichtungen, sind in der Lage, verschiedene Funktionen durchzuführen. Beispielsweise kann eine Person einen Befehl aussprechen, um eine solche Vorrichtung zu aktivieren, und als Reaktion darauf kann die Vorrichtung verschiedene Funktionen durchführen und/oder die Durchführung einer oder mehrerer Maßnahmen veranlassen. Einige sprachgestützte elektronische Vorrichtungen können mit einem über ein Netzwerk zugänglichen System kommunizieren, um gesprochene Befehle zu verarbeiten, Funktionen durchzuführen und dergleichen.Electronic devices, such as voice-assisted electronic devices, are capable of performing various functions. For example, a person may issue a command to activate such a device, and in response, the device may perform various functions and/or cause one or more actions to be taken. Some voice-enabled electronic devices can communicate with a network-accessible system to process spoken commands, perform functions, and the like.
KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS
Ausführungsformen verschiedener erfindungsgemäßer Merkmale werden nun unter Bezugnahme auf die folgenden Zeichnungen beschrieben: In den Zeichnungen können Bezugszeichen erneut verwendet werden, um die Entsprechung zwischen den bezeichneten Elementen anzuzeigen. Die Zeichnungen sind zur Veranschaulichung hierin beschriebener beispielhafter Ausführungsformen bereitgestellt und sollen den Umfang der vorliegenden Offenbarung nicht einschränken.
-
1 ist ein Blockdiagramm, das Datenflüsse und Interaktionen zwischen Systemen und Komponenten einer veranschaulichenden vernetzten Sprachverarbeitungsumgebung gemäß einigen Ausführungsformen zeigt. -
2 ist ein Diagramm einer veranschaulichenden Architektur der in1 gezeigten Systeme gemäß einigen Ausführungsformen. -
3 ist ein Diagramm veranschaulichender Datenflüsse und Interaktionen zwischen Komponenten eines domäneninternen Routing-Systems und anderen Komponenten eines Sprachverarbeitungssystems gemäß einigen Ausführungsformen. -
4 ist ein Ablaufdiagramm eines veranschaulichenden Prozesses für domäneninternes Routing unter Verwendung von Kontextdaten gemäß einigen Ausführungsformen. -
5 ist ein Diagramm einer veranschaulichenden mehrschichtigen Domänenkonfiguration gemäß einigen Ausführungsformen. -
6 ist ein Diagramm veranschaulichender Datenflüsse und Interaktionen zwischen einem Kontextdatenverwaltungssystem und anderen Komponenten eines Sprachverarbeitungssystems gemäß einigen Ausführungsformen. -
7 ist ein Ablaufdiagramm eines veranschaulichenden Prozesses zum Verwalten von Kontextdaten gemäß einigen Ausführungsformen. -
8 ist ein Diagramm veranschaulichender Datenflüsse und Interaktionen zwischen einem Kontextdatenverwaltungssystem und anderen Komponenten eines Sprachverarbeitungssystems gemäß einigen Ausführungsformen.
-
1 is a block diagram showing data flows and interactions between systems and components of an illustrative networked speech processing environment, according to some embodiments. -
2 is a diagram of an illustrative architecture of the1 shown systems according to some embodiments. -
3 is a diagram illustrating data flows and interactions between components of an intra-domain routing system and other components of a speech processing system, according to some embodiments. -
4 is a flow diagram of an illustrative process for intra-domain routing using context data, according to some embodiments. -
5 is a diagram of an illustrative multi-tier domain configuration, according to some embodiments. -
6 is a diagram illustrating data flows and interactions between a context data management system and other components of a language processing system, according to some embodiments. -
7 is a flow diagram of an illustrative process for managing context data, according to some embodiments. -
8th is a diagram illustrating data flows and interactions between a context data management system and other components of a language processing system, according to some embodiments.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Die vorliegende Offenbarung ist auf ein System gerichtet, das Kontextdaten verwendet, um die spezifischen Domänen, Subdomänen und Intentionsverarbeitungsanwendungen zu bestimmen, die zum Ergreifen von Maßnahmen als Reaktion auf gesprochene Befehle und andere Äußerungen geeignet sind. In einigen Ausführungsformen kann das System Signale und andere Kontextdaten verwenden, die einer Äußerung zugeordnet sind, wie etwa Standortsignale, Inhaltskatalogdaten, Daten bezüglich historischen Nutzungsmustern, Daten bezüglich Inhalt, der zum Zeitpunkt einer Äußerung visuell auf einem Anzeigebildschirm einer Rechenvorrichtung dargestellt wird, andere Daten oder Kombinationen davon. Durch die Einbeziehung von Kontextdaten in die Routing-Entscheidungen für eine Reaktion auf potenziell mehrdeutige gesprochene Äußerungen - oder ansonsten das Ergreifen von Maßnahmen dafür -, kann ein Sprachverarbeitungssystem eine verbesserte Benutzererfahrung im Hinblick auf die vom Benutzer wahrgenommene Latenz und den Erfolg bei der Erreichung der Interaktionsziele der Benutzer bereitstellen.The present disclosure is directed to a system that uses context data to determine the specific domains, subdomains, and intention processing applications appropriate for taking actions in response to spoken commands and other utterances. In some In embodiments, the system may use signals and other contextual data associated with an utterance, such as location signals, content catalog data, data related to historical usage patterns, data related to content visually presented on a display screen of a computing device at the time of an utterance, other data, or combinations thereof . By incorporating contextual data into routing decisions for responding to - or otherwise taking action on - potentially ambiguous spoken utterances, a speech processing system can provide an improved user experience in terms of user-perceived latency and success in achieving interaction goals the user provides.
Einige Sprachverarbeitungssysteme verarbeiten Äußerungen, indem sie Transkripte oder andere Textdarstellungen der Äußerungen unter Verwendung einer automatischen Spracherkennung (automatic speech recognition - „ASR“) generieren und dann die Textdarstellungen analysieren, um deren Bedeutung unter Verwendung des natürlichen Sprachverständnisses (natural language understanding - „NLU“) zu bestimmen. Die Systeme führen dann eine oder mehrere Maßnahmen basierend auf den bestimmten Bedeutungen der Äußerungen durch. Einige Äußerungen können jedoch mehrdeutig sein und berechtigterweise als Anfragen zur Durchführung einer beliebigen Anzahl verschiedener Maßnahmen interpretiert werden, und einige Maßnahmen können auf eine beliebige Anzahl unterschiedlicher Arten und/oder durch eine beliebige Anzahl von Anwendungen in geeigneter Weise durchgeführt werden. Einige Sprachverarbeitungssysteme versuchen, solche Mehrdeutigkeiten durch die Verwendung von Kontextdaten zu berücksichtigen, um das Bestimmen der Bedeutung einer Äußerung zu unterstützen. Die Äußerung kann dann an eine Anwendung zur Durchführung einer der bestimmten Bedeutung zugeordneten Maßnahme weitergeleitet werden. Allerdings haben derartige Systeme zum Zeitpunkt der Bestimmung der Bedeutung der anfänglichen Äußerung möglicherweise keinen Zugriff auf alle relevanten Kontextdaten oder sind möglicherweise anderweitig nicht in der Lage, alle relevanten Kontextdaten während der Bestimmung der Bedeutung der Äußerung zu berücksichtigen. Unter anderem aus diesen Gründen bestimmen die Systeme möglicherweise nicht genau die am besten geeigneten Maßnahmen, die durchgeführt werden sollen, oder die ansonsten am besten geeigneten Anwendungen für die Durchführung der Maßnahmen. Darüber hinaus sind neue Maßnahmen und Anwendungen möglicherweise nicht in das System integriert und können neue Kontextdaten nicht berücksichtigt werden, ohne Änderungen an der zugrunde liegenden NLU-Verarbeitung vorzunehmen.Some speech processing systems process utterances by generating transcripts or other textual representations of the utterances using automatic speech recognition ("ASR") and then analyzing the textual representations to determine their meaning using natural language understanding ("NLU") ) to determine. The systems then take one or more actions based on the specific meanings of the utterances. However, some statements may be ambiguous and may reasonably be interpreted as requests to perform any number of different actions, and some actions may be appropriately performed in any number of different ways and/or through any number of applications. Some language processing systems attempt to account for such ambiguities by using contextual data to help determine the meaning of an utterance. The utterance can then be forwarded to an application to take an action associated with the particular meaning. However, such systems may not have access to all relevant contextual data at the time of determining the meaning of the initial utterance or may otherwise be unable to take into account all relevant contextual data while determining the meaning of the utterance. For these reasons, among others, the systems may not accurately determine the most appropriate actions to be taken or the otherwise most appropriate applications for carrying out the actions. Additionally, new measures and applications may not be integrated into the system and cannot accommodate new contextual data without making changes to the underlying NLU processing.
Einige Aspekte der vorliegenden Offenbarung gehen auf die vorgenannten Probleme ein, unter anderem durch Bereitstellen eines kontextbewussten Routing von Äußerungen an konkrete Domänen und domänenspezifische Anwendungen zur Verarbeitung. In einigen Ausführungsformen implementiert ein Sprachverarbeitungssystem die Äußerungsverarbeitung unter Verwendung eines Satzes von Domänen. Im Allgemeinen handelt es sich bei einer Domäne um eine Sammlung von Anwendungen (auch als „Erlebnisanbieterdienste“, „Erlebnisanbieter“ oder „Dienste“ bezeichnet), die jeweils dazu konfiguriert sind, auf Äußerungen zu reagieren, die einem konkreten Thema der Äußerung, wie etwa einer konkreten Teilmenge von Sprachbefehlen und anderen Intentionen, die das Sprachverarbeitungssystem verstehen kann, zugeordnet sind. Eine Reaktion auf eine Äußerung kann das automatische Ausführen einer Funktion, die Teilnahme an einem gesprochenen Dialog mit mehreren Wendungen, andere Maßnahmen oder Kombinationen davon beinhalten. Beispielsweise kann es sich bei einer Domäne um eine Einkaufsdomäne handeln, die dazu konfiguriert ist, alle Arten von einkaufsbezogenen Befehlen und Abfragen zu verarbeiten. Eine weitere Domäne kann ein Medieninhaltsverwaltungsdienst sein, über den ein Benutzer auf Medieninhalt zugreift, den er besitzt, lizenziert hat, oder auf Medien Dritter zugreift. Noch eine weitere Domäne kann eine Kommunikationsdomäne sein, die dazu konfiguriert ist, Telefonanrufe einzuleiten und E-Mails zu generieren usw. Die spezifischen Maßnahmen, die durch die Domänen als Reaktion auf Äußerungen durchgeführt werden, können durch spezialisierte Anwendungen verarbeitet werden, die als Kombinationen aus Software und Hardware implementiert sind. Die Aufteilung der Funktionalität des Sprachverarbeitungssystems in Domänen kann eine einfachere Hinzufügung und Modifikation des Universums von Befehlen und Abfragen ermöglichen, die das Sprachverarbeitungssystem akzeptieren kann. In einer derartigen Konfiguration wird jedoch das Routing von Äußerungen an die richtige Domäne - oder an die richtige Anwendung innerhalb einer gegebenen Domäne - zu einer wichtigen Aufgabe, da Anwendungen einer Domäne möglicherweise nicht in der Lage sind, Äußerungen, die dem Thema einer anderen Domäne zugeordnet sind, angemessen zu verarbeiten. Darüber hinaus können einige Domänen groß sein und in beliebig vielen Schichten in Subdomänen organisiert sein. In derartigen Fällen kann das Routing einer Äußerung an die richtige Subdomäne zusätzliche Komplexität darstellen.Some aspects of the present disclosure address the foregoing issues, including by providing context-aware routing of utterances to specific domains and domain-specific applications for processing. In some embodiments, a speech processing system implements utterance processing using a set of domains. In general, a domain is a collection of applications (also referred to as “experience provider services,” “experience providers,” or “services”), each configured to respond to utterances related to a specific subject of the utterance, such as are assigned to a specific subset of voice commands and other intentions that the voice processing system can understand. A response to an utterance may include automatically performing a function, engaging in spoken dialogue with multiple turns, other actions, or combinations thereof. For example, a domain might be a purchasing domain configured to handle all types of purchasing-related commands and queries. Another domain may be a media content management service through which a user accesses media content that they own, have licensed, or access third-party media. Yet another domain may be a communications domain configured to initiate telephone calls and generate emails, etc. The specific actions taken by the domains in response to utterances may be processed by specialized applications, as combinations of Software and hardware are implemented. Separating the functionality of the language processing system into domains can allow for easier addition and modification to the universe of commands and queries that the language processing system can accept. However, in such a configuration, routing utterances to the correct domain - or to the correct application within a given domain - becomes an important task because applications in one domain may not be able to route utterances associated with the topic of another domain must be processed appropriately. In addition, some domains can be large and organized into subdomains in any number of layers. In such cases, routing an utterance to the correct subdomain can present additional complexity.
Um das Routing von Äußerungen an konkrete Domänen, Subdomänen und Anwendungen zu verbessern, kann ein domäneninternes Routing-System eine beliebige Anzahl subdomänenspezifischer und/oder anwendungsspezifischer Konfidenzbereitsteller verwenden, um Beurteilungen darüber zu erlangen, welche Subdomänen und/oder Anwendungen (falls vorhanden) geeignete Ziele für eine konkrete Äußerung sind. Beispielsweise kann ein ASR-System Textdaten generieren, die ein Transkript oder eine Reihe von Wörtern in einer Äußerung darstellen, und ein NLU-System kann dann eine N-beste Liste (wobei N eine positive ganze Zahl ist) von Interpretationen der Äußerung generieren, für deren Verarbeitung das Sprachverarbeitungssystem konfiguriert ist. Die Interpretationen der Äußerung können auch als „Intentionen“ bezeichnet werden. Die einer oder mehreren der N-besten Intentionen zugeordneten Domänen können identifiziert und aufgefordert werden, anzugeben, ob sie in der Lage sind, die Intention(en) angemessen zu bearbeiten. Innerhalb einer konkreten Domäne können die subdomänen- und/oder anwendungsspezifischen Konfidenzbereitsteller, die der/den Intentionen(en) zugeordnet sind, aufgefordert werden, eine Beurteilung der Wahrscheinlichkeit bereitzustellen, dass die entsprechenden Subdomänen und/oder Anwendungen die richtige Entität für eine Reaktion auf die Äußerung sind.To improve the routing of utterances to specific domains, subdomains and applications, an intra-domain routing system may use any number of subdomain-specific and/or application-specific confidence providers to obtain judgments about which Subdomains and/or applications (if any) are appropriate targets for a concrete utterance. For example, an ASR system may generate text data representing a transcript or a series of words in an utterance, and an NLU system may then generate an N-best list (where N is a positive integer) of interpretations of the utterance that the language processing system is configured to process. The interpretations of the utterance may also be referred to as "intentions." The domains associated with one or more of the N-best intentions may be identified and asked to indicate whether they are capable of appropriately handling the intention(s). Within a concrete domain, the subdomain and/or application-specific confidence providers associated with the intention(s) may be asked to provide an assessment of the likelihood that the corresponding subdomains and/or applications are the correct entity to respond to the utterance.
Die Beurteilungen der Konfidenzbereitsteller können nicht nur auf der Äußerung selbst (z. B. der NLU-generierten Intention, ASR-generierten Textdaten usw.) basieren, sondern auch auf Kontextdaten, die der Äußerung zugeordnet sind. Beispielsweise kann es sich bei einer Domäne um eine Einkaufsdomäne handeln, die dazu konfiguriert ist, alle Arten von einkaufsbezogenen Befehlen und Abfragen zu verarbeiten. Die Einkaufsdomäne kann über eine beliebige Anzahl von Intentionsverarbeitungsanwendungen verfügen, die in eine beliebige Anzahl von Subdomänen unterteilt sein können, einschließlich einer ersten Subdomäne, die der Suche nach Produkten in einem konkreten Geschäft zugeordnet ist, und einer zweiten Subdomäne, die dem Online-Kauf von Produkten zugeordnet ist. Wenn der Benutzer sagt „Finde Produkt X für mich“, kann die richtige Entität zum Bearbeiten dieser Äußerung von Kontextdaten abhängen, die der Äußerung zugeordnet sind, wie etwa der geografische Standort des Benutzers: Wenn sich der Benutzer in einem konkreten Geschäft befindet, dann kann die richtige Entität die erste Subdomäne und/oder Anwendung sein, während die richtige Entität die zweite Subdomäne und/oder Anwendung sein kann, wenn der Benutzer zu Hause ist. Den Konfidenzbereitstellern können Kontextdaten bereitgestellt werden, die den geografischen Standort des Benutzers angeben, und die Konfidenzbereitsteller können abhängig vom geografischen Standort des Benutzers zum Zeitpunkt der Äußerung unterschiedliche Beurteilungen für unterschiedliche Benutzer und/oder unterschiedliche Äußerungen erstellen. The confidence providers' assessments may be based not only on the utterance itself (e.g., the NLU-generated intent, ASR-generated text data, etc.), but also on contextual data associated with the utterance. For example, a domain may be a shopping domain configured to process all kinds of shopping-related commands and queries. The shopping domain may have any number of intent processing applications, which may be divided into any number of subdomains, including a first subdomain associated with searching for products in a concrete store and a second subdomain associated with purchasing products online. If the user says "Find product X for me", the correct entity to act on that utterance may depend on contextual data associated with the utterance, such as the user's geographic location: if the user is in a specific store, then the correct entity may be the first subdomain and/or application, while if the user is at home, the correct entity may be the second subdomain and/or application. Confidence providers may be provided with contextual data indicating the user's geographic location, and confidence providers may create different assessments for different users and/or different utterances depending on the user's geographic location at the time of the utterance.
Vorteilhafterweise erfolgt die Berücksichtigung von Kontextinformationen während der Routing-Konfidenzbewertungen getrennt von der Berücksichtigung von Kontextinformationen (falls vorhanden) während der NLU-Intentionsbestimmungen und kann zusätzliche Kontextinformationen und/oder völlig andere Kontextinformationen beinhalten.Advantageously, the consideration of contextual information during routing confidence assessments is separate from the consideration of contextual information (if any) during NLU intent determinations and may include additional contextual information and/or completely different contextual information.
Zusätzliche Aspekte der vorliegenden Offenbarung beziehen sich auf das proaktive Erlangen und Verwalten von Kontextinformationen während der Äußerungsverarbeitung zur Verwendung bei nachfolgenden Routing-Bestimmungen, Reaktionsgenerierungsvorgängen und anderen nachgelagerten Prozessen. Ein Kontextdatenverwaltungssystem kann an verschiedenen Stellen in den Prozess des Empfangens und Verarbeitens einer Äußerung zur Generierung von Intentionen integriert sein. Wenn Daten während der Äußerungsverarbeitung generiert, abgerufen oder auf andere Weise verfügbar werden, kann das Kontextdatenverwaltungssystem die Kontextdaten identifizieren und erlangen, die für Routing-Konfidenzbewertungen verwendet werden sollen. Die erlangten Kontextdaten können gespeichert, verarbeitet, zum Generieren und/oder Erlangen zusätzlicher Kontextdaten usw. verwendet werden. In einigen Ausführungsformen kann das Kontextdatenverwaltungssystem ein Register der zu erlangenden Kontextdatenelemente, die Integrationspunkte, an denen die Kontextdatenelemente erlangt werden sollen, die Verarbeitung/Speicherung/usw., die unter Verwendung der Kontextdaten durchgeführt werden soll, welche Routing-Konfidenzbewertungen die Kontextdatenelemente verwenden usw. verwalten. Beispielsweise kann das Register angeben, dass ein Kontextdatenelement an einem konkreten Punkt während der Äußerungsverarbeitung verfügbar werden kann und als Eingabe in eine Berechnung verwendet werden soll oder durch ein Modell ausgewertet werden soll, um einen konkreten Wert zu erzeugen, der bei der Routing-Konfidenzbewertung berücksichtigt werden soll. Als weiteres Beispiel kann das Register angeben, dass an einem anderen Punkt während der Äußerungsverarbeitung möglicherweise ein anderes Kontextdatenelement verfügbar wird und zur Berücksichtigung während einer weiteren Routing-Konfidenzbewertung gespeichert werden soll. Das Register kann eine beliebige Anzahl und Kombination solcher Erfassungsprozesse für Kontextdatenelemente definieren, und das Kontextdatenverwaltungssystem kann das Register verwenden, um die Kontextdatenelemente zu erfassen und sie für Routing-Konfidenzbewertungen verfügbar zu machen. In einigen Ausführungsformen kann das Register Kontextdatenelemente konkreten Konfidenzbereitstellern zuordnen.Additional aspects of the present disclosure relate to proactively obtaining and managing contextual information during utterance processing for use in subsequent routing determinations, response generation operations, and other downstream processes. A context data management system can be integrated at various points in the process of receiving and processing an utterance to generate intent. As data is generated, retrieved, or otherwise becomes available during utterance processing, the context data management system can identify and obtain the context data to be used for routing confidence assessments. The acquired context data can be stored, processed, used to generate and/or obtain additional context data, etc. In some embodiments, the context data management system may include a register of context data items to be obtained, the integration points at which the context data items are to be obtained, the processing/storage/etc. to be performed using the context data, which routing confidence scores the context data items use, etc. administer. For example, the register may indicate that a context data item may become available at a concrete point during utterance processing and should be used as input to a calculation or evaluated by a model to produce a concrete value to be considered in routing confidence assessment shall be. As another example, the register may indicate that at another point during utterance processing, another piece of contextual data may become available and should be stored for consideration during further routing confidence assessment. The registry may define any number and combination of such context data item collection processes, and the context data management system may use the registry to capture the context data items and make them available for routing confidence assessments. In some embodiments, the register may associate context data items with specific confidence providers.
Verschiedene Aspekte der Offenbarung werden nun im Hinblick auf bestimmte Beispiele und Ausführungsformen beschrieben, die die Offenbarung veranschaulichen, aber nicht einschränken sollen. Auch wenn sich Aspekte einiger in der Offenbarung beschriebener Ausführungsformen zum Zweck der Veranschaulichung auf konkrete Beispiele von Äußerungen, Intentionen, Anwendungen, Routing-Bestimmungen und Kontextdatenelementen konzentrieren, dienen die Beispiele nur der Veranschaulichung und sollen nicht einschränkend sein. In einigen Ausführungsformen können die hierin beschriebenen Techniken auf zusätzliche oder alternative Äußerungen, Intentionen, Anwendungen, Routing-Bestimmungen und Kontextdatenelemente und dergleichen angewendet werden.Various aspects of the disclosure will now be described with respect to specific examples and embodiments intended to illustrate, but not limit, the disclosure. Even if While aspects of some embodiments described in the disclosure focus on specific examples of utterances, intentions, applications, routing determinations, and contextual data elements for purposes of illustration, the examples are for illustrative purposes only and are not intended to be limiting. In some embodiments, the techniques described herein may be applied to additional or alternative utterances, intents, applications, routing determinations and contextual data elements, and the like.
SprachverarbeitungsumgebungSpeech processing environment
In einigen Ausführungsformen kann die sprachgestützte Vorrichtung 102 ein oder mehrere Mikrofone, die zum Erfassen der Sprache des Benutzers, wie etwa der Äußerung 106, verwendet werden, einen oder mehrere Lautsprecher, die zum Wiedergeben von Sprache (z. B. computersynthetisierter Dialog) oder anderem Inhalt verwendet werden, eine oder mehrere Anzeigen, die zur Darstellung von Inhalt verwendet werden usw. aufweisen. Die sprachgestützte Vorrichtung 102 kann auch als Benutzer-Rechenvorrichtung oder Benutzervorrichtung bezeichnet werden. In einigen Ausführungsformen kann die sprachgestützte Vorrichtung 102 tragbar oder mobil sein. Beispielsweise kann die sprachgestützte Vorrichtung 102 ein Handgerät oder eine andere mobile Vorrichtung, wie etwa ein Mobiltelefon oder ein Tablet-Computer, sein. In einigen Ausführungsformen kann die sprachgestützte Vorrichtung 102 so konzipiert sein, dass sie von einem relativ festen Standort aus betrieben werden kann. Die sprachgestützte Vorrichtung kann beispielsweise ein Lautsprecher, der mit Audioeingabefähigkeiten und Netzwerkzugriff konfiguriert ist (z. B. ein „intelligenter Lautsprecher“), ein Bildschirm, der mit Audioeingabefähigkeiten und Netzwerkzugriff konfiguriert ist (z. B. eine „intelligente Anzeige“), oder eine andere elektronische Vorrichtung sein. Das Sprachverarbeitungssystem 100 kann von der sprachgestützten Vorrichtung 102 empfangene Audiosignale verarbeiten und Antworten für den Benutzer 104 formulieren. Das Sprachverarbeitungssystem 100 kann verschiedene Komponenten zum Bereitstellen der hierin beschriebenen Merkmale beinhalten. In einigen Ausführungsformen kann das Sprachverarbeitungssystem 100 ein ASR-System 202 beinhalten, um Audiosignale oder andere Audiodaten zu verarbeiten und Textdaten zu generieren, die Äußerungen des Benutzers darstellen. Das Sprachverarbeitungssystem 100 kann auch ein NLU-System 204 beinhalten, um Textdaten zu verarbeiten und semantische Darstellungen von Äußerungen des Benutzers zu generieren. Das Sprachverarbeitungssystem 100 kann auch ein System von Domänen 206 beinhalten, die jeweils eine oder mehrere Anwendungen 282 beinhalten oder verwalten, um auf Äußerungen des Benutzers zu antworten oder anderweitig darauf zu reagieren, wie etwa durch Bereitstellen angefragter Inhalte, Durchführen angefragter Vorgänge und dergleichen. Vorteilhafterweise können einzelne Domänen 206 (oder gewisse Teilmengen davon) einem entsprechenden domäneninternen Routing-System 212 zugeordnet sein, um zu bestimmen, ob konkrete durch das NLU-System 204 generierte Äußerungsbedeutungshypothesen durch Anwendungen 282 der entsprechenden Domäne 206 bearbeitet werden können. Das Sprachverarbeitungssystem 100 kann auch ein Kontextdatenverwaltungssystem 214 beinhalten, um die Erfassung, Generierung und Bereitstellung von Kontextdaten an das/die domäneninterne(n) Routing-System(e) 212 zur Verwendung bei Routing-Entscheidungen, Generieren von Reaktionen usw. zu verwalten. Die durch das domäneninterne Routing-System 212 getroffenen Entscheidungen können durch ein domänenübergreifendes Routing-System 210 verwendet werden, um das Routing von Äußerungen an einzelne Domänen 206 oder Anwendungen 282 zu verwalten.In some embodiments, the voice-assisted
Die beispielhaften Systeme und Komponenten des in
Das Sprachverarbeitungssystem 100 kann auf einer oder mehreren physischen Server-Rechnervorrichtungen implementiert sein, die Endbenutzervorrichtungen, wie etwa sprachgestützten Vorrichtungen 102, Rechendienste und Ressourcen bereitstellen. In einigen Ausführungsformen kann das Sprachverarbeitungssystem 100 (oder einzelne Komponenten davon, wie etwa das ASR-System 202, das NLU-System 204, die Domänensysteme 206, das domänenübergreifende Routing-System 210, die domäneninternen Routing-Systeme 212, das Kontextdatenverwaltungssystem 214, usw.) auf einer oder mehreren Host-Vorrichtungen implementiert sein, wie etwa Blade-Servern, Midrange-Rechenvorrichtungen, Großrechnern, Desktop-Computern oder jeder anderen Rechenvorrichtung, die dazu konfiguriert ist, Rechendienste und -ressourcen bereitzustellen. Beispielsweise kann eine einzelnes Hostvorrichtung ein oder mehrere ASR-Systeme 202, NLU-Systeme 204, Domänensysteme 206, das domänenübergreifende Routing-System 210, die domäneninternen Routing-Systeme 212, das Kontextdatenverwaltungssystem 214 oder Kombinationen davon usw. ausführen. Das Sprachverarbeitungssystem 100 kann eine beliebige Anzahl solcher Hosts beinhalten.The
In einigen Ausführungsformen können die durch das Sprachverarbeitungssystem 100 bereitgestellten Merkmale und Dienste als Webdienste implementiert sein, die über ein oder mehrere Kommunikationsnetzwerke genutzt werden können. In weiteren Ausführungsformen wird das Sprachverarbeitungssystem 100 (oder einzelne Komponenten davon) durch eine oder mehrere virtuelle Maschinen bereitgestellt, die in einer gehosteten Rechenumgebung implementiert sind. Die gehostete Rechenumgebung kann eine oder mehrere schnell bereitgestellte und freigegebene Rechenressourcen, wie etwa Rechenvorrichtungen, Netzwerkvorrichtungen und/oder Speichervorrichtungen, beinhalten. Eine gehostete Rechenumgebung kann auch als „Cloud“-Rechenumgebung bezeichnet werden.In some embodiments, the features and services provided by the
Wie in
In dem in
Während die Schnappschüsse der Vorrichtungszustände an das Sprachverarbeitungssystem 100 gesendet werden können, wenn eine Äußerung 106 erkannt wird, kann das Sprachverarbeitungssystem 100 in anderen Beispielen auch Angaben zu Vorrichtungszuständen speichern, anstatt sie jedes Mal zu empfangen, wenn ein Audiosignal empfangen wird. Beispielsweise kann das Sprachverarbeitungssystem 100 eine Angabe empfangen, dass der Benutzer 104 einen Alarm eingestellt hat, und wissen, wann der Alarm ertönen wird. Sobald der Alarm ertönt, hat das Sprachverarbeitungssystem 100 daher möglicherweise bereits den Vorrichtungsstatus gespeichert und empfängt die Schnappschüsse nicht jedes Mal, wenn eine Äußerung 106 erkannt wird. In ähnlicher Weise können einige oder alle Metadaten im Sprachverarbeitungssystem 100 gespeichert werden, bevor die Äußerung 106 durch die sprachgestützte Vorrichtung 102 erfasst wird.While the snapshots of device states may be sent to the
Unter Bezugnahme auf ein veranschaulichendes Beispiel kann der Benutzer 104 eine Äußerung 106 wie „Wo gibt es Kaffee?“ machen. Bei [A] kann ein Audiosignal, das die Äußerung 106 des Benutzers darstellt, zur Verarbeitung und Reaktion an das Sprachverarbeitungssystem 100 übertragen werden. Allein auf Grundlage der gesprochenen Wörter kann die Äußerung 106 mehrdeutig sein: es könnte sich um eine Abfrage nach einem physischen Cafe in der Nähe handeln; es könnte sich um eine Abfrage nach dem Standort von Kaffee einem physischen Geschäft handeln; es könnte sich um eine Abfrage für einen Online-Kauf von Kaffee handeln. Jede dieser Interpretationen und möglicherweise auch andere können plausibel sein. Herkömmliche Systeme können die möglichen Interpretationen in eine Rangfolge bringen, die bestplatzierte Interpretation auswählen und die Abfrage an eine Anwendung zur Durchführung einer zugehörigen Maßnahme weiterleiten. Ohne Berücksichtigung der mit der Äußerung verknüpften Kontextdaten ist die Weiterleitung der Abfrage an eine Anwendung jedoch möglicherweise nicht passend. Befindet sich ein Benutzer beispielsweise in einem Geschäft, das Kaffee verkauft, ist die zweite Interpretation (es handelt sich um eine Abfrage nach dem Standort von Kaffee in einem physischen Geschäft) möglicherweise die wahrscheinlichste korrekte Interpretation, während die dritte Interpretation (es handelt sich um eine Abfrage nach einem Online-Kauf von Kaffee) möglicherweise die wahrscheinlichste korrekte Interpretation ist, wenn der Benutzer zu Hause ist und eine Shopping-Webseite betrachtet. Unterschiedliche Anwendungen können verwendet werden, um Maßnahmen als Reaktion auf diese unterschiedlichen Interpretationen durchführen. Durch die Berücksichtigung von Kontextinformationen, wie etwa dem aktuellen Standort des Benutzers, den aktuellen Aktivitäten und/oder Interaktionen des Benutzers mit dem sprachgestützten Vorrichtung 102 usw., kann das System 100 dynamische Routing-Bestimmungen treffen, die von Benutzer zu Benutzer und sogar von Abfrage zu Abfrage variieren, selbst wenn sie vom selben Benutzer empfangen werden.Referring to an illustrative example, the
Bei [B] kann das ASR-System 202 ASR-Ergebnisse unter Verwendung des Audiosignals generieren. Zur Veranschaulichung können die ASR-Ergebnisse ein oder mehrere Transkripte oder andere Sätze von Textdaten beinhalten, die für Wörter in der Äußerung 106 stehen. In einigen Beispielen kann das ASR-System 202 ASR-Konfidenzwertungsdaten generieren, die die Wahrscheinlichkeit darstellen, dass ein konkreter Satz von Wörtern der Textdaten mit den in der Äußerung 106 gesprochenen Wörtern übereinstimmt. Beispielsweise kann das ASR-System 202 eine Wertung bestimmen, die eine Konfidenz oder Wahrscheinlichkeit darstellt, dass ein konkretes Wort, das mit den Tönen übereinstimmt, an der angegebenen Stelle im Satz beinhaltet wäre (z. B. unter Verwendung eines Sprach- oder Grammatikmodells). Somit ist jede mögliche Textinterpretation der gesprochenen Äußerung 106 (Hypothese) einer ASR-Konfidenzwertung zugeordnet. Das ASR-System 202 kann die ASR-Ergebnisse bei [C] an das NLU-System 204 senden.At [B], the
Bei [D] kann das NLU-System 204 unter Verwendung der erlangten ASR-Ergebnisse NLU-Ergebnisdaten generieren, beispielsweise eine semantische Darstellung der Äußerung 106. Im vorliegenden Beispiel kann, wie vorstehend beschrieben, die Äußerung „Wo gibt es Kaffee?“ vernünftigerweise als Abfrage nach dem Standort eines physischen Cafes, als Abfrage nach dem Standort von Kaffee in einem physischen Geschäft, als Abfrage nach Kaffee in einem Online-Shop usw. interpretiert werden. Das NLU-System 204 kann eine N-beste Liste der Interpretationen, einschließlich einiger oder aller dieser Interpretationen und möglicherweise anderer, generieren. Das NLU-System 204 kann die NLU-Ergebnisse an das domänenübergreifende Routing-System 210 bei [E] bereitstellen. Bei [B'] kann das Kontextdatenverwaltungssystem 214 an verschiedenen Integrationspunkten während der Aufnahme-, ASR- und NLU-Prozesse Kontextdaten erlangen und/oder generieren. Die Erfassung von Kontextdaten wird unter Verwendung der Beschriftung [B' - F'] gezeigt, um den parallelen oder anderweitig asynchronen Vorgang in Bezug auf andere gezeigte und beschriebene Prozesse, einschließlich der mit [B] - [F] beschrifteten, anzugeben. Beispielsweise kann das Kontextdatenverwaltungssystem 214 Geolokalisierungsdaten erlangen, die den aktuellen geografischen Standort der sprachgestützten Vorrichtung 102 darstellen. Diese Daten können durch das System 100 mit dem Audiosignal bei [A] erlangt und dann dem Kontextdatenverwaltungssystem 214 bereitgestellt werden, durch das System 100 nach Empfang des Audiosignals angefordert und dann dem Kontextdatenverwaltungssystem 214 bereitgestellt werden oder auf andere Weise durch das Kontextdatenverwaltungssystem 214 erlangt werden. In einigen Ausführungsformen können die Geolokalisierungsdaten durch das Kontextdatenverwaltungssystem 214 parallel zur ASR-Verarbeitung bei [B], der Bereitstellung von ASR-Ergebnissen bei [C], der NLU-Verarbeitung bei [D] und der Bereitstellung von NLU-Ergebnissen bei [E] oder zu einem anderen Zeitpunkt erlangt werden (z. B. können die Daten aus der Verarbeitung einer früheren Äußerung verfügbar sein). Das Kontextdatenverwaltungssystem 214 kann andere Kontextdatenelemente vor, parallel zu oder nach der ASR-Verarbeitung bei [B], der Bereitstellung von ASR-Ergebnissen bei [C], der NLU-Verarbeitung bei [D], der Bereitstellung von NLU-Ergebnissen bei [E] und/oder zu verschiedenen anderen Zeitpunkten (z. B. während der Verarbeitung einer vorherigen Äußerung) erlangen und/oder generieren. Beispielsweise kann das Kontextdatenverwaltungssystem 214 Daten bezüglich Inhalten, die durch die sprachgestützte Vorrichtung 102 präsentiert werden, wenn die Äußerung 106 gemacht wird (z. B. Webseiten, Listenelemente usw.), teilweise oder vollständige ASR-Ergebnisse, teilweise oder vollständige NLU-Ergebnisse usw. erlangen. Als weiteres Beispiel kann das Kontextdatenverwaltungssystem 214 Vorgänge basierend auf den ASR- und/oder NLU-Ergebnissen durchführen, wie etwa Bestimmen eines Unterschieds in der Wertung zwischen höchstrangigen NLU-Ergebnissen, Durchführen einer anfänglichen Klassifizierung der Äußerung 106 als mit einer vorherigen Interaktion mit dem System 100 in Zusammenhang stehend oder nicht in Zusammenhang stehend, Generieren von Codierungen von Abschnitten von NLU-Teilergebnissen usw. Diese Kontextdatenelemente können gespeichert oder auf andere Weise Routing-Konfidenzbereitstellern zur Verwendung beim Routing von Bestimmungen und/oder Generieren einer Reaktion auf die Äußerung zugänglich gemacht werden.At [D], the
Bei [F] kann das domänenübergreifende Routing-System 210 die Domäne(n) bestimmen, von der/denen aus eine Anfrage zur Bewertung der Routing-Konfidenz generiert werden soll (z. B. eine Anfrage nach einer Bestimmung, ob die Domäne oder eine Anwendung davon die richtige Entität ist, um auf die Äußerung zu reagieren). Diese Anfrage kann als „Konfidenzanfrage“ oder „Erfüllungsanfrage“ bezeichnet werden.At [F], the
In einigen Ausführungsformen kann das domänenübergreifende Routing-System 210 ein Mapping darüber verwalten oder auf andere Weise darauf zugreifen, welche Domäne(n) für die Bearbeitung der Intention(en) konfiguriert ist/sind oder auf andere Weise diesen zugeordnet ist/sind, für deren Generierung das NLU-System 204 konfiguriert ist. Das domänenübergreifende Routing-System 210 kann von dem NLU-System 204 eine Liste mit einer oder mehreren Intentionen für die aktuelle Äußerung 106 empfangen, beispielsweise eine N-beste Liste. Das domänenübergreifende Routing-System 210 kann die N-beste Liste oder einen Abschnitt davon durchlaufen und das Mapping verwenden, um die Domäne(n) zu identifizieren, die der/den Intention(en) zugeordnet ist/sind. Das domänenübergreifende Routing-System 210 kann dann eine Konfidenzanfrage für jede identifizierte Domäne generieren und die Anfrage an das domäneninterne Routing-System 212 senden, das jeder identifizierten Domäne zugeordnet ist. Eine Konfidenzanfrage kann Intentionsdaten beinhalten, die eine oder mehrere Intentionen darstellen, die der Domäne zugeordnet sind, an die die Anfrage gesendet wird. Die Anfrage kann zusätzliche Informationen beinhalten, wie etwa Wertungs- oder Rangdaten, die die relative Wahrscheinlichkeit angeben, dass es sich bei der Intention um die richtige Intention handelt, wie durch das NLU-System 204 beurteilt.In some embodiments, the
Im vorliegenden Beispiel kann eine N-beste Liste von drei Intentionen einem domäneninternen Routing-System 212 für eine Einkaufsdomäne bereitgestellt werden: eine Intention, die einer Abfrage nach einem Standort eines physischen Cafes entspricht, eine Intention, die einer Abfrage nach dem Standort von Kaffee in einem physischen Geschäft entspricht, und eine Intention, die einer Abfrage nach Kaffee in einem Online-Shop entspricht. Zusätzliche Intentionen können einem oder mehreren anderen domäneninternen Routing-Systemen 212 für andere Domänen bereitgestellt werden. Beispielsweise kann die N-beste Liste von Intentionen, die durch das domänenübergreifende Routing-System 210 bei [E] empfangen wird, die drei vorstehend beschriebenen Intentionen für die Einkaufsdomäne, eine Intention für eine Gastgewerbedomäne (z. B. herausfinden, ob es in einem Hotelzimmer Kaffee gibt), eine Intention für eine Videoinhaltsdomäne (z. B. um ein Video mit dem Wort „Kaffee“ im Titel zu finden) beinhalten. Das domänenübergreifende Routing-System 210 kann zusätzlich zu der für die Einkaufsdomäne generierten Konfidenzanfrage auch Konfidenzanfragen für diese beiden anderen Domänen generieren. In einigen Ausführungsformen können die an die domäneninternen Routing-Systeme 212 für die unterschiedlichen Domänen gesendeten Konfidenzanfragen seriell gestellt und/oder bearbeitet werden, oder in einigen Ausführungsformen können die Anfragen parallel oder auf andere Weise asynchron gestellt und/oder bearbeitet werden.In the present example, an N-best list of three intents may be provided to an
Bei [G] kann das domäneninterne Routing-System 212 bei Empfang jeder Konfidenzanfrage Kontextdaten zur Verwendung bei Routing-Konfidenzbewertungen erlangen. Die Kontextdaten können unter anderem Folgendes beinhalten: Daten bezüglich früherer Äußerungen der aktuellen Sitzung, Daten bezüglich Äußerungen früherer Sitzungen, Daten bezüglich Elementen, die auf einem Bildschirm dargestellt wurden, als die aktuelle Äußerung gemacht wurde, Daten bezüglich der Domäne(n), die den Elementen zugeordnet ist/sind, die bei der aktuellen Äußerung auf einem Bildschirm dargestellt wurden, Daten bezüglich während der NLU-Verarbeitung wiedererkannter Entitäten, Daten bezüglich während der NLU-Verarbeitung aufgelöster Entitäten, Daten bezüglich Benutzerfeedback während der aktuellen oder vorherigen Sitzung, Daten bezüglich der Kaufhistorie des Benutzers, Daten bezüglich der Interaktionshistorie des Benutzers, Daten bezüglich spezifizierter oder erlernter Benutzerpräferenzen, Daten bezüglich Zugänglichkeitshistorie und/oder Präferenzen des Benutzers, Geolokalisierungsdaten, Daten bezüglich Vorrichtungsfähigkeiten, Daten bezüglich Vorrichtungseigenschaften, Daten bezüglich digitaler Inhaltsbibliothekselemente des Benutzers, Daten bezüglich Benutzerabonnements, Daten bezüglich der Kaufhistorie des Benutzers, Verzeichnisdaten bezüglich Vorhandensein und/oder Fehlen von Domänenbegriffen, andere Daten oder Kombinationen davon. Die hierin beschriebenen beispielhaften Kontextdatenelemente dienen lediglich der Veranschaulichung und sind nicht als einschränkend, erforderlich oder vollständig anzusehen.In [G], the
Im vorliegenden Beispiel kann das domäneninterne Routing-System 212 für die Einkaufsdomäne Standortdaten erlangen, die den geografischen Standort der sprachgestützten Vorrichtung 102 darstellen. Als weiteres Beispiel kann das domäneninterne Routing-System 212 für die Einkaufsdomäne Daten erlangen, die Inhalte darstellen, die auf einem Bildschirm der sprachgestützten Vorrichtung 102 angezeigt wurden, als die Äußerung 106 gemacht wurde.In the present example, the
Bei [H] kann das domäneninterne Routing-System 212 bei Empfang jeder Konfidenzanfrage eine oder mehrere Routing-Konfidenzbewertungen generieren. In einigen Ausführungsformen kann ein domäneninternes Routing-System 212 eine beliebige Anzahl anwendungsspezifischer Konfidenzbereitsteller einsetzen, um Beurteilungen darüber zu erlangen, welche Subdomänen (z. B. Anwendungen) geeignete Ziele für eine konkrete Äußerung sind. Beispielsweise kann das domäneninterne Routing-System 212 für die Einkaufsdomäne Routing-Konfidenzbewertungen von jedem der drei anwendungsspezifischen Routing-Konfidenzbereitsteller anfordern: von einem ersten Routing-Konfidenzbereitsteller für die Anwendung zur Lokalisierung eines physischen Geschäfts, einem zweiten Konfidenzbereitsteller für eine Anwendung zur Lokalisierung eines Produkts im Geschäft und ein drittem Routing-Konfidenzbereitsteller für eine Online-Shopping-Anwendung. Anfragen für Routing-Konfidenzbewertungen können seriell gestellt und/oder bearbeitet werden, oder in einigen Ausführungsformen können die Anfragen parallel oder auf andere Weise asynchron gestellt und/oder bearbeitet werden. In einigen Ausführungsformen können Anfragen für Routing-Konfidenzbewertungen die verschiedenen Kontextdatenelemente beinhalten, sofern vorhanden, die durch die jeweiligen anwendungsspezifischen Routing-Konfidenzbereitsteller verwendet werden. Beispielsweise kann der Routing-Konfidenzbereitsteller für die Lokalisierung des physischen Geschäfts und die Anwendung zur Lokalisierung des Produkts im Geschäft Kontextdaten empfangen, die den geografischen Standort der sprachgestützten Vorrichtung 102 darstellen, während der Routing-Konfidenzbereitsteller für die Online-Shopping-Anwendung Kontextdaten empfangen kann, die den geografischen Standort und auch den Inhalt (falls vorhanden), darstellen, der durch die sprachgestützte Vorrichtung 102 angezeigt wurde, als die Äußerung 106 erfolgte.At [H], the
In einigen Ausführungsformen kann eine Routing-Konfidenzbewertung eine Konfidenzwertung sein, der die Konfidenz des jeweiligen Anbieters darstellt, dass die dem Anbieter zugeordnete Anwendung die richtige Anwendung zur Bearbeitung der Intention ist. Die Wertung kann unter Verwendung deterministischer Regeln, eines statistischen Modells oder einer Kombination davon bestimmt werden. Die Routing-Konfidenzbewertungen können dem domänenübergreifenden Routing-System 210 bei [I] bereitgestellt werden.In some embodiments, a routing confidence score may be a confidence score that represents the respective provider's confidence that the application associated with the provider is the correct application to handle the intent. Scoring may be determined using deterministic rules, a statistical model, or a combination thereof. The routing confidence scores may be provided to the
Im vorliegenden Beispiel kann der Routing-Konfidenzbereitsteller für die Anwendung zur Ortung des Gangs im Geschäft einen Satz deterministischer Regeln und/oder ein statistisches Modell auf die zugehörige Intention (z. B. Intention „finde Standort des Gangs“) und Kontextdaten (z. B. geografische Daten, die angeben, dass sich der Benutzer in einem konkreten Geschäft befindet, das eine sprachgestützte Produktortung bietet) anwenden. Dieser Routing-Konfidenzbereitsteller kann eine relativ hohe Konfidenzwertung generieren, die eine hohe Konfidenz angibt, dass eine Anwendung zur Ortung des Gangs im Geschäft die richtige Anwendung für die Bearbeitung der Intention ist. Der Routing-Konfidenzbereitsteller für die Anwendung zur Lokalisierung eines physischen Geschäfts kann einen Satz deterministischer Regeln und/oder ein statistisches Modell auf die zugehörige Intention (z. B. eine Intention zur Ortung eines Geschäfts auf dem Weg) und Kontextdaten (z. B. geografische Daten, die angeben, dass sich der Benutzer in dem vorgenannten konkreten Geschäft befindet) anwenden. Dieser Routing-Konfidenzbereitsteller kann eine relativ mittlere Konfidenzwertung generieren, die eine mittlere Konfidenz angibt, dass eine Anwendung zur Lokalisierung eines physischen Geschäfts die richtige Anwendung für die Bearbeitung der Intention ist. Der Routing-Konfidenzbereitsteller für die Online-Shopping-Anwendung kann einen Satz deterministischer Regeln und/oder ein statistisches Modell auf die zugehörige Intention (z. B. eine Intention „Online-Artikel durchsuchen“ oder „Artikel kaufen“) und Kontextdaten (z. B. geografische Daten, die angeben, dass sich der Benutzer in dem vorgenannten konkreten Geschäft befindet, und andere Inhalte als eine Online-Einkaufsseite oder -Anwendung durch die sprachgestützte Vorrichtung 102 angezeigt wurden, als die Äußerung 106 erfolgte) anwenden. Dieser Routing-Konfidenzbereitsteller kann eine relativ niedrige Konfidenzwertung generieren, die eine niedrige Konfidenz angibt, dass eine Online-Shopping-Anwendung die richtige Anwendung für die Bearbeitung der Intention ist.In this example, the routing confidence provider for the store aisle location application may apply a set of deterministic rules and/or a statistical model to the associated intent (e.g., "find aisle location" intent) and contextual data (e.g., . Geographical data indicating that the user is in a specific store that offers voice-based product location). This routing confidence provider can generate a relatively high confidence score, indicating high confidence that a store aisle location application is the correct application to handle the intent. The routing confidence provider for the application Locating a physical store can apply a set of deterministic rules and/or a statistical model to the associated intent (e.g., an intent to locate a store in transit) and contextual data (e.g., geographic data indicating that the user is located in the aforementioned specific store). This routing confidence provider can generate a relatively medium confidence score, indicating a medium confidence that a physical store location application is the correct application to handle the intent. The routing confidence provider for the online shopping application may apply a set of deterministic rules and/or a statistical model to the associated intent (e.g. a “browse online items” or “purchase items” intent) and contextual data (e.g. B. geographical data indicating that the user is in the aforementioned specific store and content other than an online shopping site or application was displayed by the voice-activated
In einigen Ausführungsformen kann das domäneninterne Routing-System 212 die verschiedenen Routing-Konfidenzbewertungen (z. B. Konfidenzwertungen), die durch die Routing-Konfidenzbereitsteller generiert wurden, vergleichen oder anderweitig analysieren. Basierend auf der Analyse kann das domäneninterne Routing-System 212 bestimmen, welche Anwendung der Domäne (falls vorhanden) wahrscheinlich die beste Anwendung ist, um die Intention zu bearbeiten. Im vorliegenden Beispiel kann das domäneninterne Routing-System 212 bestimmen, dass die Anwendung zur Ortung eines Gangs im Geschäft die beste Anwendung der Einkaufsdomäne ist, um die Intention zu bearbeiten.In some embodiments, the
Bei [J] kann das domänenübergreifende Routing-System 210 eine Domänen-, Subdomänen- und/oder Anwendungszuweisung basierend auf den Routing-Konfidenzbewertungen bestimmen, die von einem oder mehreren domäneninternen Routing-Systemen 212 empfangen wurden. Im vorliegenden Beispiel wird die gesprochene Frage „Wo gibt es Kaffee?“ basierend auf der relativ hohen Konfidenzwertung dieser Anwendung im Vergleich zu den anderen Konfidenzwertungen für andere Anwendungen an die Anwendung zur Ortung des Gangs im Geschäft weitergeleitet werden.At [J], the
Bei [K] kann die zugewiesene Anwendung 282 eine Reaktion auf die Äußerung 106 generieren. Die Reaktion kann Folgendes beinhalten: Ausführen einer Funktion, Generieren einer synthetisierten gesprochenen Antwort, Generieren einer visuellen Reaktion, Durchführen einer anderen Maßnahme oder eine beliebige Kombination davon. Das Ausführen einer Funktion kann beispielsweise das Einleiten einer Kauftransaktion beinhalten. Das Generieren einer synthetisierten Antwort kann das Bereitstellen angeforderter Informationen in Audioform beinhalten. Das Generieren einer visuellen Reaktion kann das Anzeigen angeforderter Informationen auf einer visuellen Anzeige beinhalten. Im vorliegenden Beispiel kann die Antwort eine synthetisierte gesprochene Antwort (z. B. „Kaffee ist in Gang 20“), eine visuelle Reaktion (z. B. eine Karte des Geschäfts mit hervorgehobenem Standort des Kaffees) oder eine Kombination davon sein.At [K], the associated
Bei [L] kann das Sprachverarbeitungssystem 100 die generierte Reaktion, falls vorhanden, an die sprachgestützte Vorrichtung 102 übertragen, und die sprachgestützte Vorrichtung kann die Reaktion nach Bedarf darstellen.At [L], the
Bezugnehmend nun auf
Eine sprachgestützte Vorrichtung 102 kann in einer Ausführungsform eine minimale Anzahl von Eingabemechanismen (z. B. einen Ein-/Ausschalter) beinhalten, sodass die Funktionalität einer sprachgestützten Vorrichtung 102 ausschließlich oder hauptsächlich durch Audioeingabe und Audioausgabe vorliegt. Beispielsweise kann eine sprachgestützte Vorrichtung 102 ein oder mehrere Mikrofone beinhalten oder mit diesen kommunizieren, die auf ein Aktivierungswort warten, indem sie kontinuierlich lokales Audio überwachen. Als Reaktion auf die Erkennung des Aktivierungsworts kann eine sprachgestützte Vorrichtung 102 eine Verbindung mit dem Sprachverarbeitungssystem 100 herstellen, Audiodaten an das Sprachverarbeitungssystem 100 senden und auf eine Antwort von dem Sprachverarbeitungssystem 100 warten bzw. diese empfangen. In einigen Ausführungsformen können jedoch auch nicht-sprach/tongestützte Vorrichtungen mit dem Sprachverarbeitungssystem 100 kommunizieren. Beispielsweise kann als Reaktion auf das Drücken einer Taste oder eines Touchscreens oder auf das Drücken und Halten einer Taste oder eines Touchscreens ein einer sprachgestützten Vorrichtung 102 zugeordnetes Mikrofon mit der Aufzeichnung von lokalem Audio beginnen, eine Verbindung mit dem Sprachverarbeitungssystem 100 herstellen, Audiodaten, die das erfasste Audio darstellen, an das Sprachverarbeitungssystem 100 senden und auf eine Antwort von dem Sprachverarbeitungssystem 100 warten bzw. diese empfangen und/oder auf das Auftreten einer Maßnahme warten.A voice-enabled
Die sprachgestützte Vorrichtung 102 kann einen oder mehrere Prozessoren 220, Datenspeicher/Speicher 222, eine Kommunikationsschaltung 224, ein oder mehrere Mikrofone 226 oder andere Audioeingabevorrichtungen (z. B. Wandler), einen oder mehrere Lautsprecher 228 oder andere Audioausgabevorrichtungen, eine oder mehrere Kameras 230 oder andere Bildaufnahmekomponenten und eine Anzeigekomponente 232 beinhalten. Jedoch können eine oder mehrere zusätzliche Komponenten in einer sprachgestützten Vorrichtung 102 beinhaltet sein und/oder eine oder mehrere Komponenten können weggelassen werden. Beispielsweise kann eine sprachgestützte Vorrichtung 102 auch eine Stromversorgung oder einen Busanschluss beinhalten. Als noch weiteres Beispiel kann eine sprachgestützte Vorrichtung 102 einen oder mehrere zusätzliche Eingabe- und/oder Ausgabemechanismen beinhalten, wie etwa einen oder mehrere Sensoren, eine oder mehrere Tasten oder einen oder mehrere Schalter oder Knöpfe. Darüber hinaus kann eine sprachgestützte Vorrichtung 102 zwar mehrere Instanzen einer oder mehrerer Komponenten beinhalten, der Einfachheit halber wurde jedoch nur eine von jeder Komponente gezeigt.Voice-enabled
In einigen Ausführungsformen kann eine sprachgestützte Vorrichtung 102 einer manuell aktivierten Vorrichtung entsprechen oder die Funktionalität einer manuell aktivierten Vorrichtung beinhalten. Eine manuell aktivierte Vorrichtung, wie hierin beschrieben, kann einer Vorrichtung entsprechen, das als Reaktion auf eine manuelle Eingabe (z. B. Drücken einer Taste, Berühren eines Teils eines Touchscreens, Durchführen einer Maßnahme auf einer Vorrichtung) aktiviert werden kann. Ein Tap-to-Talk-Vorrichtung ist beispielsweise eine Art einer manuell aktivierten Vorrichtung. Solche Tap-to-Talk-Vorrichtungen sind beispielsweise in der Lage, Audiodaten als Reaktion auf das Drücken einer Taste zu erlangen und auszugeben.In some embodiments, a voice-assisted
Der/die Prozessor(en) 220 kann/können jede geeignete Verarbeitungsschaltung beinhalten, die in der Lage ist, Vorgänge und Funktionalität einer sprachgestützten Vorrichtung 102 zu steuern sowie die Kommunikation zwischen verschiedenen Komponenten innerhalb einer sprachgestützten Vorrichtung 102 zu erleichtern. In einigen Ausführungsformen kann/können der/die Prozessor(en) 220 eine Zentraleinheit (central processing unit - „CPU“), eine Grafikverarbeitungseinheit (graphic processing unit - „GPU“), einen oder mehrere Mikroprozessoren, einen Digitalsignalprozessor oder einen beliebigen anderen Prozessortyp oder eine beliebige Kombination davon beinhalten In einigen Ausführungsformen kann die Funktionalität des Prozessors bzw. der Prozessoren 202 durch eine oder mehrere Hardware-Logikkomponenten durchgeführt werden, die unter anderem feldprogrammierbare Gate-Arrays (field-programmable gate arrays - „FPGA“), anwendungsspezifische integrierte Schaltungen (application specific integrated circuits - „ASICs“), anwendungsspezifische Standardprodukte (applicationspecific standard products - „ASSPs“), System-on-Chip-Systeme („SOCs“) und/oder komplexe programmierbare Logikvorrichtungen (complex programmable logic devices - „CPLDs“) einschließen. Darüber hinaus kann jeder des/der Prozessor(en) 220 seinen eigenen lokalen Speicher beinhalten, der Programmsysteme, Programmdaten und/oder ein oder mehrere Betriebssysteme speichern kann. Auf dem/den Prozessor(en) 220 kann jedoch ein Betriebssystem (operating system - „OS“) für eine sprachgestützte Vorrichtung 102 und/oder eine oder mehrere Firmware-Anwendungen, Medienanwendungen und/oder darauf residente Anwendungen ausgeführt werden. In einigen Ausführungsformen kann/können der/die Prozessor(en) 220 ein lokales Client-Skript zum Lesen und Rendern von Inhalten ausführen, die von einer oder mehreren Websites empfangen werden. Beispielsweise kann/können der/die Prozessor(en) 220 einen lokalen JavaScript-Client zum Rendern von HTML- oder XHTML-Inhalten ausführen, die von einer konkreten URL empfangen wurden, auf die eine sprachgestützte Vorrichtung 102 zugreift. Datenspeicher/Speicher 222 kann eine oder mehrere Arten von Speichermedien beinhalten, wie etwa einen beliebigen flüchtigen oder nichtflüchtigen Speicher oder einen entfernbaren oder nicht entfernbaren Speicher, der auf geeignete Weise implementiert ist, um Daten für eine sprachgestützte Vorrichtung 102 zu speichern. Daten können beispielsweise unter Verwendung computerlesbarer Anweisungen, Datenstrukturen und/oder Programmsystemen gespeichert werden. Verschiedene Arten von Datenspeicher/Speicher können unter anderem Festplatten, Solid-State-Laufwerke, Flash-Speicher, permanenten Speicher (z. B. ROM), elektronisch löschbare programmierbare Nur-Lese-Speicher („EEPROM“), CD-ROMs, Digital Versatile Disk („DVD“) oder andere optische Speichermedien, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen, RAID-Speichersysteme oder andere Speichertypen oder Kombinationen davon beinhalten. Darüber hinaus kann der Datenspeicher/Speicher 222 als computerlesbares Speichermedium (computer-readable storage media - „CRSM“) implementiert sein, bei dem es sich um jedes verfügbare physische Medium handeln kann, auf das der/die Prozessor(en) 220 zugreifen kann/können, um eine oder mehrere im Datenspeicher/Speicher 222 gespeicherte Anweisungen auszuführen. In einigen Ausführungsformen können eine oder mehrere Anwendungen (z. B. Spiele, Musik, Video, Kalender, Listen usw.) durch Prozessor(en) 220 ausgeführt und im Speicher 222 gespeichert werden.The processor(s) 220 may include any suitable processing circuitry capable of controlling operations and functionality of a voice-enabled
In einigen Ausführungsformen kann der Datenspeicher/Speicher 222 sprachbiometrische Daten speichern, die einer oder mehreren Personen zugeordnet sind. Beispielsweise kann eine Person, die eine sprachgestützte Vorrichtung 102 bedient, über ein registriertes Benutzerkonto oder andere Profildaten im Sprachverarbeitungssystem 100 verfügen (z. B. in einem Benutzerdatenspeicher 216). In einigen Ausführungsformen kann eine sprachgestützte Vorrichtung 102 einem Gruppenkonto zugeordnet sein und verschiedene Personen können Benutzerkonten haben, die nach den Regeln und Konfigurationen des Gruppenkontos arbeiten. Als veranschaulichendes Beispiel kann eine sprachgestützte Vorrichtung 102 einem ersten Gruppenkonto im Sprachverarbeitungssystem 100 zugeordnet sein, wobei das erste Gruppenkonto für eine Familie gilt, die in einem Haushalt lebt, in dem sich eine sprachgestützte Vorrichtung 102 befindet. Jedes Familienmitglied kann ebenfalls über ein Benutzerkonto verfügen, das mit dem ersten Gruppenkonto verknüpft ist (z. B. ein Elternteil, ein Kind usw.), und daher kann jedes Benutzerkonto einige oder alle Rechte des ersten Gruppenkontos erlangen. Beispielsweise kann eine sprachgestützte Vorrichtung 102 über ein erstes Gruppenkonto im Sprachverarbeitungssystem 100 verfügen, das für eine konkrete Familie oder Gruppe registriert ist, und alle Elternteile und Kinder der Familie können über ihr eigenes Benutzerkonto verfügen, das unter dem registrierten Konto des Elternteils registriert ist. In einer veranschaulichenden Ausführungsform können sprachbiometrische Daten für jede Person durch das entsprechende Benutzerkonto dieser Person gespeichert werden. Die sprachbiometrischen Daten können beispielsweise einem „Stimmprofil“ oder „Stimmmodell“ einer konkreten Person entsprechen, bei dem es sich um eine grafische Darstellung der Stimme einer Person einschließlich einer Frequenzzerlegung der Stimme dieser Person handeln kann. Die Kommunikationsschaltung 224 kann beliebige Schaltungen beinhalten, die es einer oder mehreren Komponenten einer sprachgestützten Vorrichtung 102 erlauben oder ermöglichen, miteinander und/oder mit einer/einem oder mehreren zusätzlichen Vorrichtungen, Servern und/oder Systemen zu kommunizieren. Beispielsweise kann die Kommunikationsschaltung 224 die Kommunikation zwischen einer sprachgestützten Vorrichtung 102 und dem Sprachverarbeitungssystem 100 erleichtern. Als veranschaulichendes Beispiel können Audiodaten, die eine Äußerung darstellen (z. B. Äußerung 106 in
Eine sprachgestützte Vorrichtung 102 kann auch ein oder mehrere Mikrofone 226 und/oder Wandler beinhalten. Zusätzlich oder alternativ können ein oder mehrere Mikrofone, die sich in einer separaten Vorrichtung befinden, mit einer sprachgestützten Vorrichtung 102 kommunizieren, um Töne für eine sprachgestützte Vorrichtung 102 zu erfassen. Das/die Mikrofon(e) 226 kann/können jede geeignete Komponente sein, die Audiosignale erkennen kann. Beispielsweise kann/können das/die Mikrofon(e) 226 einen oder mehrere Sensoren zum Generieren elektrischer Signale und Schaltungen beinhalten, die in der Lage sind, die generierten elektrischen Signale zu verarbeiten. In einigen Ausführungsformen kann/können das/die Mikrofon(e) 226 mehrere Mikrofone beinhalten, die in der Lage sind, verschiedene Frequenzpegel zu erkennen. Als veranschaulichendes Beispiel kann eine sprachgestützte Vorrichtung 102 mehrere Mikrofone (z. B. vier, sieben, zehn usw.) beinhalten, die an verschiedenen Positionen rund um eine sprachgestützte Vorrichtung 102 platziert sind, um jegliche Audioausgabe in der Umgebung, in der sich eine sprachgestützte Vorrichtung 102, zu überwachen/zu erfassen. Die verschiedenen Mikrofone 226 können einige Mikrofone beinhalten, die für entfernte Töne optimiert sind, während einige Mikrofone für Töne optimiert sein können, die im Nahbereich einer sprachgestützten Vorrichtung 102 auftreten. In einigen Ausführungsformen kann/können das/die Mikrofon(e) 226 nur als Reaktion auf eine manuelle Eingabe in eine sprachgestützte Vorrichtung 102 damit beginnen, Audiosignale zu erkennen. Beispielsweise kann eine manuell aktivierte Vorrichtung als Reaktion auf eine Benutzereingabe, wie etwa das Drücken einer Taste, das Tippen auf einen Touchscreen oder das Bereitstellen einer Berührungseingabegeste für eine Berührungseingabekomponente, mit der Erfassung von Audiodaten unter Verwendung des Mikrofons/der Mikrofone 226 beginnen. Eine sprachgestützte Vorrichtung 102 kann einen oder mehrere Lautsprecher 228 beinhalten. Darüber hinaus kann eine sprachgestützte Vorrichtung 102 mit einem oder mehreren Lautsprechern 228 kommunizieren. Der/die Lautsprecher 228 kann/können jedem geeigneten Mechanismus zur Ausgabe von Audiosignalen entsprechen. Zum Beispiel kann/können der/die Lautsprecher 228 eine oder mehrere Lautsprechereinheiten, Lautsprechergehäuse, Wandler, Lautsprecheranordnungen und/oder Wandleranordnungen beinhalten, die in der Lage sein können, Audiosignale und/oder Audioinhalt in einen Umgebungsbereich auszusenden, in dem sich die sprachgestützte Vorrichtung 102 befinden kann. In einigen Ausführungsformen kann/können der/die Lautsprecher 228 Kopfhörer oder Ohrstöpsel beinhalten, die drahtlos oder drahtgebunden mit einer sprachgestützten Vorrichtung 102 verbunden sein können, die in der Lage sein können, Audio direkt an eine Person auszusenden.A voice-assisted
In einigen Ausführungsformen können ein oder mehrere Mikrofone 226 als Eingabevorrichtungen zum Empfangen von Audioeingaben dienen. Eine sprachgestützte Vorrichtung 102 kann in der zuvor erwähnten Ausführungsform dann auch einen oder mehrere Lautsprecher 228 beinhalten, um akustische Antworten auszugeben. Auf diese Weise kann eine sprachgestützte Vorrichtung 102 ausschließlich über Sprache oder Audio funktionieren, ohne dass Eingabemechanismen oder Anzeigen verwendet oder benötigt werden, dies ist jedoch lediglich beispielhaft.In some embodiments, one or more microphones 226 may serve as input devices for receiving audio input. A voice-assisted
Die Anzeigekomponente 232 kann einer Anzeigevorrichtung und/oder einem Touchscreen entsprechen, die bzw. der jede Größe und/oder Form aufweisen und sich an einem beliebigen Abschnitt einer sprachgestützten Vorrichtung 102 befinden kann. Verschiedene Arten von Anzeigen können unter anderem Flüssigkristallanzeigen (liquid crystal displays - „LCD“), monochrome Anzeigen, Farbgrafikadapter (color graphics adapter - „CGA“)-Anzeigen, erweiterte Grafikadapter (enhanced graphics adapter - „EGA“)-Anzeigen, variable Grafikarray (variable graphics array - „VGA“)-Anzeigen oder jede andere Art von Anzeige oder eine beliebige Kombination davon beinhalten. Darüber hinaus kann ein Touchscreen in einigen Ausführungsformen einer Anzeigevorrichtung mit kapazitiven Sensorfeldern entsprechen, die Berührungseingaben darauf erkennen können. Beispielsweise kann die Anzeigekomponente 232 einem projizierten kapazitiven Touchscreen (projected capacitive touch - „PCT“) entsprechen. In einigen Ausführungsformen kann die Anzeigekomponente 232 eine optionale Komponente für eine sprachgestützte Vorrichtung 102 sein. Beispielsweise beinhaltet eine sprachgestützte Vorrichtung 102 möglicherweise keine Anzeigekomponente 232. Derartige Vorrichtungen, manchmal auch als „monitorlose“ Vorrichtungen bezeichnet, können Audio ausgeben oder mit einer Anzeigevorrichtung kommunizieren, um sichtbare Inhalte auszugeben.The
In einigen Ausführungsformen kann der auf der Anzeigekomponente 232 angezeigte Inhalt so formatiert sein, dass kontextbezogene Entitäten und Listen durch das Sprachverarbeitungssystem 100 zur Listenauflösung und/oder Anaphorenauflösung analysiert werden können. Kontext im Zusammenhang mit dem angezeigten Inhalt kann Entitäten beinhalten, die einer sprachgestützten Vorrichtung 102 zugeordnet sind, einschließlich unter anderem Vordergrundentitäten (z. B. Listen von Elementen, Detailseiten), Hintergrundentitäten (z. B. Lieder, Hörbücher) und Benachrichtigungsentitäten. Die Kontextdaten können in Kontext-Entitätsslots, Listenmetadaten und alle anderen verfügbaren zusätzlichen Daten strukturiert werden. Kontextbezogene Entitätsslots können beispielsweise Daten entsprechen, die für die Listenauflösung und/oder Anaphoraauflösung verwendet werden. Die kontextbezogenen Entitätsslots können in Domänendefinitionen mit entsprechenden Werten spezifiziert sein. Die Listenmetadaten können Listenkennungen, Elementkennungen für Elemente einer Liste und absolute Positionen der Liste für ein konkretes Element (z. B. ein erstes Element einer Liste, ein zweites Element einer Liste usw.) beinhalten. Derartige zusätzliche Daten können eindeutige Kennungen beinhalten, die einem Objekt, Artikelpreisen, Mengen und dergleichen zugeordnet sind.In some embodiments, the content displayed on the
In einigen Ausführungsformen kann eine sprachgestützte Vorrichtung 102 eine oder mehrere Kameras 230 beinhalten, die einer oder mehreren geeigneten Bildeaufnahmekomponenten oder Komponenten, die in der Lage sind, ein oder mehrere Bilder und/oder Videos aufzunehmen, entsprechen. Die Kamera(s) 230 kann/können in einigen Ausführungsformen dazu konfiguriert sein, Fotos, Fotosequenzen, Schnellschussaufnahmen (z. B. mehrere nacheinander während einer relativ kurzen Zeitdauer aufgenommene Fotos), Videos oder jede andere Art von Bild oder eine beliebige Kombination davon aufzunehmen. In einigen Ausführungsformen kann eine sprachgestützte Vorrichtung 102 mehrere Kameras 230 beinhalten, wie etwa eine oder mehrere nach vorne gerichtete Kameras und/oder eine oder mehrere nach hinten gerichtete Kameras. Darüber hinaus kann/können die Kamera(s) 230 dazu konfiguriert sein, Fernfeldbilder (z. B. Objekte, die sich in großer Entfernung von einer sprachgestützten Vorrichtung 102 befinden) oder Nahfeldbilder (z. B. Objekte, die sich in relativ geringer Entfernung von einer sprachgestützten Vorrichtung 102 befinden) zu erkennen. In einigen Ausführungsformen kann/können die Kamera(s) hochauflösende (high-definition - „HD“) Kameras sein, die Bilder und/oder Videos mit einer im Wesentlich hohen Auflösung (z. B. 720p, 1080p, 1080i, 4K usw.) erlangen können. In einigen Ausführungsformen kann/können die Kamera(s) 230 für eine sprachgestützte Vorrichtung 102 optional sein. Beispielsweise kann/können sich die Kamera(s) 230 außerhalb einer sprachgestützten Vorrichtung 102 befinden und mit dieser kommunizieren. Beispielsweise kann eine externe Kamera in der Lage sein, Bilder und/oder Videos aufzunehmen, die dann einer sprachgestützten Vorrichtung 102 zur Anzeige und/oder Verarbeitung bereitgestellt werden können.In some embodiments, a voice-enabled
In einigen Ausführungsformen können die Anzeigekomponente 232 und/oder die Kamera(s) 230 für eine sprachgestützte Vorrichtung 102 optional sein. Beispielsweise kann eine sprachgestützte Vorrichtung 102 unter Verwendung von Audioeingaben funktionieren und als Reaktion Audio ausgeben oder als Reaktion eine oder mehrere Maßnahmen veranlassen, weshalb die Anzeigekomponente 232 und/oder die Kamera(s) 230 möglicherweise nicht beinhaltet sind. Darüber hinaus beinhaltet eine sprachgestützte Vorrichtung 102 in einigen Ausführungsformen möglicherweise die Anzeigekomponente 232 und/oder die Kamera(s) 230 nicht, sondern kann stattdessen mit der Anzeigekomponente 232 und/oder der/den Kamera(s) 230 kommunizieren. Beispielsweise kann eine sprachgestützte Vorrichtung 102 über eine Wi-Fi-Verbindung (z. B. 802.11-Protokoll) mit einem Anzeigebildschirm verbunden sein, sodass an eine sprachgestützte Vorrichtung 102 gesendeter visueller Inhalt an den Anzeigebildschirm gesendet und durch diesen ausgegeben werden kann.In some embodiments,
In einigen Ausführungsformen können Kontextdaten durch Computer-Vision-Analyse eines durch die Kamera(s) 230 erkannten Objekts erlangt werden. Beispielsweise kann eine sprachgestützte Vorrichtung 102 als Reaktion auf das Aussprechen der Äußerung „Kauf das“ die Kamera(s) 230 veranlassen, ein Bild aufzunehmen. In some embodiments, context data may be obtained through computer vision analysis of an object detected by the camera(s) 230. For example, in response to uttering the utterance "buy this," a voice-enabled
Dieses Bild kann analysiert werden, um zu bestimmen, um welches Objekt es sich handelt, und die der Identifizierung dieser Objekte zugeordneten Kontextdaten können bestimmt werden. Wenn beispielsweise eine Person eine Ketchup-Flasche hochhält, kann die Computer-Vision-Analyse möglicherweise aus dem aufgenommenen Bild einen Produktnamen, einen Barcode und/oder ein anderes Attribut der Ketchup-Flasche bestimmen und eine Kontextdatenstruktur, die die bestimmten Werte angibt (z. B. ,Artikelname` Slot: „Ketchup“), füllen.This image can be analyzed to determine what the object is, and the context data associated with identifying those objects can be determined. For example, if a person is holding up a ketchup bottle, the computer vision analysis may be able to determine a product name, barcode, and/or other attribute of the ketchup bottle from the captured image and populate a context data structure specifying the determined values (e.g., 'Item Name' slot: "Ketchup").
Die sprachgestützte Vorrichtung 102 kann über ein oder mehrere Netzwerke 150 mit dem Sprachverarbeitungssystem 100 kommunizieren. Das eine oder die mehreren Netzwerke 150 können jede brauchbare Kommunikationstechnologie beinhalten, wie etwa drahtgebundene und/oder drahtlose Modalitäten und/oder Technologien. Die Netzwerke 150 können eine beliebige Kombination aus persönlichen Netzwerken (Personal Area Networks - „PANs“), lokalen Netzwerken (Local Area Networks - „LANs“), Hochschulnetzwerken (Campus Area Networks - „CANs“), Stadtbereichsnetzwerken (Metropolitan Area Networks - „MANs“), Extranets, Intranets, dem Internet, drahtlosen Kommunikationsnetzen mit kurzer Reichweite (z. B. ZigBee, Bluetooth usw.), Weitbereichsnetzwerken (Wide Area Networks - „WANs“) - zentralisiert und/oder verteilt - und/oder eine beliebige Kombination, Permutation und/oder Aggregation davon beinhalten.The voice-assisted
Wie in
Das ASR-System 202 kann dazu konfiguriert sein, menschliche Sprache in erkanntem Audio wiederzuerkennen, wie etwa in Audio, das durch eine sprachgestützte Vorrichtung 102 erfasst wurde, das dann an das Sprachverarbeitungssystem 100 übertragen werden kann. Das ASR-System 202 kann in einer Ausführungsform einen oder mehrere Prozessor(en) 252, Datenspeicher/Speicher 254 und eine Kommunikationsschaltung 256 beinhalten. Der/die Prozessor(en) 252, der Datenspeicher/Speicher 254 und die Kommunikationsschaltung 256 können in einigen Ausführungsformen im Wesentlichen dem/den Prozessor(en) 220, dem Datenspeicher/Speicher 222 und der Kommunikationsschaltung 224 ähneln, die vorstehend ausführlicher beschrieben wurden; es gelten deshalb die vorgenannten Beschreibungen. Darüber hinaus kann das ASR-System 202 in einigen Ausführungsformen ein STT-System 280 beinhalten. Das STT-System 280 kann verschiedene Sprache-zu-Text-Techniken einsetzen.The
Das ASR-System 202 kann empfangene Audiodaten unter Verwendung des STT-Systems 280 in Textdaten transkribieren, die die in den Audiodaten enthaltenen Wörter der Sprache darstellen. Die Textdaten können dann durch andere Komponenten für verschiedene Zwecke verwendet werden, wie etwa zum Ausführen von Systembefehlen, zum Eingeben von Daten usw. Den unterschiedlichen Arten, wie eine gesprochene Äußerung transkribiert werden kann (d. h. den unterschiedlichen Hypothesen), kann jeweils eine Wahrscheinlichkeit oder Konfidenzwertung zugewiesen sein, die die Wahrscheinlichkeit angibt, dass eine konkreter Satz von Wörtern mit den in der Äußerung gesprochenen Wörtern übereinstimmt. Die Konfidenzwertung kann auf einer Reihe von Faktoren basieren, einschließlich beispielsweise der Ähnlichkeit des Tons in der Äußerung mit Modellen für Sprachtöne (z. B. einem akustischen Modell) und der Wahrscheinlichkeit, dass ein konkretes Wort, das mit den Tönen übereinstimmt, an der spezifischen Stelle in dem Satz beinhaltet wäre (z. B. unter Verwendung eines Sprach- oder Grammatikmodells). Somit ist jeder potenziellen Textdarstellung der gesprochenen Äußerung (Hypothese) eine Konfidenzwertung zugeordnet. Basierend auf den berücksichtigten Faktoren und der zugewiesenen Konfidenzwertung kann das ASR-System 202 die wahrscheinlichste(n) Textdarstellung(en) der Audiodaten ausgeben.The
Das ASR-System 202 kann Ergebnisdaten beispielsweise in Form einer einzelnen Textdarstellung der Sprache, einer N-besten Liste einschließlich mehrerer Hypothesen und jeweiliger Wertungen und/oder eines Gitters generieren, die an das NLU-System 204 zur Verarbeitung gesendet werden können, wie etwa zur Umwandlung des Textes in Befehle zur Ausführung, entweder durch eine sprachgestützte Vorrichtung 102, ein Sprachverarbeitungssystem 100 oder durch eine andere Vorrichtung, wie etwa eine separate Vorrichtung oder einen Server, die bzw. der eine oder mehrere zusätzliche Funktionalitäten durchführen kann (z. B. ein Fernseher, der Videoinhalt ausgeben kann).The
Das NLU-System 204 kann derart konfiguriert sein, dass es eine Intention einer Äußerung basierend auf den empfangenen Audiodaten bestimmt. Das NLU-System 204 kann Prozessor(en) 252, Datenspeicher/Speicher 254 und eine Kommunikationsschaltung 256 beinhalten, die in einer Ausführungsform im Wesentlichen dem/den Prozessor(en) 220, dem Datenspeicher/Speicher 222 und der Kommunikationsschaltung 224 der elektronischen Vorrichtung 102 ähneln können; es gilt deshalb die vorherige Beschreibung.The
Das NLU-System 204 kann ein System 272 zur Wiedererkennung benannter Entitäten (named entity recognition - „NER“) beinhalten, das zur Identifizierung von Textabschnitten verwendet werden kann, die einer benannten Entität entsprechen, die durch das NLU-System 204 wiedererkennbar ist. Ein nachgelagerter Prozess mit der Bezeichnung Auflösung benannter Entitäten` 292 kann dazu konfiguriert sein, einen Textabschnitt mit einer tatsächlichen spezifischen bekannten Entität zu verknüpfen. Um die Auflösung benannter Entitäten durchzuführen, kann das System Verzeichnisdaten nutzen, die in einem Entitätsbibliotheksspeicher gespeichert sind. Die Verzeichnisdaten können zur Entitätsauflösung verwendet werden, beispielsweise zum Abgleichen von ASR-Ergebnissen mit unterschiedlichen Entitäten (wie etwa Liedtiteln, Kontaktnamen usw.). Verzeichnisse können mit einem Benutzerkonto oder -profil des Benutzerkontendatenspeichers 216 und gewissen Domänen (z. B. Musik oder Shopping) verknüpft sein oder auf verschiedene andere Arten organisiert sein.The
Allgemein beschrieben kann das NLU-System 204 Texteingaben entgegennehmen und versuchen, eine semantische Interpretation des Textes vorzunehmen. Das heißt, das NLU-System 204 kann dazu konfiguriert sein, eine Bedeutung von Textdaten zu bestimmen (z. B. basierend auf den einzelnen Wörtern, die durch die Textdaten dargestellt werden) und diese Bedeutung dann implementieren. In einigen Ausführungsformen kann das NLU-System 204 eine Textzeichenfolge interpretieren, um eine Intention oder eine gewünschte Maßnahme der Äußerung (z. B. Äußerung 106) sowie die relevanten Informationsteile im Text abzuleiten, die den Abschluss einer Maßnahme ermöglichen. Wenn beispielsweise eine gesprochene Äußerung durch das ASR-System 202 verarbeitet wird und den Text „Mama anrufen“ ausgibt, kann das NLU-System 204 bestimmen, dass eine Intention der Äußerung darin besteht, ein Telefon oder eine Telefonfunktion zu aktivieren und einen Anruf an einen Kontakt, der zu der Entität „Mama“ passt, einzuleiten. In einigen Ausführungsformen kann das NLU-System 204 mehrere Texteingaben verarbeiten, die sich auf dieselbe Äußerung beziehen. Wenn das ASR-System 202 beispielsweise N Textsegmente ausgibt (als Teil einer N-besten Liste), kann das NLU-System 204 alle N Ausgaben verarbeiten.Generally described, the
Das NLU-System 204 kann dazu konfiguriert sein, Text zu analysieren und zu beschriften, zu markieren oder anderweitig Annotationen vorzunehmen. Beispielsweise kann in dem Text „Mama anrufen“ das Wort „anrufen“ als Befehl markiert werden (z. B. ein Befehl zum Ausführen eines Telefonanrufs), und das Wort „Mama“ kann als spezifische Entität und Ziel des Befehls markiert werden (z. B. eine Telefonnummer für die Entität, die „Mama“ entspricht und in einer Kontaktliste gespeichert ist). Darüber hinaus kann das NLU-System 204 verwendet werden, um Antwortdaten als Reaktion auf Abfragen bereitzustellen, beispielsweise unter Verwendung einer Wissensdatenbank, die im Datenspeicher/Speicher 254 des NLU-Systems 204 und/oder im Datenspeicher/Speicher des Sprachverarbeitungssystems 100 gespeichert ist.The
Ein System 274 zur Intentionsklassifizierung (intent classification - „IC“) kann die Abfrage analysieren, um eine oder mehrere Intentionen zu bestimmen, wobei die Intention der durchzuführenden Maßnahme entspricht, die auf die Abfrage reagiert. Die durch das IC-System 274 identifizierten Intentionen können mit Grammatik-Frameworkrs verknüpft werden, die Felder, auch als „Slots“ bezeichnet, zum Ausfüllen aufweisen. Jeder Slot kann einem Abschnitt des Abfragetexts entsprechen, von dem das System glaubt, dass er einer Entität entspricht. Wenn beispielsweise „Musik abspielen“ eine identifizierte Intention ist, können ein oder mehrere Grammatik-Frameworks Satzstrukturen wie „Spiele {Künstlername}“, „Spiele {Albumname}“, „Spiele {Liedname}“, „Spiele {Liedname} von {Künstlername}“ usw. entsprechen. Um die Auflösung flexibler zu gestalten, sind diese Frameworks jedoch möglicherweise nicht als Sätze strukturiert, sondern basieren vielmehr auf einer Zuordnung von Slots zu grammatikalischen Markierungen. Als weiteres Beispiel kann, wenn „Spiele ,Lied 1'“ eine identifizierte Intention ist, ein Grammatik-Framework Satzstrukturen wie etwa „Spiele {Lied 1}“ entsprechen.An intent classification (“IC”) system 274 may analyze the query to determine one or more intents, where the intent corresponds to the action to be taken in response to the query. The intentions identified by the IC system 274 can be linked to grammar frameworks that have fields, also known as “slots,” for filling. Each slot can correspond to a section of the query text that the system believes corresponds to an entity. For example, if "play music" is an identified intent, one or more grammar frameworks can support sentence structures such as "Play {artist name}", "Play {album name}", "Play {song name}", "Play {song name} by {artist name}" “ etc. correspond. However, to make resolution more flexible, these frameworks may not be structured as sentences, but rather based on a mapping of slots to grammatical markers. As another example, if "Play 'Song 1'" is an identified intention, a grammar framework may correspond to sentence structures such as "Play {Song 1}".
Das NER-System 272 kann die Abfrage analysieren, um Wörter als Subjekt, Objekt, Verb, Präposition usw. basierend auf Grammatikregeln und/oder -modellen zu identifizieren, bevor benannte Entitäten aufgelöst werden. Das identifizierte Verb kann durch das IC-Modul 274 zur Identifizierung der Intention verwendet werden, die dann durch das NER-System 272 zur Identifizierung von Frameworks verwendet wird. Ein Framework für eine Intention „Abspielen“ kann eine Liste von Slots/Feldern/Platzhaltern spezifizieren, die zum Platzieren des identifizierten „Objekts“ anwendbar sind, wie etwa zum Beispiel {Künstlername}, {Albumname}, {Liedname}, {Anwendungsname}, {Anaphorischer Begriff} und ein beliebiger Objektmodifikator (z. B. eine Präpositionalphrase). Das NER-System 272 kann dann die entsprechenden Felder in den domänenspezifischen und personalisierten Lexikon(s) durchsuchen und versuchen, Wörter und Phrasen in der Abfrage, die als grammatikalisches Objekt oder Objektmodifikator markiert sind, mit den in der/den Datenbank(en) identifizierten abzugleichen. Beispielsweise könnte eine Abfrage von „Spiele Lied 1` von ,Künstler 1'“ analysiert und als {Verb}: „Spiele“, {Objekt}: „Lied 1“, {Objekt Präposition} „von“ und {Objektmodifikator}:
- „
Künstler 1“ analysiert und markiert werden. An diesem Punkt des Prozesses kann „Abspielen“ basierend auf einer Wortdatenbank, die der Musikdomäne zugeordnet ist, als Verb identifiziert werden, wobei das IC-Modul 274 bestimmen kann, dass es der Intention „Musik abspielen“ entspricht. Es wurde keine Bestimmung über die Bedeutung von „Lied 1“ und „Künstler 1“ vorgenommen, aber basierend auf einem Modell, wie etwa einem multimodalen Modell, kann bestimmt werden, dass sich der Text dieser Phrasen auf das grammatikalische Objekt bezieht (d. h. Entität) der Abfrage bezieht.
- "
Artist 1" may be analyzed and tagged. At this point in the process, "play" may be identified as a verb based on a word database associated with the music domain, where IC module 274 may determine that it corresponds to the intent "play music." No determination has been made about the meaning of "song 1" and "artist 1," but based on a model, such as a multimodal model, it may be determined that the text of these phrases refers to the grammatical object (i.e., entity) of the query.
Die mit der Intention verknüpften Frameworks können dann verwendet werden, um zu bestimmen, welche Datenbankfelder durchsucht werden sollen, um die Bedeutung dieser Phrasen zu bestimmen, wie etwa Durchsuchen eines Verzeichnis eines Benutzers nach Ähnlichkeit mit den Framework-Slots. Ein Framework für die Intention „Musik abspielen“ könnte also versuchen, das identifizierte Objekt für {Künstlername}, {Albumname}, {Liedname} und {Anwendungsname}, {Anaphorischer Begriff} aufzulösen und ein anderes Framework für dieselbe Intention könnte versuchen, den Objektmodifikator basierend auf {Künstlername} aufzulösen und das Objekt basierend auf {Albumname} und {Liedname}, die mit dem identifizierten {Künstlername} verknüpft sind, aufzulösen. Wenn die Suche im Verzeichnis einen Slot/ein Feld unter Verwendung von Verzeichnisdaten nicht auflöst, kann das NER-System 272 die Datenbank nach generischen Wörtern durchsuchen, die der konkreten Domäne zugeordnet sind. Wenn die Abfrage also beispielsweise „Lieder von Künstler 1` abspielen“ lautete, kann das NER-System 272 das Domänenvokabular nach dem Wort „Lieder“ durchsuchen, nachdem ein Albumname oder Liedname namens „Lieder“ von „Künstler 1“ nicht bestimmt werden konnte. Beispielsweise kann die Verwendung des Objekts „Lieder“ einigen oder allen Liedern entsprechen, die einem konkreten Künstler (z. B. „Künstler 1“) zugeordnet sind. Alternativ können generische Wörter vor den Verzeichnisdaten überprüft werden, oder beides könnte probiert werden, was möglicherweise zu zwei unterschiedlichen Ergebnissen führt.The frameworks associated with the intent can then be used to determine which database fields to search to determine the meaning of those phrases, such as for example, searching a user's directory for similarity to the framework slots. So, a framework for the intent "play music" might attempt to resolve the identified object for {artist name}, {album name}, {song name}, and {application name}, {anaphoric term}, and another framework for the same intent might attempt to resolve the object modifier based on {artist name} and resolve the object based on {album name} and {song name} associated with the identified {artist name}. If searching the directory does not resolve a slot/field using directory data, the NER system 272 may search the database for generic words associated with the concrete domain. For example, if the query was "play songs by
Die Ergebnisse der Verarbeitung zum Verständnis natürlicher Sprache können markiert oder beschriftet werden, um der „Abfrage eine Bedeutung zuzuordnen. So könnte beispielsweise Spiele ,Lied 1' von Künstler 1"' zu folgendem Ergebnis führen:
- {Intention}: „Musik abspielen“, {Künstlername}: „
Künstler 1“, {Medienart}: „Lied“ und {Liedname}: „Lied 1.“ Als weiteres Beispiel könnte „Lieder von Künstler 1` abspielen“ Folgendes erzeugen: {Intention}: „Musik abspielen“, {Künstlername}:- „
Künstler 1“ und {Medienart}: Lied. Darüber hinaus könnte „Dies zu meinem Warenkorb hinzufügen“ zu folgendem Ergebnis führen: {Intention} „Artikel hinzufügen“, {Anaphorischer Begriff}: „dies“ und {Listenart} „Warenkorb“.
- „
- {Intention}: "Play music", {Artist name}: "
Artist 1", {Media type}: "Song" and {Song name}: "Song 1." As another example, "Play songs byArtist 1" might produce: {Intention}: "Play music", {Artist name}:- "
Artist 1" and {Media Type}: song. Additionally, "Add this to my cart" might result in {Intent} "add item", {Anaphoric Term}: "this", and {List Type} "cart".
- "
Das NLU-System204 kann mehrere Intentionshypothesen generieren, die von nachgelagerten Prozessen berücksichtigt werden sollen. In einigen Ausführungsformen kann der Satz von Intentionshypothesen in einer N-besten Liste von Intentionen und Slots angeordnet werden, die den Top-Auswahlmöglichkeiten hinsichtlich der Bedeutung einer Äußerung entsprechen, zusammen mit Wertungen für jedes Element. Beispielsweise kann das NLU-System 204 für ASR-Ausgabedaten, die die Äußerung „Spiele Harry Potter“ darstellen, eine Ausgabe in Form einer N-besten Liste s von gewerteten Intentionshypothesen generieren, wie etwa:
- (0,93) Intention: Film abspielen; Titel: „Harry Potter und der Stein der Weisen“
- (0,03) Intention: Film abspielen; Titel: „Harry Potter und die Heiligtümer des Todes Teil 2“
- (0,02) Intention: Film abspielen; Titel: „Harry Potter und die Heiligtümer des Todes Teil 1“
- (0,01) Intention: Musik abspielen; Titel: „Harry Potter Original-Film-Soundtrack“
- (0,01) Intention: Hörbuch abspielen; Titel: „Harry Potter und der Stein der Weisen“
- (0.93) Intention: Play movie; Title: “Harry Potter and the Philosopher’s Stone”
- (0.03) Intention: Play movie; Title: “Harry Potter and the
Deathly Hallows Part 2” - (0.02) Intention: Play movie; Title: “Harry Potter and the
Deathly Hallows Part 1” - (0.01) Intention: Play music; Title: “Harry Potter Original Motion Picture Soundtrack”
- (0.01) Intention: Play audio book; Title: “Harry Potter and the Philosopher’s Stone”
Das NLU-System 204 kann unter Verwendung der Textdaten und anderer Daten, wie etwa Kontextdaten, Wertungen für Intentionen und Inhaltsslots generieren. Die Wertungen können angeben, wie wahrscheinlich es ist, dass einzelne Beschriftungen die richtigen Beschriftungen für einzelne Wörter der verarbeiteten Äußerung sind. Im vorliegenden Beispiel beinhaltet die Äußerung „Spiele Harry Potter“ drei Wörter: „Spielen“, „Harry“ und „Potter“. Die einzelnen Wörter können unter Verwendung eines vorgegebenen Satzes von Beschriftungen beschriftet werden, einschließlich unterschiedlicher Beschriftungen für die verschiedenen Intentionen, die durch das NLU-System 204 wiedererkennbar sind, und unterschiedlicher Beschriftungen für die Inhaltsslots, die den verschiedenen Intentionen entsprechen. Dieser Prozess kann semantisches Markieren beinhalten, das heißt die Beschriftung eines Wortes oder einer Kombination von Wörtern entsprechend ihrer Art/semantischen Bedeutung. Die Beschriftung kann unter Verwendung eines NER-Modells allein oder in Kombination mit heuristischen Grammatikregeln durchgeführt werden. Das NER-Modell kann unter Verwendung von Techniken wie Hidden-Markov-Modellen, Maximum-Entropie-Modellen, logarithmischen linearen Modellen, bedingten Zufallsfeldern (conditional random fields - „CRF“) oder anderen Modellen erstellt werden, die dazu konfiguriert sind, Beschriftungsdaten (z. B. Wertungen, Wahrscheinlichkeiten usw. für einzelne Beschriftungen) unter Verwendung von Textdaten und in einigen Fällen Kontextdaten zu generieren.The
In einigen Ausführungsformen kann das NLU-System 204 domänenspezifische Erkennungseinrichtungen für jede von mehreren Domänen beinhalten, und jede der domänenspezifischen Erkennungseinrichtungen kann ihre eigene NER-Komponente 272, IC-Komponente 274 usw. beinhalten. Beispielsweise kann das NLU-System 204 Erkennungseinrichtungen für eine Einkaufsdomäne, eine Musikdomäne, eine Videodomäne und eine Kommunikationsdomäne beinhalten.In some embodiments, the
Das NLU-System 204 kann auch eine Slot-Füllerkomponente 290 beinhalten. Die Slot-Füllerkomponente 290 kann Text aus Slots übernehmen und ihn ändern, um die Verarbeitung des Texts durch nachgelagerte Komponenten einfacher zu gestalten. Bei den Vorgängen der Slot-Füllerkomponente 290 handelt es sich typischerweise um Vorgänge mit geringer Latenz, die keine aufwändigen Vorgänge wie Verweise auf eine Wissensdatenbank involvieren. Der Zweck der Slot-Füllerkomponente 290 besteht darin, Wörter durch andere Wörter oder Werte zu ersetzen, die von nachgelagerten Komponenten leichter verstanden werden können. Wenn beispielsweise eine in den Textdaten 320 dargestellte Textinterpretation das Wort „morgen“ beinhaltet, kann die Slot-Füllerkomponente 290 das Wort „morgen“ für Zwecke der nachgelagerten Verarbeitung durch ein tatsächliches Datum ersetzen. Gleichermaßen kann das Wort „CD“ durch das Wort „Album“ der Wörter „Compact Disc“ ersetzt werden. Die ersetzten Wörter können dann in die domänenübergreifenden N-besten Listendaten aufgenommen werden.The
N-beste Listendaten können dann an eine Entitätsauflösungskomponente 292 gesendet werden. Die Entitätsauflösungskomponente 292 kann Regeln oder andere Anweisungen anwenden, um Beschriftungen oder Token aus früheren Phasen in einer Intentions-/Slot-Darstellung zu standardisieren. Die genaue Transformation kann von der Domäne abhängen (z. B. kann für eine Reisedomäne eine Texterwähnung von „Flughafen Boston“ in den standardmäßigen dreibuchstabigen BOS-Code umgewandelt werden, der sich auf den Flughafen bezieht). Die Entitätsauflösungskomponente 292 kann sich auf eine Autoritätsquelle (z. B. eine Wissensdatenbank) beziehen, die verwendet wird, um spezifisch die genaue Entität zu identifizieren, auf die in der Entitätserwähnung verwiesen wird, die in jedem Slot identifiziert ist, der in den domänenübergreifenden N-besten Listendaten dargestellt ist. Spezifische Intentions-/Slot-Kombinationen können auch an eine konkrete Quelle gebunden sein, die dann zur Auflösung des Textes verwendet werden kann. In dem Beispiel „Lieder von den Stones abspielen“ kann die Entitätsauflösungskomponente 292 auf einen persönlichen Musikkatalog, ein Amazon Music-Konto, ein Benutzerkonto oder dergleichen verweisen. Die Ausgabe von der Entitätsauflösungskomponente 292 kann geänderte N-beste Listendaten beinhalten, die auf der domänenübergreifenden N-besten Liste basieren, die in den domänenübergreifenden N-besten Listendaten dargestellt wird, kann aber auch detailliertere Daten (z. B. Entitäts-IDs) über die in den Slots erwähnten spezifischen Entitäten und/oder detailliertere Slot-Daten beinhalten, die schließlich durch eine Anwendung 282 verwendet werden können, die in dieselben Systemkomponenten oder dieselbe Pipeline integriert sein kann oder sich in einer separaten Vorrichtung in Kommunikation mit dem NLU-System 204 befinden kann. Es können mehrere Entitätsauflösungskomponenten 292 vorhanden sein, wobei eine konkrete Entitätsauflösungskomponente 292 für eine oder mehrere Domänen spezifisch sein kann.N-best list data can then be sent to an entity resolution component 292. The entity resolution component 292 may apply rules or other instructions to standardize labels or tokens from previous phases into an intent/slot representation. The exact transformation may depend on the domain (e.g., for a travel domain, a text mention of “Boston Airport” may be converted to the standard three-letter BOS code referring to the airport). The entity resolution component 292 may refer to an authority source (e.g., a knowledge base) that is used to specifically identify the exact entity referenced in the entity mention identified in each slot included in the cross-domain N -best list data is presented. Specific intention/slot combinations can also be tied to a specific source, which can then be used to resolve the text. In the “Play Songs by the Stones” example, the entity resolution component 292 may reference a personal music catalog, an Amazon Music account, a user account, or the like. The output from the entity resolution component 292 may include modified N-best list data based on the cross-domain N-best list represented in the cross-domain N-best list data, but may also include more detailed data (e.g., entity IDs). include the specific entities mentioned in the slots and/or more detailed slot data that may ultimately be used by an
Das NLU-System 204 kann NLU-Ausgabedaten aus den vorstehend beschriebenen N-besten Listendaten erzeugen. Die NLU-Ausgabedaten können eine Interpretation mit der höchsten Wertung aus den domänenübergreifenden N-besten Listendaten beinhalten oder es kann sich um Daten handeln, die eine N-beste Liste der Interpretationen mit der höchsten Wertung darstellen. In einigen Ausführungsformen kann das NLU-System 204 die durch die Entitätsauflösungskomponente 292 generierten N-besten Listendaten neu werten, beeinflussen oder auf andere Weise ändern. Zu diesem Zweck kann das NLU-System 204 nicht nur die N-besten Listendaten berücksichtigen, die durch die Entitätsauflösungskomponente 292 generiert wurden, sondern auch andere Daten. Die anderen Daten können viele unterschiedliche Daten beinhalten. Die anderen Daten können beispielsweise Anwendungseinstufungs- oder -beliebtheitsdaten beinhalten. Wenn beispielsweise eine Anwendung eine besonders hohe Einstufung aufweist, kann das NLU-System 204 die Wertung der dieser konkreten Anwendung zugeordneten Ergebnisse erhöhen. Die anderen Daten können auch Daten über Anwendungen beinhalten, die vom Nutzer gezielt aktiviert wurden (wie in einem Nutzerkonto angegeben). NLU-Ausgabedaten, die aktivierten Anwendungen zugeordnet sind, werden möglicherweise höher gewertet als Ergebnisse, die nicht-aktivierten Anwendungen zugeordnet sind. Ein Beispiel für die Verarbeitung eines NLU-Systems ist im US-Patent Nr.
Das Domänensystem 206 kann beispielsweise verschiedenen maßnahmenspezifischen Anwendungen 282 entsprechen, die in der Lage sind, verschiedene aufgabenspezifische Maßnahmen zu verarbeiten und/oder verschiedene Funktionalitäten im Zusammenhang mit der Benutzererfahrung durchzuführen. Das Domänensystem 206 kann ferner Erstanbieteranwendungen und/oder Drittanbieteranwendungen entsprechen, die in der Lage sind, verschiedene Aufgaben oder Maßnahmen durchzuführen oder verschiedene Funktionalitäten durchzuführen. Basierend auf dem Kontext des von einer sprachgestützten Vorrichtung 102 empfangenen Audio kann das Sprachverarbeitungssystem 100 beispielsweise eine gewisse Anwendung 282 verwenden, um eine Reaktion zu generieren oder Antwortdaten zu erlangen, die wiederum an eine sprachgestützte Vorrichtung 102 und/oder an eine andere elektronische Vorrichtung (z. B. einen Fernseher) zurückkommuniziert werden können. Das Domänensystem 206 kann zudem Prozessor(en) 252, Datenspeicher/Speicher 254 und eine Kommunikationsschaltung 256 beinhalten. In einigen Ausführungsformen kann eine Anwendung 282 des Domänensystems 206 in verschiedenen Computersprachen wie JavaScript und Java geschrieben sein.For example, the
Das TTS-System 208 kann verschiedene Text-zu-Sprache-Techniken zur Darstellung für einen Benutzer einsetzen (z. B. eine gesprochene Antwort auf eine Äußerung). Das TTS-System 208 kann ebenfalls Prozessor(en) 252, Datenspeicher/Speicher 254, die Kommunikationsschaltung 256 und einen Sprachsynthesizer 284 beinhalten.The TTS system 208 may employ various text-to-speech techniques to present to a user (e.g., a spoken response to an utterance). The TTS system 208 may also include processor(s) 252, data storage/
Das domänenübergreifende Routing-System 210 kann das Routing von Äußerungen an die geeignete Domäne verwalten, wie nachstehend ausführlicher beschrieben wird. Das domänenübergreifende Routing-System 210 kann ebenfalls Prozessor(en) 252, Datenspeicher/Speicher 254, die Kommunikationsschaltung 256 und den Sprachsynthesizer 284 beinhalten.The
Das domäneninterne Routing-System 212 kann das Routing von Äußerungen innerhalb einer konkreten Domäne an die geeignete Subdomäne und/oder Anwendung 282 verwalten, wie nachstehend ausführlicher beschrieben wird. Das domäneninterne Routing-System 212 kann ebenfalls Prozessor(en) 252, Datenspeicher/Speicher 254, die Kommunikationsschaltung 256 und den Sprachsynthesizer 284 beinhalten.The
Das Kontextdatenverwaltungssystem 214 kann die Erfassung von Kontextdaten verwalten, die bei Routing-Bestimmungen verwendet werden sollen, wie nachstehend ausführlicher beschrieben wird. Das Kontextdatenverwaltungssystem 214 kann ebenfalls Prozessor(en) 252, Datenspeicher/Speicher 254, die Kommunikationsschaltung 256 und den Sprachsynthesizer 284 beinhalten.The context
Der Benutzerdatenspeicher 216 kann Daten speichern, die ein oder mehrere Benutzerkonten oder Benutzerprofile darstellen oder diesen anderweitig zugeordnet sind, die Benutzern entsprechen, die ein Konto im Sprachverarbeitungssystem 100 haben. In einigen Ausführungsformen können Daten, Einstellungen und/oder Präferenzen für jedes Benutzerprofil durch den Benutzerdatenspeicher 216 gespeichert werden. Beispielsweise kann der Benutzerdatenspeicher 216 Daten zu früheren Benutzerinteraktionen mit dem Sprachverarbeitungssystem 100 speichern, wie etwa Daten bezüglich Maßnahmen, die das Sprachverarbeitungssystem 100 als Reaktion auf Äußerungen von einem Benutzer durchgeführt hat, der einem konkreten Benutzerprofil zugeordnet ist. Als weiteres Beispiel kann der Benutzerdatenspeicher 216 Daten bezüglich einer oder mehreren sprachgestützten Vorrichtungen 102 speichern, die einem Benutzerprofil zugeordnet sind, wie etwa Vorrichtungskennungen, Telefonnummern, Netzwerkadressen, Versionsinformationen, Daten bezüglich Funktionen und installierten Anwendungen und dergleichen. In einigen Ausführungsformen kann der Benutzerdatenspeicher 216 eine Liste von Medienelementen beinhalten, die aktuell im registrierten Konto oder Benutzerprofil einer Person gespeichert sind. Beispielsweise kann eine Liste der von einer Person gekauften oder erlangten Musik oder Videos im Benutzerprofil der Person im Benutzerdatenspeicher 216 gespeichert sein, auf den die Person zugreifen kann, wenn sie ein konkretes Lied oder konkrete Lieder hören oder ein konkretes Video oder konkrete Videos ansehen möchte. Der Benutzerdatenspeicher 216 kann auch eine Liste aller derzeit für jedes Benutzerprofil aktivierten Anwendungen beinhalten. In einigen Ausführungsformen kann das NLU-System 204 Angaben empfangen, welche Anwendungen aktuell für ein konkretes Benutzerprofil oder -konto aktiviert sind, sodass das NLU-System 204 weiß, welche Regeln und Fähigkeiten dieses Sprachverarbeitungssystem 100 für das konkrete Benutzerprofil oder -konto durchführen kann. In einigen Ausführungsformen kann der Benutzerdatenspeicher 216 ein Sprachsignal, beispielsweise biometrische Sprachdaten, für ein spezifisches Benutzerprofil speichern. Dadurch können Sprecheridentifikationstechniken verwendet werden, um eine Stimme mit biometrischen Sprachdaten abzugleichen, die einem spezifischen Benutzerprofil zugeordnet sind. Die Beispiele der im Benutzerdatenspeicher 216 gespeicherten Daten dienen lediglich der Veranschaulichung und sind nicht vollständig, erforderlich oder begrenzend für die Daten, die im Benutzerdatenspeicher 216 gespeichert sein können. Der Verarbeitungsdatenspeicher 218 kann Daten speichern, die während der Verarbeitung einer Äußerung verwendet werden sollen, wie etwa Kontextdaten, die durch das Kontextdatenverwaltungssystem 214 erlangt und/oder generiert werden, wie vorstehend und nachstehend ausführlicher beschrieben. Derartige Daten können bei Routing-Bestimmungen verwendet werden, beispielsweise solchen, die durch das domäneninterne Routing-System 212 vorgenommen werden. In einigen Ausführungsformen kann der Verarbeitungsdatenspeicher 218 Daten speichern, die offline verwendet werden sollen, wie etwa nach (oder ohne) Verarbeitung einer Äußerung. Beispielsweise können Daten bezüglich der Äußerung, Kontextdatenelemente, die während der Verarbeitung der Äußerung erlangt wurden, Rückmeldungen usw. in dem Verarbeitungsdatenspeicher 218 gespeichert und während Offline-Prozessen, wie etwa dem Trainieren eines Modells, das durch eine oder mehrere Komponenten des Sprachverarbeitungssystems 100 verwendet wird, verwendet werden.The user data store 216 may store data representing or otherwise associated with one or more user accounts or user profiles corresponding to users having an account in the
Auch wenn jedes von dem ASR-System 202, dem NLU-System 204, den Domänensystemen 206, dem TTS-System 208, dem domänenübergreifenden Routing-System 210, dem domäneninternen Routing-Systeme 212, dem Kontextdatenverwaltungssystem 214, dem Benutzerdatenspeicher 216 und dem Verarbeitungsdatenspeicher 218 jeweils Instanzen von Prozessor(en) 252, Datenspeicher/Speicher 254 und der Kommunikationsschaltung 256 beinhalten können, können sich diese Instanzen von Prozessor(en) 252, Datenspeicher/Speicher 254 und der Kommunikationsschaltung 256 innerhalb jedes von dem ASR-System 202, dem NLU-System 204, den Domänensystemen 206, dem TTS-System 208, dem domänenübergreifenden Routing-System 210, dem domäneninternen Routing-Systeme 212, dem Kontextdatenverwaltungssystem 214, dem Benutzerdatenspeicher 216 und dem Verarbeitungsdatenspeicher 218 unterscheiden. Beispielsweise können Struktur, Funktionalität und Stil des/der Prozessor(s) 252 im ASR-System 202 im Wesentlichen der Struktur, Funktionalität und dem Stil des/der Prozessor(s) 252 im NLU-System 204 ähneln, jedoch müssen die tatsächlichen Prozessor(en) 252 nicht dieselbe Entität sein.Although each of the
Domänen-RoutingDomain routing
Wie gezeigt, kann eine Äußerung unter Verwendung eines Satzes von Verarbeitungsmaßnahmen für natürliche Sprache verarbeitet werden, wie etwa jene, die durch das ASR-System 202 und das NLU-System 204 durchgeführt werden, um eine oder mehrere Intentionen zu generieren, wie etwa eine N-beste Liste 300. Vor, während und nach der Generierung der Intention(en) können verschiedene Kontextdatenelemente 302 durch das Kontextdatenverwaltungssystem 214 erlangt und/oder generiert werden. Ein beispielhafter Prozess zum Erlangen und/oder Generieren von Kontextdatenelementen zur Verwendung durch ein oder mehrere domäneninterne Routing-Systeme 212 wird nachstehend ausführlicher beschrieben.As shown, an utterance may be processed using a set of natural language processing operations, such as those performed by the
Das domänenübergreifende Routing-System 210 kann bestimmen, welche Domänen einzelnen Intentionen der N-besten Liste 300 zugeordnet sind. In einigen Ausführungsformen können einzelne Domänensysteme 206 unterschiedliche Intentionen zugewiesen, registriert oder auf andere Weise zugeordnet bekommen. Das domänenübergreifende Routing-System 210 kann bestimmen, welche Domänensysteme 206 jeder der Intentionen in der N-besten Liste 300 (oder einer Teilmenge davon) zugeordnet sind. Das domänenübergreifende Routing-System 210 kann Konfidenzanfragen 304 generieren und an die domäneninternen Routing-Systeme 212 für die bestimmten Domänensysteme 206 senden. Beispielsweise kann die N-beste Liste 300 fünf Intentionen mit der Rangfolge 1-5 beinhalten, wobei 1 die Intention mit dem höchsten Rang und 5 die Intention mit dem fünfthöchsten Rang ist. Ein konkretes Domänensystem 206 kann für die Behandlung von zwei der fünf Intentionen (z. B. die Intentionen auf Rang 1 und 4) registriert sein, ein anderes Domänensystem kann für die Behandlung einer der Intentionen (z. B. die Intention auf Rang 2) registriert sein und so weiter. Das domänenübergreifende Routing-System 210 kann eine Konfidenzanfrage 304 an das domäneninterne Routing-System 212 für die Domäne 206 generieren, die für die Bearbeitung der Intentionen auf Rang 1 und 4 registriert ist. Die Konfidenzanfrage 304 kann eine Anfrage an das domäneninterne Routing-System 212 sein, um zu bewerten, ob die entsprechende Domäne 206 oder eine spezifische Anwendung 282 davon die richtige Entität ist, um auf die Äußerung des Benutzers zu reagieren. Eine Konfidenzanfrage kann die Intentionen beinhalten und kann in manchen Fällen zusätzliche Informationen, wie etwa Rangfolgeinformationen oder dergleichen beinhalten.The
Nach Empfang einer Konfidenzanfrage 304 kann das domäneninterne Routing-System 212 einen oder mehrere Routing-Konfidenzbereitsteller 320 identifizieren, um Routing-Konfidenzbewertungen zu generieren, die verwendet werden, um eine spezifische Anwendung 282 zuzuweisen, um eine Reaktion auf die Äußerung zu generieren, oder um zu bestimmen, dass keine Anwendung der Domäne eine Reaktion generieren soll. Auch wenn die Routing-Konfidenzbereitsteller 320 in
Bei Block 406 kann das Master-Speechlet 310 eine andere Komponente des domäneninternen Routing-Systems 212 verwenden, wie etwa den Routing-Entscheider 314, um die Routing-Konfidenzbereitsteller 320 zu bestimmen, von denen Routing-Konfidenzbewertungen erlangt werden sollen. Beispielsweise kann ein konkretes Domänensystem 206 einer beliebigen Anzahl von Subdomänen und/oder Anwendungen 282 zugeordnet sein. Ein Routing-Konfidenzbereitsteller 320 kann für jede einzelne Subdomäne oder Anwendung 282 oder verschiedene Teilmengen davon implementiert sein. Einzelne Routing-Konfidenzbereitsteller 320 können dazu konfiguriert sein, Routing-Konfidenzbewertungen (z. B. Wertungen) zu generieren, die den Grad der Konfidenz angeben, dass eine konkrete Subdomäne oder Anwendung 282 die geeignete Entität ist, um auf eine Äußerung zu reagieren. Der Routing-Entscheider 314 oder eine andere Komponente des domäneninternen Routing-Systems 212 kann die Routing-Konfidenzbereitsteller 320 identifizieren, von denen Routing-Konfidenzbewertungen basierend auf einem vorgegebenen oder dynamisch bestimmten Mapping von Intentionen 300 zu Routing-Konfidenzbereitstellern 320 erlangt werden sollen. Für jede Intention 300 in der Konfidenzanfrage 304 kann der Routing-Entscheider 314 den/die Routing-Konfidenzbereitsteller 320 identifizieren, von dem/denen eine Routing-Konfidenzbewertung erlangt werden soll.At block 406, the
Bei Block 408 kann der Routing-Entscheider 314 oder eine andere Komponente des domäneninternen Routing-Systems 212 die Kontextdatenelemente 302, falls vorhanden, erlangen, die den Routing-Konfidenzbereitstellern 320 bereitzustellen sind. In einigen Ausführungsformen kann ein Mapping verwendet werden, um die spezifischen Kontextdatenelemente zu bestimmen, die einem gegebenen Routing-Konfidenzbereitsteller 320 bereitzustellen sind. Beispielsweise kann ein Routing-Konfidenzbereitsteller 320 eine Routing-Konfidenzbewertung unter Verwendung von Standortdaten, die der sprachgestützten Vorrichtung 102 zugeordnet sind, und Fähigkeitsdaten, die Fähigkeiten der sprachgestützten Vorrichtung darstellen, vornehmen, während ein anderer Routing-Konfidenzbereitsteller 320 eine Routing-Konfidenzbewertung basierend auf konkreten in der Äußerung wiedererkannten Entitäten und konkreten Inhaltselementen, die durch die sprachgestützte Vorrichtung 102 während der Äußerung angezeigt wurden, vornehmen kann. Der Routing-Entscheider 314 kann die Kontextdatenelemente erlangen, die jedem der Routing-Konfidenzbereitsteller 320 zugeordnet sind. In einigen Ausführungsformen können die Kontextdatenelemente aus dem Verarbeitungsdatenspeicher 218, von dem Kontextdatenverwaltungssystem 214 und/oder von anderen Quellen erlangt werden.At
Bei Block 410 kann der Routing-Entscheider 314 Routing-Konfidenzbewertungen von den identifizierten Routing-Konfidenzbereitstellern 320 erlangen. Der Routing-Entscheider 314 kann Anfragen, Befehle oder andere Kommunikation an die Routing-Konfidenzbereitsteller 320 generieren und kann Kontextdatenelemente 302 in dieselbe Kommunikation einbeziehen oder auf andere Weise Zugriff auf die Kontextdatenelemente 302 bereitstellen (z. B. durch Bereitstellen einer Speicher- oder Netzwerkadresse der Stelle, von der die Routing-Konfidenzbereitsteller 320 die Kontextdatenelemente 302 erlangen können). In einigen Ausführungsformen können die Routing-Konfidenzbereitsteller 320 die Kontextdatenelemente 302 direkt aus dem Verarbeitungsdatenspeicher 218, von dem Kontextdatenverwaltungssystem 214 oder einer anderen Quelle erlangen, ohne die Kontextdatenelemente 302 vom Routing-Entscheider zu empfangen oder anderweitig Zugriff auf diese zu erhalten. Einzelne Routing-Konfidenzbereitsteller 320 können Routing-Konfidenzbewertungen auf verschiedene Weise vornehmen. At
In einigen Ausführungsformen kann ein Routing-Konfidenzbereitsteller 320 einen Satz von einer oder mehreren deterministischen Regeln anwenden. Ein Regelsatz kann beispielsweise das Anwenden einer konkreten Wertung oder eines konkreten Faktors beinhalten, wenn es sich bei der zu bewertenden Intention um eine Intention handelt, und einer anderen Wertung oder eines anderen Faktors, wenn es sich bei der Intention um eine andere Intention handelt. Als weiteres Beispiel kann eine Wertung oder ein Faktor abhängig von der Rangfolge der Intention innerhalb der N-besten Liste verwendet werden (z. B. wenn die Rangfolge relativ niedrig ist, kann die Konfidenzbewertung niedriger ausfallen, als wenn die Rangfolge relativ hoch wäre). Dieselben, zusätzliche und/oder alternative Wertungen und/oder Faktoren können abhängig von den Werten aller berücksichtigten Kontextdatenelemente 302 einbezogen werden (z. B. Geolokalisierung der sprachgestützten Vorrichtung 102, geografische Entfernung der sprachgestützten Vorrichtung 102 von einem Punkt von Interesse, Inhalt, der durch die sprachgestützte Vorrichtung 102 während der Äußerung angezeigt wird, einzelne in der Äußerung vorhandene Wörter oder Phrasen, historische Nutzung durch ein aktives Benutzerprofil, dem aktiven Benutzerprofil zugeordneter Inhaltskatalog usw.). Der Routing-Konfidenzbereitsteller 320 kann die verschiedenen Wertungen, Faktoren, Berechnungen und dergleichen basierend auf dem Satz deterministischer Regeln anwenden und zu einer Ausgabe-Routing-Konfidenzbewertung gelangen. Bei der Routing-Konfidenzbewertung kann es sich um eine Wertung handeln, beispielsweise eine Wertung zwischen einem Minimum (das einen minimalen Grad an Konfidenz darstellt, dass die Äußerung ordnungsgemäß durch eine Anwendung bearbeitet wird, die dem Routing-Konfidenzbereitsteller 320 zugeordnet ist) und einem Maximum (das einen maximalen Grad an Konfidenz darstellt). In einigen Ausführungsformen kann die Routing-Konfidenzbewertung die Generierung einer Klassifizierung in eine oder mehrere mögliche Klassen beinhalten, wie etwa eine erste Klasse, die einen niedrigen Grad an Konfidenz angibt, eine zweite Klasse, die einen hohen Grad an Konfidenz angibt, und eine dritte Klasse, die einen mittleren Grad an Konfidenz, der einer Mehrdeutigkeit zugeordnet ist, angibt.In some embodiments, a
In einigen Ausführungsformen kann ein Routing-Konfidenzbereitsteller 320 ein statistisches Modell oder eine andere nichtdeterministische Berechnung anwenden. Beispielsweise kann ein statistisches Modell aus einem Satz beobachteter und/oder synthetischer Daten abgeleitet werden. Die Anwendung des statistischen Modells kann das Erlangen oder Ableiten von Eingabewerten beinhalten, die die zu bewertende Intention, die Rangfolge der Intention innerhalb der N-besten Liste, die Werte aller berücksichtigten Kontextdatenelemente 302 usw. darstellen. Der Routing-Konfidenzbereitsteller 320 kann die verschiedenen Wertungen, Faktoren, Berechnungen und dergleichen basierend auf dem statistischen Modell anwenden und zu einer Ausgabe-Routing-Konfidenzbewertung gelangen. Die Routing-Konfidenzbewertung kann eine Wertung sein, wie etwa eine Wertung zwischen einem Minimum und einem Maximum, eine Klassifizierung in eine oder mehrere mögliche Klassen usw.In some embodiments, a
In einigen Ausführungsformen kann ein Routing-Konfidenzbereitsteller 320 eine Kombination aus deterministischen Regeln und einem statistischen Modell verwenden, um zu einer Routing-Konfidenzbewertung zu gelangen. In einigen Ausführungsformen können zusätzliche und/oder alternative Routing-Konfidenzbewertungsverfahren verwendet werden. Die hierin beschriebenen beispielhaften Routing-Konfidenzbewertungsverfahren dienen nur der Veranschaulichung und sollen nicht einschränkend, erforderlich oder vollständig sein.In some embodiments, a
Im Entscheidungsblock 412 kann der Routing-Entscheider 314 oder eine andere Komponente des domäneninternen Routing-Systems 212 bestimmen, ob die von dem/den Routing-Konfidenzbereitsteller(n) 320 empfangene(n) Routing-Konfidenzbewertung(en) eine Mehrdeutigkeit angeben. Wenn dies der Fall ist, kann der Prozess 400 mit Block 414 fortfahren, bei dem eine Reaktion auf die Konfidenzanfrage, die Mehrdeutigkeit angibt, generiert werden kann. Andernfalls, wenn die Routing-Konfidenzbewertungen keine Mehrdeutigkeit angeben, kann der Prozess 400 mit Entscheidungsblock 416 fortfahren.At
In einigen Ausführungsformen kann die Identifizierung einer Mehrdeutigkeit darauf basieren, ob eine durch einen Routing-Konfidenzbereitsteller 320 vorgenommene Konfidenzbewertung eine Mehrdeutigkeit angibt. Wenn es sich bei der Routing-Bewertung beispielsweise um eine Wertung zwischen zwei Extremen handelt, die jeweils die niedrigste bzw. höchste Konfidenz angeben, dann kann eine Wertung, die mindestens einen Schwellenabstand von beiden Extremen aufweist (z. B. in den mittleren 50 % des Bereichs, in den mittleren 33 % des Bereichs usw.) die Identifizierung einer Mehrdeutigkeit auslösen. Als weiteres Beispiel kann, wenn die Konfidenzbewertung eine von drei Klassen ist, die jeweils eine niedrige, eine hohe und eine mittlere Konfidenz angeben, dann eine Bewertung in der mittleren Klasse die Identifizierung einer Mehrdeutigkeit auslösen. In einigen Ausführungsformen kann die Identifizierung einer Mehrdeutigkeit darauf basieren, ob eine höchste Konfidenzbewertung aller durch den Routing-Entscheider 314 angefragten Konfidenzbewertungen eine Mehrdeutigkeit angibt.In some embodiments, identification of an ambiguity may be based on whether a confidence score made by a
Bei Block 414 kann der Routing-Entscheider 314 oder eine andere Komponente des domäneninternen Routing-Systems 212 eine Reaktion auf die Konfidenzanfrage basierend auf der Identifizierung der Mehrdeutigkeit generieren. In einigen Ausführungsformen kann die Reaktion auf die Konfidenzanfrage angeben, dass eine Mehrdeutigkeitsauflösungskomponente 312 des domäneninternen Routing-Systems 212 die richtige Entität ist, um auf die Äußerung zu reagieren. Die Mehrdeutigkeitsauflösungskomponente 312 kann dazu konfiguriert sein, Routing-Mehrdeutigkeiten aufzulösen, die nach ASR, NLU und anderen Prozessen bestehen bleiben (oder während dieser eingeführt wurden). Die Mehrdeutigkeitsauflösungskomponente 312 kann Mehrdeutigkeit bei der Interpretation der Äußerung auflösen und eine Zielentität (Subdomäne oder Anwendung) bestimmen, die reagieren soll. Beispielsweise kann die Mehrdeutigkeitsauflösungskomponente 312 eine nicht-interaktive Einbindung des Benutzers beim Auflösen der Mehrdeutigkeit durchführen, indem sie einen relevanten Hinweis/Vorschlag bereitstellt und es dem Benutzer ermöglicht, eine neue Formulierung zu verwenden. Die umformulierte Äußerung kann dann unter Verwendung der vorstehend beschriebenen Äußerungsverarbeitung bearbeitet werden (z. B. so bearbeitet werden, als ob die vorherige Äußerung nicht stattgefunden hätte), ohne an die Mehrdeutigkeitsauflösungskomponente 312 zurückgeleitet zu werden. Als weiteres Beispiel kann die Mehrdeutigkeitsauflösungskomponente 312 eine interaktive Einbeziehung des Benutzers durchführen (z. B. einen Dialog mit mehreren Wendungen), um die Mehrdeutigkeit durch Klarstellungen und/oder Bestätigungen aufzulösen. In diesem Fall können die Antworten des Benutzers als Teil der Verwaltung eines Dialogs mit mehreren Wendungen durch die Mehrdeutigkeitsauflösungskomponente 312 an die Mehrdeutigkeitsauflösungskomponente 312 zurückgeleitet werden. Zur Veranschaulichung kann das interaktive Einbeziehen das Darstellen von Optionen für den Benutzer, wie etwa zwei oder mehr mögliche Anwendungen (z. B. entsprechend den zwei oder mehr höchsten Routing-Konfidenzbewertungen), und das Auffordern des Benutzers, eine davon auszuwählen, involvieren. Als weiteres Beispiel kann die Mehrdeutigkeitsauflösungskomponente 312 zusätzliche Kontextdatenelemente 302 erlangen, die während des anfänglichen Routing-Konfidenzbewertungsprozesses möglicherweise nicht verfügbar waren, und kann diese zusätzlichen Kontextdatenelemente 302 verwenden, um die Mehrdeutigkeit aufzulösen, ohne dass eine zusätzliche Benutzereingabe erforderlich ist (z. B. durch Anpassen oder Überschreiben einer oder mehrerer Routing-Konfidenzbewertungen).At
Im Entscheidungsblock 416 kann der Routing-Entscheider oder eine andere Komponente des domäneninternen Routing-Systems 212 bestimmen, ob die Routing-Konfidenzbewertungen eine Subdomäne oder Anwendung der Domäne 206 angeben, für die das domäneninterne Routing-System 212 Routing-Konfidenzbewertungen generiert und die die richtige Entität zum Reagieren auf die Äußerung ist. Wenn dies der Fall ist, kann der Prozess 400 mit Block 418 fortfahren, bei dem der Routing-Entscheider 314 oder eine andere Komponente des domäneninternen Routing-Systems 212 eine Reaktion auf die Konfidenzanfrage generieren kann, die die Subdomäne oder Anwendung der Domäne 206 angibt, für die ein hoher Grad an Konfidenz vorliegt, dass sie die richtige Entität zum Reagieren auf die Äußerung ist. Anderenfalls kann der Prozess 400 mit Block 420 fortfahren, bei dem der Routing-Entscheider 314 oder eine andere Komponente des domäneninternen Routing-Systems 212 eine Reaktion auf die Konfidenzanfrage generieren kann, die angibt, dass keine Subdomäne oder Anwendung der Domäne 206 die richtige Entität zum Reagieren auf die Äußerung ist.In
Bei Block 422 kann das domäneninterne Routing-System 212 die wie vorstehend generierte Ausgabe als Reaktion auf die Konfidenzanfrage an das domänenübergreifende Routing-System 210 bereitstellen. Der Prozess 400 kann bei Block 424 enden.At
Frühzeitiger Aufruf und KontextdatengenerierungEarly invocation and context data generation
In einigen Fällen können die durch das ASR-System 202 und das NLU-System 204 durchgeführten Verarbeitungsmaßnahmen für natürliche Sprache einen relativ hohen Grad an Latenz verursachen oder erfahren. Um zusätzliche vom Benutzer wahrgenommene Latenz zu reduzieren oder zu beseitigen, die durch das Erlangen und/oder Generieren von Kontextdatenelementen 302 zur Verwendung bei Routing-Konfidenzbewertungen verursacht werden kann, können die Kontextdatenelemente 302 proaktiv erlangt und/oder generiert werden, ohne unbedingt darauf zu warten, dass die Verarbeitungsmaßnahmen für natürliche Sprache abgeschlossen sind. Vor, während und nach der Generierung der Intention(en) können zum Beispiel verschiedene Kontextdatenelemente 302 durch das Kontextdatenverwaltungssystem 214 erlangt und/oder generiert werden. Die Punkte, an denen das Kontextdatenverwaltungssystem 214 Kontextdatenelemente empfängt und/oder generiert, können als Integrationspunkte bezeichnet werden.In some cases, the natural language processing operations performed by the
In einigen Ausführungsformen kann ein Integrationspunkt vor dem Aufruf des ASR-Systems 202 implementiert sein. Beispielsweise können eine Kennung der sprachgestützten Vorrichtung 102, eine Kennung eines der Äußerung zugeordneten aktiven Benutzerprofils, eine Kennung eines geografischen Standorts der sprachgestützten Vorrichtung 102 und/oder verschiedene andere Datenelemente mit der Äußerung erlangt oder dieser anderweitig zugeordnet werden. Das Sprachverarbeitungssystem 100 kann den Integrationspunkt basierend auf dem Erlangen solcher Daten auslösen.In some embodiments, an integration point may be implemented prior to invoking the
In einigen Ausführungsformen kann ein Integrationspunkt während der Ausführung des NLU-Systems 204 implementiert sein. Beispielsweise kann das NLU-System eine oder mehrere vorläufige semantische Darstellungen der verarbeiteten Äußerung generieren, einschließlich Intentionen mit einer Teilmenge von mit Entitäten gefüllten Slots. Das NLU-System 204 kann einen Entitätsauflösungsprozess einleiten, um eine oder mehrere Entitäten aufzulösen (z. B. um zu bestimmen, ob die in Frage kommenden Entitäten in einem oder mehreren Katalogen oder anderen Datenspeichern vorhanden sind). Ein Integrationspunkt kann in der Entitätsauflösungsphase implementiert sein, und eine oder mehrere vorläufige semantische Darstellungen der Äußerung können dem Kontextdatenverwaltungssystem 214 zur weiteren Verarbeitung, Speicherung oder dergleichen bereitgestellt werden.In some embodiments, an integration point may be implemented during execution of the
Die hierin beschriebenen beispielhaften Integrationspunkte dienen nur der Veranschaulichung und sollen nicht einschränkend, erforderlich oder vollständig sein. In einigen Ausführungsformen können Integrationspunkte in anderen Abschnitten der Äußerungsverarbeitung implementiert sein, wie etwa an jedem Punkt, an dem Daten generiert oder erlangt werden (z. B. um weiter verarbeitet oder einem anderen nachgelagerten Prozess bereitgestellt zu werden). Zur Veranschaulichung kann das Kontextdatenverwaltungssystem 214 jedes Mal, wenn Daten während oder auf andere Weise im Zusammenhang mit der Äußerungsverarbeitung generiert oder erlangt werden, ausgeführt werden, um die Daten zu speichern, neue Daten unter Verwendung der Daten zu erlangen, die Daten zu verarbeiten, um neue Daten zu generieren, oder einen frühzeitigen Aufruf eines anderen Prozesses zu veranlassen. Indem Datenaggregationsfunktionen und andere Funktionen zu einem frühen Zeitpunkt aufgerufen und parallel zu anderen Verarbeitungen der Äußerung durchgeführt werden, können alle vorausgesetzten Vorgänge für nachfolgende Prozesse abgeschlossen sein, wenn die nachfolgenden Prozesse eingeleitet werden (z. B. der Prozess zum Bestimmen der Routing-Verantwortlichkeit für eine Reaktion auf die Äußerung), wodurch die vom Benutzer wahrgenommene Latenz (z. B. Verzögerung beim Empfang einer Antwort auf die Äußerung) reduziert wird.The example integration points described herein are for illustrative purposes only and are not intended to be limiting, required, or exhaustive. In some embodiments, integration points may be implemented in other portions of utterance processing, such as at any point where data is generated or acquired (e.g., to be further processed or provided to another downstream process). To illustrate, each time data is generated or acquired during or otherwise related to utterance processing, the context
Beispielsweise kann das Kontextdatenverwaltungssystem 214 bei [II] eine Modellbewertungskomponente 600 einsetzen, um ein Modell, etwa ein Modell für maschinelles Lernen oder ein anderes probabilistisches Modell, zu verwenden, um ein oder mehrere aktuell verfügbare Datenelemente zu bewerten und eine Vorhersage, Klassifizierung oder dergleichen vorzunehmen. Als weiteres Beispiel kann das Kontextdatenverwaltungssystem 214 bei [III] einen Ausführungsdienst 602 verwenden, um ein Kontextdatenelement vorab zu berechnen. Die perfektionierten, vorab berechneten oder auf andere Weise vorab generierten Kontextdatenelemente können bei [IV] in einem Verarbeitungsdatenspeicher 218 für den Zugriff durch nachfolgende Prozesse oder in einem internen Datenspeicher des Kontextdatenverwaltungssystems 214 gespeichert werden, um während nachfolgender Prozesse angefordert zu werden.For example, at [II], the context
Bei Block 706 kann das Kontextdatenverwaltungssystem 214 anfängliche Daten erlangen, die dem Integrationspunkt zugeordnet sind. Die anfänglichen Daten können Daten beinhalten, die während der Äußerungsverarbeitung vor oder nach Erreichen des Integrationspunkts generiert oder erlangt werden. Wenn sich beispielsweise der Integrationspunkt, der zum Einleiten der aktuellen Wiederholung des Prozesses 700 ausgelöst wurde (der „aktuelle Integrationspunkt“), bei der Äußerungsaufnahme oder anderweitig vor der ASR-Verarbeitung befindet, können die anfänglichen Daten eine Kennung der sprachgestützten Vorrichtung 102, eine Kennung eines aktiven Benutzerprofils usw. beinhalten. Als weiteres Beispiel können die anfänglichen Daten, wenn sich der aktuelle Integrationspunkt am Punkt der Entitätsauflösung während der NLU-Verarbeitung befindet, vorläufige NLU-Ergebnisse, wie etwa semantische Darstellungen der Intention und mindestens eine Teilmenge entsprechender Entitäten beinhalten. Bei Block 708 kann das Kontextdatenverwaltungssystem 214 die anfänglichen Daten und alle Daten bewerten, die in Verbindung mit früheren Wiederholungen des Prozesses 700 während der Verarbeitung der aktuellen Äußerung generiert oder erlangt wurden (zusammen die „aktuell verfügbaren Daten“), um eine oder mehrere durchzuführende Kontextdatenmaßnahmen zu bestimmen. In einigen Ausführungsformen, wie in
Der Mechanismus, mit dem die Registrierung 802 die durchzuführenden Kontextdatenmaßnahmen angibt, kann auf Daten- oder Funktionssignaturen basieren, beispielsweise solchen, die Annotationen beinhalten. In einigen Ausführungsformen kann das Register eine Liste von Funktionssignaturen (z. B. Java-Funktionssignaturen) speichern, die mit Annotationen versehen sind, um Daten anzugeben, von denen die Funktionen abhängig sind (z. B. Daten, die aktuell verfügbar sein müssen, um die Funktion auszuführen). Wenn ein Integrationspunkt ausgelöst wird, kann eine Orchestratorkomponente 800 des Kontextdatenverwaltungssystems 214 Daten im Register 802 überprüfen und alle Funktionen finden, die unter Verwendung der aktuell verfügbaren Daten ausgeführt werden können.The mechanism by which registry 802 specifies the contextual data actions to be taken may be based on data or functional signatures, such as those that include annotations. In some embodiments, the register may store a list of function signatures (e.g., Java function signatures) annotated to indicate data on which the functions depend (e.g., data that must be currently available, to execute the function). When an integration point is triggered, an
Im Entscheidungsblock 710 kann der Orchestrator 800 oder eine andere Komponente des Kontextdatenverwaltungssystems 214 bestimmen, ob Daten unter Verwendung der aktuell verfügbaren Daten vorab abgerufen werden sollen. Falls dies der Fall ist, kann der Prozess 700 mit Block 712 fortfahren. Andernfalls geht der Prozess 700 weiter zu Entscheidungsblock 714.At
Bei Block 712 kann der Orchestrator 800 oder eine andere Komponente des Kontextdatenverwaltungssystems 214 das Vorababrufen eines Kontextdatenelements unter Verwendung der aktuell verfügbaren Daten einleiten. Beispielsweise kann der Orchestrator 800 eine Verzeichnissuche unter Verwendung eines oder mehrerer der aktuell verfügbaren Datenelemente durchführen. In einigen Ausführungsformen können die Ergebnisse der Suche in einem internen Datenspeicher 804 gespeichert werden, wo sie als aktuell verfügbares Datenelement für zukünftige Prozesse zur Kontextdatengenerierung aufbewahrt und/oder anderen Komponenten des Sprachverarbeitungssystems 100 während einer weiteren Verarbeitung (z. B. für Routing-Bestimmungen) bereitgestellt werden. In einigen Ausführungsformen können die Ergebnisse der Suche in einem Verarbeitungsdatenspeicher 218 außerhalb des Kontextdatenverwaltungssystems 214 gespeichert werden, wo sie während der nachfolgenden Verarbeitung (z. B. für Routing-Bestimmungen) anderen Komponenten des Sprachverarbeitungssystems 100 zugänglich gemacht werden.At block 712, the
In einigen Ausführungsformen kann der Prozess 700 asynchron ablaufen. Beispielsweise kann der Prozess 700 nach dem Einleiten einer oder mehrerer Vorababrufvorgänge in Block 712 mit Entscheidungsblock 714 fortfahren, ohne unbedingt auf den Abschluss der Vorababrufvorgänge zu warten. Wenn der/die in Block 712 eingeleiteten Vorababrufvorgang/-vorgänge abgeschlossen sind, kann der Prozess 700 möglicherweise parallel oder asynchron zur Ausführung von Entscheidungsblock 714, Block 716 usw. mit Entscheidungsblock 718 fortfahren.In some embodiments,
Im Entscheidungsblock 714 kann der Orchestrator 800 oder eine andere Komponente des Kontextdatenverwaltungssystems 214 bestimmen, ob Daten unter Verwendung der aktuell verfügbaren Daten vorab berechnet werden sollen. Falls dies der Fall ist, kann der Prozess 700 mit Block 716 fortfahren. Andernfalls kann der Prozess 700 (oder ein Ausführungsthread davon) bei Block 720 enden.In
Bei Block 716 kann das Kontextdatenverwaltungssystem 214 die Vorabberechnung eines Kontextdatenelements unter Verwendung der aktuell verfügbaren Daten einleiten. Das vorab berechnete Kontextdatenelement kann im internen Datenspeicher 804 des Kontextdatenverwaltungssystems 214 oder in einem Verarbeitungsdatenspeicher 218 außerhalb des Kontextdatenverwaltungssystems 214 gespeichert werden. In einigen Ausführungsformen kann ein Modellaufrufer 806 ein Modell verwenden oder eine externe Modellbewertungskomponente 600 veranlassen, ein Modell zu verwenden, wie etwa ein Modell für maschinelles Lernen oder ein anderes probabilistisches Modell, um ein oder mehrere aktuell verfügbare Datenelemente zu bewerten und eine Vorhersage, Klassifizierung oder dergleichen vorzunehmen. Beispielsweise kann der Modellaufrufer 806 eine Klassifizierung der aktuell verfügbaren Daten als Hinweis auf eine Suchverfeinerung oder eine neue Suche generieren. In einigen Ausführungsformen kann eine Laufzeit-Hosting-Umgebung 808 ein Kontextdatenelement vorab berechnen oder einen externen Ausführungsdienst 602 veranlassen, das Kontextdatenelement vorab zu berechnen. Beispielsweise kann die Laufzeit-Hosting-Umgebung 808 Wertungen für die beiden obersten Intentionen einer N-besten Liste erlangen und eine Differenz zwischen den Wertungen berechnen. Als weiteres Beispiel kann ein externer Ausführungsdienst 602 Einbettungen vorab berechnen, wie etwa Einbettungen von bidirektionalen Encoderdarstellungen aus Transformatoren (Bidirectional Encoder Representations from Transformers - „BERT“), die durch nachfolgende Prozesse verwendet werden.At block 716, the context
In einigen Ausführungsformen kann der Prozess 700 asynchron ablaufen. Beispielsweise kann ein Ausführungsthread des Prozesses 700 nach dem Einleiten eines oder mehrerer Vorabberechnungsvorgänge in Block 716 bei Block 720 enden, ohne unbedingt auf den Abschluss des/der Vorabberechnungsvorgangs/- vorgänge zu warten. Wenn der/die in Block 716 eingeleiteten Vorberechnungsvorgang/-vorgänge abgeschlossen sind, kann der Prozess 700 möglicherweise parallel oder asynchron zur Ausführung anderer Abschnitte des Prozesses 700 mit dem Entscheidungsblock 718 fortfahren.In some embodiments,
Im Entscheidungsblock 718 kann der Orchestrator 800 oder eine andere Komponente des Kontextdatenverwaltungssystems 214 basierend auf Daten, die während der aktuellen Wiederholung des Prozesses 700 vorab abgerufen und/oder vorab berechnet wurden, bestimmen, ob weitere Kontextdaten vorab abgerufen und/oder vorberechnet werden sollen. Falls dies der Fall ist, kann der Prozess 700 zu Block 708 zurückkehren. Andernfalls kann der Prozess 700 enden.At
In einigen Ausführungsformen kann der Prozess 700 so konzipiert sein, dass er einen Datenverlauf erstellt, in dem anfängliche Daten erlangt werden, zusätzliche Daten abgerufen, berechnet oder auf andere Weise basierend auf den verfügbaren Daten generiert werden und dann weitere Daten abgerufen, berechnet oder auf andere Weise basierend auf den zusätzlichen Daten generiert werden und so weiter. Auf diese Weise kann der Prozess 700 ein rekursiver Prozess sein, bei dem ein einzelner Integrationspunkt eine Erweiterung des Datenverlaufs um mehrere Datenelemente, Ebenen usw. bewirkt. In einigen Ausführungsformen kann eine vorherige rekursive Instanz des Prozesses 700 noch laufen, wenn ein nachfolgender Integrationspunkt während der Äußerungsverarbeitung erreicht wird und eine weitere Instanz des Prozesses 700 aufgerufen wird. Auf diese Weise kann der Prozess 700 parallel oder auf andere Weise asynchron in Bezug auf andere Instanzen desselben Prozesses 700 durchgeführt werden. Zurückkehrend zu
AusführungsbeispieleExamples of implementation
Einige erfinderische Aspekte der Offenbarung werden in den folgenden Absätzen dargelegt:
Absatz 1. System, das Folgendes umfasst:- computerlesbaren Speicher, der ausführbare Anweisungen speichert; und
- einen oder mehrere Prozessoren in Kommunikation mit dem computerlesbaren Speicher und durch die ausführbaren Anweisungen zu mindestens Folgendem konfiguriert:
- Empfangen von Audiodaten von einer sprachgestützten Vorrichtung, wobei die Audiodaten eine Äußerung darstellen;
- Generieren von Textdaten unter Verwendung der Audiodaten und eines Prozesses zur automatischen Spracherkennung („ASR“), wobei die Textdaten mindestens einen Teil der Äußerung darstellen; Generieren von Intentionsdaten unter Verwendung der Textdaten und eines Prozesses zum natürlichen Sprachverständnis („NLU“), wobei die Intentionsdaten eine semantische Darstellung der Äußerung umfassen;
- an einem Integrationspunkt während des NLU-Prozesses, Bestimmen, ein Kontextdatenelement parallel zu mindestens einem Abschnitt des NLU-Prozesses zu generieren;
- Erlangen eines oder mehrerer anfänglichen Datenelemente, die dem Integrationspunkt zugeordnet sind;
- unter Verwendung eines Registers von Kontextdatenelementen und entsprechender Kontextdatenmaßnahmen, Bestimmen einer Kontextdatenmaßnahme, die durchzuführen ist, um das Kontextdatenelement zu generieren;
- Generieren des Kontextdatenelements zumindest teilweise basierend auf der Durchführung der Kontextdatenmaßnahme parallel zu mindestens einem Abschnitt des NLU-Prozesses, wobei die Kontextdatenmaßnahme das Kontextdatenelement unter Verwendung des einen oder der mehreren anfänglichen Datenelemente generiert;
- Bestimmen einer Anwendung, an die die Intentionsdaten zur Generierung einer Reaktion auf die Äußerung weiterzuleiten sind, wobei die Anwendung zumindest teilweise basierend auf dem Kontextdatenelement bestimmt wird; und
- Generieren einer Reaktion auf die Äußerung unter Verwendung der Anwendung und der Intentionsdaten.
Absatz 2.System nach Absatz 1, wobei das eine oder die mehreren anfänglichen Datenelemente mindestens eines von Folgendem umfassen: ein von der sprachgestützten Vorrichtung empfangenes Datenelement, ein während des ASR-Prozesses generiertes Datenelement oder ein während des NLU-Prozesses generiertes Datenelement.Absatz 3.System nach Absatz 1, wobei die Kontextdatenmaßnahme eines von Folgenden umfasst: Bewertung des einen oder der mehreren anfänglichen Datenelemente unter Verwendung eines Modells, um eine Vorhersage bezüglich eines Aspekts der Äußerung zu generieren; Durchführung einer Berechnung unter Verwendung des einen oder der mehreren anfänglichen Datenelemente, um einen Wert vorab zu berechnen; oder Erfassung eines Werts aus einem Datenspeicher unter Verwendung des einen oder der mehreren anfänglichen Datenelemente.Absatz 4.System nach Absatz 1, wobei das Kontextdatenelement Daten umfasst, die mindestens eines von Folgendem darstellen: einen Standort der sprachgestützten Vorrichtung, eine Kennung der sprachgestützten Vorrichtung, einen Inhaltskatalog, der einem Benutzerprofil zugeordnet ist, historische Interaktionen, die dem Benutzerprofil zugeordnet sind, eine Vorhersage bezüglich eines Aspekts der Äußerung oder einen Vergleich einer Vielzahl von Interpretationen der Äußerung.Absatz 5. Computerimplementiertes Verfahren, das Folgendes umfasst:- gemäß Durchführung durch ein Rechensystem, das einen oder mehrere Computerprozessoren umfasst, die dazu konfiguriert sind, spezifische Anweisungen ausführen,
- Ausführen eines Satzes von Verarbeitungsmaßnahmen für natürliche Sprache an einer Eingabe in natürlicher Sprache, um Intentionsdaten zu generieren, wobei die Eingabe in natürlicher Sprache eine Äußerung eines Benutzers darstellt und wobei die Intentionsdaten eine semantische Darstellung der Äußerung des Benutzers umfassen;
- an einem Integrationspunkt während des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache, Bestimmen, ein Kontextdatenelement unter Verwendung eines anfänglichen Datenelements zu generieren, das mindestens einer aus dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache zugeordnet ist;
- Generieren des Kontextdatenelements zumindest teilweise basierend auf dem anfänglichen Datenelement gleichzeitig mit der Durchführung mindestens eines Abschnitts des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache; und Bereitstellen von Zugriff auf das Kontextdatenelement, wobei auf das Kontextdatenelement während der Durchführung von mindestens einem von Folgendem zugegriffen wird: dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache oder einem Satz von Reaktionsbestimmungsmaßnahmen.
- Absatz 6. Computerimplementiertes
Verfahren nach Absatz 5, ferner umfassend Bestimmen einer Kontextdatenmaßnahme, die durchzuführen ist, um das Kontextdatenelement zu generieren, unter Verwendung eines Registers, wobei das Register die Kontextdatenmaßnahme und ein oder mehrere anfängliche Datenelemente spezifiziert, die zu verwenden sind, um das Kontextdatenelement zu generieren. - Absatz 7. Computerimplementiertes
Verfahren nach Absatz 5, ferner umfassend:- an einem zweiten Integrationspunkt während des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache, Bestimmen, ein zweites Kontextdatenelement unter Verwendung eines zweiten anfänglichen Datenelements zu generieren; und
- Generieren des zweiten Kontextdatenelements zumindest teilweise basierend auf dem zweiten anfänglichen Datenelement gleichzeitig mit der Durchführung mindestens eines zweiten Abschnitts des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache.
Absatz 8. ComputerimplementiertesVerfahren nach Absatz 5, ferner umfassend:- als Reaktion auf das Generieren des Kontextdatenelements, Bestimmen, ein zweites Kontextdatenelement unter Verwendung des Kontextdatenelements zu generieren; und
- Generieren des zweiten Kontextdatenelements zumindest teilweise basierend auf dem Kontextdatenelement gleichzeitig mit der Durchführung mindestens eines zweiten Abschnitts des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache.
- Absatz 9. Computerimplementiertes
Verfahren nach Absatz 5, wobei das Generieren des Kontextdatenelements zumindest teilweise basierend auf dem anfänglichen Datenelement Bewerten des anfänglichen Datenelements unter Verwendung eines Modells umfasst, um eine Vorhersage bezüglich eines Aspekts der Äußerung zu generieren. - Absatz 10. Computerimplementiertes Verfahren nach Absatz 9, ferner umfassend Generieren einer Reaktion auf die Äußerung zumindest teilweise basierend auf der Vorhersage, wobei sich die Vorhersage auf einen wahrscheinlichen Status der Äußerung als eine von einer anfänglichen Äußerung des Benutzers eines Dialogs mit mehreren Wendungen oder einer nachfolgenden Äußerung des Benutzers eines Dialogs mit mehreren Wendungen bezieht.
- Absatz 11. Computerimplementiertes
Verfahren nach Absatz 5, wobei das Bereitstellen von Zugriff auf das Kontextdatenelement Speichern des Kontextdatenelements in einem Datenspeicher umfasst, auf den während der Durchführung des mindestens einen von dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache oder dem Satz von Reaktionsbestimmungsmaßnahmen zugegriffen werden kann. - Absatz 12. Computerimplementiertes
Verfahren nach Absatz 5, wobei das Bereitstellen von Zugriff auf das Kontextdatenelement Reagieren auf eine Anfrage nach dem Kontextdatenelement während der Durchführung des mindestens einen von dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache oder dem Satz von Reaktionsbestimmungsmaßnahmen umfasst. - Absatz 13. System, das Folgendes umfasst:
- computerlesbaren Speicher, der ausführbare Anweisungen speichert; und
- einen oder mehrere Prozessoren in Kommunikation mit dem computerlesbaren Speicher und durch die ausführbaren Anweisungen zu mindestens Folgendem konfiguriert:
- Ausführen eines Satzes von Verarbeitungsmaßnahmen für natürliche Sprache an einer Eingabe in natürlicher Sprache, um Intentionsdaten zu generieren, wobei die Eingabe in natürlicher Sprache eine Äußerung eines Benutzers darstellt und wobei die Intentionsdaten eine semantische Darstellung der Äußerung des Benutzers umfassen;
- an einem Integrationspunkt während des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache, Bestimmen, ein Kontextdatenelement unter Verwendung eines anfänglichen Datenelements zu generieren, das mindestens einer aus dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache zugeordnet ist;
- Generieren des Kontextdatenelements zumindest teilweise basierend auf dem anfänglichen Datenelement gleichzeitig mit der Durchführung mindestens eines Abschnitts des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache; und Bereitstellen von Zugriff auf das Kontextdatenelement, wobei auf das Kontextdatenelement während der Durchführung von mindestens einem von Folgendem zugegriffen wird: dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache oder einem Satz von Reaktionsbestimmungsmaßnahmen.
- Absatz 14. System nach Absatz 13, wobei der eine oder die mehreren Prozessoren durch weitere ausführbare Anweisungen dazu konfiguriert sind, eine Kontextdatenmaßnahme, die durchzuführen ist, um das Kontextdatenelement zu generieren, unter Verwendung eines Registers zu bestimmen, wobei das Register die Kontextdatenmaßnahme und ein oder mehrere anfängliche Datenelemente spezifiziert, die zu verwenden sind, um das Kontextdatenelement zu generieren.
- Absatz 15. System nach Absatz 13, wobei der eine oder die mehreren Prozessoren durch weitere ausführbare Anweisungen zu mindestens Folgendem konfiguriert sind:
- an einem zweiten Integrationspunkt während des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache, Bestimmen, ein zweites Kontextdatenelement unter Verwendung eines zweiten anfänglichen Datenelements zu generieren; und
- Generieren des zweiten Kontextdatenelements zumindest teilweise basierend auf dem zweiten anfänglichen Datenelement gleichzeitig mit der Durchführung mindestens eines zweiten Abschnitts des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache.
- Absatz 16. System nach Absatz 13, wobei der eine oder die mehreren Prozessoren durch weitere ausführbare Anweisungen zu mindestens Folgendem konfiguriert sind:
- als Reaktion auf das Generieren des Kontextdatenelements, Bestimmen, ein zweites Kontextdatenelement unter Verwendung des Kontextdatenelements zu generieren; und
- Generieren des zweiten Kontextdatenelements zumindest teilweise basierend auf dem Kontextdatenelement gleichzeitig mit der Durchführung mindestens eines zweiten Abschnitts des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache.
- Absatz 17. System nach Absatz 13, wobei der eine oder die mehreren Prozessoren, die dazu konfiguriert sind, das Kontextdatenelement zumindest teilweise basierend auf dem anfänglichen Datenelement zu generieren, durch weitere ausführbare Anweisungen dazu konfiguriert sind, das anfängliche Datenelement unter Verwendung eines Modells zu bewerten, um eine Vorhersage bezüglich eines Aspekts der Äußerung zu generieren. Absatz 18. System nach Absatz 17, wobei der eine oder die mehreren Prozessoren durch weitere ausführbare Anweisungen dazu konfiguriert sind, eine Reaktion auf die Äußerung zumindest teilweise basierend auf der Vorhersage zu generieren, wobei sich die Vorhersage auf einen wahrscheinlichen Status der Äußerung als eine von einer anfängliche Äußerung des Benutzers eines Dialogs mit mehreren Wendungen oder einer nachfolgenden Äußerung des Benutzers eines Dialogs mit mehreren Wendungen bezieht. Absatz 19. System nach Absatz 13, wobei der eine oder die mehreren Prozessoren, die dazu konfiguriert sind, Zugriff auf das Kontextdatenelement bereitzustellen, durch weitere ausführbare Anweisungen dazu konfiguriert sind, das Kontextdatenelement in einem Datenspeicher zu speichern, auf den während der Durchführung des mindestens einen von dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache oder dem Satz von Reaktionsbestimmungsmaßnahmen zugegriffen werden kann.
- Absatz 20. System nach Absatz 13, wobei der eine oder die mehreren Prozessoren, die dazu konfiguriert sind, Zugriff auf das Kontextdatenelement bereitzustellen, durch weitere ausführbare Anweisungen dazu konfiguriert sind, während der Durchführung des mindestens einen von dem Satz von Verarbeitungsmaßnahmen für natürliche Sprache oder dem Satz von Reaktionsbestimmungsmaßnahmen auf eine Anfrage nach dem Kontextdatenelement zu reagieren.
- Absatz 21. System, das Folgendes umfasst:
- computerlesbaren Speicher, der ausführbare Anweisungen speichert; und
- einen oder mehrere Prozessoren in Kommunikation mit dem computerlesbaren Speicher und durch die ausführbaren Anweisungen zu mindestens Folgendem konfiguriert:
- Empfangen von Audiodaten von einer sprachgestützten Vorrichtung, wobei die Audiodaten eine Äußerung darstellen;
- Ausführen eines Satzes von Verarbeitungsmaßnahmen für natürliche Sprache, die zumindest teilweise auf den Audiodaten basieren, um Intentionsdaten zu generieren, die eine Vielzahl von semantischen Darstellungen der Äußerung umfassen;
- Bestimmen einer ersten Domäne einer Vielzahl von Domänen zumindest teilweise basierend auf einer Zuordnung der ersten Domäne zur einer Teilmenge der Vielzahl von semantischen Darstellungen, wobei die erste Domäne eine Vielzahl von Anwendungen umfasst, die dazu konfiguriert ist, Reaktionen auf Äußerungen zu generieren;
- Erlangen eines Satzes von Kontextdatenelementen, die der Äußerung zugeordnet sind;
- Bestimmen einer ersten Anwendung der Vielzahl von Anwendungen zumindest teilweise basierend auf einer Zuordnung der ersten Anwendung zu einer ersten semantischen Darstellung der Teilmenge von semantischen Darstellungen;
- Erlangen einer ersten Routing-Konfidenzbewertung zumindest teilweise basierend auf einer ersten Teilmenge des Satzes von Kontextdatenelementen von einem ersten Routing-Konfidenzbereitsteller, der der ersten Anwendung zugeordnet ist, wobei die erste Routing-Konfidenzbewertung einen Grad an Konfidenz darstellt, dass eine Reaktion auf die Äußerung durch die erste Anwendung zu generieren ist;
- Bestimmen einer zweiten Anwendung der Vielzahl von Anwendungen zumindest teilweise basierend auf einer Zuordnung der zweiten Anwendung zu einer zweiten semantischen Darstellung der Teilmenge von semantischen Darstellungen;
- Erlangen einer zweiten Routing-Konfidenzbewertung zumindest teilweise basierend auf einer zweiten Teilmenge des Satzes von Kontextdatenelementen von einem zweiten Routing-Konfidenzbereitsteller, der der zweiten Anwendung zugeordnet ist, wobei die zweite Routing-Konfidenzbewertung einen Grad an Konfidenz darstellt, dass eine Reaktion auf die Äußerung durch die zweite Anwendung zu generieren ist; und
- Zuweisen der ersten Anwendung, um die Reaktion zu generieren, zumindest teilweise basierend auf der ersten Routing-Konfidenzbewertung und der zweiten Routing-Konfidenzbewertung. Absatz 22. System nach Absatz 21, wobei die Intentionsdaten eine Rangliste der Vielzahl von semantischen Darstellungen umfassen, wobei die erste semantische Darstellung einen niedrigeren Rang hat als die zweite semantische Darstellung.
- Absatz 23. System nach Absatz 21, wobei eine erste Teilmenge der Vielzahl von Anwendungen einer ersten Schicht einer mehrschichtigen domäneninternen Hierarchie zugeordnet ist und wobei eine zweite Teilmenge der Vielzahl von Anwendungen einer zweiten Schicht der mehrschichtigen domäneninternen Hierarchie zugeordnet ist.
Absatz 24. System nach Absatz 21, wobei der erste Routing-Konfidenzbereitsteller die erste Routing-Konfidenzbewertung unter Verwendung eines statistischen Modells generiert und wobei der zweite Routing-Konfidenzbereitsteller die zweite Routing-Konfidenzbewertung unter Verwendung eines Satzes deterministischer Regeln generiert.Absatz 25. System nach Absatz 21, wobei der Satz von Kontextdatenelementen Daten umfasst, die mindestens eines von Folgendem darstellen: einen Standort der sprachgestützten Vorrichtung, eine Kennung der sprachgestützten Vorrichtung, einen Inhaltskatalog, der einem Benutzerprofil zugeordnet ist, historische Interaktionen, die dem Benutzerprofil zugeordnet sind, eine Vorhersage bezüglich eines Aspekts der Äußerung oder einen Vergleich einer Vielzahl von Interpretationen der Äußerung.- Absatz 26. Computerimplementiertes Verfahren, das Folgendes umfasst:
- gemäß Durchführung durch ein Rechensystem, das einen oder mehrere Computerprozessoren umfasst, die dazu konfiguriert sind, spezifische Anweisungen ausführen,
- Empfangen einer Anfrage diesbezüglich, ob eine Anwendung einer Domäne dazu konfiguriert ist, eine Reaktion auf eine Äußerung zu generieren, wobei die Anfrage einer Vielzahl von semantischen Darstellungen der Äußerung zugeordnet ist;
- Erlangen eines Satzes von Kontextdatenelementen, die der Äußerung zugeordnet sind;
- Identifizieren einer Teilmenge von Anwendungen der Domäne zumindest teilweise basierend auf einer Zuordnung einzelner Anwendungen der Teilmenge zu einzelnen semantischen Darstellungen der Vielzahl von semantischen Darstellungen; Generieren einer Vielzahl von Routing-Konfidenzbewertungen unter Verwendung der Vielzahl von semantischen Darstellungen und des Satzes von Kontextdatenelementen, wobei eine Routing-Konfidenzbewertung einen Grad an Konfidenz darstellt, dass eine Reaktion auf die Äußerung durch eine Anwendung zu generieren ist; und
- Generieren einer Reaktion auf die Anfrage zumindest teilweise basierend auf der Vielzahl von Routing-Konfidenzbewertungen.
- Absatz 27. Computerimplementiertes Verfahren nach Absatz 26, wobei das Erlangen des Satzes von Kontextdatenelementen mindestens eines von Folgendem umfasst: Abrufen eines Kontextdatenelements aus einem Datenspeicher, Anfordern des Kontextdatenelements von einem Kontextdatenverwaltungssystem oder Erlangen des Kontextdatenelements aus der Anfrage.
- Absatz 28. Computerimplementiertes Verfahren nach Absatz 26, wobei das Identifizieren der Teilmenge von Anwendungen zumindest teilweise auf einem vorbestimmten Mapping von Anwendungen zu Arten semantischer Darstellungen basiert.
- Absatz 29. Computerimplementiertes Verfahren nach Absatz 26, wobei das Generieren der Vielzahl von Routing-Konfidenzbewertungen Generieren einer ersten Routing-Konfidenzbewertung unter Verwendung eines statistischen Modells und einer Teilmenge des Satzes von Kontextdatenelementen umfasst.
- Absatz 30. Computerimplementiertes Verfahren nach Absatz 26, wobei das Generieren der Vielzahl von Routing-Konfidenzbewertungen Generieren einer ersten Routing-Konfidenzbewertung unter Verwendung eines Satzes von deterministischen Regeln und einer Teilmenge des Satzes von Kontextdatenelementen umfasst.
- Absatz 31. Computerimplementiertes Verfahren nach Absatz 26, wobei das Generieren der Vielzahl von Routing-Konfidenzbewertungen Veranlassen einer Ausführung eines Routing-Konfidenzbereitstellers eines Drittanbieters unter Verwendung einer Teilmenge des Satzes von Kontextdatenelementen umfasst.
- Absatz 32. Computerimplementiertes Verfahren nach Absatz 26, wobei das Generieren der Reaktion auf die Anfrage Angeben, dass die Reaktion auf die Äußerung durch eine erste Anwendung der Teilmenge von Anwendungen zu generieren ist, umfasst.
- Absatz 33. Computerimplementiertes Verfahren nach Absatz 26, ferner umfassend Bestimmen, dass eine Routing-Konfidenzbewertung der Vielzahl von Routing-Konfidenzbewertungen eine Mehrdeutigkeit diesbezüglich angibt, ob die Reaktion auf die Äußerung durch eine erste Anwendung der Teilmenge von Anwendungen zu generieren ist, wobei das Generieren der Reaktion auf die Anfrage Identifizieren einer Mehrdeutigkeitsauflösungskomponente als eine Anwendung, die die Reaktion auf die Äußerung generieren soll, umfasst.
- Absatz 34. Computerimplementiertes Verfahren nach Absatz 33, ferner umfassend Ausführen der Mehrdeutigkeitsauflösungskomponente, um die Mehrdeutigkeit aufzulösen, wobei die Mehrdeutigkeitsauflösungskomponente dazu konfiguriert ist, mindestens eines von Folgendem darzustellen: einen Hinweis bezüglich einer zweiten Äußerung, die gemacht werden soll, eine Abfrage nach einer zweiten Äußerung bezüglich einer Klarstellung der Äußerung oder eine Abfrage nach einer zweiten Äußerung, um anzugeben, ob die Reaktion auf die Äußerung durch die erste Anwendung zu generieren ist.
- Absatz 35. System, das Folgendes umfasst:
- computerlesbaren Speicher, der ausführbare Anweisungen speichert; und
- einen oder mehrere Prozessoren in Kommunikation mit dem computerlesbaren Speicher und durch die ausführbaren Anweisungen zu mindestens Folgendem konfiguriert:
- Empfangen einer Anfrage diesbezüglich, ob eine Anwendung einer Domäne dazu konfiguriert ist, eine Reaktion auf eine Äußerung zu generieren, wobei die Anfrage einer Vielzahl von semantischen Darstellungen der Äußerung zugeordnet ist;
- Erlangen eines Satzes von Kontextdatenelementen, die der Äußerung zugeordnet sind;
- Identifizieren einer Teilmenge von Anwendungen der Domäne zumindest teilweise basierend auf einer Zuordnung einzelner Anwendungen der Teilmenge zu einzelnen semantischen Darstellungen der Vielzahl von semantischen Darstellungen; Generieren einer Vielzahl von Routing-Konfidenzbewertungen unter Verwendung der Vielzahl von semantischen Darstellungen und des Satzes von Kontextdatenelementen, wobei eine Routing-Konfidenzbewertung einen Grad an Konfidenz darstellt, dass eine Reaktion auf die Äußerung durch eine Anwendung zu generieren ist; und
- Generieren einer Reaktion auf die Anfrage zumindest teilweise basierend auf der Vielzahl von Routing-Konfidenzbewertungen. Absatz 36. System nach Absatz 35, wobei der eine oder die mehreren Prozessoren, die dazu konfiguriert sind, den Satz von Kontextdatenelementen zu erlangen, durch weitere ausführbare Anweisungen dazu konfiguriert sind, ein Kontextdatenelement von einem der Folgenden zu erlangen: einem Datenspeicher, einem Kontextdatenverwaltungssystem oder der Anfrage.
- Absatz 37. System nach Absatz 35, wobei der eine oder die mehreren Prozessoren, die dazu konfiguriert sind, die Vielzahl von Routing-Konfidenzbewertungen zu generieren, durch weitere ausführbare Anweisungen dazu konfiguriert sind, eine erste Routing-Konfidenzbewertung unter Verwendung eines statistischen Modells und einer Teilmenge des Satzes von Kontextdatenelementen zu generieren.
- Absatz 38. System nach Absatz 35, wobei der eine oder die mehreren Prozessoren, die dazu konfiguriert sind, die Vielzahl von Routing-Konfidenzbewertungen zu generieren, durch weitere ausführbare Anweisungen dazu konfiguriert sind, eine erste Routing-Konfidenzbewertung unter Verwendung eines Satzes von deterministischen Regeln und einer Teilmenge des Satzes von Kontextdatenelementen zu generieren.
- Absatz 39. System nach Absatz 35, wobei der eine oder die mehreren Prozessoren, die dazu konfiguriert sind, die Vielzahl von Routing-Konfidenzbewertungen zu generieren, durch weitere ausführbare Anweisungen dazu konfiguriert sind, die Ausführung eines Routing-Konfidenzbereitstellers eines Drittanbieters unter Verwendung einer Teilmenge des Satzes von Kontextdatenelementen zu veranlassen.
- Absatz 40. System nach Absatz 35, wobei der eine oder die mehreren Prozessoren durch weitere ausführbare Anweisungen dazu konfiguriert sind zu bestimmen, dass eine Routing-Konfidenzbewertung der Vielzahl von Routing-Konfidenzbewertungen eine Mehrdeutigkeit diesbezüglich angibt, ob die Reaktion auf die Äußerung durch eine erste Anwendung der Teilmenge von Anwendungen zu generieren ist, wobei die Reaktion auf die Anfrage eine Mehrdeutigkeitsauflösungskomponente als eine Anwendung identifiziert, die die Reaktion auf die Äußerung generieren soll.
-
Paragraph 1. System comprising:- computer-readable memory storing executable instructions; and
- one or more processors in communication with the computer-readable memory and configured by the executable instructions to at least:
- Receiving audio data from a speech-enabled device, the audio data representing an utterance;
- Generating text data using the audio data and an automatic speech recognition (“ASR”) process, wherein the text data represents at least a portion of the utterance; Generating intention data using the text data and a natural language understanding (“NLU”) process, wherein the intention data comprises a semantic representation of the utterance;
- at an integration point during the NLU process, determining to generate a context data element in parallel with at least a portion of the NLU process;
- Obtaining one or more initial data elements associated with the integration point;
- using a register of context data elements and corresponding context data actions, determining a context data action to be performed to generate the context data element;
- generating the context data item based at least in part on performing the context data action in parallel with at least a portion of the NLU process, wherein the context data action generates the context data item using the one or more initial data items;
- Determining an application to which the intention data is to be forwarded to generate a response to the utterance, the application being determined based at least in part on the context data element; and
- Generate a response to the utterance using the application and intent data.
-
Paragraph 2. The system ofparagraph 1, wherein the one or more initial data elements comprise at least one of: a data element received from the voice-assisted device, a data element generated during the ASR process, or a data element generated during the NLU process. -
Paragraph 3. The system ofparagraph 1, wherein the contextual data action comprises one of: evaluating the one or more initial data items using a model to generate a prediction regarding an aspect of the utterance; performing a calculation using the one or more initial data items to pre-calculate a value; or extracting a value from a data store using the one or more initial data items. -
Paragraph 4. The system ofparagraph 1, wherein the context data element comprises data representing at least one of: a location of the voice-enabled device, an identifier of the voice-enabled device, a catalog of content associated with a user profile, historical interactions associated with the user profile, a prediction regarding an aspect of the utterance, or a comparison of a plurality of interpretations of the utterance. -
Paragraph 5. Computer-implemented procedure comprising:- as performed by a computing system comprising one or more computer processors configured to execute specific instructions,
- performing a set of natural language processing actions on a natural language input to generate intent data, wherein the natural language input represents an utterance of a user and wherein the intent data comprises a semantic representation of the user's utterance;
- at an integration point during the set of natural language processing actions, determining to generate a context data item using an initial data item associated with at least one of the set of natural language processing actions;
- generating the context data item based at least in part on the initial data item concurrently with performance of at least a portion of the set of natural language processing actions; and providing access to the context data item, wherein the context data item is accessed during performance of at least one of: the set of natural language processing actions or a set of response determination actions.
- Paragraph 6. The computer-implemented method of
paragraph 5, further comprising determining a context data action to be performed to generate the context data item using a register, the register specifying the context data action and one or more initial data items to be used to generate the context data item. - Paragraph 7. Computer-implemented method according to
paragraph 5, further comprising:- at a second integration point during the set of natural language processing actions, determining to generate a second context data item using a second initial data item; and
- Generating the second context data item based at least in part on the second initial data item concurrently with performing at least a second portion of the set of natural language processing actions.
-
Paragraph 8. Computer-implemented procedure according toparagraph 5, further comprising:- in response to generating the context data element, determining to generate a second context data element using the context data element; and
- Generating the second context data element based at least in part on the context data element concurrently with performing at least a second portion of the set of natural language processing actions.
- Paragraph 9. The computer-implemented method of
paragraph 5, wherein generating the context data item based at least in part on the initial data item comprises evaluating the initial data item using a model to generate a prediction regarding an aspect of the utterance. - Paragraph 10. The computer-implemented method of paragraph 9, further comprising generating a response to the utterance based at least in part on the prediction, wherein the prediction relates to a likely status of the utterance as one of an initial utterance of the user of a multi-turn dialogue or a subsequent utterance of the user of a multi-turn dialogue.
- Paragraph 11. The computer-implemented method of
paragraph 5, wherein providing access to the context data element comprises storing the context data element in a data store that is accessible during performance of at least one of the set of natural language processing actions or the set of response determination actions. - Paragraph 12. The computer-implemented method of
paragraph 5, wherein providing access to the context data element comprises responding to a request for the context data element during performance of at least one of the set of natural language processing actions or the set of response determination actions. - Paragraph 13. System comprising:
- computer-readable memory storing executable instructions; and
- one or more processors in communication with the computer-readable memory and configured by the executable instructions to at least:
- performing a set of natural language processing actions on a natural language input to generate intent data, wherein the natural language input represents an utterance of a user and wherein the intent data comprises a semantic representation of the user's utterance;
- at an integration point during the set of natural language processing actions, determining to generate a context data item using an initial data item associated with at least one of the set of natural language processing actions;
- generating the context data item based at least in part on the initial data item concurrently with performance of at least a portion of the set of natural language processing actions; and providing access to the context data item, wherein the context data item is accessed during performance of at least one of: the set of natural language processing actions or a set of response determination actions.
- Paragraph 14. The system of paragraph 13, wherein the one or more processors are configured by further executable instructions to determine a context data action to be performed to generate the context data item using a register, the register specifying the context data action and one or more initial data items to be used to generate the context data item.
- Paragraph 15. The system of paragraph 13, wherein the one or more processors are configured by further executable instructions to at least:
- at a second integration point during the set of natural language processing actions, determining to generate a second context data item using a second initial data item; and
- Generating the second context data item based at least in part on the second initial data item concurrently with performing at least a second portion of the set of natural language processing actions.
- Paragraph 16. The system of paragraph 13, wherein the one or more processors are configured by further executable instructions to at least:
- in response to generating the context data element, determining to generate a second context data element using the context data element; and
- Generating the second context data element based at least in part on the context data element concurrently with performing at least a second portion of the set of natural language processing actions.
- Paragraph 17. The system of paragraph 13, wherein the one or more processors configured to generate the context data item based at least in part on the initial data item are configured by further executable instructions to evaluate the initial data item using a model to generate a prediction regarding an aspect of the utterance. Paragraph 18. The system of paragraph 17, wherein the one or more processors configured by further executable instructions to generate a response to the utterance based at least in part on the prediction, wherein the prediction relates to a likely status of the utterance as one of an initial utterance of the user of a multi-turn dialogue or a subsequent utterance of the user of a multi-turn dialogue. Paragraph 19. The system of paragraph 13, wherein the one or more processors configured to provide access to the context data item are configured by further executable instructions to store the context data item in a data store accessible during performance of the at least one of the set of natural language processing actions or the set of response determination actions.
- Paragraph 20. The system of paragraph 13, wherein the one or more processors configured to provide access to the context data item are configured by further executable instructions to respond to a request for the context data item during performance of the at least one of the set of natural language processing actions or the set of response determination actions.
- Paragraph 21. System comprising:
- computer-readable memory storing executable instructions; and
- one or more processors in communication with the computer-readable memory and configured by the executable instructions to at least:
- Receiving audio data from a speech-enabled device, the audio data representing an utterance;
- performing a set of natural language processing operations based at least in part on the audio data to generate intention data comprising a plurality of semantic representations of the utterance;
- Determining a first domain of a plurality of domains based at least in part on an association of the first domain with a subset of the plurality of semantic representations, the first domain comprising a plurality of applications configured to generate responses to utterances;
- Obtaining a set of context data elements associated with the utterance;
- determining a first application of the plurality of applications based at least in part on an association of the first application with a first semantic representation of the subset of semantic representations;
- Obtaining a first routing confidence score based at least in part on a first subset of the set of context data items from a first routing confidence provider associated with the first application, the first routing confidence score representing a level of confidence that a response to the utterance is to be generated by the first application;
- determining a second application of the plurality of applications based at least in part on an association of the second application with a second semantic representation of the subset of semantic representations;
- Obtaining a second routing confidence score based at least in part on a second subset of the set of context data items from a second routing confidence provider associated with the second application, the second routing confidence score representing a level of confidence that a response to the utterance is to be generated by the second application; and
- Assigning the first application to generate the response based at least in part on the first routing confidence score and the second routing confidence score. Paragraph 22. The system of paragraph 21, wherein the intent data comprises a ranked list of the plurality of semantic representations, the first semantic representation having a lower rank than the second semantic representation.
- Paragraph 23. The system of paragraph 21, wherein a first subset of the plurality of applications is associated with a first layer of a multi-layered intra-domain hierarchy, and wherein a second subset of the plurality of applications is associated with a second layer of the multi-layered intra-domain hierarchy.
-
Paragraph 24. The system of paragraph 21, wherein the first routing confidence provider generates the first routing confidence score using a statistical model and wherein the second routing confidence provider generates the second routing confidence score using a set of deterministic rules. -
Paragraph 25. The system of paragraph 21, wherein the set of context data elements comprises data representing at least one of: a location of the voice-enabled device, an identifier of the voice-enabled device, a catalog of content associated with a user profile, historical interactions associated with the user profile, a prediction regarding an aspect of the utterance, or a comparison of a plurality of interpretations of the utterance. - Paragraph 26. Computer-implemented procedure comprising:
- as performed by a computing system comprising one or more computer processors configured to execute specific instructions,
- Receiving a query regarding whether an application of a domain is configured to generate a response to an utterance, the query associated with a plurality of semantic representations of the utterance;
- Obtaining a set of context data elements associated with the utterance;
- Identifying a subset of applications of the domain based at least in part on an association of individual applications of the subset with individual semantic representations of the plurality of semantic representations; generating a plurality of routing confidence scores using the plurality of semantic representations and the set of context data elements, wherein a routing confidence score represents a degree of confidence that a response to the utterance is to be generated by an application; and
- Generating a response to the request based at least in part on the plurality of routing confidence scores.
- Paragraph 27. The computer-implemented method of paragraph 26, wherein obtaining the set of context data items comprises at least one of: retrieving a context data item from a data store, requesting the context data item from a context data management system, or obtaining the context data item from the request.
- Paragraph 28. The computer-implemented method of paragraph 26, wherein identifying the subset of applications is based at least in part on a predetermined mapping of applications to types of semantic representations.
- Paragraph 29. The computer-implemented method of paragraph 26, wherein generating the plurality of routing confidence scores comprises generating a first routing confidence score using a statistical model and a subset of the set of context data elements.
- Paragraph 30. The computer-implemented method of paragraph 26, wherein generating the plurality of routing confidence scores comprises generating a first routing confidence score using a set of deterministic rules and a subset of the set of context data elements.
- Paragraph 31. The computer-implemented method of paragraph 26, wherein generating the plurality of routing confidence scores comprises causing execution of a third-party routing confidence provider using a subset of the set of context data elements.
- Paragraph 32. The computer-implemented method of paragraph 26, wherein generating the response to the request comprises specifying that the response to the utterance is to be generated by a first application of the subset of applications.
- Paragraph 33. The computer-implemented method of paragraph 26, further comprising determining that a routing confidence score of the plurality of routing confidence scores indicates an ambiguity as to whether the response to the utterance is to be generated by a first application of the subset of applications, wherein generating the response to the request comprises identifying an ambiguity resolution component as an application to generate the response to the utterance.
- Paragraph 34. The computer-implemented method of paragraph 33, further comprising executing the ambiguity resolution component to resolve the ambiguity, wherein the ambiguity resolution component is configured to present at least one of: an indication regarding a second utterance to be made, a query for a second utterance regarding clarification of the utterance, or a query for a second utterance to indicate whether the response to the utterance is to be generated by the first application.
- Paragraph 35. System comprising:
- computer-readable memory storing executable instructions; and
- one or more processors in communication with the computer-readable memory and configured by the executable instructions to at least:
- Receiving a query regarding whether an application of a domain is configured to generate a response to an utterance, the query associated with a plurality of semantic representations of the utterance;
- Obtaining a set of context data elements associated with the utterance;
- Identifying a subset of applications of the domain based at least in part on an association of individual applications of the subset with individual semantic representations of the plurality of semantic representations; generating a plurality of routing confidence scores using the plurality of semantic representations and the set of context data elements, wherein a routing confidence score represents a degree of confidence that a response to the utterance is to be generated by an application; and
- Generating a response to the request based at least in part on the plurality of routing confidence scores. Paragraph 36. The system of paragraph 35, wherein the one or more processors configured to obtain the set of context data items are configured, by further executable instructions, to obtain a context data item from one of the following: a data store, a context data management system, or the request.
- Paragraph 37. The system of paragraph 35, wherein the one or more processors configured to generate the plurality of routing confidence scores are configured by further executable instructions to generate a first routing confidence score using a statistical model and a subset of the set of context data elements.
- Paragraph 38. The system of paragraph 35, wherein the one or more processors configured to generate the plurality of routing confidence scores are configured by further executable instructions to generate a first routing confidence score using a set of deterministic rules and a subset of the set of context data elements.
- Paragraph 39. The system of paragraph 35, wherein the one or more processors configured to generate the plurality of routing confidence scores are supplemented by further executable Instructions configured to cause a third-party routing confidence provider to execute using a subset of the set of context data elements.
- Paragraph 40. The system of paragraph 35, wherein the one or more processors are configured by further executable instructions to determine that a routing confidence score of the plurality of routing confidence scores indicates an ambiguity as to whether the response to the utterance is to be generated by a first application of the subset of applications, the response to the request identifying an ambiguity resolution component as an application that is to generate the response to the utterance.
Terminologieterminology
Abhängig von der Ausführungsform können gewisse Handlungen, Ereignisse oder Funktionen eines der hierin beschriebenen Prozesse oder Algorithmen in einer anderen Reihenfolge durchgeführt werden, können hinzugefügt, zusammengeführt oder ganz weggelassen werden (z. B. sind nicht alle beschrieben Vorgänge oder Ereignisse sind für die praktische Umsetzung des Algorithmus notwendig). Darüber hinaus können in gewissen Ausführungsformen Vorgänge oder Ereignisse gleichzeitig durchgeführt werden, z. B. durch Multithread-Verarbeitung, Interrupt-Verarbeitung oder mehrere Prozessoren oder Prozessorkerne oder auf anderen parallelen Architekturen, statt sequentiell.Depending on the embodiment, certain acts, events, or functions of any of the processes or algorithms described herein may be performed in a different order, may be added, merged, or omitted entirely (e.g., not all of the described acts or events are necessary for the practice of the algorithm). Moreover, in certain embodiments, acts or events may be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors or processor cores, or on other parallel architectures, rather than sequentially.
Die verschiedenen veranschaulichenden logischen Blöcke, Module, Routinen und Algorithmusschritte, die in Verbindung mit den hierin offenbarten Ausführungsformen beschrieben werden, können als elektronische Hardware oder als Kombinationen aus elektronischer Hardware und Computersoftware implementiert sein. Um diese Austauschbarkeit von Hardware und Software zu verdeutlichen, wurden verschiedene veranschaulichende Komponenten, Blöcke, Module und Schritte allgemein hinsichtlich ihrer Funktionalität beschrieben. Ob eine solche Funktionalität als Hardware oder Software, die auf der Hardware implementiert wird, implementiert wird, hängt von der konkreten Anwendung und dem Gesamtsystem auferlegten Auslegungsbeschränkungen ab. Die beschriebene Funktionalität kann für jede konkrete Anwendung auf unterschiedliche Weise implementiert sein, solche Implementierungsentscheidungen sollten jedoch nicht so interpretiert werden, dass sie eine Abweichung vom Umfang der Offenbarung bewirken.The various illustrative logical blocks, modules, routines, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or as combinations of electronic hardware and computer software. To illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, and steps have been described generally in terms of their functionality. Whether such functionality is implemented as hardware or software implemented on the hardware depends on the particular application and design constraints imposed on the overall system. The functionality described may be implemented in different ways for each particular application, but such implementation choices should not be interpreted as causing a departure from the scope of the disclosure.
Darüber hinaus können die verschiedenen veranschaulichenden logischen Blöcke und Module, die in Verbindung mit den hierin offenbarten Ausführungsformen beschrieben werden, durch eine Maschine implementiert oder ausgeführt werden, wie etwa eine Univeralprozessorvorrichtung, einen Digitalsignalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) oder eine andere programmierbare Logikvorrichtung, diskrete Gate- oder Transistorlogik, diskrete Hardwarekomponenten oder eine beliebige Kombination davon, die zum Durchführen der hierin beschriebenen Funktionen ausgelegt ist. Eine Prozessorvorrichtung kann ein Mikroprozessor sein, aber alternativ kann die Prozessorvorrichtung ein Controller, ein Mikrocontroller oder eine Zustandsmaschine, Kombinationen davon oder dergleichen sein. Eine Prozessorvorrichtung kann elektrische Schaltungen beinhalten, die dazu konfiguriert sind, computerausführbare Anweisungen zu verarbeiten. In einer anderen Ausführungsform beinhaltet eine Prozessorvorrichtung ein FPGA oder eine andere programmierbare Vorrichtung, die logische Operationen durchführt, ohne computerausführbare Anweisungen zu verarbeiten. Eine Prozessorvorrichtung kann auch als Kombination von Rechenvorrichtungen implementiert sein, z. B. als Kombination aus einem DSP und einem Mikroprozessor, einer Vielzahl von Mikroprozessoren, als ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder als jede andere derartige Konfiguration. Obwohl hierin hauptsächlich in Bezug auf digitale Technologie beschrieben, kann eine Prozessorvorrichtung auch hauptsächlich analoge Komponenten beinhalten. Beispielsweise können einige oder alle der hierin beschriebenen Algorithmen in analogen Schaltungen oder gemischten analogen und digitalen Schaltungen implementiert sein. Eine Rechenumgebung kann jede Art von Computersystem beinhalten, die unter anderem ein Computersystem, das auf einem Mikroprozessor basiert, einen Großrechner, einen Digitalsignalprozessor, eine tragbarer Rechenvorrichtung, eine Vorrichtungssteuerung oder eine Rechen-Engine innerhalb eines Geräts, um nur einige zu nennen, einschließen.Moreover, the various illustrative logical blocks and modules described in connection with the embodiments disclosed herein may be implemented or executed by a machine, such as a general-purpose processor device, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof configured to perform the functions described herein. A processor device may be a microprocessor, but alternatively, the processor device may be a controller, a microcontroller, or a state machine, combinations thereof, or the like. A processor device may include electrical circuits configured to process computer-executable instructions. In another embodiment, a processor device includes an FPGA or other programmable device that performs logical operations without processing computer-executable instructions. A processor device may also be implemented as a combination of computing devices, e.g., a microprocessor, a processor core, a memory module, a processor architecture, or a processor architecture. B. as a combination of a DSP and a microprocessor, a plurality of microprocessors, as one or more microprocessors in conjunction with a DSP core, or as any other such configuration. Although described herein primarily in terms of digital technology, a processor device may also include primarily analog components. For example, some or all of the algorithms described herein may be implemented in analog circuits or mixed analog and digital circuits. A computing environment may include any type of computer system, including, but not limited to, a microprocessor-based computer system, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computation engine within a device, to name a few.
Die Elemente eines Verfahrens, eines Prozesses, einer Routine oder eines Algorithmus, die in Verbindung mit den hierin offenbarten Ausführungsformen beschrieben werden, können direkt in Hardware, in einem durch eine Prozessorvorrichtung ausgeführten Softwaremodul oder in einer Kombination aus beiden verkörpert sein. Ein Softwaremodul kann sich in RAM-Speicher, Flash-Speicher, ROM-Speicher, EPROM-Speicher, EEPROM-Speicher, Registern, einer Festplatte, einem Wechseldatenträger, einer CD-ROM oder jeder anderen Form eines nichttransitorischen computerlesbaren Speichermediums befinden. Ein beispielhaftes Speichermedium kann mit der Prozessorvorrichtung gekoppelt sein, sodass die Prozessorvorrichtung Daten vom Speichermedium lesen und Daten auf das Speichermedium schreiben kann. Alternativ kann das Speichermedium in die Prozessorvorrichtung integriert sein. The elements of a method, process, routine, or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor device, or in a combination of both. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable storage device, a CD-ROM, or any other form of non-transitory computer-readable storage medium. An exemplary storage medium may be coupled to the processor device such that the processor device can read data from the storage medium and write data to the storage medium. Alternatively, the storage medium can be integrated into the processor device.
Die Prozessorvorrichtung und das Speichermedium können sich in einer ASIC befinden. Die ASIC kann sich in einem Benutzerendgerät befinden. Alternativ können sich die Prozessorvorrichtung und das Speichermedium als diskrete Komponenten in einem Benutzerendgerät befinden. Konditionalsprache, wie hierin verwendet, etwa unter anderem „kann“, „könnte“, „würde“, „möchte“, „z. B.“ soll, sofern nicht spezifisch anders angegeben oder im verwendeten Kontext anders zu versehen, allgemein vermitteln, dass gewisse Ausführungsformen gewisse Merkmale, Elemente und/oder Schritte beinhalten, während andere Ausführungsformen diese nicht beinhalten. Somit soll derartige Konditionalsprache nicht allgemein implizieren, dass Merkmale, Elemente und/oder Schritte in irgendeiner Weise für eine oder mehrere Ausführungsformen erforderlich sind oder dass eine oder mehrere Ausführungsformen notwendigerweise Logik zum Entscheiden, mit oder ohne andere Eingaben oder Eingabeaufforderungen, beinhalten, ob diese Merkmale, Elemente und/oder Schritte in einer konkreten Ausführungsform beinhaltet sind oder durchgeführt werden sollen. Die Begriffe „umfassend“, „beinhaltend“, „aufweisend“ und dergleichen sind synonym und werden einschließend und offen verwendet und schließen zusätzliche Elemente, Merkmale, Handlungen, Vorgänge usw. nicht aus. Außerdem wird der Begriff „oder“ in seinem einschließenden Sinn (und nicht in seinem ausschließlichen Sinn) verwendet, sodass der Begriff „oder“, wenn er beispielsweise zum Verbinden einer Liste von Elementen verwendet wird, eines, einige oder alle der Elemente in der Liste bedeutet.The processor device and storage medium may be located in an ASIC. The ASIC may be located in a user terminal. Alternatively, the processor device and storage medium may be located as discrete components in a user terminal. Conditional language as used herein, such as, but not limited to, “may,” “could,” “would,” “might,” “e.g.,” unless specifically stated otherwise or the context used indicates otherwise, is intended to generally convey that certain embodiments include certain features, elements, and/or steps while other embodiments do not include them. Thus, such conditional language is not intended to generally imply that features, elements, and/or steps are in any way required for one or more embodiments, or that one or more embodiments necessarily include logic for deciding, with or without other inputs or prompts, whether those features, elements, and/or steps are included or should be performed in a particular embodiment. The terms “comprising,” “including,” “having,” and the like are synonymous and are used inclusively and openly and do not exclude additional elements, features, acts, operations, etc. In addition, the term "or" is used in its inclusive sense (rather than its exclusive sense), so that when the term "or" is used, for example, to join a list of items, it means one, some, or all of the items in the list.
Eine disjunktive Formulierung, wie etwa der Ausdruck „mindestens eines von X, Y, Z“ ist, sofern nicht ausdrücklich anders angegeben, im Kontext so zu verstehen, wie er im Allgemeinen verwendet wird, um darzustellen, dass ein Gegenstand, ein Begriff usw. entweder X, Y oder Z oder eine beliebige Kombination davon (z. B. X, Y, und/oder Z) sein kann. Somit soll eine derartige disjunktive Sprache im Allgemeinen nicht implizieren, dass gewisse Ausführungsformen erfordern, dass mindestens eines von X, mindestens eines von Y oder mindestens eines von Z jeweils vorhanden ist.A disjunctive phrase such as the phrase "at least one of X, Y, Z" is, unless explicitly stated otherwise, to be understood in context as generally used to represent that an item, term, etc. can be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is generally not intended to imply that certain embodiments require that at least one of X, at least one of Y, or at least one of Z be present, respectively.
Sofern nicht ausdrücklich anders angegeben, sollten Artikel wie „ein“ oder „eine“ im Allgemeinen so interpretiert werden, dass sie einen oder mehrere beschriebene Gegenstände beinhalten. Dementsprechend sollen Ausdrücke wie „ein Vorrichtung, die dazu konfiguriert ist“ eine oder mehrere genannte Vorrichtungen beinhalten. Eine solche oder mehrere der genannten Vorrichtungen können auch gemeinsam konfiguriert werden, um die genannten Aufgaben auszuführen. Beispielsweise kann „ein Prozessor, der für die Ausführung der Aufgaben A, B und C konfiguriert ist“ einen ersten Prozessor beinhalten, der für die Ausführung von Aufgabe A konfiguriert ist und in Verbindung mit einem zweiten Prozessor arbeitet, der für die Ausführung der Aufgaben B und C konfiguriert ist.Unless explicitly stated otherwise, articles such as "a" or "an" should generally be interpreted to include one or more described items. Accordingly, phrases such as "a device configured to" are intended to include one or more named devices. One or more of the named devices may also be configured together to perform the named tasks. For example, "a processor configured to perform tasks A, B, and C" may include a first processor configured to perform task A operating in conjunction with a second processor configured to perform tasks B and C.
Während die vorstehende detaillierte Beschreibung neue Merkmale gezeigt, beschrieben und hervorgehoben hat, die auf verschiedene Ausführungsformen angewendet werden, versteht es sich, dass verschiedene Auslassungen, Ersetzungen und Änderungen in der Form und an den Details der veranschaulichten Vorrichtungen oder Algorithmen vorgenommen werden können, ohne vom Geist der Offenbarung abzuweichen. Wie zu erkennen ist, können gewisse hierin beschriebene Ausführungsformen in einer Form verkörpert sein, die nicht alle hierin dargelegten Merkmale und Vorteile bereitstellt, da einige Merkmale getrennt von anderen verwendet oder in die Praxis umgesetzt werden können. Der Umfang gewisser hierin offenbarter Ausführungsformen wird daher vielmehr durch die beigefügten Patentansprüchen als die vorangegangene Beschreibung angegeben. Alle Änderungen, die in die Bedeutung und den Bereich der Äquivalenz der Patentansprüche fallen, sind als in deren Umfang eingeschlossen zu verstehen.While the foregoing detailed description has shown, described, and emphasized new features applied to various embodiments, it is to be understood that various omissions, substitutions, and changes in the form and details of the illustrated devices or algorithms may be made without departing from the spirit of the disclosure. As will be appreciated, certain embodiments described herein may be embodied in a form that does not provide all of the features and advantages set forth herein, since some features may be utilized or practiced separately from others. The scope of certain embodiments disclosed herein is therefore indicated by the appended claims rather than the foregoing description. All changes which come within the meaning and range of equivalence of the claims are to be understood as being included within the scope thereof.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- US 10515625 [0067]US10515625 [0067]
Claims (15)
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/304,714 | 2021-06-24 | ||
| US17/304,720 US12211493B2 (en) | 2021-06-24 | 2021-06-24 | Early invocation for contextual data processing |
| US17/304,714 US11657805B2 (en) | 2021-06-24 | 2021-06-24 | Dynamic context-based routing of speech processing |
| US17/304,720 | 2021-06-24 | ||
| PCT/US2022/034014 WO2022271555A1 (en) | 2021-06-24 | 2022-06-17 | Early invocation for contextual data processing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE112022003216T5 true DE112022003216T5 (en) | 2024-04-04 |
Family
ID=82557940
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE112022003216.2T Pending DE112022003216T5 (en) | 2021-06-24 | 2022-06-17 | Early call for context data processing |
Country Status (3)
| Country | Link |
|---|---|
| DE (1) | DE112022003216T5 (en) |
| GB (1) | GB2623037A (en) |
| WO (1) | WO2022271555A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12211493B2 (en) | 2021-06-24 | 2025-01-28 | Amazon Technologies, Inc. | Early invocation for contextual data processing |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10515625B1 (en) | 2017-08-31 | 2019-12-24 | Amazon Technologies, Inc. | Multi-modal natural language processing |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030112277A1 (en) * | 2001-12-14 | 2003-06-19 | Koninklijke Philips Electronics N.V. | Input of data using a combination of data input systems |
| US10782986B2 (en) * | 2018-04-20 | 2020-09-22 | Facebook, Inc. | Assisting users with personalized and contextual communication content |
-
2022
- 2022-06-17 DE DE112022003216.2T patent/DE112022003216T5/en active Pending
- 2022-06-17 GB GB2400873.2A patent/GB2623037A/en active Pending
- 2022-06-17 WO PCT/US2022/034014 patent/WO2022271555A1/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10515625B1 (en) | 2017-08-31 | 2019-12-24 | Amazon Technologies, Inc. | Multi-modal natural language processing |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2623037A (en) | 2024-04-03 |
| WO2022271555A1 (en) | 2022-12-29 |
| GB202400873D0 (en) | 2024-03-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11842727B2 (en) | Natural language processing with contextual data representing displayed content | |
| US11227585B2 (en) | Intent re-ranker | |
| US11495224B2 (en) | Contact resolution for communications systems | |
| US11081107B2 (en) | Contextual entity resolution | |
| US11514909B2 (en) | Third party account linking for voice user interface | |
| US11004444B2 (en) | Systems and methods for enhancing user experience by communicating transient errors | |
| US11100922B1 (en) | System and methods for triggering sequences of operations based on voice commands | |
| US10089981B1 (en) | Messaging account disambiguation | |
| JP7171911B2 (en) | Generate interactive audio tracks from visual content | |
| DE112020004504T5 (en) | Account connection with device | |
| DE112016004863T5 (en) | Parameter collection and automatic dialog generation in dialog systems | |
| US11830497B2 (en) | Multi-domain intent handling with cross-domain contextual signals | |
| US10606453B2 (en) | Dynamic system and method for content and topic based synchronization during presentations | |
| US11705113B2 (en) | Priority and context-based routing of speech processing | |
| US11657807B2 (en) | Multi-tier speech processing and content operations | |
| WO2025170840A1 (en) | Leveraging external summaries with llms | |
| US11657805B2 (en) | Dynamic context-based routing of speech processing | |
| US12204866B1 (en) | Voice based searching and dialog management system | |
| DE112022003216T5 (en) | Early call for context data processing | |
| CN113593543B (en) | Intelligent loudspeaker voice service system, method, device and equipment | |
| US12211493B2 (en) | Early invocation for contextual data processing | |
| Griol et al. | Integration of context-aware conversational interfaces to develop practical applications for mobile devices | |
| CN106815288A (en) | A kind of video related information generation method and its device | |
| CN121210690A (en) | Search result prediction method, apparatus, device, medium and program product | |
| CN120045938A (en) | Label generation method, device, equipment, storage medium and program product |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R012 | Request for examination validly filed |