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
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
Seu aplicativo chama a StartSpeechSynthesisStreamoperação por meio do SDK, especificando os parâmetros de síntese (Engine,, VoiceIdOutputFormat, 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
O cliente envia uma ou mais TextEventmensagens 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, 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
TextEventcom 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
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 umTextEvent.
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 Forceparâmetro para true umTextEvent. 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. ForceA 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
Conforme o Amazon Polly sintetiza texto, ele retorna AudioEventmensagens 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
Quando todo o texto de entrada for enviado, o cliente envia um CloseStreamEvent. O Amazon Polly conclui o processamento de qualquer texto armazenado em buffer restante, envia os eventos finais de áudio e retorna um StreamClosedEventque 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.