跳转至

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"
      }
    }
  }
}'