DE112021000292T5 - Sprachverarbeitungssystem - Google Patents

Sprachverarbeitungssystem Download PDF

Info

Publication number
DE112021000292T5
DE112021000292T5 DE112021000292.9T DE112021000292T DE112021000292T5 DE 112021000292 T5 DE112021000292 T5 DE 112021000292T5 DE 112021000292 T DE112021000292 T DE 112021000292T DE 112021000292 T5 DE112021000292 T5 DE 112021000292T5
Authority
DE
Germany
Prior art keywords
data
processing system
component
language processing
user
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
DE112021000292.9T
Other languages
English (en)
Inventor
Timothy Whalin
Catherine Michelle Loo
Calvin Phuong Nguyen
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
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of DE112021000292T5 publication Critical patent/DE112021000292T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Abstract

Ein System kann ein erstes und ein zweites Sprachverarbeitungssystem beinhalten. Das erste Sprachverarbeitungssystem kann empfangene Audiodaten verarbeiten und bestimmen, dass ein darin dargestellter Befehl einem zweiten Sprachverarbeitungssystem zugeordnet ist. Das erste Sprachverarbeitungssystem kann Befehlsdaten an das zweite Sprachverarbeitungssystem senden und im Gegenzug Antwortdaten empfangen. Das erste Sprachverarbeitungssystem kann dann die Antwortdaten verarbeiten, um zweite Antwortdaten zu bestimmen, die eine Angabe des zweiten Sprachverarbeitungssystems beinhalten, und eine Audioausgabe entsprechend den zweiten Antwortdaten veranlassen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGSDATEN
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 16/781,773 , eingereicht am 4. Februar 2020 und mit dem Titel „SPEECH-PROCESSING SYSTEM“ im Namen von Timothy Whalin et al.
  • HINTERGRUND
  • Sprachverarbeitungssysteme ermöglichen es Benutzern, Computervorrichtungen unter Verwendung ihrer Sprache zu steuern. Diese Systeme identifizieren Worte, die von einem Benutzer gesprochen werden, basierend auf Eigenschaften von empfangenen Audiodaten, die die Sprache des Benutzers darstellen. Automatische Spracherkennungs- (automatic speechrecognition, ASR)-Verarbeitung in Kombination mit natürlicher Sprachverständnis- (natural-language understanding, NLU)-Verarbeitung ermöglicht es einem Sprachverarbeitungssystem, Text zu bestimmen, der der Sprache entspricht, und eine in dem Text ausgedrückte Absicht zu verstehen. ASR-Verarbeitung und NLU-Verarbeitung können mit Text-zu-Sprache-(text-tospeech, TTS)-Verarbeitung kombiniert werden, die verwendet werden kann, um synthetisierte Sprache als Reaktion auf die menschliche Sprache zu erzeugen. Die Sprachverarbeitung kann von Computern, tragbaren Vorrichtungen, intelligenten Lautsprechern und anderen Vorrichtungen verwendet werden, um Mensch-Computer-Interaktionen zu verbessern.
  • Figurenliste
  • Für ein vollständigeres Verständnis der vorliegenden Erfindung, wird nun Bezug auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen genommen.
    • 1 veranschaulicht ein System, das zum Verarbeiten von Benutzereingaben unter Verwendung von Sprachverarbeitungssystemen gemäß Ausführungsformen der vorliegenden Offenbarung konfiguriert ist.
    • 2A veranschaulicht eine Benutzervorrichtung und ein Remotesystem, das für die Sprachverarbeitung konfiguriert ist, gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 2B veranschaulicht eine Benutzervorrichtung, die für die Sprachverarbeitung konfiguriert ist, gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 3A und 3B veranschaulichen Sprachverarbeitungssysteme gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 4A, 4B und 4C veranschaulichen Verfahren zur Verwendung von Sprachverarbeitungssystemen gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 5 veranschaulicht ein System zur Verarbeitung natürlicher Sprache gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 6 veranschaulicht Komponenten eines Systems zur Verarbeitung natürlicher Sprache gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 7 veranschaulicht Text-zu-Sprache-Verarbeitungskomponenten gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 8 veranschaulicht eine Benutzererkennungskomponente gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 9 veranschaulicht Beispielkomponenten einer Benutzervorrichtung gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 10 veranschaulicht Beispielkomponenten eines Remotesystems gemäß Ausführungsformen der vorliegenden Offenbarung.
    • 11 veranschaulicht ein Beispiel eines Computernetzwerks zur Verwendung mit einem Sprachverarbeitungssystem.
  • DETAILLIERTE BESCHREIBUNG
  • Automatische Spracherkennung (automatic-speech recognition, ASR) ist ein Gebiet der Informatik, der künstlichen Intelligenz und der Linguistik, das sich auf die Umwandlung von Audiodaten, die Sprache darstellen, in Textdaten bezieht, die diese Sprache darstellen. Natürliches Sprachverständnis (natural-language understanding, NLU) ist ein Gebiet der Informatik, der künstlichen Intelligenz und der Linguistik, das sich darauf bezieht, Computer in die Lage zu versetzen, Bedeutung aus den Textdaten abzuleiten. Text-zu-Sprache (text-tospeech, TTS) ist ein Gebiet der Informatik, der künstlichen Intelligenz und der Linguistik, das sich darauf bezieht, Computer in die Lage zu versetzen, eine Darstellung von Text in Audio umzuwandeln, das synthetisierte Sprache darstellt. ASR, NLU und / oder TTS können zusammen als Teil eines natürlichen Verständnissystems verwendet werden, das auch als Sprachverarbeitungssystem bezeichnet werden kann.
  • Eine sprachgesteuerte Benutzervorrichtung und / oder ein Remotesystem können dazu konfiguriert sein, eine gesprochene Benutzereingabe zu empfangen und unter Verwendung von ASR ein Weckwort und / oder anderen Text in der Benutzereingabe zu erkennen; unter Verwendung von NLU einen Befehl in der Benutzereingabe bestimmen; und unter Verwendung von TTS und / oder einer anderen Benutzerschnittstelle eine Antwort auf den Befehl bereitzustellen. Ein Benutzer kann somit die sprachgesteuerte Benutzervorrichtung, eine andere Benutzervorrichtung und / oder ein Remotesystem per Sprache steuern. In einigen Ausführungsformen kann die Benutzervorrichtung als Antwort darauf, dass die Benutzervorrichtung das Weckwort erkennt, Audiodaten, die die Benutzereingabe darstellen, zur weiteren Verarbeitung an das Remotesystem senden. Das Remotesystem kann die Audiodaten weiter verarbeiten, um zu verifizieren, dass sie eine Darstellung des Weckworts beinhalten, und / oder um den Befehl und / oder die Antwort zu bestimmen. Die Benutzervorrichtung kann dann von der Remotevorrichtung Ausgabeaudio-, Video- oder andere Daten in Bezug auf die Antwort und / oder andere Daten empfangen, die erforderlich sind, um eine der Antwort zugeordnete Aktion auszuführen.
  • Die sprachgesteuerte Benutzervorrichtung und / oder das Remotesystem kann Benutzereingaben unter Verwendung von zwei oder mehr Sprachverarbeitungssystemen verarbeiten, von denen jedes seine eigene(n) ASR-Komponente(n), NLU-Komponente(n) und / oder TTS-Komponente(n) haben kann. Jedem Sprachverarbeitungssystem können Befehle und / oder Antworten auf diese Befehle zugeordnet sein, die für dieses Sprachverarbeitungssystem einzigartig sind. Zum Beispiel kann ein erstes Sprachverarbeitungssystem für Online-Einkäufe von einem Benutzer bevorzugt werden, während ein zweites Sprachverarbeitungssystem für die Navigation bevorzugt werden kann. Ein Benutzer kann somit wünschen, Online-Einkaufsbefehle an das erste Sprachverarbeitungssystem zu leiten und wünschen, Navigationsbefehle an das zweite Sprachverarbeitungssystem zu leiten. Das erste Sprachverarbeitungssystem kann möglicherweise nicht in Lage sein, einige oder alle dem zweiten Sprachverarbeitungssystem zugeordneten Befehle zu erfüllen und umgekehrt. Beide Sprachverarbeitungssysteme können jedoch in der fähig sein, auch andere Befehle zu erfüllen.
  • Jedes Sprachverarbeitungssystem kann zusätzlich dazu, dass es seiner eigenen, vielleicht einzigartigen Interpretation von Befehlen zugeordnet ist, seine eigenen, vielleicht einzigartigen Antworten bereitstellen und / oder auf andere Weise als eine bestimmte „Persönlichkeit“ aufweisend wahrgenommen werden. Diese Persönlichkeit kann zum Beispiel eine bestimmte, wenn auch künstliche Sprechstimme und / oder einen bestimmten Stil beinhalten, wie etwa „Nachrichtensprecher“ oder „Berühmtheit“. Ein Sprachverarbeitungssystem kann synthetisierte Sprache erzeugen (zum Beispiel unter Verwendung einer TTS-Komponente), die eine Sprachdarstellung beinhaltet, die Aspekte der Persönlichkeit zeigt. Ein Benutzer kann somit dazu kommen, ein bestimmtes Sprachverarbeitungssystem einer bestimmten Persönlichkeit zuzuordnen und somit synthetisierte Sprache als einem bestimmten Sprachverarbeitungssystem zugeordnet zu erkennen, indem er die Persönlichkeit erkennt.
  • Jedem Sprachverarbeitungssystem kann ferner ein anderes Weckwort zugeordnet werden. Einem ersten Sprachverarbeitungssystem kann zum Beispiel das Weckwort „Alexa“ zugeordnet werden. Die Benutzervorrichtung und / oder das Remotesystem kann so konfiguriert sein, dass es ein bestimmtes Sprachverarbeitungssystem bei Erkennung seines zugeordneten Weckworts verwendet. Die Benutzervorrichtung und / oder das Remotesystem kann mehr als ein Weckwort erkennen; unterschiedliche Weckworte können unterschiedlichen Sprachverarbeitungssystemen zugeordnet sein. Zum Beispiel kann die Benutzervorrichtung und / oder das Remotesystem konfiguriert sein, um eine Aktion auszuführen, wie etwa das Absenken eines Fensters eines Automobils, als Antwort auf Sprache von einem Benutzer, einschließend „SmartCar, kurbel mein Fenster herunter“. In diesem Beispiel und in der gesamten vorliegenden Offenbarung wird das Weckwort „SmartCar“ verwendet, um ein Weckwort darzustellen, das einem zweiten Sprachverarbeitungssystem entspricht, das einem Automobil zugeordnet ist; dieses zweite Sprachverarbeitungssystem kann fähig sein, automobilspezifische Aktionen auszuführen, wie etwa das Anheben / Absenken von Autofenstern, das Einstellen von Autositzen usw., die das erste Sprachverarbeitungssystem nicht ausführen kann. Die vorliegende Offenbarung ist jedoch nicht nur auf dieses Weckwort (oder nur auf das „Alexa“-Weckwort) noch nur auf Automobile beschränkt.
  • In einigen Situationen beinhaltet die Benutzereingabe jedoch ein erstes Weckwort, das einem ersten Sprachverarbeitungssystem zugeordnet ist, aber ein in der Benutzereingabe dargestellter Befehl kann nur von einem zweiten Sprachverarbeitungssystem ausgeführt werden und / oder kann besser von diesem ausgeführt werden. Der Benutzer kann jedoch wünschen, dass der Befehl ausgeführt wird, obwohl er ursprünglich an das erste Sprachverarbeitungssystem gerichtet war. Falls zum Beispiel das Remotesystem zehn verschiedene Sprachverarbeitungssysteme beinhaltet, jedes mit eigenen/-m einzigartigen Weckwort(en) und Befehl(en), kann es für das System einfacher sein, das beste für einen bestimmten Befehl zu bestimmen, als sich immer darauf verlassen zu müssen, dass sich der Benutzer daran erinnert, welches Weckwort welchen Befehlen zugeordnet ist.
  • Das erste Sprachverarbeitungssystem kann somit erkennen, dass einem Befehl ein zweites Sprachverarbeitungssystem zugeordnet ist, und somit eine weitere Verarbeitung der Benutzereingabe unter Verwendung des zweiten Sprachverarbeitungssystems veranlassen. Das erste und / oder zweite Sprachverarbeitungssystem kann eine Ausgabe von synthetisierter Sprache veranlassen, die den Benutzer über diese Änderung in der Verarbeitung informiert, so dass der Benutzer durch die Änderung nicht überrascht oder verwirrt wird. Falls der Benutzer zum Beispiel sagt: „Alexa, kurbel das Fenster herunter“, kann das erste Sprachverarbeitungssystem die Ausgabe von synthetisierter Sprache veranlassen, die den Satz darstellt: „Damit kann ich dir nicht helfen, hier ist daher SmartCar [z. B. der Name von einer anderen künstlichen Persönlichkeit].“ Das zweite Sprachverarbeitungssystem hinter der künstlichen SmartCar-Persönlichkeit kann dann die passende Antwort bestimmen.
  • Der Benutzer möchte jedoch möglicherweise manchmal diese Anzeige der Änderung in der Verarbeitung nicht hören und / oder möchte möglicherweise manchmal keine synthetisierte Sprache hören, die der Persönlichkeit des zweiten Sprachverarbeitungssystems entspricht. Zum Beispiel kann dies eine Latenz in der Interaktion veranlassen und in einigen Fällen kann der Benutzer aus einer Vielzahl von Gründen die Persönlichkeit des ersten Sprachverarbeitungssystems bevorzugen. Daher kann es zumindest in einigen Situationen vorzuziehen sein, dass Antworten so klingen, als kämen sie von einer Persönlichkeit, unabhängig davon, welches Sprachverarbeitungssystem die Sprache letztendlich verarbeitet. Der Benutzer kann in ähnlicher Weise prägnante Antworten bevorzugen und möchte möglicherweise keine Antworten hören, die eine Zuordnung des zweiten Sprachverarbeitungssystems beinhalten.
  • In einigen Fällen kann daher das erste Sprachverarbeitungssystem zuerst bestimmen, dass es nicht fähig ist, den Befehl zu verarbeiten und / oder eine zugehörige Aktion auszuführen, und / oder dass ein zweites Sprachverarbeitungssystem besser befähigt ist, den Befehl zu verarbeiten und / oder die zugeordnete Aktion auszuführen. Das erste Sprachverarbeitungssystem kann dann das zweite Sprachverarbeitungssystem identifizieren, mit ihm kommunizieren, um es zu veranlassen, den Befehl auszuführen, und Audio entsprechend der Persönlichkeit des ersten Sprachverarbeitungssystems ausgeben. In einigen Ausführungsformen kann das erste Sprachverarbeitungssystem ferner eine Angabe des zweiten Sprachverarbeitungssystems ausgeben. Die Angabe kann zum Beispiel ein Name, Ton und / oder Sprachstil sein, die dem zweiten Sprachverarbeitungssystem zugeordnet sind. In noch anderen Ausführungsformen kann das erste Sprachverarbeitungssystem die weitere Verarbeitung von Audiodaten an das zweite Sprachverarbeitungssystem übergeben.
  • 1 veranschaulicht ein System, das konfiguriert ist, um eine Antwort auf einen Befehl, der in Audiodaten dargestellt ist, gemäß der vorliegenden Offenbarung zu bestimmen. Obwohl die Figuren und die Diskussion der vorliegenden Offenbarung bestimmte Betriebsschritte des Systems in einer bestimmten Reihenfolge darstellen, können die beschriebenen Schritte in einer anderen Reihenfolge durchgeführt werden (sowie bestimmte Schritte entfernt oder hinzugefügt werden), ohne von der Absicht der Offenbarung abzuweichen einen Befehl darstellen. In verschiedenen Ausführungsformen kommuniziert eine Benutzervorrichtung 110, wie etwa ein intelligenter Lautsprecher, ein Fahrzeug oder eine andere derartige sprachgesteuerte Vorrichtung mit einem Remotesystem 120 unter Verwendung eines Netzwerks 199. Während 1 einen intelligenten Lautsprecher als die Benutzervorrichtung 110 veranschaulicht, ist die Offenbarung nicht darauf beschränkt, und die hierin beschriebenen Systeme und Verfahren können unter Verwendung anderer Benutzervorrichtungen 110 implementiert werden, wie etwa Smartphones, Tablet-Computer, PCs oder andere Vorrichtungen.
  • Das Remotesystem 120 empfängt (130) Eingabedaten, die einen Befehl darstellen. Die Benutzervorrichtung 110 kann zum Beispiel bestimmen, dass die Eingabeaudio 11 eine Darstellung eines Weckworts beinhaltet, und entsprechende Eingabeaudiodaten 211 über das Netzwerk 199 an das Remotesystem 120 senden. Um diese Bestimmung zu bewerkstelligen, kann die Benutzervorrichtung 110 Audio unter Verwendung eines oder mehrerer Mikrofone erfassen und entsprechende Audiodaten erzeugen, die eine digitale Zeitbereichsdarstellung von Amplituden des Audios sein können und die als eine Reihe von Abtastwerten dargestellt werden können. Die Benutzervorrichtung 110 kann diese Zeitbereichs-Audiodaten verarbeiten, um verarbeitete Audiodaten zu erzeugen; diese Verarbeitung kann zum Beispiel das Durchführen einer oder mehrerer Fourier-Transformationen, wie etwa einer schnellen FourierTransformation (fast Fourier-transform, FFT) und / oder das Gruppieren von Abtastwerten von Audiodaten in Frames von Audiodaten beinhalten. Die Benutzervorrichtung 110 kann einen Weckwort-Detektor 220 beinhalten (wie nachstehend in Bezug auf 2A und 2B ausführlicher erläutert), der die Frames von Audiodaten verarbeitet, um zu bestimmen, ob das Weckwort darin dargestellt ist. Die Eingabeaudiodaten 211 können eine Darstellung des Weckworts und / oder eine Darstellung anderer Worte als den Befehl beinhalten. Die Benutzervorrichtung 110 kann zusätzliche Daten an das Remotesystem 120 senden, wie etwa eine Zeit der Erkennung des Weckworts und / oder eine Angabe, welches Weckwort erkannt wurde.
  • Das Remotesystem 120 kann unter Verwendung eines ersten Systems in natürlicher Sprache bestimmen (132), dass der Befehl einem zweiten System in natürlicher Sprache entspricht. Das erste System in natürlicher Sprache kann (wie unter Bezugnahme auf 2A und 2B ausführlicher erläutert) eine ASR-Komponente 250 beinhalten, die durch Verarbeiten der Eingabeaudiodaten 211 entsprechende Textdaten bestimmt, die den Befehl darstellen. Das erste System in natürlicher Sprache kann ferner eine NLU-Komponente 260 beinhalten, die die Textdaten verarbeitet, um einen oder mehrere Bereiche des Befehls, eine Absicht des Befehls und / oder einen oder mehrere im Befehl dargestellte Slots zu bestimmen. Eine Identifikationskomponente für ein System in natürlicher Sprache kann dann die Ausgabe der NLU-Komponente 260 verarbeiten, um zu bestimmen, welches einer Vielzahl von Systemen in natürlicher Sprache dem Befehl entspricht (oder diesem am ehesten entspricht). Die Systemidentifikation in natürlicher Sprache kann zum Beispiel eine Liste von Systemen in natürlicher Sprache und zugehörigen Bereiche und / oder Absichten für jedes beinhalten und kann somit ein System in natürlicher Sprache identifizieren, indem es einen Bereich und / oder Absicht mit Einträgen in der Liste abgleicht, die von der NLU-Komponente 260 bestimmt werden.
  • Das erste System in natürlicher Sprache kann dann dem Befehl entsprechende Befehlsdaten an das zweite System in natürlicher Sprache senden (134). Die Befehlsdaten können die Eingabedaten, bestimmte Textdaten und / oder NLU-Daten sein, die von der NLU-Komponente 260 bestimmt werden. Das zweite System in natürlicher Sprache kann dann basierend auf den Befehlsdaten Ergebnisdaten bestimmen, die eine Antwort auf den Befehl darstellen. Die Ergebnisdaten können Audiodaten sein, die synthetisierte Sprache darstellen; diese synthetisierte Sprache kann, wie oben beschrieben, die Persönlichkeit des zweiten Systems in natürlicher Sprache zeigen. Die Ergebnisdaten können stattdessen oder zusätzlich Textdaten, Videodaten und / oder Bilddaten beinhalten.
  • Nachdem das zweite System in natürlicher Sprache die Ergebnisdaten gesendet hat, empfängt (136) sie das erste System in natürlicher Sprache. Die Ergebnisdaten können eine Angabe des zweiten Systems in natürlicher Sprache beinhalten; diese Angabe kann der Name des zweiten Systems in natürlicher Sprache und / oder Text- und / oder Audiodaten sein, die der Persönlichkeit des zweiten Systems in natürlicher Sprache entsprechen. Das erste System in natürlicher Sprache kann dann Ausgabedaten unter Verwendung der Ergebnisdaten bestimmen (138); die Ausgabedaten 212 können eine Angabe des ersten Systems in natürlicher Sprache beinhalten. Diese Angabe kann in ähnlicher Weise der Name des ersten Systems in natürlicher Sprache und / oder Text- und / oder Audiodaten sein, die der Persönlichkeit des ersten Systems in natürlicher Sprache entsprechen.
  • Wie hierin ausführlicher beschrieben, kann das erste System in natürlicher Sprache während bestimmter Situationen auch eine Zuordnung des zweiten Systems in natürlicher Sprache bestimmen (140), was die Ausgabe einer Angabe des zweiten Sprachverarbeitungssystems beinhalten kann. Das erste System in natürlicher Sprache kann auch in anderen Situationen die Verarbeitung der Audiodaten an das zweite System in natürlicher Sprache übergeben. Wie der Begriff hier verwendet wird, bezieht sich „Übergabe“ auf den Vorgang, bei dem das erste System in natürlicher Sprache ein entsprechendes Signal an das zweite System in natürlicher Sprache sendet; das erste System in natürlicher Sprache beendet dann die Verarbeitung der Audiodaten, während das zweite System in natürlicher Sprache mit der Verarbeitung der Audiodaten beginnt.
  • Das erste Sprachverarbeitungssystem kann dann die Ausgabe 12 von Audio entsprechend den Ausgabedaten veranlassen (142). Während der Befehl schließlich durch das zweite System in natürlicher Sprache durchgeführt wird, spiegelt die Antwort an den Benutzer somit die Persönlichkeit des ersten Systems in natürlicher Sprache wider.
  • Das System kann unter Verwendung verschiedener Komponenten arbeiten, wie in den 2A und / oder 2B beschrieben. Die verschiedenen Komponenten können sich auf denselben oder unterschiedlichen physikalischen Vorrichtungen befinden. Wie zum Beispiel in 2A gezeigt, können einige Komponenten auf einer Benutzervorrichtung 110 angeordnet sein, während andere Komponenten auf einem Remotesystem 120 angeordnet sein können; wie in 2B gezeigt, können jedoch die Komponenten auf der Benutzervorrichtung 110 angeordnet sein. Die Kommunikation zwischen verschiedenen Komponenten kann direkt (z. B. über eine Busverbindung) oder über ein oder mehrere Netzwerke 199 erfolgen. Wie nachstehend ausführlicher beschrieben, kann die Benutzervorrichtung 110 einen Weckwort-Detektor 220 zum Erfassen eines oder mehrerer Weckworte, einen Sprachaktivitätsdetektor 222 zum Erfassen einer Äußerung und / oder eine oder mehrere Anwendungen 224 zum Bereitstellen von Ausgaben und / oder Ändern eines Zustands der Benutzervorrichtung 110, wie etwa das Aufleuchten eines Lichts, beinhalten. Wie dargestellt, ist der Weckwort-Detektor 220 auf der Benutzervorrichtung 110 angeordnet, während weitere Sprachverarbeitungskomponenten (wie etwa die NLU-Komponente 260) auf dem Remotesystem 120 angeordnet sind. Die vorliegende Offenbarung ist jedoch nicht nur auf diese Anordnung von Komponenten beschränkt, und jede andere Anordnung von Komponenten liegt innerhalb der Ausführungsformen der vorliegenden Offenbarung. Zum Beispiel kann ein Teil oder die gesamte Sprachverarbeitung von der Benutzervorrichtung 110 durchgeführt werden und die Benutzervorrichtung 110 kann somit keine Audiodaten 211 an das Remotesystem 120 senden.
  • Eine oder mehrere Audioerfassungskomponenten, wie etwa ein Mikrofon oder ein Array von Mikrofonen der Benutzervorrichtung 110, erfassen Eingabeaudiodaten 11 und erzeugen entsprechende Eingabeaudiodaten 211. Der Weckwort-Detektor 220 der Benutzervorrichtung 110 kann die Eingabeaudiodaten 211 verarbeiten, um zu bestimmen, ob Sprache darin dargestellt ist. Die Benutzervorrichtung 110 kann verschiedene Techniken verwenden, um zu bestimmen, ob die Eingabeaudiodaten 211 Sprache beinhalten. In einigen Beispielen kann der Sprachaktivitätsdetektor 222 der Benutzervorrichtung 110 Techniken zur Sprachaktivitätserkennung (voice-activity detection, VAD) anwenden. Solche VAD-Techniken können bestimmen, ob Sprache in Audiodaten vorhanden ist, basierend auf verschiedenen quantitativen Aspekten der Eingabeaudiodaten 211, wie etwa der spektralen Steigung zwischen einem oder mehreren Frames der Audiodaten; die Energiepegel der Audiodaten in einem oder mehreren Spektralbändern; die Signal-Rausch-Verhältnisse der Audiodaten in einem oder mehreren Spektralbändern; oder andere quantitative Aspekte. In anderen Beispielen kann die Benutzervorrichtung 110 einen Klassifikator beinhalten, der dafür konfiguriert ist, Sprache von Hintergrundgeräuschen zu unterscheiden. Der Klassifikator kann durch Techniken wie etwa lineare Klassifikatoren, Support-Vector-Maschinen und Entscheidungsbäume implementiert werden. In noch anderen Beispielen kann die Benutzervorrichtung 110 Techniken des Hidden-Markov-Modells (hidden Markov model, HMM) oder des Gaußschen Mischungsmodells (Gaussian mixture model, GMM) anwenden, um die Audiodaten mit einem oder mehreren akustischen Modellen im Speicher zu vergleichen, wobei die akustischen Modelle beinhalten können, die Sprache, Rauschen (z. B. Umgebungsgeräusche oder Hintergrundgeräusche) oder Stille entsprechen. Noch andere Techniken können verwendet werden, um zu bestimmen, ob Sprache in Audiodaten vorhanden ist.
  • Der Weckwort-Detektor 220 kann bestimmen, dass die Eingabeaudiodaten 211 eine Darstellung eines Weckworts beinhalten (wie nachstehend ausführlicher beschrieben); die Benutzervorrichtung 110 kann danach die Eingabeaudiodaten 211 an das eine oder die mehreren Systeme 120 senden. Wie oben beschrieben, ist ein Beispiel-Weckwort „Alexa“ oder „SmartCar“. Die Benutzervorrichtung 110 kann stattdessen oder zusätzlich die Audiodaten an das eine oder die mehreren Systeme 120 senden, wenn ein Eingabedetektor eine Eingabe erkennt - wie etwa einen Tastendruck, Knopfdruck oder Berührung eines Touchscreens. Ein Beispielknopf ist ein „Push-to-Talk“-Knopf. In jedem Fall sendet die Benutzervorrichtung 110 die Eingabeaudiodaten 211 an den Server 120.
  • Der Weckwort-Detektor 220 kann Audiodaten mit gespeicherten Modellen oder Daten vergleichen, um ein Weckwort zu erkennen. Ein Ansatz zur Weckwort-Erkennung wendet allgemeine kontinuierliche Spracherkennungssysteme mit großem Vokabular (large vocabulary continuous speech recognition, LVCSR) an, um Audiosignale zu decodieren, wobei die Weckwort-Suche in den resultierenden Gittern oder Verwirrungsnetzwerken durchgeführt wird. Die LVCSR-Decodierung kann relativ hohe Rechenressourcen erfordern. Ein weiterer Ansatz zur Weckwort-Erkennung baut HMMs für jedes Weckwort- bzw. Nicht-Weckwort-Sprachsignal auf. Die Nicht-Weckwort-Sprache beinhaltet andere gesprochene Worte, Hintergrundgeräusche usw. Es können ein oder mehrere HMMs gebaut werden, um die Nicht-Weckwort-Spracheigenschaften zu modellieren, die als Füllermodelle bezeichnet werden. Die Viterbi-Decodierung wird verwendet, um den besten Pfad in dem Decodierungsgraphen zu suchen, und die Decodierungsausgabe wird weiter verarbeitet, um die Entscheidung über das Vorhandensein eines Weckworts zu treffen. Dieser Ansatz kann erweitert werden, um diskriminierende Informationen einzubeziehen, indem ein hybrides DNN-HMM-Decodierungs-Framework integriert wird. In einem anderen Beispiel kann der Weckwort-Detektor 220 direkt auf Strukturen eines tiefen neuralen Netzwerks (deep neural network, DNN) / rekursiven neuralen Netzwerks (recursive neural network, RNN) aufgebaut sein, ohne dass ein HMM involviert ist. Eine solche Architektur kann die Posteriors von Weckworts mit Kontextinformationen entweder durch Stapeln von Frames innerhalb eines Kontextfensters für DNN oder durch Verwenden von RNN schätzen. Zur Entscheidungsfindung wird eine anschließende Einstellung eines Posterior-Grenzwerts oder eine Glättung angewendet. Es können auch andere Techniken zur Weckwort-Erkennung verwendet werden, wie sie im Stand der Technik bekannt sind.
  • Sobald das Weckwort durch den Weckwort-Detektor 220 erkannt wird und / oder eine Eingabe durch den Eingabedetektor erkannt wird, kann die Benutzervorrichtung 110 die Audiodaten 211 an das eine oder die mehreren Remotesysteme 120 übertragen. Die Eingabeaudiodaten 211 können Daten beinhalten, die dem Weckwort entsprechen; in anderen Ausführungsformen wird der Abschnitt des Audios, der dem Weckwort entspricht, von der Benutzervorrichtung 110 entfernt, bevor die Eingabeaudiodaten 211 an das eine oder die mehreren Remotesysteme 120 gesendet werden. Im Fall einer Berührungseingabeerkennung können die Eingabeaudiodaten 211 zum Beispiel kein Weckwort beinhalten.
  • In verschiedenen Ausführungsformen kann der Weckwort-Detektor 220 eines einer Vielzahl von Weckwort-Erkennungsmodellen verwenden. Jedes Modell kann darauf trainiert werden, ein anderes Weckwort zu erkennen. In einigen Ausführungsformen kann ein einzelnes Modell mehrere Weckworts erkennen. Jedes Weckwort kann einem anderen Sprachverarbeitungssystem zugeordnet sein. Bei Erkennung eines bestimmten Weckworts kann die Benutzervorrichtung 110 die Audiodaten 211 (und / oder eine Angabe der Erkennung des Weckworts) an ihr entsprechendes Sprachverarbeitungssystem senden.
  • In verschiedenen Ausführungsformen ist das Weckwort-Erkennungsmodell des Weckwort-Detektors 220 implementiert, um Weckworts zu erkennen, die mit verschiedenen Akzenten gesprochen werden, die verschiedenen Ländern, Regionen oder anderen Gebieten entsprechen. Zum Beispiel kann das Weckwort-Erkennungsmodell implementiert werden, um das Weckwort „Alexa“ zu erkennen, unabhängig davon, ob es mit indischem, schottischem oder australischem Akzent gesprochen wird. Das Weckwort-Erkennungsmodell kann auch implementiert werden, um andere Weckworte in anderen Sprachen zu erkennen; diese anderen Sprachen können ähnliche Akzentvariationen aufweisen, für deren Erkennung das Weckwort-Erkennungsmodell ähnlich implementiert sein kann.
  • Der Weckwort-Detektor 220 kann basierend darauf, wie ähnlich es dem gespeicherten Weckwort ist, einen Ähnlichkeitswert für das Kandidaten-Weckwort bestimmen; falls der Ähnlichkeitswert höher als die Weckwort-Erkennungsschwelle ist, bestimmt der Weckwort-Detektor 220, dass das Weckwort in den Audiodaten vorhanden ist, und falls der Ähnlichkeitswert kleiner als die Weckwort-Erkennungsschwelle ist, bestimmt der Weckwort-Detektor 220, dass das Weckwort nicht in den Audiodaten vorhanden ist. Falls zum Beispiel das Kandidaten-Weckwort sehr genau mit dem gespeicherten Weckwort übereinstimmt, kann der Weckwort-Detektor 220 einen Ähnlichkeitswert von 100 bestimmen; falls das Kandidaten-Weckwort überhaupt nicht mit dem gespeicherten Weckwort übereinstimmt, kann der Weckwort-Detektor 220 einen Ähnlichkeitswert von 0 bestimmen. Falls der Weckwort-Detektor 220 bestimmt, dass das Kandidaten-Weckwort teilweise mit dem gespeicherten Weckwort übereinstimmt, kann er einen Ähnlichkeitswert, wie 75 oder 85, bestimmen. Obwohl die Offenbarung hierin einen Ähnlichkeitswert von 0-100 beschreibt, wobei null am wenigsten ähnlich ist und 100 am ähnlichsten ist. Die vorliegende Offenbarung ist nicht auf einen bestimmten Bereich von Werten des Ähnlichkeitswert beschränkt, und jedes System oder Verfahren zum Bestimmen einer Ähnlichkeit zwischen einem Kandidaten-Weckwort, das in erfassten Audiodaten dargestellt ist, und einer gespeicherten Darstellung des Weckworts liegt innerhalb des Umfangs der vorliegenden Offenbarung.
  • Die Benutzervorrichtung 110 kann auch unterschiedliche Weckworte für unterschiedliche Fähigkeiten innerhalb desselben Sprachverarbeitungssystems verwenden. Somit kann die Benutzervorrichtung 110 unter Verwendung der hierin beschriebenen Techniken eingehendes Audio verarbeiten, um eine erste Konfidenz zu bestimmen, dass ein detektiertes Weckwort ein erstes Weckwort ist, das einem ersten Sprachverarbeitungssystem zugeordnet ist (das eine erste Sprachverarbeitungskomponente sein kann (z. B. Fähigkeit usw.) innerhalb des ersten Sprachverarbeitungssystems) sowie eine zweite Konfidenz zu bestimmen, dass das detektierte Weckwort ein zweites Weckwort ist, das einem zweiten Sprachverarbeitungssystem (das ein zweites Sprachverarbeitungssystem oder eine zweite, andere Komponente (z. B. Fähigkeit usw.) sein kann) innerhalb des zweiten Sprachverarbeitungssystems zugeordnet ist. Die unterschiedlichen Systeme können unterschiedlicher ASR-Verarbeitung, unterschiedlicher NLU-Verarbeitung, unterschiedlicher TTS-Verarbeitung, unterschiedlichen Bereichen / Absichten oder anderen Unterschieden zugeordnet sein.
  • Nach Empfang durch das eine oder die mehreren Systeme 120 und / oder nach Bestimmung durch die Benutzervorrichtung 110 können die Eingabeaudiodaten 211 an eine Orchestratorkomponente 240 gesendet werden. Die Orchestratorkomponente 240 kann einen Arbeitsspeicher und eine Logik beinhalten, die es ihr ermöglichen, verschiedene Teile und Formen von Daten an verschiedene Komponenten des Systems zu übertragen sowie andere Operationen, wie hierin beschrieben, durchzuführen. Die Orchestratorkomponente 240 kann ein Sprachverarbeitungssystemmanager und / oder eines oder mehrere der Sprachverarbeitungssysteme 292 sein oder beinhalten, die verwendet werden können, um zu bestimmen, welche, falls vorhanden, der ASR 250, NLU 260 und / oder Komponenten des TTS 280 die Audiodaten 211 empfangen und / oder verarbeiten sollten. In einigen Ausführungsformen umfasst die Orchestratorkomponente 240 eine oder mehrere ASR-Komponenten 250, NLU-Komponenten 260, TTS-Komponenten 280 und / oder andere Verarbeitungskomponenten und verarbeitet die Eingabeaudiodaten 211, bevor sie sie und / oder andere Daten an eine oder mehrere Sprachverarbeitungskomponenten 292 zur weiteren Verarbeitung sendet. In anderen Ausführungsformen sendet die Orchestratorkomponente 240 die Eingabeaudiodaten 211 zur Verarbeitung an eine oder mehrere der Sprachverarbeitungskomponenten 292.
  • Wie oben beschrieben, kann die Orchestratorkomponente 240 (und / oder eines oder mehrere der Sprachverarbeitungssysteme 292) bestimmen, dass die Eingabeaudiodaten 211 einem ersten Sprachverarbeitungssystem 292a zugeordnet sind (z. B. beinhaltet es eine Darstellung eines Weckworts, die dem ersten Sprachverarbeitungssystem 292a zugeordnet ist, oder beinhaltet es keine Darstellung irgendeines Weckworts und das erste Sprachverarbeitungssystem 292a wird standardmäßig ausgewählt). Der Weckwort-Detektor 220 kann zum Beispiel das Vorhandensein eines bestimmten Weckworts erkennen und eine Angabe des Weckworts an den Sprachverarbeitungssystemmanager senden. Stattdessen oder zusätzlich kann die ASR-Komponente 250 Textdaten bestimmen, die den Audiodaten 211 entsprechen, und die Textdaten an den Sprachverarbeitungssystemmanager senden, der dann bestimmen kann, dass das Weckwort in dem Text dargestellt ist.
  • Eine Sprachverarbeitungssystem-Identifikationskomponente 296 kann verwendet werden, um zu bestimmen, dass, obwohl die Eingabeaudiodaten 211 dem ersten Sprachverarbeitungssystem zugeordnet sind, ein in den Eingabeaudiodaten 211 dargestellter Befehl einem zweiten Sprachverarbeitungssystem entspricht. Die Sprachverarbeitungssystem-Identifikationskomponente 296 kann zum Beispiel in einem Computerarbeitsspeicher eine Liste von Sprachverarbeitungssystemen und zugehörigen Bereiche, Absichten und / oder Entitäten beinhalten. Die Sprachverarbeitungssystem-Identifikationskomponente 296 kann bestimmte Bereiche, Absichten und / oder Entitäten von der NLU-Komponente 260 empfangen und ein passendes Sprachverarbeitungssystem aus der Liste auswählen. Die Sprachverarbeitungssystem-Identifikationskomponente 296 kann auch oder stattdessen ein trainiertes Modell beinhalten, wie etwa einen Klassifikator, der die Audiodaten 211 (und / oder daraus bestimmte Textdaten) verarbeitet, um ein entsprechendes Sprachverarbeitungssystem auszugeben.
  • Wie unten unter Bezugnahme auf 4B erläutert, kann die Benutzervorrichtung 110 und / oder das Remotesystem 120 ferner eine Zuordnungsbestimmungskomponente 298 zum Bestimmen beinhalten, ob eine Zuordnung (z. B. eine Angabe) des zweiten Sprachverarbeitungssystems ausgegeben werden soll. Die Orchestratorkomponente 240 kann in anderen Ausführungsformen die Verarbeitung der Audiodaten 211 von dem ersten Sprachverarbeitungssystem 292a an das zweite Sprachverarbeitungssystem 292b übergeben.
  • Das erste Sprachverarbeitungssystem 292a kann einen ersten Satz von Fähigkeiten 290, Anwendungen und / oder Sprachstilen steuern, darauf Zugriff haben oder diesem anderweitig zugeordnet sein, und das zweite Sprachverarbeitungssystem 292b kann einen ersten Satz von Fähigkeiten 290, Anwendungen und / oder Sprachstilen steuern, darauf Zugriff haben oder diesem anderweitig zugeordnet sein. Der erste und der zweite Satz von Fähigkeiten 290 können gemeinsame Fähigkeiten sowie Fähigkeiten beinhalten, die exklusiv für jedes Sprachverarbeitungssystem 292 sind. In einigen Ausführungsformen ist ein erstes Sprachverarbeitungssystem 292a ein Allzweck-Sprachverarbeitungssystem und kann solche Fähigkeiten und Anwendungen wie Wettervorhersagen, Restaurantreservierungen, Einkaufsdienste und Internetsuchen bereitstellen; ein zweites Sprachverarbeitungssystem 292b ist ein fahrzeugspezifisches Sprachverarbeitungssystem und kann solche Fähigkeiten und Anwendungen wie das Ändern eines Zustands der Benutzervorrichtung 110 bereitstellen (z. B. das Anheben / Absenken eines Fensters, das Einstellen eines Thermostats und / oder das Anpassen eines Sitzes) und / oder Bereitstellung von Diagnoseinformationen. Einige Anwendungen und Fähigkeiten können beiden Sprachverarbeitungssystemen 292 gemeinsam sein (z. B. Abspielen von Musik oder Bereitstellen von Navigationsinformationen). Jede beliebige Anzahl von Sprachverarbeitungssystemen 292 mit jeder Art von Anwendungen oder Fähigkeiten liegt jedoch innerhalb des Umfangs der vorliegenden Offenbarung.
  • Der Sprachverarbeitungssystemmanager leitet die Verarbeitung der Eingabedaten 311 unter Verwendung, in einigen Ausführungsformen, einer oder mehrerer Komponenten in einem Sprachverarbeitungssystem 292, wie etwa einer ASR-Komponente 250 und einer NLU-Komponente 260. In anderen Ausführungsformen beinhaltet der Sprachverarbeitungssystemmanager eine NLU-Komponente für die NLU-Verarbeitung; diese NLU kann verwendet werden, um alle Audiodaten zu verarbeiten, während andere NLU-Komponenten 260 in dem Sprachverarbeitungssystem 292 verwendet werden können, um andere Audiodaten zu verarbeiten (und basierend auf einem in den Audiodaten erkannten Weckwort ausgewählt werden können). Wie nachstehend ausführlicher erläutert, kann der Sprachverarbeitungssystemmanager und / oder das Sprachverarbeitungssystem 292 eine ASR- und / oder NLU-Verarbeitung durchführen, um einen Bereich, eine Absicht und / oder Bedeutung entsprechend den Audiodaten 211 zu bestimmen. Der Sprachverarbeitungssystemmanager und / oder das Sprachverarbeitungssystem 292 kann stattdessen oder zusätzlich Schlüsselworte in den Eingabeaudiodaten 211 identifizieren und einen Bereich, eine Absicht und / oder Bedeutung entsprechend den Schlüsselworten (z. B. Entitätenauflösung) identifizieren. Der Sprachverarbeitungssystemmanager und / oder das Sprachverarbeitungssystem 292 kann ferner einen Benutzer identifizieren, der einer Äußerung in den Eingabeaudiodaten 211 zugeordnet ist, und einen Bereich, eine Absicht und / oder Bedeutung entsprechend dem Benutzer identifizieren. Der Sprachverarbeitungssystemmanager und / oder das Sprachverarbeitungssystem 292 kann ferner einen Bereich, eine Absicht und / oder Bedeutung identifizieren, die den Eingabeaudiodaten 211 zugeordnet sind, basierend auf Informationen in einem Benutzerprofil, das dem Benutzer zugeordnet ist (wie etwa Nutzungsverlaufsinformationen), einem Standort der Benutzervorrichtung 110, einer Tageszeit, Woche, einem Monat oder Jahr und / oder Temperaturinformationen.
  • Der Sprachverarbeitungssystemmanager und / oder das Sprachverarbeitungssystem 292 kann einen bestimmten Bereich, eine Absicht und / oder Bedeutung mit einer Liste entsprechender Anwendungen oder Fähigkeiten vergleichen, die jedem Sprachverarbeitungssystem 292 zugeordnet sind. Der Vergleich kann das Bestimmen einer Anzahl ganzer oder teilweiser Übereinstimmungen des Bereichs, der Absicht und / oder Bedeutung beinhalten, die in jeder Liste vorhanden sind. Der Sprachverarbeitungssystemmanager und / oder das Sprachverarbeitungssystem 292 kann einen Wert für jedes Sprachverarbeitungssystem 292 bestimmen, der der Fähigkeit jedes Sprachverarbeitungssystems 292 entspricht, auf einen Befehl zu antworten, der in den Eingabeaudiodaten 211 dargestellt ist. Falls bestimmt wird, dass der Bereich, die Absicht und / oder Bedeutung einem ersten Sprachverarbeitungssystem 292 zugeordnet sind, aber nicht einem zweiten Sprachverarbeitungssystem 292, kann der Sprachverarbeitungssystemmanager dem ersten Sprachverarbeitungssystem 292 einen höheren Wert zuweisen als dem zweiten Sprachverarbeitungssystem 292. Falls bestimmt wird, dass der Bereich, die Absicht und / oder Bedeutung sowohl dem ersten Sprachverarbeitungssystem 292 als auch dem zweiten Sprachverarbeitungssystem 292 zugeordnet sind, kann der Sprachverarbeitungssystemmanager die Rangordnung basierend auf anderen Daten, wie etwa dem Benutzeridentifikation, Benutzerprofildaten, Standort oder anderen Informationen, bestimmen.
  • In einigen Ausführungsformen kommunizieren der Orchestrator 240 und / oder der Sprachverarbeitungssystemmanager mit den Sprachverarbeitungssystemen 292 unter Verwendung einer Anwendungsprogrammierschnittstelle (application programming interface, API). Die API kann verwendet werden, um Daten, Befehle oder andere Informationen zu und / oder von den Sprachverarbeitungssystemen 292 zu senden und / oder zu empfangen. Zum Beispiel kann der Orchestrator 240 über die API die Eingabeaudiodaten 211 an ein vom Sprachverarbeitungssystemmanager ausgewähltes Sprachverarbeitungssystem senden und kann von dem ausgewählten Sprachverarbeitungssystem 292 einen Befehl und / oder Daten empfangen, die auf die Audiodaten 211 ansprechen.
  • In einigen Ausführungsformen beinhaltet der Sprachverarbeitungssystemmanager, wie oben beschrieben, Verarbeitungskomponenten, wie etwa ASR- und / oder NLU-Komponenten, die verwendet werden können, um ein Sprachverarbeitungssystem 292 auszuwählen. Alternativ oder zusätzlich kommuniziert in anderen Ausführungsformen der Sprachverarbeitungssystemmanager zum Beispiel über eine API mit einem bestimmten Sprachverarbeitungssystem 292, um zu bewirken, dass das Sprachverarbeitungssystem 292 die Verarbeitung ausführt, und empfängt als Antwort Daten, die der Verarbeitung und / oder einem ausgewählten Sprachverarbeitungssystem 292 entsprechen. Der Sprachverarbeitungssystemmanager kann somit eine oder mehrere Anwendungsprogrammierschnittstellen (application programming interfaces, APIs) zum Kommunizieren mit einem bestimmten Sprachverarbeitungssystem 292, einen Konfigurationsmanager zum Bestimmen von Eigenschaften der Benutzervorrichtung 110 und / oder einen Ereignisbehandler zum Behandeln von Ereignissen, die von der Benutzervorrichtung 110 und / oder Sprachverarbeitungssystemen 292 empfangen werden, beinhalten, aber kann möglicherweise keinen ASR-Prozessor oder NLU-Prozessor, der stattdessen in einem bestimmten Sprachverarbeitungssystem 292 beinhaltet sein kann, beinhalten.
  • Jedes Sprachverarbeitungssystem 292 kann eine ASR-Komponente 250 beinhalten, die die Eingabeaudiodaten 211 in Textdaten transkribieren kann. Die von der ASR-Komponente 250 ausgegebenen Textdaten können eine oder mehr als eine (z. B. in Form einer N-besten Liste) ASR-Hypothesen darstellen, die Sprache darstellen, die in den Eingabeaudiodaten 211 dargestellt ist. Die ASR-Komponente 250 interpretiert die Sprache in den Eingabeaudiodaten 211 basierend auf einer Ähnlichkeit zwischen den Audiodaten 211 und vorab festgelegten Sprachmodellen. Zum Beispiel kann die ASR-Komponente 250 die Eingabeaudiodaten 211 mit Modellen für Laute (z. B. akustische Einheiten wie Phoneme, Senone, Phone usw.) und Lautfolgen vergleichen, um Worte zu identifizieren, die mit der Lautfolge der Sprache übereinstimmen, die in den Eingabeaudiodaten 211 dargestellt ist. Die ASR-Komponente 250 sendet die dadurch erzeugten Textdaten an eine NLU-Komponente 260, in einigen Ausführungsformen über die Orchestratorkomponente 240. Die von der ASR-Komponente 250 an die NLU-Komponente 260 gesendeten Textdaten können eine einzelne am besten bewertete ASR-Hypothese beinhalten oder können eine N-beste Liste beinhalten, die mehrere am besten bewertete ASR-Hypothesen beinhaltet. Eine N-beste Liste kann zusätzlich einen jeweilige Wert beinhalten, der jeder darin dargestellten ASR-Hypothese zugeordnet ist.
  • Jedes Sprachverarbeitungssystem 292 kann ferner eine NLU-Komponente 260 beinhalten, die ausführlicher in 5 und 6 gezeigt ist, die versucht, eine semantische Interpretation des Satzes / der Sätze oder Aussage(n), die in den darin eingegebenen Textdaten dargestellt sind, vorzunehmen, indem eine oder mehrere Bedeutungen bestimmt werden, die dem Satz / den Sätzen oder Aussage(n) zugeordnet sind, die in den Textdaten dargestellt sind. Die NLU-Komponente 260 kann eine Absicht bestimmen, die eine Aktion darstellt, die ein Benutzer auszuführen wünscht, und kann Informationen bestimmen, die es einer Vorrichtung (z. B. der Benutzervorrichtung 110, dem einen oder den mehreren Systemen 120, einer Fähigkeitskomponente 290, einem oder mehreren Fähigkeitssystemen 225 usw.) ermöglichen, die Absicht auszuführen. Falls zum Beispiel die Textdaten „Spiele Africa von Toto“ entsprechen, kann die NLU-Komponente 260 eine Absicht bestimmen, dass das System Musik ausgibt, und kann „Toto“ als einen Künstler und „Africa“ als das Lied identifizieren. Falls zum Beispiel die Textdaten „wie ist das Wetter“ entsprechen, kann die NLU-Komponente 260 eine Absicht bestimmen, dass das System Wetterinformationen ausgibt, die einem geografischen Standort der Benutzervorrichtung 110 zugeordnet sind. Falls in einem anderen Beispiel die Textdaten „Licht ausschalten“ entsprechen, kann die NLU-Komponente 260 eine Absicht bestimmen, dass das System das Licht ausschaltet, das der Benutzervorrichtung 110 oder dem Benutzer 5 zugeordnet ist.
  • Die NLU-Ergebnisdaten können (zum Beispiel über die Orchestratorkomponente 240) von der NLU-Komponente 260 (die markierte Textdaten, Absichtsindikatoren usw. beinhalten kann) an eine oder mehrere Fähigkeitskomponenten 290 gesendet werden. Falls die NLU-Ergebnisdaten eine einzelne NLU-Hypothese beinhalten, kann die NLU-Komponente 260 die NLU-Ergebnisdaten an die eine oder die mehreren Fähigkeitskomponenten 290 senden, die der NLU-Hypothese zugeordnet sind. Falls die NLU-Ergebnisdaten eine N-beste Liste von NLU-Hypothesen beinhalten, kann die NLU-Komponente 260 die am besten bewertete NLU-Hypothese an eine oder mehrere Fähigkeitskomponenten 290 senden, die der am besten bewerteten NLU-Hypothese zugeordnet sind. Wie oben beschrieben, können die NLU-Komponente 260 und / oder Fähigkeitskomponente 290 unter Verwendung des Interaktionswerts Textdaten bestimmen, die eine Angabe einer Übergabe von einem Sprachverarbeitungssystem 292 an ein anderes darstellen.
  • Eine Fähigkeitskomponente 290 kann Software sein, die auf dem einen oder den mehreren Systemen 120 läuft, die einer Softwareanwendung ähnlich ist. Das heißt, eine Fähigkeitskomponente 290 kann dem einen oder den mehreren Systemen 120 ermöglichen, eine bestimmte Funktionalität auszuführen, um Daten bereitzustellen oder eine andere angeforderte Ausgabe zu erzeugen. Das eine oder die mehreren Systeme 120 kann mit mehr als einer Fähigkeitskomponente 290 konfiguriert sein. Zum Beispiel kann eine Wetterdienst-Fähigkeitskomponente das eine oder die mehreren Systeme 120 in die Lage versetzen, Wetterinformationen bereitzustellen, eine Autodienst-Fähigkeitskomponente kann das eine oder die mehreren Systeme 120 in die Lage versetzen, eine Fahrt in Bezug auf einen Taxi- oder Mitfahrdienst zu buchen, eine Restaurant-Fähigkeitskomponente kann das eine oder die mehreren Systeme 120 in die Lage versetzen, eine Pizza in Bezug auf das Online- Bestellsystem des Restaurants zu bestellen, usw. Eine Fähigkeitskomponente 290 kann im Zusammenhang zwischen dem einen oder den mehreren Systemen 120 und anderen Vorrichtungen, wie etwa der Benutzervorrichtung 110, betreiben, um gewisse Funktionen abzuschließen. Eingaben in eine Fähigkeitskomponente 290 können von Sprachverarbeitungsinteraktionen oder durch andere Interaktionen oder Eingabequellen kommen. Eine Fähigkeitskomponente 290 kann Hardware, Software, Firmware oder dergleichen beinhalten, die einer bestimmten Fähigkeitskomponente 290 zugeordnet oder von verschiedenen Fähigkeitskomponenten 290 gemeinsam genutzt werden kann.
  • Ein oder mehrere Fähigkeitssysteme 225 können mit einer oder mehreren Fähigkeitskomponenten 290 innerhalb des einen oder der mehreren Systeme 120 direkt und / oder über die Orchestratorkomponente 240 kommunizieren. Eines oder mehrere Fähigkeitssysteme 225 können so konfiguriert sein, dass sie eine oder mehrere Aktionen ausführen. Eine Fähigkeit kann es einem oder mehreren Fähigkeitssystemen 225 ermöglichen, eine bestimmte Funktionalität durchzuführen, um Daten bereitzustellen oder eine andere von einem Benutzer angeforderte Aktion auszuführen. Zum Beispiel kann eine Wetterdienstfähigkeit einen oder mehrere Fähigkeitsdiensten 225 in die Lage versetzen, Wetterinformationen an das eine oder die mehreren Systeme 120 bereitzustellen, eine Autodienstfähigkeit kann einen oder mehrere Fähigkeitsdienste 225 in die Lage versetzen, eine Fahrt in Bezug auf einen Taxi- oder Mitfahrdienst zu buchen, eine Pizzabestellfähigkeit kann einen oder mehrere Fähigkeitsdienste 225 in die Lage versetzen, eine Pizza in Bezug auf das Online-Bestellsystem des Restaurants zu bestellen, usw. Zusätzliche Arten von Fähigkeiten beinhalten Hausautomatisierungsfähigkeiten (z. B. Fähigkeiten, die einen Benutzer in die Lage versetzen, Hausvorrichtungen, wie Lichter, Türschlösser, Kameras, Thermostate, usw. zu steuern), Unterhaltungsvorrichtungsfähigkeiten (z. B. Fähigkeiten, die einen Benutzer in die Lage versetzen, Unterhaltungsvorrichtungen, wie smarte Fernseher, zu steuern), Videofähigkeiten, Blitzbesprechungsfähigkeiten sowie maßgeschneiderte Fähigkeiten, die nicht einer vorkonfigurierten Art von Fähigkeit zugeordnet sind. Das eine oder die mehreren System(e) 120 können eine Fähigkeitskomponente 290 beinhalten, die dazu bestimmt ist, mit dem einen oder den mehreren Fähigkeitssystemen 225 zu interagieren. Eine Fähigkeit, eine Fähigkeitsvorrichtung oder eine Fähigkeitskomponente kann eine Fähigkeitskomponente 290, die von dem einen oder den mehreren Systemen 120 betrieben wird, und / oder eine Fähigkeit beinhalten, die von dem einen oder den mehreren Fähigkeitssystemen 225 betrieben wird.
  • Der Sprachverarbeitungssystemmanager und / oder jedes Sprachverarbeitungssystem 292 kann eine TTS-Komponente 280 beinhalten, die ausführlicher in 7 gezeigt ist, die Audiodaten (z. B. synthetisierte Sprache) aus Textdaten unter Verwendung eines oder mehrerer unterschiedlicher Verfahren erzeugt. In die TTS-Komponente 280 eingegebene Textdaten können von einer Fähigkeitskomponente 290, der Orchestratorkomponente 240 und / oder einer anderen Komponente des Systems kommen. Die Textdaten können eine Angabe einer Sprachverarbeitungskomponente und / oder Daten beinhalten, die auf einen Befehl ansprechen.
  • Das eine oder die mehreren System(e) 120 können eine Benutzererkennungskomponente 295 beinhalten, die in 8 ausführlicher gezeigt ist, die einen oder mehrere Benutzer erkennt, die der Dateneingabe in das System zugeordnet sind. Die Benutzererkennungskomponente 295 kann die von der ASR-Komponente 250 ausgegebenen Audiodaten 211 und / oder Textdaten als Eingabe nehmen. Die Benutzererkennungskomponente 295 kann eine Benutzererkennung ausführen, indem sie Audioeigenschaften in den Eingabeaudiodaten 211 mit gespeicherten Audioeigenschaften von Benutzern vergleicht. Die Benutzererkennungskomponente 295 kann auch eine Benutzererkennung ausführen, indem biometrische Daten (z. B. Fingerabdruckdaten, Irisdaten usw.), die von dem System in Korrelation mit der aktuellen Benutzereingabe empfangen wurden, mit gespeicherten biometrischen Daten von Benutzern verglichen werden. Die Benutzererkennungskomponente 295 kann ferner eine Benutzererkennung ausführen, indem sie Bilddaten (z. B. einschließlich einer Darstellung mindestens eines Merkmals eines Benutzers), die von dem System in Korrelation mit der aktuellen Benutzereingabe empfangen wurden, mit gespeicherten Bilddaten vergleicht, die Darstellungen von Merkmalen verschiedener Benutzer beinhalten. Die Benutzererkennungskomponente 295 kann zusätzliche Benutzererkennungsprozesse ausführen, die solche im Stand der Technik bekannte beinhalten.
  • Die Benutzererkennungskomponente 295 bestimmt Werte, die angeben, ob eine Benutzereingabe von einem bestimmten Benutzer stammt. Zum Beispiel kann ein erster Wert eine Wahrscheinlichkeit angeben, dass die Benutzereingabe von einem ersten Benutzer stammt, ein zweiter Wert kann eine Wahrscheinlichkeit angeben, dass die Benutzereingabe von einem zweiten Benutzer stammt usw. Die Benutzererkennungskomponente 295 bestimmt auch eine Gesamtkonfidenz bezüglich der Genauigkeit von Benutzererkennungsoperationen.
  • Die Ausgabe der Benutzererkennungskomponente 295 kann eine einzelne Benutzerkennung beinhalten, die dem wahrscheinlichsten Benutzer entspricht, von dem die Benutzereingabe stammt. Alternativ kann die Ausgabe der Benutzererkennungskomponente 295 eine N-beste Liste von Benutzerkennungen mit jeweiligen Werten beinhalten, die Wahrscheinlichkeiten angeben, dass die Benutzereingabe von jeweiligen Benutzern stammt. Die Ausgabe der Benutzererkennungskomponente 295 kann verwendet werden, um die NLU-Verarbeitung sowie die Verarbeitung, die von anderen Komponenten des Systems durchgeführt wird, zu informieren. Wie oben beschrieben, kann die Interaktionsbestimmungskomponente 296 diese Benutzerkennung verwenden, um ein Benutzerkonto im Profilspeicher 270 zu identifizieren.
  • Das eine oder die mehreren System(e) 120 können einen Profilspeicher 270 beinhalten. Der Profilspeicher 270 kann eine Vielzahl von Informationen beinhalten, die sich auf einzelne Benutzer, Benutzergruppen, Vorrichtungen usw. beziehen, die mit dem System interagieren. Ein „Profil“ bezieht sich auf einen Satz von Daten, die einem Benutzer, einer Vorrichtung usw. zugeordnet sind. Die Daten eines Profils können Präferenzen beinhalten, die für den Benutzer, die Vorrichtung usw. spezifisch sind; Eingabe- und Ausgabefähigkeiten der Vorrichtung; Informationen zur Internetverbindung; bibliografische Informationen des Benutzers; Abonnementinformationen sowie andere Informationen.
  • Der Profilspeicher 270 kann ein oder mehrere Benutzerprofile beinhalten, wobei jedes Benutzerprofil einer anderen Benutzerkennung zugeordnet ist. Jedes Benutzerprofil kann verschiedene Benutzeridentifizierungsinformationen beinhalten. Jedes Benutzerprofil kann auch Präferenzen des Benutzers und / oder eine oder mehrere Vorrichtungskennungen beinhalten, die eine oder mehrere Vorrichtungen des Benutzers darstellen. Wenn sich ein Benutzer bei einer Anwendung anmeldet, die auf einer Benutzervorrichtung 110 installiert ist, kann das Benutzerprofil (das den präsentierten Anmeldeinformationen zugeordnet ist) aktualisiert werden, um Informationen über die Benutzervorrichtung 110 zu beinhalten. Wie beschrieben, kann der Profilspeicher 270 ferner Daten beinhalten, die einen Interaktionsverlauf eines Benutzers zeigen, einschließlich Befehlen und Empfangszeiten von Befehlen. Der Profilspeicher 270 kann ferner Daten beinhalten, die zeigen, wann ein zweiter Benutzer anwesend war, um einen Hinweis auf eine Übergabe für einen von einem ersten Benutzer geäußerten Befehl zu hören.
  • Der Profilspeicher 270 kann ein oder mehrere Gruppenprofile beinhalten. Jedes Gruppenprofil kann einer anderen Gruppenkennung zugeordnet werden. Ein Gruppenprofil kann für eine Gruppe von Benutzern spezifisch sein. Das heißt, ein Gruppenprofil kann zwei oder mehreren individuellen Benutzerprofilen zugeordnet werden. Zum Beispiel kann ein Gruppenprofil ein Haushaltsprofil sein, das Benutzerprofilen zugeordnet ist, die mehreren Benutzern eines einzelnen Haushalts zugeordnet sind. Ein Gruppenprofil kann Präferenzen beinhalten, die von allen ihm zugeordneten Benutzerprofilen geteilt werden. Jedes einem Gruppenprofil zugeordnete Benutzerprofil kann zusätzlich Präferenzen beinhalten, die für den dazu zugeordneten Benutzer spezifisch sind. Das heißt, jedes Benutzerprofil kann Präferenzen beinhalten, die von einem oder mehreren anderen Benutzerprofilen, die demselben Gruppenprofil zugeordnet sind, einzigartig sind. Ein Benutzerprofil kann ein eigenständiges Profil sein oder kann einem Gruppenprofil zugeordnet sein.
  • Der Profilspeicher 270 kann ein oder mehrere Vorrichtungsprofile beinhalten. Jedes Vorrichtungsprofil kann einer anderen Vorrichtungskennung zugeordnet werden. Jedes Vorrichtungsprofil kann verschiedene Vorrichtungsidentifizierungsinformationen beinhalten. Jedes Vorrichtungsprofil kann auch eine oder mehrere Benutzerkennungen beinhalten, die einen oder mehrere Benutzer darstellen, die der Vorrichtung zugeordnet sind. Zum Beispiel kann das Profil einer Haushaltsvorrichtung die Benutzerkennungen von Benutzern des Haushalts beinhalten.
  • Das System kann so konfiguriert werden, dass es Benutzerberechtigungen beinhaltet, und darf hierin offenbarte Aktivitäten nur ausführen, wenn dies von einem Benutzer genehmigt wurde. Wie oben beschrieben, können diese Berechtigungen eine Gewährung (oder Verweigerung) zur Verwendung eines bestimmten Sprachverarbeitungssystems 292 beinhalten. Die hierin beschriebenen Systeme, Vorrichtungen, Komponenten und Techniken können daher so konfiguriert werden, dass sie die Verarbeitung gegebenenfalls einschränken und Benutzerinformationen nur in einer Weise verarbeiten, die die Einhaltung aller entsprechenden Gesetze, Vorschriften, Standards und dergleichen gewährleistet. Das System und die Techniken können auf geografischer Basis implementiert werden, um die Einhaltung von Gesetzen in verschiedenen Gerichtsbarkeiten und Entitäten zu gewährleisten, in denen sich die Komponenten des Systems und / oder der Benutzer befinden.
  • 3A und 3B veranschaulichen Systeme zum Verarbeiten von Sprache gemäß Ausführungsformen der vorliegenden Erfindung. Unter Bezugnahme zuerst auf 3A beinhaltet ein erstes Sprachverarbeitungssystem 292a eine erste ASR-Komponente 250a, eine erste NLU-Komponente 260a, eine erste TTS-Komponente 280a und / oder eine erste Fähigkeitskomponente 290a (zusätzlich zu einigen oder allen der anderen oben beschriebenen Komponenten mit Bezug auf die 2A oder 2B). Ein zweites Sprachverarbeitungssystem 292b beinhaltet eine zweite ASR-Komponente 250b, eine zweite NLU-Komponente 260b, eine zweite TTS-Komponente 280b und / oder eine zweite Fähigkeitskomponente 290a (zusätzlich zu einigen oder allen der anderen oben beschriebenen Komponenten mit Bezug auf die 2A oder 2B). Eine beliebige Anzahl zusätzlicher Sprachverarbeitungssysteme 292 liegt innerhalb des Umfangs der vorliegenden Offenbarung. In einigen Ausführungsformen teilen sich das erste und das zweite Sprachverarbeitungssystem 292a, 292b eine oder mehrere derselben ASR-Komponente 250, NLU-Komponente 260, TTS-Komponente 280 und / oder Fähigkeitskomponente 290.
  • Wie oben erläutert, empfängt die erste Sprachverarbeitungskomponente 292a Eingabedaten 311 von der Benutzervorrichtung 110. Die Eingabedaten 311 können die Audiodaten 211 sein oder beinhalten und können eine Darstellung eines einzelnen Satzes (z. B. „Alexa, wie spät ist es?“) oder eines oder mehrerer Sätze einer Dialoginteraktion mit mehreren Wortwechseln mit dem Benutzer sein (z. B. „Alexa, reserviere ein Restaurant“, „Dienstag um 20:00 Uhr“ und „Italienisch“) Die erste Sprachverarbeitungskomponente 292a bestimmt Ausgabedaten 312, die wie hierin beschrieben sein oder einige oder alle der Ausgabeaudiodaten 212 beinhalten können und sendet sie zur Ausgabe an die Benutzervorrichtung 110. Die Ausgabedaten 312 können in ähnlicher Weise einen einzelnen Satz synthetisierter Sprache darstellen (z. B. „Drei Uhr“) oder können ein oder mehrere Sätze eines Dialogs mit mehreren Wortwechseln sein (z. B. „OK, wann?“ und „OK, was für eine Art von Restaurant?“).
  • Wie oben erläutert, kann der Sprachverarbeitungssystemmanager die Eingabedaten 311 verarbeiten, um das erste Sprachverarbeitungssystem 292a (das Standardsystem, wie etwa eines, das einer Benutzereingabe der Benutzervorrichtung 110 zugeordnet ist, wie etwa einem Knopfdruck) und / oder das dem Weckwort zugeordnete System) zu bestimmen und um das zweite Sprachverarbeitungssystem 292b zu bestimmen (wie zum Beispiel durch mindestens eine Ausgabe der NLU-Komponente 260 angegeben). Beim Empfang der Eingabedaten 311 kann das erste Sprachverarbeitungssystem 292a erste Ausgabedaten 312 bestimmen, die zuerst den Empfang bestätigen, wie etwa ein Piepton, ein Ton oder ein anderer derartiger Laut.
  • Das erste Sprachverarbeitungssystem 292a kann die Eingabedaten 311 verarbeiten (zum Beispiel unter Verwendung der NLU-Komponente 260), um einen in den Eingabedaten 311 dargestellten Befehl zu bestimmen, und kann dem Befehl entsprechende Befehlsdaten 302 bestimmen. Die Befehlsdaten 302 können zum Beispiel Textdaten sein, die Worte in den Eingabedaten 311 (wie etwa von der ASR-Komponente 250 ausgegebene Textdaten) und / oder einen Bereich, eine Absicht und / oder Entität entsprechend dem Befehl (als Ausgabe z. B. durch die NLU-Komponente 260) darstellen. Die Befehlsdaten 302 können stattdessen oder zusätzlich einen API-Aufruf beinhalten, der dem zweiten Sprachverarbeitungssystem 292b entspricht. In noch anderen Ausführungsformen beinhalten die Befehlsdaten 302 eine Darstellung der Eingabeaudiodaten 211.
  • Falls zum Beispiel die Eingabedaten 311 eine Darstellung des Satzes „Alexa, kurbel das Fenster herunter“ beinhalten, kann das erste Sprachverarbeitungssystem 292a die Eingabedaten 311 verarbeiten, um entsprechende Textdaten zu bestimmen und um zu bestimmen, dass ein Bereich, der den Eingabedaten 311 entspricht, (zum Beispiel) „Automobil“ ist. Das Sprachverarbeitungssystem 292a kann ferner bestimmen, dass eine Absicht, die den Eingabedaten 311 entspricht, „Automobilzustand ändern“ ist und dass den Eingabedaten 311 zugeordnete Entitäten „Fenster“ und „herunter“ sind. Abhängig von dem bestimmten zweiten Sprachverarbeitungssystem 292b und seinen Kommunikationsanforderungen kann das erste Sprachverarbeitungssystem 292a in den Befehlsdaten 302 die Eingabedaten 311 selbst, die Audiodaten 211 und den Eingabedaten 311 entsprechende Textdaten, den Bereich, die Absicht und / oder die Entitäten und / oder einen API-Aufruf an eine Fenstersteuerungs-API beinhalten. Jede Art von Befehlsdaten 302, die dem in den Eingabedaten 311 dargestellten Befehl entsprechen, liegt innerhalb des Umfangs der vorliegenden Offenbarung.
  • Das zweite Sprachverarbeitungssystem 292b kann dann die Befehlsdaten 302 verarbeiten, um Antwortdaten 304 zu bestimmen. Die Verarbeitung der Befehlsdaten 302 durch das zweite Sprachverarbeitungssystem 292b kann ähnlich sein, wie das erste Sprachverarbeitungssystem 292a die Eingabedaten 311 verarbeitet, wie oben beschrieben. Falls zum Beispiel die Befehlsdaten 302 einige oder alle der Eingabedaten 311 beinhalten, kann eine ASR-Komponente 250 des zweiten Sprachverarbeitungssystems 292b entsprechende Textdaten bestimmen, eine NLU-Komponente 260 des zweiten Sprachverarbeitungssystems 292a kann einen entsprechende Bereich bestimmen, und so weiter. Falls die Befehlsdaten 302 Textdaten beinhalten, kann die NLU-Komponente 260 die Befehlsdaten 302 verarbeiten, ohne dass die ASR-Komponente 250 erforderlich ist. Falls die Befehlsdaten 302 NLU-Ausgabedaten und / oder einen API-Aufruf beinhalten, kann eine Orchestratorkomponente 240 des zweiten Sprachverarbeitungssystems 292b die Befehlsdaten 302 verarbeiten, eine entsprechende Fähigkeitskomponente 290 auswählen und die Befehlsdaten 302 an die ausgewählte Fähigkeitskomponente 290 senden. Die Fähigkeitskomponente 290 kann dann die Befehlsdaten verarbeiten (zum Beispiel unter Verwendung eines Dialogmodells oder einer Komponente zur Erzeugung natürlicher Sprache), um die Antwortdaten 304 zu bestimmen.
  • In einigen Ausführungsformen sendet das erste Sprachverarbeitungssystem 292a die Befehlsdaten 302 an das zweite Sprachverarbeitungssystem 292b, empfängt als Antwort die Antwortdaten 304 und verarbeitet dann die Antwortdaten 304, um Ausgabedaten 312 zu bestimmen, die die Ausgabeaudiodaten 212 sein oder beinhalten können. Wie oben beschrieben, können die Antwortdaten 304 eine Angabe des zweiten Sprachverarbeitungssystems 292b beinhalten. Diese Angabe kann ein Name des zweiten Sprachverarbeitungssystems 292b, ein Sprachstil des zweiten Sprachverarbeitungssystems 292b und / oder eines oder mehrere Worte oder Ausdrucksstile sein, die dem zweiten Sprachverarbeitungssystem 292b zugeordnet sind. Wie ebenfalls oben beschrieben, kann es jedoch sein, dass der Benutzer nicht weiß oder sich nicht darum kümmert, dass das zweite Sprachverarbeitungssystem 292b an der Verarbeitung der Eingabedaten 311 beteiligt ist, und kann es daher vorziehen, eine Antwort (in Form der Ausgabedaten 312) zu empfangen, die eine Angabe des ersten Sprachverarbeitungssystems 292a (wie etwa der Name des ersten Sprachverarbeitungssystems 292a und / oder ein Sprech- / Wortstil des ersten Sprachverarbeitungssystems 292a) zeigt. Das erste Sprachverarbeitungssystem 292a kann somit die Antwortdaten 304 verarbeiten, um jegliche Angabe des zweiten Sprachverarbeitungssystems 292b zu entfernen und eine Angabe des ersten Sprachverarbeitungssystems 292a zu beinhalten.
  • Falls zum Beispiel die Antwortdaten 304 Audiodaten beinhalten, können diese Audiodaten eine Darstellung von einem oder mehreren Worten beinhalten, die in der Persönlichkeit des zweiten Sprachverarbeitungssystems 292b gesprochen werden. Das erste Sprachverarbeitungssystem 292a kann somit die Audiodaten verarbeiten (zum Beispiel unter Verwendung einer ASR-Komponente 250), um entsprechende Textdaten zu bestimmen, und dann die Textdaten verarbeiten (zum Beispiel unter Verwendung einer TTS-Komponente 280), um Audiodaten zu bestimmen, das eine Darstellung von einem oder mehreren Worten beinhaltet, die in der Persönlichkeit des ersten Sprachverarbeitungssystems 292a gesprochen werden. Der Benutzer 5 kann dann die Audioausgabe 12 hören, die der Persönlichkeit des ersten Sprachverarbeitungssystems 292a entspricht, obwohl das zweite Sprachverarbeitungssystem 292b die Befehlsdaten 302 verarbeitet hat.
  • Falls die Antwortdaten 304 Textdaten beinhalten, die der Antwort entsprechen, können die Textdaten eine Angabe des zweiten Sprachverarbeitungssystems 292b beinhalten, wie etwa einen Namen des zweiten Sprachverarbeitungssystems 292b, ein Wort oder einen Satz, der dem zweiten Sprachverarbeitungssystem 292b zugeordnet ist und / oder eine Satzstruktur oder einen Grammatikstil, die dem zweiten Sprachverarbeitungssystem 292b zugeordnet sind. Das erste Sprachverarbeitungssystem 292a kann somit die Textdaten der Antwortdaten 304 verarbeiten, um die Angabe des zweiten Sprachverarbeitungssystems 292b zum Beispiel durch Umformulieren der Textdaten zu entfernen. Das erste Sprachverarbeitungssystem 292a kann somit Ausgabedaten 312 bestimmen, die eine Darstellung der Antwortdaten 304 beinhalten, aber der Persönlichkeit des ersten Sprachverarbeitungssystems 292a entsprechen.
  • Das erste Sprachverarbeitungssystem 292a kann ein oder mehrere Elemente von Befehlsdaten 302 an das zweite Sprachverarbeitungssystem 292b senden und ein oder mehrere Elemente von Antwortdaten 304 für jedes Element von empfangenen und verarbeiteten Eingabedaten 311 empfangen. Das heißt, falls ein Benutzer einen Befehl, wie in den Eingabedaten 311 dargestellt, ausgibt, kann das erste Sprachverarbeitungssystem 292a ein einzelnes entsprechendes Element von Befehlsdaten 302 senden (und als Antwort ein einzelnes Element von Antwortdaten 304 empfangen) oder kann mehrere Elemente von Befehlsdaten 302 (und als Antwort mehrere Elemente von Antwortdaten 304 empfangen) senden. Das erste Sprachverarbeitungssystem 292a kann somit mehrere Runden des Sendens von Befehlsdaten 302 und des Empfangens von Antwortdaten 304 für einen einzelnen Befehl veranlassen, der in den Eingabedaten 311 dargestellt ist. In ähnlicher Weise können die Antwortdaten 304 einer Aufforderung an den Benutzer nach zusätzlichen Informationen entsprechen, die zum Ausführen des Befehls erforderlich sind, und das erste Sprachverarbeitungssystem 292a und / oder das zweite Sprachverarbeitungssystem 292b können somit mehrere Dialogwechsel veranlassen, wie durch die Ausgabedaten 312 dargestellt.
  • In einigen Ausführungsformen, wie in 3B gezeigt, kann das erste Sprachverarbeitungssystem 292a die Verarbeitung der ersten Eingabedaten A 311a beenden und das zweite Sprachverarbeitungssystem 292b veranlassen, die zweiten Eingabedaten B 311b zu verarbeiten. Dieses Verfahren, hierin als Übergabeverfahren beschrieben, kann auftreten, wenn zum Beispiel das erste Sprachverarbeitungssystem 292a bestimmt, dass das zweite Audioeingabesignal B 311b eine Darstellung privater, privilegierter oder anderweitig sensibler Informationen beinhalten kann, die dem zweiten Sprachverarbeitungssystem 292b entspricht, aber nicht dem ersten Sprachverarbeitungssystem 292a. Falls zum Beispiel die ersten Eingabedaten A 311a eine Darstellung des Befehls „Wie hoch ist mein Girokontostand?“ beinhalten, kann das erste Sprachverarbeitungssystem 292a bestimmen, dass ein bankbezogenes zweites Sprachverarbeitungssystem 292b danach die zweiten Eingabedaten B 311b verarbeiten sollte, da sie persönliche Informationen wie eine PIN oder ein Passwort beinhalten können, die dem zweiten Sprachverarbeitungssystem 292b zugeordnet sind. Das erste Sprachverarbeitungssystem 292a kann somit, nachdem es diese Bestimmung vorgenommen und / oder das zweite Sprachverarbeitungssystem 292b identifiziert hat, Befehlsdaten 310, die ein Übergabesignal beinhalten können, an das zweite Sprachverarbeitungssystem 292b senden. Das Übergabesignal kann Befehlsdaten sein, die bewirken, dass das zweite Sprachverarbeitungssystem 292b veranlasst wird, mit der Verarbeitung der Eingabedaten A 311a und / oder zusätzlicher Eingabedaten B 311b zu beginnen und darauf basierend die Ausgabe der Ausgabedaten B 312b bestimmt und veranlasst. Nach dem Senden der Befehlsdaten 310 kann das erste Sprachverarbeitungssystem 292a die Verarbeitung der Eingabedaten A 311 a und / oder zusätzlicher Eingabedaten B 311b beenden. Das zweite Sprachverarbeitungssystem 292b kann dann nach Empfang der Befehlsdaten 310 mit der Verarbeitung der Eingabedaten B 311b beginnen. Das erste Sprachverarbeitungssystem 292a kann auch zusätzliche Daten, die den Eingabedaten A 311a entsprechen, an das zweite Sprachverarbeitungssystem 292b senden, wie etwa entsprechende Textdaten, einen Bereich, eine Absicht und / oder den Eingabedaten A 311a zugeordnete Entitäten, und / oder die Eingabedaten A 311a selbst. Die von dem ersten Sprachverarbeitungssystem 292a bestimmten ersten Ausgabedaten A 312b können eine Angabe der Übergabe beinhalten, wie zum Beispiel einen Namen, der dem zweiten Sprachverarbeitungssystem 292b zugeordnet ist.
  • 4A, 4B und 4C sind Flussdiagramme, die die Verwendung von Sprachverarbeitungssystemen gemäß Ausführungsformen der vorliegenden Offenbarung veranschaulichen. Unter Bezugnahme zuerst auf 4A sendet die Benutzervorrichtung 110 Eingabedaten 311 an das erste System 492a für natürliche Sprache, das das erste Sprachverarbeitungssystem 292a sein oder beinhalten kann. Die Eingabedaten 311 können die Eingabeaudiodaten 211 sein oder beinhalten und / oder können andere Eingabedaten sein oder beinhalten, wie etwa Videodaten, Textdaten und / oder andere derartige Daten. Wie hierin beschrieben, kann die Benutzervorrichtung 110 das erste Sprachverarbeitungssystem 292a basierend auf einem zugeordneten Weckwort identifizieren, das in den Eingabedaten 311 dargestellt ist. In anderen Ausführungsformen kann das erste Sprachverarbeitungssystem 292a ein Standard-Sprachverarbeitungssystem sein, an das die Benutzervorrichtung 110 alle Eingabedaten 311 sendet; das standardmäßige erste Sprachverarbeitungssystem 292a kann dann in einigen Ausführungsformen ein anderes erstes Sprachverarbeitungssystem 292a bestimmen und aktivieren, um die Eingabedaten 311 zu verarbeiten.
  • Wie hier ebenfalls beschrieben, bestimmt (402) das erste Sprachverarbeitungssystem 292a einen Befehl, der in den Eingabedaten 311 dargestellt ist, unter Verwendung von zum Beispiel ASR- und / oder NLU-Techniken. Zumindest teilweise basierend auf Textdaten, die von einer ASR-Komponente 250 bestimmt werden, und / oder NLU-Daten, die von einer NLU-Komponente 260 bestimmt werden, bestimmt (404) das erste Sprachverarbeitungssystem 292a, dass der Befehl einem zweiten System 492b für natürliche Sprache entspricht, welches das zweite Sprachverarbeitungssystem 292b sein oder beinhalten kann. Das erste Sprachverarbeitungssystem 292a kann dann Befehlsdaten bestimmen, die, wie oben beschrieben, einige oder alle der Eingabeaudiodaten 311, Textdaten entsprechend den Eingabedaten 311, NLU-Daten entsprechend den Textdaten und / oder ein oder mehrere API-Aufrufe an APIs, die dem zweiten Sprachverarbeitungssystem 292b zugeordnet sind. Das erste Sprachverarbeitungssystem 292a kann dann die Befehlsdaten 302 an das zweite Sprachverarbeitungssystem 292b senden.
  • Das zweite Sprachverarbeitungssystem 292b kann dann die Befehlsdaten verarbeiten, um Antwortdaten 304 zu bestimmen (408). Wie oben beschrieben, können die Antwortdaten 304 eine Angabe des zweiten Sprachverarbeitungssystems 292b beinhalten, wie etwa den Namen des zweiten Sprachverarbeitungssystems 292b, einen Sprachstil des zweiten Sprachverarbeitungssystems 292b und / oder einen Grammatikstil des zweiten Sprachverarbeitungssystems 292b. Der Sprachstil und / oder Grammatikstil kann einer Persönlichkeit des zweiten Sprachverarbeitungssystems 292b entsprechen. Das zweite Sprachverarbeitungssystem 292a kann dann die Befehlsdaten 304 an das erste Sprachverarbeitungssystem 292b senden.
  • Das erste Sprachverarbeitungssystem 292a kann dann die Antwortdaten 304 verarbeiten, um Ausgabedaten 312 zu bestimmen (412), die eine zweite Antwort darstellen. Wie oben beschrieben, können die Ausgabedaten 312 eine Angabe des ersten Sprachverarbeitungssystems 292a beinhalten, wie etwa den Namen des ersten Sprachverarbeitungssystems 292a, einen Sprachstil des ersten Sprachverarbeitungssystems 292a und / oder einen Grammatikstil des zweiten Sprachverarbeitungssystems 292a. Während das zweite Sprachverarbeitungssystem 292b verwendet wurde, um die Eingabedaten 311 zu verarbeiten, beinhaltet das erste Sprachverarbeitungssystem 292a daher in einigen Ausführungsformen keine Angabe des zweiten Sprachverarbeitungssystems 292c in den Ausgabedaten 312 und ein Benutzer weiß daher möglicherweise nicht, dass das zweite Sprachverarbeitungssystem 292b so verwendet wurde. Das erste Sprachverarbeitungssystem 292a kann die Ausgabedaten 312 an die Benutzervorrichtung 110 senden und somit dessen Ausgabe darauf veranlassen.
  • Unter Bezugnahme auf 4B kann das erste Sprachverarbeitungssystem 292a in einigen Ausführungsformen bestimmen, eine Ausgabe einer Angabe des zweiten Sprachverarbeitungssystems 292b zu veranlassen. Wie hier beschrieben, kann das erste Sprachverarbeitungssystem 292a die Eingabedaten 311 empfangen (450) und bestimmen (452), ob ein in den Eingabedaten 311 dargestellter Befehl dem zweiten Sprachverarbeitungssystem 292b entspricht. Wenn dies nicht der Fall ist, kann das erste Sprachverarbeitungssystem 292a die Eingabedaten 311 verarbeiten (454) und eine Antwort bestimmen (wie hierin beschrieben). Zum Beispiel äußert der Benutzer das Weckwort des ersten Sprachverarbeitungssystems 292a (z. B. „Alexa“) und einen Befehl, der dem ersten Sprachverarbeitungssystem 292a zugeordnet ist (z. B. „Wie spät ist es?“). Das erste Sprachverarbeitungssystem 292a verarbeitet dann die Eingabedaten 311, um eine Antwort auf den Befehl zu bestimmen (z. B. „Es ist zwei Uhr nachmittags“).
  • In anderen Ausführungsformen kann das erste Sprachverarbeitungssystem 292a bestimmen (456), dass die Eingabedaten 311 und / oder eine Antwort auf die Eingabedaten 311 eine Darstellung privater, privilegierter und / oder sensibler Informationen beinhalten können. In diesen Ausführungsformen kann das erste Sprachverarbeitungssystem 292a die Verarbeitung (466) der Eingabedaten 311 an das zweite Sprachverarbeitungssystem 292b übergeben und danach die Verarbeitung der Eingabedaten 311 beenden. Diese Informationen können zum Beispiel Bankkontoinformationen, medizinische Informationen, Benutzernamen, Passworte oder andere derartige Informationen sein. Ein Benutzer kann dem zweiten Sprachverarbeitungssystem 292b erlauben, Zugriff auf diese Informationen zu haben, möchte aber möglicherweise nicht, dass das erste Sprachverarbeitungssystem 292a Zugriff auf diese Informationen hat. Das Sprachverarbeitungssystem 292a kann eine Audioausgabe bewirken, die diese Übergabe an das zweite Sprachverarbeitungssystem 292b anzeigt, so dass der Benutzer weiß, dass das zweite Sprachverarbeitungssystem 292b (und nicht das erste Sprachverarbeitungssystem 292a) verwendet wird, die Eingabedaten 311 zu verarbeiten.
  • Das erste Sprachverarbeitungssystem 292a kann in ähnlicher Weise die Verarbeitung an das zweite Sprachverarbeitungssystem 292b übergeben, wenn es bestimmt, dass die Ausgabedaten 312 eine Tatsache, eine Meinung und / oder sensible Informationen beinhalten können, die möglicherweise mit dem zweiten Sprachverarbeitungssystem 292b verbunden sind. Das erste Sprachverarbeitungssystem 292a kann somit die Verarbeitung übergeben, so dass für den Benutzer klar ist, dass die Ausgabedaten 312 durch das zweite Sprachverarbeitungssystem 292b und nicht durch das erste Sprachverarbeitungssystem 292a bestimmt werden. Falls zum Beispiel die Eingabedaten 311 eine Darstellung des Befehls „Was ist das beste Restaurant in meiner Gegend?“ beinhalten, kann das erste Sprachverarbeitungssystem 292a bestimmen, dass ein zweites restaurantspezifisches Sprachverarbeitungssystem 292b übergeben werden sollte, das die Eingabedaten 311 weiter verarbeitet, sodass der Benutzer weiß, dass das zweite Sprachverarbeitungssystem 292a das „beste“ Restaurant ausgewählt hat, nicht das erste Sprachverarbeitungssystem 292.
  • Wie hierin beschrieben, kann das erste Sprachverarbeitungssystem 292a in einigen Ausführungsformen mit dem zweiten Sprachverarbeitungssystem 292b als Teil der Verarbeitung (462) der Eingabedaten 311 kommunizieren und kann möglicherweise keine Angabe des zweiten Sprachverarbeitungssystems 292b ausgeben. In einigen Ausführungsformen kann das erste Sprachverarbeitungssystem 292a jedoch bestimmen, die Angabe auszugeben. Zum Beispiel kann das erste Sprachverarbeitungssystem 292a bestimmen (458), dass der Befehl einer Antwort entspricht, die in der Zukunft auftritt, wie etwa mindestens fünf Minuten in der Zukunft. Ein derartiger Befehl kann zum Beispiel das Einstellen eines Alarms, das Anfordern einer Benachrichtigung über das Auftreten eines Ereignisses, das Planen eines Treffens oder einer Erinnerung, das Einstellen eines Alarms, wie zum Beispiel eines Wetteralarms, oder andere derartige zukünftige Aktion(en) sein. Falls das zweite Sprachverarbeitungssystem 292 verwendet wird, um die Eingabedaten 311 zu verarbeiten und die zukünftige Aktion zu erfüllen, kann das zweite Sprachverarbeitungssystem 292b eine Audioausgabe entsprechend der Aktion an den Benutzer veranlassen. Der Benutzer kann dann verwirrt sein, da der Befehl zum Erzeugen der zukünftigen Aktion an das erste Sprachverarbeitungssystem 292a gerichtet war, die Ausführung der Aktion jedoch unter Verwendung des zweiten Sprachverarbeitungssystems 292b erfolgte. Das erste Sprachverarbeitungssystem 292a kann daher eine Ausgabe einer Angabe des zweiten Sprachverarbeitungssystems 292b veranlassen.
  • Zum Beispiel können die Eingabedaten 311 eine Darstellung des Befehls „SmartCar, stelle einen Alarm auf 19:00 Uhr“ beinhalten. Das SmartCar-Sprachverarbeitungssystem kann bestimmen, dass dieser Befehl einem Alexa-Sprachverarbeitungssystem zugeordnet ist, und unter Verwendung der oben beschriebenen Befehlsdaten und Antwortdaten mit dem Alexa-Sprachverarbeitungssystem kommunizieren. Basierend auf dieser Kommunikation kann das Alexa-Sprachverarbeitungssystem den Alarm einstellen und zum geeigneten Zeitpunkt Audio entsprechend dem Alarm ausgeben. Das SmartCar-Sprachverarbeitungssystem kann somit zum Beispiel Audio ausgeben, das dem Satz „Alexa stellt einen Alarm auf 19:00 Uhr“ entspricht.
  • Das erste Sprachverarbeitungssystem 292a kann stattdessen oder zusätzlich die Ausgabe einer Angabe des zweiten Sprachverarbeitungssystems 292b veranlassen, falls es bestimmt (460), dass einige oder alle der Ausgabedaten 312 (und / oder andere Ausgabedaten) unter Verwendung einer Vorrichtung ausgegeben werden, die sich von dem der Benutzervorrichtung 110 unterscheidet. Die Verwendung dieser anderen Vorrichtung kann in ähnlicher Weise Verwirrung seitens des Benutzers hervorrufen. Das erste Sprachverarbeitungssystem 292a kann stattdessen oder zusätzlich eine Ausgabe (464) (oder keine Ausgabe veranlassen, wenn dies andernfalls der Fall wäre) einer Angabe des zweiten Sprachverarbeitungssystems 292b basierend auf einer Benutzerpräferenz in einem der Benutzervorrichtung 110 zugeordneten Benutzerkonto veranlassen. Das Benutzerkonto kann ferner eine Angabe beinhalten, dass eine Erlaubnisanfrage ausgegeben werden sollte, bevor die Verarbeitung mit dem zweiten Sprachverarbeitungssystem 292b zugelassen wird. Das erste Sprachverarbeitungssystem 292a und / oder das zweite Sprachverarbeitungssystem 292b können auf ähnliche Weise basierend auf dem Befehl bestimmen, eine Erlaubnisanfrage auszugeben.
  • In einigen Ausführungsformen kann das erste Sprachverarbeitungssystem 292a bestimmen, dass eine Antwort auf einen empfangenen Befehl eine durch das erste Sprachverarbeitungssystem 292a bestimmte Antwort sowie eine Antwort von dem zweiten Sprachverarbeitungssystem 292 beinhaltet. In anderen Ausführungsformen kann das erste Sprachverarbeitungssystem 292a bestimmen, dass die Antwort eine Ausgabe von der Benutzervorrichtung 110 und / oder einer anderen Benutzervorrichtung beinhaltet. Diese Antwort kann eine Antwort von dem ersten Sprachverarbeitungssystem 292a beinhalten oder nicht. Falls der Befehl zum Beispiel „Alexa, schalte die Lampe aus“ lautet, kann das erste Sprachverarbeitungssystem 292a eine Lampe in der Nähe des Benutzers anweisen, sich auszuschalten, kann jedoch keine Audioausgabe veranlassen. In diesen Ausführungsformen können die Befehlsdaten 310 eine Anweisung, wie etwa einen API-Aufruf, beinhalten, müssen aber möglicherweise keine weiteren Informationen beinhalten, die den Eingabedaten 311 entsprechen. Mit anderen Worten, das erste Sprachverarbeitungssystem 292a kann die Benutzervorrichtung einfach anweisen, gemäß dem Befehl zu handeln. Die andere Benutzervorrichtung kann Nicht-Sprach-Audio ausgeben, um den Empfang des Befehls anzuzeigen; dieses Nicht-Sprach-Audio kann zum Beispiel ein Piepton oder ein ähnlicher Laut sein.
  • Wie in 4C gezeigt, kann das erste Sprachverarbeitungssystem 292a einige oder alle der Antwortdaten 304 in die Ausgabedaten 312 integrieren. Das erste Sprachverarbeitungssystem 292a kann die Antwortdaten 304 von dem zweiten Sprachverarbeitungssystem 292b, wie oben beschrieben, empfangen (480). Das erste Sprachverarbeitungssystem 292a kann dann einige oder alle Antwortdaten 304 umformulieren (482). Zum Beispiel kann das erste Sprachverarbeitungssystem 292a bestimmen, dass die Antwortdaten 304 eine Angabe des zweiten Sprachverarbeitungssystems 292b beinhalten, wie etwa einen Namen des zweiten Sprachverarbeitungssystems 292b, ein Wort, das dem zweiten Sprachverarbeitungssystem 292b zugeordnet ist, und / oder einen Wortphrasierungsstil, der dem zweiten Sprachverarbeitungssystem 292b zugeordnet ist. Das erste Sprachverarbeitungssystem 292a kann somit die Antwortdaten 304 zum Beispiel unter Verwendung der NLU-Komponente 260 verarbeiten, um umformulierte Antwortdaten zu bestimmen (486). Zum Beispiel kann die NLU-Komponente einen Bereich, eine Absicht und / oder Entität bestimmen, die den Antwortdaten 480 zugeordnet ist, und dann eine Fähigkeitskomponente 290 veranlassen, wie etwa eine Komponente zur Erzeugung natürlicher Sprache, um die um formulierten Antwortdaten basierend auf dem Bereich, der Absicht und / oder Entität zu erzeugen. Das erste Sprachverarbeitungssystem 292a kann in anderen Ausführungsformen die Antwortdaten als die Ausgabedaten 212 verwenden (484). In einigen Ausführungsformen kann das erste Sprachverarbeitungssystem 292a einige oder alle Antwortdaten 304 mit einigen oder allen umformulierten Antwortdaten kombinieren (488), um die Ausgabedaten 312 zu erzeugen (492). Das erste Sprachverarbeitungssystem 292a kann in anderen Ausführungsformen nur die umformulierten Antwortdaten als die Ausgabedaten 312 verwenden (490).
  • 5 veranschaulicht, wie eine NLU-Verarbeitung an Eingabetextdaten durchgeführt werden kann. Im Allgemeinen versucht die NLU-Komponente 260 (wie etwa eine in 2A oder 2B dargestellte) eine semantische Interpretation von Text vorzunehmen, der in Textdaten dargestellt ist. Das heißt, die NLU-Komponente 260 bestimmt die Bedeutung hinter dem Text, der in Textdaten dargestellt ist, basierend auf den einzelnen Worten. Die NLU-Komponente 260 interpretiert Text, um eine Absicht oder eine gewünschte Aktion des Benutzers abzuleiten, sowie die relevanten Stücke von Informationen in dem Text, die einer Vorrichtung (z. B. Benutzervorrichtung 110, System 120, Fähigkeit(en) 290 und / oder Fähigkeitssystem(en) 225) ermöglichen, diese Aktion abzuschließen.
  • Die NLU-Komponente 260 kann Textdaten verarbeiten, die mehrere Hypothesen einer einzelnen Äußerung beinhalten. Falls zum Beispiel die ASR-Komponente 250 ASR-Ergebnisse einschließlich einer N-besten Liste von Hypothesen ausgibt, kann die NLU-Komponente 260 die Textdaten in Bezug auf alle (oder einen Teil) der darin dargestellten Textinterpretationen verarbeiten. Die NLU-Komponente 260 kann Text, der in Textdaten dargestellt ist, kommentieren, indem sie den Text parst und / oder markiert. Zum Beispiel kann die NLU-Komponente 260 für den Text „Sagen Sie mir das Wetter für Seattle“ „Sagen Sie mir das Wetter für Seattle“ als Befehl markieren (z. B. um Wetterinformationen auszugeben) sowie „Seattle“ als Ort für die Wetterinformationen markieren.
  • Die NLU-Komponente 260 kann eine Shortlister-Komponente 550 beinhalten. Die Shortlister-Komponente 550 wählt Anwendungen aus, die in Bezug auf Textdaten 610 ausgeführt werden können, die in die NLU-Komponente eingegeben werden (z. B. Anwendungen, die den Befehl ausführen können). Die Shortlister-Komponente 550 beschränkt somit nachgeschaltete, ressourcenintensivere NLU-Prozesse auf die Ausführung in Bezug auf Anwendungen, die den Befehl ausführen können.
  • Ohne eine Shortlister-Komponente 550 kann die NLU-Komponente 260 eine gegebene Hypothese in Bezug auf jede Anwendung des Systems verarbeiten, entweder parallel, in Reihe oder unter Verwendung irgendeiner Kombination davon. Durch Einbeziehen einer Shortlister-Komponente 550 kann die NLU-Komponente 260 eine gegebene Hypothese nur in Bezug auf die Anwendungen verarbeiten, die den Befehl durchführen können. Dies reduziert die gesamte Rechenleistung und Latenz, die der NLU-Verarbeitung zugeschrieben wird.
  • Die NLU-Komponente 260 kann einen oder mehrere Erkenner 563a-n beinhalten. Jeder Erkenner 563 kann einer anderen Funktion, Inhaltsquelle und / oder einem anderen Sprachverarbeitungssystem zugeordnet sein. Die NLU-Komponente 260 kann eine Funktion bestimmen, die möglicherweise mit dem Befehl verknüpft ist, der in den darin eingegebenen Textdaten dargestellt ist, um den richtigen Erkenner 563 zum Verarbeiten der Hypothese zu bestimmen. Die NLU-Komponente 260 kann bestimmen, dass ein in Textdaten dargestellter Befehl möglicherweise mehr als einer Funktion zugeordnet ist. Mehrere Erkenner 563 können funktional verknüpft sein (z. B. ein Telefonie- / Kommunikationserkenner und ein Kalendererkenner können Daten aus derselben Kontaktliste verwenden).
  • Falls die Shortlister-Komponente 550 bestimmt, dass Text, der einer Hypothese entspricht, möglicherweise mehreren Fähigkeiten 290 und / oder mehreren Sprachverarbeitungssystemen zugeordnet ist, können die Erkenner 563, die den Fähigkeiten 290 und / oder mehreren Sprachverarbeitungssystemen zugeordnet sind (z. B. die Erkenner 563, die den Anwendungen in der Teilmenge, ausgewählt durch den Shortlister 550, zugeordnet sind), den Text verarbeiten. Die ausgewählten Erkenner 563 können den Text parallel, in Reihe, teilweise parallel usw. verarbeiten. Falls zum Beispiel Text, der einer Hypothese entspricht, möglicherweise sowohl ein Kommunikations-Sprachverarbeitungssystem als auch ein Musik-Sprachverarbeitungssystem impliziert, kann ein Erkenner, der dem Kommunikations-Sprachverarbeitungssystem zugeordnet ist, den Text parallel oder teilweise parallel zu einem Erkenner verarbeiten, der der Musikanwendung zugeordnet ist, die den Text verarbeitet. Die von jedem Erkenner 563 erzeugte Ausgabe kann bewertet werden, wobei die insgesamt am höchsten bewertete Ausgabe von allen Erkennern 563 normalerweise als das richtige Ergebnis ausgewählt wird.
  • Die NLU-Komponente 260 kann mit verschiedenen Speichern kommunizieren, um das / die potenzielle(n) Sprachverarbeitungssystem(e) zu bestimmen, die einem in Textdaten dargestellten Befehl zugeordnet sind. Die NLU-Komponente 260 kann mit einem NLU-Speicher 573 kommunizieren, der Datenbanken von Vorrichtungen (574a-574n) beinhaltet, die Funktionen identifizieren, die bestimmten Vorrichtungen zugeordnet sind. Zum Beispiel kann die Benutzervorrichtung 110 mit Sprachverarbeitungssystemen für Musik, Kalender, Kontaktlisten, vorrichtungespezifische Kommunikation usw. verbunden sein. Außerdem kann die NLU-Komponente 260 mit einer Entitätsbibliothek 582 kommunizieren, die Datenbankeinträge zu bestimmten Diensten auf einer bestimmten Vorrichtung beinhalten, die entweder nach Vorrichtungs-ID, Benutzer-ID oder Gruppen-Benutzer-ID oder einem anderen Indikator indiziert sind.
  • Jeder Erkenner 563 kann eine benannte Entitätserkennungs (named entity recognition, NER)-Komponente 562 beinhalten. Die NER-Komponente 562 versucht, Grammatiken und lexikalische Informationen zu identifizieren, die verwendet werden können, um eine Bedeutung in Bezug auf einen Befehl zu interpretieren, der in darin eingegebenen Textdaten dargestellt ist. Die NER-Komponente 562 identifiziert Textabschnitte, die in den in die NLU-Komponente 260 eingegebenen Textdaten dargestellt sind, die einer benannten Entität entsprechen, die durch das System erkennbar sein kann. Die NER-Komponente 562 (oder eine andere Komponente der NLU-Komponente 260) kann auch bestimmen, ob sich ein Wort auf eine Entität bezieht, die nicht explizit im Äußerungstext erwähnt wird, zum Beispiel Worte wie „ihn“, „sie“ oder „es“.
  • Jeder Erkenner 563 und insbesondere jede NER-Komponente 562 kann einem bestimmten Grammatikmodell 576, einem bestimmten Satz von Absichten 578 und einem bestimmten personalisierten Lexikon 586 zugeordnet sein. Jedes Ortsverzeichnis 584 kann funktionsindexierte lexikalische Informationen beinhalten, die einem bestimmten Benutzer und / oder einer Vorrichtung zugeordnet sind. Zum Beispiel beinhaltet das Ortsverzeichnis A (584a) funktionsindexierte Lexika 586aa bis 586an. Die lexikalischen Informationen der Musikfunktion eines Benutzers können zum Beispiel Albumtitel, Künstlernamen und Liednamen beinhalten, während die lexikalischen Informationen der Kontaktliste eines Benutzers die Namen von Kontakten beinhalten können. Da die Musiksammlung und Kontaktliste jedes Benutzers vermutlich anders ist, verbessern diese personalisierten Informationen die Entitätsauflösung.
  • Eine NER-Komponente 562 kann Grammatikmodelle 576 und / oder Lexika 586 anwenden, die der Funktion zugeordnet sind (die dem Erkenner 563 zugeordnet ist, der die NER-Komponente 562 implementiert), um eine Erwähnung einer oder mehrerer Entitäten in darin eingegebenen Textdaten zu bestimmen. Auf diese Weise kann die NER-Komponente 562 „Slots“ (d. h. bestimmte Worte in Textdaten) identifizieren, die für eine spätere Befehlsverarbeitung benötigt werden können. Die NER-Komponente 562 kann auch jeden Schlitz mit einem Typ unterschiedlicher Spezifitätsgrade kennzeichnen (z. B. Substantiv, Ort, Stadt, Künstlername, Liedname usw.)
  • Jedes Grammatikmodell 576 kann die Namen von Entitäten (d. h. Substantiven) beinhalten, die üblicherweise in Text über die bestimmte Funktion zu finden sind, auf die sich das Grammatikmodell 576 bezieht, während das Lexikon 586 für den / die Benutzer und / oder die Benutzervorrichtung 110 personalisiert ist, von denen die Eingabedaten 311 oder Eingabetextdaten stammen. Zum Beispiel kann ein Grammatikmodell 576, das einer Einkaufsfunktion zugeordnet ist, eine Datenbank von Worten beinhalten, die häufig verwendet werden, wenn Menschen über das Einkaufen diskutieren.
  • Ein als benannte Entitätsauflösung bezeichneter Prozess kann einen Textabschnitt mit einer dem System bekannten Entität verknüpfen. Um diese benannte Entitätsauflösung durchzuführen, kann die NLU-Komponente 260 Ortsverzeichnisinformationen (584a-584n) verwenden, die in einem Entitätsbibliotheksspeicher 582 gespeichert sind. Die Ortsverzeichnisinformationen 584 können verwendet werden, um Text, der in Textdaten dargestellt ist, mit verschiedenen Entitäten abzugleichen, wie etwa Liedtiteln, Kontaktnamen usw. Ortsverzeichnisse können mit Benutzern verknüpft sein (z. B. kann ein bestimmtes Ortsverzeichnis mit einer bestimmten Musiksammlung des Benutzers verknüpft sein), können mit bestimmten Funktionskategorien verknüpft sein (z. B. Einkaufen, Musik, Video, Kommunikation usw.) oder können auf vielfältige andere Weise organisiert sein.
  • Jeder Erkenner 563 kann auch eine Absichtsklassifizierungs (intent classification, IC)-Komponente 564 beinhalten. Die IC-Komponente 564 parst Textdaten, um eine oder mehrere Absichten der dem Erkenner 563 zugeordneten Funktion zu bestimmen, die möglicherweise den Textdaten entspricht. Eine Absicht entspricht einer auszuführenden Aktion, die auf den durch die Textdaten dargestellten Befehl anspricht. Die IC-Komponente 564 kann mit einer Datenbank 578 von Worten kommunizieren, die mit Absichten verknüpft sind. Zum Beispiel kann eine Musikabsichtsdatenbank Worte und Ausdrücke wie „leise“, „Lautstärke aus“ und „stumm“ mit einer „stumm“-Absicht verknüpfen. Die IC-Komponente 564 identifiziert potenzielle Absichten durch Vergleichen von Worten in den Textdaten mit den Worten und Sätzen in einer Absichtsdatenbank 578, die der Funktion zugeordnet ist, die dem Erkenner 563 zugeordnet ist, der die IC-Komponente 564 implementiert.
  • Die Absichten, die durch eine spezifische IC-Komponente 564 identifizierbar sind, können mit einem funktionsspezifischen Grammatikmodell 576 (d. h. der Funktion, die dem Erkenner 563 zugeordnet ist, der die IC-Komponente 564 implementiert) mit zu füllenden „Slots“ verknüpft werden. Jeder Slot eines Grammatikmodells 576 kann einem Abschnitt der Textdaten entsprechen, von denen das System annimmt, dass sie einer Entität entsprechen. Zum Beispiel kann ein Grammatikmodell 576 entsprechend einer <PlayMusic> Absicht Textdaten-Satzstrukturen wie „Spiele {Künstlername}“, „Spiele {Albumname}“, „Spiele {Liedname}“, „Spiele {Liedname} von {Künstlername}“ usw. entsprechen. Um die Auflösung jedoch flexibler zu machen, können die Grammatikmodelle 576 nicht als Sätze strukturiert sein, sondern eher auf der Zuordnung von Slots zu grammatikalischen Markierungen basieren.
  • Zum Beispiel kann eine NER-Komponente 562 Textdaten parsen, um Worte als Subjekt, Objekt, Verb, Präposition usw. basierend auf Grammatikregeln und / oder Modellen zu identifizieren, bevor benannte Entitäten in den Textdaten erkannt werden. Eine IC-Komponente 564 (durch denselben Erkenner 563 wie die NER-Komponente 562 implementiert) kann das identifizierte Verb verwenden, um eine Absicht zu identifizieren. Die NER-Komponente 562 kann dann ein Grammatikmodell 576 bestimmen, das der identifizierten Absicht zugeordnet ist. Zum Beispiel kann ein Grammatikmodell 576 für eine Absicht entsprechend <PlayMusic> eine Liste von Slots spezifizieren, die anwendbar sind, um das identifizierte Objekt und irgendeinen Objektmodifikator (z. B. eine Präpositionalphrase) wie {Künstlername}, {Albumname}, {Songname} usw. abzuspielen. Die NER-Komponente 562 kann dann entsprechende Felder in einem Lexikon 586 suchen, das der Funktion zugeordnet ist, die dem Erkenner 563 zugeordnet ist, der die NER-Komponente 562 implementiert, und kann Worte und Sätze in den Textdaten, die die NER-Komponente 562 zuvor als grammatikalisches Objekt oder Objektmodifikator markiert hat, mit denen abgleichen, die in dem Lexikon 586 identifiziert wurden.
  • Die NER-Komponente 562 kann semantische Markierungen durchführen, was die Kennzeichnung eines Wortes oder einer Kombination von Worten gemäß ihrem Typ / ihrer semantischen Bedeutung ist. Die NER-Komponente 562 kann Textdaten unter Verwendung von heuristischen Grammatikregeln parsen, oder ein Modell kann unter Verwendung von Techniken konstruiert werden, wie etwa Hidden-Markov-Modelle, Maximum-Entropie-Modelle, Log-Linear-Modelle, bedingte Zufallsfelder (conditional random fields, CRF) und dergleichen. Zum Beispiel kann eine NER-Komponente 562, die von einem Musikfunktionserkenner 563 implementiert wird, Text parsen und markieren, der „Spiele Mother's little helper von den Rolling Stones“ entspricht, als {Verb}: „Spielen“, {Objekt}: „Mother's little helper“, {Objektpräposition}: „von“ und {Objektmodifikator}: „The Rolling Stones“. Die NER-Komponente 562 kann „Spielen“ als Verb basierend auf einer Wortdatenbank identifizieren, die der Musikfunktion zugeordnet ist, wobei eine IC-Komponente 564 (die auch durch den Musikfunktionserkenner 563 implementiert sein kann) bestimmen kann, dass das Wort einer <PlayMusic> Absicht entspricht. In diesem Stadium wurde möglicherweise keine Bestimmung bezüglich der Bedeutung von „Mother's little helper“ und „The Rolling Stones“ vorgenommen, aber basierend auf Grammatikregeln und -modellen kann die NER-Komponente 562 bestimmt haben, dass sich der Text dieser Sätze auf das grammatikalische Objekt (d. h. Entität) der Textdaten bezieht.
  • Die mit der Absicht verknüpften Rahmenbedingungen können dann verwendet werden, um zu bestimmen, welche Datenbankfelder durchsucht werden können, um die Bedeutung dieser Phrasen zu bestimmen, wie etwa das Durchsuchen eines Ortsverzeichnisses 584 eines Benutzers nach Ähnlichkeit mit den Rahmenbedingungs-Slots. Zum Beispiel könnte eine Rahmenbedingung für eine <PlayMusic> Absicht angeben, dass versucht werden soll, das identifizierte Objekt basierend auf {Künstlername}, {Albumname} und {Liedname} aufzulösen, und eine andere Rahmenbedingung für dieselbe Absicht könnte angeben, dass versucht werden soll, den Objektmodifikator basierend auf {Künstlername} aufzulösen, und das Objekt basierend auf {Albumname} und {Liedname} aufzulösen, die mit dem identifizierten {Künstlername} verknüpft sind. Falls die Suche des Ortsverzeichnisses 584 einen Slot / ein Feld unter Verwendung von Ortsverzeichnisinformationen nicht auflöst, kann die NER-Komponente 562 in der Wissensbasis 572 die Datenbank von generischen Worten durchsuchen, die der Funktion zugeordnet sind. Falls zum Beispiel die Textdaten Text beinhalten, der „Spiele Lieder von The Rolling Stones“ entspricht, nachdem ein Albumname oder Liedname namens „Lieder“ von „The Rolling Stones“ nicht bestimmt werden konnte, kann die NER-Komponente 562 das Vokabular der Funktion nach dem Wort „Lieder“ durchsuchen. In einigen Ausführungsformen können generische Worte vor den Ortsverzeichnisinformationen überprüft werden, oder es können beide ausprobiert werden, wodurch möglicherweise zwei unterschiedliche Ergebnisse erzeugt werden.
  • Die NLU-Komponente 260 kann Text markieren, um dem Text eine Bedeutung zuzuordnen. Zum Beispiel kann die NLU-Komponente 260 „Spiele Mother's little Helper von The Rolling Stones“ markieren als {Absicht}: <PlayMusic>, {Künstlername}: Rolling Stones, {Medientyp}: LIED und {Liedtitel}: Mother's little helper. In einem anderen Beispiel kann die NLU-Komponente 260 „Spiele Lieder von The Rolling Stones“ markieren als {Absicht}: <PlayMusic>, {Künstlername}: Rolling Stones und {Medientyp}: LIED.
  • Die Shortlister-Komponente 550 kann Textdaten 610 empfangen, die von der ASR-Komponente 250 ausgegeben werden (wie in 6 dargestellt). Die ASR-Komponente 250 kann die Textdaten 610 in eine Form einbetten, die durch ein oder mehrere trainierte Modelle unter Verwendung von Satzeinbettungstechniken verarbeitbar ist. Die Satzeinbettung kann in den Textdaten 610 Text in einer Struktur beinhalten, die es den trainierten Modellen der Shortlister-Komponente 550 ermöglicht, mit dem Text zu arbeiten. Zum Beispiel kann eine Einbettung der Textdaten 610 eine Vektordarstellung der Textdaten sein.
  • Die Shortlister-Komponente 550 kann binäre Bestimmungen (z. B. Ja- oder Nein-Bestimmungen) hinsichtlich dessen, welche Fähigkeit(en) 290 sich auf die Textdaten 610 beziehen, vornehmen. Die Shortlister-Komponente 550 kann solche Bestimmungen unter Verwendung des einen oder der mehreren hierin oben beschriebenen trainierten Modelle vornehmen. Falls die Shortlister-Komponente 550 ein einzelnes trainiertes Modell für jede Fähigkeit 290 implementiert, kann die Shortlister-Komponente 550 einfach die Modelle ausführen, die aktivierten Anwendungen zugeordnet sind, wie in einem Profil angegeben, das der Benutzervorrichtung 110 und / oder dem Benutzer zugeordnet ist, von dem der Befehl stammt.
  • Die Shortlister-Komponente 550 kann N-beste Listendaten erzeugen, die Anwendungen darstellen, die in Bezug auf den in den Textdaten 610 dargestellten Befehl durchgeführt werden können. Die Größe der N-besten Liste, die in den N-beste Listendaten dargestellt wird, ist konfigurierbar. In einem Beispiel können die N-beste Listendaten jede Anwendung des Systems angeben sowie für jede Anwendung eine Angabe beinhalten, ob die Anwendung wahrscheinlich in der Lage ist, den in den Textdaten 610 dargestellten Befehl durchzuführen. In einem anderen Beispiel können die N-beste Listendaten, anstatt jede Anwendung des Systems anzugeben, nur alle Anwendungen angeben, die wahrscheinlich in der Lage sind, den in den Textdaten 610 dargestellten Befehl durchzuführen. In noch einem weiteren Beispiel kann die Shortlister-Komponente 550 eine Schwellenwertbildung implementieren, sodass die N-besten Listendaten nicht mehr als eine maximale Anzahl von Anwendungen angeben können, die den in den Textdaten 610 dargestellten Befehl durchführen können. In einem Beispiel beträgt die Schwellenwertanzahl von Anwendungen, die in den N-beste Listendaten dargestellt werden können, zehn (10). In einem anderen Beispiel können die in den N-beste Listendaten beinhaltenen Anwendungen durch einen Schwellenwert eines Werts begrenzt sein, wobei nur Anwendungen, die eine Wahrscheinlichkeit angeben, den Befehl zu handhaben, über einem bestimmten Wert liegen (wie durch Verarbeiten der Textdaten 610 durch die Shortlister-Komponente 550 relativ zu anderen Anwendungen bestimmt).
  • Die NLU-Komponente 260 kann Daten, die von jedem der Erkenner 563 ausgegeben werden, der die in die NLU-Komponente 260 eingegebenen Textdaten verarbeitet hat, in eine einzelne N-beste Liste zusammenstellen, und kann N-beste Listendaten 640 (die die N-beste Liste darstellen) an eine Beschneidungs-Komponente 650 (wie in 6 dargestellt) senden. Jeder Eintrag in den N-beste Listendaten 640 kann markiertem Text entsprechen, der von einem anderen Erkenner 563 ausgegeben wird. Jedem Eintrag in den N-beste Listendaten 640 kann ein entsprechender Wert zugeordnet sein, der angibt, dass der markierte Text der Funktion entspricht, die dem Erkenner 563 zugeordnet ist, von dem der markierte Text ausgegeben wurde. Zum Beispiel können die N-beste Listendaten 640 dargestellt werden als:
    [0.95] Absicht: <PlayMusic> Quelle: Alexa, SmartCar
    [0.70] Absicht: <RollWindow> Quelle: SmartCar
    [0.01] Absicht: <Navigate> Quelle: Alexa, SmartCar
    [0.01] Absicht: <PlayVideo> Quelle: Alexa
  • Die Beschneidungs-Komponente 650 erstellt eine neue, kürzere N-beste Liste (d. h. dargestellt in den unten erörterten N-beste Listendaten 660) basierend auf den N-beste Listendaten 640. Die Beschneidungs-Komponente 650 kann den markierten Text, der in den N-beste Listendaten 640 dargestellt ist, gemäß ihren jeweiligen Werten sortieren.
  • Die Beschneidungs-Komponente 650 kann eine Wert-Schwellenwertbildung in Bezug auf die N-beste Listendaten 640 ausführen. Zum Beispiel kann die Beschneidungs-Komponente 650 Einträge auswählen, die in den N-beste Listendaten 640 dargestellt sind, die einem Wert zugeordnet sind, der einen Wertschwellenwert erfüllt (z. B. erreicht und / oder überschreitet). Die Beschneidungs-Komponente 650 kann auch oder alternativ eine Anzahl von Eintragsschwellenwertbildungenn durchführen. Zum Beispiel kann die Beschneidungs-Komponente 650 den einen oder mehrere Einträge mit dem höchsten Wert auswählen, der jeder unterschiedlichen Funktionskategorie (z. B. Musik, Einkaufen, Kommunikation usw.) zugeordnet ist, die in den N-beste Listendaten 640 dargestellt sind, mit den neuen N-beste Listendaten 660 auswählen, einschließlich einer Gesamtanzahl von Einträgen, die eine Schwellenwertanzahl von Einträgen erreichen oder unterschreiten. Der Zweck der Beschneidungs-Komponente 650 besteht darin, eine neue Liste von Einträgen mit dem höchsten Wert zu erstellen, so dass nachgeschaltete, ressourcenintensivere Prozesse nur mit den markierten Texteinträgen arbeiten können, die am wahrscheinlichsten der Befehlseingabe in das System entsprechen.
  • Die NLU-Komponente 260 kann auch eine leichte Slotfüllerkomponente 652 beinhalten. Die leichte Slotfüllerkomponente 652 kann Text aus Slots nehmen, die in dem markierten Texteintrag oder -einträgen dargestellt sind, die von der Beschneidungs-Komponente 650 ausgegeben werden, und ihn ändern, um den Text leichter von nachgeschalteten Komponenten verarbeiten zu lassen. Die leichte Slotfüllerkomponente 652 kann Operationen mit geringer Latenz durchführen, die keine schweren Operationen beinhalten, wie etwa Verweise auf eine Wissensbasis. Der Zweck der leichten Slotfüllerkomponente 652 besteht darin, Worte durch andere Worte oder Werte zu ersetzen, die von nachgeschalteten Komponenten leichter verstanden werden können. Falls zum Beispiel ein markierter Texteintrag das Wort „morgen“ beinhaltet, kann die leichte Slotfüllerkomponente 652 das Wort „morgen“ durch ein tatsächliches Datum zum Zweck der nachgelagerten Verarbeitung ersetzen. In ähnlicher Weise kann die leichte Slotfüllerkomponente 652 das Wort „CD“ durch „Album“ oder die Worte „Compact Disc“ ersetzen. Die ersetzten Worte werden dann in die N-beste Listendaten 660 aufgenommen.
  • Die NLU-Komponente 260 sendet die N-beste Listendaten 660 an eine Entitätsauflösungskomponente 670. Die Entitätsauflösungskomponente 670 kann Regeln oder andere Anweisungen anwenden, um Bezeichnungen oder Tokens aus vorherigen Stufen in eine Absichts-/ Slot-Darstellung zu standardisieren. Die genaue Transformation kann von der Funktion abhängen (z. B. kann die Entitätsauflösungskomponente 670 für eine Reisefunktion eine Texterwähnung von „Flughafen Boston“ in den Standard-BOS-Drei-Buchstaben-Code umwandeln, der sich auf den Flughafen bezieht). Die Entitätsauflösungskomponente 670 kann sich auf eine Autoritätsquelle (z. B. eine Wissensbasis) beziehen, die verwendet wird, um speziell die genaue Entität zu identifizieren, auf die in jedem Slot jedes markierten Texteintrags verwiesen wird, der in den N-besten Listendaten 660 dargestellt ist. Bestimmte Absichts-/ Slot-Kombinationen können auch an eine bestimmte Quelle gebunden werden, die dann verwendet werden kann, um den Text aufzulösen. In dem Beispiel „Spiele Lieder von den Stones“ kann die Entitätsauflösungskomponente 670 auf einen persönlichen Musikkatalog, ein Amazon Music-Konto, ein Benutzerprofil (hier beschrieben) oder dergleichen verweisen. Die Entitätsauflösungskomponente 670 kann Daten einschließlich einer geänderten N-beste Liste ausgeben, die auf der in den N-beste Listendaten 660 dargestellten N-beste Liste basiert, aber beinhaltet auch ausführlichere Informationen (z. B. Entitäts-IDs) über die spezifischen Entitäten, die in den Slots erwähnt sind, und / oder ausführlichere Slot-Daten, die schließlich von einer Funktion verwendet werden können. Die NLU-Komponente 260 kann mehrere Entitätsauflösungskomponenten 670 beinhalten, und jede Entitätsauflösungskomponente 670 kann für eine oder mehrere Funktionen spezifisch sein.
  • Die Entitätsauflösungskomponente 670 ist möglicherweise nicht erfolgreich beim Auflösen jeder Entität und Füllen jedes Slots, der in den N-beste Listendaten 660 dargestellt ist. Dies kann dazu führen, dass die Entitätsauflösungskomponente 670 unvollständige Ergebnisse ausgibt. Die NLU-Komponente 260 kann eine endgültige Einstufungskomponente 690 beinhalten, die solche Fehler berücksichtigen kann, wenn sie bestimmt, wie die markierten Texteinträge für eine mögliche Durchführung einzustufen sind. Falls zum Beispiel ein Buchfunktionserkenner 563 einen markierten Texteintrag ausgibt, der eine <ReadBook> Absichts-Flag beinhaltet, aber die Entitätsauflösungskomponente 670 kein Buch mit einem Titel finden kann, der mit dem Text des Elements übereinstimmt, kann die endgültige Einstufungskomponente 690 diesen bestimmten markierten Texteintrag neu bewerten, um ihm einen niedrigeren Wert zu geben. Die endgültige Einstufungskomponente 690 kann auch jedem darin eingegebenen markierten Texteintrag eine bestimmte Konfidenz zuweisen. Der Konfidenzwert eines bestimmten markierten Texteintrags kann dadurch beeinflusst werden, ob der markierte Texteintrag ungefüllte Slots hat. Falls zum Beispiel ein markierter Texteintrag, der einer ersten Funktion zugeordnet ist, Slots beinhaltet, die alle gefüllt / aufgelöst sind, kann dieser markierte Texteintrag mit einer höheren Konfidenz assoziiert werden als ein anderer markierter Texteintrag, der mindestens einige Slots beinhaltet, die nicht ausgefüllt / nicht aufgelöst sind.
  • Die endgültige Einstufungskomponente 690 kann Neubewertung, Biasing oder andere Techniken anwenden, um den am meisten bevorzugten markierten und aufgelösten Texteintrag zu erhalten. Um dies zu tun, kann die endgültige Einstufungskomponente 690 nicht nur die Datenausgabe durch die Entitätsauflösungskomponente 670 berücksichtigen, sondern kann auch andere Daten 691 berücksichtigen. Die anderen Daten 691 können eine Vielzahl von Informationen beinhalten. Zum Beispiel können die anderen Daten 691 Funktionsbewertungs- oder Beliebtheitsdaten beinhalten. Falls zum Beispiel eine Funktion eine besonders hohe Bewertung hat, kann die endgültige Einstufungskomponente 690 den Wert eines markierten Texteintrags oder von -einträgen erhöhen, die dieser bestimmten Funktion zugeordnet sind oder diese anderweitig aufrufen. Die anderen Daten 691 können auch Informationen über Funktionen beinhalten, die vom Benutzer speziell aktiviert wurden. Zum Beispiel kann die endgültige Einstufungskomponente 690 markierten Texteinträgen, die freigegebenen Funktionen zugeordnet sind oder diese anderweitig aufrufen, höhere Werte zuweisen als markierten Texteinträgen, die nicht freigegebenen Funktionen zugeordnet sind oder diese anderweitig aufrufen. Auch der Benutzerverlauf kann berücksichtigt werden, wie etwa ob der Benutzer eine bestimmte Funktion regelmäßig oder zu bestimmten Tageszeiten nutzt. Datum, Uhrzeit, Standort, Wetter, Typ der Benutzervorrichtung 110, Benutzer-ID, Kontext und andere Informationen können ebenfalls berücksichtigt werden. Zum Beispiel kann die endgültige Einstufungskomponente 690 berücksichtigen, wann bestimmte Funktionen derzeit aktiv sind (z. B. Musik wird gespielt, ein Spiel wird gespielt usw.). Nach dem endgültigen Einstufen kann die NLU-Komponente 260 NLU-Ausgabedaten 685 an die Orchestratorkomponente 240 ausgeben. Die NLU-Ausgabedaten 685 können verschiedene Einträge beinhalten, wobei jeder Eintrag einen NLU-Verarbeitungskonfidenzwert, eine Absicht, Slot-Daten und eine potenzielle Fähigkeit oder Fähigkeit darstellt, die in Bezug auf die Daten des jeweiligen Eintrags arbeiten können.
  • Nach dem vorläufigen Einstufen kann die NLU-Komponente 260 NLU-Ergebnisdaten 685 ausgeben. Die NLU-Komponente 260 kann die NLU-Ergebnisdaten 685 an die Orchestratorkomponente 240 senden. Die NLU-Ergebnisdaten 685 können erste NLU-Ergebnisdaten 685a, die markierten Text beinhalten, der einem ersten Sprachverarbeitungssystem zugeordnet ist, zweite NLU-Ergebnisdaten 685b, die markierten Text beinhalten, der einem zweiten Sprachverarbeitungssystem zugeordnet ist, usw. beinhalten. Die NLU-Ergebnisdaten 685 können markierte Textdaten beinhalten, die den markierten Texteinträgen mit dem höchsten Wert entsprechen, wie durch die vorläufige Einstufungskomponente 690 bestimmt.
  • Die von der NLU-Komponente 260 ausgegebenen Daten 685 können eine N-beste Liste von NLU-Ergebnissen beinhalten, wobei jedes Element in der N-besten Liste einem bestimmten Erkenner 563 und einer entsprechenden Fähigkeit 290 entsprechen kann. So können zum Beispiel erste NLU-Ergebnisse der N-beste Liste einer ersten Fähigkeit 290a zugeordnet werden, zweite NLU-Ergebnisse der N-beste Liste können einer zweiten Fähigkeit 290b zugeordnet werden, dritte NLU-Ergebnisse der N-beste Liste einer dritten Fähigkeit 290c zugeordnet werden usw. Darüber hinaus können die ersten NLU-Ergebnisse Text entsprechen, der mit Attributbedeutung markiert ist, die es der ersten Fähigkeit 290a ermöglicht, in Bezug auf die ersten NLU-Ergebnisse durchzuführen, die zweiten NLU-Ergebnisse können Text entsprechen, der mit Attributbedeutung markiert ist, der es der zweiten Fähigkeit 290b ermöglicht, in Bezug auf die zweiten NLU-Ergebnisse durchzuführen, die dritten NLU-Ergebnisse können Text entsprechen, der mit Attributbedeutung markiert ist, der es der dritten Fähigkeit 290c ermöglicht, in Bezug auf die dritten NLU-Ergebnisse durchzuführen usw. Die Daten 685 können auch Werte beinhalten, die jedem Element in der N-beste Liste entsprechen. Alternativ können die NLU-Ergebnisdaten 685, die an eine bestimmte Fähigkeit 290 ausgegeben werden, NER- und IC-Daten beinhalten, die von dem Erkenner 563 der bestimmten Fähigkeit ausgegeben werden, während die NLU-Ergebnisdaten 685, die an die Orchestratorkomponente 240 ausgegeben werden, nur einen Abschnitt der NLU-Ergebnisdaten 685 beinhalten können, zum Beispiel die Werte, die bestimmten Fähigkeiten entsprechen.
  • Das System kann mit Tausenden, Zehntausenden usw. Fähigkeiten 290 konfiguriert werden. Die Orchestratorkomponente 240 ermöglicht es dem System, besser die beste Fähigkeit 290 zu bestimmen, um die Befehlseingabe in das System auszuführen. Zum Beispiel können erste NLU-Ergebnisse zweiten NLU-Ergebnissen entsprechen oder im Wesentlichen entsprechen, selbst wenn die ersten NLU-Ergebnisse von einer ersten Fähigkeit 290a bearbeitet werden und die zweiten NLU-Ergebnisse von einer zweiten Fähigkeit 290b bearbeitet werden. Die ersten NLU-Ergebnisse können einem ersten Konfidenzwert zugeordnet werden, der die Konfidenz des Systems in Bezug auf die NLU-Verarbeitung angibt, die zum Erzeugen der ersten NLU-Ergebnisse ausgeführt wird. Darüber hinaus können die zweiten NLU-Ergebnisse einem zweiten Konfidenzwert zugeordnet werden, der die Konfidenz des Systems in Bezug auf die NLU-Verarbeitung angibt, die ausgeführt wird, um die zweiten NLU-Ergebnisse zu erzeugen. Der erste Konfidenzwert kann dem zweiten Konfidenzwert ähnlich oder identisch sein, da die ersten NLU-Ergebnisse den zweiten NLU-Ergebnissen entsprechen oder im Wesentlichen entsprechen. Der erste Konfidenzwert und / oder der zweite Konfidenzwert können ein numerischer Wert sein (z. B. von 0,0 bis 1,0). Alternativ können der erste Konfidenzwert und / oder der zweite Konfidenzwert ein klassierter Wert sein (z. B. niedrig, mittel, hoch).
  • Die Orchestratorkomponente 240 kann die erste Fähigkeit 290a und die zweiten Fähigkeit 290b auffordern, potenzielle Ergebnisdaten basierend auf den ersten NLU-Ergebnissen bzw. den zweiten NLU-Ergebnissen bereitzustellen. Zum Beispiel kann die Orchestratorkomponente 240 die ersten NLU-Ergebnisse an die erste Fähigkeit 290a zusammen mit einer Anforderung für die erste Fähigkeit 290a senden, zumindest teilweise einen Befehl in Bezug auf die ersten NLU-Ergebnisse durchzuführen. Die Orchestratorkomponente 240 kann auch die zweiten NLU-Ergebnisse zusammen mit einer Anforderung für die zweite Fähigkeit 290b an die zweite Fähigkeit 290b senden, um zumindest teilweise einen Befehl in Bezug auf die ersten NLU-Ergebnisse durchzuführen. Die Orchestratorkomponente 240 empfängt von der ersten Fähigkeit 290a erste Ergebnisdaten, die von der Durchführung der ersten Fähigkeit in Bezug auf die ersten NLU-Ergebnisse erzeugt wurden. Die Orchestratorkomponente 240 empfängt auch von der zweiten Fähigkeit 290b zweite Ergebnisdaten, die von der Durchführung der zweiten Fähigkeit in Bezug auf die zweiten NLU-Ergebnisse erzeugt wurden.
  • Die Ergebnisdaten 685 können verschiedene Komponenten beinhalten. Zum Beispiel können die Ergebnisdaten 685 Inhalte (z. B. Audiodaten, Textdaten und / oder Videodaten) beinhalten, die an einen Benutzer ausgegeben werden sollen. Die Ergebnisdaten 685 können auch eine eindeutige Kennung (identifier, ID) beinhalten, die von dem Remotesystem 120 und / oder dem / den Fähigkeitsserver(n) 225 verwendet wird, um die an einen Benutzer auszugebenden Daten zu lokalisieren. Die Ergebnisdaten 685 können auch eine Anweisung beinhalten. Falls der Befehl zum Beispiel „Licht einschalten“ entspricht, können die Ergebnisdaten 685 eine Anweisung beinhalten, die das System veranlasst, ein Licht einzuschalten, das einem Profil der Benutzervorrichtung 110 und / oder des Benutzers zugeordnet ist.
  • Die Orchestratorkomponente 240 kann vor dem Senden der NLU-Ergebnisdaten 685 an die Orchestratorkomponente 240 Absichten in den NLU-Ergebnisdaten 685 Fähigkeiten 290 zuordnen. Falls zum Beispiel die NLU-Ergebnisdaten 685 eine <PlayMusic> Absicht beinhalten, kann die Orchestratorkomponente 240 die NLU-Ergebnisdaten 685 einer oder mehreren Fähigkeiten 290 zuordnen, die die <PlayMusic> Absicht durchführen können. Somit kann die Orchestratorkomponente 240 die NLU-Ergebnisdaten 685 gepaart mit Fähigkeiten 290 an die Orchestratorkomponente 240 senden. Als Antwort auf eingegebene Textdaten, die „was soll ich heute zum Abendessen machen“ entsprechen, kann die Orchestratorkomponente 240 Paare von Fähigkeiten 290 mit zugeordneten Absichten erzeugen, die Folgendem entsprechen:
    • Fähigkeit 1 /<Roll Down Window>
    • Fähigkeit 2 /<Start Navigation>
    • Fähigkeit 3 /<Play Music>
  • Ein System, das die oben beschriebene Orchestratorkomponente 240 nicht verwendet, kann stattdessen die am höchsten bewerteten NLU-Ergebnisdaten 685 mit vorläufiger Einstufung auswählen, die einer einzelnen Fähigkeit zugeordnet sind. Das System kann die NLU-Ergebnisdaten 685 zusammen mit einer Anforderung für Ausgabedaten an die Fähigkeit 290 senden. In einigen Situationen ist die Fähigkeit 290 möglicherweise nicht in der Lage, das System mit Ausgabedaten zu versorgen. Dies führt dazu, dass das System dem Benutzer anzeigt, dass der Befehl nicht verarbeitet werden konnte, obwohl eine andere Fähigkeit, die den NLU-Ergebnisdaten 685 mit niedrigerer Einstufung zugeordnet ist, als Antwort auf den Befehl Ausgabedaten hätte liefern können.
  • Komponenten eines Systems, die verwendet werden können, um Einheitenauswahl, parametrische TTS-Verarbeitung und / oder modellbasierte Audiosynthese durchzuführen, sind in 7 gezeigt. Wie in 7 kann die TTS-Komponente / der Prozessor 780 ein TTS-Front-End 716, eine Sprachsyntheseengine 718, einen TTS-Einheitenspeicher 772, einen parametrischen TTS-Speicher 780 und ein TTS-Back-End 734 beinhalten. Der TTS-Einheitenspeicher 772 kann unter anderem Sprachinventare 778a-288n beinhalten, die voraufgezeichnete Audiosegmente (als Einheiten bezeichnet) beinhalten können, die von der Einheitenauswahlengine 730 verwendet werden, wenn eine Einheitenauswahlsynthese, wie unten beschrieben, ausgeführt wird. Der parametrische TTS-Speicher 780 kann unter anderem parametrische Einstellungen 768a-268n beinhalten, die von der parametrischen Syntheseengine 732 verwendet werden können, wenn parametrische Synthese, wie unten beschrieben, ausgeführt wird. Ein bestimmter Satz parametrischer Einstellungen 768 kann einem bestimmten Stimmprofil (z. B. geflüsterte Sprache, aufgeregte Sprache usw.) entsprechen.
  • In verschiedenen Ausführungsformen der vorliegenden Erfindung kann eine modellbasierte Synthese von Audiodaten unter Verwendung eines Sprachmodells 722 und eines TTS-Front-End 716 ausgeführt werden. Das TTS-Front-End 716 kann dasselbe sein wie Front-Ends, die in herkömmlichen Einheitenauswahl- oder parametrischen Systemen verwendet werden. In anderen Ausführungsformen basieren einige oder alle Komponenten des TTS-Front-Ends 716 auf anderen trainierten Modellen. Die vorliegende Erfindung ist jedoch nicht auf irgendeine bestimmte Art von TTS-Front-End 716 beschränkt. Das Sprachmodell 722 kann verwendet werden, um Sprache zu synthetisieren, ohne dass der TTS-Einheitenspeicher 772 oder der parametrische TTS-Speicher 780 erforderlich ist, wie nachstehend ausführlicher beschrieben wird.
  • Das TTS-Front-End 716 wandelt Eingabetextdaten 710 (zum Beispiel von einer Anwendung, einem Benutzer, einer Vorrichtung oder einer anderen Textquelle) in eine symbolische linguistische Darstellung um, die lingistische Kontextmerkmale wie Phonemdaten, Interpunktionsdaten, Silbenebene-Merkmale, Wortebene-Merkmale und / oder Emotions-, Sprecher-, Akzent- oder andere Merkmale zur Verarbeitung durch die Sprachsyntheseengine 718, beinhalten können. Die Silbenebene-Merkmale können Silbenbetonung, Silbensprechrate, Silbenbeugung oder andere derartige Silbenebene-Merkmale beinhalten; die Wortebene-Merkmale können Wortbetonung, Wortsprechrate, Wortbeugung oder andere derartige Wortebene-Merkmale beinhalten. Die Emotions-Merkmale können Daten beinhalten, die einer Emotion entsprechen, die den Eingabetextdaten 710 zugeordnet ist, wie etwa Überraschung, Wut oder Angst. Die Sprecher-Merkmale können Daten beinhalten, die einem Sprechertyp entsprechen, wie etwa Geschlecht, Alter oder Beruf. Die Akzent-Merkmale können Daten beinhalten, die einem Akzent entsprechen, der dem Sprecher zugeordnet ist, wie etwa Southern, Boston, Englisch, Französisch oder ein anderer derartiger Akzent.
  • Das TTS-Front-End 716 kann auch andere Eingabedaten 715 verarbeiten, wie zum Beispiel Textmarkierungen oder Text-Metadaten, die zum Beispiel angeben können, wie bestimmte Worte ausgesprochen werden sollten, zum Beispiel durch Angabe der gewünschten Ausgabesprachqualität in gemäß Speech Synthesis Markup Language (SSML) oder in irgendeiner anderen Form formatierten Markierungen. Zum Beispiel kann eine erste Textmarkierung in Text eingefügt werden, die den Anfang markiert, wenn Text geflüstert werden soll (z. B. <begin whisper>) und eine zweite Markierung kann in den Text eingefügt werden, die das Ende markiert, wenn der Text geflüstert werden soll (z. B. <end whisper>). Die Markierungen können in den Eingabetextdaten 710 beinhalten sein und / oder der Text für eine TTS-Anfrage kann von separaten Metadaten begleitet sein, die angeben, welcher Text geflüstert werden soll (oder eine andere angegebene Audioeigenschaft aufweisen soll). Die Sprachsyntheseengine 718 kann die annotierten phonetischen Einheitenmodelle und Informationen vergleichen, die in dem TTS-Einheitenspeicher 772 und / oder dem parametrischen TTS-Speicher 780 gespeichert sind, um den Eingabetext in Sprache umzuwandeln. Das TTS-Front-End 716 und die Sprachsyntheseengine 718 können ihre(n) eigene(n) Steuerung(en) / Prozessor(en) und Arbeitsspeicher beinhalten oder sie können zum Beispiel die Steuerung / den Prozessor und Arbeitsspeicher des Servers 120, der Vorrichtung 110 oder einer anderen Vorrichtung verwenden. In ähnlicher Weise können sich die Anweisungen zum Betreiben des TTS-Front-Ends 716 und der Sprachsyntheseengine 718 innerhalb der TTS-Komponente 780, innerhalb des Arbeitsspeichers und / oder Speichers des Servers 120, der Vorrichtung 110 oder innerhalb einer externen Vorrichtung befinden.
  • In die TTS-Komponente 780 eingegebene Textdaten 710 können zur Verarbeitung an das TTS-Front-End 716 gesendet werden. Das Front-End kann Komponenten zum Durchführen einer Textnormalisierung, einer linguistischen Analyse, einer linguistischen Prosodieerzeugung oder anderer derartiger Komponenten beinhalten. Während der Textnormalisierung kann das TTS-Front-End 716 zuerst die Texteingabe verarbeiten und Standardtext erzeugen, wobei Dinge wie Zahlen, Abkürzungen (wie Apt., St. usw.), Symbole ($, % usw.) in das Äquivalent von ausgeschriebenen Worten umgewandelt werden.
  • Während der linguistischen Analyse kann das TTS-Front-End 716 die Sprache in dem normalisierten Text analysieren, um eine Sequenz von phonetischen Einheiten zu erzeugen, die dem Eingabetext entsprechen. Dieser Prozess kann als Graphem-zu-Phonem-Umwandlung bezeichnet werden. Phonetische Einheiten beinhalten symbolische Darstellungen von Lauteinheiten, die schließlich kombiniert und durch das System als Sprache ausgegeben werden sollen. Verschiedene Lauteinheiten können zum Teilen von Text zum Zweck der Sprachsynthese verwendet werden. Die TTS-Komponente 780 kann Sprache basierend auf Phonemen (einzelne Laute), Halbphonemen, Diphonen (die letzte Hälfte eines Phonems gekoppelt mit der ersten Hälfte des benachbarten Phonems), Biphonen (zwei aufeinanderfolgende Phoneme), Silben, Worten, Phrasen, Sätzen oder andere Einheiten verarbeiten. Jedes Wort kann einer oder mehreren phonetischen Einheiten zugeordnet werden. Eine solche Zuordnung kann unter Verwendung eines vom System gespeicherten Sprachwörterbuchs ausgeführt werden, zum Beispiel in der TTS-Speicherkomponente 772. Die vom TTS-Front-End 716 durchgeführte linguistische Analyse kann auch unterschiedliche grammatikalische Komponenten wie Präfixe, Suffixe, Phrasen, Interpunktion, syntaktische Grenzen oder dergleichen identifizieren. Solche grammatikalischen Komponenten können von der TTS-Komponente 780 verwendet werden, um eine natürlich klingende Audio-Wellenformausgabe herzustellen. Das Sprachwörterbuch kann auch Buchstabe-zu-Laut-Regeln und andere Werkzeuge beinhalten, die verwendet werden können, um zuvor nicht identifizierte Worte oder Buchstabenkombinationen auszusprechen, die von der TTS-Komponente 780 angetroffen werden können. Je mehr Informationen im Sprachwörterbuch im Allgemeinen beinhaltet sind, desto hochwertiger ist die Sprachausgabe.
  • Basierend auf der linguistischen Analyse kann das TTS-Front-End 716 dann eine linguistische Prosodieerzeugung durchführen, wobei die phonetischen Einheiten mit gewünschten prosodischen Charakteristika, auch akustische Merkmale genannt, annotiert werden, die angeben, wie die gewünschten phonetischen Einheiten in der schließlich ausgegebenen Sprache auszusprechen sind. Während dieser Stufe kann das TTS-Front-End 716 alle prosodischen Annotationen berücksichtigen und integrieren, die die Texteingabe in die TTS-Komponente 780 begleitet haben. Solche akustischen Merkmale können Silbenebene-Merkmale, Wortebene-Merkmale, Emotion, Sprecher, Akzent, Sprache, Tonhöhe, Energie, Dauer und dergleichen beinhalten. Die Anwendung akustischer Merkmale kann auf prosodischen Modellen basieren, die der TTS-Komponente 780 zur Verfügung stehen. Solche prosodischen Modelle geben an, wie bestimmte phonetische Einheiten unter bestimmten Umständen auszusprechen sind. Ein prosodisches Modell kann zum Beispiel die Position eines Phonems in einer Silbe, die Position einer Silbe in einem Wort, die Position eines Wortes in einem Satz oder einer Phrase, benachbarte phonetische Einheiten usw. berücksichtigen. Wie beim Sprachwörterbuch kann das prosodische Modell mit mehr Informationen zu einer qualitativ hochwertigeren Sprachausgabe führen als prosodische Modelle mit weniger Informationen. Ferner können ein prosodisches Modell und / oder phonetische Einheiten verwendet werden, um bestimmte Sprachqualitäten der zu synthetisierenden Sprache anzuzeigen, wobei diese Sprachqualitäten mit den Sprachqualitäten der eingegebenen Sprache übereinstimmen können (zum Beispiel können die phonetischen Einheiten zu erzeugende prosodische Charakteristika angeben, um die letztendlich synthetisierte Sprache wie ein Flüstern, basierend auf der geflüsterten Eingabesprache, klingen zu lassen).
  • Die Ausgabe des TTS-Front-Ends 716, die als symbolische linguistische Darstellung bezeichnet werden kann, kann eine Folge von phonetischen Einheiten beinhalten, die mit prosodischen Charakteristika annotiert sind. Diese symbolische linguistische Darstellung kann an die Sprachsyntheseengine 718 gesendet werden, die auch als Synthesizer bekannt sein kann, um sie in eine Audiowellenform von Sprache zur Ausgabe an eine Audioausgabevorrichtung und schließlich an einen Benutzer umzuwandeln. Die Sprachsyntheseengine 718 kann so konfiguriert sein, dass sie den Eingabetext auf effiziente Weise in hochqualitative, natürlich klingende Sprache umwandelt. Eine solche hochqualitative Sprache kann so konfiguriert werden, dass sie so gut wie möglich wie ein menschlicher Sprecher klingt, oder kann so konfiguriert werden, dass sie für einen Zuhörer verständlich ist, ohne dass versucht wird, eine präzise menschliche Stimme nachzuahmen.
  • Die Sprachsyntheseengine 718 kann eine Sprachsynthese unter Verwendung eines oder mehrerer unterschiedlicher Verfahren ausführen. In einem weiter unten beschriebenen Syntheseverfahren namens Einheitenauswahl vergleicht eine Einheitenauswahlengine 730 die durch das TTS-Front-End 716 erzeugte symbolische linguistische Darstellung mit einer Datenbank aufgezeichneter Sprache, wie zum Beispiel einer Datenbank (z. B. TTS-Einheitenspeicher 772), die Informationen bezüglich eines oder mehrerer Sprachkorpusse (z. B. Sprachinventare 778a-n) speichert. Jedes Sprachinventar kann verschiedenen Audiosegmenten entsprechen, die von einem sprechenden Menschen, wie etwa einem Synchronsprecher, aufgezeichnet wurden, wobei die Segmente in einem individuellen Inventar 778 als akustische Einheiten (z. B. Phoneme, Diphone usw.) gespeichert sind. Jeder gespeicherten Audioeinheit kann auch ein Index zugeordnet sein, der verschiedene akustische Eigenschaften oder andere beschreibende Informationen über die Einheit auflistet. Jede Einheit beinhaltet eine Audiowellenform, die einer phonetischen Einheit entspricht, zum Beispiel eine kurze .wav-Datei des spezifischen Lauts, zusammen mit einer Beschreibung verschiedener Merkmale, die der Audiowellenform zugeordnet sind. Zum Beispiel kann ein Indexeintrag für eine bestimmte Einheit Informationen beinhalten, wie Tonhöhe, Energie, Dauer, Obertöne, Mittenfrequenz einer bestimmten Einheit, wobei die phonetische Einheit in einem Wort, Satz oder einer Phrase, der benachbarten phonetischen Einheiten oder dergleichen, erscheint. Die Einheitenauswahlengine 730 kann dann die Informationen über jede Einheit verwenden, um Einheiten auszuwählen, die zusammenzufügen sind, um die Sprachausgabe zu bilden.
  • Die Einheitenauswahlengine 730 vergleicht die symbolische linguistische Darstellung mit Informationen über die gesprochenen Audioeinheiten in der Datenbank. Die Einheitendatenbank kann mehrere Beispiele phonetischer Einheiten beinhalten, um dem System viele verschiedene Optionen zum Verketten von Einheiten in Sprache bereitzustellen. Zuordnungseinheiten, von denen festgestellt wird, dass sie die gewünschten akustischen Qualitäten aufweisen, um das gewünschte Ausgabeaudio zu erzeugen, werden ausgewählt und miteinander verkettet (zum Beispiel durch eine Synthesekomponente 720), um Ausgabeaudiodaten 212 zu bilden, die synthetisierte Sprache darstellen. Unter Verwendung aller Informationen in der Einheitendatenbank kann eine Einheitenauswahlengine 730 Einheiten mit dem Eingabetext abgleichen, um Einheiten auszuwählen, die eine natürlich klingende Wellenform bilden können. Ein Vorteil der Einheitenauswahl ist, dass je nach Größe der Datenbank eine natürlich klingende Sprachausgabe erzeugt werden kann. Wie oben beschrieben, ist es umso wahrscheinlicher, dass das System in der Lage ist, natürlich klingende Sprache zu konstruieren, je größer die Einheitsdatenbank des Stimmkorpus ist.
  • Bei einem anderen Syntheseverfahren - genannt parametrische Synthese - werden Parameter wie Frequenz, Lautstärke, Rauschen durch eine parametrische Syntheseengine 732, einen digitalen Signalprozessor oder eine andere Audioerzeugungsvorrichtung variiert, um eine künstliche Sprachwellenformausgabe zu erzeugen. Die parametrische Synthese verwendet einen computergestützten Sprachgenerator, der manchmal als Vocoder bezeichnet wird. Die parametrische Synthese kann ein akustisches Modell und verschiedene statistische Techniken verwenden, um eine symbolische linguistische Darstellung mit gewünschten Ausgabesprachparametern abzugleichen. Unter Verwendung parametrischer Synthese kann ein Computersystem (zum Beispiel eine Synthesekomponente 720) Audiowellenformen mit den gewünschten akustischen Eigenschaften erzeugen. Die parametrische Synthese kann die Fähigkeit beinhalten, bei hohen Verarbeitungsgeschwindigkeiten genau zu sein, sowie die Fähigkeit, Sprache ohne große Datenbanken zu verarbeiten, die der Einheitenauswahl zugeordnet sind, kann aber auch eine Ausgabesprachqualität erzeugen, die möglicherweise nicht mit der der Einheitenauswahl übereinstimmt. Einheitenauswahl und parametrische Techniken können einzeln durchgeführt oder miteinander kombiniert und / oder mit anderen Synthesetechniken kombiniert werden, um eine Sprachaudioausgabe zu erzeugen.
  • Die TTS-Komponente 780 kann konfiguriert sein, um eine TTS-Verarbeitung in mehreren Sprachen durchzuführen. Für jede Sprache kann die TTS-Komponente 780 speziell konfigurierte Daten, Anweisungen und / oder Komponenten beinhalten, um Sprache in der (den) gewünschten Sprache(n) zu synthetisieren. Um die Leistung zu verbessern, kann die TTS-Komponente 780 die Inhalte des TTS-Speichers 780 basierend auf einer Rückmeldung der Ergebnisse der TTS-Verarbeitung revidieren / aktualisieren, wodurch es der TTS-Komponente 780 ermöglicht wird, die Spracherkennung zu verbessern.
  • Die TTS-Speicherkomponente 780 kann für einen einzelnen Benutzer basierend auf seiner / ihrer individualisierten gewünschten Sprachausgabe angepasst werden. Insbesondere kann die in einer Einheitendatenbank gespeicherte Spracheinheit aus Eingabeaudiodaten des sprechenden Benutzers entnommen werden. Um zum Beispiel die kundenspezifische Sprachausgabe des Systems zu erzeugen, kann das System mit mehreren Sprachinventaren 778a-278n konfiguriert sein, wobei jede Einheitsdatenbank mit einer anderen „Stimme“ konfiguriert ist, um den gewünschten Sprachqualitäten zu entsprechen. Solche Sprachinventare können auch mit Benutzerkonten verknüpft werden. Die von der TTS-Komponente 780 zum Synthetisieren der Sprache ausgewählte Stimme. Zum Beispiel kann ein Stimmkorpus gespeichert werden, um verwendet zu werden, um geflüsterte Sprache zu synthetisieren (oder Sprache, die geflüsterte Sprache annähert), ein anderer kann gespeichert werden, um verwendet zu werden, um erregte Sprache (oder Sprache, die erregte Sprache annähert) zu synthetisieren, und so weiter. Um die verschiedenen Stimmkorpusse zu erzeugen, kann eine Vielzahl von TTS-Trainingsäußerungen von einer Einzelperson (wie etwa einem Synchronsprecher) gesprochen und vom System aufgezeichnet werden. Das den TTS-Trainingsäußerungen zugeordnete Audio kann dann in kleine Audiosegmente aufgeteilt und als Teil eines Stimmkorpus gespeichert werden. Die Einzelperson, die die TTS-Trainingsäußerungen spricht, kann in unterschiedlichen Stimmqualitäten sprechen, um die angepassten Stimmkorpusse zu erzeugen, die Einzelperson kann zum Beispiel die Trainingsäußerungen flüstern, sie mit aufgeregter Stimme sagen und so weiter. Somit kann das Audio jedes angepassten Stimmkorpus mit der jeweiligen gewünschten Sprachqualität übereinstimmen. Das angepasste Stimminventar 778 kann dann während der Laufzeit verwendet werden, um eine Einheitenauswahl auszuführen, um Sprache mit einer Sprachqualität zu synthetisieren, die der Eingabesprachqualität entspricht.
  • Zusätzlich kann eine parametrische Synthese verwendet werden, um Sprache mit der gewünschten Sprachqualität zu synthetisieren. Für die parametrische Synthese können parametrische Merkmale konfiguriert werden, die der gewünschten Sprachqualität entsprechen. Falls simulierte erregte Sprache erwünscht war, können parametrische Merkmale eine erhöhte Sprechrate und / oder Tonhöhe für die resultierende Sprache angeben. Viele andere Beispiele sind möglich. Die gewünschten parametrischen Merkmale für bestimmte Sprachqualitäten können in einem „Stimm“-Profil gespeichert werden (z. B. parametrische Einstellungen 768) und für die Sprachsynthese verwendet werden, wenn die spezifische Sprachqualität erwünscht ist. Angepasste Stimmen können basierend auf einer Kombination mehrerer gewünschter Sprachqualitäten (entweder für die Einheitenauswahl oder die parametrische Synthese) erstellt werden. Zum Beispiel kann eine Stimme „geschrien“ werden, während eine andere Stimme „geschrien und betont“ werden kann. Viele solcher Kombinationen sind möglich.
  • Die Einheitenauswahl-Sprachsynthese kann wie folgt ausgeführt werden. Die Einheitenauswahl beinhaltet einen zweistufigen Prozess. Zuerst bestimmt eine Einheitenauswahlengine 730, welche Spracheinheiten zu verwenden sind, und kombiniert sie dann so, dass die bestimmten kombinierten Einheiten zu den gewünschten Phonemen und akustischen Merkmalen passen und die gewünschte Sprachausgabe erzeugen. Einheiten können basierend auf einer Kostenfunktion ausgewählt werden, die darstellt, wie gut bestimmte Einheiten zu den zu synthetisierenden Sprachsegmenten passen. Die Kostenfunktion kann eine Kombination unterschiedlicher Kosten darstellen, die unterschiedliche Aspekte davon darstellen, wie gut eine bestimmte Spracheinheit für ein bestimmtes Sprachsegment funktionieren kann. Zum Beispiel geben Zielkosten an, wie gut eine einzelne gegebene Spracheinheit mit den Merkmalen einer gewünschten Sprachausgabe (z. B. Tonhöhe, Prosodie usw.) übereinstimmt. Verbindungskosten stellen dar, wie gut eine bestimmte Spracheinheit zu einer benachbarten Spracheinheit passt (z. B. eine Spracheinheit, die direkt vor oder direkt nach der bestimmten Spracheinheit erscheint), zu dem Zweck, um die Spracheinheiten in der schließlich synthetisierten Sprache zu verketten. Die Gesamtkostenfunktion ist eine Kombination aus Zielkosten, Verbindungskosten und anderen Kosten, die von der Einheitenauswahlengine 730 bestimmt werden können. Als Teil der Einheitenauswahl wählt die Einheitenauswahlengine 730 die Spracheinheit mit den niedrigsten kombinierten Gesamtkosten aus. Zum Beispiel muss eine Spracheinheit mit sehr niedrigen Zielkosten nicht unbedingt ausgewählt werden, falls ihre Verbindungskosten hoch sind.
  • Das System kann mit einem oder mehreren Stimmkorpussen zur Einheitenauswahl konfiguriert werden. Jeder Stimmkorpus kann eine Spracheinheitendatenbank beinhalten. Die Spracheinheitendatenbank kann im TTS-Einheitenspeicher 772 oder in einer anderen Speicherkomponente gespeichert werden. Zum Beispiel können unterschiedliche Einheitenauswahldatenbanken im TTS-Einheitenspeicher 772 gespeichert werden. Jede Spracheinheitendatenbank (z. B. Stimminventar) beinhaltet aufgezeichnete Sprachäußerungen, wobei der entsprechende Text der Äußerungen an den Äußerungen ausgerichtet ist. Eine Spracheinheitendatenbank kann viele Stunden aufgezeichneter Sprache (in Form von Audiowellenformen, Merkmalsvektoren oder anderen Formaten) beinhalten, die eine beträchtliche Menge an Speicherplatz einnehmen können. Die Einheitenproben in der Spracheinheitendatenbank können auf vielfältige Weise klassifiziert werden, einschließlich nach phonetischer Einheit (Phonem, Diphon, Wort usw.), linguistischer prosodischer Bezeichnung, akustischer Merkmalssequenz, Sprecheridentität usw. Die Probeäußerungen können verwendet werden, um mathematische Modelle zu erzeugen, die der gewünschten Audioausgabe für bestimmte Spracheinheiten entsprechen. Beim Zuordnen einer symbolischen linguistischen Darstellung kann die Sprachsyntheseengine 718 versuchen, eine Einheit in der Spracheinheitendatenbank auszuwählen, die am ehesten mit dem eingegebenen Text übereinstimmt (einschließlich sowohl phonetischer Einheiten als auch prosodischer Annotationen). Im Allgemeinen kann die Sprachsynthese umso besser erreicht werden, je größer der Stimmkorpus / die Spracheinheitendatenbank ist, aufgrund der größeren Anzahl von Einheitenproben, die ausgewählt werden können, um die präzise gewünschte Sprachausgabe zu bilden.
  • Vocoder-basierte parametrische Sprachsynthese kann wie folgt ausgeführt werden. Eine TTS-Komponente 780 kann ein akustisches Modell oder andere Modelle beinhalten, die eine symbolische sprachliche Darstellung in eine synthetische akustische Wellenform der Texteingabe basierend auf einer Audiosignalmanipulation umwandeln können. Das akustische Modell beinhaltet Regeln, die von der parametrischen Syntheseengine 732 verwendet werden können, um bestimmte Audiowellenformparameter zuzuweisen, um phonetische Einheiten und / oder prosodische Annotationen einzugeben. Die Regeln können verwendet werden, um einen Wert zu berechnen, der eine Wahrscheinlichkeit darstellt, dass ein oder mehrere bestimmte Audioausgabeparameter (wie etwa Frequenz, Lautstärke usw.) dem Abschnitt der eingegebenen symbolischen linguistischen Darstellung von dem TTS-Front-End 716 entsprechen.
  • Die parametrische Syntheseengine 732 kann eine Anzahl von Techniken verwenden, um zu synthetisierende Sprache mit eingegebenen phonetischen Einheiten und / oder prosodischen Annotationen abzugleichen. Eine übliche Technik ist die Verwendung von Hidden-Markov-Modellen (Hidden Markov Models, HMMs). HMMs können verwendet werden, um Wahrscheinlichkeiten zu bestimmen, dass die Audioausgabe mit der Texteingabe übereinstimmen sollte. HMMs können verwendet werden, um Parameter aus dem linguistischen und akustischen Raum in die Parameter zu übersetzen, die von einem Vocoder (dem digitalen Stimmcodierer) verwendet werden, um die gewünschte Sprache künstlich zu synthetisieren. Unter Verwendung von HMMs wird eine Anzahl von Zuständen präsentiert, in denen die Zustände zusammen einen oder mehrere potenzielle akustische Parameter darstellen, die an den Vocoder ausgegeben werden sollen, und jeder Zustand einem Modell zugeordnet ist, wie etwa einem Gaußschen Mischungsmodell. Übergänge zwischen Zuständen können auch eine zugeordnete Wahrscheinlichkeit haben, die eine Wahrscheinlichkeit darstellt, dass ein aktueller Zustand von einem vorherigen Zustand erreicht werden kann. Auszugebende Laute können als Pfade zwischen Zuständen des HMM dargestellt werden, und mehrere Pfade können mehrere mögliche Audioübereinstimmungen für denselben Eingabetext darstellen. Jeder Textabschnitt kann durch mehrere potenzielle Zustände dargestellt werden, die unterschiedlichen bekannten Aussprachen von Phonemen und ihren Teilen (wie etwa der Phonemidentität, Betonung, Akzent, Position usw.) entsprechen. Eine anfängliche Bestimmung einer Wahrscheinlichkeit eines potenziellen Phonems kann einem Zustand zugeordnet werden. Wenn neuer Text von der Sprachsyntheseengine 718 verarbeitet wird, kann sich der Zustand basierend auf der Verarbeitung des neuen Textes ändern oder gleich bleiben. Zum Beispiel könnte sich die Aussprache eines zuvor verarbeiteten Worts basierend auf später verarbeiteten Worten ändern. Ein Viterbi-Algorithmus kann verwendet werden, um die wahrscheinlichste Folge von Zuständen basierend auf dem verarbeiteten Text zu finden. Die HMMs können Sprache in parametrisierter Form erzeugen, einschließlich Parametern wie Grundfrequenz (f0), Rauschhüllkurve, Spektralhüllkurve usw., die von einem Vocoder in Audiosegmente übersetzt werden. Die Ausgabeparameter können für bestimmte Vocoder wie einen STRAIGHT-Vocoder, einen TANDEM-STRAIGHT-Vocoder, einen WORLD-Vocoder, HNM (harmonnic pulse noise)-basierte Vocoder, CELP (code-excited linear prediction)-Vocoder, GlottHMM-Vocoder, HSM (harmonic / stochastic model)-Vocoder und andere konfiguriert werden.
  • Zusätzlich zum Berechnen potenzieller Zustände für eine Audiowellenform als potenzielle Übereinstimmung mit einer phonetischen Einheit kann die parametrische Syntheseengine 732 auch potenzielle Zustände für andere potenzielle Audioausgaben (wie etwa verschiedene Arten des Aussprechens eines bestimmten Phonems oder Diphons) als potenzielle Akustikübereinstimmungen für die Akustikeinheit berechnen. Auf diese Weise können mehrere Zustände und Zustandsübergangswahrscheinlichkeiten berechnet werden.
  • Die wahrscheinlichen Zustände und wahrscheinlichen Zustandsübergänge, die von der parametrischen Syntheseengine 732 berechnet werden, können zu einer Anzahl potenzieller Audioausgabesequenzen führen. Basierend auf dem akustischen Modell und anderen potenziellen Modellen können die potenziellen Audioausgabesequenzen gemäß einem Konfidenzniveau der parametrischen Syntheseengine 732 bewertet werden. Die Audioausgabesequenz mit der höchsten Bewertung, einschließlich eines Stroms von zu synthetisierenden Parametern, kann ausgewählt werden, und eine digitale Signalverarbeitung kann durch einen Vocoder oder eine ähnliche Komponente ausgeführt werden, um eine Audioausgabe zu erzeugen, die synthetisierte Sprachwellenformen beinhaltet, die den Parametern der Audioausgabesequenz mit der höchsten Bewertung entsprechen und, falls die richtige Sequenz gewählt wurde, auch dem Eingabetext entsprechen. Die unterschiedlichen parametrischen Einstellungen 768, die akustische Einstellungen darstellen können, die zu einer bestimmten parametrischen „Stimme“ passen, können von der Synthesekomponente 722 verwendet werden, um schließlich die Ausgabeaudiodaten 212 herzustellen.
  • Wenn eine Einheitenauswahl durchgeführt wird, nachdem eine Einheit von der Einheitenauswahlengine 730 ausgewählt wurde, können die der Einheit entsprechenden Audiodaten an die Audiodaten-Modifikationskomponente 720 weitergeleitet werden. Die Audiodaten-Modifikationskomponente 720 kann dann die Audiodaten der Einheit verarbeiten, um modifizierte Audiodaten zu erzeugen, wobei die modifizierten Audiodaten eine gewünschte Audioqualität widerspiegeln. Die Audiodaten-Modifikationskomponente 720 kann eine Vielzahl von Operationen speichern, die Einheitenaudiodaten in modifizierte Audiodaten umwandeln können, wobei verschiedene Operationen basierend auf dem gewünschten Audioeffekt (z. B. Flüstern, Schreien usw.) ausgeführt werden können.
  • Zum Beispiel kann Eingabetext zusammen mit Metadaten empfangen werden, wie etwa SSML-Markierungen, die angeben, dass ein ausgewählter Abschnitt des Eingabetexts geflüstert werden sollte, wenn er vom TTS-Modul 780 ausgegeben wird. Für jede Einheit, die dem ausgewählten Abschnitt entspricht, kann die Audiodaten-Modifikationskomponente 720 die Audiodaten für diese Einheit verarbeiten, um eine modifizierte Einheitenaudiodaten zu erzeugen. Die modifizierten Einheitenaudiodaten können dann verkettet werden, um die Ausgabeaudiodaten 212 zu bilden. Die modifizierten Einheitenaudiodaten können auch abhängig davon, wann die gewünschte geflüsterte Sprache beginnt und / oder endet, mit nicht modifizierten Audiodaten verkettet werden. Während die modifizierten Audiodaten ausreichend sein können, um die ausgegebenen Audiodaten mit den gewünschten Audioqualitäten zu versehen, können auch andere Faktoren die endgültige Audioausgabe beeinflussen, wie etwa Wiedergabegeschwindigkeit, Hintergrundeffekte oder dergleichen, die außerhalb der Kontrolle des TTS-Modul 780 liegen. In diesem Fall können andere Ausgabedaten 785 zusammen mit den Ausgabeaudiodaten 212 ausgegeben werden, so dass eine endgültige Wiedergabevorrichtung (z. B. Vorrichtung 110) Anweisungen zur Wiedergabe empfängt, die beim Herstellen des gewünschten Ausgabeaudios helfen können. Somit können die anderen Ausgabedaten 785 Anweisungen oder andere Daten beinhalten, die Wiedergabevorrichtungseinstellungen (wie etwa Lautstärke, Wiedergaberate usw.) angeben, oder andere Daten, die angeben, wie Ausgabeaudiodaten einschließlich synthetisierter Sprache ausgegeben werden sollten. Zum Beispiel können die Ausgabeaudiodaten 212 für geflüsterte Sprache andere Ausgabedaten 785 beinhalten, die eine Prosodie-Markierung oder einen anderen Indikator beinhalten können, der die Vorrichtung 110 anweist, die Wiedergabe der Ausgabeaudiodaten 212 zu verlangsamen, wodurch das endgültige Audio eher wie geflüsterte Sprache klingt, die normalerweise langsamer als normale Sprache ist. In einem anderen Beispiel können die anderen Ausgabedaten 785 eine Lautstärkemarkierung beinhalten, die die Vorrichtung 110 anweist, die Sprache mit einem Lautstärkeniveau auszugeben, das geringer ist als eine aktuelle Lautstärkeeinstellung der Vorrichtung 110, wodurch der leise Flüstereffekt verbessert wird.
  • Wie in 8 gezeigt, kann die Benutzererkennungskomponente 295 eine oder mehrere Unterkomponenten beinhalten, einschließlich einer Sichtkomponente 808, einer Audiokomponente 810, einer biometrischen Komponente 812, einer Funkfrequenz (radiofrequency, RF)-Komponente 814, einer Maschinelles-Lernen (machine-learning. ML)-Komponente 816, und einer Erkennungskonfidenzkomponente 818. In einigen Fällen kann die Benutzererkennungskomponente 295 Daten und Bestimmungen von einer oder mehreren Unterkomponenten überwachen, um eine Identität von einem oder mehreren Benutzern zu bestimmen, die einer Dateneingabe in das System zugeordnet sind. Die Benutzererkennungskomponente 295 kann Benutzererkennungsdaten 895 ausgeben, die eine Benutzerkennung beinhalten können, die einem Benutzer zugeordnet ist, von dem das System glaubt, dass von ihm eine Dateneingabe in das System stammt. Die Benutzererkennungsdaten 895 können verwendet werden, um über Prozesse zu informieren, die von dem Orchestrator 240 (oder einer Unterkomponente davon), wie unten beschrieben, ausgeführt werden.
  • Die Sichtkomponente 808 kann Daten von einem oder mehreren Sensoren empfangen, die in der Lage sind, Bilder (z. B. Kameras) oder Sensoren bereitzustellen, die Bewegung anzeigen (z. B. Bewegungssensoren). Die Sichtkomponente 808 kann eine Gesichtserkennung oder Bildanalyse durchführen, um eine Identität eines Benutzers zu bestimmen und diese Identität einem Benutzerprofil zuzuordnen, das dem Benutzer zugeordnet ist. In einigen Fällen, wenn ein Benutzer einer Kamera gegenübersteht, kann die Sichtkomponente 808 eine Gesichtserkennung durchführen und den Benutzer mit einem hohen Konfidenzgrad identifizieren. In anderen Fällen kann die Sichtkomponente 808 einen geringen Konfidenzgrad von einer Identität eines Benutzers haben und die Benutzererkennungskomponente 295 kann Bestimmungen von zusätzlichen Komponenten verwenden, um eine Identität eines Benutzers zu bestimmen. Die Sichtkomponente 808 kann in Verbindung mit anderen Komponenten verwendet werden, um eine Identität eines Benutzers zu bestimmen Zum Beispiel kann die Benutzererkennungskomponente 295 Daten von der Sichtkomponente 808 mit Daten von der Audiokomponente 810 verwenden, um zu identifizieren, welches Gesicht des Benutzers zu sprechen scheint, während Audio von der Benutzervorrichtung 110 zur gleichen Zeit zum Zweck der Identifizierung von einem Benutzer erfasst wird, der eine Eingabe an die Benutzervorrichtung 110 gesprochen hat.
  • Die Benutzervorrichtung 110 kann biometrische Sensoren beinhalten, die Daten an die biometrische Komponente 812 übertragen. Zum Beispiel kann die biometrische Komponente 812 Daten empfangen, die Fingerabdrücken, Iris- oder Netzhautscans, thermischen Scans, Gewichten von Benutzern, einer Größe eines Benutzers, Druck (z. B. innerhalb von Bodensensoren) usw. entsprechen, und kann ein biometrisches Profil bestimmen, das einem Benutzer entspricht. Die biometrische Komponente 812 kann zum Beispiel zwischen einem Benutzer und Lauten von einem Fernseher unterscheiden. Somit kann die biometrische Komponente 812 biometrische Informationen in ein Konfidenzniveau zum Bestimmen einer Identität eines Benutzers integrieren.
  • Die RF-Komponente 814 kann RF-Lokalisierung verwenden, um Vorrichtungen zu verfolgen, die ein Benutzer tragen oder anhaben kann. Zum Beispiel kann ein Benutzer einer Vorrichtung zugeordnet sein. Die Vorrichtung kann RF-Signale aussenden (z. B. Wi-Fi, B|uetooth® usw.) Die Benutzervorrichtung 110 kann das Signal detektieren und der RF-Komponente 814 die Stärke des Signals angeben (z. B. als eine Empfangssignalstärkeangabe (received signal strength indication, RSSI)). Die RF-Komponente 814 kann die RSSI verwenden, um eine Identität eines Benutzers (mit einem zugeordneten Konfidenzniveau) zu bestimmen. In einigen Fällen kann die RF-Komponente 814 bestimmen, dass ein empfangenes RF-Signal einer Mobilvorrichtung zugeordnet ist, die einer bestimmten Benutzerkennung zugeordnet ist.
  • In einigen Fällen kann die Benutzervorrichtung 110 einige RF- oder andere Erkennungsverarbeitungsfähigkeiten beinhalten, sodass ein Benutzer, der eine Eingabe spricht, seine / ihre persönliche Vorrichtung gegenüber der Benutzervorrichtung 110 scannen, antippen oder anderweitig bestätigen kann. Auf diese Weise kann sich der Benutzer bei der Benutzervorrichtung 110 „registrieren“, damit die Benutzervorrichtung 110 bestimmt, wer eine bestimmte Eingabe gesprochen hat. Eine solche Registrierung kann vor, während oder nach dem Sprechen einer Eingabe erfolgen.
  • Die ML-Komponente 816 kann das Verhalten verschiedener Benutzer als einen Faktor beim Bestimmen eines Konfidenzniveaus der Identität des Benutzers verfolgen. Zum Beispiel kann ein Benutzer einen regelmäßigen Zeitplan einhalten, sodass der Benutzer tagsüber an einem ersten Ort ist (z. B. bei der Arbeit oder in der Schule). In diesem Beispiel berücksichtigt die ML-Komponente 816 früheres Verhalten und / oder Trends bei der Bestimmung der Identität des Benutzers, der Eingaben an die Benutzervorrichtung 110 bereitgestellt hat. Somit kann die ML-Komponente 816 historische Daten und / oder Nutzungsmuster im Laufe der Zeit verwenden, um ein Konfidenzniveau einer Identität eines Benutzers zu erhöhen oder zu verringern.
  • In einigen Fällen empfängt die Erkennungskonfidenzkomponente 818 Bestimmungen von den verschiedenen Komponenten 808, 810, 812, 814 und 816 und kann ein endgültiges Konfidenzniveau bestimmen, das der Identität eines Benutzers zugeordnet ist. Das Konfidenzniveau oder andere Bewertungsdaten können in den Benutzererkennungsdaten 895 beinhaltet sein.
  • Die Audiokomponente 810 kann Daten von einem oder mehreren Sensoren empfangen, die in der Lage sind, ein Audiosignal bereitzustellen (z. B. ein oder mehrere Mikrofone), um das Erkennen eines Benutzers zu erleichtern. Die Audiokomponente 810 kann eine Audioerkennung an einem Audiosignal durchführen, um eine Identität des Benutzers und eine zugeordnete Benutzerkennung zu bestimmen. In einigen Fällen kann die Audiokomponente 810 eine Stimmerkennung durchführen, um eine Identität eines Benutzers zu bestimmen.
  • Die Audiokomponente 810 kann auch eine Benutzeridentifikation basierend auf Audio durchführen, das von der Benutzervorrichtung 110 empfangen wird. Die Audiokomponente 810 kann Werte bestimmen, die angeben, ob Sprache in dem Audio von bestimmten Benutzern stammt. Zum Beispiel kann ein erster Wert eine Wahrscheinlichkeit angeben, dass Sprache im Audio von einem ersten Benutzer stammt, der einer ersten Benutzerkennung zugeordnet ist, ein zweiter Wert kann eine Wahrscheinlichkeit angeben, dass Sprache im Audio von einem zweiten Benutzer stammt, der einer zweiten Benutzerkennung zugeordnet ist usw. Die Audiokomponente 810 kann eine Benutzererkennung durch Vergleichen von Audiocharakteristika, die das Audio darstellen, mit gespeicherten Audiocharakteristika von Benutzern ausführen.
  • 9 ist ein Blockdiagramm, das konzeptionell eine Benutzervorrichtung 110 veranschaulicht, die mit dem System verwendet werden kann. 10 ist ein Blockdiagramm, das konzeptionell beispielhafte Komponenten einer Remotevorrichtung veranschaulicht, wie etwa das eine oder die mehreren Systeme 120, die bei der ASR-Verarbeitung, NLU-Verarbeitung usw. unterstützen können, und das eine oder die mehreren Fähigkeitssysteme 225. Der Begriff „Server“, wie er hier verwendet wird, kann sich auf einen herkömmlichen Server beziehen, wie er in einer Server-/ Client-Datenverarbeitungsstruktur verstanden wird, kann sich aber auch auf eine Anzahl unterschiedlicher Rechenkomponenten beziehen, die bei den hier erörterten Operationen unterstützen können. Zum Beispiel kann ein Server eine oder mehrere physikalische Rechenkomponenten (wie etwa einen Rack-Server) beinhalten, die entweder physikalisch und / oder über ein Netzwerk mit anderen Vorrichtungen / Komponenten verbunden sind und in der Lage sind, Rechenoperationen auszuführen. Ein Server kann auch eine oder mehrere virtuelle Maschinen beinhalten, die ein Computersystem emulieren und auf einer oder mehreren Vorrichtungen ausgeführt werden. Ein Server kann auch andere Kombinationen von Hardware, Software, Firmware oder dergleichen beinhalten, um hierin erörterte Operationen durchzuführen. Der / die Server kann / können konfiguriert sein, um unter Verwendung eines oder mehrerer Client-Server-Modelle, eines Computerbüromodells, Grid-Computing-Techniken, Fog-Computing-Techniken, Mainframe-Techniken, Utility-Computing-Techniken, eines Peer-to-Peer-Modells, einer Sandbox-Technik oder anderen Rechentechniken zu arbeiten.
  • Mehrere Server (120 / 225) können in dem System beinhaltet sein, wie etwa ein oder mehrere Server 120 zum Ausführen der ASR-Verarbeitung, ein oder mehrere Server 120 zum Ausführen der NLU-Verarbeitung, ein oder mehrere Fähigkeitssystem(e) 225 zum Ausführen von Aktionen als Antwort auf Benutzereingaben usw. Im Betrieb kann jede dieser Vorrichtungen (oder Gruppen von Vorrichtungen) computerlesbare und computerausführbare Anweisungen beinhalten, die sich auf der jeweiligen Vorrichtung (120 / 225) befinden, wie weiter unten erörtert wird.
  • Jede dieser Vorrichtungen (110 / 120 / 225) kann eine(n) oder mehrere Steuerungen / Prozessoren (904/ 1004) beinhalten, die jeweils eine zentrale Verarbeitungseinheit (central processing unit, CPU) von Daten und computerlesbare Anweisungen und einen Arbeitsspeicher (906/ 1006) zum Speichern von Daten und Anweisungen der jeweiligen Vorrichtung beinhalten können. Die Arbeitsspeicher (906/ 1006) können einzeln einen flüchtigen Direktzugriffsarbeitsspeicher (random access memory, RAM), einen nichtflüchtigen Nur-Lese-Arbeitspeicher (read-only memory, ROM), einen nichtflüchtigen magnetoresistiven Arbeitspeicher (non-volatile magnetoresistive memory, MRAM) und / oder andere Arten von Arbeitspeicher beinhalten. Jede Vorrichtung (110 / 120 / 225) kann auch eine Datenspeicherkomponente (908 / 1008) zum Speichern von Daten und von Steuerung / Prozessor durchführbaren Anweisungen beinhalten. Jede Datenspeicherkomponente (908 / 1008) kann einzeln einen oder mehrere nichtflüchtige Speichertypen beinhalten, wie etwa Magnetspeicher, optische Speicher, Festkörperspeicher usw. Jede Vorrichtung (110 / 120 / 225) kann auch mit einem entfernbaren oder externen nichtflüchtigen Arbeitsspeicher und / oder Speicher (wie etwa einer entfernbaren Arbeitsspeicherkarte, einem Arbeitsspeicherschlüssellaufwerk, einem vernetzten Speicher usw.) über entsprechende Eingabe / Ausgabe-Vorrichtungsschnittstellen (902 / 1002) verbunden sein.
  • Computeranweisungen zum Betreiben jeder Vorrichtung (110 / 120 / 225) und ihrer verschiedenen Komponenten können durch die Steuerung(en) / den / die Prozessor(en) (904 / 1004) der jeweiligen Vorrichtung ausgeführt werden, wobei der Arbeitsspeicher (906 / 1006) als temporärer „Arbeits“-Speicher zur Laufzeit verwendet wird. Die Computeranweisungen einer Vorrichtung können in einem nichtflüchtigen Arbeitsspeicher (906 / 1006), einem Speicher (908 / 1008) oder einer oder mehreren externen Vorrichtungen auf nichtflüchtige Weise gespeichert werden. Alternativ können einige oder alle der durchführbaren Anweisungen zusätzlich zu oder anstelle von Software in Hardware oder Firmware auf dem jeweiligen Vorrichtung eingebettet sein.
  • Jede Vorrichtung (110 / 120 / 225) beinhaltet Eingabe/Ausgabe-Vorrichtungsschnittstellen (902 / 1002). Eine Vielzahl von Komponenten kann durch die Eingabe/Ausgabe-Vorrichtungsschnittstellen (902 / 1002) verbunden werden, wie weiter unten diskutiert wird. Zusätzlich kann jede Vorrichtung (110 / 120 / 225) einen Adress- / Datenbus (924 / 1024) zum Übertragen von Daten zwischen Komponenten der jeweiligen Vorrichtung beinhalten. Jede Komponente innerhalb einer Vorrichtung (110 / 120 / 225) kann auch direkt mit anderen Komponenten verbunden sein, zusätzlich zu (oder anstatt) mit anderen Komponenten über den Bus (924 / 1024) verbunden zu sein.
  • Unter Bezugnahme auf 9 kann die Benutzervorrichtung 110 Eingabe/Ausgabe-Vorrichtungsschnittstellen 902 beinhalten, die mit einer Vielzahl von Komponenten verbunden sind, wie etwa einer Audioausgabekomponente, wie etwa einem Lautsprecher 912, einem kabelgebundenen Headset oder einem drahtlosen Headset (nicht veranschaulicht) oder anderen Komponenten, die dazu in der Lage sind, Audio auszugeben. Die Benutzervorrichtung 110 kann auch eine Audioerfassungskomponente beinhalten. Die Audioerfassungskomponente kann zum Beispiel ein Mikrofon 920 oder ein Array von Mikrofonen, ein kabelgebundenes Headset oder ein drahtloses Headset (nicht veranschaulicht) usw. sein. Falls ein Array von Mikrofonen beinhaltet ist, kann die ungefähre Entfernung zu einem Ursprung eines Lautpunktes durch akustische Lokalisierung bestimmt werden, basierend auf Zeit- und Amplitudenunterschieden zwischen Lauten, die von unterschiedlichen Mikrofonen des Arrays erfasst werden. Die Benutzervorrichtung 110 kann zusätzlich eine Anzeige 916 zum Anzeigen von Inhalt beinhalten. Die Benutzervorrichtung 110 kann ferner eine Kamera 918 beinhalten.
  • Die Eingabe/Ausgabe-Vorrichtungsschnittstellen 902 können über Antenne(n) 914 mit einem oder mehreren Netzwerken 199 über ein drahtloses lokales Netzwerk (wireless local area network, WLAN) (wie etwa Wi-Fi), Bluetooth, und / oder einen drahtlosen Netzwerkfunk, wie etwa einen Funk, der zur Kommunikation mit einem drahtlosen Kommunikationsnetzwerk in der Lage ist, wie etwa ein Long Term Evolution (LTE)-Netzwerk, WiMAX-Netzwerk, 3G-Netzwerk, 4G-Netzwerk, 5G-Netzwerk usw. verbinden. Eine verdrahtet Verbindung, wie etwa Ethernet, kann auch unterstützt werden. Durch das / die Netzwerk(e) 199 kann das System über eine vernetzte Umgebung verteilt werden. Die E/A-Vorrichtungsschnittstelle (902 / 1002) kann auch Kommunikationskomponenten beinhalten, die es ermöglichen, dass Daten zwischen Vorrichtungen ausgetauscht werden, wie etwa verschiedenen physikalischen Servern in einer Sammlung von Servern oder anderen Komponenten.
  • Die Komponenten der Vorrichtung(en) 110, des Systems / der Systeme 120 oder des Fähigkeitssystems / der Fähigkeitssysteme 225 können ihre eigenen dedizierten Prozessoren, Arbeitsspeicher und / oder Speicher beinhalten. Alternativ können eine oder mehrere der Komponenten der Vorrichtung(en) 110, des Systems / der Systeme 120 oder des Fähigkeitssystems / der Fähigkeitssysteme 225 die E/A-Schnittstellen (902 / 1002), Prozessor(en) (904 / 1004), Arbeitsspeicher (906 / 1006) und / oder Speicher (908 / 1008) der Vorrichtung(en) 110 des Systems / der Systeme 120 bzw. des Fähigkeitssystems / der Fähigkeitssysteme 225 verwenden. Somit kann die ASR-Komponente 250 ihre eigene(n) E/A-Schnittstelle(n), Prozessor(en), Arbeitsspeicher und / oder Speicher haben; die NLU-Komponente 260 kann ihre eigene(n) E/A-Schnittstelle(n), Prozessor(en), Arbeitsspeicher und / oder Speicher haben; und so weiter für die verschiedenen hier diskutierten Komponenten.
  • Wie oben erwähnt, können mehrere Vorrichtungen in einem einzigen System verwendet werden. In einem solchen Mehrvorrichtungssystem kann jede der Vorrichtungen unterschiedliche Komponenten zum Ausführen unterschiedlicher Aspekte der Systemverarbeitung beinhalten. Die mehreren Vorrichtungen können überlappende Komponenten beinhalten. Die Komponenten der Benutzervorrichtung 110, des Systems / der Systeme 120 und des Fähigkeitssystems / der Fähigkeitssysteme 225, wie hierin beschrieben, dienen der Veranschaulichung und können als eigenständige Vorrichtung lokalisiert sein oder ganz oder ganz oder teilweise als eine Komponente einer größeren Vorrichtung oder eines größeren Systems beinhaltet sein.
  • Wie in 11 veranschaulicht, können mehrere Vorrichtungen (110a-110g, 120, 225) Komponenten des Systems beinhalten und die Vorrichtungen können über ein Netzwerk (Netzwerke) 199 verbunden sein. Das / die Netzwerk(e) 199 kann / können ein lokales oder privates Netzwerk beinhalten oder können ein weites Netzwerk, wie etwa das Internet, beinhalten. Vorrichtungen können entweder über verdrahtete oder drahtlose Verbindungen mit dem / den Netzwerk(en) 199 verbunden sein. Zum Beispiel können ein Fahrzeug 110a, ein Smartphone 110b, eine Smartwatch 1 10c, ein Tablet-Computer 110d, ein Fahrzeug 1 10e, ein Ausstellungsfahrzeug 110f und / oder ein Smart-TV 110g über einen Mobilfunkanbieter, über eine Wi-Fi- oder Mobilfunknetzverbindung oder dergleichen mit dem / den Netzwerk(en) 199 verbunden sein. Andere Vorrichtungen sind als netzwerkverbundene Unterstützungsvorrichtungen beinhaltet, wie etwa das System / die Systeme 120, das Fähigkeitssystem / die Fähigkeitssysteme 225 und / oder andere. Die Unterstützungsvorrichtungen können sich über eine drahtgebundene Verbindung oder eine drahtlose Verbindung mit dem / den Netzwerk(en) 199 verbinden. Vernetzte Vorrichtungen können Audio unter Verwendung von einem oder mehreren eingebauten oder verbundenen Mikrofonen oder anderen Audioaufnahmevorrichtungen erfassen, wobei die Verarbeitung von ASR-Komponenten, NLU-Komponenten oder anderen Komponenten derselben Vorrichtung oder einer anderen über das / die Netzwerk(e) 199 verbundenen Vorrichtung ausgeführt wird, wie etwa die ASR-Komponente 250, die NLU-Komponente 260 usw., eines oder mehrerer Server 120.
  • Das Vorstehende kann auch im Hinblick auf die folgenden Klauseln verstanden werden.
  • 1. Ein Verfahren zum Verarbeiten von Daten, die einen gesprochenen Befehl darstellen, das Verfahren umfassend:
    • Empfangen erster Audiodaten, die eine Äußerung darstellen, von einer stimmgesteuerten Vorrichtung;
    • Bestimmen, dass die ersten Audiodaten beinhalten:
      • einen ersten Abschnitt von Audiodaten, die ein Weckwort darstellen, das einem ersten Sprachverarbeitungssystem mit einem ersten Stil synthetisierter Sprache entspricht, und
      • einen zweiten Abschnitt von Audiodaten, die einen Befehl darstellen;
    • Bestimmen eines Bereich, der dem Befehl zugeordnet ist;
    • Bestimmen, dass der Bereich einem zweiten Sprachverarbeitungssystem mit einem zweiten Stil synthetisierter Sprache zugeordnet ist,
    • Senden von Befehlsdaten einschließlich des Befehls von dem ersten Sprachverarbeitungssystem zu dem zweiten Sprachverarbeitungssystem;
    • Empfangen einer ersten Antwort auf den Befehl von dem zweiten Sprachverarbeitungssystem, wobei die erste Antwort eine Darstellung einer ersten natürlichen Sprache beinhaltet, die dem zweiten Stil synthetisierter Sprache entspricht;
    • Bestimmen einer zweiten Antwort auf den Befehl unter Verwendung des ersten Sprachverarbeitungssystems und der ersten Antwort, wobei die zweite Antwort eine Darstellung einer zweiten natürlichen Sprache beinhaltet, die dem ersten Stil synthetisierter Sprache entspricht; und
    • Senden zweiter Audiodaten an die stimmgesteuerte Vorrichtung entsprechend der zweiten Antwort.
  • 2. Das Verfahren nach Klausel 1, ferner umfassend:
    • Bestimmen, dass der Befehl einem Aktionssatz entspricht, der zu einem späteren Zeitpunkt erfolgen soll; und
    • Senden eines zweiten Befehls zum Durchführen der Aktion von dem zweiten Sprachverarbeitungssystem an die stimmgesteuerte Vorrichtung,
    • wobei die zweiten Audiodaten eine Darstellung eines Namens des zweiten Sprachverarbeitungssystems beinhalten.
  • 3. Das Verfahren nach Klausel 1 oder 2, ferner umfassend:
    • Empfangen von dritten Audiodaten, die eine zweite Äußerung darstellen, von der stimmgesteuerten Vorrichtung;
    • Bestimmen, dass die dritten Audiodaten einem zweiten Befehl entsprechen;
    • Bestimmen, dass der zweite Befehl einer Benutzervorrichtung in der Nähe eines Benutzers entspricht; und
    • Senden einer dem zweiten Befehl entsprechenden Anweisung an die Benutzervorrichtung über eine Anwendungsprogrammierschnittstelle.
  • 4. Ein computerimplementiertes Verfahren, umfassend:
    • Empfangen von Eingabedaten, die einem Befehl entsprechen;
    • Bestimmen unter Verwendung eines ersten natürlichen Verständnissystems, dass der Befehl einem zweiten natürlichen Verständnissystem zugeordnet ist;
    • Senden von ersten Daten, die dem Befehl entsprechen, von dem ersten natürlichen Verständnissystem an das zweite natürliche Verständnissystem;
    • Empfangen von zweiten Daten, die einer ersten Antwort auf den Befehl entsprechen, von dem zweiten natürlichen Verständnissystem, wobei die zweiten Daten eine erste Angabe des zweiten natürlichen Verständnissystems beinhalten;
    • Bestimmen, unter Verwendung des ersten natürlichen Verständnissystems und der zweiten Daten, dritter Daten, die einer zweiten Antwort auf den Befehl entsprechen, wobei die dritten Daten eine zweite Angabe des ersten natürlichen Verständnissystems beinhalten; und
    • Veranlassen einer Ausgabe entsprechend den dritten Daten.
  • 5. Das computerimplementierte Verfahren nach Klausel 4, ferner umfassend:
    • vor dem Veranlassen der Ausgabe, Bestimmen, dass das zweite natürliche Verständnissystem einer Erlaubnisanfrage zugeordnet ist;
    • Bestimmen, eine zweite Ausgabe zu veranlassen, die der Erlaubnisanfrage entspricht, bevor die ersten Daten gesendet werden; und
    • Empfangen vierter Eingabedaten, die der Erlaubnisanfrage entsprechen,
    • wobei die dritten Daten ferner eine Darstellung der Erlaubnisanfrage beinhalten.
  • 6. Das computerimplementierte Verfahren nach Klausel 4 oder 5, ferner umfassend:
    • Bestimmen, dass der Befehl einer zweiten Ausgabe des zweiten natürlichen Verständnissystems entspricht, wobei die zweite Ausgabe nach der Ausgabe auftritt,
    • wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  • 7. Das computerimplementierte Verfahren nach Klausel 4, 5 oder 6, ferner umfassend:
    • Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist; und
    • Bestimmen, dass das Veranlassen der Ausgabe einer zweiten Vorrichtung zugeordnet ist,
    • wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  • 8. Das computerimplementierte Verfahren nach Klausel 4, 5, 6 oder 7, ferner umfassend:
    • Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist; und
    • Bestimmen eines Benutzerkontos, das der ersten Vorrichtung zugeordnet ist; und
    • Bestimmen, dass das Benutzerkonto eine dritte Angabe des zweiten natürlichen Verständnissystems beinhaltet,
    • wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  • 9. Das computerimplementierte Verfahren nach Klausel 4, 5, 6, 7, oder 8, ferner umfassend:
    • Bestimmen, dass die Eingabedaten eine Darstellung eines Weckworts beinhalten, das dem ersten natürlichen Verständnissystem zugeordnet ist.
  • 10. Das computerimplementierte Verfahren nach Klausel 4, 5, 6, 7, 8 oder 9, wobei das Bestimmen, dass der Befehl dem zweiten natürlichen Verständnissystem zugeordnet ist, umfasst:
    • Bestimmen eines Bereichs entsprechend den Eingabedaten; und
    • Bestimmen, dass das zweite natürliche Verständnissystem dem Bereich entspricht.
  • 11. Das computerimplementierte Verfahren nach Klausel 4, 5, 6, 7, 8, 9, oder 10, ferner umfassend:
    • Empfangen von zweiten Audiodaten entsprechend einem zweiten Befehl;
    • Bestimmen, dass der zweite Befehl dem zweiten natürlichen Verständnissystem zugeordnet ist, und
    • Senden eines dritten Befehls zum Verarbeiten dritter Audiodaten an das zweite natürliche Verständnissystem.
  • 12. Das computerimplementierte Verfahren nach Klausel 4, 5, 6, 7, 8, 9, 10 oder 11, ferner umfassend:
    • Bestimmen, dass den zweiten Daten erste Informationen fehlen;
    • Senden von vierten Daten, die einer Anfrage nach den ersten Informationen entsprechen, von dem ersten natürlichen Verständnissystem zu dem zweiten natürlichen Verständnissystem; und
    • Empfangen von fünften Daten, die den ersten Informationen entsprechen, von dem zweiten natürlichen Verständnissystem.
  • 13. Eine Rechenvorrichtung, umfassend:
    • mindestens einen Prozessor; und
    • mindestens einen Arbeitsspeicher, der Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung zu Folgendem veranlassen:
      • Empfangen von Eingabedaten, die einem Befehl entsprechen;
      • Bestimmen unter Verwendung eines ersten natürlichen Verständnissystems, dass der Befehl einem zweiten natürlichen Verständnissystem zugeordnet ist;
      • Senden von ersten Daten, die dem Befehl entsprechen, von dem ersten natürlichen Verständnissystem an das zweite natürliche Verständnissystem;
      • Empfangen von zweiten Daten, die einer ersten Antwort auf den Befehl entsprechen, von dem zweiten natürlichen Verständnissystem, wobei die zweiten Daten eine erste Angabe des zweiten natürlichen Verständnissystems beinhalten;
      • Bestimmen, unter Verwendung des ersten natürlichen Verständnissystems und der zweiten Daten, dritter Daten, die einer zweiten Antwort auf den Befehl entsprechen, wobei die dritten Daten eine zweite Angabe des ersten natürlichen Verständnissystems beinhalten; und
      • Veranlassen einer Ausgabe entsprechend den dritten Daten.
  • 14. Die Rechenvorrichtung nach Klausel 13, wobei der mindestens ein Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen:
    • vor dem Veranlassen der Ausgabe, Bestimmen, dass das zweite natürliche Verständnissystem einer Erlaubnisanfrage zugeordnet ist;
    • Bestimmen, eine zweite Ausgabe zu veranlassen, die der Erlaubnisanfrage entspricht, bevor die ersten Daten gesendet werden; und
    • Empfangen vierter Eingabedaten, die der Erlaubnisanfrage entsprechen,
    • wobei die dritten Daten ferner eine Darstellung der Erlaubnisanfrage beinhalten.
  • 15. Die Rechenvorrichtung nach Klausel 13 oder 14, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung weiterhin zu Folgendem veranlassen:
    • Bestimmen, dass der Befehl einer zweiten Ausgabe des zweiten natürlichen Verständnissystems entspricht, wobei die zweite Ausgabe nach der Ausgabe auftritt,
    • wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  • 16. Die Rechenvorrichtung nach Klausel 13, 14 oder 15, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen:
    • Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist; und
    • Bestimmen, dass das Veranlassen der Ausgabe einer zweiten Vorrichtung zugeordnet ist,
    • wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  • 17. Die Rechenvorrichtung nach Klausel 13, 14, 15, oder 16, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen:
    • Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist;
    • Bestimmen eines Benutzerkontos, das der ersten Vorrichtung zugeordnet ist; und
    • Bestimmen, dass das Benutzerkonto eine dritte Angabe des zweiten natürlichen Verständnissystems beinhaltet,
    • wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  • 18. Die Rechenvorrichtung nach Klausel 13, 14, 15, 16 oder 17, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen:
    • Bestimmen, dass die Eingabedaten eine Darstellung eines Weckworts beinhalten, das dem ersten natürliche Verständnissystem zugeordnet ist.
  • 19. Die Rechenvorrichtung nach Klausel 13, 14, 15, 16, 17 oder 18, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, um zu bestimmen, dass der Befehl dem zweiten natürlichen Verständnissystem zugeordnet ist und die, wenn von dem mindestens einen Prozessor durchgeführt, die Rechenvorrichtung ferner zu Folgendem veranlassen:
    • Bestimmen eines Bereichs entsprechend den Eingabedaten; und
    • Bestimmen, dass das zweite natürliche Verständnissystem dem Bereich entspricht.
  • 20. Die Rechenvorrichtung nach Klausel 13, 14, 15, 16, 17, 18 oder 19, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen:
    • Bestimmen, dass den zweiten Daten erste Informationen fehlen;
    • Senden von vierten Daten, die einer Anfrage nach den ersten Informationen entsprechen, von dem ersten natürlichen Verständnissystem zu dem zweiten natürlichen Verständnissystem; und
    • Empfangen von fünften Daten, die den ersten Informationen entsprechen, von dem zweiten natürlichen Verständnissystem.
  • Die hierin offenbarten Konzepte können innerhalb einer Anzahl unterschiedlicher Vorrichtungen und Computersysteme angewendet werden, einschließlich zum Beispiel Allzweck-Rechensystemen, Sprachverarbeitungssystemen und verteilten Rechenumgebungen.
  • Die obigen Aspekte der vorliegenden Offenbarung sollen veranschaulichend sein. Sie wurden ausgewählt, um die Prinzipien und die Anwendung der Offenbarung zu erläutern und sollen nicht erschöpfend sein oder die Offenbarung einschränken. Viele Modifikationen und Variationen der offenbarten Aspekte können Fachmännern offensichtlich sein. Personen mit durchschnittlichen Kenntnissen auf dem Gebiet von Computern und Sprachverarbeitung sollten erkennen, dass hierin beschriebene Komponenten und Prozessschritte mit anderen Komponenten oder Schritten oder Kombinationen von Komponenten oder Schritten austauschbar sein können und dennoch die Vorteile und Vorzüge der vorliegenden Offenbarung erreichen. Darüber hinaus sollte es für einen Fachmann offensichtlich sein, dass die Offenbarung ohne einige oder alle der hierin offenbarten spezifischen Details und Schritte praktiziert werden kann.
  • Aspekte des offenbarten Systems können als ein Computerverfahren oder als ein Herstellungsartikel wie etwa eine Arbeitsspeichervorrichtung oder ein nichtflüchtiges computerlesbares Speichermedium implementiert werden. Das computerlesbare Speichermedium kann von einem Computer lesbar sein und kann Anweisungen beinhalten, um einen Computer oder eine andere Vorrichtung zu veranlassen, in der vorliegenden Offenbarung beschriebene Prozesse auszuführen. Das computerlesbare Speichermedium kann durch einen flüchtigen Computerarbeitsspeicher, einen nichtflüchtigen Computerarbeitsspeicher, eine Festplatte, einen Festkörperspeicher, ein Flash-Laufwerk, einen Wechseldatenträger und / oder andere Medien implementiert werden. Außerdem können Komponenten des Systems als Firmware oder Hardware implementiert sein, wie etwa ein akustisches Front-End (acoustic front end. AFE), das unter anderem analoge und / oder digitale Filter umfasst (z. B. Filter, die als Firmware für einen digitalen Signalprozessor (digital signal processor, DSP) konfiguriert sind).
  • Hierin verwendete Konditionalsprache, wie etwa unter anderem „kann“, „könnte“, „würde“ oder „möchte“, „z. B.“ und dergleichen soll, sofern nicht spezifisch anders angegeben oder im verwendeten Kontext anders zu verstehen, allgemein vermitteln, dass gewisse Ausführungsformen gewisse Merkmale, Elemente und / oder Schritte beinhalten könnten, 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 Eingabe oder Eingabeaufforderung, beinhalten, ob diese Merkmale, Elemente und / oder Schritte in einer konkreten Ausführungsform beinhaltet sind oder ausgeführt werden sollen. Die Begriffe „beinhaltend“, „einschließlich“, „habend“ und dergleichen sind synonym und werden inklusive in einer offenen Art und Weise verwendet und schließen zusätzliche Elemente, Merkmale, Handlungen, Operationen und so weiter nicht aus. Außerdem wird der Begriff „oder“ in seinem inklusiven Sinn (und nicht in seinem exklusiven Sinn) verwendet, so dass der Begriff „oder“, wenn er zum Beispiel verwendet wird, um eine Liste von Elementen zu verbinden, eines, einige oder alle Elemente in der Liste bedeutet.
  • Eine disjunktive Sprache, wie etwa die Phrase „mindestens eines von X, Y oder Z“ soll, sofern nicht ausdrücklich anders angegeben, im Kontext verstanden werden, wie er im Allgemeinen verwendet wird, um darzustellen, dass ein Element, 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 ausdrücken, dass bestimmte Ausführungen erfordern, dass mindestens eines von X, mindestens eines von Y oder mindestens eines von Z jeweils vorhanden ist.
  • Wie in dieser Offenbarung verwendet, kann der Begriff „ein“ oder „einer“ ein oder mehrere Elemente beinhalten, sofern nicht ausdrücklich anders angegeben. Ferner soll der Ausdruck „basierend auf“ „zumindest teilweise basierend auf“ bedeuten, sofern nicht ausdrücklich anders angegeben.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • US 16/781773 [0001]

Claims (15)

  1. Ein computerimplementiertes Verfahren, umfassend: Empfangen von Eingabedaten, die einem Befehl entsprechen; Bestimmen, unter Verwendung eines ersten natürlichen Verständnissystems, dass der Befehl einem zweiten natürlichen Verständnissystem zugeordnet ist; Senden von ersten Daten, die dem Befehl entsprechen, von dem ersten natürlichen Verständnissystem an das zweite natürliche Verständnissystem; Empfangen von zweiten Daten, die einer ersten Antwort auf den Befehl entsprechen, von dem zweiten natürlichen Verständnissystem, wobei die zweiten Daten eine erste Angabe des zweiten natürlichen Verständnissystems beinhalten; Bestimmen, unter Verwendung des ersten natürlichen Verständnissystems und der zweiten Daten, dritter Daten, die einer zweiten Antwort auf den Befehl entsprechen, wobei die dritten Daten eine zweite Angabe des ersten natürlichen Verständnissystems beinhalten; und Veranlassen einer Ausgabe entsprechend den dritten Daten.
  2. Das computerimplementierte Verfahren nach Anspruch 1, ferner umfassend: vor dem Veranlassen der Ausgabe, Bestimmen, dass das zweite natürliche Verständnissystem einer Erlaubnisanfrage zugeordnet ist; Bestimmen, eine zweite Ausgabe zu veranlassen, die der Erlaubnisanfrage entspricht, bevor die ersten Daten gesendet werden; und Empfangen vierter Eingabedaten, die der Erlaubnisanfrage entsprechen, wobei die dritten Daten ferner eine Darstellung der Erlaubnisanfrage beinhalten.
  3. Das computerimplementierte Verfahren nach Anspruch 1 oder 2, ferner umfassend: Bestimmen, dass der Befehl einer zweiten Ausgabe des zweiten natürlichen Verständnissystems entspricht, wobei die zweite Ausgabe nach der Ausgabe auftritt, wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  4. Das computerimplementierte Verfahren nach Anspruch 1, 2 oder 3, ferner umfassend: Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist; und Bestimmen, dass das Veranlassen der Ausgabe einer zweiten Vorrichtung zugeordnet ist, wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  5. Das computerimplementierte Verfahren nach Anspruch 1, 2, 3 oder 4, ferner umfassend: Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist; Bestimmen eines Benutzerkontos, das der ersten Vorrichtung zugeordnet ist; und Bestimmen, dass das Benutzerkonto eine dritte Angabe des zweiten natürlichen Verständnissystems beinhaltet, wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  6. Das computerimplementierte Verfahren nach Anspruch 1, 2, 3, 4 oder 5, ferner umfassend: Bestimmen, dass die Eingabedaten eine Darstellung eines Weckworts beinhalten, das dem ersten natürlichen Verständnissystem zugeordnet ist.
  7. Das computerimplementierte Verfahren nach Anspruch 1, 2, 3, 4, 5 oder 6, wobei das Bestimmen, dass der Befehl dem zweiten natürlichen Verständnissystem zugeordnet ist, Folgendes umfasst: Bestimmen eines Bereichs entsprechend den Eingabedaten; und Bestimmen, dass das zweite natürliche Verständnissystem dem Bereich entspricht.
  8. Das computerimplementierte Verfahren nach Anspruch 1, 2, 3, 4, 5, 6 oder 7, ferner umfassend: Empfangen von zweiten Audiodaten entsprechend einem zweiten Befehl; Bestimmen, dass der zweite Befehl dem zweiten natürlichen Verständnissystem zugeordnet ist; und Senden eines dritten Befehls zum Verarbeiten dritter Audiodaten an das zweite natürliche Verständnissystem.
  9. Das computerimplementierte Verfahren nach Anspruch 1, 2, 3, 4, 5, 6, 7 oder 8, ferner umfassend: Bestimmen, dass den zweiten Daten erste Informationen fehlen; Senden von vierten Daten, die einer Anfrage nach den ersten Informationen entsprechen, von dem ersten natürlichen Verständnissystem zu dem zweiten natürlichen Verständnissystem; und Empfangen von fünften Daten, die den ersten Informationen entsprechen, von dem zweiten natürlichen Verständnissystem.
  10. Eine Rechenvorrichtung, umfassend: mindestens einen Prozessor; und mindestens einen Arbeitsspeicher, der Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung zu Folgendem veranlassen: Empfangen von Eingabedaten, die einem Befehl entsprechen; Bestimmen, unter Verwendung eines ersten natürlichen Verständnissystems, dass der Befehl einem zweiten natürlichen Verständnissystem zugeordnet ist; Senden von ersten Daten, die dem Befehl entsprechen, von dem ersten natürlichen Verständnissystem an das zweite natürliche Verständnissystem; Empfangen von zweiten Daten, die einer ersten Antwort auf den Befehl entsprechen, von dem zweiten natürlichen Verständnissystem, wobei die zweiten Daten eine erste Angabe des zweiten natürlichen Verständnissystems beinhalten; Bestimmen, unter Verwendung des ersten natürlichen Verständnissystems und der zweiten Daten, dritter Daten, die einer zweiten Antwort auf den Befehl entsprechen, wobei die dritten Daten eine zweite Angabe des ersten natürlichen Verständnissystems beinhalten; und Veranlassen einer Ausgabe entsprechend den dritten Daten.
  11. Die Rechenvorrichtung nach Anspruch 10, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen: vor dem Veranlassen der Ausgabe, Bestimmen, dass das zweite natürliche Verständnissystem einer Erlaubnisanfrage zugeordnet ist, Bestimmen, eine zweite Ausgabe zu veranlassen, die der Erlaubnisanfrage entspricht, bevor die ersten Daten gesendet werden; und Empfangen vierter Eingabedaten, die der Erlaubnisanfrage entsprechen, wobei die dritten Daten ferner eine Darstellung der Erlaubnisanfrage beinhalten.
  12. Die Rechenvorrichtung nach Anspruch 10 oder 11, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen: Bestimmen, dass der Befehl einer zweiten Ausgabe des zweiten natürlichen Verständnissystems entspricht, wobei die zweite Ausgabe nach der Ausgabe auftritt, wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  13. Die Rechenvorrichtung nach Anspruch 10, 11 oder 12, wobei der Speicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen: Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist; und Bestimmen, dass das Veranlassen der Ausgabe einer zweiten Vorrichtung zugeordnet ist, wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  14. Die Rechenvorrichtung nach Anspruch 10, 11, 12 oder 13, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung ferner zu Folgendem veranlassen: Bestimmen, dass das Empfangen der Eingabedaten einer ersten Vorrichtung zugeordnet ist; Bestimmen eines Benutzerkontos, das der ersten Vorrichtung zugeordnet ist; und Bestimmen, dass das Benutzerkonto eine dritte Angabe des zweiten natürlichen Verständnissystems beinhaltet, wobei die dritten Daten eine Darstellung eines Namens des zweiten natürlichen Verständnissystems beinhalten.
  15. Die Rechenvorrichtung nach Anspruch 10, 11, 12, 13 oder 14, wobei der mindestens eine Arbeitsspeicher ferner Anweisungen beinhaltet, die bei Durchführung durch den mindestens einen Prozessor die Rechenvorrichtung zu Folgendem veranlassen: Bestimmen, dass die Eingabedaten eine Darstellung eines Weckworts beinhalten, das dem ersten natürlichen Verständnissystem zugeordnet ist.
DE112021000292.9T 2020-02-04 2021-01-20 Sprachverarbeitungssystem Pending DE112021000292T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/781,773 US11790902B2 (en) 2020-02-04 2020-02-04 Speech-processing system
US16/781,773 2020-02-04
PCT/US2021/014110 WO2021158365A1 (en) 2020-02-04 2021-01-20 Speech-processing system

Publications (1)

Publication Number Publication Date
DE112021000292T5 true DE112021000292T5 (de) 2022-10-27

Family

ID=74557268

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021000292.9T Pending DE112021000292T5 (de) 2020-02-04 2021-01-20 Sprachverarbeitungssystem

Country Status (5)

Country Link
US (2) US11790902B2 (de)
CN (1) CN115176309A (de)
DE (1) DE112021000292T5 (de)
GB (1) GB2607809A (de)
WO (1) WO2021158365A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11830485B2 (en) * 2018-12-11 2023-11-28 Amazon Technologies, Inc. Multiple speech processing system with synthesized speech styles
US20230008868A1 (en) * 2021-07-08 2023-01-12 Nippon Telegraph And Telephone Corporation User authentication device, user authentication method, and user authentication computer program

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000058942A2 (en) * 1999-03-26 2000-10-05 Koninklijke Philips Electronics N.V. Client-server speech recognition
US7013275B2 (en) * 2001-12-28 2006-03-14 Sri International Method and apparatus for providing a dynamic speech-driven control and remote service access system
US7016849B2 (en) * 2002-03-25 2006-03-21 Sri International Method and apparatus for providing speech-driven routing between spoken language applications
US7869998B1 (en) * 2002-04-23 2011-01-11 At&T Intellectual Property Ii, L.P. Voice-enabled dialog system
US10002189B2 (en) * 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US8635068B2 (en) * 2008-12-23 2014-01-21 At&T Intellectual Property I, L.P. System and method for recognizing speech with dialect grammars
US9767793B2 (en) * 2012-06-08 2017-09-19 Nvoq Incorporated Apparatus and methods using a pattern matching speech recognition engine to train a natural language speech recognition engine
US9570076B2 (en) * 2012-10-30 2017-02-14 Google Technology Holdings LLC Method and system for voice recognition employing multiple voice-recognition techniques
US9818407B1 (en) * 2013-02-07 2017-11-14 Amazon Technologies, Inc. Distributed endpointing for speech recognition
US9775113B2 (en) * 2014-12-11 2017-09-26 Mediatek Inc. Voice wakeup detecting device with digital microphone and associated method
US10031722B1 (en) * 2015-03-17 2018-07-24 Amazon Technologies, Inc. Grouping devices for voice control
US9875081B2 (en) * 2015-09-21 2018-01-23 Amazon Technologies, Inc. Device selection for providing a response
KR102481881B1 (ko) * 2016-09-07 2022-12-27 삼성전자주식회사 외부 디바이스를 제어하는 서버 및 그 방법
US10127908B1 (en) * 2016-11-11 2018-11-13 Amazon Technologies, Inc. Connected accessory for a voice-controlled device
US10032451B1 (en) * 2016-12-20 2018-07-24 Amazon Technologies, Inc. User recognition for speech processing systems
US10332517B1 (en) * 2017-06-02 2019-06-25 Amazon Technologies, Inc. Privacy mode based on speaker identifier
US11314940B2 (en) * 2018-05-22 2022-04-26 Samsung Electronics Co., Ltd. Cross domain personalized vocabulary learning in intelligent assistants
US11100923B2 (en) * 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US11164585B2 (en) * 2019-06-07 2021-11-02 Mitsubishi Electric Automotive America, Inc. Systems and methods for virtual assistant routing
US11373633B2 (en) * 2019-09-27 2022-06-28 Amazon Technologies, Inc. Text-to-speech processing using input voice characteristic data

Also Published As

Publication number Publication date
US11790902B2 (en) 2023-10-17
CN115176309A (zh) 2022-10-11
GB202212525D0 (en) 2022-10-12
US20210241760A1 (en) 2021-08-05
US20240071385A1 (en) 2024-02-29
WO2021158365A1 (en) 2021-08-12
GB2607809A (en) 2022-12-14

Similar Documents

Publication Publication Date Title
US11170776B1 (en) Speech-processing system
US11830485B2 (en) Multiple speech processing system with synthesized speech styles
US11854545B2 (en) Privacy mode based on speaker identifier
US11594215B2 (en) Contextual voice user interface
US20230197078A1 (en) Multiple virtual assistants
DE112020004504T5 (de) Kontoverbindung mit Gerät
DE112021001064T5 (de) Vorrichtungsgerichtete Äußerungserkennung
US11837225B1 (en) Multi-portion spoken command framework
WO2013066409A1 (en) System, method and program for customized voice communication
US11715472B2 (en) Speech-processing system
US11302329B1 (en) Acoustic event detection
US11289082B1 (en) Speech processing output personalization
DE112021000959T5 (de) Synthetische Sprachverarbeitung
US11579841B1 (en) Task resumption in a natural understanding system
US20240071385A1 (en) Speech-processing system
DE112022000504T5 (de) Interaktive Inhaltsausgabe
US11783824B1 (en) Cross-assistant command processing
DE112021000291T5 (de) Erzeugen von ereignisausgaben
US11430434B1 (en) Intelligent privacy protection mediation
CN117882131A (zh) 多个唤醒词检测
US11735178B1 (en) Speech-processing system
US11763809B1 (en) Access to multiple virtual assistants
US11564194B1 (en) Device communication
US11915683B2 (en) Voice adaptation using synthetic speech processing
US11893984B1 (en) Speech processing system

Legal Events

Date Code Title Description
R012 Request for examination validly filed