Chirp 3: Suara HD

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

Mencoba notebook Colab Melihat 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 region Google Cloud 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

Temukan cara menggunakan Chirp 3: Suara HD untuk menyintesis ucapan.

Melakukan 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, baca 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, baca 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 nuansa bahasa lisan dan menerjemahkannya ke dalam bentuk skrip. Tips berikut akan membantu Anda membuat skrip yang terdengar autentik dan sesuai dengan nuansa yang dipilih.

Memahami Tujuan: Ucapan Alami

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

  • Meniru Kecepatan Alami: Seberapa cepat atau lambat seseorang berbicara.
  • Membuat Alur yang Lancar: Memastikan transisi yang lancar antara kalimat dan frasa.
  • Menambahkan Jeda yang Realistis: Menyertakan 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 titik henti dan jeda yang lebih lama. Gunakan tanda baca untuk memisahkan pemikiran yang lengkap dan membuat batas kalimat yang jelas.
    • Koma (,): Memberi sinyal jeda yang lebih singkat dalam kalimat. Gunakan tanda koma untuk memisahkan klausa, mencantumkan item, atau memperkenalkan jeda singkat untuk bernapas.
    • Elips (...): Mewakili jeda yang lebih lama dan lebih disengaja. Jeda dapat menunjukkan pikiran yang tertinggal, keraguan, atau jeda dramatis.
      • Contoh: "Lalu... hal itu terjadi."
    • Tanda hubung (-): Dapat digunakan untuk menunjukkan jeda singkat atau jeda tiba-tiba dalam pikiran.
      • 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 pembicara manusia akan berhenti sejenak untuk mengambil napas atau menekankan sesuatu.
    • Ketidaklancaran (Um dan Uh): Meskipun beberapa model Text-to-Speech menangani ketidaklancaran secara otomatis, memahami perannya sangatlah penting. Hal ini akan menambah keaslian dan membuat ucapan terdengar tidak seperti robot. Meskipun model menambahkannya, mengetahui tempatnya muncul secara alami dalam ucapan manusia akan membantu Anda memahami keseluruhan alur skrip.
  • Eksperimen dan Iterasi

    • Mensintesis ulang: Jangan takut untuk menyintesis 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 Kritis: Perhatikan dengan cermat kecepatan, alur, dan nada keseluruhan 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 dipilih.
  • Tips Pembuatan Skrip Praktis

    • Bacakan: Sebelum menyintesis, bacakan skrip Anda dengan lantang. Hal ini akan membantu Anda mengidentifikasi frasa yang canggung, jeda yang tidak wajar, dan area yang perlu disesuaikan.
    • Menulis dengan Gaya Percakapan: Gunakan singkatan (mis., "it's," "we're") dan bahasa informal untuk membuat skrip terdengar lebih alami.
    • Pertimbangkan Konteks: Nuansa dan kecepatan skrip Anda harus sesuai dengan konteks audio. Presentasi formal memerlukan pendekatan yang berbeda dengan percakapan santai.
    • Membagi Kalimat Kompleks: Mesin TTS mungkin kesulitan menangani kalimat yang panjang dan berbelit-belit. Pecah menjadi kalimat yang lebih singkat dan lebih mudah dikelola.
  • Contoh Peningkatan Skrip

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

    • Skrip yang Disempurnakan (Natural): "Produk ini kini tersedia... dan kami telah menambahkan beberapa fitur baru yang menarik. Ini sangat menarik."

    • Skrip Asli (Robotik): "Ini adalah pesan konfirmasi otomatis. Reservasi Anda telah diproses. Detail berikut berkaitan dengan masa inap Anda yang akan datang. 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 tamu. Waktu check-in adalah pukul 15.00. Waktu check-out adalah pukul 11.00. Perhatikan bahwa kebijakan pembatalan memerlukan notifikasi 48 jam sebelum kedatangan. Jika Anda tidak memberi tahu dalam jangka waktu ini, Anda akan dikenai biaya menginap satu malam. Fasilitas tambahan yang disertakan dalam reservasi Anda adalah: Wi-Fi gratis, akses ke pusat kebugaran, dan sarapan gratis. Untuk pertanyaan apa pun, hubungi hotel secara langsung di 855-555-6689. Terima kasih telah memilih hotel kami."

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

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

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

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

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

    • Penjelasan Perubahan:

      • Elipsis (...) membuat jeda untuk penekanan.
      • "dan kami telah" menggunakan kontraksi untuk nada percakapan yang lebih santai.
      • "Ini, ya, sangat menarik" menambahkan sedikit ketidaklancaran dan penekanan.
      • Pengingat ramah "Oke?" akan memperhalus nada.

    Dengan mengikuti panduan ini, Anda dapat membuat skrip text-to-audio yang terdengar alami, menarik, dan seperti manusia. Ingat 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 yang berkisar dari 0,25x (sangat lambat) hingga 2x (sangat cepat). Untuk menetapkan kecepatan, gunakan parameter speaking_rate dalam permintaan Anda. Pilih nilai antara 0,25 dan 2,0. Nilai di bawah 1,0 akan memperlambat ucapan, dan nilai di atas 1,0 akan 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",
  }
}

Contoh audio kontrol kecepatan:

Kecepatan bicara Output
0,5
1,0
2.0

Kontrol jeda

Anda dapat menyisipkan jeda ke dalam ucapan yang dibuat 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 yang tepat tidak tetap. AI menyesuaikan durasi berdasarkan konteks, sama seperti ucapan manusia alami yang bervariasi dengan pembicara, lokasi, dan struktur kalimat. Tag jeda yang tersedia adalah [pause short], [pause long], dan [pause]. Untuk metode alternatif membuat jeda tanpa menggunakan tag markup, lihat panduan membuat dan memberikan perintah.

Model AI terkadang mungkin mengabaikan tag jeda, terutama jika tag tersebut 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.",
}

Contoh audio kontrol jeda:

Input markup Output
"Biarkan saya lihat, ya, saya melihatnya."
"Biarkan saya melihatnya, [jeda lama] ya, saya melihatnya."

Pengucapan kustom

Anda dapat menentukan pengucapan kustom menggunakan representasi fonetik IPA atau X-SAMPA untuk 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 mungkin diucapkan dengan cara yang berbeda, frasa dapat diformat untuk menghilangkan ambiguitas. Misalnya, untuk menghindari penggantian yang tidak disengaja pada instance lain dari kata read dalam input, frasa "read" dapat diformat sebagai "read1", "[read]", atau "(read)" untuk teks input dan frasa yang diganti.

Lihat contoh penerapan pengucapan kustom ke kalimat dengan kata read diucapkan dengan dua cara yang 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 juga memungkinkan penggunaan tag jeda:

{
  "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 output ucapan?

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

Bagaimana cara mengakses suara dalam bahasa yang didukung?

Nama suara mengikuti format tertentu, yang 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: Suara HD, Anda akan menentukannya sebagai en-US-Chirp3-HD-Kore.

Apakah Chirp 3: Suara HD mendukung SSML?

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