语音合成 HTTP 单向流(火山原生协议透传)
火山原生协议透传,非 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 为准,网关侧字符数估算仅用于
请求前预授权与上游未回传时的兜底。
Authorization
BearerAuth API 密钥认证(OpenAI 格式)。在 Authorization 请求头中传入:
Authorization: Bearer tr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
In: header
Query Parameters
语音合成模型 / 渠道 ID,与 X-Api-Resource-Id 二选一,query 优先
Header Parameters
火山原生资源 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"
}