Gemini API 借助其原生的文本转语音 ( TTS ) 功能,可将文本输入转化为单人或多人朗读的音频。用户可以通过自然语言指令来设定交互模式,并调整生成音频的风格、口音、语速和音调。

此 TTS 功能有别于通过 Live API 提供的语音生成服务。 Live API 更侧重于交互式、非结构化的音频场景以及多模态的输入输出处理。尽管 Live API 在处理动态对话方面表现优异,但 Gemini API 的 TTS 功能则更适用于那些需要精确复述文本并对音频风格和音效进行精细控制的应用场景,例如播客或有声读物的制作。

本指南将演示如何利用文本生成单人朗读和多人对话的音频。

gemini-2.5-pro-preview-tts

gemini-2.5-flash-preview-tts

单人文本转语音

若要将文本转换为单人朗读的音频,需将响应模式设置为 “audio” ,并传递一个已配置 VoiceConfigSpeechConfig 对象。您需要从预设的输出语音库中选择一个语音名称。

以下示例展示了如何将模型输出的音频保存为 wave 文件:

截屏2025-05-25 09.40.41

多人文本转语音

对于多人对话音频,您需要创建一个 MultiSpeakerVoiceConfig 对象,并为每位发言者(最多支持两位)配置相应的 SpeakerVoiceConfig。您需要确保在提示信息中为每位 speaker 定义的名称与配置中的名称一致:

image-20250525094141299

音频流

除了像单人朗读多人对话示例中那样将音频保存到 wave 文件,您还可以通过音频流的方式从模型获取输出。

音频流会在响应生成过程中逐步返回数据片段,从而带来更流畅的体验。一旦响应开始,音频便会自动播放。

image-20250525094202048

通过提示语控制语音风格

无论是单人朗读还是多人对话的 TTS ,您都可以使用自然语言提示语来控制音频的风格、音调、口音和语速。例如,在单人朗读的提示语中,您可以这样写:

用诡异的耳语朗读:
“拇指阵阵刺痛……
邪恶之物将临近”

在多人对话的提示语中,您需要向模型提供每位发言者的姓名及其对应的文本内容。您还可以针对每位发言者分别给出风格指导:

让 Speaker1 的声音听起来疲惫且无聊,让 Speaker2 的声音听起来兴奋且快乐:

Speaker1:那么……今天有什么安排?
Speaker2:你绝对猜不到!

可以尝试选用与您期望传达的风格或情感相符的语音选项,以进一步强化效果。例如,在上述提示中,选择带有呼吸声的 Enceladus 语音可能会更突显“疲惫”和“无聊”的感觉,而语调欢快的 Puck 语音则能更好地衬托出“兴奋”和“快乐”的情绪。

生成用于转换为音频的提示文本

TTS 模型本身仅负责输出音频。但您可以先利用其他模型生成文本内容,然后再将该文本传递给 TTS 模型进行朗读。

image-20250525094305213

技术参数

上下文长度限制

TTS 会话的上下文窗口上限为 32k tokens。

可选语音

TTS 模型在 voice_name 字段中提供下列 30 种语音选项:

image-20250525094521440

支持语言

TTS 模型能够自动检测输入文本的语言,并支持以下 24 种语言:(暂未支持中文)

语言BCP-47 代码语言BCP-47 代码
阿拉伯语 (埃及)ar-EG德语 (德国)de-DE
英语 (美国)en-US西班牙语 (美国)es-US
法语 (法国)fr-FR印地语 (印度)hi-IN
印度尼西亚语 (印度尼西亚)id-ID意大利语 (意大利)it-IT
日语 (日本)ja-JP韩语 (韩国)ko-KR
葡萄牙语 (巴西)pt-BR俄语 (俄罗斯)ru-RU
荷兰语 (荷兰)nl-NL波兰语 (波兰)pl-PL
泰语 (泰国)th-TH土耳其语 (土耳其)tr-TR
越南语 (越南)vi-VN罗马尼亚语 (罗马尼亚)ro-RO
乌克兰语 (乌克兰)uk-UA孟加拉语 (孟加拉国)bn-BD
英语 (印度)en-INhi-IN 组合包马拉地语 (印度)mr-IN
泰米尔语 (印度)ta-IN泰卢固语 (印度)te-IN

支持的模型

模型单人朗读多人对话
Gemini 2.5 Flash Preview TTS✔️✔️
Gemini 2.5 Pro Preview TTS✔️✔️