Sintetizza il parlato con lo streaming bidirezionale

Questo documento illustra la procedura di sintesi dell'audio tramite streaming bidirezionale.

Lo streaming bidirezionale ti consente di inviare input di testo e ricevere dati audio contemporaneamente. Ciò significa che puoi iniziare a sintetizzare il parlato prima che il testo di input completo venga inviato, il che riduce la latenza e consente interazioni in tempo reale. Gli assistenti vocali e i giochi interattivi usano lo streaming bidirezionale per creare applicazioni più dinamiche e reattive.

Per saperne di più sui concetti fondamentali di Text-to-Speech, leggi Nozioni di base su Text-to-Speech.

Prima di iniziare

Prima di poter inviare una richiesta all'API Text-to-Speech, devi aver completato le seguenti azioni. Consulta le prima di iniziare per maggiori dettagli.

Sintetizza il parlato con lo streaming bidirezionale

installa la libreria client

Python

Prima di installare la libreria, assicurati di aver preparato l'ambiente per lo sviluppo Python.

pip install --upgrade google-cloud-texttospeech

Invia uno stream di testo e ricevi uno stream di audio

L'API accetta un flusso di richieste di tipo StreamingSynthesizeRequest, che contengono StreamingSynthesisInput o StreamingSynthesizeConfig.

Prima di inviare uno stream StreamingSynthesizeRequest con StreamingSynthesisInput, che fornisce l'input di testo, invia esattamente uno StreamingSynthesizeRequest con StreamingSynthesizeConfig.

Lo streaming di Text-to-Speech è compatibile solo con le voci del percorso.

Python

Prima di eseguire l'esempio, assicurati di aver preparato l'ambiente per lo sviluppo 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
    import itertools

    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-Journey-D", 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)

    # Request generator. Consider using Gemini or another LLM with output streaming as a generator.
    def request_generator():
        yield texttospeech.StreamingSynthesizeRequest(input=texttospeech.StreamingSynthesisInput(text="Hello there. "))
        yield texttospeech.StreamingSynthesizeRequest(input=texttospeech.StreamingSynthesisInput(text="How are you "))
        yield texttospeech.StreamingSynthesizeRequest(input=texttospeech.StreamingSynthesisInput(text="today? It's "))
        yield texttospeech.StreamingSynthesizeRequest(input=texttospeech.StreamingSynthesisInput(text="such nice weather outside."))

    streaming_responses = client.streaming_synthesize(itertools.chain([config_request], 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()

Esegui la pulizia

Per evitare addebiti inutili per Google Cloud Platform, utilizza il metodo Console Google Cloud per eliminare il progetto se non ti serve.

Passaggi successivi

  • Scopri di più su Cloud Text-to-Speech leggendo il di base.
  • Esamina l'elenco di voci disponibili che puoi utilizzare per la sintesi vocale.