Sintetizar fala com streaming bidirecional

Este documento orienta sobre o processo de sintetização de áudio com streaming bidirecional.

Com o streaming bidirecional, é possível enviar entradas de texto e receber dados de áudio simultaneamente. Isso significa que você pode começar a sintetizar a fala antes que o texto de entrada completo seja enviado, o que reduz a latência e permite interações em tempo real. Assistentes de voz e jogos interativos usam streaming bidirecional para criar aplicativos mais dinâmicos e responsivos.

Para saber mais sobre os conceitos básicos do Text-to-Speech, leia Princípios básicos do Text-to-Speech.

Antes de começar

Antes de enviar uma solicitação para a API Text-to-Speech, é preciso concluir as ações a seguir. Consulte a página antes de começar para ver os detalhes.

Sintetizar fala com streaming bidirecional

Instale a biblioteca de cliente

Python

Antes de instalar a biblioteca, verifique se você preparou seu ambiente para o desenvolvimento do Python.

pip install --upgrade google-cloud-texttospeech

Enviar um stream de texto e receber um stream de áudio

A API aceita um fluxo de solicitações com o tipo StreamingSynthesizeRequest, que contém StreamingSynthesisInput ou StreamingSynthesizeConfig.

Antes de enviar um stream StreamingSynthesizeRequest com StreamingSynthesisInput, que fornece entrada de texto, envie exatamente um StreamingSynthesizeRequest com um StreamingSynthesizeConfig.

A transmissão da Text-to-Speech é compatível apenas com as vozes em alta definição do Chirp 3.

Python

Antes de executar o exemplo, verifique se você preparou o ambiente para o desenvolvimento em Python.

#!/usr/bin/env python # Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # #      http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #  """Google Cloud Text-To-Speech API streaming sample application .  Example usage:     python streaming_tts_quickstart.py """   def run_streaming_tts_quickstart():     """Synthesizes speech from a stream of input text."""     from google.cloud import texttospeech      client = texttospeech.TextToSpeechClient()      # See https://cloud.google.com/text-to-speech/docs/voices for all voices.     streaming_config = texttospeech.StreamingSynthesizeConfig(         voice=texttospeech.VoiceSelectionParams(             name="en-US-Chirp3-HD-Charon",             language_code="en-US",         )     )      # Set the config for your stream. The first request must contain your config, and then each subsequent request must contain text.     config_request = texttospeech.StreamingSynthesizeRequest(         streaming_config=streaming_config     )      text_iterator = [         "Hello there. ",         "How are you ",         "today? It's ",         "such nice weather outside.",     ]      # Request generator. Consider using Gemini or another LLM with output streaming as a generator.     def request_generator():         yield config_request         for text in text_iterator:             yield texttospeech.StreamingSynthesizeRequest(                 input=texttospeech.StreamingSynthesisInput(text=text)             )      streaming_responses = client.streaming_synthesize(request_generator())      for response in streaming_responses:         print(f"Audio content size in bytes is: {len(response.audio_content)}")   if __name__ == "__main__":     run_streaming_tts_quickstart() 

Limpar

Para evitar cobranças desnecessárias do Google Cloud Platform, use o Google Cloud console para excluir o projeto se ele não for mais necessário.

A seguir