DE102022125316A1 - Unüberwachtes alignment für text-zu-sprache-synthese unter verwenden neuronaler netzwerke - Google Patents

Unüberwachtes alignment für text-zu-sprache-synthese unter verwenden neuronaler netzwerke Download PDF

Info

Publication number
DE102022125316A1
DE102022125316A1 DE102022125316.3A DE102022125316A DE102022125316A1 DE 102022125316 A1 DE102022125316 A1 DE 102022125316A1 DE 102022125316 A DE102022125316 A DE 102022125316A DE 102022125316 A1 DE102022125316 A1 DE 102022125316A1
Authority
DE
Germany
Prior art keywords
distribution
alignment
text
processor
text sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022125316.3A
Other languages
English (en)
Inventor
Kevin Shih
Jose Rafael Valle Gomes Da Costa
Rohan Badlani
Adrian Lancucki
Wei PING
Bryan Catanzaro
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102022125316A1 publication Critical patent/DE102022125316A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • G10L13/047Architecture of speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/033Voice editing, e.g. manipulating the voice of the synthesiser
    • G10L13/0335Pitch control
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • G10L13/10Prosody rules derived from text; Stress or intonation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • G10L13/10Prosody rules derived from text; Stress or intonation
    • G10L2013/105Duration

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

Generieren von synthetischer Sprache aus einer eingegebenen Textsequenz kann schwierig sein, wenn die Dauer der individuellen Phoneme, aus denen die Eingabetextsequenz besteht, unbekannt ist. Ein überwiegend paralleles Verfahren kann den Sprachrhythmus als separate generative Verteilung modellieren, so dass die Phonemdauer bei der Inferenz gesampelt werden kann. Zusätzliche Informationen wie Tonhöhe oder Energie können ebenfalls gesampelt werden, um eine verbesserte Vielfalt für das Generieren synthetischer Sprache zur Verfügung zu stellen.

Description

  • HINTERGRUND
  • Sprachsynthese wird im Allgemeinen auf autoregressive Weise modelliert, wobei ein statistisches Modell verwendet wird, um die Ausgabe von Sprache basierend auf einer Eingabetextsequenz zu generieren. Diese Modelle sagen unterschiedliche Phonemlängen für die eingegebenen Textsequenzen voraus, aber ein einziger schlecht vorhergesagter Audio-Frame kann zu zusätzlichen Fehlern in der gesamten Sequenz der synthetisierten Sprache führen. Autoregressive Modelle skalieren ebenfalls schlecht, insbesondere wenn die Sequenzlänge zunimmt. Darüber hinaus haben Versuche, autoregressive Modelle in parallele Architekturen zu integrieren, eigene Probleme aufgeworfen, wie z. B. Probleme mit dem Audio-Text-Alignment. Weiterhin kann es autoregressiven Modellen an Vielfalt bei den Ergebnissen synthetischer Sprache mangeln, da eine Eingabesequenz bei jeder Ausführung des Modells zu einer ähnlichen Ausgabe führt, was in vielen Applikationen unerwünscht sein kann.
  • Figurenliste
  • Verschiedene Ausführungsbeispiele gemäß der vorliegenden Offenbarung werden unter Bezugnahme auf die Zeichnungen beschrieben, in denen Folgendes dargestellt ist:
    • 1 zeigt ein Beispiel einer Pipeline für Sprachsynthese, gemäß mindestens einem Ausführungsbeispiel;
    • 2A zeigt ein Beispiel einer Trainingspipeline für Sprachsynthese, gemäß mindestens einem Ausführungsbeispiel;
    • 2B und 2C zeigen ein Beispiel einer Inferenz-Pipeline für Sprachsynthese, gemäß mindestens einem Ausführungsbeispiel;
    • 3 zeigt Beispiele von Alignment-Aufmerksamkeitsmatrizen, gemäß mindestens einem Ausführungsbeispiel;
    • 4A zeigt eine beispielhafte Phonemverteilung, gemäß mindestens einem Ausführungsbeispiel;
    • 4B zeigt eine beispielhafte Tonhöhenverteilung, gemäß mindestens einem Ausführungsbeispiel;
    • 5 zeigt eine beispielhafte Umgebung für Sprachsynthese, gemäß mindestens einem Ausführungsbeispiel;
    • 6A zeigt ein beispielhaftes Flussdiagramm eines Verfahrens zum Generieren synthetischer Sprache gemäß mindestens einem Ausführungsbeispiel;
    • 6B stellt ein beispielhaftes Flussdiagramm eines Verfahrens zum Generieren synthetischer Sprache dar, gemäß mindestens einem Ausführungsbeispiel;
    • 6C zeigt ein beispielhaftes Flussdiagramm eines Verfahrens zum Trainieren eines Text-zu-Sprache-Systems gemäß mindestens einem Ausführungsbeispiel;
    • 7 zeigt ein beispielhaftes Datenzentrumssystem, gemäß mindestens einem Ausführungsbeispiel;
    • 8 zeigt ein Rechnersystem, gemäß mindestens einem Ausführungsbeispiel;
    • 9 zeigt ein Rechnersystem, gemäß mindestens einem Ausführungsbeispiel;
    • 10 zeigt zumindest Teile eines Grafikprozessors, gemäß einem oder mehreren Ausführungsbeispielen; und
    • 11 zeigt zumindest Teile eines Graphikprozessors, gemäß einem oder mehreren Ausführungsbeispielen.
  • DETAILLIERTE BESCHREIBUNG
  • Ansätze gemäß verschiedenen Ausführungsbeispielen stellen Systeme und Verfahren für Ende-zu-Ende Text-zu-Sprache (Text-to-Speech, TTS) Modelle zur Verfügung. In mindestens einem Ausführungsbeispiel sind die TTS-Modelle parallel oder zumindest partiell parallel. Verschiedene Ausführungsbeispiele können Modelle enthalten, die den Sprachrhythmus weiter als eine samplebare Verteilung modellieren, um die variable Token-Dauer während der Inferenzierung zu erleichtern. In mindestens einem Ausführungsbeispiel stellen die Systeme und Verfahren eine Online-Extraktion von Sprach-Text-Alignment zur Verfügung.
  • Verschiedene Ausführungsbeispiele beziehen sich auf Systeme und Verfahren zum Generieren von TTS unter Verwendung eines überwiegend parallelen Ende-zu-Ende Modells. Ausführungsbeispiele beinhalten ein unüberwachtes Alignment (dt. auch Ausrichten) unter Verwendung eines probabilistischen Bestimmens, um individuelle Phoneme, die variable Längen haben können, an dem entsprechenden Text auszurichten. Ein generatives Modell wird verwendet, um über eine Verteilung plausibler Phonemdauern zu samplen, wobei eine Grenze gesetzt werden kann, um unwahrscheinliche oder unrealistische Dauern nicht zu berücksichtigen. Zusätzlich kann ein weiteres generatives Modell für die Tonhöhe und die Energie der verschiedenen Phoneme aufgebaut werden, das während der Trainingsphase extrahiert werden kann. Diversität kann durch Sampling verschiedener Orte aus derselben Wahrscheinlichkeitsverteilung erreicht werden. Systeme und Verfahren können auch auf Verbesserungen beim Trainieren unter Verwendung von verteilungsbewusster Datenerweiterung geleitet werden, wobei synthetisierte Daten während des Trainings markiert/kategorisiert und dann ignoriert oder anderweitig nicht zur Inferenzzeit verwendet werden können.
  • Verschiedene Ausführungsbeispiele der vorliegenden Offenbarung zielen auf die Überwindung von Problemen ab, die mit traditionellen Alignment-Tools mit TTS assoziiert sind, bei denen diese Tools versuchen, das Alignment vor den Inferenzen zu extrahieren oder sich auf Aufmerksamkeitsmechanismen verlassen. Das Verwenden eines erzwungenen Aligners kann begrenzte Fähigkeiten haben, zum Beispiel, wenn ein Aligner für eine bestimmte Sprache oder ein bestimmtes Alphabet nicht verfügbar ist. Außerdem haben sich Aufmerksamkeitsmechanismen für Aligner als instabil erwiesen und konvergieren möglicherweise nicht zu sinnvollen Lösungen. Die Systeme und Verfahren der vorliegenden Offenbarung können diese und andere Probleme angehen, indem sie auf Aufmerksamkeit basierende Mechanismen um eine Prior-Verteilung (dt. auch A-priori- oder Anfangswahrscheinlichkeit, engl. prior distribution) erweitern, die in einem oder mehreren Ausführungsbeispielen zigarrenförmig sein kann. Weiterhin können Systeme und Verfahren verschiedene Techniken im Zusammenhang mit Hidden-Markov-Methoden (HMM) einsetzen, wie z.B. Forward-Sub-Algorithmen und Viterbi, um die wahrscheinlichsten Textsequenzen für gegebene Signale zu identifizieren.
  • Ausführungsbeispiele können auch Probleme angehen, die mit unzureichenden oder kleinen Datensätzen assoziiert sind, die für das Training verwendet werden. In Bezug auf TTS-Synthese-Trainingspipelines werden erweiterte Daten-Samples nur selten einbezogen, da diese Samples als außerhalb einer gewünschten Verteilung für die Modellierung angesehen werden können, da es in vielen Instanzen unerwünscht ist, Text so zu synthetisieren, dass er ähnlich wie die erweiterten Daten-Samples klingt. In mindestens einem Ausführungsbeispiel können Systeme und Verfahren die Datenerweiterung einbeziehen, um die Verallgemeinerung von Modellen zu verbessern, ohne dass Effekte in die Inferenzergebnisse einfließen. Zum Beispiel können augmentierte Daten markiert oder anderweitig innerhalb einer oder mehrerer generierter Verteilungen identifiziert werden, wobei das Sampling während der Inferenz diese Bereiche vermeidet.
  • Diversität mit synthetisierter Sprache wird auch unter Verwendung von Systemen und Verfahren der vorliegenden Offenbarung behandelt. In mindestens einem Ausführungsbeispiel kann derselbe Text mehrfach synthetisiert werden, wobei jedes Ergebnis plausibel und qualitativ unterschiedlich ist. Ein generatives Modell (Normalisierungsfluss) kann verwendet werden, um plausible Phonemdauern zur Inferenzzeit zu samplen, was eine verbesserte Vielfalt zur Verfügung stellen kann, da eine signifikante Variation in Bezug auf Sprache die Phonemdauer ist. Systeme und Verfahren können auch zur Tonhöhen- und Energiemodellierung geleitet werden, wodurch größere Optionen für die Diversität mit synthetisierter Sprache zur Verfügung gestellt werden. In mindestens einem Ausführungsbeispiel können Tonhöhe und Energie modelliert werden, und eine probabilistische Komponente kann beim Generieren der Sprachausgabe Samples aus diesen Modellen ziehen.
  • Verschiedene Ausführungsbeispiele können auch die Sprecher-Konditionierungsvariablen verbessern. Zum Beispiel können traditionelle Multi-Sprecher-TTS-Modelle einen dimensionalen Vektor für einen bestimmten Sprecher zuweisen und dann diesen Vektor beim Generieren einer Ausgabe anwenden. Die Verwendung eines einzigen Vektors für die Sprecher kann jedoch die Fähigkeit eines Modells einschränken, ähnlich oder unterschiedlich klingende Ausgaben zu generieren, ohne individuelle Abweichungen für die Sprecher zu modellieren. Ausführungsbeispiele können einen Vektor als Funktion einer Eingabe und eines Modells über die Verteilung eines Sprechers zur Inferenzzeit generieren.
  • Eine Text-zu-Sprache (Text-to-Speech, TTS) Pipeline 100, die auch als Sprachsynthese bezeichnet werden kann, ist in 1 dargestellt, die eine Eingabe 102 enthält, die einer Texteingabe entsprechen kann. Bei der Eingabe kann es sich um eine initiale Texteingabe handeln, z. B. eine von einem Benutzer zur Verfügung gestellte Eingabe, eine umgewandelte Texteingabe, z. B. eine Äußerung, die ausgewertet und dann in Text umgewandelt wurde, eine Textsequenz, die aus einem Eingangsbild oder -video extrahiert wurde, oder Ähnliches. In mindestens einem Ausführungsbeispiel kann die Eingabe 102 auf eine Frage oder einen Kommentar eines Benutzers reagieren, wie z. B. ein konversationelles System der künstlichen Intelligenz (KI), das Antworten auf Benutzeranfragen zur Verfügung stellt, neben anderen Applikationen. Die dargestellte Eingabe 102 kann zum Verarbeiten in einem Framework 104 formatiert werden, das ein oder mehrere trainierte maschinelle Lernsysteme enthalten kann, um die Eingabe 102 nach einem oder mehreren Merkmalen auszuwerten, was die Umwandlung der Eingabe 102 in eine Audioausgabe ermöglichen kann, die die menschliche Sprache emuliert.
  • In diesem Beispiel umfasst das Framework 104 zum Verarbeiten ein System 106 zum Verstehen natürlicher Sprache (NLU), ein Prosodie-Modell 108 und ein TTS-Modul 110. Wie man sieht, kann das NLU-System 106 mit einem oder mehreren Konversations-KI-Systemen verwendet werden, um Menschen eine natürliche Interaktion mit Geräten zu ermöglichen. Das NLU-System 106 kann verwendet werden, um den Kontext und die Absicht der Eingabe 102 zu interpretieren und eine Antwort zu generieren. Zum Beispiel kann die Eingabe 102 vorverarbeitet werden, was Tokenisierung, Lemmatisierung, Stemming und andere Verfahren beinhalten kann. Darüber hinaus kann das NLU-System 106 ein oder mehrere Deep-Learning-Modelle, wie z. B. ein BERT-Modell, enthalten, um Funktionen wie Entitätserkennung, Absichtserkennung, Stimmungsanalyse und andere zu ermöglichen. Weiterhin kann das NLU-System 106 die Umwandlung von sprachlichen Einheiten der Eingabe 102 in Phoneme ermöglichen, die dann unter Verwendung des Prosodie-Modells 108 zusammengesetzt werden können.
  • In mindestens einem Ausführungsbeispiel kann das TTS-Modell 110 eine vom NLU-System 106 generierte Textantwort nehmen und sie in natürlich klingende Sprache umwandeln. Es sollte verstanden werden, dass in verschiedenen Ausführungsbeispielen das Prosodiemodell 108 Teil des TTS-Modells 110 sein kann. Die Ausgabe des NLU-Systems 106 kann verschiedenen, mit dem TTS-Modell 110 assoziierten Verfahren unterzogen werden, wie z. B. linguistische Analyse, Synthese und dergleichen. Zusätzlich können Teile der Sprache markiert werden. In verschiedenen Ausführungsbeispielen kann die Ausgabe weiter analysiert werden, um die Aussprache zu verfeinern, die Dauer von Wörtern zu berechnen, die prosodische Struktur der Äußerung zu entschlüsseln und grammatikalische Informationen zu verstehen. Zusätzlich kann der Text in Mel-Spektogramme umgewandelt werden, die dann an den Vocoder 112 ausgegeben werden, um natürlich klingende Sprache zu generieren. Wie bereits erwähnt, kann in verschiedenen Ausführungsbeispielen der Vocoder 112 in das TTS-Modell 110 integriert werden. Dementsprechend wird eine Audioausgabe 114 generiert, die wie menschliche Sprache klingt.
  • Die Sprachsynthese kann sequentiell in einer vollständig autoregressiven Weise modelliert werden, wobei die Trainings- und Interferenzgeschwindigkeiten mit zunehmender Sequenzlänge nicht oder nur ineffizient skalieren können. Außerdem können sich Fehler innerhalb eines oder mehrerer Audio-Frames auf andere Teile der synthetisierten Sprache ausbreiten. Die Parallelisierung der Sprachsynthese ist zwar wünschenswert, kann aber mit der Phonemlänge assoziierte Probleme mit sich bringen. Ohne die Phoneme zu synthetisieren, ist es zum Beispiel schwierig, ihre individuellen Längen zu bestimmen. Außerdem verpassen Verfahren, die zuerst die Phoneme im Eingabetext bestimmen und dann aus einem Mel-Spektogramm sampeln, die vollständige Ende-zu-Ende-Parallelisierung der Systeme und Verfahren der vorliegenden Offenbarung. Systeme und Verfahren der vorliegenden Offenbarung können auf ein Ende-zu-Ende-System gerichtet sein, das Online-Alignment zusammen mit der Implementierung eines generativen Modells zum Inferenzieren verschiedener Ergebnisse umfasst.
  • Bestehende Alignment-Techniken sind in parallelen Architekturen oft unzureichend oder unbrauchbar. Zum Beispiel können bestehende Techniken die Aufmerksamkeit von einem autoregressiven Modell in eine parallele Architektur destillieren, die ein zweistufiges Verfahren beinhaltet, das kostspielig zu trainieren sein kann. Darüber hinaus sind diese Verfahren oft begrenzt, da für individuelle Sprachen oder Alphabete, die mit dem System verwendet werden, unabhängiges Training verwendet wird. Weiterhin zeigen diese Techniken oft einen Verlust an Inferenzvielfalt an, wie z. B. Variabilität mit Sprachrhythmus. Systeme und Verfahren können diese Nachteile überwinden, indem sie ein oder mehrere generative Modelle für Token-Dauern einbeziehen, die separate Modelle sein können.
  • Eine Trainingspipeline 200, die in 2A gezeigt wird, kann verwendet werden, um ein generatives Modell für das Sampling von Mel-Spektrogrammen zu konstruieren, denen eine Texteingabe und Sprecherinformationen gegeben werden. In diesem Beispiel wird ein Mel-Spektrogramm 202 mit einem Sprechervektor 204 (ξ) zur Verfügung gestellt, der sprecherspezifische Charakteristiken kodieren kann, um diese zu erweitern 206. Beispielsweise kann das Mel-Spektrogramm für einen Audioclip menschlicher Sprache sein, der als Mel-Spektrogramm-Tensor X ∈ ℝCmel×T repräsentiert werden kann, wobei T die Anzahl der Mel-Frames über die zeitliche Achse und Cmel die Anzahl der Dimensionsbänder pro Frame ist. Der Lautsprechervektor 204 kann Informationen für entsprechende Änderungen in Bezug auf eine Datenverteilung enthalten. In diesem Beispiel kann die Augmentation 206 mit einer bestimmten Wahrscheinlichkeit angewandt werden, was das Mel-Spektrogramm 202 mit entsprechenden Änderungen des Sprechervektors 204 verändern kann, und dann wird eine Ausgabe zu einer Trainingspipeline 208 geleitet. Das Mel-Spektrogramm 202 kann auch ohne Augmentation zusammen mit dem Eingabetext 210 zur Trainingspipeline 208 geleitet werden, der als Tensor einer eingebetteten Textsequenz repräsentiert werden kann, wie durch Φ E ℝCtxt×N gezeigt, wobei N eine Länge ist. Die resultierende Ausgabe ist eine Maximum-Likelihood-Schätzung (MLE) 212 über einen latenten Raum. Diese Ausgabe kann latenten Zufallsvariablen für Mel und Dauern (Sprechgeschwindigkeit) entsprechen, die optimiert wurden.
  • Eine in 2B gezeigte Inferenz-Pipeline 250 kann aus dem MLE 212 sampeln, um ein Eingabe-Sample 252 zu erzeugen. Ein zufälliges Sampling des MLE 212 kann vielfältige Inferenzergebnisse ermöglichen. In mindestens einem Ausführungsbeispiel wird das Sample 252 durch eine Inferenzpipeline 254 zur Ausgabe eines zweiten Mel-Spektrogramms 256 verarbeitet, das dann zur Ausgabe eines Audioclips verarbeitet werden kann.
  • Verschiedene Ausführungsbeispiele der vorliegenden Offenbarung ermöglichen das Sampeln (Sampling) für beide Mel-Spektrogramm-Frames und ihre Dauern zum Zeitpunkt der Inferenz und erhalten gleichzeitig eine parallele Architektur für die Modellierung. Im Betrieb wird ein zeitliches Alignment zwischen dem Audioclip (z.B. Mel-Spektrogramm 202) und dem Text (z.B. Eingabetext 210) aufgebaut. Das Alignment kann als A ∈ ℝN×T repräsentiert sein. Dementsprechend kann eine konditionale Verteilung durch Gleichung (1) repräsentiert werden. P ( X ,   A ,   F 0 ,   E | Φ ,   ξ ) = P m e l ( X | Φ ,   ξ ,   A ,   F 0 ,   E ) P d u r ( A | Φ ,   ξ ) P p i t c h ( F 0 | Φ ,   ξ ) P e n e r g y ( E | Φ ,   ξ )
    Figure DE102022125316A1_0001
  • Wie bereits erwähnt, repräsentiert in der konditionalen Repräsentation X einen Mel-Spektrogramm-Tensor, A repräsentiert das Alignment, F0 repräsentiert die Tonhöhe und E repräsentiert die Energie. Dementsprechend können verschiedene Ausführungsbeispiele, wie weiter unten beschrieben wird, ein Sampeln über eine Vielzahl verschiedener Verteilungen ermöglichen, die Dauer, Tonhöhe, Energie und andere Eigenschaften der Sprache, die nicht durch Dauer, Tonhöhe und Energie erfasst werden, wie z.B. Intonation, Betonung, Tempo, Rhythmus und ähnliches, einschließen können, aber nicht darauf beschränkt sind
  • Es sollte verstanden werden, dass in verschiedenen Ausführungsbeispielen ein oder mehrere Teile von Anweisungen (z.B. Softwareanweisungen) zur Ausführung zumindest eines Teils von Gleichung (1) parallel sein können. So kann beispielsweise Pmel parallel sein. Ein oder mehrere andere Teile oder Komponenten von Teilen von Gleichung (1) können jedoch eine oder mehrere autoregressive Komponenten enthalten, wie Dauer, Tonhöhe, Energie und Text. Dementsprechend können verschiedene Komponenten verschiedener Ausführungsbeispiele kostspielige Trainingsschritte ausgleichen.
  • Im Betrieb werden Normalisierungsflüsse auf die Mel-Codierung in TTS angewendet. Verteilungen können so modelliert werden, dass jeder Zeitschritt in einer Verteilung aus einer einfachen Verteilung gesampelt werden kann. In verschiedenen Ausführungsbeispielen wird von unabhängigen und identisch verteilten Zufallsvariablen ausgegangen. Dementsprechend kann das MLE 212 in Bezug auf die Daten Samples x durch Gleichung (2) repräsentiert werden: log  p x ( x ) = log  p z ( g 1 ( x ) ) + log | d e t   J ( g 1 ( x ) ) | ,
    Figure DE102022125316A1_0002
  • wobei px(x) die unbekannte Likelihood-Funktion für jedes Mel-Frame Pmel () repräsentiert, pz(z) eine Gaußsche Likelihood-Funktion repräsentiert und J die Jacobi einer invertierbaren Transformation g ist, so dass z = g-1 (x).
  • In einem oder mehreren Ausführungsbeispielen kann die Inferenzierung wie durch Gleichung (3) repräsentiert durchgeführt werden: z ~ N ( O ,   I )   a n d   x = g ( z )
    Figure DE102022125316A1_0003
  • Während der Inferenz kann ein Phonemfluss verwendet werden, um Dauern pro Phonem zu erhalten, die dem Alignment A entsprechen können, das verwendet wird, um die Eingabe für einen parallelen Mel-Decoder-Fluss vorzubereiten, der Pmel () modelliert. Dieser Dekodierer kann latente Vektoren samplen, z.B. aus dem MLE 212, und sie plausibel klingenden Mel-Frames zuordnen, wie hier beschrieben. Alignment zwischen Text und Sprache, ohne Abhängigkeiten von externen Alignern, ist ein wichtiges Verfahren, um ein Ende-zu-Ende-TTS-System zur Verfügung zu stellen. In verschiedenen Ausführungsbeispielen der vorliegenden Offenbarung können eine oder mehrere Schichten mit affiner Kopplung verwendet werden, um Eingabedaten aufzuteilen und daraus Skalen- und Übersetzungsparameter zu inferenzieren. In verschiedenen Ausführungsbeispielen können Eingaben kontextabhängig sein, die sich auf eine zeitliche Dimension beziehen können. Die affine Kopplungsschicht kann verwendet werden, um eine oder mehrere Kontextmatrizen zu generieren. Diese kann zusammen mit dem Sprecher-Einbettungsvektor verwendet werden, um eine Matrix mit zeitlichem Alignment zwischen Textinformationen und Mel-Spektrogramm-Frames zur Verfügung zu stellen und sprecherabhängige Informationen zu liefern. Neuere Arbeiten verwenden ein flussbasiertes Modell, um Mel-Spektrogramm-Frames latenten Vektoren zuzuordnen. Während dieses Verfahren stabile Ergebnisse liefern kann, führen nicht-invertierbare Architekturen oft dazu, dass die Aufmerksamkeit auf triviale Lösungen kollabiert, was die Übertragbarkeit auf andere Modelle einschränken kann. Darüber hinaus berücksichtigt das flussbasierte Modell, wie oben erwähnt, nicht den Verlust an Inferenzvielfalt. Dementsprechend zeigen die Systeme und Verfahren der vorliegenden Offenbarung weiterhin Verbesserungen gegenüber bestehenden Modellen.
  • Eine Alignment-Architektur 270 ist in 2C dargestellt, die einen oder mehrere Teile eines maschinellen Lernsystems bilden kann, das mit Ausführungsbeispielen der vorliegenden Offenbarung verwendet werden kann. In diesem Beispiel werden der eingegebene Text 210 und die Mel-Frames 272, die zumindest teilweise dem Mel-Spektrogramm 202 entsprechen können, beide in einem Kodierer 274 kodiert, der separate Kodierer für die Mel-Frames und den eingegebenen Text 210 enthalten kann. Ein Textcodierer kann z.B. Texttoken (z.B. Phonemeinbettungen) auswerten. In mindestens einem Ausführungsbeispiel werden die Eingabe 210 und die Frames 272 mit 1D-Convnets mit einem begrenzten rezeptiven Feld kodiert, um den lokalen Kontext einzubeziehen. Der Kodierer 274 erzeugt eine Ausgabe, die als Eingabe für eine Softmax-Funktion 276 dient, die eine Wahrscheinlichkeitsmatrix 278 generieren kann, die einen oder mehrere Vektoren von Wahrscheinlichkeiten für den Text und die Frames enthält, die verwendet werden können, um eine oder mehrere Visualisierungen zu generieren, wie hier beschrieben.
  • Verschiedene Ausführungsbeispiele können ein unbeaufsichtigtes oder partiell unbeaufsichtigtes Lernen des Alignments ermöglichen. Das Alignment kann ohne Abhängigkeiten von externen Alignern entwickelt werden. In mindestens einem Ausführungsbeispiel kann eine Kombination aus Viterbi- und Vorwärts-Rückwärts-Algorithmen, die in Hidden-Markov-Modellen (HMMs) verwendet werden, verwendet werden, um sowohl harte als auch weiche Alignments zu lernen. Wie bereits erwähnt, kann das Alignment als A ∈ ℝN×T repräsentiert werden, wobei verschiedene Alignments als „hartes“ Alignment oder als „weiches“ Alignment bezeichnet werden können. Asoft kann das Alignment zwischen Text Φ und Mel-Frames X der Länge N bzw. T repräsentieren, so dass jede Spalte von Asoft auf eine Wahrscheinlichkeitsverteilung normiert ist. Asoft kann zum Verarbeiten verwendet werden, um monotone, binarisierte Alignment-Matrizen Ahard zu extrahieren, so dass für jeden Rahmen die Wahrscheinlichkeitsmasse auf ein einziges Symbol konzentriert ist und j = 1 T A h a r d , i , j
    Figure DE102022125316A1_0004
    einen Vektor der Dauer jedes Symbols ergibt.
  • Weiches Alignment kann auf einer erlernten paarweisen Affinität zwischen allen Text-Token ϕ ∈ Φ und Mel-Frames x ∈ X basieren, die mit Softmax über die in Gleichungen (4) und (5) repräsentierte Textdimension normalisiert werden kann. D i , j = d i s t L 2 ( ϕ i e n c x j e n c ) ,
    Figure DE102022125316A1_0005
    A s o f t = s o f t m a x ( D ,   d i m = 0 )
    Figure DE102022125316A1_0006
  • In Bezug auf die Gleichungen (4) und (5) sind xenc und ϕenc kodierte Varianten von x und ϕ, die jeweils eine 2 oder 3 1D-Faltungsschicht verwenden. In verschiedenen Ausführungsbeispielen kann ein Verlustmodul verwendet werden, um eine monotone Sequenz zu entwickeln, die an der ersten bzw. letzten Texttoken beginnt und endet, jeden Texttoken einmal verwendet und bei jedem Vorrücken von Mel-Frame ein Vorrücken um 0 oder 1 Texttoken ermöglicht.
  • Verschiedene Ausführungsbeispiele ermöglichen die Beschleunigung des Alignment-Lernens unter Verwendung eines Priors, die die Elemente auf einem nahezu diagonalen Pfad fördert. Eine Beta-Binomialverteilung kann verwendet werden, um die Vorwärtsbewegung des Aufmerksamkeitsmechanismus zu fördern. Diese Beta-Binomialverteilung kann dazu verwendet werden, einen zigarrenförmigen 2D-Prior über eine Diagonale von Asoft zu konstruieren, die sich in der Mitte der Matrix verbreitert und zu den Ecken hin verengt. Der Prior kann gewichtet oder skaliert werden, wobei ein geringeres Gewicht die Breite des Priors vergrößern kann.
  • Da durch Dauerprädikation generierte Alignments von Natur aus binär sind, kann das Modell auf eine binarisierte Alignment-Matrix konditioniert werden, um zu vermeiden, dass eine Lücke zwischen Training und Test entsteht. Dies kann unter Verwendung des Viterbi-Algorithmus erreicht werden, wobei dieselben Einschränkungen für ein monotones Alignment gelten, was das wahrscheinlichste monotone Alignment aus der Verteilung über monotone Pfade zur Verfügung stellen kann. Darüber hinaus können die Ergebnisse so verwaltet werden, dass Asoft so weit wie möglich mit Ahard übereinstimmt, indem der Verlust minimiert wird.
  • 3 zeigt eine Visualisierung des weichen Alignments 300, zusammen mit einer Beta-Binomial-Prior-Visualisierung 302, einem weichen Alignment mit Prior-Visualisierung 304 und einem harten Alignment 306. In diesen Beispielen werden Mel-Frames auf einer x-Achse 308 und Text-Token auf einer y-Achse 310 repräsentiert. Das weiche Alignment 300 zeigt eine Vielzahl verschiedener möglicher Alignments über einen bestimmten Zeitraum, wobei die wahrscheinlichsten Alignments als hellere Schattierung in der Nähe der Ecken (z.B. eine linke untere Ecke und eine rechte obere Ecke) dargestellt werden, die einer Start- und Endzeit für den Audioclip entsprechen. Die Applikation des Prior 312 ist in der Visualisierung 302 dargestellt, wobei der Prior 312 eine Zigarrenform hat (z.B. eine breitere Mitte als die Ränder) und sich im Wesentlichen entlang einer Diagonale von unten links nach oben rechts erstreckt. Wie bereits erwähnt, kann diese Konfiguration eine Beschränkung des Alignments an Teilen ermöglichen, die wahrscheinlich ausgerichtet sind, wie z.B. der Anfang (unten links) und das Ende (oben rechts), wodurch die Genauigkeit verbessert werden kann. Der Prior 312 kann eine Grenze anwenden, um das Sampeln auf einen höchstwahrscheinlichen Teil der Verteilung zu begrenzen, wie in der Visualisierung 304 gezeigt, wo das weiche Alignment verbessert wird, was durch die hellere Schattierung entlang der Diagonale, die durch den Prior 312 repräsentiert wird, dargestellt werden kann. Die Visualisierung 306 zeigt ein noch besseres Alignment, das im Wesentlichen dem Winkel und der Größe des Priors 312 entspricht. Dementsprechend kann die synthetisierte Sprache das gemäß dem Prior entwickelte Alignment verwenden, um zu bestimmen, wie die gesampelten Phonemdauem anzuwenden sind, um die synthetisierte Sprache zu generieren.
  • Ein Beispiel für eine Phonemdauer-Verteilung 400 ist in 4A dargestellt. In diesem Beispiel sind die Phoneme dargestellt, die die Welt „Klima“ bilden. Wie gezeigt, repräsentiert die x-Achse 402 die Phoneme 404, die das Wort „Klima“ bilden, die in dieser Instanz „k“, „1“, „ayi“, „m“, „ahd“ und „t“ entsprechen. Jedes dieser Phoneme 404A-404F enthält einen entsprechenden Satz von Verteilungen 406A-406F, die einer Dauer entsprechen, die auf der y-Achse 408 repräsentiert ist. Diese Verteilungen können auf der Grundlage von Auswertungen einer Reihe von Sprechern, die das Wort „Klima“ sagen, generiert werden, um zu bestimmen, wie lange jedes Phonem zum Sprechen benötigt. Wie gezeigt, kann jedes der Phoneme 404A-404F eine leicht unterschiedliche Dauer haben, so dass der Versuch, ein Alignment zwischen Text und Sprache unter Verwendung einer festen Dauer zu erzwingen, zu einer unnatürlich klingenden Audioausgabe führt. Das heißt, die Dauer von „ayi“ kann etwa doppelt so lang sein wie „k“, und eine feste Dauer für jedes Phonem würde entweder zu einer Pause oder Verzögerung nach „k“ oder zu einem Abschneiden oder einer überstürzten Reaktion von „ayi“ führen. Wie bereits erwähnt, können verschiedene Ausführungsbeispiele der vorliegenden Offenbarung eine verbesserte Vielfalt ermöglichen, indem Samples über verschiedene Verteilungen für verschiedene Phoneme verteilt werden. In diesem Beispiel hat das Phonem 404A, das dem „k“ entspricht, drei verschiedene Verteilungen 406A (z.B. eine Reihe von Verteilungen, die leicht unterschiedliche Dauern haben). Dementsprechend kann bei der Inferenzierung eine der Verteilungen ausgewählt werden und innerhalb dieser Verteilung kann eine Dauer ausgewählt werden. In einem anderen Beispiel kann unter Verwendung eines ähnlichen Klangs eine andere Verteilung und Dauer ausgewählt werden. Auf diese Weise wird eine verbesserte Vielfalt in der synthetisierten Sprache ermöglicht, indem bei der Inferenz verschiedene Phonemdauern zur Verfügung gestellt werden oder zumindest eine Wahrscheinlichkeit besteht, dass eine andere Dauer ausgewählt wird.
  • In 4B ist eine Tonhöhenverteilung 420 dargestellt, die weiter verwendet werden kann, um eine verbesserte Diversität in Bezug auf synthetische Sprache zur Verfügung zu stellen, wie hier beschrieben. Wie dargestellt, entspricht die x-Achse 422 der Zeit und die y-Achse 424 der relativen Tonhöhe. In diesem Beispiel kann die Verteilung 420 durch die Auswertung einer Gruppe von Sätzen oder Wörtern berechnet werden, z. B. während einer oder mehrerer Trainingsphasen. Während der Inferenzierung kann auch die Tonhöhe aus der Verteilung 420 gesampelt werden, um eine weitere Vielfalt in der synthetisierten Sprache zur Verfügung zu stellen. Das heißt, dass verschiedene Versuche, das gleiche Wort zu synthetisieren, zu einer Reihe unterschiedlicher Ergebnisse führen können, bei denen eine andere Tonhöhe dargestellt wird. In weiterer Kombination mit der Auswahl der Phonemdauer in 4A kann dasselbe Wort synthetisiert werden, während es anders klingt, z. B. von einem völlig anderen Sprecher.
  • In 5 ist ein System für synthetische Sprache 500 dargestellt, das eine oder mehrere der zuvor hier beschriebenen Komponenten enthalten kann. Es sollte beachtet werden, dass die Komponenten zur Veranschaulichung gruppiert werden können, aber dass ein oder mehrere Systeme in verschiedene Komponenten des Systems 500 integriert oder mit ihnen verwendet werden können. Weiterhin können ein oder mehrere Systeme die Architektur eines oder mehrerer maschineller Lernsysteme nutzen oder anderweitig gemeinsam nutzen. Dementsprechend können verschiedene Komponenten als ein separates Modul oder System basierend auf einer oder mehreren Funktionen beschrieben werden, können aber auch Teil eines einzigen integrierten Systems sein. In diesem Beispiel kann ein TTS-System 502 verwendet werden, um synthetische Sprache zu generieren, die zumindest teilweise auf einer Texteingabe 504 und einem Sprechervektor 506 basiert. In mindestens einem Ausführungsbeispiel enthält der Sprechervektor 506 eine oder mehrere Sprechereigenschaften, wie z. B. eine gewünschte Tonhöhe, Energie, Klangfarbe, Akzent oder ähnliches. In verschiedenen Ausführungsbeispielen kann der Sprechervektor 506 Gewichtungseigenschaften enthalten, die verschiedenen Teilen der Sprache entsprechen, die auf die synthetisch generierte Sprache angewendet werden können. Weiterhin kann der Sprechervektor 506 eine einstellbare Komponente sein, um neben anderen Merkmalen eine Sprachumwandlung zu ermöglichen. Weiterhin kann in mindestens einem Ausführungsbeispiel der Sprechervektor 506 aus einer Verteilung oder aus einer Datenbank von Sprechervektoren ausgewählt werden. Darüber hinaus können in mindestens einem Ausführungsbeispiel verschiedene Komponenten des Sprechervektors 506 gesampelt oder auf andere Weise aus einer Verteilung gewonnen werden.
  • In diesem Beispiel werden der Eingabetext 504 und der Sprechervektor 506 als Eingabe für das TTS-System 502 zur Verfügung gestellt, wobei der Eingabetext 504 ausgewertet werden kann, um zumindest teilweise eine Dauer zu bestimmen. Zum Beispiel kann ein Dauermodul 508 (z.B. ein Dauersystem) verwendet werden, um über eine oder mehrere Verteilungen zu samplen, um entsprechende Dauern für individuelle Phoneme zu bestimmen, die den Eingabetext 504 bilden. Wie bereits erwähnt, können Trainingsdaten verwendet werden, um Phonemverteilungen zu generieren, und individuelle Phoneme, die den Eingabetext 504 bilden, können aus den Verteilungen gesampelt werden, um entsprechende Längen zu bestimmen. In mindestens einem Ausführungsbeispiel können die Längen jedes Mal, wenn ein Phonem ausgewertet wird, unterschiedlich sein, was die Vielfalt in der Ausgabe der synthetisierten Sprache verbessert. Die Bestimmung der Dauer kann dann während des Alignments verwendet werden, wie hier beschrieben.
  • Weiter dargestellt sind Tonhöhen- und Energiemodule 510, 512, die verwendet werden können, um entsprechende Verteilungen zu samplen, um Tonhöhe (z.B. Grundfrequenz) und Energie (z.B. Amplitude) für verschiedene Phoneme zu erhalten, die den Eingabetext 504 bilden. In mindestens einem Ausführungsbeispiel kann zumindest ein Teil der Tonhöhe und Energie zumindest teilweise durch den Sprechervektor 506 bestimmt werden. Zum Beispiel kann der Sprechervektor 506 Gewichte zur Verfügung stellen, um Tonhöhe und Energie zu beeinflussen. In bestimmten Ausführungsbeispielen können Tonhöhe und Energie durch den Sprechervektor 506 bestimmt werden, z. B. durch einen gezielten Versuch der Sprachumwandlung. In verschiedenen Ausführungsbeispielen können die Verteilungen für Dauer, Energie und Tonhöhe in einem Verteilungsdatenspeicher 514 gespeichert werden, auf den bei der Inferenzierung zugegriffen werden kann. Wie man sieht, können die Verteilungen basierend auf der Sprache oder den Alphabeten variieren und darüber hinaus unter Verwendung eines oder mehrerer Trainingsverfahren aktualisiert werden. Während Dauer, Tonhöhe und Energie als Komponenten beschrieben werden können, die für das Sampling verwendet werden, können auch verschiedene andere Datenpunkte und Verteilungen für das Sampling verwendet werden. So können beispielsweise auch verschiedene Merkmale, die mit der Prosodie assoziiert sind, für das Sampeln verwendet werden, wie z. B. Betonung, Kontrast, Fokus oder ein oder mehrere Elemente, die nicht anderweitig in den grammatikalischen Entscheidungen eines Sprechers repräsentiert sind. Weiterhin können zusätzliche Faktoren wie Intonation, Betonung, Tempo, Rhythmus, Pausen und ähnliches in die Bewertung einfließen.
  • In mindestens einem Ausführungsbeispiel kann das Alignment zwischen dem Eingabetext und der Audioausgabe über ein oder mehrere Alignment-Module 516 durchgeführt werden, die verschiedene maschinelle Lernsysteme umfassen können, die teilweise rekursive Berechnungen über einen Satz von Wahrscheinlichkeiten ermöglichen, um ein höchstwahrscheinliches oder höchstwahrscheinliches Alignment zwischen verschiedenen Phonemen, die den Eingabetext 504 bilden, zu bestimmen. Die Alignment-Wahrscheinlichkeit zwischen einem Phonem (aus dem Text) und einem Sample (aus den Audio-Trainingsdaten) basiert auf der L2-Distanz, die als proportional zur Gaußschen Wahrscheinlichkeit interpretiert werden kann, wie hier erwähnt. In diesem Beispiel kann ein Audiolängenmodul 520 die Audiolänge zumindest teilweise basierend auf dem Eingabetext 504 und/oder der Dauer der Phoneme, die den Eingabetext bilden, bestimmen. Darüber hinaus kann ein Textlängenmodul 522 eine Textlänge bestimmen, die dann mit der Audiolänge korreliert und als eine Matrix dargestellt werden kann, die vom Matrixgenerierungsmodul 524 generiert werden kann. In mindestens einem Ausführungsbeispiel kann das Matrixgenerierungsmodul 524 verwendet werden, um eine Matrix potenzieller Phonemdauern in Bezug auf ihre Position zu generieren, und dann kann das Prior-Modul 518 das Prior auf die Matrix anwenden, um die Auswertung auf eine wahrscheinlichste Position zu begrenzen oder anderweitig zu beschränken. Als Beispiel kann ein zigarrenförmiger Prior aus einer Beta-Binomialverteilung konstruiert werden, wie in Gleichung (6) gezeigt: P ( m e l ,   t e x t ,   a l i g n m e n t ) = P ( m e l ,  text n | a l i g n m e n t ) P ( a l i g n m e n t ) ,
    Figure DE102022125316A1_0007
  • wobei P(alignment) ein betabinomialer zigarrenförmiger Prior ist und P(mel, text | alignment) der L2-Abstand zwischen dem Mel-Sample zum Zeitpunkt t und dem n-ten Textphonem in der Sequenz ist. Wie bereits erwähnt, kann der Prior Grenzen enthalten und an einer Diagonale positioniert sein, die sich von einer linken unteren Ecke zu einer rechten oberen Ecke erstreckt. Der Prior kann einstellbar sein, so dass auch andere Grenzen verwendet werden können. Dementsprechend kann ein Alignment zwischen dem eingegebenen Text 504 und einer Audiodauer generiert werden.
  • In mindestens einem Ausführungsbeispiel kann ein Audiogenerierungsmodul 526 eine Audioausgabe generieren, die zumindest teilweise auf dem Alignment und dem Eingabetext 504 basiert, neben anderen Merkmalen wie dem Sprechervektor 506 und/oder der Tonhöhe, Energie und dergleichen. In verschiedenen Ausführungsbeispielen kann das Generieren von Audiosignalen aufgrund des Samplings aus verschiedenen Verteilungen bei der Inferenz eine verbesserte Diversität aufweisen, die unterschiedliche Phonemdauern verändern oder modifizieren kann, was zu unterschiedlichen Alignments und damit zu einer unterschiedlichen Sprachausgabe führen kann. Weiterhin können Änderungen des Samples in der Tonhöhe oder Energie die Diversität der Ausgabe weiter verbessern.
  • Verschiedene Ausführungsbeispiele können auch ein oder mehrere Trainingssysteme 528 umfassen, die das Generieren von synthetischen Trainingsdaten zur Verwendung bei der Verbesserung des TTS-Systems 502 ermöglichen können. In verschiedenen Ausführungsbeispielen kann das Trainingssystem 528 eine verteilungsbewusste Augmentation ermöglichen, bei der synthetische Trainingsinformationen generiert, beim Training verwendet und dann beim Inferenzieren entfernt werden können. Beispielsweise kann eine synthetische Spracherzeugung 530 Samples aus einem Sample-Datenspeicher 532 erhalten und eine oder mehrere Eigenschaften der Sprache modifizieren, wie z. B. die Änderung einer Tonhöhe oder einer Energie oder die Modifizierung verschiedener Phonemlängen, neben anderen Möglichkeiten. Diese synthetische Sprache kann markiert oder anderweitig identifiziert werden, indem ein Markierungsmodul 534 verwendet wird, das der synthetischen Sprache Informationen, wie z. B. Metadaten, zur späteren Identifizierung hinzufügen kann. Diese Identifizierung kann auf die gesamte synthetische Sprache angewandt werden, wobei die synthetische Sprache im Vergleich zu den mit Grundwahrheit trainierten Daten als „schmutzig“ oder anderweitig „unsauber“ gelten kann. In anderen Ausführungsbeispielen können eine oder mehrere Eigenschaften ausgewertet werden, um zu bestimmen, ob die Daten als sauber oder unsauber gelten, z. B. durch Identifizierung eines oder mehrerer Merkmale zum Vergleich mit einem Schwellenwert. Ein Verteilungsgenerator 536 kann dann eine oder mehrere Verteilungen modifizieren oder generieren, indem er Informationen aus der synthetischen Sprache verwendet. Diese generierten Verteilungen können dann zu Trainingszwecken verwendet werden, aber während der Inferenz kann die synthetische Sprache identifiziert werden, z. B. unter Verwendung der Markierungen, und dann entfernt werden. Auf diese Weise können zusätzliche Trainingsdaten zur Verbesserung des Modells generiert werden, aber bei der Inferenz werden nur Daten, die die Grundwahrheit bilden, zur Generierung von synthetischer Sprache als Reaktion auf die Eingabe des Benutzers verwendet.
  • 6A zeigt ein Beispielverfahren 600 zum Generieren synthetischer Sprache. Es sollte verstanden werden, dass es für dieses und andere hier vorgestellte Verfahren zusätzliche, weniger oder alternative Schritte geben kann, die in ähnlicher oder alternativer Reihenfolge oder zumindest teilweise parallel im Rahmen verschiedener Ausführungsbeispiele durchgeführt werden, sofern nicht ausdrücklich anders angegeben. In diesem Beispiel wird eine Vielzahl von Audiosegmenten empfangen 602. Die Audiosegmente können zumindest einen Teil eines Trainingsdatensatzes bilden, der ausgewertet wird, um verschiedene Aspekte verschiedener Teile der Sprache zu bestimmen. In verschiedenen Ausführungsbeispielen können die Audiosegmente einem oder mehreren Vorverarbeitungs- oder Verarbeitungsverfahren unterzogen werden, um verschiedene Teile des Audiosegments zu extrahieren, z. B. wortbildende Phoneme, Tonhöhe, Energie und Ähnliches. In mindestens einem Ausführungsbeispiel werden aus der Vielzahl der Audiosegmente 604 Phonemdauern, Phonemtonhöhen und Phonemenergien bestimmt. Die aus der Vielzahl der Phoneme extrahierten Informationen können dann verwendet werden, um eine oder mehrere Verteilungen zu generieren, die auf bestimmte Merkmale in den Audiosegmenten hinweisen. Zum Beispiel können Phonemdauern verwendet werden, um eine erste Verteilung 606 zu generieren, Phonemtonhöhen können verwendet werden, um eine zweite Verteilung 608 zu generieren, und Phonemenergien können verwendet werden, um eine dritte Verteilung 610 zu generieren. Es sollte gewürdigt werden, dass zusätzliche Verteilungen zur Erfassung anderer Teile der Sprache oder Merkmale der Audiosegmente ebenfalls generiert werden können.
  • In verschiedenen Ausführungsbeispielen können die Verteilungen verwendet werden, um synthetische Sprache zu generieren, z. B. assoziiert mit einer Konversations-KI. Ein System kann eine Texteingabe empfangen, die als eine Textsequenz repräsentiert wird, und ein Alignment zwischen der Textsequenz und einer Audiolänge 612 bestimmen. Das Alignment kann zumindest teilweise auf der ersten Verteilung basieren, die verschiedene Phoneme, die die Texteingabe bilden, mit ihren jeweiligen Dauern korreliert. In verschiedenen Ausführungsbeispielen werden die Verteilungen für die jeweiligen Phoneme gesampelt, um eine Phonemdauer auszuwählen. Man sollte sich darüber im Klaren sein, dass diese Art des probabilistischen Samplings die Vielfalt der generierten synthetischen Sprache verbessern kann, da durch das Sampling bei der Inferenzierung dieselbe Texteingabe beispielsweise aufgrund von Unterschieden in der Phonemdauer und anderen Faktoren als unterschiedliche Audioausgabe präsentiert werden kann. Dementsprechend kann synthetisierte Sprache zumindest teilweise basierend auf dem Alignment, der zweiten Verteilung und der dritten Verteilung 614 generiert werden. Darüber hinaus können, wie oben erwähnt, in verschiedenen Ausführungsbeispielen auch eine oder mehrere zusätzliche Verteilungen verwendet werden, um die synthetisierte Sprache zu generieren.
  • 6B zeigt ein Beispielverfahren 620 zum Generieren von synthetischer Sprache. In diesem Beispiel werden die jeweiligen Alignments zwischen dem Text einer Vielzahl von Audiosegmenten und einer Dauer der Vielzahl von Audiosegmenten bestimmt 622. Zum Beispiel kann eine Vielzahl von Audiosegmenten Trainingsinformationen entsprechen, die bestimmt werden, um eine Verteilung von Phonemlängen für verschiedene Wörter oder Phrasen zu bestimmen. Es kann eine Alignment-Verteilung generiert werden, die zumindest zum Teil auf den jeweiligen Alignments 624 basiert. Die Alignment-Verteilung kann in Form einer Matrix dargestellt werden, die eine probabilistische Wahrscheinlichkeit darstellt, dass ein bestimmtes Phonem mit einem bestimmten Teil eines Text-Samples übereinstimmen wird. In mindestens einem Ausführungsbeispiel werden ein oder mehrere Vektoren aus der Alignment-Verteilung bestimmt 626. Der eine oder die mehreren Vektoren können einer oder mehreren Charakteristiken des Sprechers entsprechen.
  • Wie bereits erwähnt, können verschiedene Ausführungsbeispiele verwendet werden, um synthetische Sprache zu generieren, wobei eine Textsequenz 628 empfangen wird. Die Textsequenz kann von einem Benutzer eingegeben oder aus einem Bild extrahiert werden, neben anderen Optionen. Ein synthetischer Audioclip kann zumindest teilweise basierend auf der Textsequenz und dem einen oder mehreren Vektoren generiert werden, wobei der synthetische Audioclip der Textsequenz 630 entspricht.
  • 6C zeigt ein Beispielverfahren 650 zum Trainieren eines TTS-Systems. In diesem Beispiel werden ein oder mehrere synthetische Trainingsclips generiert 652. Die synthetischen Trainingsclips können zumindest teilweise basierend auf einem oder mehreren Sample-Audiosegmenten generiert werden, die unter anderem Grundwahrheits-Trainingsdaten entsprechen können, die für das Training des TTS-Systems zur Verfügung gestellt werden. In mindestens einem Ausführungsbeispiel modifizieren die synthetischen Trainingsclips eine oder mehrere Eigenschaften der Sample-Audiosegmente, wie z. B. die Änderung der Tonhöhe oder der Geschwindigkeit der Sprache. Die synthetischen Trainingsclips können markiert werden 654, z. B. durch Identifizierung ihrer Orte innerhalb einer Verteilung oder durch Assoziierung von Metadaten mit den Clips. Ein oder mehrere maschinelle Lernsysteme können dann unter Verwendung zumindest einiger der Sample-Audiosegmente und zumindest einiger der einen oder mehreren synthetischen Trainingsclips 656 trainiert werden. Die synthetischen Trainingsclips können ein größeres Trainingsset ermöglichen, was spätere Inferenzen verbessern kann.
  • In mindestens einem Ausführungsbeispiel wird das trainierte maschinelle Lernsystem verwendet, um synthetische Audioclips zu generieren. Es kann eine Anfrage zum Generieren synthetischer Sprache 658 eingehen. Diese Sprache kann durch das Verarbeiten einer Texteingabe zum Verwenden des TTS-Systems generiert werden, das Teile der Sprache mit unterschiedlichen Dauern alignieren kann, um die Audioausgabe zu generieren. In mindestens einem Ausführungsbeispiel werden ein oder mehrere Orte innerhalb einer mit synthetischen Trainingsclips assoziierten Verteilung identifiziert 660, und diese Orte werden bei der Generierung der synthetischen Sprache 662 vermieden oder nicht gesampelt. Auf diese Weise können synthetische Trainingsclips verwendet werden, um das Modellieren zu verbessern, indem ein Datensatz vergrößert wird, aber sie können nicht während des Inferenzierens verwendet werden.
  • DATENZENTRUM
  • 7 zeigt ein beispielhaftes Datenzentrum 700, bei dem zumindest ein Ausführungsbeispiel verwendet werden kann. In mindestens einem Ausführungsbeispiel umfasst das Datenzentrum 700 eine Datenzentrumsinfrastrukturschicht 710, eine Framework-Schicht 720, eine Softwareschicht 730 und eine Applikationsschicht 740.
  • In mindestens einer Ausführungsbeispiel, wie in 7 gezeigt, kann die Datenzentrum-Infrastrukturschicht 710 einen Ressourcen-Orchestrator 712, gruppierte Rechner-Ressourcen 714 und Knoten-Rechner-Ressourcen („Knoten C.R.s“) 716(1)-716(N) umfassen, wobei „N“ eine beliebige ganze, positive Zahl repräsentiert. In mindestens einem Ausführungsbeispiel können die Knoten-C.R.s 716(1)-716(N) eine beliebige Anzahl von zentralen Verarbeitungseinheiten („CPUs“) oder anderen Geräten (einschließlich Beschleunigern, feldprogrammierbaren Arrays (FPGAs), Grafikprozessoren usw.), Speichergeräten (z.B., dynamischer Festwertspeicher), Speichergeräte (z.B. Solid-State- oder Festplattenlaufwerke), Netzwerk-E/A-Geräte, Netzwerk-Switches, virtuelle Maschinen („VMs“), Stromversorgungsmodule und Kühlmodule, usw. In mindestens einem Ausführungsbeispiel kann es sich bei einem oder mehreren Knoten-C.R.s unter den Knoten-C.R.s 716(1)-716(N) um einen Server handeln, der über eine oder mehrere der oben genannten Rechenressourcen verfügt.
  • In mindestens einem Ausführungsbeispiel können die gruppierten Rechenressourcen 714 separate Gruppierungen von Knoten-C.R.s umfassen, die in einem oder mehreren Racks (nicht gezeigt) untergebracht sind, oder viele Racks, die in Datenzentren an verschiedenen geografischen Orten untergebracht sind (ebenfalls nicht gezeigt). Getrennte Gruppierungen von Knoten-C.R.s innerhalb der gruppierten Rechenressourcen 714 können gruppierte Rechen-, Netzwerk-, Arbeitsspeicher- oder Speicherressourcen umfassen, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen werden können. In mindestens einem Ausführungsbeispiel können mehrere Knoten-C.R.s mit CPUs oder Prozessoren in einem oder mehreren Racks gruppiert werden, um Rechenressourcen zur Verfügung zu stellen, die eine oder mehrere Arbeitslasten unterstützen. In mindestens einem Ausführungsbeispiel können ein oder mehrere Racks auch eine beliebige Anzahl von Stromversorgungsmodulen, Kühlmodulen und Netzwerk Switches in beliebiger Kombination enthalten.
  • In mindestens einem Ausführungsbeispiel kann der Ressourcen-Orchestrator 712 einen oder mehrere Knoten C.R.s 716(1)-716(N) und/oder gruppierte Rechen-Ressourcen 714 konfigurieren oder anderweitig steuern. In mindestens einem Ausführungsbeispiel kann der Ressourcen-Orchestrator 712 eine Verwaltung für die Software-Design-Infrastruktur („SDI“) des Datenzentrums 700 umfassen. In mindestens einem Ausführungsbeispiel kann der Ressourcen-Orchestrator Hardware, Software oder eine Kombination davon umfassen.
  • In mindestens einem Ausführungsbeispiel, wie in 7 gezeigt, umfasst die Framework-Schicht 720 einen Planer für Aufgaben 722, einen Verwalter für Konfigurationen 724, einen Verwalter für Ressourcen 726 und ein verteiltes Dateisystem 728. In mindestens einem Ausführungsbeispiel kann die Framework-Schicht 720 ein Framework zur Unterstützung der Software 732 der Software-Schicht 730 und/oder einer oder mehrerer Applikation(en) 742 der Applikationsschicht 740 enthalten. In mindestens einem Ausführungsbeispiel können die Software 732 oder die Applikation(en) 742 jeweils webbasierte Dienstsoftware oder Applikationen umfassen, wie sie beispielsweise von Amazon Web Services, Google Cloud und Microsoft Azure zur Verfügung gestellt werden. In mindestens einem Ausführungsbeispiel kann es sich bei der Applikationsschicht 720 um eine Art von freiem und quelloffenem Software-Webapplikations-Framework wie Apache SparkTM (im Folgenden „Spark“) handeln, das ein verteiltes Dateisystem 728 für die Verarbeitung großer Datenmengen (z.B. „Big Data“) nutzen kann, ohne darauf beschränkt zu sein. In mindestens einem Ausführungsbeispiel kann der Planer für Aufgaben 722 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Datenzentrums 700 unterstützt werden. In mindestens einem Ausführungsbeispiel kann der Konfigurationsverwalter 724 in der Lage sein, verschiedene Schichten wie die Softwareschicht 730 und die Framework-Schicht 720 einschließlich Spark und das verteilte Dateisystem 728 zum Verarbeiten großer Datenmengen zu konfigurieren. In mindestens einem Ausführungsbeispiel kann der Ressourcenverwalter 726 in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die dem verteilten Dateisystem 728 und dem Planer für Aufgaben 722 zugeordnet oder zugewiesen sind. In mindestens einem Ausführungsbeispiel können die geclusterten oder gruppierten Rechenressourcen die gruppierten Rechenressourcen 714 in der Schicht 710 der Datenzentrumsinfrastruktur umfassen. In mindestens einem Ausführungsbeispiel kann der Verwalter 726 sich mit dem Ressourcen-Orchestrator 712 abstimmen, um diese zugeordneten oder zugewiesenen Rechenressourcen zu verwalten.
  • In mindestens einem Ausführungsbeispiel kann die in der Softwareschicht 730 enthaltene Software 732 Software enthalten, die von mindestens Teilen der Knoten C.R.s 716(1)-716(N), gruppierten Rechnersystemen 714 und/oder verteilten Dateisystemen 728 der Framework-Schicht 720 verwendet wird. Die eine oder mehreren Arten von Software können unter anderem Internet-Suchsoftware, E-Mail-Virenscan-Software, Datenbanksoftware und Software für den Strom von Videoinhalten umfassen.
  • In mindestens einem Ausführungsbeispiel kann (können) die in der Applikationsschicht 740 enthaltene(n) Applikation(en) 742 eine oder mehrere Arten von Applikationen umfassen, die zumindest von Teilen der Knoten C.R.s 716(1)-716(N), der gruppierten Rechenressourcen 714 und/oder des verteilten Dateisystems 728 der Framework-Schicht 720 verwendet werden. Eine oder mehrere Arten von Applikationen können eine beliebige Anzahl einer Genomanwendung, eines kognitiven Rechners und einer maschinellen Lernapplikation umfassen, sind aber nicht darauf beschränkt, einschließlich Trainings- oder Inferenzierungssoftware, Framework-Software für maschinelles Lernen (z.B. PyTorch, TensorFlow, Caffe, etc.) oder andere maschinelle Lernapplikationen, die in Verbindung mit einer oder mehreren Ausführungsbeispielen verwendet werden.
  • In mindestens einem Ausführungsbeispiel kann ein beliebiger Konfigurationsverwalter 724, Ressourcenverwalter 726 und Ressourcen-Orchestrator 712 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen basierend auf einer beliebigen Menge und Art von Daten implementieren, die auf jede technisch machbare Weise erfasst werden. In mindestens einem Ausführungsbeispiel können selbstmodifizierende Aktionen einen Betreiber eines Datenzentrums 700 davon entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Teile eines Datenzentrums zu vermeiden.
  • In mindestens einem Ausführungsbeispiel kann das Datenzentrum 700 Werkzeuge, Dienste, Software oder andere Ressourcen enthalten, um ein oder mehrere Modelle für maschinelles Lernen zu trainieren oder Informationen unter Verwendung eines oder mehrerer Modelle für maschinelles Lernen gemäß einem oder mehreren hierin beschriebenen Ausführungsbeispielen vorherzusagen oder zu inferenzieren. Beispielsweise kann in mindestens einem Ausführungsbeispiel ein Modell für maschinelles Lernen trainiert werden, indem Gewichtsparameter gemäß einer Architektur eines neuronalen Netzwerks unter Verwendung von Software und Rechenressourcen berechnet werden, die oben in Bezug auf das Datenzentrum 700 beschrieben wurden. In mindestens einem Ausführungsbeispiel können trainierte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzwerken entsprechen, verwendet werden, um Informationen zu inferenzieren oder vorherzusagen, wobei die oben beschriebenen Ressourcen in Bezug auf das Datenzentrum 700 verwendet werden, indem Gewichtsparameter verwendet werden, die durch eine oder mehrere hierin beschriebene Trainingstechniken berechnet werden.
  • In mindestens einem Ausführungsbeispiel kann das Datenzentrum CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um das Training und/oder Inferenzieren unter Verwendung der oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der oben beschriebenen Software- und/oder Hardwareressourcen als Dienst konfiguriert werden, um es Benutzern zu ermöglichen, Informationen zu trainieren oder zu inferenzieren, wie z. B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Solche Komponenten können zum Generieren synthetischer Sprache verwendet werden.
  • COMPUTERSYSTEME
  • 8 ist ein Blockdiagramm, das ein beispielhaftes Rechnersystem zeigt, das ein System mit verbundenen Geräten und Komponenten, ein System-on-a-Chip (SOC) oder eine Kombination davon 800 sein kann, das gemäß mindestens einem Ausführungsbeispiel mit einem Prozessor gebildet wird, der Ausführungseinheiten zur Ausführung einer Anweisung enthalten kann. In mindestens einer Ausführungsform kann das Rechnersystem 800 ohne Einschränkung eine Komponente, wie z. B. einen Prozessor 802, enthalten, um Ausführungseinheiten einschließlich Logik zur Durchführung von Algorithmen zum Verarbeiten von Daten gemäß der vorliegenden Offenbarung, wie in der hierin beschriebenen Ausführungsform, einzusetzen. In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 Prozessoren wie die PENTIUM®-Prozessorfamilie, XeonTM-, Itanium®-, XScaleTM- und/oder StrongARMTM-, Intel® Core™- oder Intel® Nervana™-Mikroprozessoren verwenden, die von der Intel Corporation in Santa Clara, Kalifornien, erhältlich sind, obwohl auch andere Systeme (einschließlich PCs mit anderen Mikroprozessoren, technische Workstations, Set-Top-Boxen und dergleichen) verwendet werden können. In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 eine Version des WINDOWS-Betriebssystems ausführen, das von der Microsoft Corporation in Redmond, Washington, erhältlich ist, obwohl auch andere Betriebssysteme (z. B. UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen verwendet werden können.
  • Ausführungsbeispiele können in anderen Geräten wie Handheld-Geräten und eingebetteten Applikationen verwendet werden. Einige Beispiele für tragbare Geräte sind Mobiltelefone, Internet-Protokoll-Geräte, Digitalkameras, persönliche digitale Assistenten („PDAs“) und Handheld-PCs. In mindestens einem Ausführungsbeispiel können eingebettete Applikationen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), ein System auf einem Chip, Netzwerk-Rechner („NetPCs“), Netzwerk-Hubs, Wide Area Network („WAN“)-Switches oder jedes andere System umfassen, das gemäß mindestens einem Ausführungsbeispiel eine oder mehrere Anweisungen ausführen kann.
  • In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 ohne Einschränkung einen Prozessor 802 enthalten, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 808 enthalten kann, um ein Modelltraining für maschinelles Lernen und/oder Inferenzieren gemäß den hier beschriebenen Techniken durchzuführen. In mindestens einem Ausführungsbeispiel ist das Rechnersystem 800 ein Einzelprozessor-Desktop- oder -Serversystem, aber in einem anderen Ausführungsbeispiel kann das Rechnersystem 800 ein Multiprozessorsystem sein. In mindestens einem Ausführungsbeispiel kann der Rechner 802 ohne Einschränkung einen CISC-Mikroprozessor (Complex Instruction Set Computer), einen RISC-Mikroprozessor (Reduced Instruction Set Computing), einen VLIW-Mikroprozessor (Very Long Instruction Word), einen Prozessor, der eine Kombination von Anweisungssätzen implementiert, oder ein beliebiges anderes Gerät, wie z. B. einen digitalen Signalprozessor, umfassen. In mindestens einem Ausführungsbeispiel kann der Prozessor 802 mit einem Prozessorbus 810 gekoppelt sein, der Datensignale zwischen dem Prozessor 802 und anderen Komponenten im Rechnersystem 800 übertragen kann.
  • In mindestens einem Ausführungsbeispiel kann der Prozessor 802 ohne Einschränkung einen internen Level 1 („L1") Cache-Speicher („Cache“) 804 enthalten. In mindestens einem Ausführungsbeispiel kann der Prozessor 802 einen einzigen internen Cache oder mehrere Ebenen von internen Caches aufweisen. In mindestens einem Ausführungsbeispiel kann sich der Cache-Speicher außerhalb des Prozessors 802 befinden. Andere Ausführungsbeispiele können auch eine Kombination aus internen und externen Caches enthalten, abhängig von der jeweiligen Implementierung und den Anforderungen. In mindestens einem Ausführungsbeispiel kann die Registerdatei 806 verschiedene Datentypen in verschiedenen Registern speichern, darunter, ohne Einschränkung, Ganzzahlregister, Gleitkommaregister, Statusregister und Anweisungszeigerregister.
  • In mindestens einem Ausführungsbeispiel befindet sich die Ausführungseinheit 808, einschließlich, ohne Einschränkung, der Logik zur Durchführung von Ganzzahl- und Gleitkommaoperationen, ebenfalls im Prozessor 802. In mindestens einem Ausführungsbeispiel kann der Prozessor 802 auch einen Microcode („ucode“) Festwertspeicher („ROM“) enthalten, der Microcode für bestimmte Makroanweisungen speichert. In mindestens einem Ausführungsbeispiel kann die Ausführungseinheit 808 eine Logik zur Handhabung eines gepackten Anweisungssatzes 809 enthalten. In mindestens einem Ausführungsbeispiel können durch die Aufnahme des gepackten Befehlssatzes 809 in einen Befehlssatz eines Mehrzweckprozessors 802 zusammen mit assoziierten Schaltkreisen zur Ausführung von Befehlen Operationen, die von vielen Multimedia-Applikationen verwendet werden, unter Verwendung von gepackten Daten in einem Mehrzweckprozessor 802 durchgeführt werden. In mindestens einem Ausführungsbeispiel können viele Multimedia-Applikationen beschleunigt und effizienter ausgeführt werden, indem die volle Breite des Datenbusses eines Prozessors zur Durchführung von Operationen mit gepackten Daten verwendet wird, wodurch die Notwendigkeit entfällt, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen mit jeweils einem Datenelement durchzuführen.
  • In mindestens einem Ausführungsbeispiel kann die Ausführungseinheit 808 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikgeräten, DSPs und anderen Arten von Logikschaltungen verwendet werden. In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800, ohne Einschränkung, einen Speicher 820 enthalten. In mindestens einem Ausführungsbeispiel kann der Speicher 820 als dynamisches Gerät mit wahlfreiem Zugriff („DRAM“), als statisches Gerät mit wahlfreiem Zugriff („SRAM“), als Flash-Speicher oder als anderes Gerät implementiert sein. In mindestens einem Ausführungsbeispiel kann der Speicher 820 Anweisung(en) 819 und/oder Daten 821 speichern, die durch Datensignale repräsentiert werden, die vom Prozessor 802 ausgeführt werden können.
  • In mindestens einem Ausführungsbeispiel kann der Systemlogikchip mit dem Prozessorbus 810 und dem Speicher 820 gekoppelt sein. In mindestens einem Ausführungsbeispiel kann der Systemlogikchip ohne Einschränkung einen Memory Controller Hub („MCH“) 816 umfassen, und der Prozessor 802 kann mit dem MCH 816 über den Prozessorbus 810 kommunizieren. In mindestens einem Ausführungsbeispiel kann der MCH 816 einen Speicherpfad 818 mit hoher Bandbreite zum Speicher 820 für die Speicherung von Anweisungen und Daten sowie für die Speicherung von Grafikbefehlen, Daten und Texturen zur Verfügung stellen. In mindestens einem Ausführungsbeispiel kann der MCH 816 Datensignale zwischen dem Prozessor 802, dem Speicher 820 und anderen Komponenten des Rechnersystems 800 zu leiten und Datensignale zwischen dem Prozessorbus 810, dem Speicher 820 und einem System-E/A 822 zu überbrücken. In mindestens einem Ausführungsbeispiel kann der Systemlogikchip einen Grafikport zur Kopplung mit einem Grafikcontroller zur Verfügung stellen. In mindestens einem Ausführungsbeispiel kann der MCH 816 mit dem Speicher 820 über einen Speicherpfad 818 mit hoher Bandbreite gekoppelt sein, und die Grafik-/Videokarte 812 kann mit dem MCH 816 über eine Accelerated Graphics Port („AGP“)-Verbindung 814 gekoppelt sein.
  • In mindestens einem Ausführungsbeispiel kann das Rechnersystem 800 System-E/A 822 verwenden, bei dem es sich um einen proprietären Hub-Schnittstellenbus handelt, um MCH 816 mit dem I/O-Controller-Hub („ICH“) 830 zu koppeln. In mindestens einem Ausführungsbeispiel kann ICH 830 direkte Verbindungen zu einigen E/A-Geräten über einen lokalen E/A-Bus zur Verfügung stellen. In mindestens einem Ausführungsbeispiel kann der lokale E/A-Bus ohne Einschränkung einen Hochgeschwindigkeits-E/A-Bus zur Verbindung von Peripheriegeräten mit dem Speicher 820, dem Chipsatz und dem Prozessor 802 umfassen. Beispiele können ohne Einschränkung einen Audiocontroller 829, einen Firmware-Hub („Flash-BIOS“) 828, einen drahtlosen Transceiver 826, einen Datenspeicher 824, einen Legacy-E/A-Controller 823 mit Benutzereingabe- und Tastaturschnittstellen 825, einen seriellen Erweiterungsport 827, wie Universal Serial Bus („USB“), und einen Netzwerk-Controller 834 umfassen. Der Datenspeicher 824 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, ein CD-ROM-Gerät, ein Flash-Speichergerät oder ein anderes Massenspeichergerät umfassen.
  • In mindestens einer Ausführungsform zeigt 8 ein System, das miteinander verbundene Hardware-Geräte oder „Chips“ enthält, während in anderen Ausführungsbeispielen 8 ein beispielhaftes System on a Chip („SoC“) darstellen kann. In mindestens einem Ausführungsbeispiel können die Geräte mit proprietären Verbindungen, standardisierten Verbindungen (z.B. PCIe) oder einer Kombination davon verbunden sein. In mindestens einem Ausführungsbeispiel sind eine oder mehrere Komponenten des Rechnersystems 800 unter Verwendung von CXL-Verbindungen (Compute Express Link) miteinander verbunden.
  • Solche Komponenten können zum Generieren synthetischer Sprache verwendet werden.
  • 9 ist ein Blockdiagramm, das ein elektronisches Gerät 900 zur Verwendung eines Prozessors 910 gemäß mindestens einem Ausführungsbeispiel darstellt. In mindestens einem Ausführungsbeispiel kann das elektronische Gerät 900 beispielsweise und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, ein mobiles Gerät, ein Telefon, ein eingebetteter Rechner oder jedes andere geeignete elektronische Gerät sein.
  • In mindestens einem Ausführungsbeispiel kann das System 900 ohne Einschränkung einen Prozessor 910 enthalten, der kommunikativ mit einer beliebigen Anzahl oder Art von Komponenten, Peripheriegeräten, Modulen oder Geräten gekoppelt ist. In mindestens einem Ausführungsbeispiel ist der Prozessor 910 unter Verwendung eines Busses oder einer Schnittstelle gekoppelt, wie z.B. eines 1°C-Busses, eines System Management Busses („SMBus“), eines Low Pin Count (LPC)-Busses, eines Serial Peripheral Interface („SPI“), eines High Definition Audio („HDA“)-Busses, eines Serial Advance Technology Attachment („SATA“)-Busses, eines Universal Serial Bus („USB“) (Versionen 1, 2, 3) oder eines Universal Asynchronous Receiver/Transmitter („UART“)-Busses. In mindestens einem Ausführungsbeispiel zeigt 9 ein System, das miteinander verbundene Hardware-Geräte oder „Chips“ umfasst, während in anderen Ausführungsbeispielen 9 ein beispielhaftes System on a Chip („SoC“) darstellen kann. In mindestens einem Ausführungsbeispiel können die in 9 dargestellten Geräte über proprietäre Verbindungen, standardisierte Verbindungen (z.B. PCIe) oder eine Kombination davon miteinander verbunden sein. In mindestens einem Ausführungsbeispiel sind eine oder mehrere Komponenten von 9 unter Verwendung von CXL-Verbindungen (Compute Express Link Interconnects) miteinander verbunden.
  • In mindestens einem Ausführungsbeispiel kann 9 eine Anzeige 924, einen Touchscreen 925, ein Touchpad 930, eine Near Field Communications-Einheit („NFC“) 945, einen Sensor-Hub 940, einen Wärmesensor 946, einen Express-Chipsatz („EC“) 935, ein Trusted Platform Module („TPM“) 938, BIOS/Firmware/Flash-Speicher („BIOS, FW Flash“) 922, ein DSP 960, ein Laufwerk 920 wie eine Solid State Disk („SSD“) oder eine Festplatte („HDD“), eine drahtlose lokale Netzwerkeinheit („WLAN“) 950, eine Bluetooth-Einheit 952, eine drahtlose Wide Area Network-Einheit („WWAN“) 956, ein Global Positioning System (GPS) 955, eine Kamera („USB 3. 0-Kamera“) 954, wie z. B. eine USB 3.0-Kamera, und/oder eine Low Power Double Data Rate („LPDDR“)-Speichereinheit („LPDDR3“) 915, implementiert z. B. im LPDDR3-Standard. Diese Komponenten können jeweils auf jede geeignete Weise implementiert werden.
  • In mindestens einem Ausführungsbeispiel können andere Komponenten mit dem Prozessor 910 über die oben beschriebenen Komponenten kommunikativ gekoppelt sein. In mindestens einem Ausführungsbeispiel können ein Beschleunigungsmesser 941, ein Umgebungslichtsensor („ALS“) 942, ein Kompass 943 und ein Gyroskop 944 kommunikativ mit dem Sensor-Hub 940 gekoppelt sein. In mindestens einem Ausführungsbeispiel können ein Wärmesensor 939, ein Gebläse 937, eine Tastatur 946 und ein Touchpad 930 mit dem EC 935 kommunikativ gekoppelt sein. In mindestens einem Ausführungsbeispiel können Lautsprecher 963, Kopfhörer 964 und Mikrofon („mic“) 965 kommunikativ mit einer Audioeinheit („audio codec and dass d amp“) 962 gekoppelt sein, die ihrerseits kommunikativ mit dem DSP 960 gekoppelt sein kann. In mindestens einem Ausführungsbeispiel kann die Audioeinheit 964 beispielsweise und ohne Einschränkung einen Audiocodierer/-dekodierer („Codec“) und einen Verstärker der Klasse D umfassen. In mindestens einem Ausführungsbeispiel kann die SIM-Karte („SIM“) 957 mit der WWAN-Einheit 956 kommunikativ gekoppelt sein. In mindestens einem Ausführungsbeispiel können Komponenten wie die WLAN-Einheit 950 und die Bluetooth-Einheit 952 sowie die WWAN-Einheit 956 in einem Next Generation Form Factor („NGFF“) implementiert sein.
  • Solche Komponenten können zum Generieren von synthetischer Sprache verwendet werden.
  • 10 ist ein Blockdiagramm eines Verfahrens zum Verarbeiten, gemäß mindestens einem Ausführungsbeispiel. In mindestens einem Ausführungsbeispiel enthält das System 1000 einen oder mehrere Prozessoren 1002 und einen oder mehrere Grafikprozessoren 1008 und kann ein Einzelprozessor-Desktop-System, ein Multiprozessor-Workstation-System oder ein Serversystem oder Rechenzentrum mit einer großen Anzahl von gemeinsam oder getrennt verwalteten Prozessoren 1002 oder Prozessorkernen 1007 sein. In mindestens einem Ausführungsbeispiel ist das System 1000 eine Verarbeitungsplattform, die in einen integrierten System-on-a-Chip-Schaltkreis (SoC) zur Verwendung in mobilen, tragbaren oder eingebetteten Geräten integriert ist.
  • In mindestens einem Ausführungsbeispiel kann das System 1000 eine serverbasierte Spieleplattform, eine Cloud-Computing-Host-Plattform, eine virtualisierte Rechnerplattform, eine Spielkonsole, einschließlich einer Spiel- und Medienkonsole, eine mobile Spielkonsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole umfassen oder darin integriert sein. In mindestens einem Ausführungsbeispiel ist das System 1000 ein Mobiltelefon, ein Smartphone, ein Tablet-Rechengerät oder ein mobiles Internetgerät. In mindestens einem Ausführungsbeispiel kann das System 1000 zum Verarbeiten auch ein tragbares Gerät umfassen, mit diesem gekoppelt oder in ein solches integriert sein, wie z. B. ein tragbares Gerät mit einer intelligenten Uhr, einer intelligenten Brille, einem Augmented-Reality-Gerät, einem Edge-Gerät, einem Internet-der-Dinge-Gerät („IoT“) oder einem Virtual-Reality-Gerät. In mindestens einem Ausführungsbeispiel ist das Verarbeitungssystem 1000 ein Fernseh- oder Set-Top-Box-Gerät mit einem oder mehreren Prozessoren 1002 und einer grafischen Oberfläche, die von einem oder mehreren Grafikprozessoren 1008 generiert wird.
  • In mindestens einem Ausführungsbeispiel umfassen ein oder mehrere Prozessoren 1002 jeweils einen oder mehrere Prozessorkerne 1007 zum Verarbeiten von Anweisungen, die bei ihrer Ausführung Operationen für System- und Benutzersoftware durchführen. In mindestens einem Ausführungsbeispiel ist jeder von einem oder mehreren Prozessorkernen 1007 so konfiguriert, dass er einen bestimmten Anweisungssatz 1009 verarbeitet. In mindestens einem Ausführungsbeispiel kann der Anweisungssatz 1009 das Complex Instruction Set Computing (CISC), das Reduced Instruction Set Computing (RISC) oder das Rechnen über ein Very Long Instruction Word (VLIW) ermöglichen. In mindestens einem Ausführungsbeispiel können die Verarbeitungskerne 1007 jeweils einen anderen Befehlssatz 1009 verarbeiten, der Anweisungen enthalten kann, um die Emulation anderer Befehlssätze zu erleichtern. In mindestens einem Ausführungsbeispiel kann der Verarbeitungskem 1007 auch andere Geräte zum Verarbeiten enthalten, wie z. B. einen digitalen Signalprozessor (DSP).
  • In mindestens einem Ausführungsbeispiel enthält der Prozessor 1002 einen Cache-Speicher 1004. In mindestens einem Ausführungsbeispiel kann der Prozessor 1002 einen einzigen internen Cache-Speicher oder mehrere Ebenen von internen Cache-Speichern aufweisen. In mindestens einem Ausführungsbeispiel wird der Cache-Speicher von verschiedenen Komponenten des Prozessors 1002 gemeinsam genutzt. In mindestens einem Ausführungsbeispiel verwendet der Prozessor 1002 auch einen externen Cache (z.B. einen Level-3 (L3) Cache oder Last Level Cache (LLC)) (nicht gezeigt), der von den Prozessorkernen 1007 gemeinsam genutzt werden kann, indem bekannte Cache-Kohärenztechniken verwendet werden. In mindestens einem Ausführungsbeispiel ist zusätzlich eine Registerdatei 1006 im Prozessor 1002 enthalten, die verschiedene Arten von Registern zur Speicherung unterschiedlicher Datentypen (z.B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Anweisungszeigerregister) enthalten kann. In mindestens einem Ausführungsbeispiel kann die Registerdatei 1006 Allzweckregister oder andere Register enthalten.
  • In mindestens einem Ausführungsbeispiel ist/sind ein oder mehrere Prozessor(en) 1002 mit einem oder mehreren Schnittstellenbus(en) 1010 gekoppelt, um Kommunikationssignale wie Adress-, Daten- oder Steuersignale zwischen Prozessor 1002 und anderen Komponenten im System 1000 zu übertragen. In mindestens einem Ausführungsbeispiel kann der Schnittstellenbus 1010 ein Prozessorbus sein, wie z.B. eine Version eines Direct Media Interface (DMI)-Busses. In mindestens einem Ausführungsbeispiel ist die Schnittstelle 1010 nicht auf einen DMI-Bus beschränkt, sondern kann einen oder mehrere Peripheral Component Interconnect-Busse (z.B. PCI, PCI Express), Speicherbusse oder andere Arten von Schnittstellenbussen umfassen. In mindestens einem Ausführungsbeispiel umfassen der/die Prozessor(en) 1002 einen integrierten Speicher-Controller 1016 und einen Plattform-Controller-Hub 1030. In mindestens einem Ausführungsbeispiel erleichtert der Speicher-Controller 1016 die Kommunikation zwischen einem Speichergerät und anderen Komponenten des Systems 1000, während der Plattform-Controller-Hub (PCH) 1030 Verbindungen zu E/A-Geräten über einen lokalen E/A-Bus zur Verfügung stellt.
  • In mindestens einem Ausführungsbeispiel kann das Gerät 1020 ein Dynamic Random Access Memory (DRAM)-Gerät, ein Static Random Access Memory (SRAM)-Gerät, ein Flash-Speicher-Gerät, ein Phase-Change-Speicher-Gerät oder ein anderes Speichergerät mit geeigneter Leistung sein, das als Verfahrensspeicher dient. In mindestens einem Ausführungsbeispiel kann das Gerät 1020 als Systemspeicher für das System 1000 arbeiten, um Daten 1022 und Anweisungen 1021 zur Verwendung zu speichern, wenn ein oder mehrere Prozessoren 1002 eine Anwendung oder ein Verfahren ausführen. In mindestens einem Ausführungsbeispiel ist die Speichersteuerung 1016 auch mit einem optionalen externen Grafikprozessor 1012 gekoppelt, der mit einem oder mehreren Grafikprozessoren 1008 in den Prozessoren 1002 kommunizieren kann, um Grafik- und Medienoperationen durchzuführen. In mindestens einem Ausführungsbeispiel kann ein Anzeigegerät 1011 an den/die Prozessor(en) 1002 angeschlossen werden. In mindestens einem Ausführungsbeispiel kann das Anzeigegerät 1011 ein oder mehrere interne Anzeigegeräte, wie z.B. ein mobiles elektronisches Gerät oder ein Laptop-Gerät, oder ein externes Anzeigegerät, das über eine Anzeigeschnittstelle (z.B. DisplayPort usw.) angeschlossen ist, umfassen. In mindestens einem Ausführungsbeispiel kann das Gerät 1011 eine kopfgetragene Anzeige (HMD) wie eine stereoskopische Anzeigevorrichtung zur Verwendung in Virtual-Reality-Anwendungen (VR) oder Augmented-Reality-Anwendungen (AR) umfassen.
  • In mindestens einem Ausführungsbeispiel ermöglicht der Plattform-Controller-Hub 1030 die Verbindung von Peripheriegeräten mit dem Speichergerät 1020 und dem Prozessor 1002 über einen Hochgeschwindigkeits-E/A-Bus. In mindestens einem Ausführungsbeispiel umfassen die E/A-Peripheriegeräte unter anderem einen Audiocontroller 1046, einen Netzwerk-Controller 1034, eine Firmware-Schnittstelle 1028, einen drahtlosen Transceiver 1026, Berührungssensoren 1025, ein Datenspeichergerät 1024 (z.B. Festplattenlaufwerk, Flash-Speicher, etc.). In mindestens einem Ausführungsbeispiel kann das Datenspeichergerät 1024 über eine Speicherschnittstelle (z.B. SATA) oder über einen Peripheriebus, wie z.B. einen Peripheral Component Interconnect Bus (z.B. PCI, PCI Express), angeschlossen werden. In mindestens einem Ausführungsbeispiel können die Berührungssensoren 1025 Touchscreen-Sensoren, Drucksensoren oder Fingerabdrucksensoren umfassen. In mindestens einem Ausführungsbeispiel kann der drahtlose Sender-Empfänger 1026 ein Wi-Fi-Sender-Empfänger, ein Bluetooth-Sender-Empfänger oder ein Sender-Empfänger für ein mobiles Netzwerk sein, wie z. B. ein 3G-, 4G- oder Long Term Evolution (LTE)-Sender-Empfänger. In mindestens einem Ausführungsbeispiel ermöglicht die Firmware-Schnittstelle 1028 die Kommunikation mit der System-Firmware und kann z. B. eine einheitliche erweiterbare Firmware-Schnittstelle (UEFI) sein. In mindestens einem Ausführungsbeispiel kann der Netzwerk-Controller 1034 eine Netzwerkverbindung mit einem kabelgebundenen Netzwerk ermöglichen. In mindestens einem Ausführungsbeispiel koppelt ein leistungsstarker Netzwerk-Controller (nicht dargestellt) mit dem Schnittstellenbus 1010. In mindestens einem Ausführungsbeispiel ist der Audiocontroller 1046 ein Multi-Channel-High-Definition-Audiocontroller. In mindestens einem Ausführungsbeispiel enthält das System 1000 einen optionalen E/A-Controller 1040 zur Kopplung von älteren Geräten (z.B. Personal System 2 (PS/2)) mit dem System. In mindestens einem Ausführungsbeispiel kann der Plattform-Controller-Hub 1030 auch mit einem oder mehreren Universal Serial Bus (USB)-Controllern 1042 verbunden werden, die Eingabegeräte wie Tastatur- und Mauskombinationen 1043, eine Kamera 1044 oder andere USB-Eingabegeräte anschließen.
  • In mindestens einem Ausführungsbeispiel kann eine Instanz des Speicher-Controllers 1016 und des Plattform-Controller-Hubs 1030 in einen diskreten externen Grafikprozessor, wie den externen Grafikprozessor 1012, integriert sein. In mindestens einem Ausführungsbeispiel können Plattform-Controller-Hub 1030 und/oder Speicher-Controller 1016 extern zu einem oder mehreren Prozessor(en) 1002 sein. Zumindest in einem Ausführungsbeispiel kann das System 1000 einen externen Speicher-Controller 1016 und einen Plattform-Controller-Hub 1030 enthalten, der als Speicher-Controller-Hub und Peripherie-Controller-Hub innerhalb eines System-Chipsatzes konfiguriert sein kann, der mit dem/den Prozessor(en) 1002 in Verbindung steht.
  • Solche Komponenten können zum Generieren synthetischer Sprache verwendet werden.
  • 11 ist ein Blockdiagramm eines Prozessors 1100 mit einem oder mehreren Prozessorkernen 1102A-1102N, einem integrierten Speichercontroller 1114 und einem integrierten Grafikprozessor 1108, gemäß zumindest einem Ausführungsbeispiel. In mindestens einem Ausführungsbeispiel kann der Prozessor 1100 zusätzliche Kerne bis hin zu und einschließlich des zusätzlichen Kerns 1102N enthalten, der durch gestrichelte Kästchen repräsentiert wird. In mindestens einem Ausführungsbeispiel enthält jeder der Prozessorkerne 1 102A-1102N eine oder mehrere interne Cache-Einheiten 1104A-1104N. In mindestens einem Ausführungsbeispiel hat jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte Cache-Einheiten 1106.
  • In mindestens einem Ausführungsbeispiel repräsentieren die internen Cache-Einheiten 1104A-1104N und die gemeinsam genutzten Cache-Einheiten 1106 eine Cache-Speicher-Hierarchie innerhalb des Prozessors 1100. In mindestens einem Ausführungsbeispiel können die Cache-Speichereinheiten 1104A-1104N mindestens eine Ebene von Anweisungs- und Daten-Cache innerhalb jedes Prozessorkerns und eine oder mehrere Ebenen von gemeinsam genutztem Mid-Level-Cache, wie z.B. eine Ebene 2 (L2), Ebene 3 (L3), Ebene 4 (L4) oder andere Cache-Ebenen, umfassen, wobei die höchste Cache-Ebene vor dem externen Speicher als LLC klassifiziert ist. In mindestens einem Ausführungsbeispiel erhält die Cache-Kohärenzlogik die Kohärenz zwischen verschiedenen Cache-Einheiten 1106 und 1104A-1104N.
  • In mindestens einem Ausführungsbeispiel kann der Prozessor 1100 auch einen Satz von einer oder mehreren Bussteuerungseinheiten 1116 und einen Systemagenten-Kern 1110 enthalten. In mindestens einem Ausführungsbeispiel verwalten eine oder mehrere Bus-Controller-Einheiten 1116 einen Satz von Peripherie-Bussen, wie einen oder mehrere PCI- oder PCI-Express-Busse. In mindestens einem Ausführungsbeispiel stellt der Systemagentenkern 1110 Verwaltungsfunktionen für verschiedene Prozessorkomponenten zur Verfügung. In mindestens einem Ausführungsbeispiel enthält der Systemagenten-Kern 1110 einen oder mehrere integrierte Speicher-Controller 1114 zur Verwaltung des Zugriffs auf verschiedene externe Speichergeräte (nicht dargestellt).
  • In mindestens einem Ausführungsbeispiel umfasst einer oder mehrere der Prozessorkerne 1 102A-1102N Unterstützung für gleichzeitiges Multi-Threading. In mindestens einem Ausführungsbeispiel umfasst der Kern 1110 des Systemagenten Komponenten zur Koordinierung und zum Betrieb der Kerne 1102A-1102N während des Verfahrens mit mehreren Threads. In mindestens einem Ausführungsbeispiel kann der Systemagentenkern 1110 zusätzlich eine Energiesteuerungseinheit (PCU) enthalten, die Logik und Komponenten zur Regelung eines oder mehrerer Energiezustände der Prozessorkerne 1 102A-1102N und des Grafikprozessors 1108 umfasst.
  • In mindestens einem Ausführungsbeispiel enthält der Prozessor 1100 zusätzlich den Grafikprozessor 1108 zur Ausführung von Verfahren zum Verarbeiten von Grafiken. In mindestens einem Ausführungsbeispiel koppelt der Grafikprozessor 1108 mit gemeinsam genutzten Cache-Einheiten 1106 und dem Systemagenten-Kern 1110, der einen oder mehrere integrierte Speicher-Controller 1114 enthält. In mindestens einem Ausführungsbeispiel umfasst der Systemagenten-Kern 1110 auch einen Display-Controller 1111, um die Ausgabe des Grafikprozessors an eine oder mehrere gekoppelte Anzeigen zu steuern. In mindestens einem Ausführungsbeispiel kann der Anzeigecontroller 1111 auch ein separates Modul sein, das mit dem Grafikprozessor 1108 über mindestens eine Verbindung gekoppelt ist, oder er kann in den Grafikprozessor 1108 integriert sein.
  • In mindestens einem Ausführungsbeispiel wird eine ringbasierte Verbindungseinheit 1112 verwendet, um interne Komponenten des Prozessors 1100 zu koppeln. In mindestens einem Ausführungsbeispiel kann eine alternative Verbindungseinheit verwendet werden, wie z.B. eine Punkt-zu-Punkt-Verbindung, eine Switch-Verbindung oder andere Techniken. In mindestens einem Ausführungsbeispiel ist der Grafikprozessor 1108 über eine E/A-Verbindung 1113 mit der Ringverbindung 1112 gekoppelt.
  • In mindestens einem Ausführungsbeispiel repräsentiert die E/A-Verbindung 1113 mindestens eine von mehreren Arten von E/A-Verbindungen, einschließlich einer E/A-Verbindung auf dem Gehäuse, die die Kommunikation zwischen verschiedenen Prozessorkomponenten und einem eingebetteten Hochleistungsspeichermodul 1118, wie einem eDRAM-Modul, erleichtert. In mindestens einem Ausführungsbeispiel verwenden jeder der Prozessorkerne 1 102A-1102N und der Grafikprozessor 1108 eingebettete Speichermodule 1118 als gemeinsam genutzten Last Level Cache.
  • In mindestens einem Ausführungsbeispiel sind die Prozessorkerne 1102A-1102N homogene Kerne, die eine gemeinsame Anweisungssatzarchitektur ausführen. In mindestens einem Ausführungsbeispiel sind die Prozessorkerne 1102A-1102N in Bezug auf die Anweisungssatzarchitektur (ISA) heterogen, wobei ein oder mehrere Prozessorkerne 1102A-1102N einen gemeinsamen Anweisungssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 1102A-1102N eine Teilmenge eines gemeinsamen Anweisungssatzes oder einen anderen Anweisungssatz ausführen. In mindestens einem Ausführungsbeispiel sind die Prozessorkerne 1102A-1102N in Bezug auf die Mikroarchitektur heterogen, wobei ein oder mehrere Kerne mit einem relativ höheren Stromverbrauch mit einem oder mehreren Leistungskernen mit einem niedrigeren Stromverbrauch gekoppelt sind. In mindestens einem Ausführungsbeispiel kann der Prozessor 1100 auf einem oder mehreren Chips oder als integrierte Schaltung (SoC) implementiert sein.
  • Solche Komponenten können zum Generieren von synthetischer Sprache verwendet werden.
  • Andere Variationen sind im Sinne der vorliegenden Offenbarung. Während die offenbarten Techniken für verschiedene Modifikationen und alternative Konstruktionen anfällig sind, sind bestimmte Ausführungsbeispiele davon in den Zeichnungen dargestellt und wurden oben detailliert beschrieben. Es sollte jedoch verstanden werden, dass nicht beabsichtigt ist, die Offenbarung auf eine bestimmte Form oder bestimmte Formen zu beschränken, die offenbart sind, sondern dass im Gegenteil beabsichtigt ist, alle Modifikationen, alternativen Konstruktionen und Äquivalente abzudecken, die in den Geist und den Umfang der Offenbarung fallen, wie in den beigefügten Ansprüchen definiert.
  • Die Verwendung der Begriffe „ein“ und „ein“ und „der“ und ähnlicher Bezeichnungen im Zusammenhang mit der Beschreibung offenbarer Ausführungsbeispiele (insbesondere im Zusammenhang mit den folgenden Ansprüchen) ist so auszulegen, dass sie sowohl die Einzahl als auch die Mehrzahl umfasst, sofern hier nicht anders angegeben oder durch den Kontext eindeutig widerlegt, und nicht als Definition eines Begriffs. Die Begriffe „umfassend“, „mit“, „einschließlich“ und „enthaltend“ sind, sofern nicht anders angegeben, als offene Begriffe zu verstehen (im Sinne von „einschließlich, aber nicht beschränkt auf”). Der Begriff „verbunden“ ist, wenn er unverändert bleibt und sich auf physikalische Verbindungen bezieht, als teilweise oder ganz in ihm enthalten, an ihm angebracht oder mit ihm verbunden zu verstehen, auch wenn etwas dazwischen liegt. Die Erwähnung von Wertebereichen soll lediglich als kurzes Verfahren dienen, um sich individuell auf jeden einzelnen Wert zu beziehen, der in den Bereich fällt, sofern hier nichts anderes angegeben ist, und jeder einzelne Wert wird in die Spezifikation aufgenommen, als ob er hier einzeln aufgeführt wäre. Die Verwendung des Begriffs „Menge“ (z.B. „eine Menge von Gegenständen“) oder „Teilmenge“ ist, sofern nicht anders vermerkt oder durch den Kontext widerlegt, als eine nicht leere Sammlung zu verstehen, die ein oder mehrere Elemente umfasst. Weiter, sofern nicht anders vermerkt oder durch den Kontext widerlegt, bezeichnet der Begriff „Teilmenge“ einer entsprechenden Menge nicht notwendigerweise eine echte Teilmenge der entsprechenden Menge, sondern Teilmenge und entsprechende Menge können gleich sein.
  • Konjunktivische Ausdrücke, wie z. B. Sätze der Form „zumindest eines von A, B und C“ oder „zumindest eines von A, B und C“, werden, sofern nicht ausdrücklich anders angegeben oder durch den Kontext eindeutig widerlegt, mit dem Kontext so verstanden, wie sie im Allgemeinen verwendet werden, um darzustellen, dass ein Element, ein Begriff usw, entweder A oder B oder C oder eine beliebige nicht leere Teilmenge der Menge von A und B und C sein kann. Zum Beispiel, in dem anschaulichen Beispiel einer Menge mit drei Mitgliedern, beziehen sich die konjunktiven Ausdrücke „zumindest eines von A, B und C“ und „zumindest eines von A, B und C“ auf eine der folgenden Mengen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Derartige konjunktivische Formulierungen sind also nicht generell so zu verstehen, dass bei bestimmten Ausführungsbeispielen jeweils mindestens eines von A, mindestens eines von B und mindestens eines von C vorhanden sein muss. Sofern nicht anders vermerkt oder durch den Kontext widerlegt, bedeutet der Begriff „Vielzahl“ eine Indikation, dass es sich um eine Mehrzahl handelt (z.B. „eine Vielzahl von Elementen“ bedeutet mehrere Elemente). Eine Vielzahl besteht zumindest aus zwei Gegenständen, kann aber auch mehr sein, wenn dies entweder ausdrücklich oder durch den Kontext indiziert ist. Ferner bedeutet „basierend auf“, sofern nicht anders angegeben oder aus dem Kontext ersichtlich, „zumindest teilweise basierend auf“ und nicht „ausschließlich basierend auf“.
  • Die Operationen der hierin beschriebenen Verfahren können in jeder geeigneten Reihenfolge durchgeführt werden, sofern dies hier nicht anders angegeben ist oder sich aus dem Kontext eindeutig ergibt. In zumindest einer Ausführungsform wird ein Verfahren wie die hier beschriebenen Prozesse (oder Variationen und/oder Kombinationen davon) unter der Kontrolle eines oder mehrerer Rechnersysteme durchgeführt, die mit ausführbaren Anweisungen konfiguriert sind und als Code (z.B. ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Applikationen) implementiert sind, die gemeinsam auf einem oder mehreren Prozessoren, durch Hardware oder Kombinationen davon ausgeführt werden. In mindestens einem Ausführungsbeispiel ist der Code auf einem computerlesbaren Speichermedium gespeichert, z. B. in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder mehreren Prozessoren ausgeführt werden können. In mindestens einem Ausführungsbeispiel handelt es sich bei einem computerlesbaren Speichermedium um ein nichttransitorisches computerlesbares Speichermedium, das transitorische Signale (z.B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung) ausschließt, jedoch nichttransitorische Datenspeicherschaltungen (z.B. Puffer, Cache und Warteschlangen) innerhalb von Transceivern für transitorische Signale enthält. In mindestens einem Ausführungsbeispiel ist Code (z.B. ausführbarer Code oder Quellcode) auf einem Satz von einem oder mehreren nichttransitorischen, computerlesbaren Speichermedien gespeichert, auf denen ausführbare Anweisungen (oder ein anderer Speicher zum Speichern ausführbarer Anweisungen) gespeichert sind, die, wenn sie von einem oder mehreren Prozessoren eines Rechnersystems ausgeführt werden (d.h. als Ergebnis der Ausführung), das Rechnersystem veranlassen, die hierin beschriebenen Operationen durchzuführen. Ein Satz nicht-transitorischer, computerlesbarer Speichermedien umfasst in mindestens einem Ausführungsbeispiel mehrere nicht-transitorische, computerlesbare Speichermedien, und auf einem oder mehreren der individuellen nicht-transitorischen Speichermedien mehrerer nicht-transitorischer, computerlesbarer Speichermedien fehlt der gesamte Code, während mehrere nicht-transitorische, computerlesbare Speichermedien gemeinsam den gesamten Code speichern. In mindestens einem Ausführungsbeispiel werden ausführbare Anweisungen so ausgeführt, dass verschiedene Anweisungen von verschiedenen Prozessoren ausgeführt werden - beispielsweise speichert ein nicht transitorisches computerlesbares Speichermedium Anweisungen und eine zentrale Verarbeitungseinheit („CPU“) führt einige Anweisungen aus, während eine Grafikverarbeitungseinheit („GPU“) und/oder eine Datenverarbeitungseinheit („DPU“) andere Anweisungen ausführt. In mindestens einem Ausführungsbeispiel haben verschiedene Komponenten eines Rechnersystems getrennte Prozessoren, und verschiedene Prozessoren führen verschiedene Teilmengen von Anweisungen aus.
  • Dementsprechend sind Rechnersysteme gemäß mindestens einem Ausführungsbeispiel so konfiguriert, dass sie einen oder mehrere Dienste implementieren, die einzeln oder gemeinsam Verarbeitungen der hierin beschriebenen Verfahren durchführen, und solche Rechnersysteme sind mit anwendbarer Hardware und/oder Software konfiguriert, die die Durchführung von Verarbeitungen ermöglichen. Ferner ist ein Rechnersystem, das mindestens ein Ausführungsbeispiel der vorliegenden Offenbarung implementiert, ein einzelnes Gerät und in einer weiteren Ausführungsform ein verteiltes Rechnersystem, das mehrere Geräte umfasst, die unterschiedlich operieren, so dass das verteilte Rechnersystem die hierin beschriebenen Operationen durchführt und dass ein einzelnes Gerät nicht alle Operationen durchführt.
  • Die Verwendung von Ausführungsbeispielen oder beispielhaften Formulierungen (z.B. „wie“), die hier zur Verfügung gestellt werden, dient lediglich der besseren Veranschaulichung von Ausführungsbeispielen der Offenbarung und stellt keine Einschränkung des Umfangs der Offenbarung dar, sofern nichts anderes beansprucht wird. Keine Formulierung in der Beschreibung sollte als Indikation für ein nicht beanspruchtes Element als wesentlich für die Praxis der Offenbarung ausgelegt werden.
  • Alle hierin zitierten Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patente, werden hiermit durch Verweis in demselben Umfang einbezogen, als ob jede Referenz individuell und ausdrücklich als durch Verweis einbezogen angegeben wäre und hier in ihrer Gesamtheit wiedergegeben würde.
  • In der Beschreibung und in den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es sollte verstanden werden, dass diese Begriffe nicht als Synonyme füreinander zu verstehen sind. In bestimmten Beispielen kann „verbunden“ oder „gekoppelt“ vielmehr als Indikation dafür verwendet werden, dass zwei oder mehr Elemente in direktem oder indirektem physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt zueinander stehen, aber dennoch miteinander zusammenarbeiten oder interagieren.
  • Sofern nicht ausdrücklich etwas anderes angegeben ist, beziehen sich Begriffe wie „Verarbeiten“, „Berechnen“, „Berechnen“, „Bestimmen“ oder dergleichen in der gesamten Spezifikation auf Aktionen und/oder Verfahren eines Computers oder eines Rechnersystems oder eines ähnlichen elektronischen Rechengeräts, die Daten, die als physikalische, z. B. elektronische, Anzahlen in den Registern und/oder Speichern des Rechnersystems repräsentiert werden, manipulieren und/oder in andere Daten umwandeln, die in ähnlicher Weise als physikalische Anzahlen in den Speichern, Registern oder anderen derartigen Geräten zur Speicherung, Übertragung oder Anzeige von Informationen repräsentiert werden.
  • In ähnlicher Weise kann sich der Begriff „Prozessor“ auf ein Gerät oder einen Teil eines Geräts beziehen, das elektronische Daten aus Registern und/oder Speichern verarbeitet und diese elektronischen Daten in andere elektronische Daten umwandelt, die in Registern und/oder Speichern gespeichert werden können. Als nicht einschränkende Beispiele kann „Prozessor“ jeder Prozessor sein, der zu allgemeinen Verfahren fähig ist, wie z. B. eine CPU, GPU oder DPU. Als nicht einschränkende Beispiele kann „Prozessor“ ein beliebiger Mikrocontroller oder eine dedizierte Verarbeitungseinheit wie ein DSP, ein Bildsignalprozessor („ISP“), eine arithmetische Logikeinheit („ALU“), eine Vision-Verarbeitungseinheit („VPU“), eine Tree-Traversal-Einheit („TTU“), ein Ray-Tracing-Kem, ein Tensor-Tracing-Kern, eine Tensor-Verarbeitungseinheit („TPU“), eine eingebettete Steuereinheit („ECU“) und dergleichen sein. Als nicht einschränkende Beispiele kann der „Prozessor“ ein Hardwarebeschleuniger sein, wie z. B. ein PVA (programmierbarer Visionsbeschleuniger), DLA (Deep Learning Accelerator) usw. Als nicht einschränkende Beispiele kann „Prozessor“ auch eine oder mehrere virtuelle Instanzen einer CPU, GPU usw. umfassen, die auf einer zugrunde liegenden Hardwarekomponente gehostet werden, die eine oder mehrere virtuelle Maschinen ausführt. Eine „Rechenplattform“ kann einen oder mehrere Prozessoren umfassen. Wie hier verwendet, können „Software“-Verfahren beispielsweise Software- und/oder Hardware-Einheiten umfassen, die im Laufe der Zeit Arbeit verrichten, wie Aufgaben, Threads und intelligente Agenten. Jedes Verfahren kann sich auch auf mehrere Verfahren beziehen, um Anweisungen in Folge oder parallel, kontinuierlich oder intermittierend auszuführen. Die Begriffe „System“ und „Verfahren“ werden hier austauschbar verwendet, insofern als ein System ein oder mehrere Verfahren umfassen kann und Verfahren als System betrachtet werden können.
  • Im vorliegenden Dokument kann auf das Gewinnen, Erfassen, Empfangen oder Eingeben analoger oder digitaler Daten in ein Teilsystem, ein Rechnersystem oder eine computer-implementierte Maschine Bezug genommen werden. Das Beschaffen, Erfassen, Empfangen oder Eingeben analoger und digitaler Daten kann auf verschiedene Weise erfolgen, beispielsweise durch Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs einer Programmierschnittstelle einer Applikation. In einigen Implementierungen kann das Verfahren zum Erhalten, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten durch die Übertragung von Daten über eine serielle oder parallele Schnittstelle durchgeführt werden. In einer anderen Implementierung kann das Verfahren zum Erhalten, Erfassen, Empfangen oder Eingeben analoger oder digitaler Daten durch die Übertragung von Daten über ein Netzwerk von der bereitstellenden Einheit zur erfassenden Einheit durchgeführt werden. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren analoger oder digitaler Daten Bezug genommen werden. In verschiedenen Beispielen kann das Verfahren des Bereitstellens, Ausgebens, Übertragens, Sendens oder Darstellens analoger oder digitaler Daten durch die Übertragung von Daten als Eingabe- oder Ausgabeparameter eines Funktionsaufrufs, eines Parameters einer Programmierschnittstelle einer Applikation oder eines Interprozess-Kommunikationsmechanismus durchgeführt werden.
  • Obwohl die obige Diskussion Beispielimplementierungen der beschriebenen Techniken darlegt, können auch andere Architekturen verwendet werden, um die beschriebene Funktionalität zu implementieren, und sie sollen in den Anwendungsbereich dieser Offenbarung fallen. Weiterhin, obwohl spezifische Verteilungen von Verantwortlichkeiten oben zu Diskussionszwecken definiert sind, könnten verschiedene Funktionen und Verantwortlichkeiten auf unterschiedliche Weise verteilt und aufgeteilt werden, abhängig von den Umständen.
  • Weiterhin gilt, dass der Gegenstand, der in den beigefügten Ansprüchen beansprucht wird, nicht notwendigerweise auf die beschriebenen spezifischen Merkmale oder Handlungen beschränkt ist, obwohl er in einer Sprache beschrieben wurde, die sich auf strukturelle Merkmale und/oder methodische Handlungen bezieht. Vielmehr sind die spezifischen Merkmale und Handlungen als beispielhafte Formen der Implementierung der Ansprüche offenbart.

Claims (20)

  1. Computer-implementiertes Verfahren, umfassend: Bestimmen, aus einer Vielzahl von Audiosegmenten, von jeweiligen Phonemdauern, Phonemtonhöhen, und Phonemenergien; Bestimmen eines Alignments für ein Audiosegment von synthetisierter Sprache zumindest teilweise basierend auf einer ersten Verteilung, die den Phonemdauern entspricht; und Generieren, für eine Textsequenz, eines Audiosegments, das eine synthetisierte Rezitation der Textsequenz umfasst, zumindest teilweise basierend auf dem Alignment und zumindest einer zweiten Verteilung, die den Phonemtonhöhen entspricht, oder einer dritten Verteilung, die den Phonemenergien entspricht.
  2. Computer-implementiertes Verfahren nach Anspruch 1, weiter umfassend: Generieren einer vierten Verteilung, die einer oder mehreren Eigenschaften entspricht, die mit der synthetisierten Rezitation assoziiert sind, zumindest teilweise basierend auf der vierten Verteilung.
  3. Computer-implementiertes Verfahren nach Anspruch 1 oder 2, weiter umfassend: Bestimmen einer Alignment-Matrix zwischen der Textsequenz und einer Gesamtsprachdauer.
  4. Computer-implementiertes Verfahren nach Anspruch 3, weiter umfassend: Anwenden einer Prior-Verteilung auf die Alignment-Matrix, um Paare von Phonemen und Dauern außerhalb eines bestimmten Bereichs auszuschließen.
  5. Computer-implementiertes Verfahren nach Anspruch 4, wobei die Prior-Verteilung zigarrenförmig ist.
  6. Computer-implementiertes Verfahren nach Anspruch 4 oder 5, wobei die Prior-Verteilung aus einer Beta-Binomial-Verteilung konstruiert ist.
  7. Computer-implementiertes Verfahren nach einem der vorhergehenden Ansprüche, weiter umfassend: Bestimmen, aus der Textsequenz, einer Vielzahl von Text-Tokens; und Ausrichten jedes der Vielzahl von Text-Token auf einen entsprechenden Mel-Frame, zumindest teilweise basierend auf dem Alignment.
  8. Computer-implementiertes Verfahren nach Anspruch 7, wobei das Alignment zumindest teilweise auf einem L2-Abstand zwischen dem Mel-Frame zu einem ersten Zeitpunkt und einem Text-Phonem in der Textsequenz basiert.
  9. Computer-implementiertes Verfahren nach einem der vorhergehenden Ansprüche, wobei die synthetisierte Rezitation generativ ist, so dass sich eine erste synthetisierte Rezitation von einer zweiten synthetisierten Rezitation unterscheidet, wobei jede der ersten synthetisierten Rezitation und der zweiten synthetisierten Rezitation auf der Textsequenz basiert.
  10. Verfahren, umfassend: Bestimmen, aus einer Vielzahl von Audio-Samples, die menschliche Sprache enthalten, von Alignments zwischen Text der Vielzahl von Audio-Samples, einer Dauer der Vielzahl von Audio-Samples und zumindest einem von einer Tonhöhe der Audio-Samples oder einer Energie der Audio-Samples; Generieren einer Alignment-Verteilung, die zumindest teilweise auf den Alignments basiert; Bestimmen eines oder mehrerer Vektoren aus der Alignment-Verteilung, die einer oder mehreren Charakteristiken eines Sprechers entsprechen; Empfangen einer Textsequenz; und Generieren, zumindest teilweise basierend auf der Textsequenz und dem einen oder den mehreren Vektoren, eines synthetischen Audioclips, der der Textsequenz entspricht.
  11. Verfahren nach Anspruch 10, wobei das Alignment zumindest teilweise auf einer Alignment-Matrix mit einer Beta-Binomial-Verteilung basiert.
  12. Verfahren nach Anspruch 10 oder 11, wobei ein Kodierer und ein Dekodierer zum Generieren des synthetischen Audioclips parallel arbeiten.
  13. Verfahren nach einem der Ansprüche 10 bis 12, weiter umfassend: Bestimmen eines weichen Alignments zwischen der Textsequenz und den Mel-Frames der Alignment-Verteilung; und Bestimmen eines harten Alignments zwischen der Textsequenz und den Mel-Frames der Alignment-Verteilung.
  14. Verfahren nach einem der Ansprüche 10 bis 13, weiter umfassend: Generieren eines zweiten synthetischen Audioclips aus der Textsequenz, wobei sich der zweite synthetische Audioclip von dem ersten synthetischen Audioclip unterscheidet.
  15. Verfahren nach einem der Ansprüche 10 bis 14, das weiter umfasst: Generieren zumindest einer Phonemverteilung, einer Tonhöhenverteilung oder einer Energieverteilung; und Samplen aus zumindest einer der Phonemverteilung, der Tonhöhenverteilung oder der Energieverteilung.
  16. Prozessor, umfassend: eine oder mehrere Verarbeitungseinheiten zum: Empfangen eines Audioclips menschlicher Sprache, repräsentiert als ein Mel-Spektrogramm; Bestimmen eines Alignments für eine Textsequenz innerhalb des Audio-Clips und einer Vielzahl von Mel-Frames, die eine Dauer des Audio-Clips repräsentieren; Bestimmen einer oder mehrerer Verteilungen für eine Tonhöhe und eine Energie, die mit dem Audioclip assoziiert sind; Empfangen einer zweiten Textsequenz; und Generieren eines zweiten Audioclips der zweiten Textsequenz zumindest teilweise basierend auf dem Alignment und der einen oder mehreren Verteilungen.
  17. Prozessor nach Anspruch 16, wobei die eine oder mehreren Verarbeitungseinheiten weiter einen Kodierer und Dekodierer zum Generieren des zweiten Audioclips implementieren, wobei der Kodierer und der Dekodierer parallel arbeiten.
  18. Prozessor nach Anspruch 16 oder 17, wobei die eine oder die mehreren Verarbeitungseinheiten weiterhin dienen zum: Generieren einer Alignment-Matrix, die auf eine Wahrscheinlichkeitsverteilung normiert ist; und Fitten einer Beta-Binomialverteilung an die Alignment-Matrix.
  19. Prozessor nach Anspruch 18, wobei die Beta-Binomial-Verteilung Paare von Phonemen und Mel-Frames außerhalb eines bestimmten Bereichs ausschließt.
  20. Prozessor nach einem der Ansprüche 16 bis 19, wobei die eine oder die mehreren Verarbeitungseinheiten weiterhin dazu dienen, einen dritten Audioclip aus der zweiten Textsequenz zu generieren, wobei sich der zweite Audioclip von dem dritten Audioclip unterscheidet.
DE102022125316.3A 2021-10-07 2022-09-30 Unüberwachtes alignment für text-zu-sprache-synthese unter verwenden neuronaler netzwerke Pending DE102022125316A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/496,569 2021-10-07
US17/496,569 US11769481B2 (en) 2021-10-07 2021-10-07 Unsupervised alignment for text to speech synthesis using neural networks

Publications (1)

Publication Number Publication Date
DE102022125316A1 true DE102022125316A1 (de) 2023-04-13

Family

ID=85705415

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022125316.3A Pending DE102022125316A1 (de) 2021-10-07 2022-09-30 Unüberwachtes alignment für text-zu-sprache-synthese unter verwenden neuronaler netzwerke

Country Status (4)

Country Link
US (4) US11769481B2 (de)
JP (1) JP2023056442A (de)
CN (1) CN115953997A (de)
DE (1) DE102022125316A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11915714B2 (en) * 2021-12-21 2024-02-27 Adobe Inc. Neural pitch-shifting and time-stretching
CN117116249B (zh) * 2023-10-18 2024-01-23 腾讯科技(深圳)有限公司 音频生成模型的训练方法、音频生成方法、装置及设备
CN117479127A (zh) * 2023-12-26 2024-01-30 深圳市掌锐电子有限公司 基于5g的车联网智能终端及方法
CN117727290A (zh) * 2024-02-18 2024-03-19 厦门她趣信息技术有限公司 一种语音合成方法、装置、设备及可读存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0710378A4 (de) * 1994-04-28 1998-04-01 Motorola Inc Verfahren und vorrichtung zur umwandlung von text in audiosignale unter verwendung eines neuralen netzwerks
JP3727885B2 (ja) * 2002-01-31 2005-12-21 株式会社東芝 音声素片生成方法と装置及びプログラム、並びに音声合成方法と装置
JP3756864B2 (ja) * 2002-09-30 2006-03-15 株式会社東芝 音声合成方法と装置及び音声合成プログラム
US20060259303A1 (en) * 2005-05-12 2006-11-16 Raimo Bakis Systems and methods for pitch smoothing for text-to-speech synthesis
US9191639B2 (en) * 2010-04-12 2015-11-17 Adobe Systems Incorporated Method and apparatus for generating video descriptions
US10186252B1 (en) * 2015-08-13 2019-01-22 Oben, Inc. Text to speech synthesis using deep neural network with constant unit length spectrogram
CN109256152A (zh) * 2018-11-08 2019-01-22 上海起作业信息科技有限公司 语音评分方法及装置、电子设备、存储介质
CN111739508B (zh) * 2020-08-07 2020-12-01 浙江大学 一种基于dnn-hmm双模态对齐网络的端到端语音合成方法及系统
CN112397047A (zh) * 2020-12-11 2021-02-23 平安科技(深圳)有限公司 语音合成方法、装置、电子设备及可读存储介质
GB2603776A (en) * 2021-02-11 2022-08-17 Sonantic Ltd Methods and systems for modifying speech generated by a text-to-speech synthesiser
EP4295353A1 (de) * 2021-03-22 2023-12-27 Google LLC Unüberwachtes paralleles tacotron, nicht autoregressiv und steuerbares text-zu-sprache
CN113870830A (zh) * 2021-09-27 2021-12-31 平安科技(深圳)有限公司 基于人工智能的语音合成方法、装置、设备及存储介质
CN113903326A (zh) * 2021-09-27 2022-01-07 平安科技(深圳)有限公司 语音合成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20230113950A1 (en) 2023-04-13
JP2023056442A (ja) 2023-04-19
US20230419947A1 (en) 2023-12-28
US20230402028A1 (en) 2023-12-14
US11869483B2 (en) 2024-01-09
CN115953997A (zh) 2023-04-11
US20230110905A1 (en) 2023-04-13
US11769481B2 (en) 2023-09-26

Similar Documents

Publication Publication Date Title
CN104538024B (zh) 语音合成方法、装置及设备
DE102022125316A1 (de) Unüberwachtes alignment für text-zu-sprache-synthese unter verwenden neuronaler netzwerke
CN109817246A (zh) 情感识别模型的训练方法、情感识别方法、装置、设备及存储介质
US20230009613A1 (en) Training Speech Synthesis to Generate Distinct Speech Sounds
DE102021125231A1 (de) Unüberwachte domainanpassung mit neuronalen netzen
DE112020002425T5 (de) Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
US11481609B2 (en) Computationally efficient expressive output layers for neural networks
DE102022128165A1 (de) Datenpfadschaltungsentwurf unter verwendung von reinforcement learning
DE102021112707A1 (de) Sprachende-erkennung mit einem oder mehreren neuronalen netzwerken
DE112018005844B4 (de) Verfahren, Programmprodukt, sowie Computersystem zum Fuzzy Matching von phonetischen Mustern bei der Verarbeitung von natürlicher Sprache
DE102022126287A1 (de) Speicherung und abruf von unstrukturierten daten in anwendungen konversationeller künstlicher intelligenz
DE102022120731A1 (de) Multimodale sensorfusion zur identifizierung von inhalten bei anwendungen von mensch-maschine-schnittstellen
CN115409847A (zh) 一种基于ct影像的轻量化分割方法
DE102023108430A1 (de) Erzeugung von konversationellen erwiderungen unter verwendung von neuralen netzwerken
US20230145129A1 (en) Generating neural network outputs by enriching latent embeddings using self-attention and cross-attention operations
DE102022128969A1 (de) Erkennung von benutzerabsichten und zugehörigen entitäten unter verwendung eines neuronalen netzwerks in einer interaktionsumgebung
US20240071366A1 (en) Text normalization and inverse text normalization using weighted finite-state transducers and neural language models
DE102023127746A1 (de) Hybride sprachmodelle für konversationssysteme und -anwendungen mit künstlicher intelligenz
US20240161727A1 (en) Training method for speech synthesis model and speech synthesis method and related apparatuses
Wang et al. Combining unidirectional long short-term memory with convolutional output layer for high-performance speech synthesis
DE102023124835A1 (de) Anwendungen zur Verarbeitung natürlicher Sprache unter Verwenden Großer Sprachmodelle
DE102023109997A1 (de) Aufgabenspezifische maschinenlernoperationen unter verwendung von trainingsdaten, die von universalmodellen erzeugt werden
DE102022103954A1 (de) Bestimmen des optischen Zentrums in einem Bild
DE102023134432A1 (de) Effizientes frequenzbasiertes audio-resampling zur verwendung neuronaler netzwerke
Jawaid et al. Style Mixture of Experts for Expressive Text-To-Speech Synthesis

Legal Events

Date Code Title Description
R012 Request for examination validly filed