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 wurde. Dadurch wird die Latenz verringert und Interaktionen in Echtzeit werden ermöglicht. Bei Sprachassistenten und interaktiven Spielen wird bidirektionales Streaming verwendet, um dynamischere Anwendungen zu erstellen, die schneller reagieren.

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

Vorbereitung

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 StreamingSynthesizeConfig.

Das Streamen von 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

Wenn Sie das Projekt nicht mehr benötigen, löschen Sie es mit derGoogle Cloud console , um unnötige Kosten für die Google Cloud Platform zu vermeiden.

Weitere Informationen