音频生成
文字转语音
使用 OpenAI 兼容的同步接口将文字合成为音频
文字转语音接口会在一次请求中直接返回音频二进制内容,适合旁白、播报和语音助手等场景。
接口地址
POST /v1/audio/speech请求需要 API Key:
Authorization: Bearer sk-lt-...请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 当前为 tts-1 |
input | string | 是 | 要合成的文字,最多 4096 个 Unicode 字符 |
voice | string | 是 | alloy、echo、fable、onyx、nova 或 shimmer |
response_format | string | 否 | wav、opus、aac、flac 或 pcm,默认 wav |
speed | number | 否 | 语速,范围 0.25 到 4.0,默认 1.0 |
不支持的字段会返回参数错误。input 的字符数按 Unicode 字符统计,而不是 UTF-8 字节数。
cURL 示例
curl https://api.vibelab.me/v1/audio/speech \
-H "Authorization: Bearer $LOOPTOKEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "欢迎使用 LoopToken 文字转语音服务。",
"voice": "nova",
"response_format": "wav",
"speed": 1.0
}' \
--output speech.wavPython 示例
import os
import requests
response = requests.post(
"https://api.vibelab.me/v1/audio/speech",
headers={"Authorization": f"Bearer {os.environ['LOOPTOKEN_API_KEY']}"},
json={
"model": "tts-1",
"input": "欢迎使用 LoopToken 文字转语音服务。",
"voice": "nova",
"response_format": "wav",
},
)
response.raise_for_status()
with open("speech.wav", "wb") as file:
file.write(response.content)响应
成功时返回 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 |
计费
tts-1 按输入的 Unicode 字符数计费,定价页以每千字符展示。请求开始时按确定的字符数预扣,合成成功后结算;失败时自动退款。实际费率以定价页为准。
错误
错误响应使用统一 JSON 格式,不会混入音频字节:
| HTTP 状态 | code | 说明 |
|---|---|---|
400 / 422 | invalid_request_error | JSON、字段、音色、格式、文本长度或语速不合法 |
402 | insufficient_credits | 余额不足 |
404 | model_not_found | 模型不存在或当前不可用 |
502 | upstream_error | 音频服务暂时不可用 |
503 | no_available_channel | 当前没有可用的音频生成通道 |
平台不会在响应中返回内部路由、原始错误或底层实现信息。