[go: up one dir, main page]

DE112022003216T5 - Early call for context data processing - Google Patents

Early call for context data processing Download PDF

Info

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
Application number
DE112022003216.2T
Other languages
German (de)
Inventor
Ponnu Jacob
Adam Kalman
Uday Kumar Kollu
Ruiqi Luo
Xi Chen
Jingqian Zhao
Yunqiang Zhu
Prathap Ramachandra
Krupal Maddipati
Charlotte Alizerine Dzialo
Wenbo YAN
Liu Yang
Mohammad Alnuaimat
Meng Xie
Nalledath P. Vinodkrishnan
Adriano Devillaine
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/304,720 external-priority patent/US12211493B2/en
Priority claimed from US17/304,714 external-priority patent/US11657805B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of DE112022003216T5 publication Critical patent/DE112022003216T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue

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: US-Anmeldung Nr. Titel Anmeldetag 17/304,714 DYNAMIC CONTEXT-BASED ROUTING OF SPEECH PROCESSING 24. Juni 2021 17/304,720 EARLY INVOCATION FOR CONTEXTUAL DATA PROCESSING 24. Juni 2021 The following applications are incorporated herein by reference and made a part of this specification: US Application No. title Registration date 17/304,714 DYNAMIC CONTEXT-BASED ROUTING OF SPEECH PROCESSING 24 June 2021 17/304,720 EARLY INVOCATION FOR CONTEXTUAL DATA PROCESSING 24 June 2021

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 in 1 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.
Embodiments of various inventive features will now be described with reference to the following drawings: In the drawings, reference numerals may be reused to indicate correspondence between designated elements. The drawings are provided to illustrate exemplary embodiments described herein and are not intended to limit the scope of the present disclosure.
  • 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 the 1 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

1 ist ein schematisches Diagramm einer veranschaulichenden Netzwerkumgebung, in der ein Benutzer 104 eine Äußerung 106 macht, ein oder mehrere sprachgestützte Vorrichtungen 102 die Äußerung 106 erkennen und ein Sprachverarbeitungssystem 100 die Bedeutung der Äußerung 106 bestimmt - und als Reaktion darauf eine Maßnahme durchführt. 1 is a schematic diagram of an illustrative network environment in which a user 104 makes an utterance 106, one or more voice-assisted devices 102 recognize the utterance 106, and a speech processing system 100 determines the meaning of the utterance 106 - and takes an action in response.

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 device 102 may include one or more microphones used to capture the user's speech, such as utterance 106, one or more speakers used to reproduce speech (e.g., computer synthesized dialogue), or others Content used, one or more advertisements used to display content, etc. The voice-assisted device 102 may also be referred to as a user computing device or user device. In some embodiments, the voice-assisted device 102 may be portable or mobile. For example, the voice-enabled device 102 may be a handheld device or other mobile device, such as a cell phone or tablet computer. In some embodiments, the voice-assisted device 102 may be designed to operate from a relatively fixed location. The voice-enabled device may, for example, be a speaker configured with audio input capabilities and network access (e.g., a “smart speaker”), a display configured with audio input capabilities and network access (e.g., a “smart display”), or be another electronic device. The voice processing system 100 can process audio signals received from the voice-assisted device 102 and formulate responses for the user 104. The speech processing system 100 may include various components for providing the features described herein. In some embodiments, the speech processing system 100 may include an ASR system 202 to process audio signals or other audio data and generate text data representing user utterances. The speech processing system 100 may also include an NLU system 204 to process text data and generate semantic representations of the user's utterances. The speech processing system 100 may also include a system of domains 206, each containing or managing one or more applications 282 to respond to or otherwise respond to user statements, such as providing requested content, performing requested operations, and the like. Advantageously, individual domains 206 (or certain subsets thereof) may be assigned to a corresponding intra-domain routing system 212 to determine whether specific utterance meaning hypotheses generated by the NLU system 204 can be processed by applications 282 of the corresponding domain 206. The speech processing system 100 may also include a context data management system 214 to manage the collection, generation, and provision of context data to the intra-domain routing system(s) 212 for use in routing decisions, generating responses, etc. The decisions made by the intra-domain routing system 212 may be used by a cross-domain routing system 210 to manage the routing of utterances to individual domains 206 or applications 282.

Die beispielhaften Systeme und Komponenten des in 1 gezeigten Sprachverarbeitungssystems 100 dienen lediglich der Veranschaulichung und sollen nicht einschränkend sein. In einigen Ausführungsformen kann ein Sprachverarbeitungssystem 100 weniger, zusätzliche und/oder alternative Komponenten und Datenspeicher aufweisen. Eine spezifische, detaillierte beispielhafte Ausführungsform des Sprachverarbeitungssystems 100 ist in 2 gezeigt und wird nachfolgend ausführlicher beschrieben.The exemplary systems and components of the 1 are for illustrative purposes only and are not intended to be limiting. In some embodiments, a speech processing system 100 may include fewer, additional, and/or alternative components and data storage. A specific, detailed exemplary embodiment of the speech processing system 100 is shown in 2 and is described in more detail below.

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 voice processing system 100 may be implemented on one or more physical server computing devices that provide computing services and resources to end user devices, such as voice-enabled devices 102. In some embodiments, the speech processing system 100 (or individual components thereof, such as the ASR system 202, the NLU system 204, the domain systems 206, the cross-domain routing system 210, the intra-domain routing systems 212, the context data management system 214, etc .) be implemented on one or more host devices, such as blade servers, midrange computing devices, mainframe computers, desktop computers computers or any other computing device configured to provide computing services and resources. For example, a single host device may execute one or more ASR systems 202, NLU systems 204, domain systems 206, cross-domain routing system 210, intra-domain routing systems 212, context data management system 214, or combinations thereof, etc. The speech processing system 100 may include any number of such hosts.

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 voice processing system 100 may be implemented as web services that may be consumed over one or more communications networks. In further embodiments, the speech processing system 100 (or individual components thereof) is provided by one or more virtual machines implemented in a hosted computing environment. The hosted computing environment may include one or more rapidly provisioned and shared computing resources, such as computing devices, networking devices, and/or storage devices. A hosted computing environment can also be referred to as a “cloud” computing environment.

Wie in 1 gezeigt, kann ein Benutzer 104 unter Verwendung einer Äußerung 106 mit einer sprachgestützten Vorrichtung 102 interagieren. Die sprachgestützte Vorrichtung 102 kann über ein oder mehrere Mikrofone Töne erkennen, die der Äußerung 106 des Benutzers entsprechen. In gewissen Implementierungen kann die Äußerung 106 ein Aktivierungswort oder einen anderen auslösenden Ausdruck oder ein anderen auslösenden Anlass (z. B. „Computer!“) beinhalten oder kann dieses der Äußerung vorangehen, das durch den Benutzer 104 ausgesprochen wird, um anzugeben, dass die nachfolgende Ansprache des Benutzers (z. B. „Wo gibt es Kaffee?“) eine an eine Vorrichtung gerichtete Ansprache ist (z. B. eine Ansprache, die durch die sprachgestützte Vorrichtung 102 und/oder das Sprachverarbeitungssystem 100 empfangen und verarbeitet werden soll). Die sprachgestützte Vorrichtung 102 kann das Aktivierungswort erkennen und mit dem Streamen von Audiosignalen an das Sprachverarbeitungssystem 100 beginnen. In einigen Fällen kann die sprachgestützte Vorrichtung 102 in einem Modus mit geringer Funktionalität betrieben werden und Töne unter Verwendung der ASR-Verarbeitung analysieren. Wenn das Aktivierungswort erkannt wird (z. B. unter Verwendung von ASR, gewissen Schlüsselwörtern (Keyword Spotting) usw.), kann die sprachgestützte Vorrichtung 102 damit beginnen, das Audiosignal (und optional andere Daten) an das Sprachverarbeitungssystem 100 zu streamen. Das Aktivierungswort kann ein reserviertes Schlüsselwort sein, das lokal durch die sprachgestützte Vorrichtung 102 erkannt wird, wie etwa durch die Verwendung eines Ausdrucksdetektors, der durch die Mikrofone der sprachgestützten Vorrichtung 102 erzeugte Audiosignale analysiert, um das Aktivierungswort zu erkennen, was im Allgemeinen ein vordefiniertes Wort, ein vordefinierter Satzteil oder ein anderer Ton sein kann. Ein solcher Ausdrucksdetektor kann beispielsweise unter Verwendung der Keyword-Spotting-Technologie implementiert sein.As in 1 , a user 104 may interact with a voice-enabled device 102 using an utterance 106. The voice-enabled device 102 may detect, via one or more microphones, sounds corresponding to the user's utterance 106. In certain implementations, the utterance 106 may include, or may precede the utterance, a wake word or other triggering phrase or event (e.g., "computer!") spoken by the user 104 to indicate that the user's subsequent utterance (e.g., "Where's the coffee?") is a device-directed utterance (e.g., a utterance to be received and processed by the voice-enabled device 102 and/or the speech processing system 100). The voice-enabled device 102 may detect the wake word and begin streaming audio signals to the speech processing system 100. In some cases, the voice-assisted device 102 may operate in a low-functionality mode and analyze sounds using ASR processing. When the wake word is detected (e.g., using ASR, certain keywords (keyword spotting), etc.), the voice-assisted device 102 may begin streaming the audio signal (and optionally other data) to the speech processing system 100. The wake word may be a reserved keyword that is detected locally by the voice-assisted device 102, such as through the use of an expression detector that analyzes audio signals generated by the microphones of the voice-assisted device 102 to detect the wake word, which may generally be a predefined word, phrase, or other sound. Such an expression detector may be implemented, for example, using keyword spotting technology.

In dem in 1 veranschaulichten Beispiel gibt der Benutzer 104 im Anschluss an ein Aktivierungswort eine Äußerung 106 aus, die die sprachgestützte Vorrichtung 102 erfasst. Die sprachgestützte Vorrichtung 102 kann ein Audiosignal erzeugen, das die Äußerung 106 darstellt. Wie gezeigt, kann die sprachgestützte Vorrichtung 102 das Audiosignal an das Sprachverarbeitungssystem 100 senden. In einigen Ausführungsformen kann die sprachgestützte Vorrichtung 102 ferner zusätzliche Metadaten bestimmen und/oder generieren und an das Sprachverarbeitungssystem 100 senden, die zum Bestimmen verschiedener Begriffe in der Äußerung 106 verwendet werden können. Die Arten von Metadaten können beispielsweise Daten bezüglich der auf einer Anzeigekomponente (oder einer anderen Anzeige) aktuell angezeigten Informationen, Sensordaten, die den aktuellen Standort und/oder die aktuelle Umgebung der sprachgestützten Vorrichtung 102 darstellen, Schnappschüsse, die die Vorrichtungszustände der sprachgestützten Vorrichtung 102 angeben, Daten über die sprachgestützte Vorrichtung 102 (z. B. eindeutige Kennung, Version) usw. beinhalten. Daten bezüglich der aktuell angezeigten Informationen können Kennungen von Inhaltselementen, die aktuell auf dem Bildschirm angezeigt werden, Kennungen von Elementen in einer Liste usw. beinhalten. Sensordaten können Daten umfassen, die durch verschiedene Sensoren und andere Komponenten der sprachgestützten Vorrichtung generiert werden, wie etwa Daten, die Geolokalisierung, Umgebungstemperatur, Umgebungsbeleuchtung, Vorrichtungsausrichtung, Vorrichtungsbewegung und dergleichen darstellen. Ein Schnappschuss kann Vorrichtungszustände umfassen, die aktuelle Vorgänge der sprachgestützten Vorrichtung 102 angeben, bevor, während und/oder nachdem die Äußerung 106 durch die sprachgestützte Vorrichtung 102 erkannt wird/wurde. Vorrichtungszustände der sprachgestützten Vorrichtung 102 können Maßnahmen darstellen, wie zum Beispiel das Führen eines Telefonats, das Ausgeben eines Alarmtons, das Streamen von Audio (z. B. Musik, Hörbücher usw.), das Führen eines Dialogs mit dem Benutzer 104, das Durchführen von Online-Suchen, die Steuerung von Geräten in einem Haus oder jede andere Art von Aktivität, für deren Durchführung eine sprachgestützte Vorrichtung 102 konfiguriert sein kann. Daten über die sprachgestützte Vorrichtung 102 können eine Vorrichtungskennung, eine Versionskennung, Daten bezüglich Komponenten und/oder Fähigkeiten der sprachgestützten Vorrichtung 102 (z. B. ob die Vorrichtung einen Anzeigebildschirm, einen Touchscreen, einen Lautsprecher, ein Mikrofon, eine Tastatur usw. aufweist), Daten bezüglich einer für die sprachgestützte Vorrichtung 102 verfügbaren Netzwerkverbindung, Geolokalisierungs- oder lokale Standortdaten bezüglich des Standorts der sprachgestützten Vorrichtung 102 usw. beinhalten.In the 1 In the example illustrated, following an activation word, the user 104 issues an utterance 106 that the voice-assisted device 102 captures. The voice-assisted device 102 may generate an audio signal representing the utterance 106. As shown, the voice-assisted device 102 may send the audio signal to the speech processing system 100. In some embodiments, the voice-assisted device 102 may further determine and/or generate and send to the speech processing system 100 additional metadata that may be used to determine various terms in the utterance 106. The types of metadata may include, for example, data regarding information currently displayed on a display component (or other display), sensor data representing the current location and/or environment of the voice-assisted device 102, snapshots indicating device states of the voice-assisted device 102, data about the voice-assisted device 102 (e.g., unique identifier, version), etc. Data regarding the currently displayed information may include identifiers of content items currently displayed on the screen, identifiers of items in a list, etc. Sensor data may include data generated by various sensors and other components of the voice-enabled device, such as data representing geolocation, ambient temperature, ambient lighting, device orientation, device movement, and the like. A snapshot may include device states indicating current operations of the voice-enabled device 102 before, during, and/or after the utterance 106 is recognized by the voice-enabled device 102. Device states of the voice-enabled device 102 may represent actions such as making a phone call, sounding an alarm, streaming audio (e.g., music, audiobooks, etc.), engaging in dialogue with the user 104, performing online searches, controlling devices in a home, or any other type of activity that a voice-enabled device 102 may be configured to perform. Data about the voice-assisted device 102 may include a device identifier, a version identifier, data regarding Components and/or capabilities of the voice-enabled device 102 (e.g., whether the device has a display screen, a touchscreen, a speaker, a microphone, a keyboard, etc.), data regarding a network connection available to the voice-enabled device 102, geolocation or local location data regarding the location of the voice-enabled device 102, etc.

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 speech processing system 100 when an utterance 106 is recognized, in other examples, the speech processing system 100 may also store indications of device states rather than receiving them each time an audio signal is received. For example, the speech processing system 100 may receive an indication that the user 104 has set an alarm and know when the alarm will sound. Therefore, once the alarm sounds, the speech processing system 100 may already have stored the device state and may not receive the snapshots each time an utterance 106 is recognized. Similarly, some or all of the metadata may be stored in the speech processing system 100 before the utterance 106 is captured by the voice-assisted device 102.

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 user 104 may make an utterance 106 such as "Where's coffee?" At [A], an audio signal representing the user's utterance 106 may be transmitted to the speech processing system 100 for processing and response. Based solely on the words spoken, the utterance 106 may be ambiguous: it could be a request for a physical cafe nearby; it could be a query about the location of coffee to a physical store; it could be a query for an online coffee purchase. Any of these interpretations, and possibly others, may be plausible. Traditional systems can rank the possible interpretations, select the top ranked interpretation, and pass the query to an application to take an associated action. However, without considering the contextual data associated with the utterance, routing the query to an application may not be appropriate. For example, if a user is in a store that sells coffee, the second interpretation (it is a query about the location of coffee in a physical store) may be the most likely correct interpretation, while the third interpretation (it is a Query about purchasing coffee online) may be the most likely correct interpretation when the user is at home and viewing a shopping website. Different applications can be used to take actions in response to these different interpretations. By taking into account contextual information, such as the user's current location, the user's current activities and/or interactions with the voice-enabled device 102, etc., the system 100 can make dynamic routing determinations that vary from user to user and even by query to query, even if they are received from the same user.

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 ASR system 202 may generate ASR results using the audio signal. As an illustration, the ASR results may include one or more transcripts or other sets of text data representing words in the utterance 106. In some examples, the ASR system 202 may generate ASR confidence score data representing the likelihood that a specific set of words of the text data matches the words spoken in the utterance 106. For example, the ASR system 202 may determine a score representing a confidence or probability that a specific word matching the sounds would be included at the specified location in the sentence (e.g., using a language or grammar model). Thus, each possible textual interpretation of the spoken utterance 106 (hypothesis) is associated with an ASR confidence score. The ASR system 202 may send the ASR results to the NLU system 204 at [C].

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 NLU system 204 may generate NLU result data, such as a semantic representation of the utterance 106, using the acquired ASR results. In the present example, as described above, the utterance "Where's coffee?" Query for the location of a physical cafe, as a query for the location of coffee in a physical store, as a query for coffee in an online store, etc. The NLU system 204 may generate an N-best list of interpretations, including some or all of these interpretations and possibly others. The NLU system 204 may provide the NLU results to the cross-domain routing system 210 at [E]. At [B'], the context data management system 214 may acquire and/or generate context data at various integration points during the ingest, ASR, and NLU processes. Contextual data collection is shown using the label [B' - F'] to indicate the parallel or otherwise asynchronous operation with respect to other shown and processes described, including those labeled [B] - [F]. For example, the context data management system 214 may obtain geolocation data representing the current geographic location of the voice-enabled device 102. This data may be acquired by the system 100 with the audio signal at [A] and then provided to the context data management system 214, requested by the system 100 upon receipt of the audio signal and then provided to the context data management system 214, or otherwise obtained by the context data management system 214. In some embodiments, the geolocation data may be processed by the context data management system 214 in parallel with ASR processing at [B], provision of ASR results at [C], NLU processing at [D], and provision of NLU results at [E]. or obtained at another time (e.g. the data may be available from the processing of a previous statement). The context data management system 214 may include other context data items before, in parallel with, or after ASR processing at [B], providing ASR results at [C], NLU processing at [D], providing NLU results at [E ] and/or at various other times (e.g. during processing of a previous utterance). For example, the context data management system 214 may include data regarding content presented by the voice-enabled device 102 when the utterance 106 is made (e.g., web pages, list items, etc.), partial or full ASR results, partial or full NLU results, etc . gain. As another example, the context data management system 214 may perform operations based on the ASR and/or NLU results, such as determining a difference in score between highest ranked NLU results, performing an initial classification of the utterance 106 as having a previous interaction with the system 100 related or unrelated, generating encodings of portions of NLU partial results, etc. These contextual data elements may be stored or otherwise made available to routing confidence providers for use in routing determinations and/or generating a response to the utterance .

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 cross-domain routing system 210 may determine the domain(s) from which to generate a routing confidence assessment request (e.g., a request to determine whether the domain or a application of which is the correct entity to respond to the utterance). This request may be referred to as a “confidence request” or a “fulfillment request.”

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 cross-domain routing system 210 may maintain or otherwise access a mapping of which domain(s) is/are configured to handle or otherwise associated with the intent(s) that the NLU system 204 is configured to generate. The cross-domain routing system 210 may receive from the NLU system 204 a list of one or more intentions for the current utterance 106, such as an N-best list. The cross-domain routing system 210 may traverse the N-best list or a portion thereof and use the mapping to identify the domain(s) associated with the intention(s). The inter-domain routing system 210 may then generate a confidence query for each identified domain and send the query to the intra-domain routing system 212 associated with each identified domain. A confidence query may include intent data representing one or more intents associated with the domain to which the query is sent. The query may include additional information, such as score or ranking data indicating the relative likelihood that the intent is the correct intent, as assessed by the NLU system 204.

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 intra-domain routing system 212 for a shopping domain: an intent corresponding to a query for a location of a physical cafe, an intent corresponding to a query for the location of coffee in a physical store, and an intent corresponding to a query for coffee in an online store. Additional intents may be provided to one or more other intra-domain routing systems 212 for other domains. For example, the N-best list of intents received by the inter-domain routing system 210 at [E] may include the three intents described above for the shopping domain, an intent for a hospitality domain (e.g., to find out if there is coffee in a hotel room), an intent for a video content domain (e.g., to find a video with the word "coffee" in the title). The cross-domain routing system 210 may generate confidence requests for these two other domains in addition to the confidence request generated for the shopping domain. In some embodiments, the confidence requests sent to the intra-domain routing systems 212 for the different domains may be made and/or processed serially, or in some embodiments, the requests may be made and/or processed in parallel or otherwise asynchronously.

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 intra-domain routing system 212 may obtain context data for use in routing confidence evaluations upon receipt of each confidence request. The context data may include, but is not limited to, data regarding previous utterances of the current session, data regarding utterances of previous sessions, data regarding items presented on a screen when the current utterance was made, data regarding the domain(s) associated with items presented on a screen during the current utterance, data regarding entities recognized during NLU processing, data regarding entities resolved during NLU processing, data regarding user feedback during the current or previous session, data regarding the user's purchase history, data regarding the user's interaction history, data regarding specified or learned user preferences, data regarding the user's accessibility history and/or preferences, geolocation data, data regarding device capabilities, data regarding device characteristics, data regarding the user's digital content library items, data regarding user subscriptions, data regarding the user's purchase history, directory data regarding the presence and/or absence of domain terms, other data, or combinations thereof. The example context data elements described herein are for illustrative purposes only and are not intended to be limiting, required, or exhaustive.

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 intra-domain routing system 212 for the shopping domain may obtain location data representing the geographic location of the voice-enabled device 102. As another example, the intra-domain routing system 212 for the shopping domain may obtain data representing content that was displayed on a screen of the voice-enabled device 102 when the utterance 106 was made.

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 intra-domain routing system 212 may generate one or more routing confidence scores upon receipt of each confidence request. In some embodiments, an intra-domain routing system 212 may employ any number of application-specific confidence providers to make judgments about which subdomains (e.g., applications) are appropriate targets for a particular utterance. For example, the intra-domain routing system 212 for the shopping domain may request routing confidence scores from each of three application-specific routing confidence providers: a first routing confidence provider for the physical store location application, a second confidence provider for a product location application Store and a third routing confidence provider for an online shopping application. Requests for routing confidence assessments may be made and/or processed serially, or in some embodiments, the requests may be made and/or processed in parallel or otherwise asynchronously. In some embodiments, requests for routing confidence scores may include the various contextual data elements, if any, used by the respective application-specific routing confidence providers. For example, the routing confidence provider for the physical store location and the in-store product location application may receive contextual data representing the geographic location of the voice-enabled device 102, while the routing confidence provider for the online shopping application may receive contextual data. representing the geographic location and also the content (if any) that was displayed by the voice-enabled device 102 when the utterance 106 was made.

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 cross-domain routing system 210 at [I].

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 device 102 when the utterance 106 was made). This routing confidence provider can generate a relatively low confidence score, indicating a low confidence that an online shopping application is the correct application to handle the intent.

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 intra-domain routing system 212 may compare or otherwise analyze the various routing confidence scores (e.g., confidence scores) generated by the routing confidence providers. Based on the analysis, the intra-domain routing system 212 may determine which application in the domain (if any) is likely to be the best application to handle the intent. In this example, the intra-domain routing system 212 may determine that the store aisle location application is the best application in the shopping domain to serve the intent.

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 inter-domain routing system 210 may determine a domain, sub-domain, and/or application assignment based on the routing confidence scores received from one or more intra-domain routing systems 212. In the present example, the spoken question "Where is coffee?" will be routed to the store aisle location application based on the relatively high confidence score of this application compared to the other confidence scores for other applications.

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 application 282 may generate a response to the utterance 106. The response may include performing a function, generating a synthesized spoken response, generating a visual response, taking another action, or any combination thereof. For example, performing a function may include initiating a purchase transaction. Generating a synthesized response may include providing requested information in audio form. Generating a visual response may include displaying requested information on a visual display. In the present example, the response may be a synthesized spoken response (e.g., "Coffee is in aisle 20"), a visual response (e.g., a map of the store with the location of the coffee highlighted), or any combination thereof.

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 voice processing system 100 may transmit the generated response, if any, to the voice-assisted device 102, and the voice-assisted device may present the response as needed.

Bezugnehmend nun auf 2 werden verschiedene Beispiele von Komponenten einer Ausführungsform der sprachgestützten Vorrichtung 102 und einer Ausführungsform der Architektur des Sprachverarbeitungssystems 100 aus 1 beschrieben. Eine sprachgestützte Vorrichtung 102 kann jeder geeigneten Art von elektronischer Vorrichtung entsprechen, die unter anderem Desktop-Computer, mobile Computern (z. B. Laptops, Ultrabooks), Mobiltelefone, Smartphones, Tablets, Fernseher, Set-Top-Boxen, Smart-TVs, persönliche Anzeigevorrichtungen, großformatige Anzeigevorrichtungen (z. B. Werbetafeln, Straßenschilder usw.), persönliche digitale Assistenten („PDAs“), Spielekonsolen und/oder -vorrichtungen, intelligente Möbel, intelligente Haushaltsgeräte (z. B. Kühlschränke, Mikrowellen usw.), intelligente Fahrzeuge (z. B. Autos, Lastwagen, Motorräder usw.), intelligente Transportvorrichtungen (z. B. Boote, Schiffe, Züge, Flugzeuge usw.), tragbare Vorrichtungen (z. B. Uhren, Anstecknadeln/Broschen, Kopfhörer, Brillen, Headsets usw.) und/oder intelligente Zubehörteile (z. B. Glühbirnen, Lichtschalter, elektrische Schalter usw.) einschließen. In einigen Ausführungsformen kann eine sprachgestützte Vorrichtung 102 relativ einfach oder grundlegend aufgebaut sein, sodass keine oder nur eine minimale Anzahl mechanischer Eingabeoptionen (z. B. Tastatur, Maus, Trackpad) oder Berührungseingabe(n) (z. B. Touchscreen, Tasten) beinhaltet sind. Beispielsweise kann eine sprachgestützte Vorrichtung 102 in der Lage sein, Audio zu empfangen und auszugeben, und kann eine Stromversorgung, Verarbeitungsfähigkeiten, Datenspeicher-/Speicherfähigkeiten und Kommunikationsfähigkeiten beinhalten. In anderen Ausführungsformen kann eine sprachgestützte Vorrichtung 102 jedoch eine oder mehrere Komponenten zum Empfangen mechanischer Eingaben oder Berührungseingaben beinhalten, wie etwa einen Touchscreen und/oder eine oder mehrere Tasten.Referring now to 2 Various examples of components of an embodiment of the speech-based device 102 and an embodiment of the architecture of the speech processing system 100 of 1 A voice-enabled device 102 may correspond to any suitable type of electronic device, including, but not limited to, desktop computers, mobile computers (e.g., laptops, ultrabooks), cell phones, smartphones, tablets, televisions, set-top boxes, smart TVs, personal displays, large format displays (e.g., billboards, street signs, etc.), personal digital assistants (“PDAs”), gaming consoles and/or devices, smart furniture, smart home appliances (e.g., refrigerators, microwaves, etc.), smart vehicles (e.g., cars, trucks, motorcycles, etc.), smart transportation devices (e.g., boats, ships, trains, airplanes, etc.), wearable devices (e.g., watches, pins/brooches, headphones, glasses, headsets, etc.), and/or smart accessories (e.g., light bulbs, light switches, electrical switches, etc.). In some embodiments, a voice-assisted device 102 may be relatively simple or basic, including no or only a minimal number of mechanical input options (e.g., keyboard, mouse, trackpad) or touch input(s) (e.g., touchscreen, buttons). For example, a voice-assisted device 102 may be capable of receiving and outputting audio, and may include power, processing capabilities, data storage/memory capabilities, and communication capabilities. However, in other embodiments, a voice-assisted device 102 may include one or more components for receiving mechanical or touch inputs, such as a touch screen and/or one or more buttons.

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 device 102, in one embodiment, may include a minimal number of input mechanisms (e.g., a power switch) such that the functionality of a voice-enabled device 102 is solely or primarily through audio input and audio output. For example, a voice-enabled device 102 may include or communicate with one or more microphones that listen for an activation word by continuously monitoring local audio. In response to detecting the activation word, a voice-enabled device 102 may connect to the speech processing system 100, send audio data to the speech processing system 100, and wait for or receive a response from the speech processing system 100. However, in some embodiments, non-voice/sound-enabled devices may also communicate with the speech processing system 100. For example, in response to pressing a button or touch screen, or pressing and holding a button or touch screen, a microphone associated with a voice-enabled device 102 may begin recording local audio, connect to the speech processing system 100, send audio data representing the captured audio to the speech processing system 100, and wait for or receive a response from the speech processing system 100 and/or wait for an action to occur.

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 device 102 may include one or more processors 220, data storage/memory 222, communication circuitry 224, one or more microphones 226 or other audio input devices (e.g., transducers), one or more speakers 228 or other audio output devices, one or more cameras 230 or other image capture components, and a display component 232. However, one or more additional components may be included in a voice-enabled device 102 and/or one or more components may be omitted. For example, a voice-enabled device 102 may also include a power supply or a bus connector. As yet another example, a voice-enabled device 102 may include one or more additional input and/or output mechanisms, such as one or more sensors, one or more buttons, or one or more switches or knobs. Moreover, while a voice-enabled device 102 may include multiple instances of one or more components, for simplicity, only one of each component has been shown.

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 device 102 may correspond to or include the functionality of a manually activated device. A manually activated device, as described herein, may correspond to a device that can be activated in response to a manual input (e.g., pressing a button, touching a portion of a touch screen, performing an action on a device). For example, a tap-to-talk device is a type of manually activated device. For example, such tap-to-talk devices are capable of acquiring and outputting audio data in response to the pressing of a key.

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 device 102 as well as facilitating communication between various components within a voice-enabled device 102. In some embodiments, the processor(s) 220 may include a central processing unit (“CPU”), a graphic processing unit (“GPU”), one or more microprocessors, a digital signal processor, or any other type of processor, or any combination thereof. In some embodiments, the functionality of the processor(s) 202 may be performed by one or more hardware logic components, including, but not limited to, field-programmable gate arrays (“FPGAs”), application specific integrated circuits (“ASICs”), application specific standard products (“ASSPs”), system-on-chip systems (“SOCs”), and/or complex programmable logic devices (“CPLDs”). In addition, each of the processor(s) 220 may include its own local memory that may store program systems, program data, and/or one or more operating systems. However, processor(s) 220 may run an operating system (“OS”) for voice-enabled device 102 and/or one or more firmware applications, media applications, and/or resident applications. In some embodiments, processor(s) 220 may run a local client script to read and render content received from one or more websites. For example, processor(s) 220 may (en) 220 execute a local JavaScript client to render HTML or XHTML content received from a particular URL accessed by a voice-enabled device 102. Data storage/memory 222 may include one or more types of storage media, such as any volatile or non-volatile memory or removable or non-removable memory suitably implemented to store data for a voice-enabled device 102. For example, data may be stored using computer-readable instructions, data structures, and/or program systems. Various types of data storage/memory may include, but are not limited to, hard disks, solid state drives, flash memory, non-volatile memory (e.g., ROM), electronically erasable programmable read-only memory ("EEPROM"), CD-ROMs, digital versatile disk ("DVD") or other optical storage media, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, RAID storage systems, or other types of storage or combinations thereof. Additionally, storage/memory 222 may be implemented as computer-readable storage media (“CRSM”), which may be any available physical medium that can be accessed by processor(s) 220 to execute one or more instructions stored in storage/memory 222. In some embodiments, one or more applications (e.g., games, music, video, calendar, lists, etc.) may be executed by processor(s) 220 and stored in memory 222.

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 1), über ein Netzwerk 150, wie etwa das Internet, an das Sprachverarbeitungssystem 100 unter Verwendung einer beliebigen Anzahl von Kommunikationsprotokollen übertragen werden, wie etwa Transfer Control Protocol und Internet Protocol („TCP/IP“) (z. B. jedes der Protokolle, die in jeder der TCP/IP-Ebenen verwendet werden), Hypertext Transfer Protocol („HTTP“), WebRTC, SIP, Wireless Application Protocol („WAP“) usw. Die Kommunikationsschaltung 224 kann ein beliebiges Kommunikationsprotokoll verwenden, wie etwa eines der zuvor erwähnten beispielhaften Kommunikationsprotokolle. In einigen Ausführungsformen kann eine sprachgestützte Vorrichtung 102 eine oder mehrere Antennen beinhalten, um die drahtlose Kommunikation mit einem Netzwerk unter Verwendung verschiedener drahtloser Technologien (z. B. Wi-Fi, Bluetooth, Hochfrequenz usw.) zu erleichtern. In einer weiteren Ausführungsform kann eine sprachgestützte Vorrichtung 102 einen oder mehrere Universal Serial Bus („USB“)-Ports, einen oder mehrere Ethernet- oder Breitband-Ports und/oder jede andere Art von festverdrahtetem Zugangsport beinhalten, sodass die Kommunikationsschaltung 224 einer sprachgestützten Vorrichtung 102 ermöglicht, mit einem oder mehreren Kommunikationsnetzwerken zu kommunizieren.In some embodiments, the data store/memory 222 may store voice biometric data associated with one or more individuals. For example, a person operating a voice-enabled device 102 may have a registered user account or other profile information in the voice processing system 100 (e.g., in a user data store 216). In some embodiments, a voice-enabled device 102 may be associated with a group account, and different people may have user accounts that operate under the group account's rules and configurations. As an illustrative example, a voice-enabled device 102 may be associated with a first group account in the voice processing system 100, where the first group account is for a family that lives in a household in which a voice-enabled device 102 is located. Each family member may also have a user account associated with the first group account (e.g., a parent, a child, etc.), and therefore each user account may gain some or all of the rights of the first group account. For example, a voice-enabled device 102 may have a first group account in the voice processing system 100 registered to a specific family or group, and each parent and child of the family may have their own user account registered under the parent's registered account. In an illustrative embodiment, voice biometric data for each individual may be stored by that individual's corresponding user account. The voice biometric data may, for example, correspond to a “voice profile” or “voice model” of a specific person, which may be a graphical representation of a person's voice including a frequency decomposition of that person's voice. The communication circuit 224 may include any circuitry that allows or enables one or more components of a voice-enabled device 102 to communicate with each other and/or with one or more additional devices, servers, and/or systems. For example, communication circuitry 224 may facilitate communication between a voice-enabled device 102 and the voice processing system 100. As an illustrative example, audio data representing an utterance (e.g., Utterance 106 in 1 ), over a network 150, such as the Internet, to the voice processing system 100 using any number of communication protocols, such as Transfer Control Protocol and Internet Protocol ("TCP/IP") (e.g., any of the protocols, used in each of the TCP/IP layers), Hypertext Transfer Protocol (“HTTP”), WebRTC, SIP, Wireless Application Protocol (“WAP”), etc. The communication circuit 224 may use any communication protocol, such as any of the foregoing mentioned exemplary communication protocols. In some embodiments, a voice-enabled device 102 may include one or more antennas to facilitate wireless communication with a network using various wireless technologies (e.g., Wi-Fi, Bluetooth, radio frequency, etc.). In another embodiment, a voice-enabled device 102 may include one or more Universal Serial Bus ("USB") ports, one or more Ethernet or broadband ports, and/or any other type of hard-wired access port such that the communications circuitry 224 of a voice-enabled device 102 enables communication with one or more communication networks.

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 device 102 may also include one or more microphones 226 and/or transducers. Additionally or alternatively, one or more microphones located in a separate device may communicate with a voice-assisted device 102 to capture sounds for a voice-assisted device 102. The microphone(s) 226 may be any suitable component that audio signals. For example, the microphone(s) 226 may include one or more sensors for generating electrical signals and circuitry capable of processing the generated electrical signals. In some embodiments, the microphone(s) 226 may include multiple microphones capable of detecting different frequency levels. As an illustrative example, a voice-enabled device 102 may include multiple microphones (e.g., four, seven, ten, etc.) placed at various locations around a voice-enabled device 102 to monitor/capture any audio output in the environment in which a voice-enabled device 102 is located. The various microphones 226 may include some microphones optimized for distant sounds, while some microphones optimized for sounds occurring in the near range of a voice-enabled device 102. In some embodiments, the microphone(s) 226 may begin detecting audio signals only in response to manual input to a voice-enabled device 102. For example, a manually activated device may begin collecting audio data using the microphone(s) 226 in response to user input, such as pressing a button, tapping a touchscreen, or providing a touch input gesture to a touch input component. A voice-enabled device 102 may include one or more speakers 228. In addition, a voice-enabled device 102 may communicate with one or more speakers 228. The speaker(s) 228 may correspond to any suitable mechanism for outputting audio signals. For example, the speaker(s) 228 may include one or more speaker units, speaker enclosures, transducers, speaker assemblies, and/or transducer assemblies that may be capable of emitting audio signals and/or audio content to an environmental area in which the voice-enabled device 102 may be located. In some embodiments, the speaker(s) 228 may include headphones or earbuds that may be wirelessly or wired connected to a voice-assisted device 102 that may be capable of transmitting audio directly to a person.

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 device 102 in the previously mentioned embodiment may then also include one or more speakers 228 to output acoustic responses. In this way, a voice-enabled device 102 may function solely via voice or audio, without the use or need of any input mechanisms or displays, but this is merely exemplary.

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 display component 232 may correspond to a display device and/or touch screen that may be of any size and/or shape and may be located on any portion of a voice-enabled device 102. Various types of displays may include, but are not limited to, liquid crystal displays (“LCD”), monochrome displays, color graphics adapter (“CGA”) displays, enhanced graphics adapter (“EGA”) displays, variable graphics array (“VGA”) displays, or any other type of display or any combination thereof. Additionally, in some embodiments, a touch screen may correspond to a display device having capacitive sensor pads that can detect touch inputs thereon. For example, the display component 232 may correspond to a projected capacitive touch (“PCT”). In some embodiments, the display component 232 may be an optional component for a voice-enabled device 102. For example, a voice-enabled device 102 may not include a display component 232. Such devices, sometimes referred to as "monitorless" devices, may output audio or communicate with a display device to output visible content.

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 display component 232 may be formatted such that contextual entities and lists may be analyzed by the language processing system 100 for list resolution and/or anaphora resolution. Context associated with the displayed content may include entities associated with a voice-enabled device 102, including, but not limited to, foreground entities (e.g., lists of items, detail pages), background entities (e.g., songs, audiobooks), and notification entities. The context data can be structured into context entity slots, list metadata, and any other additional data available. For example, contextual entity slots can correspond to data used for list resolution and/or anaphora resolution. The contextual entity slots can be specified in domain definitions with corresponding values. The list metadata may include list identifiers, element identifiers for elements of a list and absolute positions of the list for a specific element (e.g. a first element of a list, a second element of a list, etc.). Such additional data can include unique identifiers associated with an object, item prices, quantities, and the like.

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 device 102 may include one or more cameras 230 corresponding to one or more suitable image capture components or components capable of capturing one or more images and/or videos. The camera(s) 230 may, in some embodiments, be configured to capture photos, photo sequences, rapid-fire shots (e.g., multiple photos taken in succession during a relatively short period of time), videos, or any other type of image, or any combination thereof. In some embodiments, a voice-enabled device 102 may include multiple cameras 230, such as one or more front-facing cameras and/or one or more rear-facing cameras. In addition, the camera(s) 230 may be configured to detect far-field images (e.g., objects located at a great distance from a voice-enabled device 102) or near-field images (e.g., objects located at a relatively close distance from a voice-enabled device 102). In some embodiments, the camera(s) may be high-definition (“HD”) cameras capable of acquiring images and/or videos at a substantially high resolution (e.g., 720p, 1080p, 1080i, 4K, etc.). In some embodiments, the camera(s) 230 may be optional for a voice-enabled device 102. For example, the camera(s) 230 may be external to and in communication with a voice-enabled device 102. For example, an external camera may be capable of capturing images and/or videos that may then be provided to a voice-enabled device 102 for display and/or processing.

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, display component 232 and/or camera(s) 230 may be optional for voice-enabled device 102. For example, voice-enabled device 102 may operate using audio inputs and may output audio in response or initiate one or more actions in response, and therefore display component 232 and/or camera(s) 230 may not be included. Additionally, in some embodiments, voice-enabled device 102 may not include display component 232 and/or camera(s) 230, but may instead communicate with display component 232 and/or camera(s) 230. For example, voice-enabled device 102 may be connected to a display screen via a Wi-Fi connection (e.g., 802.11 protocol) such that visual content sent to voice-enabled device 102 may be sent to and output through the display screen.

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 device 102 may cause the camera(s) 230 to capture an image.

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 device 102 may communicate with the voice processing system 100 via one or more networks 150. The one or more networks 150 may include any suitable communications technology, such as wired and/or wireless modalities and/or technologies. The networks 150 may be any combination of Personal Area Networks (“PANs”), Local Area Networks (“LANs”), Campus Area Networks (“CANs”), Metropolitan Area Networks (“CANs”). MANs"), extranets, intranets, the Internet, short-range wireless communications networks (e.g. ZigBee, Bluetooth, etc.), wide area networks ("WANs") - centralized and/or distributed - and/or any Include combination, permutation and/or aggregation thereof.

Wie in 2 gezeigt, kann ein Sprachverarbeitungssystem 100 verschiedene Subsysteme, Komponenten und/oder Module beinhalten, die unter anderem ein ASR-System 202, ein NLU-System 204, ein Domänensystem 206, ein TTS-System 208, ein domänenübergreifendes Routing-System 210, ein domäneninternes Routing-System 212, ein Kontextdatenverwaltungssystem 214, einen Benutzerdatenspeicher 216 und einen Verarbeitungsdatenspeicher 218 einschließen. In einigen Ausführungsformen kann das Sprachverarbeitungssystem 100 auch ein Orchestratorsystem (nicht gezeigt) beinhalten, das in der Lage ist, einen oder mehrere Prozesse zu orchestrieren, damit sie durch eines oder mehrere von dem ASR-System 202, dem NLU-System 204, dem Domänensystem 206, dem TTS-System 208, dem domänenübergreifenden Routing-System 210, dem domäneninternen Routing-System 212 sowie eine(m) oder mehrere damit verbundene zusätzliche Komponenten, Vorrichtungen und/oder Systemen durchgeführt werden. Das Sprachverarbeitungssystem 100 kann auch computerlesbare Medien beinhalten, einschließlich unter anderem Flash-Speicher, Direktzugriffsspeicher („R_AM“) und/oder Nur-Lese-Speicher („ROM“). Das Sprachverarbeitungssystem 100 kann auch verschiedene Module beinhalten, die Software, Hardware, Logik, Anweisungen und/oder Befehle für das Sprachverarbeitungssystem 100 speichern, wie etwa ein Lautsprecheridentifikationsmodul („ID“) oder ein beliebiges anderes Modul oder eine beliebige Kombination davon.As in 2 As shown, a speech processing system 100 may include various subsystems, components and/or modules, including, among others, an ASR system 202, an NLU system 204, a domain system 206, a TTS system 208, a cross-domain routing system 210, an intra-domain Routing system 212, a context data management system 214, a user data store 216 and a processing data store 218. In some embodiments, voice ver Processing system 100 also include an orchestrator system (not shown) capable of orchestrating one or more processes to be executed by one or more of the ASR system 202, the NLU system 204, the domain system 206, the TTS System 208, the cross-domain routing system 210, the intra-domain routing system 212 and one or more additional components, devices and / or systems associated therewith. The speech processing system 100 may also include computer-readable media, including, but not limited to, flash memory, random access memory (“ R_AM ”), and/or read-only memory (“ROM”). The voice processing system 100 may also include various modules that store software, hardware, logic, instructions and/or commands for the voice processing system 100, such as a speaker identification module (“ID”) or any other module or any combination thereof.

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 ASR system 202 may be configured to recognize human speech in recognized audio, such as audio captured by a speech-enabled device 102, which may then be transmitted to the speech processing system 100. The ASR system 202, in one embodiment, may include one or more processors 252, data storage/memory 254, and communication circuitry 256. The processor(s) 252, data storage/memory 254, and communication circuitry 256, in some embodiments, may be substantially similar to the processor(s) 220, data storage/memory 222, and communication circuitry 224 described in more detail above; therefore, the foregoing descriptions apply. Additionally, in some embodiments, the ASR system 202 may include an STT system 280. The STT system 280 may employ various speech-to-text techniques.

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 ASR system 202 may transcribe received audio data using the STT system 280 into text data representing the words of speech included in the audio data. The text data may then be used by other components for various purposes, such as executing system commands, entering data, etc. The different ways in which a spoken utterance may be transcribed (i.e., the different hypotheses) may each be assigned a probability or confidence score that indicates the likelihood that a specific set of words matches the words spoken in the utterance. The confidence score may be based on a number of factors, including, for example, the similarity of the sound in the utterance to models of speech sounds (e.g., an acoustic model) and the likelihood that a specific word matching the sounds would be included at the specific location in the sentence (e.g., using a language or grammar model). Thus, each potential textual representation of the spoken utterance (hypothesis) is assigned a confidence score. Based on the factors considered and the assigned confidence score, the ASR system 202 can output the most likely textual representation(s) of the audio data.

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 ASR system 202 may generate result data in the form of, for example, a single textual representation of the language, an N-best list including multiple hypotheses and respective scores, and/or a grid, which may be sent to the NLU system 204 for processing, such as Converting the text into commands for execution, either by a voice-enabled device 102, a voice processing system 100, or by another device, such as a separate device or server, that can perform one or more additional functionalities (e.g., a TV that can output video content).

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 NLU system 204 may be configured to determine an intent of an utterance based on the received audio data. The NLU system 204 may include processor(s) 252, data storage/memory 254, and communication circuitry 256, which in one embodiment may be substantially similar to the processor(s) 220, data storage/memory 222, and communication circuitry 224 of the electronic device 102; therefore, the previous description applies.

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 NLU system 204 may include a named entity recognition (“NER”) system 272 that may be used to identify portions of text that correspond to a named entity that is recognizable by the NLU system 204. A downstream process called named entity resolution 292 may be configured to associate a portion of text with an actual specific known entity. To perform named entity resolution, the system may utilize directory data stored in an entity library store. The directory data can be used for entity resolution, such as matching ASR results with different entities (such as song titles, contact names, etc.). Directories can be associated with a user account or profile of the user account data store 216 and linked to certain domains (e.g. music or shopping) or organized in various other ways.

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 NLU system 204 may accept text input and attempt to perform a semantic interpretation of the text. That is, the NLU system 204 may be configured to determine a meaning of text data (e.g., based on the individual words represented by the text data) and then implement that meaning. In some embodiments, the NLU system 204 may interpret a text string to derive an intention or desired action of the utterance (e.g., utterance 106) as well as the relevant pieces of information in the text that enable completion of an action. For example, if a spoken utterance is processed by the ASR system 202 and outputs the text "Call Mom," the NLU system 204 may determine that an intention of the utterance is to activate a telephone or telephone feature and place a call to one Initiate contact that matches the entity “Mom”. In some embodiments, the NLU system 204 may process multiple text inputs related to the same utterance. For example, if the ASR system 202 outputs N text segments (as part of an N-best list), the NLU system 204 can process all N outputs.

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 NLU system 204 may be configured to analyze and label, mark, or otherwise annotate text. For example, in the text "Call Mom," the word "call" can be marked as a command (e.g., a command to make a phone call), and the word "Mom" can be marked as the specific entity and target of the command (e.g., B. a phone number for the entity that corresponds to “Mom” and is stored in a contact list). Additionally, the NLU system 204 may be used to provide response data in response to queries, for example, using a knowledge base stored in the data store/memory 254 of the NLU system 204 and/or in the data store/memory of the speech processing system 100.

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.
The NER system 272 may parse the query to identify words as subject, object, verb, preposition, etc. based on grammar rules and/or models before resolving named entities. The identified verb may be used by the IC module 274 to identify the intention, which is then used by the NER system 272 to identify frameworks. A framework for a "play" intention may specify a list of slots/fields/placeholders applicable to placing the identified "object," such as, for example, {artist name}, {album name}, {song name}, {application name}, {anaphoric term}, and any object modifier (e.g., a prepositional phrase). The NER system 272 may then search the appropriate fields in the domain-specific and personalized lexicon(s) and attempt to match words and phrases in the query marked as a grammatical object or object modifier with those identified in the database(s). For example, a query of "Play Song 1` by 'Artist 1'" could be parsed and returned as {verb}: "play", {object}: "song 1", {object preposition} "by", and {object modifier}:
  • "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 artist 1", the NER system 272 may search the domain vocabulary for the word "songs" after failing to determine an album name or song name named "songs" by "artist 1". For example, using the object "songs" may match some or all of the songs associated with a specific artist (e.g., "artist 1"). Alternatively, generic words may be checked before the directory data, or both could be tried, potentially yielding two different results.

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“.
The results of natural language understanding processing can be marked or labeled to assign meaning to the query. For example, playing 'Song 1' by Artist 1" might produce the following result:
  • {Intention}: "Play music", {Artist name}: "Artist 1", {Media type}: "Song" and {Song name}: "Song 1." As another example, "Play songs by Artist 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“
The NLU system 204 may generate multiple intention hypotheses to be considered by downstream processes. In some embodiments, the set of intention hypotheses may be arranged in an N-best list of intentions and slots corresponding to the top choices regarding the meaning of an utterance, along with scores for each item. For example, for ASR output data representing the utterance "Play Harry Potter", the NLU system 204 may generate output in the form of an N-best list s of scored intention hypotheses, such as:
  • (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 NLU system 204 may generate scores for intentions and content slots using the text data and other data, such as context data. The scores may indicate how likely it is that individual labels are the correct labels for individual words of the utterance being processed. In the present example, the utterance "Play Harry Potter" includes three words: "Play," "Harry," and "Potter." The individual words may be labeled using a predetermined set of labels, including different labels for the different intentions recognizable by the NLU system 204 and different labels for the content slots corresponding to the different intentions. This process may involve semantic tagging, that is, labeling a word or combination of words according to their type/semantic meaning. The labeling may be performed using a NER model alone or in combination with heuristic grammar rules. The NER model can be built using techniques such as hidden Markov models, maximum entropy models, log-linear models, conditional random fields (“CRFs”), or other models configured to generate label data (e.g., scores, probabilities, etc. for individual labels) using text data and, in some cases, context data.

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 NLU system 204 may include domain-specific recognizers for each of multiple domains, and each of the domain-specific recognizers may include its own NER component 272, IC component 274, etc. For example, can the NLU system 204 includes recognition devices for a shopping domain, a music domain, a video domain and a communication domain.

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 NLU system 204 may also include a slot filler component 290. The slot filler component 290 can take text from slots and modify it to make it easier for downstream components to process the text. The operations of the slot filler component 290 are typically low latency operations that do not involve expensive operations such as referencing a knowledge base. The purpose of the slot filler component 290 is to replace words with other words or values that can be more easily understood by downstream components. For example, if a text interpretation represented in the text data 320 includes the word "tomorrow", the slot filler component 290 may replace the word "tomorrow" with an actual date for downstream processing purposes. Likewise, the word “CD” can be replaced with the word “Album” from the words “Compact Disc”. The replaced words can then be included in the cross-domain N-best list data.

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 application 282, which may be integrated into the same system components or pipeline, or located in a separate device in communication with the NLU system 204 can be located. There may be multiple entity resolution components 292, where a specific entity resolution component 292 may be specific to one or more domains.

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. 10,515,625 , erteilt am 24. Dezember 2019, beschrieben, das durch Bezugnahme hierin aufgenommen wird.The NLU system 204 may generate NLU output data from the N-best list data described above. The NLU output data may include a top-scoring interpretation from the cross-domain N-best list data, or it may be data representing an N-best list of the highest-scoring interpretations. In some embodiments, the NLU system 204 may re-evaluate, influence, or otherwise modify the N-best list data generated by the entity resolution component 292. To this end, the NLU system 204 may consider not only the N-best list data generated by the entity resolution component 292, but also other data. The other data can include many different data. The other data may include, for example, application rating or popularity data. For example, if an application has a particularly high ranking, the NLU system 204 may increase the score of the results associated with that specific application. The other data may also include data about applications that have been specifically activated by the user (as specified in a user account). NLU output data associated with enabled applications may be valued higher than results associated with non-enabled applications. An example of NLU system processing is shown in US Patent No. 10,515,625 , issued December 24, 2019, which is incorporated herein by reference.

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 domain system 206 may correspond to various action-specific applications 282 capable of processing various task-specific actions and/or performing various functionalities related to the user experience. The domain system 206 may further correspond to first-party applications and/or third-party applications capable of performing various tasks or actions or performing various functionalities. For example, based on the context of the audio received from a voice-enabled device 102, the speech processing system 100 may execute a certain application 282 to generate a response or obtain response data, which in turn may be communicated back to a voice-based device 102 and/or to another electronic device (e.g., a television). The domain system 206 may also include processor(s) 252, data storage/memory 254, and communication circuitry 256. In some embodiments, an application 282 of the domain system 206 may be written in various computer languages, such as JavaScript and Java.

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/memory 254, communication circuitry 256, and a speech synthesizer 284.

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 cross-domain routing system 210 may manage the routing of utterances to the appropriate domain, as described in more detail below. The cross-domain routing system 210 may also include processor(s) 252, data store/memory 254, communications circuitry 256, and speech synthesizer 284.

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 intra-domain routing system 212 may manage the routing of utterances within a particular domain to the appropriate subdomain and/or application 282, as described in more detail below. The intra-domain routing system 212 may also include processor(s) 252, data storage/memory 254, communication circuitry 256, and speech synthesizer 284.

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 data management system 214 may manage the collection of context data to be used in routing determinations, as described in more detail below. The context data management system 214 may also include processor(s) 252, data storage/memory 254, the communication circuitry 256, and the speech synthesizer 284.

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 speech processing system 100. In some embodiments, data, settings, and/or preferences for each user profile may be stored by the user data store 216. For example, the user data store 216 may store data regarding past user interactions with the speech processing system 100, such as data regarding actions the speech processing system 100 has taken in response to utterances from a user associated with a particular user profile. As another example, the user data store 216 may store data regarding one or more voice-enabled devices 102 associated with a user profile, such as device identifiers, phone numbers, network addresses, version information, data regarding features and installed applications, and the like. In some embodiments, the user data store 216 may include a list of media items currently stored in an individual's registered account or user profile. For example, a list of music or videos purchased or obtained by a person may be stored in the person's user profile in the user data store 216, which the person may access when he or she wants to listen to a specific song or songs or watch a specific video or videos. The user data store 216 may also include a list of all applications currently enabled for each user profile. In some embodiments, the NLU system 204 may receive indications of which applications are currently enabled for a specific user profile or account so that the NLU system 204 knows what rules and capabilities this speech processing system 100 can perform for the specific user profile or account. In some embodiments, the user data store 216 may store a speech signal, such as biometric speech data, for a specific user profile. This allows speaker identification techniques to be used to match a voice to biometric speech data associated with a specific user profile. The examples of data stored in user data store 216 are illustrative only and are not exhaustive, required, or limiting of the data that may be stored in user data store 216. Processing data store 218 may store data to be used during processing of an utterance, such as context data obtained and/or generated by context data management system 214, as described in more detail above and below. Such data may be used in routing determinations, such as those made by intra-domain routing system 212. In some embodiments, processing data store 218 may store data to be used offline, such as after (or without) processing of an utterance. For example, data related to the utterance, context data items obtained during processing of the utterance obtained, feedback, etc. are stored in the processing data store 218 and used during offline processes, such as training a model used by one or more components of the speech processing system 100.

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 ASR system 202, the NLU system 204, the domain systems 206, the TTS system 208, the cross-domain routing system 210, the intra-domain routing system 212, the context data management system 214, the user data store 216, and the processing data store 218 may each include instances of the processor(s) 252, the data storage/memory 254, and the communication circuitry 256, these instances of the processor(s) 252, the data storage/memory 254, and the communication circuitry 256 may be located within each of the ASR system 202, the NLU system 204, the domain systems 206, the TTS system 208, the cross-domain routing system 210, the intra-domain routing system 212, the Context data management system 214, user data store 216, and processing data store 218. For example, the structure, functionality, and style of the processor(s) 252 in the ASR system 202 may be substantially similar to the structure, functionality, and style of the processor(s) 252 in the NLU system 204, but the actual processor(s) 252 need not be the same entity.

Domänen-RoutingDomain routing

3 ist ein Diagramm veranschaulichender Datenflüsse und Interaktionen zwischen Komponenten des Sprachverarbeitungssystems 100 während Verarbeitung und Routing einer Äußerung an eine Anwendung für eine Reaktion oder andere Maßnahme. Abschnitte von 3 wird unter weiterer Bezugnahme auf 4 beschrieben, bei der es sich um ein Ablaufdiagramm eines veranschaulichenden Prozesses handelt, der durch ein domäneninternes Routing-System 212 ausgeführt werden kann, um Routing-Konfidenzbewertungen für die Äußerung zu generieren. 3 is a diagram illustrating data flows and interactions between components of the speech processing system 100 during processing and routing of an utterance to an application for a response or other action. Sections of 3 is with further reference to 4 which is a flow diagram of an illustrative process that may be performed by an intra-domain routing system 212 to generate routing confidence scores for the utterance.

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 ASR system 202 and the NLU system 204, to generate one or more intentions, such as an N-best list 300. Before, during, and after the generation of the intention(s), various context data items 302 may be obtained and/or generated by the context data management system 214. An exemplary process for obtaining and/or generating context data items for use by one or more intra-domain routing systems 212 is described in more detail below.

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 cross-domain routing system 210 may determine which domains are associated with individual intentions of the N-best list 300. In some embodiments, individual domain systems 206 may be assigned, registered, or otherwise associated with different intentions. The cross-domain routing system 210 may determine which domain systems 206 are associated with each of the intentions in the N-best list 300 (or a subset thereof). The cross-domain routing system 210 may generate and send confidence queries 304 to the intra-domain routing systems 212 for the particular domain systems 206. For example, the N-best list 300 may include five intentions ranked 1-5, where 1 is the highest ranked intention and 5 is the fifth highest ranked intention. A particular domain system 206 may be registered to handle two of the five intentions (e.g., the intentions at rank 1 and 4), another domain system may be registered to handle one of the intentions (e.g., the intention at rank 2), and so on. The cross-domain routing system 210 may generate a confidence request 304 to the intra-domain routing system 212 for the domain 206 registered to handle the intentions at rank 1 and 4. The confidence request 304 may be a request to the intra-domain routing system 212 to evaluate whether the corresponding domain 206 or a specific application 282 thereof is the correct entity to respond to the user's utterance. A confidence request may include the intentions and, in some cases, may include additional information, such as ranking information or the like.

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 3 als außerhalb des domäneninternen Routing-Systems 212 liegend gezeigt sind, können in einigen Ausführungsformen einige oder alle der Routing-Konfidenzbereitsteller 320 in das domäneninterne Routing-System 212 integriert sein. Beispielsweise kann das domäneninterne Routing-System 212 Routing-Konfidenzbereitsteller für jede Anwendung der entsprechenden Domäne oder für eine Teilmenge davon beinhalten. Als weiteres Beispiel können ein oder mehrere Routing-Konfidenzbereitsteller durch ein Rechensystem außerhalb des domäneninternen Routing-Systems 212 gehostet werden, wie etwa einem Rechensystem, auf dem eine entsprechende Anwendung implementiert ist. Zur Veranschaulichung kann die Domäne mit einer Anwendungsprogrammierschnittstelle (application programming interface - „API“) konfiguriert sein, die es Drittparteien ermöglicht, Anwendungen und entsprechende Routing-Konfidenzbereitsteller für eine konkrete Domäne bereitzustellen.Upon receipt of a confidence request 304, the intra-domain routing system 212 may identify one or more routing confidence providers 320 to generate routing confidence scores that are used to assign a specific application 282, to generate a response to the utterance, or to to specify that no application in the domain should generate a response. Even though the routing confidence providers are 320 in 3 As shown as being external to the intra-domain routing system 212, in some embodiments, some or all of the routing confidence providers 320 may be integrated into the intra-domain routing system 212. For example The intra-domain routing system 212 may include routing confidence providers for each application of the corresponding domain or for a subset thereof. As another example, one or more routing confidence providers may be hosted by a computing system external to the intra-domain routing system 212, such as a computing system on which a corresponding application is implemented. To illustrate, the domain may be configured with an application programming interface (“API”) that allows third parties to deploy applications and corresponding routing confidence providers to a specific domain.

4 ist ein Ablaufdiagramm eines veranschaulichenden Prozesses 400, der durch ein domäneninternes Routing-System 212 durchgeführt werden kann, um Routing-Konfidenzbewertungen als Reaktion auf Konfidenzanfragen 304 zu generieren. Das Verfahren 400 beginnt bei Block 402. Wenn der Prozess 400 eingeleitet wird, kann ein Satz ausführbarer Programmanweisungen, die auf einem oder mehreren nichttransitorischen computerlesbaren Medien (z. B. Festplatte, Flash-Speicher, Wechseldatenträger usw.) gespeichert sind, in den Speicher (z. B. Direktzugriffspeicher oder „RAM“) einer Rechenvorrichtung geladen und ausgeführt werden. Ausführbare Anweisungen können beispielsweise in den Speicher 254 einer Rechenvorrichtung des domäneninternen Routing-Systems 212 geladen und durch einen oder mehrere Prozessoren 252 ausgeführt werden. In einigen Ausführungsformen können der Prozess 400 oder Teile davon auf mehreren Prozessoren seriell oder parallel implementiert sein. Bei Block 404 kann das domäneninterne Routing-System 212 die Konfidenzanfrage 304 von dem domänenübergreifenden Routing-System 210 erlangen. In einigen Ausführungsformen kann die Konfidenzanfrage durch eine konkrete Komponente des domäneninternen Routing-Systems 212 erlangt oder dieser bereitgestellt werden, wie etwa ein Master-Speechlet 310 für die entsprechende Domäne 206. 4 is a flowchart of an illustrative process 400 that may be performed by an intra-domain routing system 212 to generate routing confidence scores in response to confidence queries 304. The method 400 begins at block 402. When the process 400 is initiated, a set of executable program instructions stored on one or more non-transitory computer-readable media (e.g., hard drive, flash memory, removable storage, etc.) may be written into memory (e.g. random access memory or “RAM”) of a computing device are loaded and executed. For example, executable instructions may be loaded into the memory 254 of a computing device of the intra-domain routing system 212 and executed by one or more processors 252. In some embodiments, the process 400 or portions thereof may be implemented on multiple processors in series or in parallel. At block 404, the intra-domain routing system 212 may obtain the confidence query 304 from the cross-domain routing system 210. In some embodiments, the confidence query may be obtained by or provided to a specific component of the intra-domain routing system 212, such as a master speechlet 310 for the corresponding domain 206.

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 master speechlet 310 may use another component of the intra-domain routing system 212, such as the routing arbiter 314, to determine the routing confidence providers 320 from which to obtain routing confidence scores. For example, a specific domain system 206 may be associated with any number of subdomains and/or applications 282. A routing confidence provider 320 may be implemented for each individual subdomain or application 282 or various subsets thereof. Individual routing confidence providers 320 may be configured to generate routing confidence scores (e.g., scores) that indicate the level of confidence that a specific subdomain or application 282 is the appropriate entity to respond to an utterance. The routing decider 314 or another component of the intra-domain routing system 212 may identify the routing confidence providers 320 from which routing confidence scores are to be obtained based on a predetermined or dynamically determined mapping of intentions 300 to routing confidence providers 320. For each intent 300 in the confidence query 304, the routing decider 314 may identify the routing confidence provider(s) 320 from which a routing confidence score is to be obtained.

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 block 408, the routing arbiter 314 or another component of the intra-domain routing system 212 may obtain the context data elements 302, if any, to be provided to the routing confidence providers 320. In some embodiments, a mapping may be used to determine the specific context data elements to provide to a given routing confidence provider 320. For example, one routing confidence provider 320 may make a routing confidence assessment using location data associated with the voice-enabled device 102 and capability data representing capabilities of the voice-enabled device, while another routing confidence provider 320 may make a routing confidence assessment based on specific entities recognized in the utterance and concrete content elements that were displayed by the voice-assisted device 102 during the utterance. The routing arbiter 314 may obtain the context data items associated with each of the routing confidence providers 320. In some embodiments, the context data items may be obtained from the processing data store 218, from the context data management system 214, and/or from other sources.

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 block 410, the routing arbiter 314 may obtain routing confidence scores from the identified routing confidence providers 320. The routing arbiter 314 may generate requests, commands, or other communications to the routing confidence providers 320 and may include context data items 302 in the same communication or otherwise provide access to the context data items 302 (e.g., by providing a storage or network address of the Location from which the routing confidence providers 320 can obtain the context data elements 302). In some embodiments, the routing confidence providers 320 may obtain the context data items 302 directly from the Processing data store 218, from the context data management system 214 or another source, without receiving or otherwise gaining access to the context data elements 302 from the routing arbiter. Individual routing confidence providers 320 may perform routing confidence assessments in various ways.

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 routing confidence provider 320 may apply a set of one or more deterministic rules. For example, a set of rules may include applying a particular score or factor when the intention being evaluated is an intention, and a different score or factor when the intention is a different intention. As another example, a score or factor may be used depending on the ranking of the intention within the N-best list (e.g., if the ranking is relatively low, the confidence score may be lower than if the ranking were relatively high). The same, additional, and/or alternative scores and/or factors may be included depending on the values of all context data elements 302 considered (e.g., geolocation of the voice-assisted device 102, geographic distance of the voice-assisted device 102 from a point of interest, content displayed by the voice-assisted device 102 during the utterance, individual words or phrases present in the utterance, historical usage by an active user profile, content catalog associated with the active user profile, etc.). The routing confidence provider 320 may apply the various scores, factors, calculations, and the like based on the set of deterministic rules and arrive at an output routing confidence score. The routing confidence score may be a score, for example, a score between a minimum (representing a minimum level of confidence that the utterance will be properly handled by an application associated with the routing confidence provider 320) and a maximum (representing a maximum level of confidence). In some embodiments, the routing confidence score may include generating a classification into one or more possible classes, such as a first class indicating a low level of confidence, a second class indicating a high level of confidence, and a third class indicating a medium level of confidence associated with ambiguity.

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 routing confidence provider 320 may apply a statistical model or other non-deterministic calculation. For example, a statistical model may be derived from a set of observed and/or synthetic data. Applying the statistical model may include obtaining or deriving input values representing the intent to be evaluated, the ranking of the intent within the N-best list, the values of all context data items 302 considered, etc. The routing confidence provider 320 may apply the various scores, factors, calculations, and the like based on the statistical model and arrive at an output routing confidence score. The routing confidence score may be a score, such as a score between a minimum and a maximum, a classification into one or more possible classes, etc.

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 routing confidence provider 320 may use a combination of deterministic rules and a statistical model to arrive at a routing confidence score. In some embodiments, additional and/or alternative routing confidence assessment methods may be used. The example routing confidence assessment procedures described herein are for illustrative purposes only and are not intended to be limiting, required, or exhaustive.

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 decision block 412, the routing arbitrator 314 or another component of the intra-domain routing system 212 may determine whether the routing confidence score(s) received from the routing confidence provider(s) 320 indicate ambiguity. If so, the process 400 may proceed to block 414 where a response to the confidence request indicating ambiguity may be generated. Otherwise, if the routing confidence scores do not indicate ambiguity, the process 400 may proceed to decision block 416.

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 routing confidence provider 320 indicates an ambiguity. For example, if the routing score is a score between two extremes indicating the lowest and highest confidence, respectively, then a score that is at least a threshold distance from both extremes (e.g., in the middle 50% of the range, in the middle 33% of the range, etc.) may trigger identification of an ambiguity. As another example, if the confidence score is one of three classes indicating low, high, and medium confidence, respectively, then a score in the middle class triggers identification of an ambiguity. In some embodiments, identification of an ambiguity may be based on whether a highest confidence score of all confidence scores requested by the routing decider 314 indicates an ambiguity.

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 block 414, the routing arbitrator 314 or another component of the intra-domain routing system 212 may generate a response to the confidence request based on the identification of the ambiguity. In some embodiments, the response to the confidence request may indicate that an ambiguity resolution component 312 of the intra-domain routing system 212 is the appropriate entity to respond to the utterance. The ambiguity resolution component 312 may be configured to resolve routing ambiguities that remain after (or are introduced during) ASR, NLU, and other processes. The ambiguity resolution component 312 may resolve ambiguity in interpreting the utterance and determine a target entity (subdomain or application) to respond. For example, the ambiguity resolution component 312 may perform non-interactive user involvement in resolving the ambiguity by providing a relevant hint/suggestion and allowing the user to use a new phrasing. The reworded utterance may then be edited using the utterance processing described above (e.g., edited as if the previous utterance had not occurred) without being passed back to the ambiguity resolution component 312. As another example, the ambiguity resolution component 312 may perform interactive user involvement (e.g., a multi-turn dialogue) to resolve the ambiguity through clarifications and/or confirmations. In this case, the user's responses may be passed back to the ambiguity resolution component 312 as part of the ambiguity resolution component 312's management of a multi-turn dialogue. To illustrate, interactive engagement may involve presenting options to the user, such as two or more possible applications (e.g., corresponding to the two or more highest routing confidence scores), and prompting the user to select one of them. As another example, the ambiguity resolution component 312 may obtain additional context data elements 302 that may not have been available during the initial routing confidence evaluation process, and may use these additional context data elements 302 to resolve the ambiguity without requiring additional user input (e.g., by adjusting or overriding one or more routing confidence scores).

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 decision block 416, the routing decider or another component of the intra-domain routing system 212 may determine whether the routing confidence scores indicate a subdomain or application of the domain 206 for which the intra-domain routing system 212 is generating routing confidence scores and the correct one Entity to respond to the utterance is. If so, the process 400 may continue to block 418, where the routing arbiter 314 or another component of the intra-domain routing system 212 may generate a response to the confidence query indicating the subdomain or application of the domain 206, for which there is a high degree of confidence that it is the correct entity to respond to the utterance. Otherwise, the process 400 may continue to block 420, where the routing arbiter 314 or another component of the intra-domain routing system 212 may generate a response to the confidence query indicating that no subdomain or application of the domain 206 has the correct entity for Reacting to the statement is.

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 block 422, the intra-domain routing system 212 may provide the output generated as above in response to the confidence request to the inter-domain routing system 210. The process 400 may end at block 424.

5 ist ein Diagramm einer mehrschichtigen Domäne 206, die mehrere Anwendungen 282 beinhaltet. Der Prozess 400 kann bestimmen, dass jede der Anwendungen 282A, 282B, 282C die am besten geeignete Anwendung ist, um auf die Äußerung zu reagieren, abhängig von den Kontextdaten, die erlangt und zur Durchführung von Routing-Konfidenzbewertungen verwendet werden. Zur Veranschaulichung ist die Äußerung 106 dieselbe Äußerung aus dem Beispiel in 1: „Wo gibt es Kaffee?“ Bei den drei beispielhaften Anwendungen handelt es sich um eine Anwendung 282A zur Lokalisierung eines physischen Geschäfts, eine Anwendung 282B zur Lokalisierung eines Gangs im Geschäft und eine Online-Shopping-Anwendung 282C. Wenn die Äußerung 106 in Verbindung mit einem ersten Satz von Kontextdaten gemacht und verarbeitet wird (z. B. Standortinformationen, die angeben, dass die Äußerung außerhalb des Zuhauses des Benutzers 104 und außerhalb eines Geschäfts gemacht wurde), dann ist die Anwendung 282A zur Lokalisierung eines physischen Geschäfts möglicherweise die am besten geeignete Anwendung für eine Reaktion auf die Äußerung 106. Wenn die Äußerung 106 in Verbindung mit einem zweiten Satz von Kontextdaten gemacht und verarbeitet wird (z. B. Standortinformationen, die angeben, dass die Äußerung in einem Geschäfts gemacht wurde), dann ist die Anwendung 282B zur Lokalisierung eines Gangs im Geschäft möglicherweise die am besten geeignete Anwendung für eine Reaktion auf die Äußerung 106. Wenn die Äußerung 106 in Verbindung mit einem dritten Satz von Kontextdaten gemacht und verarbeitet wird (z. B. Inhaltspräsentationsinformationen, die angeben, dass der Benutzer nach Artikeln zum Online-Kauf sucht), dann ist die Online-Shopping-Anwendung 282B möglicherweise die am besten geeignete Anwendung für eine Reaktion auf die Äußerung 106. 5 is a diagram of a multi-tier domain 206 that includes multiple applications 282. The process 400 may determine that each of the applications 282A, 282B, 282C is the most appropriate application to respond to the utterance depending on the context data obtained and used to perform routing confidence assessments. For illustration, the utterance 106 is the same utterance from the example in 1 : "Where can I get coffee?" The three example applications are a physical store location application 282A, a store aisle location application 282B, and an online shopping application 282C. If the utterance 106 is made and processed in conjunction with a first set of context data (e.g., location information indicating that the utterance was made outside of the user's home 104 and outside of a store), then the utterance 282A is a physical store may be the most appropriate application for responding to utterance 106. If utterance 106 is made and processed in conjunction with a second set of contextual data (e.g., location information indicating that the utterance was made in a store), then store aisle locating application 282B may be the most appropriate application for responding to utterance 106. If utterance 106 is made and processed in conjunction with a third set of contextual data (e.g., content presentation information indicating that the user is searching for items to purchase online), then online shopping application 282B may be the most appropriate application for responding to utterance 106.

Frühzeitiger Aufruf und KontextdatengenerierungEarly invocation and context data generation

6 ist ein Diagramm veranschaulichender Datenflüsse und Interaktionen zwischen Komponenten des Sprachverarbeitungssystems 100 für den frühzeitigen Aufruf von Kontextdatengenerierungsmaßnahmen während der Verarbeitung einer Äußerung. Abschnitte von 6 wird unter weiterer Bezugnahme auf 7, die ein Ablaufdiagramm eines veranschaulichenden Prozesses ist, der durch das Kontextdatenverwaltungssystem 214 ausgeführt werden kann, um Kontextdaten zu generieren, die einer Äußerung zugeordnet sind, und 8, die ein Diagramm veranschaulichender Datenflüsse und Interaktionen zwischen Komponenten eines Kontextdatenverwaltungssystems 214 während des frühzeitigen Aufrufs von Kontextdatengenerierungsmaßnahmen ist, beschrieben. Wie in 6 gezeigt und vorstehend ausführlicher beschrieben, kann eine Äußerung unter Verwendung eines Satzes von Verarbeitungsmaßnahmen für natürliche Sprache verarbeitet werden, wie sie beispielsweise durch das ASR-System 202 und dem NLU-System 204 durchgeführt werden, um eine oder mehrere Intentionen zu generieren. Das domänenübergreifende Routing-System 210 kann basierend auf den Intentionen eine oder mehrere Konfidenzanfragen 304 generieren. 6 is a diagram illustrating data flows and interactions between components of the speech processing system 100 for invoking context data generation actions early during processing of an utterance. Sections of 6 is with further reference to 7 which is a flowchart of an illustrative process that may be performed by the context data management system 214 to generate context data associated with an utterance, and 8th , which is a diagram illustrating data flows and interactions between components of a context data management system 214 during early invocation of context data generation actions. As in 6 As shown and described in more detail above, an utterance may be processed using a set of natural language processing operations, such as those performed by the ASR system 202 and the NLU system 204, to generate one or more intentions. The cross-domain routing system 210 may generate one or more confidence queries 304 based on the intentions.

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 ASR system 202 and the NLU system 204 may incur or experience a relatively high degree of latency. To reduce or eliminate additional user-perceived latency that may be caused by obtaining and/or generating context data items 302 for use in routing confidence assessments, the context data items 302 may be proactively obtained and/or generated without necessarily waiting for the natural language processing operations to complete. For example, before, during, and after the generation of the intent(s), various context data items 302 may be obtained and/or generated by the context data management system 214. The points at which the context data management system 214 receives and/or generates context data items may be referred to as integration points.

6 zeigt einen bei [I] ausgelösten Integrationspunkt, der bewirkt, dass das Kontextdatenverwaltungssystem 214 verschiedene Datenaggregationen und/oder einen frühzeitigen Aufruf der Verarbeitung durchführt. Wenn ein Integrationspunkt ausgelöst wird, kann dies eine Ausführung des Kontextdatenverwaltungssystems 214 bewirken, um Daten zu verarbeiten oder zu speichern oder auf andere Weise einen frühzeitigen Aufruf anderer Prozesse einzuleiten. Vorteilhafterweise kann die am Integrationspunkt ausgelöste Ausführung des Kontextdatenverwaltungssystems 214 parallel oder auf andere Weise asynchron erfolgen, wobei mindestens ein Abschnitt des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache an der Äußerung durchgeführt wird. 6 shows an integration point triggered at [I] that causes the context data management system 214 to perform various data aggregations and/or early processing invocation. When an integration point is triggered, it may cause the context data management system 214 to execute to process or store data or otherwise initiate early invocation of other processes. Advantageously, execution of the context data management system 214 triggered at the integration point may occur in parallel or otherwise asynchronously, with at least a portion of the set of natural language processing actions being performed on the utterance.

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 ASR system 202. For example, an identifier of the voice-enabled device 102, an identifier of an active user profile associated with the utterance, an identifier of a geographic location of the voice-enabled device 102, and/or various other data elements may be obtained with or otherwise associated with the utterance. The speech processing system 100 may trigger the integration point based on obtaining such data.

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 NLU system 204. For example, the NLU system may generate one or more preliminary semantic representations of the processed utterance, including intentions with a subset of slots populated with entities. The NLU system 204 may initiate an entity resolution process to resolve one or more entities (e.g., to determine whether the entities in question are present in one or more catalogs or other data stores). An integration point may be implemented in the entity resolution phase, and one or more preliminary semantic representations of the Utterances may be provided to the context data management system 214 for further processing, storage, or the like.

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 data management system 214 may execute to store the data, acquire new data using the data, process the data, to to generate new data or to initiate an early call to another process. By calling data aggregation functions and other functions early and performing them in parallel with other processing of the utterance, all prerequisite operations for subsequent processes can be completed when the subsequent processes are initiated (e.g., the process of determining routing responsibility for a response to the utterance), thereby reducing the user's perceived latency (e.g. delay in receiving a response to the utterance).

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 data management system 214 may employ a model evaluation component 600 to use a model, such as a machine learning model or other probabilistic model, to evaluate one or more currently available data items and perform prediction, classification, or the like. As another example, at [III], the context data management system 214 may employ an execution service 602 to pre-compute a context data item. The perfected, pre-computed, or otherwise pre-generated context data items may be stored at [IV] in a processing data store 218 for access by subsequent processes or in an internal data store of the context data management system 214 to be requested during subsequent processes.

7 ist ein Ablaufdiagramm eines veranschaulichenden Prozesses 700, der durch das Kontextdatenverwaltungssystem 214 zur Datenaggregation und/oder zum frühzeitigen Aufruf der Verarbeitung durchgeführt werden kann. Das Verfahren 700 beginnt bei Block 702. Wenn der Prozess 700 eingeleitet wird, kann ein Satz ausführbarer Programmanweisungen, die auf einem oder mehreren nichttransitorischen computerlesbaren Medien (z. B. Festplatte, Flash-Speicher, Wechseldatenträger usw.) gespeichert sind, in den Speicher (z. B. Direktzugriffspeicher oder „RAM“) einer Rechenvorrichtung geladen und ausgeführt werden. Ausführbare Anweisungen können beispielsweise in den Speicher 254 einer Rechenvorrichtung des Kontextdatenverwaltungssystems 214 geladen und durch einen oder mehrere Prozessoren 252 ausgeführt werden. In einigen Ausführungsformen können der Prozess 700 oder Teile davon auf mehreren Prozessoren seriell oder parallel implementiert sein. Bei Block 704 kann ein Integrationspunkt ausgelöst werden. Das Auslösen des Integrationspunkts kann die Ausführung des Kontextdatenverwaltungssystems 214 veranlassen. Die Ausführung des Kontextdatenverwaltungssystems 214 kann beliebig oft an beliebig vielen Integrationspunkten während der Äußerungsverarbeitung ausgelöst werden, wie durch den Wiederholungspfeil angegeben. Die durch das Kontextdatenverwaltungssystem 214 als Reaktion auf ausgelöste Integrationspunkte ausgeführte Verarbeitung kann je nach Bedarf seriell, parallel oder asynchron erfolgen. Darüber hinaus kann die Verarbeitung für einige Integrationspunkte unabhängig von der Verarbeitung für andere Integrationspunkte erfolgen. 7 is a flowchart of an illustrative process 700 that may be performed by the context data management system 214 for data aggregation and/or early processing invocation. The method 700 begins at block 702. When the process 700 is initiated, a set of executable program instructions stored on one or more non-transitory computer-readable media (e.g., hard drive, flash memory, removable storage, etc.) may be written into memory (e.g. random access memory or “RAM”) of a computing device are loaded and executed. For example, executable instructions may be loaded into memory 254 of a computing device of context data management system 214 and executed by one or more processors 252. In some embodiments, the process 700 or portions thereof may be implemented on multiple processors in series or in parallel. At block 704, an integration point may be triggered. Triggering the integration point may cause the context data management system 214 to execute. Execution of the context data management system 214 may be triggered any number of times at any number of integration points during utterance processing, as indicated by the repeat arrow. The processing performed by the context data management system 214 in response to triggered integration points may be serial, parallel, or asynchronous, as appropriate. Additionally, processing for some integration points may occur independently of processing for other integration points.

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 8 gezeigt, kann das Kontextdatenverwaltungssystem 214 ein Register 802 von Kontextdatenmaßnahmen beinhalten, die unter Verwendung der aktuell verfügbaren Daten durchzuführen sind. Wenn die aktuell verfügbaren Daten beispielsweise Geolokalisierungsdaten und eine Benutzerprofilkennung beinhalten, kann das Register angeben, dass ein Kontextdatenelement generiert werden soll, das darstellt, ob der Benutzer zu Hause ist. Als weiteres Beispiel kann das Register, wenn die aktuell verfügbaren Daten vorläufige NLU-Ergebnisse beinhalten, angeben, dass ein Kontextdatenelement generiert werden soll, das darstellt, ob der Benutzer wahrscheinlich eine Äußerung macht, die eine Fortsetzung einer früheren Äußerung ist (z. B. eine Verfeinerung einer Suche) oder in keinem Zusammenhang mit einer früheren Äußerung steht (z. B. eine völlig neue Suche).At block 706, the context data management system 214 may obtain initial data associated with the integration point. The initial data may include data generated or acquired during utterance processing before or after the integration point is reached. For example, if the integration point that was triggered to initiate the current iteration of the process 700 (the “current integration point”) is at utterance capture or otherwise prior to ASR processing, the initial data may be an identifier of the voice-enabled device 102, an identifier an active user profile, etc. As another example, when the current integration point is at the point of entity resolution during NLU processing, the initial data may include preliminary NLU results, such as semantic representations of intent and at least a subset of corresponding entities. At block 708, the context data management system 214 may evaluate the initial data and any data generated or obtained in connection with previous iterations of the process 700 during processing of the current utterance (collectively, the “currently available data”) to determine one or more context data actions to take to determine. In some embodiments, as in 8th shown, the context data ver management system 214 includes a register 802 of contextual data actions to be performed using the currently available data. For example, if the currently available data includes geolocation data and a user profile identifier, the registry may indicate that a contextual data item should be generated that represents whether the user is at home. As another example, if the currently available data includes preliminary NLU results, the registry may indicate that a contextual data item should be generated that represents whether the user is likely to make an utterance that is a continuation of a previous utterance (e.g., a refinement of a search) or is unrelated to a previous statement (e.g. a completely new search).

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 orchestrator component 800 of the context data management system 214 may examine data in register 802 and find any functions that can be performed using the currently available data.

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 decision block 710, the orchestrator 800 or another component of the context data management system 214 may determine whether to prefetch data using the currently available data. If so, the process 700 may proceed to block 712. Otherwise, the process 700 proceeds to decision block 714.

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 orchestrator 800 or another component of the context data management system 214 may initiate prefetching a context data item using the currently available data. For example, the orchestrator 800 may perform a directory search using one or more of the currently available data items. In some embodiments, the results of the search may be stored in an internal data store 804 where they are retained as a currently available data item for future context data generation processes and/or provided to other components of the speech processing system 100 during further processing (e.g., for routing determinations). In some embodiments, the results of the search may be stored in a processing data store 218 external to the context data management system 214 where they are made accessible to other components of the speech processing system 100 during subsequent processing (e.g., for routing determinations).

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, process 700 may run asynchronously. For example, after initiating one or more prefetch operations in block 712, process 700 may proceed to decision block 714 without necessarily waiting for the prefetch operations to complete. When the prefetch operation(s) initiated in block 712 are completed, process 700 may proceed to decision block 718, possibly in parallel or asynchronously with the execution of decision block 714, block 716, etc.

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 decision block 714, the orchestrator 800 or another component of the context data management system 214 may determine whether to precompute data using the currently available data. If so, process 700 may proceed to block 716. Otherwise, process 700 (or an execution thread thereof) may end at block 720.

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 data management system 214 may initiate the precomputing of a context data item using the currently available data. The precomputed context data item may be stored in the internal data storage 804 of the context data management system 214 or in a processing data storage 218 external to the context data management system 214. In some embodiments, a model caller 806 may use a model or cause an external model evaluation component 600 to use a model, such as a machine learning model or other probabilistic model, to evaluate one or more currently available data items and provide a prediction, classification, or to undertake the like. For example, the model caller 806 may generate a classification of the currently available data as an indication of a search refinement or a new search. In some embodiments, a runtime hosting environment 808 may precompute a context data item or cause an external execution service 602 to precompute the context data item. For example, the runtime hosting environment can obtain 808 scores for the top two intentions of an N-best list and a difference between the who Calculate calculations. As another example, an external execution service 602 may pre-compute embeddings, such as Bidirectional Encoder Representations from Transformers ("BERT") embeddings, for use by subsequent processes.

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, process 700 may run asynchronously. For example, after initiating one or more pre-computation operations at block 716, a thread of execution of process 700 may terminate at block 720 without necessarily waiting for the pre-computation operation(s) to complete. When the pre-computation operation(s) initiated at block 716 are completed, process 700 may proceed to decision block 718, possibly in parallel or asynchronously with execution of other portions of process 700.

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 decision block 718, the orchestrator 800 or another component of the context data management system 214 may determine whether to prefetch and/or precalculate additional context data based on data prefetched and/or precalculated during the current iteration of the process 700. If so, the process 700 may return to block 708. Otherwise, the process 700 may terminate.

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 6 kann ein domäneninternes Routing-System 216 als Reaktion auf eine bei [V] empfangene Konfidenzanfrage Kontextdatenelemente bei [VI] zur Verwendung bei der Generierung von Routing-Konfidenzbewertungen erlangen, wie vorstehend ausführlicher beschrieben. Sobald eine Routing-Entscheidung getroffen wurde, kann bei [VII] eine Anwendung 282 zugewiesen werden, um eine Reaktion auf die Äußerung zu generieren. In einigen Ausführungsformen kann die Anwendung 282 bei [VIII] als Teil des Reaktionsgenerierungsprozesses oder auf andere Weise im Verlauf der Verwaltung eines Kundenerlebnisses (z. B. während eines Dialogs mit mehreren Wendungen) auf Kontextdatenelemente zugreifen.In some embodiments, the process 700 may be designed to create a data history in which initial data is obtained, additional data is retrieved, calculated, or otherwise generated based on the available data, and then additional data is retrieved, calculated, or otherwise Way to be generated based on the additional data and so on. In this way, the process 700 can be a recursive process in which a single integration point causes the data history to be expanded to include multiple data elements, levels, etc. In some embodiments, a previous recursive instance of process 700 may still be running when a subsequent integration point is reached during utterance processing and another instance of process 700 is invoked. In this way, the process 700 may be performed in parallel or otherwise asynchronously with respect to other instances of the same process 700. Returning to 6 In response to a confidence request received at [V], an intra-domain routing system 216 may obtain context data items at [VI] for use in generating routing confidence scores, as described in more detail above. Once a routing decision has been made, at [VII] an application 282 may be assigned to generate a response to the utterance. In some embodiments, the application 282 may access contextual data elements at [VIII] as part of the response generation process or otherwise in the course of managing a customer experience (e.g., during a multi-turn dialogue).

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. Computerimplementiertes Verfahren 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.
Some inventive aspects of the disclosure are set out in the following paragraphs:
  • 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 of paragraph 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 of paragraph 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 of paragraph 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 to paragraph 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)

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.Computer-implemented method comprising: as performed by a computing system that includes 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, the natural language input representing an utterance of a user and the intent data comprising 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 contextual data item based at least in part on the initial data item concurrently with performing 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 the performance of at least one of: the set of natural language processing measures or a set of response determination measures. Computerimplementiertes Verfahren nach Anspruch 1, 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.Computer-implemented method Claim 1 , further comprising determining a context data action to be taken 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. Computerimplementiertes Verfahren nach Anspruch 2, wobei das Bestimmen der Kontextdatenmaßnahme Bestimmen eines der 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 des Benutzers 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.Computer-implemented method Claim 2 , wherein determining the contextual data measure includes determining one of the following: evaluating the one or more initial data elements using a model to generate a prediction regarding an aspect of the user's utterance; performing a calculation using the one or more initial data items to precompute a value; or acquiring a value from a data store using the one or more initial data elements. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Generieren des Kontextdatenelements Generieren von Daten umfasst, die mindestens eines von Folgendem darstellen: einen Standort einer sprachgestützten Vorrichtung, von der die Eingabe in natürlicher Sprache empfangen wird, 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 eines Benutzers oder einen Vergleich einer Vielzahl von Interpretationen der Äußerung des Benutzers.Computer-implemented method Claim 1 , wherein generating the context data element comprises generating data representing at least one of: a location of a voice-enabled device from which the natural language input is received, an identifier of the voice-enabled device, a content catalog associated with a user profile, historical Interactions associated with the user profile, a prediction regarding an aspect of a user's utterance, or a comparison of a plurality of interpretations of the user's utterance. Computerimplementiertes Verfahren nach Anspruch 1, 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.Computer-implemented method Claim 1 , further comprising: at a second integration point during the set of natural language processing actions, determining to generate a second contextual data item using a second initial data item; and generating the second contextual 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. Computerimplementiertes Verfahren nach Anspruch 1, 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.Computer-implemented method according to Claim 1 further comprising: in response to generating the context data item, determining to generate a second context data item using the context data item; and generating the second context data item based at least in part on the context data item concurrently with performing at least a second portion of the set of natural language processing actions. Computerimplementiertes Verfahren nach Anspruch 1, 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.Computer-implemented method Claim 1 , wherein providing access to the context data item includes storing the context data item in a data store accessible during performance of the at least one of the set of natural language processing measures or the set of response determination measures. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Ausführen des Satzes von Verarbeitungsmaßnahmen für natürliche Sprache Folgendes umfasst: Generieren von Textdaten unter Verwendung von Audiodaten und eines Prozesses zur automatischen Spracherkennung („ASR“), wobei die Textdaten mindestens einen Teil der Äußerung des Benutzers darstellen; und 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 des Benutzers umfassen.Computer-implemented method according to Claim 1 , wherein performing the set of natural language processing actions comprises: generating text data using audio data and an automatic speech recognition ("ASR") process, the text data representing at least a portion of the user's utterance; and generating intention data using the text data and a natural language understanding ("NLU") process, the intention data comprising a semantic representation of the user's utterance. 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.A 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: perform 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 performing at least a portion of the set of natural language processing actions; and providing access to the context data element, wherein the context data element is accessed during performance of at least one of: the set of natural language processing actions or a set of response determination actions. System nach Anspruch 9, 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.System after Claim 9 , wherein the one or more processors are configured by further executable instructions to determine a context data action to be taken to generate the context data item using a register, the register specifying the context data action and one or more initial data items that to be used to generate the context data element. System nach Anspruch 9, 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.System according to Claim 9 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, determine to generate a second context data item using a second initial data item; and generate 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. System nach Anspruch 9, 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.System after Claim 9 , wherein the one or more processors are configured by further executable instructions to at least: in response to generating the context data item, determine to generate a second context data item using the context data item; and generating the second context data item based at least in part on the context data item concurrently with performing at least a second portion of the set of natural language processing actions. System nach Anspruch 9, 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; und eine Reaktion auf die Äußerung des Benutzers zumindest teilweise basierend auf der Vorhersage zu generieren, wobei sich die Vorhersage auf einen wahrscheinlichen Status der Äußerung des Benutzers 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.System after Claim 9 , 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 make a prediction regarding an aspect to generate the utterance; and generate a response to the user's utterance based at least in part on the prediction, the prediction relating to a likely status of the user's utterance as one of an initial user utterance of a multi-turn dialogue or a subsequent user utterance of a dialogue with several twists. System nach Anspruch 9, 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.System after Claim 9 , wherein the one or more processors configured to provide access to the context data item are configured by further executable instructions to do so during performance of the at least one of the set of natural language processing measures or the set of response determination measures in response to a request to respond according to the context data element. System nach Anspruch 9, wobei der eine oder die mehreren Prozessoren durch weitere ausführbare Anweisungen zu Folgendem konfiguriert sind: Bestimmen einer Anwendung, an die Intentionsdaten, die eine semantische Darstellung der Äußerung des Benutzers umfassen, zur Generierung einer Reaktion auf die Äußerung des Benutzers weiterzuleiten sind; und Generieren einer Reaktion auf die Äußerung des Benutzers unter Verwendung der Anwendung und der Intentionsdaten.System according to Claim 9 wherein the one or more processors are configured by further executable instructions to: determine an application to which to forward intent data comprising a semantic representation of the user's utterance for generating a response to the user's utterance; and generate a response to the user's utterance using the application and the intent data.
DE112022003216.2T 2021-06-24 2022-06-17 Early call for context data processing Pending DE112022003216T5 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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