-
QUERVERWEIS AUF VERWANDTE ANMELDUNGSDATEN
-
Diese Anmeldung beansprucht die Priorität der
US-Patentanmeldung Nr. 16/818,542 , eingereicht am 13. März 2020 und betitelt mit „SYNTHETIC SPEECH PROCESSING“ im Namen von Antonio Bonafonte et al.
-
STAND DER TECHNIK
-
Ein Sprachverarbeitungssystem kann einen Dialogmanager enthalten, der Eingabedaten verarbeitet, die einem Befehl von einem Benutzer entsprechen, und Ausgabedaten bestimmt, die einer Antwort auf den Befehl entsprechen. Der Befehl kann zunächst durch Audiodaten dargestellt werden; eine automatische Spracherkennungskomponente kann die Audiodaten verarbeiten, um entsprechende Textdaten zu bestimmen, und eine Komponente zum Verstehen natürlicher Sprache kann die Textdaten verarbeiten, um eine oder mehrere einer Domäne des Befehls, einer dem Befehl entsprechenden Absicht, zu bestimmen, und / oder eine Entität, die dem Befehl entspricht. Das Sprachverarbeitungssystem kann ferner eine Text-zu-Sprache-Komponente zum Erzeugen von Audio umfassen, das die Antwort auf den Befehl darstellt.
-
Figurenliste
-
Zum besseren Verständnis der vorliegenden Offenbarung wird nun auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen verwiesen.
- 1 veranschaulicht ein Verfahren zur Sprachverarbeitung gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 2A veranschaulicht Komponenten einer Vorrichtung für den Benutzer und eines entferntes Systems für die Sprachverarbeitung gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 2B veranschaulicht Komponenten einer Benutzervorrichtung zur Sprachverarbeitung gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 3A und 3B veranschaulichen Komponenten zum Erzeugen von Ausgabedaten bei gegebenen Eingabedaten gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 4 veranschaulicht Komponenten zum Umformulieren von Eingabetext und / oder zum Variieren von Stimmmerkmalen von Ausgabeaudio gemäß Ausführungsformen der vorliegenden Offenbarung.
- 5 veranschaulicht Beispiele von NLU- und Dialogdaten gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 6 veranschaulicht Komponenten zum Umformulieren von Textdaten gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 7 veranschaulicht Komponenten zum Variieren von Stimmmerkmalen von Ausgabeaudiodaten gemäß Ausführungsformen der vorliegenden Offenbarung.
- 8 veranschaulicht Komponenten zum Trainieren eines TTS-Systems gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 9A und 9B veranschaulichen einen linguistischen Codierer und einen Sprachdecodierer gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 10 veranschaulicht ein neuronales Netzwerk zur Sprachverarbeitung gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 11 veranschaulicht Komponenten einer Benutzervorrichtung zur Sprachverarbeitung gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 12 veranschaulicht Komponenten eines entfernten Systems zur Sprachverarbeitung gemäß den Ausführungsformen der vorliegenden Offenbarung.
- 13 veranschaulicht eine vernetzte Rechenumgebung gemäß den Ausführungsformen der vorliegenden Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
Ein Sprachverarbeitungssystem kann eine Anzahl von Komponenten beinhalten, von denen jede trainierte neuronale Netzwerkmodelle sein können, um verschiedene Funktionen auszuführen, die mit der Sprachverarbeitung verbunden sind. Zusammen können diese Komponenten dem Sprachverarbeitungssystem ermöglichen, Befehle von einem Benutzer zu empfangen, zu interpretieren und darauf zu reagieren. Eine Komponente zur automatischen Spracherkennung (automatic speech-recognition - ASR), die ein oder mehrere erste trainierte Modelle sein oder beinhalten kann, kann Audiodaten verarbeiten (und / oder andere Eingabedaten), die einem Befehl entsprechen, und entsprechende Ausgabedaten bestimmen, die Textdaten, Audiodaten, und / oder Videodaten sein können. Eine Komponente zum Verstehen natürlicher Sprache (natural-language understanding - NLU), die ein oder mehrere zweite trainierte Modelle sein oder beinhalten kann, kann die Ausgabedaten verarbeiten, um eine Domäne, Absicht, und / oder Slot entsprechend dem Befehl zu bestimmen. Eine Dialogmanagerkomponente, die ein oder mehrere dritte trainierte Modell(e) beinhalten kann, kann die Ausgabedaten und / oder die Ausgabe der NLU-Komponente verarbeiten, um die Ausgabedaten zu bestimmen, die einer Antwort auf den Befehl entsprechen. Schließlich kann eine Text-to-Speech (TTS)-Komponente, die ein oder mehrere vierte trainierte Modelle sein oder beinhalten kann, die Ausgabedaten verarbeiten, um entsprechende Audiodaten zu bestimmen. In einigen Ausführungsformen können zwei oder mehr der ASR-, NLU-, Dialogmanager- und / oder TTS-Komponenten zu einem einzigen Modell kombiniert werden.
-
Die TTS-Komponente kann Aspekte der bestimmten Audiodaten basierend auf der Ausgabe der NLU-Komponente und / oder der Dialogmanager-Komponente variieren. Diese verschiedenen Aspekte können Variationen in der Formulierung der in den Audiodaten dargestellten Wörter und / oder Variationen in den Stimmmerkmale, wie Tonfall, Sprechgeschwindigkeit, Betonung und / oder Akzent usw., der in den Audiodaten dargestellten Wörter beinhalten. Diese Stimmmerkmale können auch als Prosodie bezeichnet werden. Die Variation der Wortwahl und / oder die Variation der Stimmmerkmale kann zu einer verbesserten Benutzererfahrung führen, da diese Variationen der menschlichen Sprache besser entsprechen. Zum Beispiel kann, wenn einem Menschen dieselbe Frage mehr als einmal gestellt wird, die Antwort auf die Frage variieren. Zum Beispiel kann die Antwort auf die Frage „Wie spät ist es?“ lauten: „Es ist 12 Uhr nachmittags“, aber eine andere Antwort kann lauten: „Es ist Mittag.“ In ähnlicher Weise kann ein Mensch die Stimmmerkmale seiner Sprache in verschiedenen Kontexten oder zur Betonung bestimmter Wörter variieren. Zum Beispiel kann eine Antwort einen neutralen Ton aufweisen, wenn es um das Wetter geht, aber einen aufgeregten Ton, wenn es um ein unerwartetes Ereignis geht. Ebenso können bestimmte Wörter in einer Antwort, wie der Name einer berühmten Band, mehr betont werden als andere, wie in der Antwort „TOTO spielt nächste Woche!“
-
Die vorliegende Offenbarung bezieht sich daher auf Systeme und Verfahren zur Erzeugung von synthetisierter Sprache bei gegebenen Eingabetextdaten und natürlich-verstehende Daten (natural-understanding - NU), so dass die synthetisierte Sprache Variationen beinhaltet, die mindestens teilweise auf den Daten zum natürlichen Verstehen basieren. Diese Variationen in der synthetisierten Sprache können sich so den Variationen, die in der menschlichen Sprache natürlich vorkommen, besser annähern. In verschiedenen Ausführungsformen verarbeitet ein linguistischer Codierer die eingegebenen Textdaten, um erste codierte Daten zu bestimmen, die eine Eingabe, wie eine Äußerung, darstellen. Ein zweiter Codierer kann darauf trainiert werden, die eingegebenen Textdaten ebenfalls zu verarbeiten und zweite codierte Daten zu bestimmen, die Informationen zum natürlichen Verstehen der Äußerung darstellen. Diese natürlich-verstehenden Informationen können auch als Kontext der Äußerung bezeichnet werden. Diese zweiten codierten Daten können mit NLU-Einbettungsdaten kombiniert werden, die codierte Informationen darstellen, die von einer NLU-Komponente bestimmt werden, die die eingegebenen Textdaten verarbeitet. Die zweiten codierten Daten können mit den NLU-Einbettungsdaten kombiniert und dann zur Konditionierung eines Aufmerksamkeitsnetzwerks verwendet werden. Das Aufmerksamkeitsnetzwerk kann dann die vom linguistischen Codierer ermittelten ersten codierten Daten verarbeiten, um gewichtete codierte Daten zu bestimmen, die wiederum von einem Sprachdecodierer verarbeitet werden können, um Audiodaten, wie Spektrogrammdaten, zu bestimmen. Zum Beispiel kann das Aufmerksamkeitsnetzwerk die Ausgabe des linguistischen Codierers so gewichten, dass die Audiodaten eine Darstellung der hervorgehobenen Entität beinhalten, wenn die NLU-Einbettungsdaten darauf hinweisen, dass eine Entität in den eingegebenen Textdaten repräsentiert ist.
-
Unter Bezugnahme auf 1 äußert ein Benutzer 10 Sprache, die durch Eingabeaudio 12 dargestellt wird. Eine Benutzervorrichtung 110 empfängt die Eingabe 12 und wandelt sie (z. B. über ein Mikrofon) in entsprechende Audiodaten um. Wie im Folgenden näher erläutert, kann die Benutzervorrichtung 110 eine zusätzliche Sprachverarbeitung durchführen und / oder die Audiodaten über ein Netzwerk 199 an ein entferntes System 120 zur weiteren Audioverarbeitung senden. Unabhängig davon, ob sie von der Benutzervorrichtung 110 und / oder dem entfernten System 120 ausgeführt wird, kann eine ASR-Komponente die Audiodaten verarbeiten, um entsprechende Textdaten zu bestimmen, und eine NLU-Komponente kann die Textdaten verarbeiten, um NLU-Daten wie eine Domäne, eine Absicht und / oder eine Entität zu bestimmen, die den Textdaten zugeordnet sind.
-
Die Benutzervorrichtung 110 und / oder das entfernte System 120 kann dann die Eingabedaten, wie Eingabetextdaten, unter Verwendung eines linguistischen Codierers verarbeiten (130), wie des in 7 veranschaulichten linguistischen Codierers 702. Wie unter Bezugnahme auf diese Figur näher erläutert, kann es sich bei dem linguistischen Codierer 702 um ein oder mehrere neuronale Netzwerke handeln, wie ein Feed-Forward-Neuronalnetzwerk (FFNN) und / oder ein rekurrentes neuronales Netzwerk. Der linguistische Codierer 702 kann also einen oder mehrere Knoten beinhalten, die mit einem oder mehreren anderen Knoten verbunden sind; die Knoten können in Schichten angeordnet sein, sodass die Ausgabe einer Schicht von einer zweiten Schicht verarbeitet wird. Die Knoten können jeweils mit einer Gewichtung, die eine Eingabe mit einem ersten Wert multipliziert, und / oder einem Versatz, der eine Eingabe um einen zweiten Wert addiert, verbunden sein. Die Ausgabe des linguistischen Codierers 702 können erste codierte Daten sein, die aus einem ersten Vektor einer Anzahl von codierten Werten bestehen; der erste Vektor kann die Wörter der eingegebenen Textdaten als einen einzigen Satz von Werten eindeutig identifizieren.
-
Die Benutzervorrichtung 110 und / oder das entfernte System 120 kann dann die eingegebenen Textdaten unter Verwendung eines zweiten Codierers, wie dem Codierer 720 von 7, verarbeiten (132). Wie der linguistische Codierer 702 kann auch der zweite Codierer 720 zweite codierte Daten bestimmen, die aus einem zweiten Vektor von Werten bestehen. Anders als die Ausgabe des linguistischen Codierers 720 kann dieser zweite Vektor jedoch Variationen in der synthetischen Sprache definieren, die den natürlich-verstehenden Daten entsprechen, wie welche Wörter betont werden sollen.
-
Die Benutzervorrichtung 110 und / oder das entfernte System 120 können dann die ersten codierten Daten unter Verwendung der zweiten codierten Daten und der natürlich-verstehenden Daten (wie von der NLU-Komponente bestimmt) verarbeiten (134). Zum Beispiel kann ein Aufmerksamkeitsnetzwerk, wie das Aufmerksamkeitsnetzwerk 704 von 7, eine oder mehrere Gewichtungen eines oder mehrerer Modi bestimmen, die mindestens teilweise auf den zweiten codierten Daten und / oder natürlich-verstehende Daten basieren, um dritte codierte Daten zu bestimmen, indem die ersten codierten Daten unter Verwendung der einen oder mehreren Gewichtungen verarbeitet werden. Wie weiter unten näher erläutert, kann das Aufmerksamkeitsnetzwerk 704 ein neuronales Netzwerk von Knoten sein, die in einer oder mehreren Schichten angeordnet sind; jeder Knoten des Aufmerksamkeitsnetzwerks 704 kann nicht nur mit der Ausgabeschicht des linguistischen Codierers 702 verbunden sein, sondern auch mit einem oder mehreren Knoten in einer oder mehreren anderen Schichten des linguistischen Codierers 702. Jede Verbindung zwischen dem Aufmerksamkeitsnetzwerk 704 und dem linguistischen Codierer 702 kann mit einer Gewichtung verbunden sein. Indem mindestens einige der Gewichtungen des Aufmerksamkeitsnetzwerks 704 gemäß den ersten codierten Daten, den zweiten codierten Daten und den natürlich-verstehenden Daten geändert werden, bewirkt das Aufmerksamkeitsnetzwerk 704, dass die Variationen in der synthetischen Sprache, die in dem Ausgabeaudio dargestellt wird, gemäß den natürlich-verstehenden Daten variieren.
-
Die Benutzervorrichtung 110 und / oder das entfernte System 120 kann dann die dritten codierten Daten verarbeiten (136), um Audiodaten zu bestimmen, die synthetische Sprache darstellen, die einer Antwort auf den Befehl entspricht. Der Decodierer kann zum Beispiel der Decodierer 706 von 7 sein und wie der Codierer 702 ein neuronales Netzwerk wie ein FFNN oder RNN sein. Bei den Audiodaten kann es sich um eine digitale Darstellung einer Audio-Wellenform, ein Spektrogramm wie ein Mel-Spektrogramm oder eine andere Form von Audiodaten handeln. Handelt es sich bei den Audiodaten um ein Spektrogramm, können sie von einer anderen Komponente, wie einem Vocoder, weiterverarbeitet werden, um das Spektrogramm in eine entsprechende Audio-Wellenform umzuwandeln. Daten, die der Audio-Wellenform entsprechen, können von der Benutzervorrichtung 110 bestimmt oder an diese gesendet werden, um als Ausgabeaudio 14 ausgegeben zu werden.
-
Unter Bezugnahme auf 2A kann das Sprachverarbeitungssystem über eine oder mehrere Benutzervorrichtungen 110 und ein oder mehrere entfernte Systeme 120, wie einen Server oder einen lokalen Hub, verteilt sein. Die Benutzervorrichtung 110 kann Audiodaten erfassen, die Sprache beinhalten, und dann entweder die Audiodaten selbst verarbeiten und / oder Audiodaten, die die Audiodaten repräsentieren, zur weiteren Verarbeitung an das entfernte System übermitteln. Das entfernte System 120 hat möglicherweise Zugang zu größeren Rechenressourcen, wie mehr und / oder schnellere Computerprozessoren, als die Benutzervorrichtung, und kann daher die Audiodaten schneller als die Benutzervorrichtung verarbeiten und eine angemessene Reaktion bestimmen. Die Benutzervorrichtung kann zum Beispiel über eine Weckwort-Erkennungskomponente verfügen, die das Vorhandensein eines Weckworts in Audiodaten bestimmt und entsprechende Audiodaten nur dann an das entfernte System übermittelt, wenn das Weckwort erkannt wird. Wie hierin verwendet, ist ein „Weckwort“ ein oder mehrere bestimmte Wörter, wie „Alexa“, die ein Benutzer der Benutzervorrichtung aussprechen kann, um die Benutzervorrichtung zu veranlassen, mit der Verarbeitung der Audiodaten zu beginnen, was ferner eine Darstellung eines Befehls beinhalten kann, wie „Schalte das Licht ein“.
-
Unter Bezugnahme auf 2B kann das Sprachverarbeitungssystem auch vollständig auf der Benutzervorrichtung 110 angeordnet sein. In anderen Ausführungsformen sind einige zusätzliche Komponenten, wie eine ASR-Komponente, auf der Benutzervorrichtung 110 angeordnet, während andere Komponenten, wie die Spracherzeugungskomponente 280, auf dem entfernten System 120 angeordnet sind. Jegliche Verteilung der Komponenten des sprachverarbeitenden Systems der vorliegenden Offenbarung liegt somit innerhalb ihres Geltungsungsbereichs. Die folgende Erörterung bezieht sich daher sowohl auf die Verteilung der Komponenten der 2A und 2B als auch auf ähnliche Verteilungen.
-
Die Benutzervorrichtung 110 und / oder das entfernte System 120 kann somit eine Komponente zur automatischen Spracherkennung (ASR) beinhalten, die die Audiodaten verarbeitet, um entsprechende Textdaten zu bestimmen, sowie eine Komponente zum Verstehen natürlicher Sprache (NLU), die die Textdaten verarbeitet, um die in den Textdaten ausgedrückte Absicht des Benutzers zu bestimmen und dadurch eine angemessene Reaktion auf die Absicht zu ermitteln. Das entfernte System 120 kann Daten, die die Antwort darstellen, bestimmen und an die Benutzervorrichtung 110 (oder eine andere Vorrichtung) übermitteln, die dann die Antwort ausgeben kann. In anderen Ausführungsformen kann ein Benutzer der Benutzervorrichtung 110 Audiodaten aus anderen Gründen als der ASR/NLU-Verarbeitung übermitteln wollen, wie zur ein- oder zweiseitigen Audiokommunikation mit einer oder mehreren anderen Parteien oder entfernten Systemen.
-
Vor der Verarbeitung der Audiodaten kann die Vorrichtung 110 verschiedene Techniken anwenden, um zunächst zu bestimmen, ob die Audiodaten eine Darstellung einer Äußerung des Benutzers 10 beinhalten. Zum Beispiel kann die Benutzervorrichtung 110 eine Komponente 202 zur Erkennung von Sprachaktivität (voice-activity detection - VAD) verwenden, um basierend auf verschiedenen quantitativen Aspekten der Audiodaten zu bestimmen, ob Sprache in den Audiodaten enthalten ist, wie die spektrale 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 und / oder andere quantitative Aspekte. In anderen Beispielen kann die VAD-Komponente 202 ein trainierter Klassifikator sein, der dazu konfiguriert ist, Sprache von Hintergrundgeräuschen zu unterscheiden. Der Klassifikator kann ein linearer Klassifikator, eine Support-Vektor-Maschine und / oder ein Entscheidungsbaum sein. In noch weiteren Beispielen können Hidden Markov-Modell (HMM)- und / oder Gaussian Mixture-Modell (GMM)-Techniken angewendet werden, um die Audiodaten mit einem oder mehreren akustischen Modellen im Sprachspeicher zu vergleichen; die akustischen Modelle können Modelle beinhalten, die Sprache, Geräuschen (z. B. Umgebungsgeräuschen und / oder Hintergrundgeräuschen) und / oder Stille entsprechen.
-
Die Benutzervorrichtung 110 kann stattdessen oder zusätzlich bestimmen, dass die Audiodaten eine Äußerung darstellen, indem sie eine Weckwort-Erkennungskomponente 204 verwendet. Wenn die VAD-Komponente 202 verwendet wird und feststellt, dass die Audiodaten Sprache beinhalten, kann die Weckwort-Erkennungskomponente 204 nur dann aktiviert werden, um die Audiodaten zu verarbeiten und zu bestimmen, ob darin wahrscheinlich ein Weckwort enthalten ist. In anderen Ausführungsformen kann die Weckwort-Erkennungskomponente 204 die Audiodaten kontinuierlich verarbeiten (z. B. in einem System, das keine VAD-Komponente 202 beinhaltet). Die Benutzervorrichtung 110 kann ferner eine ASR-Komponente zum Bestimmen von Textdaten beinhalten, die der in dem Eingabeaudio 12 dargestellten Sprache entsprechen, und diese Textdaten an das entfernte System 120 senden.
-
Die trainierten Modelle der VAD-Komponente 202 und / oder der Weckwort-Erkennungskomponente 204 können CNNs, RNNs, akustische Modelle, Hidden Markov-Modelle (HMMs) und / oder Klassifikatoren sein. Diese trainierten Modelle können allgemeine Systeme zur kontinuierlichen Spracherkennung mit großem Wortschatz (large-vocabulary continuous speech recognition - LVCSR) anwenden, um die Audiosignale zu decodieren, wobei die Suche nach Weckwörtern in den resultierenden Gittern und / oder Konfusionsnetzwerken erfolgt. Ein weiterer Ansatz für die Weckwort-Erkennung besteht darin, HMMs für jedes wichtige Weckwort bzw. für Nicht-Weckwort-Sprachsignale zu erstellen. Die Nicht-Weckwort-Sprache beinhaltet andere gesprochene Wörter, Hintergrundgeräusche usw. Es können ein oder mehrere HMMs vorhanden sein, die gebaut sind, um die Nicht-Weckwort-Spracheigenschaften zu modellieren, die als Füllermodelle bezeichnet werden können. Mit Hilfe der Viterbi-Decodierung wird der beste Pfad im Graph der Decodierung gesucht, und die Ausgabe der Decodierung wird weiterverarbeitet, um die Entscheidung über das Vorhandensein von Weckwörtern zu treffen. Dieser Ansatz kann erweitert werden, um diskriminative Informationen zu beinhalten, indem ein hybrides DNN-HMM Framework zur Decodierung eingesetzt wird. In einem anderen Beispiel kann die Weckwort-Erkennungskomponente 204 direkt Strukturen eines konvolutionellen neuronalen Netzwerks (convolutional neural network - CNN) / rekursiven neuronalen Netzwerks (recursive neural network - RNN) verwenden, ohne ein HMM einzusetzen. Die Weckwort-Erkennungskomponente 204 kann die Posterioren von Weckwörtern mit Kontextinformationen schätzen, entweder durch Stapeln von Frames innerhalb eines Kontextfensters für ein DNN oder unter Verwendung eines RNN Anschließend kann für die Entscheidungsfindung eine posteriore Schwellenwertabstimmung und / oder Glättung vorgenommen werden. Andere Techniken zur Weckwort-Erkennung können ebenfalls verwendet werden.
-
Das entfernte System 120 kann für die zusätzliche Audioverarbeitung verwendet werden, nachdem die Benutzervorrichtung 110 das Weckwort und / oder die Sprache erkannt hat, und möglicherweise mit der Verarbeitung der Audiodaten mit ASR und / oder NLU beginnen und / oder entsprechende Audiodaten 212 senden. Das entfernte System 120 kann unter Umständen die Audiodaten 212 von der Benutzervorrichtung 110 (und / oder anderen Vorrichtungen oder Systemen) empfangen und darauf eine Sprachverarbeitung ausführen. Jede der in 2A oder 2B veranschaulichten Komponenten kann somit entweder auf der Benutzervorrichtung 110 oder dem entfernten System 120 angeordnet sein. Das entfernte System 120 kann sich an einem anderen Ort als die Benutzervorrichtung 110 befinden (z. B. auf einem Cloud-Server) und / oder am selben Ort wie die Benutzervorrichtung 110 (z. B. auf einem lokalen Hub-Server).
-
Die Audiodaten 212 können zum Beispiel an eine Orchestratorkomponente 230 des entfernten Systems 120 gesendet werden. Die Orchestratorkomponente 230 kann einen Speicher und eine Logik beinhalten, die es der Orchestratorkomponente 230 ermöglicht, verschiedene Teile und Formen von Daten an verschiedene Komponenten des Systems 120 zu übermitteln. Eine ASR-Komponente 250 kann zum Beispiel zunächst die Audiodaten in Textdaten transkribieren, die eine oder mehrere Hypothesen darstellen, die der in den Audiodaten 212 dargestellten Sprache entsprechen. Die ASR-Komponente 250 kann die Äußerung in den Audiodaten basierend auf einer Ähnlichkeit zwischen der Äußerung und zuvor erstellten Sprachmodellen transkribieren. Zum Beispiel kann die ASR-Komponente 250 die Audiodaten mit Modellen für Klänge (die z. B. Unterworteinheiten wie Phoneme beinhalten können) und Sequenzen von Klängen, die in den Audiodaten dargestellt sind, vergleichen, um Wörter zu identifizieren, die mit der in der Äußerung gesprochenen Sequenz von Klängen übereinstimmen. Diese Modelle können zum Beispiel einen oder mehrere Finite-State-Transducer (FST) beinhalten. Ein FST kann eine Anzahl von Knoten beinhalten, die durch Pfade verbunden sind. Die ASR-Komponente 250 kann einen ersten Knoten des FST basierend auf einer Ähnlichkeit zwischen ihm und einer ersten Teilworteinheit der Audiodaten auswählen. Die ASR-Komponente 250 kann danach basierend auf einer Ähnlichkeit zwischen aufeinanderfolgenden Teilworteinheiten und basierend auf einer Wahrscheinlichkeit, dass eine zweite Teilworteinheit auf eine erste folgt, zu zweiten und nachfolgenden Knoten der FST übergehen.
-
Nach dem Bestimmen der Textdaten kann die ASR-Komponente 250 die Textdaten (entweder direkt und / oder über die Orchestratorkomponente 230) an eine entsprechende NLU-Komponente 260 senden. Die von der ASR-Komponente 250 ausgegebenen Textdaten können eine Hypothese mit der höchsten Punktzahl und / oder eine N-Bestenliste beinhalten, die mehrere Hypothesen enthält (z. B. eine Liste von möglichen Interpretationen von Textdaten, die die Audiodaten darstellen). Die N-Bestenliste kann zusätzlich eine Bewertung beinhalten, die mit jeder darin dargestellten Hypothese verbunden ist. Jede Bewertung kann eine Konfidenz der ASR-Verarbeitung angeben, die ausgeführt wurde, um die Hypothese zu erzeugen, mit der sie verbunden ist.
-
Die NLU-Komponente 260 kann die Textdaten verarbeiten, um eine semantische Interpretation der in den Textdaten dargestellten Wörter zu bestimmen. Das heißt, die NLU-Komponente 260 bestimmt eine oder mehrere Bedeutungen, die mit den in den Textdaten dargestellten Wörtern verbunden sind, basierend auf den einzelnen in den Textdaten dargestellten Wörtern. Die Bedeutungen können eine Domäne, eine Absicht und eine oder mehrere Entitäten beinhalten. Da diese Begriffe hierin verwendet werden, stellt eine Domäne eine allgemeine Kategorie dar, die mit dem Befehl verbunden ist, wie z. B. „Musik“ oder „Wetter“. Eine Absicht steht für eine Art des Befehls, z. B. „spiele ein Lied“ oder „sage mir die Vorhersage für morgen“. Eine Entität steht für eine bestimmte Person, einen Ort oder eine Sache, die mit dem Befehl verbunden ist, z. B. „Toto“ oder „Boston“. Die vorliegende Offenbarung ist jedoch nicht nur auf diese Kategorien beschränkt, die mit den Bedeutungen (hierin allgemein als „natürlich-verstehende Daten“ bezeichnet, die Daten beinhalten können, die von der NLU-Komponente 260 und / oder der Dialogmanager-Komponente bestimmt werden) verbunden sind.
-
Die NLU-Komponente 260 kann eine Absicht (z. B. eine Aktion, die der Benutzer von der Benutzervorrichtung 110 und / oder dem entfernten System 120 ausführen lassen möchte) bestimmen, die durch die Textdaten und / oder einschlägige Informationen in den Textdaten dargestellt wird, die es einer Vorrichtung (z. B. der Vorrichtung 110, dem System 120 usw.) ermöglichen, die Absicht auszuführen. Zum Beispiel, wenn die Textdaten „Spiele Africa von Toto“ entsprechen, kann die NLU-Komponente 260 bestimmen, dass ein Benutzer beabsichtigt hat, dass das System das Lied Africa, das von der Band Toto gespielt wird, ausgibt, was die NLU-Komponente 260 durch eine Absicht „Spiel Musik“ darstellt. Die NLU-Komponente 260 kann die Sprecherkennung 214 weiterverarbeiten, um die Absicht und / oder die Ausgabe zu bestimmen. Zum Beispiel kann die NLU-Komponente bestimmen, dass der Lieblingssong von Sprecher A „Africa“ ist, wenn die Textdaten „Spiele mein Lieblingslied von Toto“ lauten und die Kennung „Sprecher A“ lautet.
-
Die Orchestratorkomponente 230 kann NLU-Daten an die Dialogkomponente 270 senden; in einigen Ausführungsformen ist die Dialogkomponente 270 eine Speechlet-Komponente 290. Die Dialogkomponente 270 bestimmt Ausgabetextdaten unter Verwendung der NLU-Daten. Das System kann mehr als eine Dialogkomponente 270 beinhalten; jede Dialogkomponente 270 kann mit einer oder mehreren unterschiedlichen Domänen, Absichten und / oder Entitäten verbunden sein. Zum Beispiel, wenn die NLU-Daten Absichtsdaten beinhalten, die der Absicht „Musik abspielen“ entsprechen, und Entitätsdaten, die dem „Künstler: Toto“ entsprechen, kann der Orchestrator 230 die NLU-Daten an eine musikbezogene Dialogkomponente 270 senden, die eine Antwort bestimmen kann, die Toto-Musik-Audiodaten zur Ausgabe durch die Benutzervorrichtung 110 beinhaltet.
-
Die Dialogkomponente 270 kann ein trainiertes Modell sein, das die NLU-Daten (und in einigen Ausführungsformen die Eingabetextdaten) verarbeitet und Ausgabetextdaten bestimmt, die eine Antwort auf den in den Eingabetextdaten dargestellten Befehl darstellen. Das trainierte Modell der Dialogkomponente 270 kann in einigen Ausführungsformen ein Sequenz-zu-Sequenz-Modell („seq2seq“) sein, das einen Codierer und einen Decodierer beinhaltet (zusätzlich zu anderen möglichen Komponenten, wie einem Aufmerksamkeitsnetzwerk). Der Codierer kann die eingegebenen Textdaten und / oder NLU-Daten Wort für Wort verarbeiten, um einen Vektor zu bestimmen, der die gesamten eingegebenen Textdaten und / oder NLU-Daten repräsentiert. Der Codierer kann einen oder mehrere Knoten mit rekurrenten Verbindungen (wie hier beschrieben) beinhalten; bei diesen Knoten kann es sich zum Beispiel um Knoten des langen Kurzzeitgedächtnisses (long short-term memory - LSTM) handeln. Der Codierer kann die Textdaten und / oder NLU-Daten sowohl in einer ersten Richtung (z. B. vom Anfang zum Ende) als auch in einer zweiten Richtung (z. B. vom Ende zum Anfang) weiterverarbeiten; ein derartiger Codierer kann als bidirektionaler Codierer bezeichnet werden. Der Decodierer kann dann den vom Codierer bestimmten Vektor (und / oder, in einigen Ausführungsformen, eine oder mehrere Ausgaben eines Aufmerksamkeitsnetzwerks) verarbeiten, um eine Antwort auf die eingegebenen Textdaten zu bestimmen. Die Antwort kann eine Reihe von Wörtern sein, die durch Ausgabetextdaten dargestellt werden. Die Dialogkomponente 270 kann anhand von Trainingsdaten trainiert werden; diese Trainingsdaten können zum Beispiel Textdaten sein, die eine Sammlung von Befehlen und entsprechenden Antworten darstellen.
-
Ein Speechlet 290 kann Software sein, wie eine Anwendung. Das heißt, das Speechlet 290 kann die Vorrichtung 110 und / oder das System 120 in die Lage versetzen, bestimmte Funktionen auszuführen, um Daten bereitzustellen und / oder eine andere vom Benutzer 10 angeforderte Ausgabe zu erzeugen. Die Vorrichtung 110 und / oder das System 120 kann mit mehr als einem Speechlet 290 konfiguriert sein. Zum Beispiel kann ein Wetter-Speechlet 290 die Vorrichtung 110 und / oder das System 120 in die Lage versetzen, Wetterinformationen bereitzustellen, ein Ride-Sharing-Speechlet kann die Vorrichtung 110 und / oder das System 120 in die Lage versetzen, eine Fahrt in Bezug auf ein Taxi und / oder einen Ride-Sharing-Dienst zu buchen, und ein Food-Order-Speechlet kann die Vorrichtung 110 und / oder das System 120 in die Lage versetzen, eine Pizza in Bezug auf das Online-Bestellsystem eines Restaurants zu bestellen.
-
In einigen Fällen kann das Speechlet 290 als Reaktion auf die empfangenen NLU-Ergebnisdaten Textdaten zur Ausgabe bereitstellen. Die Vorrichtung 110 und / oder das System 120 kann eine synthetische Spracherzeugungskomponente 280 beinhalten, die aus Eingabetextdaten und / oder Eingabeaudiodaten Ausgabeaudiodaten erzeugt. Die Komponente zur synthetischen Spracherzeugung 280 kann eine von mehreren Sprachsynthesetechniken verwenden. In einem Verfahren der Sprachsynthese, der sogenannten Unit Selection, analysiert die Komponente zur synthetischen Spracherzeugung 280 Textdaten anhand einer Datenbank mit aufgezeichneter Sprache. Die Komponente zur synthetischen Spracherzeugung 280 kann auf diese Weise Einheiten aufgezeichneter Sprache auswählen, die mit den Textdaten übereinstimmen, und die Einheiten miteinander verketten, um Ausgabeaudiodaten zu bilden. In einem anderen Verfahren, der parametrischen Synthese, variiert die Komponente zur synthetischen Spracherzeugung 280 Parameter wie Frequenz, Lautstärke und Rauschen, um Ausgabeaudiodaten zu erzeugen, die eine künstliche Sprachwellenform beinhalten. Bei der parametrischen Synthese wird ein computergestützter Sprachgenerator, manchmal auch Vocoder genannt, verwendet. In einem anderen Verfahren der Sprachsynthese erzeugt ein trainiertes Modell, das ein Sequenz-zu-Sequenz-Modell sein kann, direkt Ausgabeaudiodaten basierend auf den Eingabedaten.
-
Die Vorrichtung 110 und / oder das System 120 kann eine Sprechererkennungskomponente 295 beinhalten. Die Sprechererkennungskomponente 295 kann Bewertungen bestimmen, die angeben, ob die Audiodaten 212 von einem bestimmten Benutzer oder Sprecher stammen. Zum Beispiel kann eine erste Bewertung die Wahrscheinlichkeit angeben, dass die Audiodaten 212 mit einer ersten synthetischen Stimme verbunden sind, und eine zweite Bewertung kann die Wahrscheinlichkeit angeben, dass die Sprache mit einer zweiten synthetischen Stimme verbunden ist. Die Sprechererkennungskomponente 295 kann auch eine allgemeine Konfidenz bezüglich der Genauigkeit der Operationen zur Sprechererkennung bestimmen. Die Sprechererkennungskomponente 295 kann eine Sprechererkennung ausführen, indem sie die Audiodaten 212 mit gespeicherten Audiomerkmalen anderer synthetisierter Sprache vergleicht. Die Ausgabe der Sprechererkennungskomponente 295 kann verwendet werden, um die NLU-Verarbeitung sowie die von dem Speechlet 290 ausgeführte Verarbeitung zu informieren.
-
Das System 120 kann einen Profilspeicher 275 beinhalten. Der Profilspeicher 275 kann eine Vielzahl von Informationen beinhalten, die sich auf einzelne Benutzer und / oder Gruppen von Benutzern bezieht, die mit der Vorrichtung 110 interagieren. Der Profilspeicher 275 kann ebenfalls Informationen beinhalten, die sich auf einzelne Sprecher und / oder Gruppen von Sprechern beziehen, die nicht unbedingt mit einem Benutzerkonto verbunden sind. Der Profilspeicher 275 der Benutzervorrichtung 110 kann Benutzerinformationen beinhalten, während der Profilspeicher 275 des entfernten Systems 120 Sprecherinformationen beinhalten kann.
-
Der Profilspeicher 275 kann ein oder mehrere Profile beinhalten. Jedes Profil kann einem anderen Benutzer und / oder Sprecher zugeordnet sein. Ein Profil kann spezifisch für einen Benutzer oder Sprecher und / oder eine Gruppe von Benutzern oder Sprechern sein. Zum Beispiel kann ein Profil ein „Haushalts“-Profil sein, das Profile umfasst, die mehreren Benutzern oder Sprechern eines einzigen Haushalts zugeordnet sind. Ein Profil kann Präferenzen beinhalten, die von allen darin enthaltenen Profilen geteilt werden. Jedes Profil, das unter einem einzigen Profil zusammengefasst ist, kann Einstellungen beinhalten, die spezifisch für den Benutzer oder Sprecher sind, der ihm zugeordnet ist. Das heißt, jedes Profil kann Präferenzen beinhalten, die nur in einem oder mehreren Benutzerprofilen enthalten sind, die von demselben Benutzerprofil umfasst werden. Ein Profil kann ein eigenständiges Profil sein und / oder unter einem anderen Benutzerprofil zusammengefasst werden. Wie veranschaulicht, ist der Profilspeicher 275 als Teil des entfernten Systems 120 implementiert. Der Profilspeicher 275 kann jedoch auch auf der Benutzervorrichtung 110 und / oder in einem anderen System angeordnet sein, das mit der Benutzervorrichtung 110 und / oder dem System 120 kommuniziert, zum Beispiel über das Netzwerk 199. Die Profildaten können verwendet werden, um die NLU-Verarbeitung, die Dialogmanager-Verarbeitung und / oder die Sprachverarbeitung zu informieren.
-
Jedes Profil kann Informationen beinhalten, die verschiedene Vorrichtungen, die Ausgabefähigkeiten jeder der verschiedenen Vorrichtungen und / oder einen Standort jeder der verschiedenen Vorrichtungen 110 angeben. Diese Vorrichtungsprofildaten stellen ein spezifisches Profil für eine Vorrichtung dar. Zum Beispiel können Vorrichtungsprofildaten verschiedene Profile darstellen, die mit der Vorrichtung 110 verbunden sind, die Sprachverarbeitung, die in Bezug auf die von der Vorrichtung 110 empfangenen Audiodaten ausgeführt wurde, Fälle, in denen die Vorrichtung 110 ein Weckwort erkannt hat, usw. Im Gegensatz dazu stellen Benutzer- oder Sprecherprofildaten ein spezifisches Profil für einen Benutzer oder Sprecher dar.
-
3A und 3B veranschaulichen die Komponenten eines Systems zum Erzeugen von Ausgabeaudio bei gegebenen Eingabedaten gemäß den Ausführungsformen der vorliegenden Offenbarung. Unter Bezugnahme auf 3A kann das System, wie oben beschrieben, Variationen in die Ausgabeaudiodaten 214 einbringen, die Variationen in der Formulierung von Wörtern und / oder Variationen in Stimmmerkmalen beinhalten können, um die menschliche Sprache besser zu approximieren. Die ASR-Komponente 250 verarbeitet, wie oben beschrieben, die Eingabeaudiodaten 212, um die Eingabetextdaten 302 zu bestimmen. Wie ebenfalls oben beschrieben, können die Eingabetextdaten 302 Daten sein, die Wörter repräsentieren, die den Eingabeaudiodaten 212 entsprechen, und / oder eine N-Bestenliste von möglichen Wörtern sein, die den Eingabeaudiodaten 212 entsprechen. Die Eingabetextdaten 302 können stattdessen oder zusätzlich Unterworteinheiten, wie Phoneme, beinhalten, die den Eingabeaudiodaten 212 entsprechen.
-
Obwohl 3A den Empfang eines Elements von Eingabeaudiodaten 212 und die Erzeugung eines Elements von Ausgabeaudiodaten 214 (z. B. ein „Turn“ des Dialogs) darstellt, können weitere Elemente von Eingabedaten empfangen und weitere Elemente von Ausgabedaten erzeugt werden, während Interaktionen mit dem Benutzer 10, die mehrere Turns des Dialogs umfassen („Multi-Turn“-Dialog). Die Komponente zur synthetischen Spracherzeugung 280 kann daher bei der Erzeugung der Ausgabeaudiodaten 214 zusätzlich zu den NLU-Daten 304 und / oder den Dialogdaten 308 auch Daten aus früheren Dialogrunden verwenden. In einigen Ausführungsformen beinhalten die Dialogdaten 308 diese Informationen bezüglich früherer Dialogrunden. Zum Beispiel kann die Komponente zur synthetischen Spracherzeugung 280 zusätzliche Ausgabeaudiodaten 214 erzeugen, die eine Darstellung des lauter oder langsamer gesprochenen Wortes beinhalten, wenn die Eingabeaudiodaten 212 darauf hinweisen, dass der Benutzer 10 ein in den vorherigen Ausgabeaudiodaten 214 dargestelltes Wort nicht gehört oder verstanden hat.
-
Unter Bezugnahme auf 3B können in anderen Ausführungsformen der vorliegenden Offenbarung andere Eingabedaten 312 als die Eingabeaudiodaten 212 verarbeitet werden. Bei den Eingabedaten 312 kann es sich beispielsweise um Textdaten handeln; ein Benutzer 10 der Benutzervorrichtung 110 kann die Textdaten über eine Eingabevorrichtung der Benutzervorrichtung 110, wie einen Touchscreen und / oder eine Tastatur, eingeben. Die Eingabedaten 312 können stattdessen oder zusätzlich Videodaten sein; die Videodaten können beispielsweise eine Darstellung der Lippen eines Benutzers beim Sprechen, eine Darstellung von Gesten eines Benutzers, wie Gebärdensprache, oder andere derartige Daten beinhalten. Die vorliegende Offenbarung ist nicht auf irgendeine Art von Eingabedaten 312 beschränkt.
-
Wenn die Eingabedaten 312 Textdaten beinhalten, kann die NLU-Komponente 260 die Eingabedaten 312 ohne weitere Verarbeitung verarbeiten. Wenn die Eingabedaten 312 andere Datentypen beinhalten, wie Videodaten, kann eine Videoverarbeitungskomponente, wie eine Bilderkennungskomponente, die Eingabedaten 312 verarbeiten, um entsprechende Textdaten zu bestimmen, die dann wiederum von der NLU-Komponente 260 verarbeitet werden können.
-
Ähnlich wie die Eingabedaten 312 nicht auf Audiodaten beschränkt sind, sind auch die Ausgabedaten 314 nicht auf Audiodaten oder nur eine Art von Daten beschränkt. Die Ausgabedaten können zum Beispiel Textdaten sein; diese Textdaten können eine umformulierte Version der Ausgabetextdaten 306 sein, wie hierin beschrieben. Die Ausgabeerzeugungskomponente 380 kann die Ausgabetextdaten 306 weiterverarbeiten, um Videodaten als Ausgabedaten 314 zu bestimmen. Die Ausgabedaten 314 können auch andere Daten sein oder beinhalten, wie Videodaten; diese Videodaten können zum Beispiel ein Gesicht beinhalten, das verschiedene Gesichtsausdrücke darstellen kann. Bei den Ausgabedaten 314 kann es sich um eine Kombination von Datentypen handeln, wie ein Video eines Gesichts, das seine Lippen bewegt, und entsprechende Audiodaten einer Sprachdarstellung.
-
Zurück zu 3A, bestimmt die NLU-Komponente 260 NLU-Daten 304, die, wie oben beschrieben, eine Domäne, Absicht und / oder Entität beinhalten können, die den Eingabetextdaten 302 entsprechen. Die Dialogmanagerkomponente 270 verarbeitet, wie ebenfalls oben beschrieben, die Eingabetextdaten 302 und / oder NLU-Daten 304, um Ausgabetextdaten 306 zu bestimmen, die eine Antwort auf einen den Eingabetextdaten 312 entsprechenden Befehl darstellen. Die Dialogmanagerkomponente 270 kann ferner Dialogdaten 308 bestimmen, die, wie die NLU-Daten 304, eine Domäne, eine Absicht und / oder eine Entität beinhalten können, die sich von den NLU-Daten 304 unterscheiden. Zum Beispiel können die Ausgabetextdaten 306 auf eine neue Entität verweisen, die in den NLU-Daten 304 nicht vorkommt, und / oder die von der NLU-Komponente 260 bestimmte Domäne ändern.
-
Wie im Folgenden näher erläutert, verarbeitet eine Komponente zur synthetischen Spracherzeugung 280 die Ausgabetextdaten 306, die NLU-Daten 304 und / oder die Dialogdaten 308, um Ausgabeaudiodaten 214 zu bestimmen. Wie hierin beschrieben, können die Ausgabeaudiodaten 214 im Vergleich zu den Ausgabetextdaten 306 unterschiedliche Wörter oder Formulierungen von Wörtern beinhalten und / oder Variationen der Stimmmerkmale darstellen, die mindestens teilweise auf den NLU-Daten 304 und / oder den Dialogdaten 308 basieren.
-
4 veranschaulicht Komponenten eines Systems zum Umformulieren von Eingabetext und / oder zum Variieren von Stimmmerkmalen von Ausgabeaudio gemäß den Ausführungsformen der vorliegenden Offenbarung. Die Komponente zur synthetischen Spracherzeugung 280 kann eine Umformulierungskomponente 402 (ausführlicher beschrieben unter Bezugnahme auf 6) und / oder eine TTS-Komponente 406 (ausführlicher beschrieben unter Bezugnahme auf 7) beinhalten. In einigen Ausführungsformen beinhaltet die Komponente zur synthetischen Spracherzeugung 280 nur die TTS-Komponente 406 und führt keine Umformulierung aus. In anderen Ausführungsformen erzeugt die Umformulierungskomponente 402 die umformulierten Textdaten 404, aber die TTS-Komponente 406 führt keine Variationen der Stimmmerkmale in den Ausgabeaudiodaten 214 ein.
-
In einigen Ausführungsformen können die Umformulierungskomponente 402 und die TTS-Komponente 406 kommunizieren, um zu bestimmen, ob die Ausgabeaudiodaten 214 eine oder mehrere Variationen aufgrund der Umformulierung, eine oder mehrere Variationen aufgrund von Änderungen der Stimmmerkmale oder beides beinhalten sollen. Die Komponente zur synthetischen Spracherzeugung 280 kann zum Beispiel eine Bewertung für jede Art von Variation bestimmen, die einem Variationsgrad entspricht. Die Bewertung für die Umformulierung kann zum Beispiel durch die Anzahl der Wörter bestimmt werden, die sich in den ausgegebenen Textdaten 306 im Vergleich zu den umformulierten Textdaten 404 unterscheiden. Die Bewertung für Variationen der Stimmmerkmale kann durch die Bestimmung einer maximalen Lautheit der Ausgabeaudiodaten 310, einer maximalen oder minimalen Sprechgeschwindigkeit der Ausgabeaudiodaten 310 oder durch die Messung anderer solcher Eigenschaften der Ausgabeaudiodaten 310 bestimmt werden. Wenn eine der Bewertungen über einem entsprechenden Schwellenwert liegt, oder wenn die Summe der Bewertungen über einem anderen Schwellenwert liegt, kann die Komponente zur synthetischen Spracherzeugung 280 bestimmen, dass sie nur Variationen von Umformulierungen in den Ausgabeaudiodaten 310 oder nur Variationen von Stimmmerkmalen in den Ausgabeaudiodaten 310 beinhaltet. Die Komponente zur synthetischen Spracherzeugung 280 kann stattdessen oder zusätzlich entweder die Umformulierungskomponente 402 und / oder die TTS-Komponente 406 veranlassen, ihre jeweiligen bestimmten Variationen zu reduzieren.
-
5 veranschaulicht Beispiele von NLU- und Dialogdaten gemäß den Ausführungsformen der vorliegenden Offenbarung. Die NU-Daten 502 können die NLU-Daten 302 und / oder die Dialogdaten 308 beinhalten. Wie hierin beschrieben, können die NLU-Daten 302 Domänendaten 502a, die Darstellungen einer oder mehrerer Domänen beinhalten können, Absichtsdaten 504a, die Darstellungen einer oder mehrerer Absichten beinhalten können, und / oder Entitätsdaten 506a, die Darstellungen einer oder mehrerer Entitäten beinhalten können, beinhalten. Die Dialogdaten 308 können Domänendaten 502b beinhalten, die Darstellungen einer oder mehrerer Domänen beinhalten, Absichtsdaten 504b, die Darstellungen einer oder mehrerer Absichten beinhalten können, und / oder Entitätsdaten 506b, die Darstellungen einer oder mehrerer Entitäten beinhalten können. Zum Beispiel, wenn die Eingabeaudiodaten 212 eine Darstellung der Phrase „Alexa, spiele Africa von Toto“ beinhalten, kann die NLU-Komponente 260 bestimmen, dass die Domänendaten 502a „Musik“ entsprechen, dass die Absichtsdaten 504b „spiel:musik“ entsprechen und dass die Entitätsdaten 506a „band:Toto“ und „lied:Africa“ entsprechen. Wenn die Dialogmanagerkomponente 270 bestimmt, dass die Ausgabetextdaten 306 eine Darstellung der Phrase beinhaltet, „Gefunden. Möchten Sie sich auch ‚Rosanna‘ anhören?“, kann die Dialogmanagerkomponente 270 ferner bestimmen, dass die Entitätsdaten 506b „band:Toto“ und „lied:Rosanna“ entsprechen. Die Dialogdaten 308 können ferner einige oder alle NLU-Daten 304 beinhalten; in diesen Ausführungsformen können die Umformulierungskomponente 402 und / oder die TTS-Komponente 406 die Textdaten 306/404 und die Dialogdaten 308, nicht aber die NLU-Daten 304 verarbeiten. Die NU-Daten 502 können darüber hinaus zusätzliche Daten beinhalten, wie Daten, die einen emotionalen Zustand eines Benutzers darstellen.
-
6 veranschaulicht Komponenten der Umformulierungskomponente 402 zum Umformulieren von Textdaten gemäß den Ausführungsformen der vorliegenden Offenbarung. Die Umformulierungskomponente 402 kann ein seq2seq-Modell beinhalten, das einen Codierer 602 und einen Decodierer 606 beinhaltet. Eine besondere Implementierung der Umformulierungskomponente 402 ist veranschaulicht; die vorliegende Offenbarung ist jedoch nicht auf diese Implementierung beschränkt.
-
Der Codierer 602 verarbeitet die von der Dialogmanagerkomponente 270 ausgegebenen Textdaten 306, um codierte Daten zu bestimmen. Wie die anderen hierin diskutierten Codierer kann der Codierer 602 ein trainiertes neuronales Netzwerkmodell sein, das aus einem oder mehreren Knoten besteht, die in einer oder mehreren Schichten angeordnet sind.
-
Die codierten Daten können wiederum von einer Max-Pooling-Komponente 604 verarbeitet werden. Bei der Max-Pooling-Komponente 604 kann es sich um eine mathematische Funktion handeln, die die Größe einer oder mehrerer Dimensionen der von dem Codierer 602 ausgegebenen codierten Daten reduziert. Die Max-Pooling-Komponente 604 kann jede Dimension in eine Anzahl von Bereichen unterteilen und für jeden Bereich den Maximalwert aller Werte dieses Bereichs ermitteln. Die Max-Pooling-Komponente 604 kann dann diese Maximalwerte und ihre entsprechenden Regionen ausgeben.
-
Der Decodierer 606 empfängt die Ausgabe der Max-Pooling-Komponente 604 als Eingabe. Der Decodierer 606 kann, wie der Codierer 602, ein trainiertes neuronales Netzwerkmodell sein, das aus einem oder mehreren Knoten besteht, die in einer oder mehreren Schichten angeordnet sind, wie bei den anderen hierin beschriebenen Decodierern.
-
Der Decodierer 606 kann autoregressiv sein, was bedeutet, dass jede von ihm erzeugte Ausgabe als seine Eingabe zurückgeführt wird, bis die Erzeugung einer speziellen „Satzende“-Ausgabe das Ende des Satzes markiert, der durch die umformulierten Textdaten 404 dargestellt wird. Um die Umformulierungskomponente 402 auf die gewünschten Attribute zu konditionieren, die der decodierte Satz aufweisen sollte, kann der Decodierer 606 als Eingabe auch NU-Daten 502 erhalten, bei denen es sich um eine codierte Version der NU-Daten 502 handeln kann, wie sie zum Beispiel von einem Codierer bestimmt wurden. Eine Summierungs- und / oder Mittelungskomponente 612 kann zunächst die NU-Daten 502 verarbeiten, indem sie einige oder alle ihrer Werte (oder Gruppen von Werten) summiert und / oder einige oder alle ihrer Werte (oder Gruppen von Werten) mittelt. In einigen Ausführungsformen werden Werte, die einer oder mehreren Absichten 504a, 504b und Werten, die einer oder mehreren Entitäten 506a, 506b entsprechen, summiert oder gemittelt. Der Decodierer 606 kann die Ausgabe der Summen-/Mittelungskomponente 612 in einem ersten Schritt verarbeiten, bevor er die Ausgabe des Codierers 602 und der Max-Pooling-Komponente 604 verarbeitet.
-
Die Ausgabe des Decodierers 606 kann von einem Aufmerksamkeitsnetzwerk 608 verarbeitet werden. Das Aufmerksamkeitsnetzwerk 608 kann ein RNN, DNN und / oder ein anderes hierin diskutiertes Netzwerk sein und kann Knoten mit Gewichten und / oder Kostenfunktionen beinhalten, die in einer oder mehreren Schichten angeordnet sind. Aufmerksamkeitswahrscheinlichkeiten können nach Projektion der Eingaben auf (z. B.) 128-dimensionale verborgene Darstellungen berechnet werden. In einigen Ausführungsformen gewichtet das Aufmerksamkeitsnetzwerk 608 bestimmte Werte der Ausgaben des Decodierers 606, bevor es sie an eine Projektionskomponente 610 sendet. Das Aufmerksamkeitsnetzwerk 608 kann beispielsweise bestimmte Abschnitte des Kontextvektors gewichten, indem es ihren Wert erhöht, und andere Abschnitte des Kontextvektors gewichten, indem es ihren Wert verringert. Die erhöhten Werte können Werten entsprechen, denen die Projektionskomponente 610 mehr Aufmerksamkeit schenken sollte, und die verringerten Werte können Werten entsprechen, denen die Projektionskomponente 610 weniger Aufmerksamkeit schenken sollte. Das Aufmerksamkeitsnetzwerk 608 kann es der Projektionskomponente 610 somit ermöglichen, bei jedem Schritt der Ausgabeerzeugung verschiedene Teile der Ausgabe des Decodierers 606 zu „beachten“. Das Aufmerksamkeitsnetzwerk 608 kann es dem Decodierer 606 und / oder der linearen Projektionskomponente 610 ermöglichen, zu lernen, worauf sie achten sollen.
-
Die lineare Projektionskomponente 610 kann eine Projektion auf die Ausgabe des Aufmerksamkeitsnetzwerks 608 ausführen. Die Projektion kann eine lineare Transformation P aus einem Vektorraum zu sich selbst sein, sodass P2 = P ist. Die Ausgabe der linearen Projektionskomponente 610 kann mit der Ausgabe einer oder mehrerer vollständig verbundener Schichten 614 kombiniert werden; diese Kombination kann mit einer Softmax-Komponente 616 verarbeitet werden, um die umformulierten Textdaten 404 zu bestimmen. Die Softmax-Komponente 616 kann eine Normalisierungsfunktion ausführen, die ihre Eingabe so anpasst, dass, während jeder Wert in der Ausgabe die gleiche Proportionalität in Bezug auf die entsprechenden Werte ihrer Eingabe beibehält, alle Werte der Ausgabe zwischen zwei Werten liegen, wie etwa 0 und 1, und die Summe aller Ausgabewerte der große der beiden Bereiche ist, wie etwa 1. Die vollständig verknüpften Schichten 614 können ihre Ausgabe durch Verarbeitung der Ausgabe der Summen-/Mittelungskomponente 612 bestimmen.
-
7 veranschaulicht Komponenten eines Systems zum Variieren von Stimmmerkmalen von Ausgabeaudiodaten gemäß Ausführungsformen der vorliegenden Offenbarung. Ein linguistischer Codierer 702 verarbeitet die ausgegebenen Textdaten 306, ein Aufmerksamkeitsnetzwerk 704 bestimmt gewichtete codierte Daten durch Verarbeitung der Ausgabe des Codierers 702; und ein Sprachdecodierer 706 bestimmt Audiodaten, wie Spektrogrammdaten 708, durch Verarbeitung der Ausgabe des linguistischen Codierers 702. Diese Komponenten werden unter Bezugnahme auf 9A und 9B näher beschrieben.
-
Ein zweiter Codierer 720 verarbeitet ebenfalls die Ausgabe der Textdaten 306. Dieser zweite Codierer 720 kann ähnlich aufgebaut sein wie der linguistische Codierer 702, kann aber eine andere Anzahl und / oder Art von Knoten und Schichten aufweisen. Der zweite Codierer 720 ist darauf trainiert, Informationen zu bestimmen, die sich auf das natürliche Verstehen der Ausgabetextdaten 306 beziehen, wie etwa einen Vektor von Werten, die den Bereich, die Absicht und / oder die Entität darstellen, die den Ausgabetextdaten 306 entsprechen.
-
Eine oder mehrere rekurrente Schichten 712 verarbeiten die Ausgabe des zweiten Codierers 720. Obwohl separat gezeichnet, können sich die rekurrenten Schichten 712 ganz oder teilweise innerhalb des zweiten Codierers 720 befinden. In diesen Ausführungsformen können die rekurrenten Schichten 712 eine Zwischenausgabe des zweiten Codierers 720 verarbeiten. Die rekurrenten Schichten 712 können rekurrente Elemente beinhalten, wie Gated-Recurrent-Units (GRUs) und / oder Long Short Memorys (LSTMs). Die rekurrenten Schichten 712 können somit aufgrund ihrer rekurrenten Verbindungen eine Ausgabe bestimmen, die der Gesamtheit der ausgegebenen Textdaten 306 entspricht.
-
Eine oder mehrere vorwärtsgerichtete Schichten 714 können dann die Ausgabe der rekurrenten Schichten 712 zusammen mit den NU-Daten 502 empfangen. Die vorwärtsgerichteten Schichten 714 können zum Beispiel ein konvolutionelles neuronales Netzwerk (CNN) sein oder beinhalten. Die Ausgabe der vorwärtsgerichteten Schichten 714 kann somit zur Konditionierung des Aufmerksamkeitsnetzwerks 704 verwendet werden, während der linguistische Codierer 702 die ausgegebenen Textdaten 306 verarbeitet. Das heißt, wenn der linguistische Codierer 702 Daten verarbeitet, die einem bestimmten Wort oder bestimmten Wörtern der Ausgabetextdaten entsprechen, können die vorwärtsgerichteten Schichten 714 das Aufmerksamkeitsnetzwerk 704 anweisen, eine oder mehrere seiner Gewichtungen anzupassen, um dadurch eine entsprechende Veränderung in einem oder mehreren Stimmmerkmalen zu bewirken, die in den Spektrogrammdaten 708 dargestellt sind.
-
Das Aufmerksamkeitsnetzwerk 704 kann ferner Stildaten 710 empfangen, die einem oder mehreren allgemeinen Sprachstilen entsprechen. Beispielstile beinhalten „Nachrichtensprecher“, „englischer Akzent“ oder „alberne Stimme“. Die Stildaten 710 können ein One-Hot-Vektor sein; jeder Wert des Vektors kann einem bestimmten Sprachstil entsprechen, und nur ein Wert des Vektors hat einen bestimmten Wert (z. B. 1), während alle anderen Werte einen bestimmten anderen Wert (z. B. 0) haben. Das Aufmerksamkeitsnetzwerk 704 kann daher die Stildaten 710 verwenden, um Teile des sprachlichen Codierers 702 zu beachten, die dem ausgewählten Stil entsprechen, während die Gewichte, die mit anderen Stilen verbunden sind, verringert werden. Die Stildaten 710 können bestimmt werden, indem eine oder mehrere Domänen, Absichten oder Entitäten mit einem bestimmten Stil assoziiert werden und dann dieser Stil angegeben wird, wenn diese bestimmte Domäne, Absicht oder Entität bestimmt wird.
-
8 veranschaulicht Komponenten zum Trainieren eines TTS-Systems gemäß den Ausführungsformen der vorliegenden Offenbarung. Die Ausgabe der Textdaten 306, der Stildaten 710, des linguistischen Codierers 702, des Aufmerksamkeitsnetzwerks 704, des Sprachdecodierers 706 und der Spektrogrammdaten 708 entspricht denselben Komponenten, die in 7 beschrieben sind. In 8 verarbeitet jedoch ein Referenzcodierer 810 Referenzspektrogrammdaten 808, bei denen es sich um einen Satz von Trainingsdaten handeln kann. Die Trainingsdaten können ferner Anmerkungen beinhalten, die Stimmmerkmale der Referenzspektrogrammdaten 808 beschreiben. Der Referenzcodierer 810 kann ein Variations-Autocodierer (VAE) sein, was bedeutet, dass er so trainiert wird, dass er eine oder mehrere Datenverteilungen und keine exakten Ergebnisse erzeugt. Durch die Erzeugung dieser Verteilungen kann der Referenzcodierer 810 einen vollständigeren Satz erzeugen, als es sonst möglich wäre, insbesondere wenn die Trainingsdaten begrenzt sind. Mit anderen Worten füllt der Referenzcodierer 810 während des Trainings auf intelligente Weise die Lücken zwischen den einzelnen Trainingsdaten auf, um so zusätzliche Trainingsdaten zu schätzen. Die Ausgabe des Referenzcodierers 810 sind also Parameter, die die eine oder mehrere Verteilungen definieren. In einigen Ausführungsformen können diese Parameter µ beinhalten, das den Mittelwert der Verteilung darstellt, und σ, das die Varianz der Verteilung beinhaltet. Die Samplingkomponente 812 kann dann die Parameter verwenden, um ein posteriores z zu bestimmen, das dann verwendet werden kann, um den linguistischen Codierer 702, das Aufmerksamkeitsnetzwerk 704 und / oder den Sprachdecodierer 706 zu trainieren, während sie die ausgegebenen Textdaten 306 verarbeiten.
-
9A veranschaulicht eine Ausführungsform des linguistischen Codierers 702; die vorliegende Offenbarung ist jedoch nicht auf eine bestimmte Ausführungsform des Codierers 702 beschränkt. Die anderen hierin beschriebenen Codierer, wie der Codierer 602 von 6 und / oder der Codierer 720 von 7, können ähnliche Architekturen aufweisen. Der linguistische Codierer 702 kann Eingabedaten, wie Textdaten 306, empfangen, und eine Zeicheneinbettungskomponente 902 kann darauf basierend Zeicheneinbettungen erstellen. Die Zeicheneinbettungen können die Textdaten 306 als eine definierte Liste von Zeichen darstellen, die zum Beispiel englische Zeichen (z. B. a-z und A-Z), Zahlen, Interpunktionszeichen, Sonderzeichen und / oder unbekannte Zeichen beinhalten können. Die Zeicheneinbettungen können die Liste der Zeichen in einen oder mehrere entsprechende Vektoren umwandeln, zum Beispiel mit Hilfe der One-Hot-Codierung. Die Vektoren können mehrdimensional sein; in einigen Ausführungsformen stellen die Vektoren eine gelernte 512-dimensionale Zeicheneinbettung dar.
-
Die Zeicheneinbettungen können von einer oder mehreren Faltungsschichten 904 verarbeitet werden, die eine oder mehrere Faltungsoperationen auf die den Zeicheneinbettungen entsprechenden Vektoren anwenden können. In einigen Ausführungsformen entsprechen die Faltungsschichten 904 drei Faltungsschichten, die jeweils 512 Filter mit Formen von 5 × 1 enthalten, d. h. jeder Filter überspannt fünf Zeichen. Die Faltungsschichten 904 können längerfristigen Kontext (z. B. N-Gramme) in den Zeicheneinbettungen modellieren. Die endgültige Ausgabe der Faltungsschichten 904 (d. h. die Ausgabe der einzigen oder letzten Faltungsschicht) kann an die bidirektionalen LSTM-Schichten 906 weitergeleitet werden, um Ausgabedaten zu erzeugen. In einigen Ausführungsformen beinhaltet die bidirektionale LSTM-Schicht 906 512 Einheiten: 256 in einer ersten Richtung und 256 in einer zweiten Richtung.
-
9B veranschaulicht eine Ausführungsform eines oder mehrerer der Sprachdecodierer 706; die vorliegende Offenbarung ist jedoch nicht auf eine bestimmte Ausführungsform des Decodierers 706 beschränkt. Die anderen hierin beschriebenen Codierer, wie der Decodierer 606 von 6, können ähnliche Architekturen aufweisen. Der Sprachdecodierer 706 kann ein Netzwerk sein, wie ein neuronales Netzwerk; in einigen Ausführungsformen ist der Decodierer ein autoregressives rekurrentes neuronales Netzwerk (recurrent neural network - RNN). Der Sprachdecodierer 706 kann die codierten Merkmale 908 aus den beachteten codierten Merkmalen 920 Frame für Frame erzeugen. Die beobachteten codierten Merkmale 920 können eine Vorhersage von Frequenzen darstellen, die den eingegebenen Spektrogrammdaten 306 entsprechen. Zum Beispiel können die Eingabespektrogrammdaten 306 eine Vorhersage höherer Frequenzen beinhalten, wenn die beobachteten codierten Merkmale 920 einer Sprache entsprechen, die eine ängstliche Emotion bezeichnet; wenn die beobachteten codierten Merkmale 920 einer Sprache entsprechen, die ein Flüstern bezeichnet, können die Eingabespektrogrammdaten 306 eine Vorhersage niedrigerer Frequenzen beinhalten. In einigen Ausführungsformen beinhalten die Eingabespektrogrammdaten 306 Frequenzen, die gemäß einer Mel-Skala angepasst sind, wobei die Eingabespektrogrammdaten 306 einer Wahrnehmungsskala von Tonhöhen entsprechen, die von Hörern als gleich weit voneinander entfernt eingeschätzt werden. In diesen Ausführungsformen können die Eingabespektrogrammdaten 306 ein Mel-Frequenz-Spektrogramm und / oder ein Mel-Frequenz-Cepstrum (MFC) beinhalten oder als solches bezeichnet werden.
-
Der Sprachdecodierer 706 kann eine oder mehrere Vornetzschichten 916 beinhalten. Die Vornetzschichten 916 können zwei vollständig verknüpfte Schichten mit 256 versteckten Einheiten beinhalten, wie etwa gleichgerichtete lineare Einheiten (rectified linear units - ReLUs). Die Vornetzschichten 916 empfangen die Eingabespektrogrammdaten 306 aus einem vorangegangenen Zeitschritt und können als Informationsengpass fungieren, wodurch sie das Aufmerksamkeitsnetzwerk 704 dabei unterstützen, die Aufmerksamkeit auf bestimmte Ausgaben des Aufmerksamkeitsnetzwerks 704 zu richten. In einigen Ausführungsformen erlaubt die Verwendung der Vornetzwerkschichten 916 dem Decodierer 706 eine stärkere Betonung der Ausgabe des Aufmerksamkeitsnetzwerks 704 und eine geringere Betonung der Eingabespektrogrammdaten 306 aus dem vorhergehenden Zeitschritt.
-
Die Ausgabe der Vornetzschichten 916 kann mit der Ausgabe des Aufmerksamkeitsnetzwerks 704 verkettet werden. Eine oder mehrere LSTM-Schichten 910 können diese verkettete Ausgabe empfangen. Die LSTM-Schichten 910 können zwei unidirektionale LSTM-Schichten beinhalten, die jeweils (z. B.) 1124 Einheiten aufweisen. Die Ausgabe der LSTM Schichten 910 kann mit einer linearen Transformation 912, wie etwa einer linearen Projektion, transformiert werden. In anderen Ausführungsformen kann eine andere Transformation, wie eine affine Transformation, verwendet werden. Eine oder mehrere Post-Net-Schichten 914, bei denen es sich um Faltungsschichten handeln kann, können die Ausgabe der linearen Transformation 912 empfangen; in einigen Ausführungsformen beinhalten die Post-Net-Schichten 914 fünf Schichten, und jede Schicht beinhaltet (z. B.) 512 Filter mit den Formen 5 × 1 mit Stapelnormalisierung. Tanh-Aktivierungen können an den Ausgaben aller Schichten außer der letzten ausgeführt werden. Ein Verkettungselement kann die Ausgabe der Post-Net-Schichten 914 mit der Ausgabe der linearen Transformation 912 verketten, um die Spektrogrammdaten 306 zu erzeugen.
-
Ein Beispiel für ein neuronales Netzwerk, bei dem es sich um den Codierer 602, den linguistischen Codierer 702, den Codierer 720, den Decodierer 606 und / oder den Sprachdecodierer 706 handeln kann, ist in 10 veranschaulicht. Das neuronale Netzwerk kann Knoten beinhalten, die als Eingabeschicht 1002, eine oder mehrere versteckte Schichten 1004 und eine Ausgabeschicht 1006 organisiert sind. Die Eingabeschicht 1002 kann m Knoten, die versteckten Schichten 1004 n Knoten und die Ausgabeschicht 1006 o Knoten beinhalten, wobei m, n und o beliebige Zahlen sein können und die gleiche oder eine unterschiedliche Anzahl von Knoten für jede Schicht darstellen können. Die Knoten der Eingabeschicht 1002 können Eingaben empfangen (z. B. die Audiodaten 302), und die Knoten der Ausgabeschicht 1006 können Ausgaben erzeugen (z. B. die Eingabespektrogrammdaten 306). Jeder Knoten der verborgenen Schichten 1004 kann mit einem oder mehreren Knoten in der Eingabeschicht 1002 und einem oder mehreren Knoten in der Ausgabeschicht 1004 verbunden sein. Obwohl das in 10 veranschaulichte neuronale Netzwerk eine einzige verborgene Schicht 1004 beinhaltet, können andere neuronale Netzwerke mehrere verborgene Schichten 1004 beinhalten; in diesen Fällen kann jeder Knoten in einer verborgenen Schicht mit einigen oder allen Knoten in benachbarten verborgenen (oder Eingabe/Ausgabe-) Schichten verbunden sein. Jede Verbindung von einem Knoten zu einem anderen Knoten in einer benachbarten Schicht kann mit einer Gewichtung und / oder Bewertung verbunden sein. Ein neuronales Netzwerk kann eine oder mehrere Ausgaben, einen gewichteten Satz von möglichen Ausgaben oder eine beliebige Kombination davon ausgeben.
-
Das neuronale Netzwerk kann auch mit rekurrenten Verbindungen aufgebaut sein, sodass eine oder mehrere Ausgaben der verborgenen Schichten 1004 des Netzwerks als nächster Satz von Eingaben wieder in die verborgenen Schichten 1004 zurückfließen. Jeder Knoten der Eingabeschicht ist mit jedem Knoten der verborgenen Schicht verbunden; jeder Knoten der verborgenen Schicht ist mit jedem Knoten der Ausgabeschicht verbunden. Wie veranschaulicht, werden eine oder mehrere Ausgaben der verborgenen Schicht in die verborgene Schicht zur Verarbeitung des nächsten Satzes von Eingaben zurückgeführt. Ein neuronales Netzwerk, das rekurrente Verbindungen enthält, kann als rekurrentes neuronales Netzwerk (RNN) bezeichnet werden.
-
Die Verarbeitung durch ein neuronales Netzwerk wird durch die gelernten Gewichtungen an den Eingaben der einzelnen Knoten und der Struktur des Netzwerks bestimmt. Bei einer bestimmten Eingabe bestimmt das neuronale Netzwerk die Ausgabe Schicht für Schicht, bis die Ausgangsschicht des gesamten Netzwerks berechnet ist. Verbindungsgewichtungen können anfänglich vom neuronalen Netzwerk während des Trainings erlernt werden, wobei gegebene Eingaben mit bekannten Ausgaben verknüpft werden. In einem Satz von Trainingsdaten wird eine Vielzahl von Trainingsbeispielen in das Netzwerk eingespeist. Jedes Beispiel setzt normalerweise die Gewichtungen der richtigen Verbindungen von der Eingabe zur Ausgabe auf 1 und gibt allen Verbindungen eine Gewichtung von 0. Während die Beispiele in den Trainingsdaten vom neuronalen Netzwerk verarbeitet werden, kann eine Eingabe an das Netzwerk gesendet und mit der zugehörigen Ausgabe verglichen werden, um zu bestimmen, wie die Leistung des Netzwerks im Vergleich zur Zielleistung ist. Mit Hilfe einer Trainingstechnik, wie etwa der Backpropagierung, können die Gewichtungen des neuronalen Netzwerks aktualisiert werden, um die von dem neuronalen Netzwerk bei der Verarbeitung der Trainingsdaten gemachten Fehler zu reduzieren. Unter bestimmten Umständen kann das neuronale Netzwerk mit einem Gitter trainiert werden, um die Spracherkennung bei der Verarbeitung des gesamten Gitters zu verbessern.
-
11 ist ein Blockdiagramm, das konzeptionell eine Benutzervorrichtung 110 veranschaulicht. 12 ist ein Blockdiagramm, das beispielhafte Komponenten des entfernten Systems 120 veranschaulicht, bei dem es sich um einen oder mehrere Server handeln kann, die bei der TTS-Verarbeitung, NLU-Verarbeitung usw. behilflich sein können. Der Begriff „System“, wie hierin verwendet, kann sich auf ein traditionelles System im Sinne einer System/Client-Computing-Struktur beziehen, aber auch auf eine Reihe verschiedener Computerkomponenten, die bei den hier besprochenen Operationen helfen können. Zum Beispiel kann ein Server eine oder mehrere physische Rechnerkomponenten beinhalten (wie etwa ein Rack-System), die mit anderen Vorrichtungen / Komponenten entweder physisch und / oder über ein Netzwerk 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 die hierin beschriebenen Operationen auszuführen. Der Server kann dazu konfiguriert sein, unter Verwendung eines oder mehrerer Client-System-Modelle, eines Computer-Büro-Modells, Grid-Computing-Techniken, Fog-Computing-Techniken, Mainframe-Techniken, Utility-Computing-Techniken, eines Peer-to-Peer-Modells, Sandbox-Techniken oder anderer Computing-Techniken zu arbeiten.
-
Das System 120 kann mehrere Server beinhalten, wie einen oder mehrere Server zum Ausführen der Sprachverarbeitung. Im Betrieb kann jeder dieser Server (oder Gruppen von Vorrichtungen) computerlesbare und computerausführbare Anweisungen beinhalten, die sich auf dem jeweiligen Server befinden, wie weiter unten erörtert wird. Jede/s dieser Vorrichtungen / Systeme (110/120) kann einen oder mehrere Controller/Prozessoren (1104/1204) beinhalten, die jeweils eine zentrale Verarbeitungseinheit (CPU) zur Verarbeitung von Daten und computerlesbaren Anweisungen sowie einen Speicher (1106/1206) zur Speicherung von Daten und Anweisungen der jeweiligen Vorrichtung beinhalten können. Die Speicher (1106/1206) können jeweils einen flüchtigen Direktzugriffsspeicher (RAM), einen nichtflüchtigen Nur-LeseSpeicher (ROM), einen nichtflüchtigen magnetoresistiven Speicher (MRAM) und / oder andere Arten von Speicher beinhalten. Jede Vorrichtung (110/120) kann auch eine Datenspeicherkomponente (1108/1208) zum Speichern von Daten und vom Controller/Prozessor ausführbaren Anweisungen beinhalten. Jede Datenspeicherkomponente (1108/1208) kann einzeln einen oder mehrere nichtflüchtige Speichertypen wie Magnetspeicher, optische Speicher, Festkörperspeicher usw. beinhalten. Jede Vorrichtung (110/120) kann auch mit einem entfernbaren oder externen nichtflüchtigen Speicher und / oder einem nichtflüchtigen Speicher (wie einer entfernbaren Speicherkarte, einem Memory-Key-Laufwerk, einem Netzwerkspeicher usw.) über entsprechende Schnittstellen für Eingabe-/Ausgabevorrichtungen (1102/1202) verbunden werden. Die Vorrichtung 110 kann ferner einen oder mehrere Lautsprecher 1112, ein oder mehrere Mikrofone 1120, ein oder mehrere Anzeigen 1116 und / oder eine oder mehrere Kameras 1118 beinhalten. Das entfernte System 120 kann ebenfalls eine oder mehrere Antennen 1214, einen oder mehrere Lautsprecher 1212, ein oder mehrere Mikrofone 1220, eine oder mehrere Anzeigen 1216 und / oder eine oder mehrere Kameras 1218 beinhalten.
-
Computeranweisungen zum Betrieb jeder Vorrichtung/jedes Systems (110/120) und ihrer/seiner verschiedenen Komponenten können von den Controllern/Prozessoren (1104/1204) der jeweiligen Vorrichtung ausgeführt werden, wobei der Speicher (1106/1206) als temporärer „Arbeits“-Speicher zur Laufzeit verwendet wird. Die Computeranweisungen einer Vorrichtung können in einem nichtflüchtigen Speicher (1106/1206), in einem Speicher (1108/1208) oder in einer externen Vorrichtung gespeichert werden. Alternativ dazu können einige oder alle ausführbaren Anweisungen zusätzlich zu oder anstelle von Software in die Hardware oder Firmware der jeweiligen Vorrichtung eingebettet sein.
-
Jede Vorrichtung/jedes System (110/120) beinhaltet Schnittstellen für Eingabe-/Ausgabegeräte (1102/1202). Über die Schnittstellen der Eingabe-/Ausgabevorrichtungen (1102/1202) kann eine Vielzahl von Komponenten angeschlossen werden, wie weiter unten erläutert wird. Darüber hinaus kann jede Vorrichtung (110/120) einen Adress-/Datenbus (1124/1224) zur Übertragung von Daten zwischen den Komponenten der jeweiligen Vorrichtung beinhalten. Jede Komponente innerhalb einer Vorrichtung (110/120) kann auch direkt mit anderen Komponenten verbunden sein, zusätzlich zu (oder statt) der Verbindung mit anderen Komponenten über den Bus (1124/1224).
-
Unter Bezugnahme auf 13 kann die Vorrichtung 110 Eingabe-/Ausgabegeräteschnittstellen 1102 beinhalten, die mit einer Vielzahl von Komponenten verbunden sind, wie einer Audioausgabekomponente (z. B. einem Mikrofon 1304 und / oder einem Lautsprecher 1306), einem kabelgebundenen Headset und / oder einem drahtlosen Headset (nicht veranschaulicht) oder einer anderen Komponente, die Audio ausgeben kann. Die Vorrichtung 110 kann auch eine Audioerfassungskomponente beinhalten. Bei der Audioerfassungskomponente kann es sich zum Beispiel um das Mikrofon 1120 oder ein Array von Mikrofonen, ein kabelgebundenes Headset oder ein drahtloses Headset usw. handeln. Wenn ein Array von Mikrofonen enthalten ist, kann die ungefähre Entfernung zum Ausgangspunkt eines Geräuschs durch akustische Lokalisierung basierend auf Zeit- und Amplitudenunterschieden zwischen Geräuschen bestimmt werden, die von verschiedenen Mikrofonen des Arrays erfasst wurden. Die Vorrichtung 110 kann zusätzlich eine Anzeige zum Anzeigen von Inhalten beinhalten. Die Vorrichtung 110 kann ferner eine Kamera beinhalten.
-
Über die Antennen 1114 können die Schnittstellen der Eingabe-/Ausgabevorrichtung 1102 mit einem oder mehreren Netzwerken 199 über ein drahtloses lokales Netzwerk (WLAN) (wie etwa WLAN), Bluetooth und / oder ein drahtloses Netzwerkfunkgerät verbunden sein, wie etwa ein Funkgerät, das mit einem drahtlosen Kommunikationsnetzwerk kommunizieren kann, etwa einem Long Term Evolution (LTE)-Netzwerk, WiMAX-Netzwerk, 3G-Netzwerk, 4G-Netzwerk, 5G-Netzwerk usw. Eine kabelgebundene Verbindung, wie z. B. Ethernet, kann ebenfalls unterstützt werden. Über die Netzwerke 199 kann das System über eine vernetzte Umgebung verteilt werden. Die E/A-Vorrichtungsschnittstelle (1102/1202) kann auch Kommunikationskomponenten beinhalten, die den Austausch von Daten zwischen Vorrichtungen wie verschiedenen physischen Systemen in einer Sammlung von Systemen oder anderen Komponenten ermöglichen.
-
Die Komponenten der Vorrichtung 110 und / oder des Systems 120 können ihre eigenen dedizierten Prozessoren, Speicher und / oder Speicher beinhalten. Alternativ können eine oder mehrere der Komponenten der Vorrichtung 110 und / oder des Systems 120 die E/A-Schnittstellen (1102/1202), Prozessoren (1104/1204), Speicher (1106/1116) und / oder Speicher (1108/1208) der Vorrichtung 110 und / oder des Systems 120 nutzen.
-
Wie bereits erwähnt, können mehrere Vorrichtungen in einem einzigen System verwendet werden. In einem solchen System mit mehreren Vorrichtungen kann jede der Vorrichtungen unterschiedliche Komponenten beinhalten, die verschiedene Aspekte der Systemverarbeitung ausführen. Die mehreren Vorrichtungen können sich überschneidende Komponenten beinhalten. Die hierin veranschaulichten Komponenten der Vorrichtung 110 und / oder des Systems 120 können als eigenständige Vorrichtung angeordnet sein oder ganz oder teilweise eine Komponente einer größeren Vorrichtung oder eines Systems beinhalten.
-
Das Netzwerk 199 kann ferner eine sprachgesteuerte Vorrichtung 110a, einen Tablet-Computer 110d, ein Smartphone 110b, einen Kühlschrank 110c, einen Desktop-Computer 110e und / oder einen Laptop-Computer 110f über einen drahtlosen Dienstanbieter, über eine WiFi- oder Mobilfunknetzverbindung oder ähnliches verbinden. Andere Vorrichtungen können als mit dem Netzwerk verbundene Unterstützungsvorrichtungen enthalten sein, wie etwa ein System 120. Die Unterstützungsvorrichtungen können über eine drahtgebundene oder drahtlose Verbindung mit dem Netzwerk 199 verbunden werden. Vernetzte Vorrichtungen 110 können Audiosignale mit einem oder mehreren eingebauten oder angeschlossenen Mikrofonen und / oder Audioaufnahmevorrichtungen erfassen, wobei die Verarbeitung von Komponenten derselben Vorrichtung oder einer anderen über das Netzwerk 199 angeschlossenen Vorrichtung ausgeführt wird. Die hierin offenbaren Konzepte können in einer Reihe von verschiedenen Vorrichtungen und Computersystemen angewandt werden, die zum Beispiel Allzweck-Computersysteme, Sprachverarbeitungssysteme und verteilte Rechenumgebungen beinhalten.
-
Das Vorstehende kann auch im Hinblick auf die folgenden Klauseln verstanden werden:
- 1. Ein computer-implementiertes Verfahren zum Erzeugen von Sprache, das Verfahren umfassend:
- Empfangen von ersten Audiodaten, die einen Befehl darstellen, von einer Benutzervorrichtung;
- Verarbeiten der ersten Audiodaten unter Verwendung einer automatischen Spracherkennungskomponente (ASR), um erste Textdaten zu bestimmen, die die Sprache darstellen;
- Verarbeiten der ersten Textdaten unter Verwendung einer Komponente zum Verstehen natürlicher Sprache (NLU), um natürlich-verstehende Daten zu bestimmen, die eine Darstellung einer Entität in den ersten Textdaten umfassen;
- Verarbeiten der natürlich-verstehenden Daten unter Verwendung einer Dialogmanagerkomponente, um zweite Textdaten zu bestimmen, die eine Antwort auf die ersten Audiodaten darstellen, wobei die Antwort einen Bezug auf die Entität beinhaltet;
- Verarbeiten der zweiten Textdaten mit einem linguistischen Codierer einer Text-to-Speech(TTS)-Komponente, um erste codierte Daten zu bestimmen, die Wörter in dem Befehl darstellen;
- Verarbeiten der zweiten Textdaten mit einem zweiten Codierer der TTS-Komponente, um zweite codierte Daten zu bestimmen, die den natürlich-verstehenden Daten entsprechen;
- Verarbeiten der ersten codierten Daten, der zweiten codierten Daten und der natürlich-verstehenden Daten mit einem Aufmerksamkeitsnetzwerk der TTS-Komponente, um gewichtete codierte Daten zu bestimmen, wobei die gewichteten codierten Daten einer Variation in synthetischer Sprache entsprechen, die eine Betonung auf einen Namen der Entität legt; und
- Verarbeiten der gewichteten codierten Daten mit einem Sprachdecodierer der TTS-Komponente, um zweite Audiodaten zu bestimmen, wobei die zweiten Audiodaten der Variation in der synthetischen Sprache entsprechen.
- 2. Das computerimplementierte Verfahren nach Klausel 1, ferner umfassend:
- Verarbeiten zweiter NLU-Daten unter Verwendung der Dialogmanagerkomponente, um dritte Textdaten zu bestimmen, die eine zweite Antwort auf einen zweiten Befehl darstellen;
- Verarbeiten der dritten Textdaten und der zweiten natürlich-verstehenden Daten mit einer Umformulierungskomponente, um vierte Textdaten zu bestimmen, wobei die vierten Textdaten eine Darstellung der Entität und mindestens ein erstes Wort beinhalten, das in den dritten Textdaten nicht dargestellt ist; und
- Verarbeiten der vierten Textdaten mit der TTS-Komponente, um dritte Audiodaten zu bestimmen.
- 3. Das computerimplementierte Verfahren nach Klausel 1 oder 2, ferner umfassend:
- Verarbeiten dritter Textdaten unter Verwendung der NLU-Komponente, um zweite natürlich-verstehende Daten zu bestimmen, die eine Absicht umfassen, ein in den ersten Audiodaten dargestelltes Wort zu wiederholen;
- Verarbeiten der zweiten natürlich-verstehenden Daten unter Verwendung der Dialogmanagerkomponente, um vierte Textdaten zu bestimmen, die eine Antwort auf die dritten Textdaten darstellen;
- Verarbeiten der zweiten natürlich-verstehenden Daten mit dem Aufmerksamkeitsnetzwerk, um zweite gewichtete codierte Daten zu bestimmen, wobei die zweiten gewichteten codierten Daten der Betonung des Wortes entsprechen; und
- Verarbeiten der zweiten gewichteten codierten Daten mit dem Sprachdecodierer, um dritte Audiodaten zu bestimmen, wobei die dritten Audiodaten einem zweiten Stimmmerkmal entsprechen, das mit dem Wort verbunden ist.
- 4. Das computerimplementierte Verfahren nach Klausel 1, 2 oder 3, ferner umfassend:
- Bestimmen einer Domäne, die mit den natürlich-verstehenden Daten assoziiert ist;
- Bestimmen, dass erste Daten, die in einem Computerspeicher gespeichert sind, anzeigen, dass ein Sprachstil mit der Domäne verbunden ist;
- Bestimmen zweiter Daten, die den Sprachstil darstellen,
- wobei die gewichteten codierten Daten ferner mindestens teilweise auf den zweiten Daten basieren.
- 5. Ein computerimplementiertes Verfahren, umfassend:
- Empfangen erster Eingabedaten, die einer Antwort auf einen Befehl entsprechen;
- Empfangen zweiter Eingabedaten, die eine Maschinendarstellung des Befehls umfassen;
- Verarbeiten der ersten Eingabedaten mit einem ersten Modell, um erste codierte Daten zu bestimmen, die Wörter darstellen;
- Verarbeiten der ersten Eingabedaten mit einem zweiten Modell, um zweite codierte Daten zu bestimmen, die den zweiten Eingabedaten entsprechen;
- Verarbeiten der ersten codierten Daten unter Verwendung der zweiten codierten Daten und der zweiten Eingabedaten, um dritte codierte Daten zu bestimmen; und
- Verarbeiten der dritten codierten Daten mit einem dritten Modell, um Audiodaten zu bestimmen, wobei die Audiodaten einer Variation in synthetisierter Sprache entsprechen, die mit den zweiten Eingabedaten verbunden ist.
- 6. Das computerimplementierte Verfahren nach Klausel 5, ferner umfassend:
- Verarbeiten der Audiodaten unter Verwendung eines Vocoders, um Ausgabeaudiodaten zu bestimmen; und
- Veranlassen der Ausgabe der Ausgabeaudiodaten.
- 7. Das computerimplementierte Verfahren nach Klausel 5 oder 6, ferner umfassend:
- Empfangen von dritten Eingabedaten, die einer zweiten Antwort auf einen zweiten Befehl entsprechen;
- Verarbeiten der dritten Eingabedaten mit einem vierten Modell, um vierte Eingabedaten zu bestimmen, die sich von den dritten Eingabedaten unterscheiden, wobei die vierten Eingabedaten den zweiten Eingabedaten entsprechen; und
- Verarbeiten der vierten Eingabedaten mit dem ersten Modell, dem zweiten Modell und dem dritten Modell, um zweite Audiodaten zu bestimmen.
- 8. Das computerimplementierte Verfahren nach Klausel 7, ferner umfassend:
- vor dem Verarbeiten der dritten Eingabedaten, Bestimmen, dass die Antwort der zweiten Antwort entspricht und dass der Befehl dem zweiten Befehl entspricht.
- 9. Das computerimplementierte Verfahren nach Klausel 5, 6, 7 oder 8, ferner umfassend:
- Bestimmen eines Sprachstils, der einer mit der Antwort verbundenen Domäne zugeordnet ist;
- wobei die dritten codierten Daten ferner mindestens teilweise auf dem Sprachstil basieren.
- 10. Das computerimplementierte Verfahren nach Klausel 5, 6, 7, 8 oder 9, ferner umfassend:
- Bestimmen einer Bewertung, die einen Grad der Variation darstellt; und
- Bestimmen, dass die Bewertung kleiner als ein Schwellenwert ist.
- 11. Das computerimplementierte Verfahren nach Klausel 5, 6, 7, 8, 9 oder 10, wobei das Verarbeiten der ersten Eingabedaten mit dem zweiten Modell ferner umfasst:
- Verarbeiten einer Zwischenausgabe des zweiten Modells mit mindestens einer rekurrenten Schicht.
- 12. Das computerimplementierte Verfahren nach Anspruch 5, 6, 7, 8, 9, 10 oder 11, ferner umfassend:
- Verarbeiten der zweiten Eingabedaten und der vierten codierten Daten mit dem dritten Modell, um zweite Audiodaten zu bestimmen, wobei die zweiten Audiodaten einer zweiten Variation in der synthetisierten Sprache entsprechen, die mit den vierten Eingabedaten verbunden ist.
- 13. Ein System, umfassend:
- mindestens einen Prozessor; und
- mindestens einen Speicher, der Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System zu Folgendem veranlassen:
- Empfangen erster Eingabedaten, die einer Antwort auf einen Befehl entsprechen;
- Empfangen zweiter Eingabedaten, die eine Maschinendarstellung des Befehls umfassen;
- Verarbeiten der ersten Eingabedaten mit einem ersten Modell, um erste codierte Daten zu bestimmen, die Wörter darstellen;
- Verarbeiten der ersten Eingabedaten mit einem zweiten Modell, um zweite codierte Daten zu bestimmen, die den zweiten Eingabedaten entsprechen;
- Verarbeiten der ersten codierten Daten unter Verwendung der zweiten codierten Daten und der zweiten Eingabedaten mit einem Aufmerksamkeitsnetzwerk, um dritte codierte Daten zu bestimmen; und
- Verarbeiten der dritten codierten Daten mit einem dritten Modell, um Audiodaten zu bestimmen, wobei die Audiodaten einer Variation in synthetisierter Sprache entsprechen, die mit den zweiten Eingabedaten verbunden ist.
- 14. Das System nach Klausel 13, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System zu Folgendem veranlassen:
- Verarbeiten der Audiodaten unter Verwendung eines Vocoders, um Ausgabeaudiodaten zu bestimmen; und
- Veranlassen der Ausgabe der Ausgabeaudiodaten.
- 15. Das System nach Klausel 13 oder 14, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System ferner zu Folgendem veranlassen:
- Empfangen von dritten Eingabedaten, die einer zweiten Antwort auf einen zweiten Befehl entsprechen;
- Verarbeiten der dritten Eingabedaten mit einem vierten Modell, um vierte Eingabedaten zu bestimmen, die sich von den dritten Eingabedaten unterscheiden; und
- Verarbeiten der vierten Eingabedaten mit dem ersten Modell, dem zweiten Modell und dem dritten Modell, um zweite Audiodaten zu bestimmen.
- 16. Das System nach Klausel 15, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System zu Folgendem veranlassen:
- vor dem Verarbeiten der dritten Eingabedaten zu bestimmen, dass die Antwort der zweiten Antwort entspricht und dass der Befehl dem zweiten Befehl entspricht.
- 17. Das System nach Klausel 13, 14, 15 oder 16, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System ferner zu Folgendem veranlassen:
- Bestimmen eines Sprachstils, der mit einer mit der Antwort verbundenen Domäne verbunden ist;
- wobei die dritten codierten Daten ferner mindestens teilweise auf dem Sprachstil basieren.
- 18. Das System nach Klausel 13, 14, 15, 16 oder 17, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System ferner zu Folgendem veranlassen:
- Bestimmen einer Bewertung, die einen Grad der Variation darstellt; und
- Bestimmen, dass die Bewertung kleiner als ein Schwellenwert ist.
- 19. Das System nach Klausel 13, 14, 15, 16, 17 oder 18, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System ferner zu Folgendem veranlassen:
- Verarbeiten einer Zwischenausgabe des zweiten Modells mit mindestens einer rekurrenten Schicht.
- 20. Das System nach Klausel 13, 14, 15, 16, 17, 18 oder 19, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System ferner zu Folgendem veranlassen:
- Verarbeiten der zweiten Eingabedaten und der vierten codierten Daten mit dem dritten Modell, um zweite Audiodaten zu bestimmen, wobei die zweiten Audiodaten einer zweiten Variation in der synthetisierten Sprache entsprechen, die mit den vierten Eingabedaten verbunden ist.
- 21. Ein computerimplementiertes Verfahren, umfassend:
- Empfangen erster Eingabedaten, die einer Antwort auf einen Befehl entsprechen;
- Empfangen zweiter Eingabedaten, die eine Maschinendarstellung des Befehls umfassen;
- Verarbeiten der ersten Eingabedaten mit einem ersten Modell, um erste codierte Daten zu bestimmen, die Wörter des Befehls darstellen, wobei das erste Modell einen linguistischen Codierer einer Text-to-Speech (TTS)-Komponente umfasst;
- Verarbeiten der ersten Eingabedaten mit einem zweiten Modell, um zweite codierte Daten zu bestimmen, die den zweiten Eingabedaten entsprechen, wobei das zweite Modell einen zweiten Codierer der TTS-Komponente umfasst;
- Verarbeiten der ersten codierten Daten unter Verwendung der zweiten codierten Daten und der zweiten Eingabedaten mit einem Aufmerksamkeitsnetzwerk der TTS-Komponente, um dritte codierte Daten zu bestimmen; und
- Verarbeiten der dritten codierten Daten mit einem dritten Modell, um Audiodaten zu bestimmen, wobei die Audiodaten einer Variation in synthetisierter Sprache entsprechen, die mit den zweiten Eingabedaten verbunden ist.
- 22. Das computerimplementierte Verfahren nach Klausel 21, ferner umfassend:
- Verarbeiten der Audiodaten unter Verwendung eines Vocoders, um Ausgabeaudiodaten zu bestimmen; und
- Veranlassen der Ausgabe der Ausgabeaudiodaten.
- 23. Das computerimplementierte Verfahren nach Klausel 21 oder 22, ferner umfassend:
- Empfangen von dritten Eingabedaten, die einer zweiten Antwort auf einen zweiten Befehl entsprechen;
- Verarbeiten der dritten Eingabedaten mit einem vierten Modell, um vierte Eingabedaten zu bestimmen, die sich von den dritten Eingabedaten unterscheiden, wobei die vierten Eingabedaten den zweiten Eingabedaten entsprechen; und
- Verarbeiten der vierten Eingabedaten mit dem ersten Modell, dem zweiten Modell und dem dritten Modell, um zweite Audiodaten zu bestimmen.
- 24. Das computerimplementierte Verfahren nach Klausel 23, ferner umfassend:
- vor dem Verarbeiten der dritten Eingabedaten, Bestimmen, dass die Antwort der zweiten Antwort entspricht und dass der Befehl dem zweiten Befehl entspricht.
- 25. Das computerimplementierte Verfahren nach Klausel 21, 22, 23 oder 24, ferner umfassend:
- Bestimmen eines Sprachstils, der einer mit der Antwort verbundenen Domäne zugeordnet ist;
- wobei die dritten codierten Daten ferner mindestens teilweise auf dem Sprachstil basieren.
- 26. Das computerimplementierte Verfahren nach Klausel 21, 22, 23, 24 oder 25, wobei die dritten codierten Daten gewichtete codierte Daten umfassen, die der Variation in synthetischer Sprache entsprechen, die eine Betonung auf einen Namen einer in den Audiodaten dargestellten Entität legt.
- 27. Das computerimplementierte Verfahren nach Klausel 21, 22, 23, 24, 25 oder 26, wobei die Verarbeitung der ersten Eingabedaten mit dem zweiten Modell ferner umfasst:
- Verarbeiten einer Zwischenausgabe des zweiten Modells mit mindestens einer rekurrenten Schicht.
- 28. Das computerimplementierte Verfahren nach Klausel 21, 22, 23, 24, 25, 26 oder 27, ferner umfassend:
- Verarbeiten der zweiten Eingabedaten und der vierten codierten Daten mit dem dritten Modell, um zweite Audiodaten zu bestimmen, wobei die zweiten Audiodaten einer zweiten Variation in der synthetisierten Sprache entsprechen, die mit den vierten Eingabedaten verbunden ist.
- 29. Ein System, umfassend:
- mindestens einen Prozessor; und
- mindestens einen Speicher, der Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System zu Folgendem veranlassen:
- Empfangen erster Eingabedaten, die einer Antwort auf einen Befehl entsprechen;
- Empfangen zweiter Eingabedaten, die eine Maschinendarstellung des Befehls umfassen;
- Verarbeiten der ersten Eingabedaten mit einem ersten Modell, um erste codierte Daten zu bestimmen, die Wörter des Befehls darstellen, wobei das erste Modell einen linguistischen Codierer einer Text-to-Speech (TTS)-Komponente umfasst;
- Verarbeiten der ersten Eingabedaten mit einem zweiten Modell, um zweite codierte Daten zu bestimmen, die den zweiten Eingabedaten entsprechen, wobei das zweite Modell einen zweiten Codierer der TTS-Komponente umfasst;
- Verarbeiten der ersten codierten Daten unter Verwendung der zweiten codierten Daten und der zweiten Eingabedaten mit einem Aufmerksamkeitsnetzwerk der TTS-Komponente, um dritte codierte Daten zu bestimmen; und
- Verarbeiten der dritten codierten Daten mit einem dritten Modell, um Audiodaten zu bestimmen, wobei die Audiodaten einer Variation in synthetisierter Sprache entsprechen, die mit den zweiten Eingabedaten verbunden ist.
- 30. Das System nach Klausel 29, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System zu Folgendem veranlassen:
- Verarbeiten der Audiodaten unter Verwendung eines Vocoders, um Ausgabeaudiodaten zu bestimmen; und
- Veranlassen der Ausgabe der Ausgabeaudiodaten.
- 31. Das System nach Klausel 30, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System zu Folgendem veranlassen:
- Empfangen von dritten Eingabedaten, die einer zweiten Antwort auf einen zweiten Befehl entsprechen;
- Verarbeiten der dritten Eingabedaten mit einem vierten Modell, um vierte Eingabedaten zu bestimmen, die sich von den dritten Eingabedaten unterscheiden; und
- Verarbeiten der vierten Eingabedaten mit dem ersten Modell, dem zweiten Modell und dem dritten Modell, um zweite Audiodaten zu bestimmen.
- 32. Das System nach Klausel 31, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System zu Folgendem veranlassen:
- vor dem Verarbeiten der dritten Eingabedaten zu bestimmen, dass die Antwort der zweiten Antwort entspricht und dass der Befehl dem zweiten Befehl entspricht.
- 33. Das System nach Klausel 29, 30, 31 oder 32, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System ferner zu Folgendem veranlassen:
- Bestimmen eines Sprachstils, der mit einer mit der Antwort verbundenen Domäne verbunden ist;
- wobei die dritten codierten Daten ferner mindestens teilweise auf dem Sprachstil basieren.
- 34. Das System nach Klausel 29, 30, 31, 32 oder 33, wobei die dritten codierten Daten gewichtete codierte Daten umfassen, die der Variation in der synthetischen Sprache entsprechen, die eine Betonung auf einen Namen einer in den Audiodaten dargestellten Entität legt.
- 35. Das System nach Klausel 29, 30, 31, 32, 33 oder 34, wobei der mindestens eine Speicher ferner Anweisungen beinhaltet, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das System ferner zu Folgendem veranlassen:
- Verarbeiten einer Zwischenausgabe des zweiten Modells mit mindestens einer rekurrenten Schicht.
-
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 dem Fachmann 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 einem Fachmann ersichtlich sein, dass die Offenbarung ohne einige oder alle der hierin offenbaren spezifischen Details und Schritte praktiziert werden kann.
-
Aspekte des offenbarten Systems können als ein Computerverfahren oder als ein Herstellungsgegenstand wie eine Speichervorrichtung oder ein nicht transitorisches computerlesbares Speichermedium implementiert werden. Das computerlesbare Speichermedium kann von einem Computer gelesen werden und kann Anweisungen umfassen, um einen Computer oder eine andere Vorrichtung zu veranlassen, die in der vorliegenden Offenbarung beschriebenen Prozesse auszuführen. Die computerlesbaren Speichermedien können durch einen flüchtigen Computerspeicher, einen nichtflüchtigen Computerspeicher, eine Festplatte, einen Festkörperspeicher, ein Flash-Laufwerk oder einen Wechseldatenträger und/ode r andere Medien implementiert werden. Darüber hinaus können Komponenten einer oder mehrerer der Komponenten und Motoren als Firmware oder Hardware implementiert sein, wie das akustische Frontend, das unter anderem analoge und / oder digitale Filter (z. B. Filter, die als Firmware für einen digitalen Signalprozessor (digital signal processor - DSP) konfiguriert sind) umfasst.
-
Wie in dieser Offenbarung verwendet, kann der Begriff „ein“ oder „eine“ ein oder mehrere Elemente beinhalten, sofern nicht ausdrücklich anders angegeben. Ferner soll der Ausdruck „basierend auf‟ mindestens 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
-