本文說明如何在 Gemini Live API 中設定合成語音回覆和語音活動偵測功能。您可以設定以各種 HD 語音和語言回覆,也可以設定語音活動偵測設定,允許使用者中斷模型。
設定語言和語音
即時音訊模型 (例如 gemini-3.8-live) 可在對話期間自然切換語言。你也可以在系統指令中指定語言,限制 Gemini 說話時使用的語言。
所有模型的語音都是在 voice_name 欄位中設定。
下列程式碼範例說明如何設定語言和語音。
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", ), )
引導語音的語氣和口音
你可以使用系統指令引導語音的語氣和口音,Gemini Live API 會以你指示的語音回覆。例如「用帶有法文口音的正面開朗語氣說英文」。
支援的語音
Gemini Live API 在 voice_name 欄位中支援下列 30 種語音選項:
|
Zephyr -- 明亮 Kore -- 堅定 Orus -- 堅定 Autonoe -- 明亮 Umbriel -- 輕鬆 Erinome -- 清晰 Laomedeia -- 輕快 Schedar -- 平穩 Achird -- 友善 Sadachbia -- 活潑 |
Puck:活潑 Fenrir:興奮 Aoede:輕快 Enceladus:輕柔 Algieba:柔和 Algenib:沙啞 Achernar:輕柔 Gacrux:成熟 Zubenelgenubi:隨和 Sadaltager:博學 |
Charon:資訊豐富 Leda:年輕 Callirrhoe:輕鬆 Iapetus:清晰 Despina:流暢 Rasalgethi:資訊豐富 Alnilam:堅定 Pulcherrima:積極 Vindemiatrix:溫和 Sulafat:溫暖 |
支援的語言
Gemini Live API 支援下列語言:
| 語言 | BCP-47 代碼 |
|---|---|
| 阿拉伯文 (埃及) | ar-EG |
| 孟加拉文 (孟加拉) | bn-BD |
| 荷蘭文 (荷蘭) | nl-NL |
| 英文 (印度) | en-IN 和 hi-IN 套裝組合 |
| 英文 (美國) | en-US |
| 法文 (法國) | fr-FR |
| 德文 (德國) | de-DE |
| 北印度文 (印度) | hi-IN |
| 印尼文 (印尼) | id-ID |
| 義大利文 (義大利) | it-IT |
| 日文 (日本) | ja-JP |
| 韓文 (韓國) | ko-KR |
| 馬拉地文 (印度) | mr-IN |
| 波蘭文 (波蘭) | pl-PL |
| 葡萄牙文 (巴西) | pt-BR |
| 羅馬尼亞文 (羅馬尼亞) | ro-RO |
| 俄文 (俄羅斯) | ru-RU |
| 西班牙文 (美國) | es-US |
| 泰米爾文 (印度) | ta-IN |
| 泰盧固文 (印度) | te-IN |
| 泰文 (泰國) | th-TH |
| 土耳其文 (土耳其) | tr-TR |
| 烏克蘭文 (烏克蘭) | uk-UA |
| 越南文 (越南) | vi-VN |
使用自訂聲音
您可以提供一段短錄音,讓 Gemini Live API 複製語音,並用於合成語音回覆,不必使用預建語音。自訂語音是在 voice_config 的 replicated_voice_config 欄位中,為每個工作階段設定。不需要事先上傳或訓練。
語音樣本規定
語音樣本必須符合下列規格:
音訊格式:PCM 音訊
s16le,取樣率可變動,例如audio/pcm;rate=24000時間長度:10 到 20 秒。
錄製自訂語音
錄製語音樣本時,建議您參考下列提示,確保語音品質最佳:
自然說話:除非希望虛擬化身聽起來像廣播員,否則請勿使用「廣播腔」或過度咬字清晰。請像跟朋友說話一樣,一字不漏地朗讀腳本。
減少背景噪音:盡可能減少背景噪音,例如關閉風扇、空調和任何開啟的窗戶。
稍微微笑:錄製時微笑有助於在錄音中加入溫暖的感覺,而複製的聲音也會帶有這種感覺。
自訂語音建議指令碼
建議使用下列任一腳本錄製自訂聲音:
語音標準,最適合整體品質:「當陽光照射到空氣中的雨滴時,雨滴會像稜鏡一樣形成彩虹。彩虹就是白色的光被發散出各種絢爛的色彩。這些拱門呈長圓弧形。」
說故事,最適合捕捉情緒和動態範圍:「我打開這本塵封已久的舊書時,簡直不敢相信自己的眼睛。一小把金鑰掉到木質地板上,「這是從哪裡來的?」我對自己輕聲說道,突然感到一陣興奮。一切即將改變。」
設定自訂聲音
在透過 WebSocket 連線傳送的初始 setup 酬載中,設定自訂聲音:
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": {}, } }
更改下列內容:
VOICE_SAMPLE:以 base64 編碼的 PCM 音訊字串 (10 到 20 秒的樣本)。
VOICE_MIME_TYPE:PCM 音訊的 MIME 類型,例如
"audio/pcm;rate=24000"。
你可以將自訂語音與預建或自訂虛擬化身配對。詳情請參閱「設定即時虛擬人偶」。
設定語音活動偵測
語音活動偵測 (VAD) 可讓模型辨識使用者何時說話。這項功能對於建立自然對話至關重要,因為使用者隨時可以中斷模型。
VAD 偵測到中斷時,系統會取消並捨棄正在進行的生成作業。工作階段記錄只會保留已傳送給用戶端的資訊。伺服器接著會傳送訊息,回報中斷情形。BidiGenerateContentServerContent伺服器接著會捨棄所有待處理的函式呼叫,並傳送含有已取消呼叫 ID 的 BidiGenerateContentServerContent 訊息。
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, } } }