Skip to content
Markdown · 适合发给 AI

Gemini 3.8 Flash TTS 配音 ​

gemini-3.8-flash-tts 用于文字转语音,支持单人配音、双人对话和自然语言控制语气。公开价格 ¥0.30/次调用,WAV / PCM、单人 / 双人同价。本页只使用 Chat Completions。

在线调试 · 音频通用协议、响应及错误处理 · 价格

接口与完整参数 ​

http
POST https://api.zmoapi.cn/v1/chat/completions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

兼容客户端 Base URL 为 https://api.zmoapi.cn/v1,使用知梦 API 密钥及 UTF-8 JSON。

参数类型必填说明
modelstring是精确填写 gemini-3.8-flash-tts。
messagesobject[]是推荐一条 user 消息;最后一条 user 文本作为朗读内容。
messages[0].rolestring是本页示例固定 user。
messages[0].contentstring是非空朗读文本或双人剧本;可在开头用自然语言描述语气和风格。
audioobject否TTS 的音色 / 编码配置。
audio.voicestring否单人音色,默认 Kore;预置音色大小写不敏感,也兼容下表 OpenAI 名称。
audio.formatstring否wav(默认)或 pcm。PCM 为裸音频,16bit / 24kHz / 单声道。MP3、Opus、AAC、FLAC 不支持,传入会报 400。
speakersobject[]双人时需要两个说话人配置;单人模式省略。双人音色分别在各自配置中指定。
speakers[].namestring双人时需要说话人名字,与剧本中的名字一致;两个名字分别对应不同角色。
speakers[].voicestring双人时需要对应角色的预置音色。
output_formatstring否url(Chat 默认)、base64 或 both。分别返回临时链接、音频 Data URI、两者同时返回;不是音频编码。
streamboolean否示例为 false,也支持 true 的 Chat SSE;不是实时逐段语音。
temperaturenumber否Chat 接受 0–2,可省略。音频默认值与具体效果未明确,不擅设默认或承诺固定复现。
stream_options.include_usageboolean否仅在 stream: true 时可请求末尾用量块;实际是否返回以服务端为准。

不要向 Chat 顶层传 input、voice、instructions 或把字符串 response_format: "wav" 当作编码字段。朗读文本及风格写进消息,编码使用 audio.format。没有已确认的语速倍数、音量数值、音高数值、声音克隆、参考音频上传或指定秒数参数;这些要求可作为文字提示,但不保证精确执行。

单人配音与语气控制 ​

bash
curl 'https://api.zmoapi.cn/v1/chat/completions' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data-raw '{
    "model": "gemini-3.8-flash-tts",
    "messages": [{"role":"user","content":"用温柔、自然的语气说:晚安,好梦。"}],
    "audio": {"voice":"Leda","format":"wav"},
    "output_format": "url",
    "stream": false
  }'

“温柔”“兴奋”“正式播报”等写在消息前面,作为生成指令,不承诺精确的数值语速或情绪强度。

双人对话 ​

json
{
  "model": "gemini-3.8-flash-tts",
  "messages": [{
    "role": "user",
    "content": "Joe: 你好,今天有什么计划?\nJane: 我准备录制一段自然的双人对话。"
  }],
  "audio": {"format":"wav"},
  "speakers": [
    {"name":"Joe","voice":"Puck"},
    {"name":"Jane","voice":"Kore"}
  ],
  "output_format": "base64",
  "stream": false
}

角色名要与 speakers[].name 一致,支持英文冒号 : 或中文冒号 :;没有名字标记的行归上一位说话人。建议每句都显式标记,尤其第一句。双人模式使用各角色的 voice,示例不再额外发送单人 audio.voice,避免重复配置。

双人对话能力不意味着支持任意人数;当前文档和调试台按两人配置。

音色清单 ​

已公开列出的 Gemini 预置音色包括以下名称,大小写不敏感;这不是对所有可能新增音色的穷举:

text
Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede,
Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba,
Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar,
Alnilam, Schedar, Gacrux, Pulcherrima, Achird,
Zubenelgenubi, Vindemiatrix

兼容的 OpenAI 名称会映射到 Gemini 音色:

输入音色实际音色输入音色实际音色
alloyKoreechoCharon
fableAoedeonyxFenrir
novaLedashimmerZephyr
ashOrusballadPuck
coralCallirrhoesageUmbriel
verseEnceladus——

没有公开每个音色的固定性别、语言、口音或适用风格保证,不根据名称自行赋予标签。音色不存在等上游拒绝通常返回 400,读取具体错误。

返回方式、试听与保存 ​

用 output_format 选择 url(默认)、base64 或 both。choices[0].message.content 在 both 模式下形如(省略号非真实 Base64):

html
<audio controls src="https://example.com/speech.wav"></audio>
<audio controls src="data:audio/wav;base64,..."></audio>

url 只返回上面第一段,保存时下载完整临时链接;base64 只返回第二段,保存时去掉 Data URI 前缀并解码 Base64。both 返回同一音频的两种表示,任选一种保存,不当作两个版本;PCM 使用相应音频 MIME。不要把 output_format 的返回方式填到 audio.format,后者只填写 WAV / PCM 编码。临时链接请及时保存,不承诺固定有效期。

WAV 可以交给浏览器播放器或保存为 .wav。PCM 是没有 WAV 文件头的裸数据,通常不能直接在浏览器播放;调试台提供 .pcm 下载。用支持裸 PCM 的播放器导入时配置 16bit、24kHz、单声道;文档没有明确字节序,不自行承诺。需要方便试听时优先使用 WAV。

Chat 返回 JSON 或 SSE;这里不采用专用语音接口的默认二进制响应,也不依赖 X-Audio-Url 响应头。音频时长以结果为准;一句话生成约 3–5 秒只是参考,读取超时建议至少 180 秒。

SSE 与调试 ​

stream: true 的完整音频在生成结束后返回,需累积所有 delta.content,并检查正常结束。HTTP 200 后正文“错误: …”仍然是失败,不是可播放音频。

调试台选择单人 / 双人模式、角色名和音色、WAV / PCM、非流式 / SSE;可选 URL / Base64 / both 返回。点击“填充示例”可生成对应模式的文本;最终请求以“完整请求”预览为准。每次真实调用 ¥0.30,不自动重复提交,不发起任务轮询。

知梦 API · 图像、视频与音乐生成接口文档