本文介绍通过WebSocket连接访问Sambert实时语音合成服务的交互流程、接口地址和请求头。
DashScope SDK目前仅支持Java和Python。使用其他编程语言时,可通过WebSocket连接与服务进行通信。
用户指南:关于模型介绍和选型建议请参见语音合成。
接口地址
Sambert仅支持在北京地域使用。
WebSocket 接口地址固定为:wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/inference
调用时请将{WorkspaceId}替换为真实的Workspace ID。
URL 必须使用 wss:// 协议,且固定不变。Authorization 在请求头中设置(参见请求头)。
阿里云百炼为华北2(北京)地域推出了业务空间专属域名,能够为推理请求提供卓越的性能和更高的稳定性,建议从 dashscope.aliyuncs.com 迁移至 {WorkspaceId}.cn-beijing.maas.aliyuncs.com。
{WorkspaceId}需要替换为真实的Workspace ID。现有域名仍可正常使用。
请求头
请求头中需添加如下信息:
|
参数 |
类型 |
是否必选 |
说明 |
|
Authorization |
string |
是 |
鉴权令牌,格式为 |
|
user-agent |
string |
否 |
客户端标识,便于服务端追踪来源。 |
|
X-DashScope-WorkSpace |
string |
否 |
阿里云百炼业务空间ID。 |
|
X-DashScope-DataInspection |
string |
否 |
是否启用数据合规检测功能。默认不传或设为 |
Authorization 鉴权在 WebSocket 握手阶段验证。如果 API Key 无效或缺失,握手将失败并返回 HTTP 401/403 错误。
交互流程
客户端事件和服务端事件的详细说明,请参见客户端事件和服务端事件。
按时间顺序,客户端与服务端的交互流程如下:
-
建立连接:客户端与服务端建立WebSocket连接。
-
开启任务:客户端发送run-task事件以开启任务。Sambert在run-task中一次性发送全部待合成文本。
-
等待确认:客户端收到服务端返回的task-started事件,标志着任务已成功开启。
-
接收音频:客户端通过
binary通道接收服务端持续返回的音频流,同时收到result-generated事件(携带时间戳等附加信息)。 -
任务结束:客户端收到服务端返回的task-finished事件,标志着任务结束。
-
关闭连接:客户端关闭WebSocket连接。
为提高资源利用率,建议复用 WebSocket 连接处理多个任务,而非为每个任务建立新连接。详细操作请参见连接复用(WebSocket)。
Sambert 不支持流式输入(streaming 为 out 而非 duplex),所有待合成文本必须在 run-task 事件中一次性发送。不支持 continue-task 和 finish-task 指令。