本文档介绍了如何在 Gemini Live API 中配置合成语音回答和语音活动检测。您可以配置各种高清语音和语言的回答,还可以配置语音活动检测设置,以允许用户打断模型。
设置语言和语音
gemini-3.8-live 等实时音频模型可以在对话过程中自然地切换语言。您还可以在系统指令中指定语言,以限制其使用的语言。
所有模型的语音都在 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 捆绑包 |
| English (US) | 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 秒。
录制自定义语音
录制语音样本时,我们建议您遵循以下提示,以获得最佳语音质量:
自然发声:除非您希望虚拟形象听起来像播音员,否则请勿使用“广播腔”或过度清晰地发音。请完全按照与朋友说话的方式朗读脚本。
限制背景噪声:尽可能限制背景噪声:关闭风扇、空调和所有打开的窗户。
微微一笑:录制时微笑往往会使录制的声音更具温暖感,而这种温暖感随后会添加到复制的语音中。
自定义语音推荐脚本
我们建议您使用以下任一脚本来录制自定义声音:
音标标准,最适合追求整体质量:“When the sunlight strikes raindrops in the air, they act like a prism and form a rainbow. 彩虹是白光分解成多种美丽色彩的现象。这些拱门呈长圆形。”
故事讲述者,最适合捕捉情感和动态范围:“当我打开这本布满灰尘的旧书时,简直不敢相信自己的眼睛。一把小小的金色钥匙 叮当一声掉到了木地板上。“这是从哪里来的?”我对自己低语道,突然感到一阵兴奋。一切都将改变。”
设置自定义语音
在您通过 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 消息来报告中断情况。然后,服务器会舍弃所有待处理的函数调用,并发送一条 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, } } }