View a markdown version of this page

Envoi de texte et réception audio - Amazon Polly

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Envoi de texte et réception audio

Une session de diffusion bidirectionnelle implique d'ouvrir une connexion, d'envoyer du texte et de recevoir du son simultanément, puis de fermer le flux une fois la saisie terminée. Les sections suivantes décrivent chaque phase en détail.

Ouvrez le stream

Votre application appelle l'StartSpeechSynthesisStreamopération via le SDK, en spécifiant les paramètres de synthèse (Engine,VoiceId,OutputFormat, et éventuellementLanguageCode,LexiconNames,SampleRate). Le SDK établit une HTTP/2 connexion et le flux bidirectionnel est prêt à accepter les événements d'entrée.

Envoyer du texte

Le client envoie un ou plusieurs TextEventmessages sur le flux d'entrée. Chaque événement peut être envoyé dès que le texte est disponible, sans attendre que la saisie complète soit prête. Il n'est pas nécessaire que les événements de texte soient alignés sur les limites des phrases ou des ponctuations. Amazon Polly réassemble le texte en interne et produit un son naturel, quelle que soit la manière dont l'entrée est répartie entre les événements.

Note

Lorsque vous utilisez le protocole SSML, chaque document doit être autonome au sein d'un document unique. TextEvent Vous ne pouvez pas diviser les balises SSML entre plusieurs événements. Toutefois, vous pouvez mélanger des événements en texte brut et des événements SSML au sein d'un même flux.

Le stream est soumis aux limites de temps suivantes :

  • Durée maximale du stream : 10 minutes. Amazon Polly ferme le stream au bout de 10 minutes, quelle que soit l'activité. Si votre contenu nécessite plus de temps, ouvrez un nouveau flux pour le texte restant.

  • Délai d'inactivité entre deux événements consécutifs : 5 secondes. Si aucun événement d'entrée n'est envoyé pendant 5 secondes, Amazon Polly ferme le flux. Si votre source de texte comporte des pauses de plus de 5 secondes, envoyez un keep-alive TextEvent avec une chaîne vide ou un espace pour éviter le délai d'expiration.

Forcer la synthèse du texte mis en mémoire tampon par rinçage

Par défaut, Amazon Polly décide quand synthétiser le texte mis en mémoire tampon en fonction des limites du langage naturel. Cela produit la meilleure qualité audio, mais cela signifie que le son peut ne pas être renvoyé immédiatement après l'envoi d'unTextEvent.

Le rinçage vous permet de contrôler le moment où la synthèse se produit. Lorsque vous videz le contenu, Amazon Polly synthétise immédiatement tout le texte qu'il a mis en mémoire tampon jusqu'à présent, qu'il se termine ou non par une limite naturelle. Cela est utile lorsque votre source de texte fait une pause entre des sections logiques et que vous souhaitez diffuser du son pour ce qui a été envoyé jusqu'à présent.

Pour rincer, réglez le. FlushStreamConfiguration Forceparamètre à true sur unTextEvent. Vous pouvez également envoyer un message vide TextEvent avec l'indicateur flush défini pour déclencher la synthèse sans ajouter de nouveau contenu.

Le rinçage est un compromis. Le réglage Force au true milieu de la phrase peut affecter la prononciation et l'intonation car le synthétiseur manque de contexte quant à ce qui suit. Pour de meilleurs résultats, autorisez Amazon Polly à respecter les limites naturelles dans la mesure du possible et ne forcez la synthèse que lorsque les exigences de latence l'exigent.

Recevoir du son

Au fur et à mesure qu'Amazon Polly synthétise du texte, il renvoie AudioEventdes messages sur le flux de sortie. Chaque événement contient une partie des données audio. Votre application doit accumuler ces fragments (par exemple, en les écrivant séquentiellement dans un fichier ou une mémoire tampon audio) pour produire la sortie audio complète. Les événements audio peuvent arriver alors que vous êtes encore en train d'envoyer des événements textuels.

Fermez le stream

Lorsque tout le texte saisi a été envoyé, le client envoie un CloseStreamEvent. Amazon Polly termine le traitement du texte restant en mémoire tampon, envoie les derniers événements audio et renvoie un StreamClosedEventcontenant le nombre total de caractères synthétisés. Envoyez toujours un message CloseStreamEvent plutôt que de vous fier à un rinçage pour terminer le stream. La fermeture garantit que tout le texte mis en mémoire tampon est synthétisé et renvoyé.

Pour plus de détails sur les paramètres de demande, les types d'événements et les erreurs, consultez la référence de l'StartSpeechSynthesisStreamAPI.