設定語言和語音

本文說明如何在 Gemini Live API 中設定合成語音回應和語音活動偵測功能。您可以設定以各種 HD 語音和語言回覆,也可以設定語音活動偵測設定,允許使用者中斷模型。

設定語言和聲音

gemini-live-2.5-flash-native-audio 等原生音訊模型可在對話期間自然切換語言。你也可以在系統指令中指定語言,限制 Gemini 說話時使用的語言。

如果是 gemini-live-2.5-flash 等非原生音訊模型,您可以在 speech_config.language_code 中設定語言。

所有模型的語音都是在 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 在 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

設定語音活動偵測功能

語音活動偵測 (VAD) 可讓模型辨識使用者何時說話。這對建立自然對話至關重要,因為使用者隨時可以中斷模型。

當 VAD 偵測到中斷時,系統會取消並捨棄正在進行的生成作業。只有已傳送給用戶端的資訊會保留在工作階段記錄中。接著,伺服器會傳送BidiGenerateContentServerContent訊息,回報中斷情形。接著,伺服器會捨棄所有待處理的函式呼叫,並傳送 BidiGenerateContentServerContent 訊息,其中包含已取消呼叫的 ID。

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,
        }
    }
}
      

後續步驟