

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Enviar texto y recibir audio
<a name="bidirectional-streaming-lifecycle"></a>

Una sesión de streaming bidireccional implica abrir una conexión, enviar texto y recibir audio simultáneamente y, a continuación, cerrar la transmisión cuando se completa la entrada. En las siguientes secciones se describe cada fase en detalle.

## Abre la transmisión
<a name="bidirectional-streaming-open"></a>

La aplicación llama a la [StartSpeechSynthesisStream](https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisStream.html)operación a través del SDK y especifica los parámetros de síntesis (`Engine``VoiceId``OutputFormat`,, y`LanguageCode`, opcionalmente`LexiconNames`,`SampleRate`). El SDK establece una HTTP/2 conexión y la transmisión bidireccional está lista para aceptar eventos de entrada.

## Enviar texto
<a name="bidirectional-streaming-send"></a>

El cliente envía uno o más [TextEvent](https://docs.aws.amazon.com/polly/latest/dg/API_TextEvent.html)mensajes en el flujo de entrada. Cada evento se puede enviar tan pronto como el texto esté disponible, sin esperar a que esté lista la entrada completa. Los eventos de texto no necesitan alinearse con los límites de las oraciones o los signos de puntuación. Amazon Polly reensambla el texto internamente y produce un discurso con un sonido natural, independientemente de cómo se divida la entrada entre los eventos.

**nota**  
Cuando se utiliza [SSML, cada documento SSML debe](https://docs.aws.amazon.com/polly/latest/dg/ssml.html) estar contenido en uno solo. `TextEvent` No puede dividir las etiquetas SSML en varios eventos. Sin embargo, puede mezclar eventos de texto sin formato y eventos SSML en la misma secuencia.

La transmisión está sujeta a los siguientes límites de tiempo:
+ **Duración máxima de la transmisión**: 10 minutos. Amazon Polly cierra la transmisión después de 10 minutos, independientemente de la actividad. Si su contenido requiere más tiempo, abra una nueva transmisión para el texto restante.
+ Tiempo de **espera de inactividad entre eventos consecutivos**: 5 segundos. Si no se envía ningún evento de entrada durante 5 segundos, Amazon Polly cierra la transmisión. Si la fuente de texto tiene pausas de más de 5 segundos, envía un mensaje de alerta con una cadena vacía o `TextEvent` con espacios en blanco para evitar que se agote el tiempo de espera.

### Forzar la síntesis del texto almacenado en búfer mediante el vaciado
<a name="bidirectional-streaming-flush"></a>

De forma predeterminada, Amazon Polly decide cuándo sintetizar el texto almacenado en búfer en función de los límites del lenguaje natural. Esto produce la mejor calidad de audio, pero significa que es posible que el audio no se devuelva inmediatamente después de enviar un. `TextEvent`

El vaciado permite controlar cuándo se produce la síntesis. Al vaciar, Amazon Polly sintetiza inmediatamente todo el texto que ha almacenado en búfer hasta el momento, independientemente de si el texto termina en un límite natural. Esto resulta útil cuando la fuente de texto se detiene entre secciones lógicas y desea entregar el audio de lo que se ha enviado hasta el momento.

Para vaciar, configure el. [FlushStreamConfiguration](https://docs.aws.amazon.com/polly/latest/dg/API_FlushStreamConfiguration.html) `Force`parámetro `true` en un`TextEvent`. También puedes enviar un mensaje vacío `TextEvent` con el indicador de vaciado activado para activar la síntesis sin añadir contenido nuevo.

Vaciar es una compensación. Ponerla `Force` a `true` mitad de la oración puede afectar a la pronunciación y a la entonación porque el sintetizador carece de contexto sobre lo que sigue. Para obtener los mejores resultados, permita que Amazon Polly almacene búfer dentro de los límites naturales siempre que sea posible y solo fuerce la síntesis cuando los requisitos de latencia lo exijan.

## Reciba audio
<a name="bidirectional-streaming-receive"></a>

A medida que Amazon Polly sintetiza el texto, devuelve [AudioEvent](https://docs.aws.amazon.com/polly/latest/dg/API_AudioEvent.html)los mensajes a la secuencia de salida. Cada evento contiene un fragmento de datos de audio. La aplicación debe acumular estos fragmentos (por ejemplo, escribiéndolos secuencialmente en un archivo o búfer de audio) para producir la salida de audio completa. Los eventos de audio pueden llegar mientras sigues enviando eventos de texto.

## Cierra la transmisión
<a name="bidirectional-streaming-close"></a>

Cuando se ha enviado todo el texto introducido, el cliente envía un [CloseStreamEvent](https://docs.aws.amazon.com/polly/latest/dg/API_CloseStreamEvent.html). Amazon Polly termina de procesar el texto restante en búfer, envía los eventos de audio finales y devuelve un [StreamClosedEvent](https://docs.aws.amazon.com/polly/latest/dg/API_StreamClosedEvent.html)que contiene el número total de caracteres sintetizados. Envía siempre una, `CloseStreamEvent` en lugar de depender de una descarga para finalizar la transmisión. El cierre garantiza que todo el texto almacenado en búfer se sintetice y se devuelva.

Para obtener todos los detalles sobre los parámetros de las solicitudes, los tipos de eventos y los errores, consulta la referencia de la [StartSpeechSynthesisStreamAPI](https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisStream.html).