- V1 HTTP 非流式接口;
- V3 HTTP 单向流式接口;
- V3 长文本异步任务(submit/query);
- V1/V3 WebSocket 流式接口的路径约定与路由说明。
一、接口总览
所有 Volcengine TTS 接口均挂载在 VolcArk 路由组下,并要求通过channel_id 指定一个火山方舟渠道:
1. HTTP 接口
-
V1 非流式(一次性返回整段音频)
POST /volcark/openspeech/api/v1/tts?channel_id=<channel_id> -
V3 HTTP 单向流式(JSON 流式返回)
POST /volcark/openspeech/api/v3/tts/unidirectional?channel_id=<channel_id> -
V3 长文本异步任务
- 提交任务:
POST /volcark/openspeech/api/v3/tts/submit?channel_id=<channel_id> - 查询任务:
POST /volcark/openspeech/api/v3/tts/query?channel_id=<channel_id>
- 提交任务:
2. WebSocket 接口
WebSocket 目前主要用于端到端集成测试与内部联调,协议完全透传官方二进制帧(不做解析)。
-
V1 单向流式(二进制协议)
GET /volcark/openspeech/api/v1/tts/ws_binary?channel_id=<channel_id> -
V3 WebSocket 单向流式
GET /volcark/openspeech/api/v3/tts/unidirectional/stream?channel_id=<channel_id> -
V3 WebSocket 双向流式
GET /volcark/openspeech/api/v3/tts/bidirection?channel_id=<channel_id>
二、渠道配置与 TTS 凭证注入
1. 渠道选择:channel_id
所有 TTS 接口都要求 query 参数channel_id,用于明确选择一个 VolcArk 渠道:
- 渠道类型必须为
VolcArk(配置项ChannelTypeVolcArk,在前端显示为「火山方舟 Volc Ark」); - 渠道状态必须为启用;
- 若条件不满足,接口会直接返回 400。
2. TTS 凭证配置:custom_parameter.tts
在 VolcArk 渠道的custom_parameter 字段中,可以按需配置 TTS 上游鉴权信息(可选):
tts.v1.token- 用于 V1 HTTP / WebSocket 接口;
- 若调用方请求头中未显式设置
Authorization,平台会自动设置:
Authorization: Bearer;<token>
tts.v3.app_id/tts.v3.access_key/tts.v3.resource_id- 用于 V3 系列接口(HTTP + WebSocket);
- 若请求头中未显式设置对应字段,平台会自动注入:
X-Api-App-Id: <app_id>X-Api-Access-Key: <access_key>X-Api-Resource-Id: <resource_id>
3. 安全性注意事项
客户端请求时使用的 kapon API Key:三、V1 HTTP 非流式调用示例
V1 HTTP 非流式接口:一次性返回全部合成音频(base64 编码)。 请求路径:- 请求体字段与官方文档完全一致;
- 若渠道配置了
tts.v1.token,平台会为上游请求自动补全Authorization: Bearer;<token>; - 响应中的 JSON 与官方一致(含
code/message/data/sequence/addition等),其中音频数据为 base64 编码。
四、V3 HTTP 单向流式调用示例
V3 HTTP 单向流式接口:服务端以 JSON 流式返回多个片段,每个片段包含一段音频片段(同样为 base64)。 请求路径:X-Control-Require-Usage-Tokens-Return可选,若设置,在合成结束时会返回usage字段(例如text_words表示计费字符数);- 平台不会改写响应体,仅在 Header 中透传
X-Tt-Logid方便排查; - 若渠道配置了
tts.v3,平台会自动注入 V3 鉴权头;否则你需要在请求头中自行设置对应字段。
五、V3 长文本异步任务
1. 提交任务 submit
请求路径:2. 查询任务 query
请求路径:audio_url:音频下载地址(带有限时签名);sentences:句级/字级时间戳信息;req_text_length/synthesize_text_length;task_status:1Running、2Success、3Failure。
六、WebSocket 透传说明
对于 WebSocket 接口,平台采用“字节级透明代理”模式:- 建连阶段:
- 使用
channel_id选择 VolcArk 渠道; - 根据
custom_parameter.tts.v1/v3注入必要的鉴权头; - 通过
wss://openspeech.bytedance.com/...发起上游连接;
- 使用
- 数据转发阶段:
- 基于
common/requester.WSProxy双向转发 WebSocket 帧; - 不解析 TTS 的二进制协议头(包括
Protocol version/Message type/event/payload等); - 不修改任何音频或文本内容;
- 若上游或客户端断开连接,平台会同时关闭另一端。
- 基于
- V1:
wss://openspeech.bytedance.com/api/v1/tts/ws_binary
→wss://models.kapon.cloud/volcark/openspeech/api/v1/tts/ws_binary?channel_id=<channel_id> - V3 单向流式:
wss://openspeech.bytedance.com/api/v3/tts/unidirectional/stream
→wss://models.kapon.cloud/volcark/openspeech/api/v3/tts/unidirectional/stream?channel_id=<channel_id> - V3 双向流式:
wss://openspeech.bytedance.com/api/v3/tts/bidirection
→wss://models.kapon.cloud/volcark/openspeech/api/v3/tts/bidirection?channel_id=<channel_id>
