文字转语音
● 服务正常
按量计费
POST
语音合成
文档 doc/108
300+ 优质发音人,支持情感朗读与声音克隆。单次最长 5000 字,mp3 / wav / pcm 三种格式任选。
POSThttps://api.vidtidy.cn/api/v1/tts
鉴权:请求头 X-API-KEY: sk_live_…(也支持 key 查询参数)。
请求参数
| 名称 | 必填 | 类型 | 说明 |
text | 必填 |
string | 文本内容,单次最大 5000 字 |
voiceType | 必填 |
string | builtin 内置音色 / cloned 克隆音色 |
voiceId | 选填 |
string | 内置音色时必填,如 306(晓妍) |
modelId | 选填 |
string | 克隆音色时必填,训练接口返回的 modelId |
format | 选填 |
string | mp3 / wav / pcm,默认 mp3 |
返回参数
| 名称 | 类型 | 说明 |
data | string | 任务 id,用于「语音合成结果查询」轮询 |
cost | string | 本次扣费金额(元,4 位小数) |
balance | string | 扣费后账户余额(元) |
返回示例
{
"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;