

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Enviando texto e recebendo áudio
<a name="bidirectional-streaming-lifecycle"></a>

Uma sessão de streaming bidirecional envolve abrir uma conexão, enviar texto e receber áudio simultaneamente e, em seguida, fechar a transmissão quando a entrada for concluída. As seções a seguir descrevem cada fase em detalhes.

## Abra o stream
<a name="bidirectional-streaming-open"></a>

Seu aplicativo chama a [StartSpeechSynthesisStream](https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisStream.html)operação por meio do SDK, especificando os parâmetros de síntese (`Engine`,, `VoiceId``OutputFormat`, e opcionalmente,`LanguageCode`,`LexiconNames`). `SampleRate` O SDK estabelece uma HTTP/2 conexão e o fluxo bidirecional está pronto para aceitar eventos de entrada.

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

O cliente envia uma ou mais [TextEvent](https://docs.aws.amazon.com/polly/latest/dg/API_TextEvent.html)mensagens no fluxo de entrada. Cada evento pode ser enviado assim que o texto estiver disponível, sem esperar que a entrada completa esteja pronta. Os eventos de texto não precisam estar alinhados com os limites da frase ou da pontuação. O Amazon Polly reagrupa o texto internamente e produz uma fala com som natural, independentemente de como a entrada é dividida entre os eventos.

**nota**  
Ao usar [SSML](https://docs.aws.amazon.com/polly/latest/dg/ssml.html), cada documento SSML deve ser independente em um único documento. `TextEvent` Você não pode dividir tags SSML em vários eventos. No entanto, você pode misturar eventos de texto simples e eventos SSML no mesmo fluxo.

A transmissão está sujeita aos seguintes limites de tempo:
+ **Duração máxima da transmissão**: 10 minutos. O Amazon Polly fecha o stream após 10 minutos, independentemente da atividade. Se seu conteúdo exigir mais tempo, abra um novo stream para o texto restante.
+ **Tempo limite de inatividade entre eventos consecutivos**: 5 segundos. Se nenhum evento de entrada for enviado por 5 segundos, o Amazon Polly fechará o stream. Se sua fonte de texto tiver pausas de mais de 5 segundos, envie um keep-alive `TextEvent` com uma string vazia ou com espaço em branco para evitar o tempo limite.

### Forçando a síntese de texto em buffer com descarga
<a name="bidirectional-streaming-flush"></a>

Por padrão, o Amazon Polly decide quando sintetizar texto em buffer com base nos limites da linguagem natural. Isso produz a melhor qualidade de áudio, mas significa que o áudio pode não ser retornado imediatamente após o envio de um`TextEvent`.

A lavagem permite que você controle quando a síntese acontece. Quando você limpa, o Amazon Polly sintetiza imediatamente todo o texto armazenado em buffer até o momento, independentemente de o texto terminar em um limite natural. Isso é útil quando sua fonte de texto faz uma pausa entre as seções lógicas e você deseja fornecer áudio para o que foi enviado até o momento.

Para lavar, defina o. [FlushStreamConfiguration](https://docs.aws.amazon.com/polly/latest/dg/API_FlushStreamConfiguration.html) `Force`parâmetro para `true` um`TextEvent`. Você também pode enviar um vazio `TextEvent` com o sinalizador flush definido para acionar a síntese sem adicionar novo conteúdo.

Lavar é uma troca. `Force`A configuração para o `true` meio da frase pode afetar a pronúncia e a entonação porque o sintetizador não tem contexto sobre o que se segue. Para obter melhores resultados, permita que o Amazon Polly atenda aos limites naturais sempre que possível e só force a síntese quando os requisitos de latência exigirem.

## Receba áudio
<a name="bidirectional-streaming-receive"></a>

Conforme o Amazon Polly sintetiza texto, ele retorna [AudioEvent](https://docs.aws.amazon.com/polly/latest/dg/API_AudioEvent.html)mensagens no fluxo de saída. Cada evento contém uma parte dos dados de áudio. Seu aplicativo deve acumular esses fragmentos (por exemplo, gravando-os sequencialmente em um arquivo ou buffer de áudio) para produzir a saída de áudio completa. Eventos de áudio podem chegar enquanto você ainda está enviando eventos de texto.

## Feche o stream
<a name="bidirectional-streaming-close"></a>

Quando todo o texto de entrada for enviado, o cliente envia um [CloseStreamEvent](https://docs.aws.amazon.com/polly/latest/dg/API_CloseStreamEvent.html). O Amazon Polly conclui o processamento de qualquer texto armazenado em buffer restante, envia os eventos finais de áudio e retorna um [StreamClosedEvent](https://docs.aws.amazon.com/polly/latest/dg/API_StreamClosedEvent.html)que contém o número total de caracteres sintetizados. Sempre envie um `CloseStreamEvent` em vez de depender do flushing para encerrar a transmissão. O fechamento garante que todo o texto armazenado em buffer seja sintetizado e retornado.

Para obter detalhes completos sobre parâmetros de solicitação, tipos de eventos e erros, consulte a [referência da StartSpeechSynthesisStream API](https://docs.aws.amazon.com/polly/latest/dg/API_StartSpeechSynthesisStream.html).