Chirp 3: Suara HD

Text-to-Speech Chirp 3: Suara HD mewakili generasi terbaru teknologi Text-to-Speech. Didukung oleh LLM canggih kami, suara ini memberikan tingkat realisme dan resonansi emosional yang tak tertandingi.

Coba notebook Colab Lihat notebook di GitHub

Opsi Suara

Berbagai opsi suara tersedia, masing-masing dengan karakteristik yang berbeda:

Nama Gender Demo
Aoede Perempuan
Puck Laki-laki
Charon Laki-laki
Kore Perempuan
Fenrir Laki-laki
Leda Perempuan
Orus Laki-laki
Zephyr Perempuan
Achird Laki-laki
Algenib Laki-laki
Algieba Laki-laki
Alnilam Laki-laki
Autonoe Perempuan
Callirrhoe Perempuan
Despina Perempuan
Enceladus Laki-laki
Erinome Perempuan
Gacrux Perempuan
Iapetus Laki-laki
Laomedeia Perempuan
Pulcherrima Perempuan
Rasalgethi Laki-laki
Sadachbia Laki-laki
Sadaltager Laki-laki
Schedar Laki-laki
Sulafat Perempuan
Umbriel Laki-laki
Vindemiatrix Perempuan
Zubenelgenubi Laki-laki
Achernar Perempuan

Ketersediaan Bahasa

Chirp 3: Suara HD didukung dalam bahasa berikut:

Bahasa Kode BCP-47
Inggris (Amerika Serikat) en-US
Inggris (Australia) en-AU
Inggris (Inggris Raya) en-GB
Inggris (India) en-IN
Spanyol (Amerika Serikat) es-US
Jerman (Jerman) de-DE
Prancis (Prancis) fr-FR
Hindi (India) hi-IN
Portugis (Brasil) pt-BR
Arab (Umum) ar-XA
Spanyol (Spanyol) es-ES
Prancis (Kanada) fr-CA
Indonesia (Indonesia) id-ID
Italia (Italia) it-IT
Jepang (Jepang) ja-JP
Turki (Turki) tr-TR
Vietnam (Vietnam) vi-VN
Bengali (India) bn-IN
Gujarati (India) gu-IN
Kannada (India) kn-IN
Malayalam (India) ml-IN
Marathi (India) mr-IN
Tamil (India) ta-IN
Telugu (India) te-IN
Belanda (Belgia) nl-BE
Belanda (Belanda) nl-NL
Korea (Korea Selatan) ko-KR
Mandarin (China) cmn-CN
Polandia (Polandia) pl-PL
Rusia (Rusia) ru-RU
Swahili (Kenya) sw-KE
Thai (Thailand) th-TH
Urdu (India) ur-IN
Ukraina (Ukraina) uk-UA

Ketersediaan Regional

Chirp 3: Suara HD tersedia di Google Cloud region berikut:

Google Cloud Zona Kesiapan Peluncuran
global GA
us GA
eu GA
asia-southeast1 GA

Format output yang didukung

Format respons default adalah LINEAR16, tetapi format lain yang didukung mencakup:

Metode API Format
streaming ALAW, MULAW, OGG_OPUS, dan PCM
batch ALAW, MULAW, MP3, OGG_OPUS, dan PCM

Menggunakan Chirp 3: Suara HD

Cari tahu cara menggunakan Chirp 3: Suara HD untuk menyintesis ucapan.

Menjalankan permintaan sintesis ucapan streaming

Python

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Text-to-Speech, lihat library klien Text-to-Speech. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Text-to-Speech Python API.

Untuk mengautentikasi ke Text-to-Speech, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

"""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)}")

Melakukan permintaan sintesis ucapan online

Python

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Text-to-Speech, lihat library klien Text-to-Speech. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Text-to-Speech Python API.

Untuk mengautentikasi ke Text-to-Speech, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

def synthesize_text():
    """Synthesizes speech from the input string of text."""
    from google.cloud import texttospeech

    text = "Hello there."
    client = texttospeech.TextToSpeechClient()

    input_text = texttospeech.SynthesisInput(text=text)

    # Note: the voice can also be specified by name.
    # Names of voices can be retrieved with client.list_voices().
    voice = texttospeech.VoiceSelectionParams(
        language_code="en-US",
        name="en-US-Chirp3-HD-Charon",
    )

    audio_config = texttospeech.AudioConfig(
        audio_encoding=texttospeech.AudioEncoding.MP3
    )

    response = client.synthesize_speech(
        input=input_text,
        voice=voice,
        audio_config=audio_config,
    )

    # The response's audio_content is binary.
    with open("output.mp3", "wb") as out:
        out.write(response.audio_content)
        print('Audio content written to file "output.mp3"')

Tips pembuatan skrip dan perintah

Membuat audio yang menarik dan terdengar alami dari teks memerlukan pemahaman tentang nuansa bahasa lisan dan menerjemahkannya ke dalam bentuk skrip. Tips berikut akan membantu Anda membuat skrip yang terdengar autentik dan menangkap nuansa yang dipilih.

Memahami Tujuan: Ucapan Alami

Tujuan utamanya adalah membuat suara yang disintesis terdengar sedekat mungkin dengan suara manusia alami. Hal ini meliputi:

  • Meniru Tempo Alami: Seberapa cepat atau lambat seseorang berbicara.
  • Membuat Alur yang Mulus: Memastikan transisi yang lancar antara kalimat dan frasa.
  • Menambahkan Jeda yang Realistis: Memasukkan jeda untuk penekanan dan kejelasan.
  • Menangkap Nada Percakapan: Membuat audio terdengar seperti percakapan sungguhan.

Teknik Utama untuk Ucapan Alami

  • Tanda Baca untuk Kecepatan dan Alur

    • Titik (.): Menunjukkan jeda penuh dan jeda yang lebih lama. Gunakan tanda baca untuk memisahkan pemikiran yang lengkap dan membuat batas kalimat yang jelas.
    • Koma (,): Menandakan jeda yang lebih pendek dalam kalimat. Gunakan untuk memisahkan klausa, item daftar, atau jeda singkat untuk mengatur napas.
    • Elipsis (...): Menunjukkan jeda yang lebih lama dan lebih disengaja. Ellipsis dapat menunjukkan pikiran yang tertinggal, keraguan, atau jeda dramatis.
      • Contoh: "Lalu... terjadilah."
    • Tanda hubung (-): Dapat digunakan untuk menunjukkan jeda singkat atau perubahan pikiran yang tiba-tiba.
      • Contoh: "Saya ingin mengatakan - tetapi saya tidak bisa."
  • Menyertakan Jeda dan Ketidaklancaran

    • Jeda Strategis: Gunakan elipsis, koma, atau tanda hubung untuk membuat jeda di tempat-tempat yang secara alami akan dijeda oleh pembicara manusia untuk menarik napas atau memberikan penekanan.
    • Ketidaklancaran (Um dan Eh): Meskipun beberapa model Text-to-Speech menangani ketidaklancaran secara otomatis, memahami perannya sangat penting. Fitur ini menambahkan keaslian dan membuat ucapan terdengar tidak seperti robot. Meskipun model menambahkannya, mengetahui di mana jeda tersebut akan muncul secara alami dalam ucapan manusia akan membantu Anda memahami alur keseluruhan skrip.
  • Eksperimen dan Iterasi

    • Mensintesis ulang: Jangan takut untuk mensintesis ulang pesan yang sama dengan suara yang sama beberapa kali. Penyesuaian kecil pada tanda baca, spasi, atau pilihan kata dapat memengaruhi audio akhir secara signifikan.
    • Dengarkan dengan Cermat: Perhatikan dengan cermat tempo, alur, dan keseluruhan nada audio yang disintesis. Identifikasi area yang terdengar tidak wajar dan sesuaikan skrip Anda.
    • Variasi Suara: Jika sistem mengizinkannya, coba gunakan suara yang berbeda untuk melihat mana yang paling sesuai dengan skrip dan nada yang Anda pilih.
  • Tips Pembuatan Skrip Praktis

    • Baca Lisan: Sebelum melakukan sintesis, baca skrip Anda dengan keras. Cara ini akan membantu Anda mengidentifikasi frasa yang canggung, jeda yang tidak alami, dan area yang perlu disesuaikan.
    • Menulis dengan Gaya Percakapan: Gunakan singkatan (misalnya, "it's", "we're") dan bahasa informal untuk membuat skrip terdengar lebih alami.
    • Pertimbangkan Konteks: Nuansa dan kecepatan naskah harus sesuai dengan konteks audio. Presentasi formal akan memerlukan pendekatan yang berbeda dengan percakapan santai.
    • Mengurai Kalimat yang Kompleks: Kalimat yang panjang dan berbelit-belit dapat menyulitkan mesin TTS. Pecah kalimat tersebut menjadi kalimat yang lebih pendek dan lebih mudah dikelola.
  • Peningkatan Skrip Contoh

    • Skrip Asli (Robotik): "Produk kini tersedia. Kami memiliki fitur baru. Ini sangat menarik."

    • Skrip yang Lebih Baik (Alami): "Produk ini kini tersedia... dan kami telah menambahkan beberapa fitur baru yang menarik. Ini, yah, sangat menarik."

    • Skrip Asli (Robotik): "Ini adalah pesan konfirmasi otomatis. Reservasi Anda telah diproses. Detail berikut berkaitan dengan masa inap Anda mendatang. Nomor reservasi adalah 12345. Nama tamu yang terdaftar adalah Anthony Vasquez. Tanggal kedatangan adalah 14 Maret. Tanggal keberangkatan adalah 16 Maret. Jenis kamar adalah Deluxe Suite. Jumlah tamu adalah 1 orang. Waktu check-in adalah pukul 15.00. Waktu check-out adalah pukul 11.00. Perhatikan bahwa kebijakan pembatalan memerlukan pemberitahuan 48 jam sebelum kedatangan. Jika tidak memberi tahu dalam jangka waktu ini, Anda akan dikenai biaya menginap satu malam. Fasilitas tambahan yang termasuk dalam reservasi Anda adalah: Wi-Fi gratis, akses ke pusat kebugaran, dan sarapan gratis. Jika ada pertanyaan, hubungi langsung pihak hotel di 855-555-6689. Terima kasih telah memilih hotel kami."

    • Skrip yang Lebih Baik (Alami): "Halo Anthony Vasquez! Kami sangat senang mengonfirmasi pemesanan Anda bersama kami. Anda siap menginap mulai 14 hingga 16 Maret di Deluxe Suite kami yang indah. Harga tersebut untuk 1 tamu. Nomor konfirmasi Anda adalah 12345, jika Anda memerlukannya.

      Jadi, sebagai pengingat singkat, check-in dilakukan pada pukul 15.00, dan check-out pada pukul 11.00.

      Sekarang, kami ingin memberitahukan kebijakan pembatalan kami… jika Anda perlu membatalkan, cukup beri tahu kami setidaknya 48 jam sebelum kedatangan Anda, oke? Jika tidak, Anda akan dikenai biaya untuk menginap satu malam.

      Untuk membuat masa menginap Anda lebih menyenangkan, Anda akan mendapatkan Wi-Fi gratis, akses ke pusat kebugaran kami, dan sarapan gratis yang lezat setiap pagi.

      Jika ada pertanyaan, jangan ragu untuk menghubungi kami di 855-555-6689. Kami tidak sabar untuk menyambut Anda di hotel."

    • Penjelasan Perubahan:

      • Elipsis (...) memberikan jeda untuk penekanan.
      • "dan kami telah" menggunakan kontraksi untuk nada bicara yang lebih percakapan.
      • "Ya, ini sangat menarik" menambahkan sedikit ketidaklancaran, dan penekanan.
      • Pengingat ramah "Oke?" melembutkan nada bicara.

    Dengan mengikuti panduan ini, Anda dapat membuat skrip text-to-audio yang terdengar alami, menarik, dan seperti manusia. Ingatlah bahwa latihan dan eksperimen adalah kunci untuk menguasai keterampilan ini.

Chirp 3: Kontrol suara HD

Fitur kontrol suara khusus untuk sintesis suara HD. Perhatikan bahwa Chirp 3: Suara HD tidak mendukung SSML, tetapi Anda tetap dapat mengelola kontrol kecepatan, kontrol jeda, dan pengucapan kustom melalui Chirp 3: Opsi kontrol suara HD.

Kontrol kecepatan

Anda dapat menyesuaikan kecepatan audio yang dihasilkan menggunakan parameter kecepatan. Parameter kecepatan memungkinkan Anda memperlambat atau mempercepat ucapan, dengan nilai mulai dari 0,25x (sangat lambat) hingga 2x (sangat cepat). Untuk mengatur kecepatan, gunakan parameter speaking_rate dalam permintaan Anda. Pilih nilai antara 0,25 dan 2,0. Nilai di bawah 1,0 memperlambat ucapan, dan nilai di atas 1,0 mempercepatnya. Nilai 1,0 menunjukkan kecepatan yang tidak disesuaikan.

Contoh SynthesizeSpeechRequest menggunakan kontrol kecepatan:

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
    "speaking_rate": 2.0,
  },
  "input": {
    "text": "Once upon a time, there was a cute cat. He was so cute that he got lots of treats.",
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Contoh StreamingSynthesizeConfig menggunakan kontrol kecepatan:

{
  "streaming_audio_config": {
    "audio_encoding": "LINEAR16",
    "speaking_rate": 2.0,
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Sampel audio kontrol kecepatan:

Kecepatan bicara Output
0,5
1,0
2.0

Kontrol jeda

Anda dapat menyisipkan jeda ke dalam ucapan yang dihasilkan AI dengan menyematkan tag khusus langsung ke dalam teks menggunakan kolom input markup. Perhatikan bahwa tag jeda hanya akan berfungsi di kolom markup, dan bukan di kolom text.

Tag ini memberi sinyal kepada AI untuk membuat jeda, tetapi durasi jeda ini tidak tetap. AI menyesuaikan durasi berdasarkan konteks, seperti halnya ucapan alami manusia yang bervariasi menurut pembicara, lokasi, dan struktur kalimat. Tag jeda yang tersedia adalah [pause short], [pause long], dan [pause]. Untuk metode alternatif dalam membuat jeda tanpa menggunakan tag markup, lihat panduan pembuatan perintah dan penulisan kami.

Model AI terkadang mengabaikan tag jeda, terutama jika ditempatkan di posisi yang tidak wajar dalam teks. Anda dapat menggabungkan beberapa tag jeda untuk jeda yang lebih lama, tetapi penggunaan yang berlebihan dapat menyebabkan masalah.

Contoh SynthesizeSpeechRequest menggunakan kontrol jeda:

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "markup": "Let me take a look, [pause long] yes, I see it.",
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Contoh StreamingSynthesisInput menggunakan kontrol jeda:

{
  "markup": "Let me take a look, [pause long] yes, I see it.",
}

Jeda sampel audio kontrol:

Input markup Output
"Coba saya lihat, ya, saya melihatnya."
"Coba saya lihat, [jeda panjang] ya, saya melihatnya."

Pengucapan kustom

Anda dapat menentukan pengucapan kustom menggunakan representasi fonetik IPA atau X-SAMPA untuk kata-kata dalam teks input. Pastikan untuk menggunakan fonem yang sesuai dengan bahasa untuk rendering yang akurat. Anda dapat mempelajari lebih lanjut penggantian fonem di dokumentasi fonem kami.

Contoh SynthesizeSpeechRequest menggunakan pengucapan kustom:

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "text": "There is a dog in the boat",
    "custom_pronunciations": {
      "phrase": "dog",
      "phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
      "pronunciation": "\"k{t",
    }
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}

Contoh StreamingSynthesizeConfig menggunakan pengucapan kustom:

{
  "streaming_audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
  "custom_pronunciations": {
    "phrase": "dog",
    "phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
    "pronunciation": "\"k{t",
  }
}

Contoh audio pengucapan kustom:

Pengucapan kustom diterapkan Output
Tidak ada
"dog" diucapkan sebagai ""k{t"

Frasa yang diganti dapat diformat dengan cara apa pun, termasuk menggunakan simbol. Misalnya, jika ada potensi ambiguitas berbasis konteks dalam pencocokan frasa (yang umum dalam bahasa seperti China dan Jepang) atau kalimat yang satu kata di dalamnya dapat diucapkan dengan cara yang berbeda, frasa tersebut dapat diformat untuk menghilangkan ambiguitas. Misalnya, untuk menghindari penggantian kata baca secara tidak sengaja di input, frasa "read" dapat diformat sebagai "read1", "[read]", atau "(read)" untuk teks input dan frasa yang diganti.

Lihat contoh penerapan pengucapan kustom pada kalimat yang berisi kata read yang diucapkan dengan dua cara berbeda:

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "text": "I read1 a book, and I will now read2 it to you.",
    "custom_pronunciations": {
      "phrase": "read1",
      "phonetic_encoding": "PHONETIC_ENCODING_IPA",
      "pronunciation": "rɛd",
    }
    "custom_pronunciations": {
      "phrase": "read2",
      "phonetic_encoding": "PHONETIC_ENCODING_IPA",
      "pronunciation": "riːd",
    }
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}
Pengucapan kustom diterapkan Output
"read" diganti dengan dua cara

Selain itu, pengucapan kustom dapat digunakan dengan input markup, yang memungkinkan penggunaan tag jeda juga:

{
  "audio_config": {
    "audio_encoding": "LINEAR16",
  },
  "input": {
    "markup": "Did you [pause long] read this book?",
    "custom_pronunciations": {
      "phrase": "read",
      "phonetic_encoding": "PHONETIC_ENCODING_IPA",
      "pronunciation": "riːd",
    }
  },
  "voice": {
    "language_code": "en-US",
    "name": "en-us-Chirp3-HD-Leda",
  }
}
Pengucapan kustom yang digunakan Output
Mengganti pengucapan dengan tag jeda

Ketersediaan bahasa untuk kontrol suara

  • Kontrol kecepatan tersedia di semua lokalitas.

  • Kontrol jeda tersedia di semua lokalitas.

  • Pengucapan kustom tersedia di semua lokalitas kecuali: bn-in, gu-in, nl-be, sw-ke, th-th, uk-ua, ur-in, dan vi-vn.

FAQ

Pertanyaan umum dan jawabannya:

Bagaimana cara mengontrol kecepatan dan alur untuk meningkatkan kualitas output ucapan?

Anda dapat memanfaatkan pedoman pembuatan perintah kami dan meningkatkan kualitas perintah teks untuk meningkatkan kualitas output ucapan Anda.

Bagaimana cara mengakses suara dalam bahasa yang didukung?

Nama suara mengikuti format tertentu, sehingga memungkinkan penggunaan di seluruh bahasa yang didukung dengan menentukan suara secara unik. Formatnya mengikuti \<locale\>-\<model\>-\<voice\>. Misalnya, untuk menggunakan suara Kore untuk bahasa Inggris (Amerika Serikat) menggunakan model Chirp 3: HD voices, Anda akan menentukannya sebagai en-US-Chirp3-HD-Kore.

Apakah Chirp 3: Suara HD mendukung SSML?

Meskipun Chirp 3: Suara HD tidak berfungsi dengan SSML, Anda tetap dapat mengelola kontrol kecepatan, kontrol jeda, dan pengucapan kustom melalui opsi kontrol suara Chirp 3: Suara HD.