本文档介绍了如何在 Gemini Live API 中配置合成语音响应和语音活动检测。您可以配置各种高清语音和语言的响应,还可以配置语音活动检测设置,以允许用户中断模型。
设置语言和语音
像 gemini-live-2.5-flash-native-audio 这样的原生音频模型可以在对话期间自然地切换语言。您还可以通过在系统指令中指定语言来限制模型所说的语言。
对于非原生音频模型(如 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 -- 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 -- Informative Leda -- Youthful Callirrhoe -- Easy-going Iapetus -- Clear Despina -- Smooth Rasalgethi -- Informative Alnilam -- Firm Pulcherrima -- Forward Vindemiatrix -- Gentle Sulafat -- Warm |
支持的语言
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, } } }