Melakukan sintesis ucapan dengan streaming dua arah

Dokumen ini akan memandu Anda dalam proses menyintesis audio menggunakan streaming dua arah.

Streaming dua arah memungkinkan Anda mengirim input teks dan menerima data audio secara bersamaan. Artinya, Anda dapat mulai menyintesis ucapan sebelum teks input lengkap dikirim, yang mengurangi latensi dan memungkinkan interaksi real-time. Asisten suara dan game interaktif menggunakan streaming dua arah untuk membuat aplikasi yang lebih dinamis dan responsif.

Untuk mempelajari lebih lanjut tentang konsep dasar dalam Text-to-Speech, baca Dasar-Dasar Text-to-Speech.

Sebelum memulai

Sebelum dapat mengirim permintaan ke Text-to-Speech API, Anda harus sudah menyelesaikan tindakan berikut. Lihat halaman sebelum memulai untuk mengetahui detailnya.

Melakukan sintesis ucapan dengan streaming dua arah

Menginstal library klien

Python

Sebelum menginstal library, pastikan Anda telah menyiapkan lingkungan untuk pengembangan Python.

pip install --upgrade google-cloud-texttospeech

Mengirim aliran teks dan menerima aliran audio

API menerima aliran permintaan dengan jenis StreamingSynthesizeRequest, yang berisi StreamingSynthesisInput atau StreamingSynthesizeConfig.

Sebelum mengirim streaming StreamingSynthesizeRequest dengan StreamingSynthesisInput, yang menyediakan input teks, kirim tepat satu StreamingSynthesizeRequest dengan StreamingSynthesizeConfig.

Text-to-Speech streaming hanya kompatibel dengan suara Perjalanan.

Python

Sebelum menjalankan contoh, pastikan Anda telah menyiapkan lingkungan untuk pengembangan 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()

Pembersihan

Untuk menghindari tagihan Google Cloud Platform yang tidak diperlukan, gunakan konsol Google Cloud untuk menghapus project jika Anda tidak membutuhkannya.

Langkah berikutnya

  • Pelajari Cloud Text-to-Speech lebih lanjut dengan membaca dasar-dasarnya.
  • Tinjau daftar suara yang tersedia yang dapat Anda gunakan untuk ucapan sintetis.