1. 模型说明
Gemini TTS 通过 文本(及可选多模态输入)生成语音,调用形态为 Vertex generateContent(同步) 与 streamGenerateContent(SSE 流式)。
2. 计费
2.1 平台的计费项与用量
| chargeItemCode | 中文名 | 用量计算(用户侧) | 触发接口 |
|---|---|---|---|
in_token |
输入 token | 响应 usageMetadata.promptTokenCount |
四条 TTS 接口 |
out_token_audio |
输出音频 token | 响应 usageMetadata.candidatesTokensDetails 中 modality 为 AUDIO 的 token 之和 |
四条 TTS 接口 |
3. 功能接口详情
3.0 公共请求 Body(四条接口共用)
Content-Type: application/json。Body 为 Vertex GenerateContentRequest JSON(camelCase 或 snake_case 均可,与官方一致)。
主要字段
| 参数名 | 字段类型 | 是否必填 | 描述 |
|---|---|---|---|
| contents | array / object | 是 | 与模型当前对话的内容。对于单轮查询,这是单个实例。对于多轮查询,这是包含对话历史记录和最新请求的重复字段。 |
| generationConfig | object | 否 | 生成配置设置。TTS 场景下常用其中的 speechConfig(音色、语言等)。 |
| systemInstruction | object | 否 | 适用于 gemini-2.0-flash 和 gemini-2.0-flash-lite。有关引导模型获得更好性能的说明。text 字符串会计入 token 限制。systemInstruction 的 role 字段会被忽略,不会影响模型的性能。 |
| safetySettings | array | 否 | 针对每个请求的设置,用于屏蔽不安全内容。在 GenerateContentResponse.candidates 上强制执行。 |
| tools | array | 否 | 一段代码,可让系统与外部系统进行交互,以在模型知识和范围之外执行操作或一组操作。 |
| toolConfig | object | 否 | 请参阅函数调用。 |
| cachedContent | string | 否 | 用作提供预测的上下文的缓存内容的名称。格式:projects/{project}/locations/{location}/cachedContents/{cachedContent} |
| labels | object | 否 | 您可以采用键值对格式添加到 API 调用中的元数据。 |
generationConfig.speechConfig(TTS 常用)
| 参数名 | 字段类型 | 是否必填 | 描述 |
|---|---|---|---|
| voiceConfig | object | 否 | 预置音色配置(结构见 Google TTS / Gemini 语音文档)。 |
| multiSpeakerVoiceConfig | object | 否 | 多说话人音色配置。 |
| languageCode | string | 否 | 语言代码(如 en-US)。 |
公共响应字段(同步 / 流式单 chunk)
| 参数名 | 字段类型 | 描述 |
|---|---|---|
| candidates | array | 模型生成的候选结果;TTS 音频通常在 candidates[].content.parts[].inlineData(base64 音频)。 |
| usageMetadata | object | Token 用量;含 promptTokenCount、candidatesTokenCount、candidatesTokensDetails 等。 |
| modelVersion | string | 用于生成的模型及版本。 |
| responseId | string | 响应 ID。 |
| promptFeedback | object | 提示相关反馈(如安全拦截)。 |
3.1 同步 generateContent(平台路径)
3.1.1 请求 url
POST https://genaiapi-m2.cloudsway.net/v1/ai/{YOUR_ENDPOINT}/tts/generateContent
3.1.2 请求 Body 参数
见 §3.0。
3.1.3 响应参数
见 §3.0 公共响应字段。HTTP 200 时 body 为完整 GenerateContentResponse JSON。
3.1.4 请求示例
curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{YOUR_ENDPOINT}/tts/generateContent' \
--header 'Authorization: Bearer {YOUR_AK}' \
--header 'Content-Type: application/json' \
--data '{
"contents": [{
"role": "user",
"parts": [{ "text": "Say hello in a friendly tone." }]
}],
"generationConfig": {
"speechConfig": {
"voiceConfig": {
"voice": "Kore"
}
}
}
}'
3.1.5 响应示例(节选)
{
"candidates": [{
"content": {
"parts": [{
"inlineData": {
"mimeType": "audio/L16;codec=pcm;rate=24000",
"data": "<base64-audio>"
}
}]
}
}],
"usageMetadata": {
"promptTokenCount": 12,
"candidatesTokenCount": 85,
"candidatesTokensDetails": [
{ "modality": "AUDIO", "tokenCount": 80 }
]
}
}
3.2 流式 streamGenerateContent(平台路径)
3.2.1 请求 url
POST https://genaiapi-m2.cloudsway.net/v1/ai/{YOUR_ENDPOINT}/tts/streamGenerateContent
可选 Query:
| 参数名 | 字段类型 | 是否必填 | 描述 |
|---|---|---|---|
| alt | string | 否 | 为 sse 时,使用 Servlet SSE(text/event-stream)写回,适配部分 HTTP 客户端;省略时返回响应式 SSE 流(text/event-stream)。 |
3.2.2 请求 Body 参数
见 §3.0。
3.2.3 响应说明
-
Content-Type:
text/event-stream -
每个事件
data为 GenerateContentResponse JSON(部分实现会在 JSON 前带一空格,解析时请 trim)。 -
错误时可能推送含
error字段的 JSON 后结束流。 -
用量以最后一个包含
usageMetadata的事件为准(见 §2.2)。
3.2.4 请求示例
curl --location 'https://genaiapi-m2.cloudsway.net/v1/ai/{YOUR_ENDPOINT}/tts/streamGenerateContent?alt=sse' \
--header 'Authorization: Bearer {YOUR_AK}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/event-stream' \
--data '{
"contents": [{
"role": "user",
"parts": [{ "text": "Stream this sentence as speech." }]
}],
"generationConfig": {
"speechConfig": {
"voiceConfig": {
"voice": "Kore"
}
}
}
}'
3.3 同步 generateContent(原生 Vertex 路径)
3.3.1 请求 url
POST https://genaiapi-m2.cloudsway.net/{YOUR_ENDPOINT}/tts/v1beta1/publishers/google/models/{modelName}:generateContent
路径参数 {modelName}:与 Google 模型资源名一致(如 gemini-2.5-flash-preview-tts),建议与端点配置的官方 model 相同。
3.3.2 请求 Body / 响应
同 §3.1(Body 见 §3.0)。
3.3.3 请求示例
curl --location 'https://genaiapi-m2.cloudsway.net/{YOUR_ENDPOINT}/tts/v1beta1/publishers/google/models/gemini-2.5-flash-preview-tts:generateContent' \
--header 'Authorization: Bearer {YOUR_AK}' \
--header 'Content-Type: application/json' \
--data '{
"contents": [{
"role": "user",
"parts": [{ "text": "Hello." }]
}],
"generationConfig": {
"speechConfig": {
"voiceConfig": {
"voice": "Kore"
}
}
}
}'
3.4 流式 streamGenerateContent(原生 Vertex 路径)
3.4.1 请求 url
POST https://genaiapi-m2.cloudsway.net/{YOUR_ENDPOINT}/tts/v1beta1/publishers/google/models/{modelName}:streamGenerateContent
3.4.2 请求 Body / 响应
Body 同 §3.0;响应为 SSE(text/event-stream),语义同 §3.2.3(原生路径当前以 SSE 写回)。
3.4.3 请求示例
curl --location 'https://genaiapi-m2.cloudsway.net/{YOUR_ENDPOINT}/tts/v1beta1/publishers/google/models/gemini-2.5-flash-preview-tts:streamGenerateContent' \
--header 'Authorization: Bearer {YOUR_AK}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/event-stream' \
--data '{
"contents": [{
"role": "user",
"parts": [{ "text": "Hello." }]
}],
"generationConfig": {
"speechConfig": {
"voiceConfig": {
"voice": "Kore"
}
}
}
}'