Bermigrasi ke Gemini 3.8 TTS

Halaman ini menjelaskan cara beralih dari model Gemini TTS sebelumnya, seperti gemini-3.1-flash-tts-preview, gemini-2.5-flash-tts, gemini-2.5-pro-tts, dan gemini-2.5-flash-lite-preview-tts, ke Gemini 3.8 Flash TTS (gemini-3.8-flash-tts) dan Gemini 3.8 Flash-Lite TTS (gemini-3.8-flash-lite-tts). Model sebelumnya didokumentasikan di Gemini-TTS dalam Google Cloud dokumentasi Text-to-Speech.

Memilih model pengganti

  • Gemini 3.8 Flash-Lite TTS adalah pengganti yang direkomendasikan untuk gemini-3.1-flash-tts-preview. Pilih opsi ini untuk produksi volume tinggi, agen suara, fitur baca lisan, dan ucapan satu speaker sehari-hari.
  • Gemini 3.8 Flash TTS adalah model unggulan. Pilih opsi ini jika kesetiaan suara, nuansa akting, dialog multi-pembicara, atau cakupan dialek adalah hal yang paling penting, seperti untuk buku audio dan narasi studio.

Kedua model menggunakan skema permintaan yang sama, sehingga Anda dapat beralih di antara keduanya dengan mengubah ID model. Untuk perbandingan, lihat Kapan harus menggunakan model yang mana.

Ringkasan perubahan

Area Model Gemini TTS sebelumnya Model TTS Gemini 3.8
API Cloud Text-to-Speech API atau Gemini Enterprise API Khusus Gemini Enterprise API (generateContent dan streamGenerateContent)
Lokasi global dan endpoint regional global saja
Arah gaya Ditulis ke dalam teks ("Say the following in a curious way: ...") atau kolom Cloud Text-to-Speech prompt speech_metadata.style di setiap bagian
Dialog multi-penutur Awalan pembicara dalam satu blok teks, atau Cloud Text-to-Speech multiSpeakerMarkup Satu bagian per belokan dengan speech_metadata.speaker
Tag vokal inline Tanda kurung siku, seperti [sigh] Tanda kurung sudut, seperti <sigh>
Pilihan suara prebuiltVoiceConfig.voiceName voiceConfig.voice, yang juga menerima ID suara yang dirancang dan kunci replikasi suara. prebuiltVoiceConfig.voiceName masih berfungsi untuk suara bawaan.
Suara kustom Audio referensi inline di replicatedVoiceConfig Desain suara dan replikasi suara melalui Voices API
Output default (Gemini Enterprise API) PCM 16-bit mentah, 24 kHz, mono Permintaan unary: file WAV lengkap (PCM 16-bit, 24 kHz, mono). Permintaan streaming: PCM 16-bit mentah, tidak berubah. Anda dapat meminta encoding lain dengan responseFormat.
temperature, topP, topK Diabaikan Ditolak karena error INVALID_ARGUMENT

Memperbarui permintaan Anda

  1. Memindahkan petunjuk gaya ke dalam speech_metadata.style: Model Gemini 3.8 TTS membaca text sebagai transkrip kata demi kata, sehingga petunjuk yang ditulis dalam teks dapat dibacakan secara lisan. Masukkan arahan akting, intonasi, prosodi, dan kecepatan yang berkelanjutan ke dalam speech_metadata.style.
  2. Gunakan satu bagian per giliran dialog: Untuk dialog multi-pembicara, teruskan setiap giliran sebagai part terpisah, dan tetapkan speech_metadata.speaker di setiap giliran ke salah satu pembicara di multiSpeakerVoiceConfig.
  3. Ganti tag kurung siku dengan tag kurung sudut: Gunakan kurung sudut, seperti <sigh>, <laugh>, atau <short pause>, hanya untuk peristiwa vokal pada satu titik waktu. Tulis ketidaklancaran, seperti "ehm", langsung di transkrip.
  4. Desain persona di awal: Ganti perintah "Profil Audio" atau "Catatan Sutradara" yang panjang dengan suara yang dibuat di Desain suara, dan biarkan style singkat atau kosong.
  5. Hapus parameter yang tidak didukung: Hapus temperature, topP, topK, candidateCount, dan systemInstruction dari permintaan Anda.
  6. Menangani output WAV dari permintaan unary: Permintaan unary kini menampilkan file WAV lengkap, bukan PCM mentah. Jika kode Anda menambahkan header WAV atau menggabungkan klip, hapus langkah header, atau tetapkan generationConfig.responseFormat ke AUDIO_L16 untuk mempertahankan output PCM mentah.
  7. Membuat ulang suara yang direplikasi dengan Voices API: Audio referensi inline di replicatedVoiceConfig tidak didukung. Buat suara tersimpan atau kunci replikasi suara dengan Voices API, lalu teruskan di voiceConfig.voice. Untuk mengetahui detailnya, lihat Replikasi suara.

Untuk panduan selengkapnya tentang cara menulis perintah, lihat panduan perintah.

Contoh

Contoh berikut menunjukkan permintaan gemini-3.1-flash-tts-preview dan permintaan TTS Gemini 3.8 yang setara.

Sebelum Gemini 3.8

from google import genai
from google.genai import types

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
    model="gemini-3.1-flash-tts-preview",
    contents="Say the following in a curious way: OK, so... tell me about this [uhm] AI thing.",
    config=types.GenerateContentConfig(
        response_modalities=["AUDIO"],
        speech_config=types.SpeechConfig(
            language_code="en-US",
            voice_config=types.VoiceConfig(
                prebuilt_voice_config=types.PrebuiltVoiceConfig(voice_name="Kore")
            ),
        ),
    ),
)

Gemini 3.8 atau yang lebih baru

from google import genai

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
    model="gemini-3.8-flash-lite-tts",
    contents=[{
        "role": "user",
        "parts": [{
            "text": "OK, so... uhm, tell me about this AI thing.",
            "speech_metadata": {"style": "curious"},
        }],
    }],
    config={
        "response_modalities": ["AUDIO"],
        "speech_config": {
            "language_code": "en-US",
            "voice_config": {"voice": "Kore"},
        },
    },
)

Kedua respons menampilkan audio dalam response.candidates[0].content.parts[0].inline_data.data. Model sebelumnya menampilkan audio PCM 16-bit mentah (24 kHz, mono), dan model TTS Gemini 3.8 menampilkan file WAV lengkap.

Bermigrasi dari Cloud Text-to-Speech API

Jika Anda memanggil Gemini TTS melalui Cloud Text-to-Speech API (texttospeech.googleapis.com), kirim permintaan Anda ke metode generateContent di aiplatform.googleapis.com. Tabel berikut memetakan kolom permintaan Cloud Text-to-Speech ke kolom permintaan API Gemini Enterprise:

Cloud Text-to-Speech API (text:synthesize) Gemini Enterprise API (generateContent)
input.text contents[].parts[].text
input.prompt contents[].parts[].speechMetadata.style
input.multiSpeakerMarkup.turns[] (speaker, text) Satu bagian per giliran, dengan text dan speechMetadata.speaker
voice.modelName ID model di URL permintaan
voice.name generationConfig.speechConfig.voiceConfig.voice
voice.languageCode generationConfig.speechConfig.languageCode
voice.multiSpeakerVoiceConfig.speakerVoiceConfigs[] (speakerAlias, speakerId) generationConfig.speechConfig.multiSpeakerVoiceConfig.speakerVoiceConfigs[] (speaker, voiceConfig.voice)
audioConfig.audioEncoding: LINEAR16 generationConfig.responseFormat[].audio.mimeType: AUDIO_WAV (default untuk permintaan unary)
audioConfig.audioEncoding: PCM AUDIO_L16 (default untuk permintaan streaming)
audioConfig.audioEncoding: MULAW atau ALAW AUDIO_MULAW atau AUDIO_ALAW
audioConfig.audioEncoding: MP3 atau OGG_OPUS Tidak didukung. Enkode audio di klien.
audioConfig.sampleRateHertz Tidak didukung. Untuk frekuensi sampling output, lihat Format output audio.

Cloud Text-to-Speech API menampilkan audio berenkode base64 dalam audioContent. Gemini Enterprise API menampilkannya dalam candidates[0].content.parts[0].inlineData.data.

Langkah berikutnya