文档中心

统一 RESTful 规范 · 全部接口共用一套密钥与账单

文字转语音

● 服务正常 按量计费 POST 语音合成 文档 doc/108

300+ 优质发音人,支持情感朗读与声音克隆。单次最长 5000 字,mp3 / wav / pcm 三种格式任选。

调用权限
正常
请求频率
20 次/秒
免费额度
30
参考价格
0.000225 元/字原价 0.00015 元/字
POSThttps://api.vidtidy.cn/api/v1/tts

鉴权:请求头 X-API-KEY: sk_live_…(也支持 key 查询参数)。

请求参数

名称必填类型说明
text必填 string文本内容,单次最大 5000 字
voiceType必填 stringbuiltin 内置音色 / cloned 克隆音色
voiceId选填 string内置音色时必填,如 306(晓妍)
modelId选填 string克隆音色时必填,训练接口返回的 modelId
format选填 stringmp3 / wav / pcm,默认 mp3

返回参数

名称类型说明
datastring任务 id,用于「语音合成结果查询」轮询
coststring本次扣费金额(元,4 位小数)
balancestring扣费后账户余额(元)

返回示例

{
  "code": 200,
  "msg": "SUCCESS",
  "data": "6a229c7bfe091e6c",
  "cost": "0.0240",
  "balance": "48.1285"
}
说明:按字数计费,不足 1 厘按 1 厘计。生成后的音频地址有效期 24 小时,请及时转存。

计费口径

项目说明
计费方式按文本字数计费,向上取整到字
我方单价0.000225 元/字
上游原价0.00015 元/字(我方含接入、重试、对账与技术支持的加价部分)
预扣与退款按秒/按字类接口在提交时预扣,上游返回业务失败码时 全额自动退回,无需申请
免费接口任务查询类接口永远免费,高频轮询不会产生费用
最低余额余额不足以支付本次预扣时会直接返回 402,不会先调用上游再报错
字数怎么算:按 text 的字符数(含标点、空格),最少按 1 字计。

错误码

code含义处理建议
200成功—
-1业务异常见 msg。链接不支持 / 文件不可下载 / 时长超限最常见
401密钥无效检查请求头,或到控制台确认密钥未停用
402余额不足充值后重试,本次不扣费
429频率超限按 20 次/秒 退避
500服务异常上游故障,已自动退款
cURL
curl -X POST "https://api.vidtidy.cn/api/v1/tts" \
  -H "X-API-KEY: sk_live_你的密钥" \
  -d "text=示例值" \
  -d "voiceType=示例值" \
  -d "voiceId=示例值" \
  -d "modelId=示例值" \
  -d "format=示例值"
Python
import requests

r = requests.post(
    "https://api.vidtidy.cn/api/v1/tts",
    headers={"X-API-KEY": "sk_live_你的密钥"},
    data={"text": "示例值", "voiceType": "示例值", "voiceId": "示例值", "modelId": "示例值", "format": "示例值"},
    timeout=120,
)
print(r.json())
Node.js
const body = new URLSearchParams({
  "text": "示例值",
  "voiceType": "示例值",
  "voiceId": "示例值",
  "modelId": "示例值",
  "format": "示例值",
});

const res = await fetch("https://api.vidtidy.cn/api/v1/tts", {
  method: "POST",
  headers: { "X-API-KEY": "sk_live_你的密钥" },
  body,
});
console.log(await res.json());
PHP
 true,
  CURLOPT_HTTPHEADER => ["X-API-KEY: sk_live_你的密钥"],
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => http_build_query(["text" => "示例值", "voiceType" => "示例值", "voiceId" => "示例值", "modelId" => "示例值", "format" => "示例值"]),
]);
$out = curl_exec($ch);
curl_close($ch);
echo $out;