Sprache mit bidirektionalem Streaming synthetisieren

In diesem Dokument wird beschrieben, wie Sie Audioinhalte mithilfe von bidirektionalem Streaming synthetisieren.

Mit bidirektionalem Streaming können Sie gleichzeitig Texteingaben senden und Audiodaten empfangen. Das bedeutet, dass Sie mit der Sprachsynthese beginnen können, bevor der vollständige Eingabetext gesendet wird. Dadurch wird die Latenz verringert und Interaktionen in Echtzeit werden ermöglicht. Sprachassistenten und interaktive Spiele verwenden bidirektionales Streaming, um dynamischere und reaktionsschnellere Anwendungen zu erstellen.

Weitere Informationen zu den grundlegenden Konzepten von Text-to-Speech finden Sie unter Grundlagen von Text-to-Speech.

Hinweis

Bevor Sie eine Anfrage an die Text-to-Speech API senden können, müssen Sie die folgenden Aktionen ausgeführt haben. Weitere Informationen finden Sie auf der Seite Vorbereitung.

Sprache mit bidirektionalem Streaming synthetisieren

Clientbibliothek installieren

Python

Bevor Sie die Bibliothek installieren, prüfen Sie, ob Sie Ihre Umgebung auf die Python-Entwicklung vorbereitet haben.

pip install --upgrade google-cloud-texttospeech

Textstream senden und Audiostream empfangen

Die API akzeptiert einen Stream von Anfragen vom Typ StreamingSynthesizeRequest, die entweder StreamingSynthesisInput oder StreamingSynthesizeConfig enthalten.

Bevor Sie einen Stream StreamingSynthesizeRequest mit StreamingSynthesisInput senden, der Texteingabe enthält, senden Sie genau einen StreamingSynthesizeRequest mit einem StreamingSynthesizeConfig.

Streaming-Text-to-Speech ist nur mit Chirp 3: HD-Stimmen kompatibel.

Python

Bevor Sie das Beispiel ausführen, prüfen Sie, ob Sie Ihre Umgebung auf die Python-Entwicklung vorbereitet haben.

#!/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()

Bereinigen

Löschen Sie das Projekt mit derGoogle Cloud console , wenn Sie es nicht benötigen. Damit vermeiden Sie unnötige Kosten für die Google Cloud Platform.

Nächste Schritte