语音合成 按千字符计费 同步返回

SeedTTS 2.0 语音合成 API 文档

将文本合成为自然、富有表现力的语音。SeedTTS 2.0 基于豆包大语言模型重构语音合成架构, 合成语音能「理解」文本背后的语义与情感,在对话助手、情感陪伴、有声内容配音等场景提供 更真实的表现力,并攻克教育场景下复杂公式与符号朗读准确率低的难题。

模型:SeedTTS 2.0(状态加载中…)

概述

输入文本,同步返回完整音频字节(默认 mp3),直接保存为音频文件
基于豆包大模型,合成语音理解语义与情感,表现力更强
支持音色、语速、音量、音频格式与采样率等参数自定义
按文本字符数计费(每千字符),费用与音频时长无关

快速开始

所有 API 调用使用 HTTPS,并通过 Authorization: Bearer <API Key> 进行身份认证。API Key 可在「API Key」页面创建(完整内容仅创建时显示一次)。 最小可用请求只需 model 与 text 两个字段。

curl https://ldbapi.com/api/v1/audio/speech \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "SeedTTS 2.0", "text": "你好,欢迎使用 BIGAPI。"}' \
  --output speech.mp3

提示:text 为必填字段(计费依据)。响应为二进制音频, 用 --output 或写入文件的方式保存为 .mp3。

请求参数

参数 类型 必填 默认值 说明
model string 是 — 模型名称:SeedTTS 2.0
text string 是 — 要合成的文本(计费依据:按文本字符数计费)
speaker string 否 zh_female_vv_uranus_bigtts 音色 ID(2.0 系列音色,如 zh_female_vv_uranus_bigtts / zh_female_xiaohe_uranus_bigtts 等)
format string 否 mp3 音频格式:mp3 / pcm / ogg_opus
sample_rate number 否 24000 采样率:8000 / 16000 / 22050 / 24000 / 32000 / 44100 / 48000
speech_rate number 否 0 语速(-50~100),100 表示 2 倍速,-50 表示 0.5 倍速
loudness_rate number 否 0 音量(-50~100),100 表示 2 倍音量

计费说明

本模型按文本字符数计费(每千字符):费用 = 文本字符数 × 单价 ÷ 1000。 字符数以请求体 text 字段为准(提交前计量),与音频实际时长无关; 任务失败不扣费。计费从账户余额中实时扣除,账户余额不足时请求会被拒绝(402)。

项目 数值 参考费用(元) 说明
价格加载中…

价格为平台实时配置,以实际扣费为准;账户余额不足时请求会被拒绝(402)。

请求示例

POST /api/v1/audio/speech
Content-Type: application/json

{
  "model": "SeedTTS 2.0",
  "text": "欢迎使用 BIGAPI,一个 API Key 接入全球 AI 模型。",
  "speaker": "zh_female_vv_uranus_bigtts",
  "format": "mp3",
  "sample_rate": 24000,
  "speech_rate": 0,
  "loudness_rate": 0
}

响应示例

成功时返回 200 状态码,响应体为二进制音频(默认 Content-Type: audio/mpeg),直接保存为 .mp3 文件即可播放。

HTTP/1.1 200 OK
Content-Type: audio/mpeg
Content-Length: 48213

(二进制音频字节,保存为 speech.mp3)
  • · 响应头 Content-Type 随 format 变化(mp3 → audio/mpeg、ogg_opus → audio/ogg、pcm → audio/pcm)
  • · 任务失败时返回 error 信封(错误码见下方),不扣费

代码示例

以下示例均可直接调用。将 YOUR_API_KEY 替换为你的 API Key。

cURL(保存为 mp3 文件)

curl https://ldbapi.com/api/v1/audio/speech \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "SeedTTS 2.0", "text": "你好,欢迎使用 BIGAPI。"}' \
  --output speech.mp3

Python

import requests

resp = requests.post(
    "https://ldbapi.com/api/v1/audio/speech",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "model": "SeedTTS 2.0",
        "text": "你好,欢迎使用 BIGAPI。",
        "speaker": "zh_female_vv_uranus_bigtts",
        "format": "mp3",
    },
)
if resp.status_code == 200:
    with open("speech.mp3", "wb") as f:
        f.write(resp.content)
    print("已保存 speech.mp3")
else:
    print(resp.json())  # 错误时返回 {"error": {...}}

JavaScript (fetch,下载为 mp3)

const resp = await fetch("https://ldbapi.com/api/v1/audio/speech", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "SeedTTS 2.0",
    text: "你好,欢迎使用 BIGAPI。",
    format: "mp3",
  }),
});

if (resp.ok) {
  const blob = await resp.blob();
  const url = URL.createObjectURL(blob);
  const a = document.createElement("a");
  a.href = url;
  a.download = "speech.mp3";
  a.click();
  URL.revokeObjectURL(url);
} else {
  console.error(await resp.json());
}

错误码

HTTP code 说明
400BAD_REQUEST请求参数不合法(如缺少 text 字段、请求体格式错误)
400MODEL_MISSING_IN_BODY请求体中缺少 model 字段
401INVALID_API_KEYAPI Key 无效或已停用
402BALANCE_INSUFFICIENT账户余额不足
404MODEL_NOT_FOUND模型不存在
429RATE_LIMITED请求频率超限,请稍后重试
502INTERNAL_ERROR上游语音合成服务异常(不扣费)
503MODEL_UNAVAILABLE模型停用或维护中,请稍后重试
503CONCURRENCY_LIMIT模型并发已满,请稍后重试

错误响应统一为 {"error": {"code": "...", "message": "...", "request_id": "..."}} 格式。

注意事项

  • · model 与 text 为必填字段:缺少 text 会返回 400 且不扣费
  • · 计费按请求体 text 字符数计算(费用 = 字符数 × 单价 ÷ 1000),与音频实际时长无关——长文本费用更高,请按需提交
  • · 响应为二进制音频(默认 mp3),需用 --output 或写入文件的方式保存,不能直接打印
  • · speaker 为音色 ID,默认 zh_female_vv_uranus_bigtts;换用其他音色前请确认其为 2.0 系列音色(与模型资源版本匹配)
  • · format 支持 mp3 / pcm / ogg_opus;pcm 为原始裸音频(无文件头),播放器需自行指定采样率与位深
  • · speech_rate / loudness_rate 取值范围均为 -50~100,0 表示原速/原音量
  • · 本模型为同步接口:请求提交后平台内部完成流式合成并拼接,响应时间随文本长度增加,请在客户端设置合理的超时时间(建议 ≥60 秒)
  • · 任务失败不扣费,请按返回的 error.code 处理重试