音频生成
文字转语音
gpt-4o-mini-tts / tts-1:OpenAI 兼容文字转语音,同步,响应体直接是音频二进制
POST/v1/audio/speech
一次请求直接返回音频二进制内容,适合旁白、播报和语音助手。需要 API Key:Authorization: Bearer sk-lt-...,详见鉴权。
| 项 | 值 |
|---|---|
| 模型 | gpt-4o-mini-tts(推荐,支持 instructions 和扩展音色)、tts-1 |
| 模式 | 同步,响应体即音频 |
| 计费 | 按输入 Unicode 字符数,价格以定价页为准 |
快速开始
curl https://api.vibelab.me/v1/audio/speech \
-H "Authorization: Bearer $LOOPTOKEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini-tts",
"input": "欢迎使用 LoopToken 文字转语音服务。",
"voice": "coral",
"instructions": "语气热情、亲切,语速稍快",
"response_format": "wav"
}' \
--output speech.wavimport os
import requests
response = requests.post(
"https://api.vibelab.me/v1/audio/speech",
headers={"Authorization": f"Bearer {os.environ['LOOPTOKEN_API_KEY']}"},
json={
"model": "gpt-4o-mini-tts",
"input": "欢迎使用 LoopToken 文字转语音服务。",
"voice": "coral",
"instructions": "语气热情、亲切,语速稍快",
"response_format": "wav",
},
)
response.raise_for_status()
with open("speech.wav", "wb") as file:
file.write(response.content)请求参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | - | gpt-4o-mini-tts 或 tts-1 |
input | string | 是 | - | 要合成的文字,最多 4096 个 Unicode 字符(按 Unicode 字符统计,不是 UTF-8 字节数) |
voice | string | 是 | - | 两个模型通用:alloy、echo、fable、onyx、nova、shimmer;仅 gpt-4o-mini-tts:ash、ballad、coral、sage、verse、marin、cedar |
instructions | string | 否 | - | 仅 gpt-4o-mini-tts,用自然语言描述语气、情绪、口音或语速风格,最多 4096 个字符;不计入计费字符数。对 tts-1 传入会返回参数错误 |
response_format | string | 否 | wav | wav、opus、aac、flac 或 pcm |
speed | number | 否 | 1.0 | 语速,范围 0.25 到 4.0 |
不支持的字段会返回参数错误。
响应
成功时返回 HTTP 200 和音频二进制内容,不返回 JSON。请根据请求格式保存响应:
response_format | 常见 Content-Type | 建议扩展名 |
|---|---|---|
wav | audio/wav | .wav |
opus | audio/opus | .opus |
aac | audio/aac | .aac |
flac | audio/flac | .flac |
pcm | application/octet-stream | .pcm |
计费
gpt-4o-mini-tts 和 tts-1 都按 input 的 Unicode 字符数计费(instructions 不计费),定价页以每千字符展示。请求开始时按确定的字符数预扣,合成成功后结算;失败时自动退款。实际费率以定价页为准。
错误
错误体为 {"error": {"message": "...", "type": "...", "code": "...", "request_id": "..."}},不会混入音频字节,也不返回内部路由或原始错误。通用错误码见错误码。本接口常见错误:
| HTTP | code | 触发场景 | 处理 |
|---|---|---|---|
400 / 422 | invalid_request_error | JSON、字段、音色、格式、文本长度或语速不合法 | 按 message 修正参数 |
402 | insufficient_credits | 余额不足 | 充值后重试 |
404 | model_not_found | 模型不存在或当前不可用 | 核对 model |
429 | media_concurrency_exceeded | 用户或 API Key 的媒体并发超限(带 Retry-After) | 稍后重试 |
502 | upstream_error | 音频服务暂时不可用 | 指数退避重试,已预扣费用会退回 |
503 | no_available_channel | 当前没有可用的音频生成通道 | 指数退避重试 |