Skip to content

Gemini 3.1 Flash文生语音 ​

本页由 ModelFold 文档站根据上游官方 OpenAPI 文档同步生成。接口路径、参数、示例与官方保持一致;品牌与 API 域名已替换为 ModelFold。

接口 ​

POST /jobs/createTask

完整 URL: https://ai.modelfold.online/v1/jobs/createTask

鉴权:所有请求都需要 Authorization: Bearer <API_KEY> 请求头。

使用 Gemini 3.1 Flash 进行文本转语音。

输出:WAV(16 位 PCM,24 kHz,单声道)。

查询任务状态 ​

提交任务后,使用统一的查询端点检查进度并获取结果:

TIP

对于生产环境,我们建议使用 callBackUrl 参数接收自动通知,而不是轮询状态端点。

相关资源 ​

请求参数 ​

请求体 (application/json) ​

参数类型必填说明
modelstring是使用的模型 默认值:"google/gemini-3-1-flash-tts"。 可选值:google/gemini-3-1-flash-tts。 示例:google/gemini-3-1-flash-tts。
callBackUrlstring否结果回调地址
inputobject是生成任务的输入参数
  input.temperaturenumber否采样温度,例如:1 默认值:1。 示例:1。
  input.scenestring否场景描述,例如:"A quiet, warm room with a fireplace crackling softly." 默认值:""。 示例:``。
  input.sample_contextstring否示例上下文/整体基调,例如:"Audiobook style narration. Tone is gentle and inviting." 默认值:""。 示例:``。
  input.speakersarray&lt;object&gt;是说话人配置列表
    input.speakers[].speaker_idstring是说话人标识,如 "Speaker 1" 或 "Speaker 2";必须为「Speaker N」格式
    input.speakers[].voice_namestring是音色名称,如 "Zephyr"、"Fenrir"、"Puck" 可选值:Achernar / Achird / Algenib / Algieba / Alnilam / Aoede / Autonoe / Callirrhoe / Charon / Despina / Enceladus / Erinome / Fenrir / Gacrux / Iapetus / Kore / Laomedeia / Leda / Orus / Puck / Pulcherrima / Rasalgethi / Sadachbia / Sadaltager / Schedar / Sulafat / Umbriel / Vindemiatrix / Zephyr / Zubenelgenubi。 示例:Achernar。
    input.speakers[].audio_profilestring否音频画像描述,如 "A warm and soothing narrator" 或 "A stern and weary gatekeeper"
    input.speakers[].accentstring是口音,如 "British (RP)" 或 "American (Gen)" 可选值:Neutral / American (Gen) / American (Valley) / American (South) / British (RP) / British (Brixton) / Transatlantic / Australian。 示例:Neutral。
    input.speakers[].stylestring否情感风格,如 "Whisper" 或 "Deadpan" 可选值:Vocal Smile / Newscaster / Whisper / Empathetic / Promo/Hype / Deadpan。 示例:Vocal Smile。
    input.speakers[].pacestring否语速,如 "Staccato" 或 "Natural" 可选值:Natural / Rapid Fire / The Drift / Staccato。 示例:Natural。
  input.dialogue_turnsarray&lt;object&gt;是对话内容列表,按顺序输出
    input.dialogue_turns[].speaker_idstring是对应的说话人标识,如 "Speaker 1"
    input.dialogue_turns[].textstring是该说话人的台词文本,可包含语气标签,例如:"Once upon a time, in a quiet valley hidden away..."

请求示例 ​

bash
curl -X POST "https://ai.modelfold.online/v1/jobs/createTask" \
  -H "Authorization: Bearer $MODELFOLD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "google/gemini-3-1-flash-tts",
  "callBackUrl": "https://your-domain.com/api/callback",
  "input": {
    "temperature": 1,
    "scene": "一座黑暗、正在崩塌的地牢……",
    "sample_context": "奇幻 RPG 风格……",
    "speakers": [
      {
        "speaker_id": "Speaker 1",
        "voice_name": "Fenrir",
        "audio_profile": "一位严厉而疲惫的守门人",
        "accent": "British (RP)",
        "style": "Deadpan",
        "pace": "Natural"
      },
      {
        "speaker_id": "Speaker 2",
        "voice_name": "Puck",
        "audio_profile": "一位坚定而勇敢、追寻答案的旅人",
        "accent": "American (Gen)",
        "style": "Empathetic",
        "pace": "Staccato"
      }
    ],
    "dialogue_turns": [
      {
        "speaker_id": "Speaker 1",
        "text": "[大喊] 站住,旅人!北方隘口已奉议会之命封锁。"
      },
      {
        "speaker_id": "Speaker 2",
        "text": "[坚定] 我为长老带来一则消息。让开,否则我就强行闯过去。"
      },
      {
        "speaker_id": "Speaker 1",
        "text": "[警惕] 谁也不许通过。[沉思] 长老他……他已经不再接见访客了。"
      },
      {
        "speaker_id": "Speaker 2",
        "text": "太迟了。[低语] 那阴影……它先一步找上了他。[急迫] 你得离开。[大喊] 马上。"
      }
    ]
  }
}'
json
{
  "model": "google/gemini-3-1-flash-tts",
  "callBackUrl": "https://your-domain.com/api/callback",
  "input": {
    "temperature": 1,
    "scene": "一座黑暗、正在崩塌的地牢……",
    "sample_context": "奇幻 RPG 风格……",
    "speakers": [
      {
        "speaker_id": "Speaker 1",
        "voice_name": "Fenrir",
        "audio_profile": "一位严厉而疲惫的守门人",
        "accent": "British (RP)",
        "style": "Deadpan",
        "pace": "Natural"
      },
      {
        "speaker_id": "Speaker 2",
        "voice_name": "Puck",
        "audio_profile": "一位坚定而勇敢、追寻答案的旅人",
        "accent": "American (Gen)",
        "style": "Empathetic",
        "pace": "Staccato"
      }
    ],
    "dialogue_turns": [
      {
        "speaker_id": "Speaker 1",
        "text": "[大喊] 站住,旅人!北方隘口已奉议会之命封锁。"
      },
      {
        "speaker_id": "Speaker 2",
        "text": "[坚定] 我为长老带来一则消息。让开,否则我就强行闯过去。"
      },
      {
        "speaker_id": "Speaker 1",
        "text": "[警惕] 谁也不许通过。[沉思] 长老他……他已经不再接见访客了。"
      },
      {
        "speaker_id": "Speaker 2",
        "text": "太迟了。[低语] 那阴影……它先一步找上了他。[急迫] 你得离开。[大喊] 马上。"
      }
    ]
  }
}

响应 ​

200 — 请求成功 ​

参数类型必填说明
codeinteger是响应状态码
200: 成功 - 请求已成功处理
401: 未授权 - 缺少身份验证凭据或凭据无效
402: 额度不足 - 账户额度不足,无法执行该操作
404: 未找到 - 请求的资源或接口不存在
422: 校验错误 - 请求参数未通过校验检查
429: 请求受限 - 已超过该资源的请求频率限制
433: 请求限额 - 子 key 使用超出限额
455: 服务不可用 - 系统目前正在维护中
500: 服务器错误 - 处理请求时发生了意外错误
501: 生成失败 - 内容生成任务失败
505: 功能禁用 - 请求的功能目前已禁用 可选值:200 / 401 / 402 / 404 / 422 / 429 / 433 / 455 / 500 / 501 / 505。 示例:200。
msgstring是响应消息,失败时的错误描述
dataobject是—
  data.taskIdstring否任务 ID 可与“获取任务详细信息”端点一起使用,以查询任务状态
json
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "281e5b0*********************f39b9"
  }
}

回调 ​

musicTaskCompleted ​

回调地址:{request.body#/callBackUrl}(即请求体里的 callBackUrl)。

音频任务成功或失败时,系统会向该地址发送回调。

回调体参数

参数类型必填说明
codeinteger是统一回调状态码:成功为 200,失败为 501。 可选值:200 / 501。 示例:200。
msgstring是统一回调消息。 可选值:Playground task completed successfully. / Playground task failed.。 示例:Playground task completed successfully.。
dataobject是—
  data.taskIdstring是任务唯一标识符。
  data.modelstring是任务使用的模型。 可选值:google/gemini-3-1-flash-tts。 示例:google/gemini-3-1-flash-tts。
  data.statestring是任务最终状态。 可选值:success / fail。 示例:success。
  data.paramstring是包含已提交任务参数的 JSON 字符串。
  data.resultJsonstring否任务成功时,包含 resultUrls 和 resultObject 的 JSON 字符串;任务。仅在 state 为 success 时出现。
  data.failCodestring否失败码,数字字符串,如 "400"、"500"。仅在 state 为 fail 时出现。
  data.failMsgstring否失败原因,仅在 state 为 fail 时出现。
  data.costTimeinteger否处理耗时(秒),成功和失败回调都会返回。
  data.completeTimeinteger否任务完成时间戳。
  data.createTimeinteger否任务创建时间戳。
  data.updateTimeinteger否完成时间请以 completeTime 为准;updateTime 可能与 createTime 相同。
  data.creditsConsumednumber否本任务消耗的积分;失败任务为 0。

任务成功完成

json
{
  "code": 200,
  "msg": "Playground task completed successfully.",
  "data": {
    "taskId": "task_example_music_webhook_001",
    "model": "google/gemini-3-1-flash-tts",
    "state": "success",
    "param": "{\"input\":\"{\\\"temperature\\\":1,\\\"scene\\\":\\\"A dark, crumbling dungeon...\\\",\\\"sample_context\\\":\\\"Fantasy RPG style...\\\",\\\"speakers\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"voice_name\\\":\\\"Fenrir\\\",\\\"audio_profile\\\":\\\"A stern and weary gatekeeper\\\",\\\"accent\\\":\\\"British (RP)\\\",\\\"style\\\":\\\"Deadpan\\\",\\\"pace\\\":\\\"Natural\\\"}],\\\"dialogue_turns\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"text\\\":\\\"[shouting] Halt, traveler! The northern pass is sealed by order of the council.\\\"}]}\",\"callBackUrl\":\"https://example.com/callback\",\"model\":\"google/gemini-3-1-flash-tts\"}",
    "resultJson": "{\"resultUrls\":[\"https://example.com/generated-audio.wav\"],\"resultObject\":null}",
    "costTime": 12,
    "completeTime": 1234567890,
    "createTime": 1234560000,
    "updateTime": 1234567890,
    "creditsConsumed": 1.23
  }
}

任务失败

json
{
  "code": 501,
  "msg": "Playground task failed.",
  "data": {
    "taskId": "task_example_music_webhook_001",
    "model": "google/gemini-3-1-flash-tts",
    "state": "fail",
    "param": "{\"input\":\"{\\\"temperature\\\":1,\\\"scene\\\":\\\"A dark, crumbling dungeon...\\\",\\\"sample_context\\\":\\\"Fantasy RPG style...\\\",\\\"speakers\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"voice_name\\\":\\\"Fenrir\\\",\\\"audio_profile\\\":\\\"A stern and weary gatekeeper\\\",\\\"accent\\\":\\\"British (RP)\\\",\\\"style\\\":\\\"Deadpan\\\",\\\"pace\\\":\\\"Natural\\\"}],\\\"dialogue_turns\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"text\\\":\\\"[shouting] Halt, traveler! The northern pass is sealed by order of the council.\\\"}]}\",\"callBackUrl\":\"https://example.com/callback\",\"model\":\"google/gemini-3-1-flash-tts\"}",
    "failCode": "400",
    "failMsg": "<error detail>",
    "costTime": 12,
    "creditsConsumed": 0
  }
}

ModelFold — 一个 API,接入所有主流 AI 模型。