Gemini 3.8 Flash Lite 文生语音
本页由 ModelFold 文档站根据上游官方 OpenAPI 文档同步生成。接口路径、参数、示例与官方保持一致;品牌与 API 域名已替换为 ModelFold。
接口
POST /jobs/createTask
完整 URL: https://ai.modelfold.online/v1/jobs/createTask
鉴权:所有请求都需要
Authorization: Bearer <API_KEY>请求头。
使用 Gemini 3.8 Flash Lite 进行文本转语音。
输出:WAV(16 位 PCM,24 kHz,单声道)。
查询任务状态
提交任务后,使用统一的查询端点检查进度并获取结果:
- 获取任务详情 — 了解如何查询任务状态并获取生成结果
TIP
对于生产环境,我们建议使用 callBackUrl 参数接收自动通知,而不是轮询状态端点。
相关资源
请求参数
请求体 (application/json)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 使用的模型 默认值:"google/gemini-3-8-flash-lite-tts"。 可选值:google/gemini-3-8-flash-lite-tts。 示例:google/gemini-3-8-flash-lite-tts。 |
callBackUrl | string | 否 | 结果回调地址 |
input | object | 是 | 生成任务的输入参数 |
input.temperature | number | 否 | 采样温度,例如:1 默认值:1。 示例:1。 |
input.speakers | array<object> | 是 | 说话人配置列表。每个说话人用 voice_name(预置音色)或 replica(声音克隆),二者互斥、不要同时传;都不传时该说话人默认音色为 Fola。 |
input.speakers[].speaker_id | string | 是 | 说话人标识,如 "Speaker 1" 或 "Speaker 2";必须为「Speaker N」格式。 |
input.speakers[].voice_name | string | 否 | 音色名称。与 replica 互斥:同一个说话人只能传 voice_name 或 replica 其中一个。使用声音克隆时不要传本字段。不传且未传 replica 时默认 Fola。共 70 个音色,按使用场景分类: - Tutor:Bodi、Lumi、Sadaltager、Sola、Sulafat、Varo、Zephyr - Commercial Voiceover:Koda、Kore、Nika、Tavi、Zeno - Instructional:Algenib、Despina、Erinome、Kira、Ludo、Mako、Rasalgethi、Rina - Podcast:Alnilam、Brio、Jori、Laomedeia、Rami、Veda - Storyteller:Achird、Enzo、Riko、Sami、Zali、Zubenelgenubi - Digital Assistant:Algieba、Aoede、Autonoe、Callirrhoe、Enceladus、Gero、Iapetus、Neno、Olin、Tari、Umbriel - Call Center:Achernar、Charon、Daro、Fola、Hali、Milo、Puck - Concierge:Arlo、Cleo、Fenrir、Finn、Leda、Lora、Orus - Tech Support:Enya、Jett、Knox、Nyla、Sadachbia、Vindemiatrix - Professional:Cruz、Elio、Gacrux、Pulcherrima、Schedar、Tova、Zuri 默认值: "Fola"。 可选值:Bodi / Lumi / Sadaltager / Sola / Sulafat / Varo / Zephyr / Koda / Kore / Nika / Tavi / Zeno / Algenib / Despina / Erinome / Kira / Ludo / Mako / Rasalgethi / Rina / Alnilam / Brio / Jori / Laomedeia / Rami / Veda / Achird / Enzo / Riko / Sami / Zali / Zubenelgenubi / Algieba / Aoede / Autonoe / Callirrhoe / Enceladus / Gero / Iapetus / Neno / Olin / Tari / Umbriel / Achernar / Charon / Daro / Fola / Hali / Milo / Puck / Arlo / Cleo / Fenrir / Finn / Leda / Lora / Orus / Enya / Jett / Knox / Nyla / Sadachbia / Vindemiatrix / Cruz / Elio / Gacrux / Pulcherrima / Schedar / Tova / Zuri。 示例:Fola。 |
input.speakers[].replica | object | 否 | 声音克隆配置,只用于 3.8。可选。与 voice_name 互斥,同一个说话人不要同时传这两个字段。传入后,本次任务会用两段录音临时克隆该说话人的声音,不会保存成可复用音色。单人、双人请求都可以给某个说话人传 replica。两段必须是同一位成年人的真人录音,同一支麦克风、同一个房间;AI 合成的音频会被拒绝。 只接受 WAV,推荐 24kHz、单声道、16-bit PCM,单个文件不超过 10MB。按文件内容识别格式,不看扩展名和 Content-Type。 |
input.speakers[].replica.source_audio_url | string | 是 | 参考录音的 URL,需可直接下载。录 10–30 秒自然说话:环境安静、无回声、无背景音乐,且只有一个人的声音。建议用最终要生成的语言来录。 |
input.speakers[].replica.consent_audio_url | string | 是 | 同意声明录音的 URL,需可直接下载。必须由参考录音中的同一个人逐字朗读: I am the owner of this voice and I consent to Google using this voice to create a synthetic voice model. 也可以朗读接口支持的其他语言版本。开头和结尾的静音、杂音尽量剪掉。 |
input.dialogue_turns | array<object> | 是 | 对话内容列表,按顺序输出 |
input.dialogue_turns[].speaker_id | string | 是 | 对应的说话人标识,如 "Speaker 1" |
input.dialogue_turns[].text | string | 是 | 该说话人的台词文本,可包含语气标签,标签名两边用英文尖括号。例如:Hello there. <laugh> That works. 官网可插入的标签:<argh>、<breath>、<cackle>、<cheer>、<chuckle>、<chuckles>、<cough>、<cry>、<exhales>、<gasp>、<giggle>、<groan>、<growl>、<grr>、<grunt>、<heavy breath>、<hiss>、<laugh>、<laughter>、<long pause>、<moan>、<pant>、<pff>、<phew>、<scream>、<short pause>、<shout>、<shriek>、<sigh>、<sighs>、<sneeze>、<snicker>、<snort>、<sob>、<throat-clearing>、<tsk>、<whimper>、<whispering>、<whispers>、<yawn>。 示例: Hello there. <laugh> That works.。 |
input.dialogue_turns[].style | string | 否 | 这一句的语气,只用于 3.8。自由描述语气、情绪、语速,同一说话人的不同句子可以不同。例如:Speak like a tired night-shift radio host, slow and dry. |
input.filler_words | boolean | 否 | 两人对话时是否加入语气填充词。默认关闭,请求中不传该字段;打开后请求里带 filler_words: true。仅当 speakers 配置了两个说话人(如 Speaker 1 与 Speaker 2)时生效。两个人说话时,可打开本开关。 默认值:false。 示例:false。 |
请求示例
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-8-flash-lite-tts",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"temperature": 1,
"speakers": [
{
"speaker_id": "Speaker 1",
"voice_name": "Fola"
},
{
"speaker_id": "Speaker 2",
"voice_name": "Zephyr"
}
],
"dialogue_turns": [
{
"speaker_id": "Speaker 1",
"style": "Speak like a tired night-shift radio host, slow and dry.",
"text": "Hello there. <laugh> That works."
},
{
"speaker_id": "Speaker 2",
"style": "Bright and curious, slightly faster.",
"text": "Wait, did you hear that? <gasp> I think it actually worked."
}
]
}
}'json
{
"model": "google/gemini-3-8-flash-lite-tts",
"callBackUrl": "https://your-domain.com/api/callback",
"input": {
"temperature": 1,
"speakers": [
{
"speaker_id": "Speaker 1",
"voice_name": "Fola"
},
{
"speaker_id": "Speaker 2",
"voice_name": "Zephyr"
}
],
"dialogue_turns": [
{
"speaker_id": "Speaker 1",
"style": "Speak like a tired night-shift radio host, slow and dry.",
"text": "Hello there. <laugh> That works."
},
{
"speaker_id": "Speaker 2",
"style": "Bright and curious, slightly faster.",
"text": "Wait, did you hear that? <gasp> I think it actually worked."
}
]
}
}响应
200 — 请求成功
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
code | integer | 是 | 响应状态码 200: 成功 - 请求已成功处理 401: 未授权 - 缺少身份验证凭据或凭据无效 402: 额度不足 - 账户额度不足,无法执行该操作 404: 未找到 - 请求的资源或接口不存在 422: 校验错误 - 请求参数未通过校验检查 429: 请求受限 - 已超过该资源的请求频率限制 433: 请求限额 - 子 key 使用超出限额 455: 服务不可用 - 系统目前正在维护中 500: 服务器错误 - 处理请求时发生了意外错误 501: 生成失败 - 内容生成任务失败 505: 功能禁用 - 请求的功能目前已禁用 可选值: 200 / 401 / 402 / 404 / 422 / 429 / 433 / 455 / 500 / 501 / 505。 示例:200。 |
msg | string | 是 | 响应消息,失败时的错误描述 |
data | object | 是 | — |
data.taskId | string | 否 | 任务 ID 可与“获取任务详细信息”端点一起使用,以查询任务状态 |
json
{
"code": 200,
"msg": "",
"data": {
"taskId": ""
}
}回调
musicTaskCompleted
回调地址:{request.body#/callBackUrl}(即请求体里的 callBackUrl)。
音频任务成功或失败时,系统会向该地址发送回调。
回调体参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
code | integer | 是 | 统一回调状态码:成功为 200,失败为 501。 可选值:200 / 501。 示例:200。 |
msg | string | 是 | 统一回调消息。 可选值:Playground task completed successfully. / Playground task failed.。 示例:Playground task completed successfully.。 |
data | object | 是 | — |
data.taskId | string | 是 | 任务唯一标识符。 |
data.model | string | 是 | 任务使用的模型。 可选值:google/gemini-3-8-flash-lite-tts。 示例:google/gemini-3-8-flash-lite-tts。 |
data.state | string | 是 | 任务最终状态。 可选值:success / fail。 示例:success。 |
data.param | string | 是 | 包含已提交任务参数的 JSON 字符串。 |
data.resultJson | string | 否 | 任务成功时,包含 resultUrls 和 resultObject 的 JSON 字符串;任务。仅在 state 为 success 时出现。 |
data.failCode | string | 否 | 失败码,数字字符串,如 "400"、"500"。仅在 state 为 fail 时出现。 |
data.failMsg | string | 否 | 失败原因,仅在 state 为 fail 时出现。 |
data.costTime | integer | 否 | 处理耗时(秒),成功和失败回调都会返回。 |
data.completeTime | integer | 否 | 任务完成时间戳。 |
data.createTime | integer | 否 | 任务创建时间戳。 |
data.updateTime | integer | 否 | 完成时间请以 completeTime 为准;updateTime 可能与 createTime 相同。 |
data.creditsConsumed | number | 否 | 本任务消耗的积分;失败任务为 0。 |
任务成功完成
json
{
"code": 200,
"msg": "Playground task completed successfully.",
"data": {
"taskId": "task_example_music_webhook_001",
"model": "google/gemini-3-8-flash-lite-tts",
"state": "success",
"param": "{\"input\":\"{\\\"temperature\\\":1,\\\"speakers\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"voice_name\\\":\\\"Fola\\\"},{\\\"speaker_id\\\":\\\"Speaker 2\\\",\\\"voice_name\\\":\\\"Zephyr\\\"}],\\\"dialogue_turns\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"style\\\":\\\"Speak like a tired night-shift radio host, slow and dry.\\\",\\\"text\\\":\\\"Hello there. <laugh> That works.\\\"},{\\\"speaker_id\\\":\\\"Speaker 2\\\",\\\"style\\\":\\\"Bright and curious, slightly faster.\\\",\\\"text\\\":\\\"Wait, did you hear that? <gasp> I think it actually worked.\\\"}]}\",\"callBackUrl\":\"https://your-domain.com/api/callback\",\"model\":\"google/gemini-3-8-flash-lite-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-8-flash-lite-tts",
"state": "fail",
"param": "{\"input\":\"{\\\"temperature\\\":1,\\\"speakers\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"voice_name\\\":\\\"Fola\\\"},{\\\"speaker_id\\\":\\\"Speaker 2\\\",\\\"voice_name\\\":\\\"Zephyr\\\"}],\\\"dialogue_turns\\\":[{\\\"speaker_id\\\":\\\"Speaker 1\\\",\\\"style\\\":\\\"Speak like a tired night-shift radio host, slow and dry.\\\",\\\"text\\\":\\\"Hello there. <laugh> That works.\\\"},{\\\"speaker_id\\\":\\\"Speaker 2\\\",\\\"style\\\":\\\"Bright and curious, slightly faster.\\\",\\\"text\\\":\\\"Wait, did you hear that? <gasp> I think it actually worked.\\\"}]}\",\"callBackUrl\":\"https://your-domain.com/api/callback\",\"model\":\"google/gemini-3-8-flash-lite-tts\"}",
"failCode": "400",
"failMsg": "<error detail>",
"costTime": 12,
"creditsConsumed": 0
}
}