View a markdown version of this page

Text senden und Audio empfangen - Amazon Polly

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Text senden und Audio empfangen

Eine bidirektionale Streaming-Sitzung beinhaltet das Öffnen einer Verbindung, das gleichzeitige Senden von Text und das Empfangen von Audio und das anschließende Schließen des Streams, wenn die Eingabe abgeschlossen ist. In den folgenden Abschnitten werden die einzelnen Phasen detailliert beschrieben.

Öffne den Stream

Ihre Anwendung ruft den StartSpeechSynthesisStreamVorgang über das SDK auf und gibt Syntheseparameter (EngineVoiceId,OutputFormat, und optional LanguageCodeLexiconNames,SampleRate) an. Das SDK stellt eine HTTP/2 Verbindung her und der bidirektionale Stream ist bereit, Eingabeereignisse zu akzeptieren.

Text senden

Der Client sendet eine oder mehrere TextEventNachrichten im Eingabestream. Jedes Ereignis kann gesendet werden, sobald Text verfügbar ist, ohne darauf warten zu müssen, dass die vollständige Eingabe bereit ist. Textereignisse müssen sich nicht an Satz- oder Satzgrenzen orientieren. Amazon Polly setzt den Text intern neu zusammen und erzeugt eine natürlich klingende Sprache, unabhängig davon, wie die Eingabe auf die Ereignisse aufgeteilt wird.

Anmerkung

Bei der Verwendung von SSML muss jedes SSML-Dokument in einem einzigen Dokument abgeschlossen sein. TextEvent Sie können SSML-Tags nicht auf mehrere Ereignisse aufteilen. Sie können jedoch Klartextereignisse und SSML-Ereignisse innerhalb desselben Streams mischen.

Der Stream unterliegt den folgenden Zeitlimits:

  • Maximale Stream-Dauer: 10 Minuten. Amazon Polly schließt den Stream unabhängig von der Aktivität nach 10 Minuten. Wenn Ihr Inhalt mehr Zeit benötigt, öffnen Sie einen neuen Stream für den verbleibenden Text.

  • Timeout im Leerlauf zwischen aufeinanderfolgenden Ereignissen: 5 Sekunden. Wenn 5 Sekunden lang kein Eingabeereignis gesendet wird, schließt Amazon Polly den Stream. Wenn Ihre Textquelle Pausen von mehr als 5 Sekunden hat, senden Sie ein Keep-Alive TextEvent mit einer leeren Zeichenfolge oder einem Leerzeichen, um das Timeout zu verhindern.

Erzwingen Sie die Synthese von gepuffertem Text durch Leeren

Standardmäßig entscheidet Amazon Polly, wann gepufferter Text auf der Grundlage natürlicher Sprachgrenzen synthetisiert werden soll. Dadurch wird die beste Audioqualität erzielt, aber das bedeutet, dass Audio möglicherweise nicht sofort zurückgegeben wird, nachdem Sie eine gesendet haben. TextEvent

Durch Flushing haben Sie die Kontrolle darüber, wann die Synthese stattfindet. Beim Leeren synthetisiert Amazon Polly sofort den gesamten Text, den es bisher gepuffert hat, unabhängig davon, ob der Text an einer natürlichen Grenze endet. Dies ist nützlich, wenn Ihre Textquelle zwischen logischen Abschnitten pausiert und Sie Audio für das, was bisher gesendet wurde, bereitstellen möchten.

Um zu leeren, stellen Sie den. FlushStreamConfiguration ForceParameter true auf einTextEvent. Sie können auch eine leere Datei TextEvent mit gesetztem Flush-Flag senden, um die Synthese auszulösen, ohne neuen Inhalt hinzuzufügen.

Flushing ist ein Kompromiss. Die Einstellung Force auf die true Mitte des Satzes kann sich auf Aussprache und Intonation auswirken, da dem Synthesizer der Kontext für das Folgende fehlt. Um optimale Ergebnisse zu erzielen, sollten Sie Amazon Polly erlauben, wann immer möglich bis an natürliche Grenzen zu puffern und die Synthese nur dann zu erzwingen, wenn die Latenzanforderungen dies erfordern.

Audio empfangen

Wenn Amazon Polly Text synthetisiert, gibt es AudioEventNachrichten im Ausgabestrom zurück. Jedes Ereignis enthält einen Teil von Audiodaten. Ihre Anwendung muss diese Datenblöcke akkumulieren (z. B. indem sie nacheinander in eine Datei oder einen Audiopuffer geschrieben werden), um die vollständige Audioausgabe zu erzeugen. Audioereignisse können eintreffen, während Sie noch Textereignisse senden.

Schließe den Stream

Wenn der gesamte Eingabetext gesendet wurde, sendet der Client eine CloseStreamEvent. Amazon Polly beendet die Verarbeitung des verbleibenden gepufferten Texts, sendet letzte Audioereignisse und gibt a zurück, StreamClosedEventdas die Gesamtzahl der synthetisierten Zeichen enthält. Senden Sie immer eine, CloseStreamEvent anstatt sich auf das Leeren zu verlassen, um den Stream zu beenden. Beim Schließen wird sichergestellt, dass der gesamte gepufferte Text synthetisiert und zurückgegeben wird.

Vollständige Informationen zu Anforderungsparametern, Ereignistypen und Fehlern finden Sie in der StartSpeechSynthesisStreamAPI-Referenz.