Dokumen ini menjelaskan cara mengonfigurasi respons ucapan yang disintesis dan deteksi aktivitas suara di Gemini Live API. Anda dapat mengonfigurasi respons dalam berbagai suara dan bahasa HD, serta mengonfigurasi setelan deteksi aktivitas suara untuk memungkinkan pengguna menginterupsi model.
Menyetel bahasa dan suara
Model audio live seperti gemini-3.8-live dapat beralih antarbahasa secara alami selama percakapan. Anda juga dapat membatasi bahasa yang digunakan untuk berbicara
dengan menentukannya dalam petunjuk sistem.
Suara dikonfigurasi di kolom voice_name untuk semua model.
Contoh kode berikut menunjukkan cara mengonfigurasi bahasa dan suara.
from google.genai.types import LiveConnectConfig, SpeechConfig, VoiceConfig, PrebuiltVoiceConfig config = LiveConnectConfig( response_modalities=["AUDIO"], speech_config=SpeechConfig( voice_config=VoiceConfig( prebuilt_voice_config=PrebuiltVoiceConfig( voice_name=voice_name, ) ), language_code="en-US", ), )
Gaya dan aksen suara panduan
Anda dapat memandu gaya bahasa dan aksen suara menggunakan petunjuk sistem, dan Gemini Live API akan merespons dengan suara yang Anda perintahkan. Misalnya, "Bahasa Inggris dengan suara yang positif dan bersemangat dengan aksen Prancis."
Suara yang didukung
Gemini Live API mendukung 30 opsi suara berikut di kolom
voice_name:
|
Zephyr -- Bright Kore -- Firm Orus -- Firm Autonoe -- Bright Umbriel -- Easy-going Erinome -- Clear Laomedeia -- Upbeat Schedar -- Even Achird -- Friendly Sadachbia -- Lively |
Puck -- Upbeat Fenrir -- Excitable Aoede -- Breezy Enceladus -- Breathy Algieba -- Smooth Algenib -- Gravelly Achernar -- Soft Gacrux -- Mature Zubenelgenubi -- Casual Sadaltager -- Knowledgeable |
Charon -- Informatif Leda -- Muda Callirrhoe -- Santai Iapetus -- Jelas Despina -- Halus Rasalgethi -- Informatif Alnilam -- Tegas Pulcherrima -- Maju Vindemiatrix -- Lembut Sulafat -- Hangat |
Bahasa yang didukung
Gemini Live API mendukung bahasa berikut:
| Bahasa | Kode BCP-47 |
|---|---|
| Arab (Mesir) | ar-EG |
| Bengali (Bangladesh) | bn-BD |
| Belanda (Belanda) | nl-NL |
| Inggris (India) | Paket en-IN & hi-IN |
| Inggris (AS) | en-US |
| Prancis (Prancis) | fr-FR |
| Jerman (Jerman) | de-DE |
| Hindi (India) | hi-IN |
| Indonesia (Indonesia) | id-ID |
| Italia (Italia) | it-IT |
| Jepang (Jepang) | ja-JP |
| Korea (Korea) | ko-KR |
| Marathi (India) | mr-IN |
| Polandia (Polandia) | pl-PL |
| Portugis (Brasil) | pt-BR |
| Rumania (Rumania) | ro-RO |
| Rusia (Rusia) | ru-RU |
| Spanyol (AS) | es-US |
| Tamil (India) | ta-IN |
| Telugu (India) | te-IN |
| Thai (Thailand) | th-TH |
| Turkiye (Turkiye) | tr-TR |
| Ukraina (Ukraina) | uk-UA |
| Vietnam (Vietnam) | vi-VN |
Menggunakan suara kustom
Daripada suara bawaan, Anda dapat memberikan rekaman singkat suara yang direplikasi oleh Gemini Live API dalam respons ucapan yang disintesis. Suara
kustom dikonfigurasi per sesi di kolom replicated_voice_config dari
voice_config. Anda tidak perlu mengupload atau melatih apa pun sebelumnya.
Persyaratan contoh suara
Contoh suara harus memenuhi spesifikasi berikut:
Format audio: Audio PCM
s16ledengan kecepatan sampel variabel, misalnyaaudio/pcm;rate=24000Durasi: 10 hingga 20 detik.
Merekam suara kustom
Saat merekam sampel suara, sebaiknya ikuti tips berikut untuk mendapatkan kualitas suara terbaik:
Berbicara secara alami: Jangan menggunakan "suara radio" atau melafalkan kata secara berlebihan kecuali jika Anda ingin avatar terdengar seperti penyiar. Baca skrip persis seperti Anda berbicara dengan teman.
Batasi suara bising di latar belakang: Batasi suara bising di latar belakang sebanyak mungkin: matikan kipas angin, matikan AC, dan tutup semua jendela yang terbuka.
Tersenyum sedikit: Tersenyum saat merekam cenderung membuat Anda menambahkan kehangatan ke rekaman, dan kehangatan tersebut kemudian ditambahkan ke suara yang direplikasi.
Skrip yang direkomendasikan untuk suara kustom
Sebaiknya gunakan salah satu skrip berikut untuk merekam suara kustom:
Standar fonetik, terbaik untuk kualitas keseluruhan: "Saat sinar matahari mengenai tetesan hujan di udara, tetesan hujan tersebut bertindak seperti prisma dan membentuk pelangi. Pelangi adalah pembagian cahaya putih menjadi banyak warna indah. Jembatan ini berbentuk lengkungan bulat panjang."
Storyteller, paling cocok untuk merekam emosi dan rentang dinamis: "Saya tidak bisa memercayai mata saya saat membuka buku tua berdebu itu. Sebuah kunci emas kecil berbunyi di lantai kayu. 'Dari mana ini berasal?' Aku berbisik pada diriku sendiri, merasakan sensasi kegembiraan yang tiba-tiba. Semuanya akan berubah."
Menyetel suara kustom
Konfigurasi suara kustom dalam payload setup awal yang Anda kirim melalui koneksi WebSocket:
import base64 import json import websockets # Load custom voice audio (PCM s16le, e.g., 24kHz) with open("/path/to/your/audio_sample.wav", "rb") as f: wav_b64 = base64.b64encode(f.read()).decode("utf-8") # Setup generation config with custom voice GENERATION_CONFIG = { "response_modalities": ["AUDIO"], "speech_config": { "voice_config": { "replicated_voice_config": { "voice_sample_audio": "VOICE_SAMPLE", "mime_type": "VOICE_MIME_TYPEaudio/pcm;rate=24000", } } }, } # Session setup message SETUP_MESSAGE = { "setup": { "model": "gemini-3.8-live", "generation_config": GENERATION_CONFIG, "system_instruction": { "parts": [{"text": "Your system instruction here"}] }, "input_audio_transcription": {}, "output_audio_transcription": {}, } }
Ganti kode berikut:
VOICE_SAMPLE: string audio PCM berenkode base64 (sampel 10-20 detik ).
VOICE_MIME_TYPE: Jenis MIME untuk audio PCM, misalnya
"audio/pcm;rate=24000".
Anda dapat menyandingkan suara kustom dengan avatar bawaan atau avatar kustom. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi avatar live.
Mengonfigurasi deteksi aktivitas suara
Deteksi aktivitas suara (VAD) memungkinkan model mengenali saat seseorang sedang berbicara. Hal ini penting untuk menciptakan percakapan yang alami, karena memungkinkan pengguna menyela model kapan saja.
Saat VAD mendeteksi gangguan, pembuatan yang sedang berlangsung akan dibatalkan dan
dihapus. Hanya informasi yang sudah dikirim ke klien yang dipertahankan dalam histori sesi. Kemudian, server mengirimkan pesan BidiGenerateContentServerContent
untuk melaporkan gangguan. Server kemudian membatalkan panggilan fungsi yang tertunda dan mengirim pesan BidiGenerateContentServerContent dengan ID panggilan yang dibatalkan.
Python
config = { "response_modalities": ["audio"], "realtime_input_config": { "automatic_activity_detection": { "disabled": False, # default "start_of_speech_sensitivity": "low", "end_of_speech_sensitivity": "low", "prefix_padding_ms": 20, "silence_duration_ms": 100, } } }