XRToken API 文档

语音合成 HTTP 单向流(火山原生协议透传)

API 配置
保存后下方「Try It」面板会自动携带此 API Key 发送真实请求。
Base: api.xrtoken.net

火山原生协议透传,非 OpenAI 兼容格式:请求体与响应体均为火山语音合成 bigmodel HTTP chunked 单向流原生格式,网关只做鉴权重写与计费旁路,不改写内容。适合已有火山 SDK 集成、想直接切换域名接入的客户;OpenAI 兼容格式见 POST /v1/audio/speech

鉴权(二选一,均为 tr- 前缀 key):

  • Authorization: Bearer <tr-key>
  • X-Api-Key: <tr-key>(火山 SDK 原生头,零改造接入)

选模型?model=<模型ID> 优先;不传则回退到请求头 X-Api-Resource-Id (火山原生客户端天然携带)。

响应Content-Type: application/json,body 是 chunked、换行分隔的 JSON 对象流 (非单个 JSON),每个对象可能含:

  • code:状态码,20000000 表示本次合成结束
  • data:base64 编码的音频分片(增量)
  • sentence:分句 / 字幕信息(audio_params.enable_subtitle=true 时返回字级时间戳)
  • usage.text_words:本次合成计费字符数(结算权威口径,以最后一次出现的值为准)

计费:按文本字符数计费(含标点);req_params.additions.context_texts 中的语音 指令文本不计费;结算以上游最终返回的 usage.text_words 为准,网关侧字符数估算仅用于 请求前预授权与上游未回传时的兜底。

POST
/v1/audio/speech/unidirectional

Authorization

BearerAuth
AuthorizationBearer <token>

API 密钥认证(OpenAI 格式)。在 Authorization 请求头中传入:

Authorization: Bearer tr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Query Parameters

model?string

语音合成模型 / 渠道 ID,与 X-Api-Resource-Id 二选一,query 优先

Header Parameters

X-Api-Resource-Id?string

火山原生资源 ID,?model= 未传时的兜底选模型方式

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X post "https://api.xrtoken.net/v1/audio/speech/unidirectional" \  -H "Content-Type: application/json" \  -d '{    "req_params": {      "text": "string",      "speaker": "string"    }  }'
"string"
{
  "error": "model field is required",
  "type": "invalid_request_error"
}
{
  "error": "invalid or missing API key",
  "type": "auth_error"
}
{
  "error": "insufficient balance -- please top up or upgrade your plan",
  "type": "billing_error"
}
{
  "error": "rate limit exceeded",
  "type": "rate_limit_error"
}
{
  "error": "upstream provider error",
  "type": "server_error"
}