此文档主要是说明VoiceConversion的WebSocket接口如何调用,本文档中使用VC表示VoiceConversion。
注意
原始音频必须使用采样率为16k、位宽16bit的小端序的pcm格式
接口地址为 wss://openspeech.bytedance.com/api/v1/voice_conv/ws
认证方式使用Bearer Token,在请求的header中加上"Authorization": "Bearer; {token}"
,并在请求的json中填入对应的appid。Token和appid由平台提供。
所有字段以Big Endian(大端序)的方式存储。
字段描述
字段 Field (大小, 单位bit) | 描述 Description | 值 Values |
---|---|---|
协议版本(Protocol version) (4) | 我们可能会在将来使用不同的协议版本,所以这个字段是为了让客户端和服务器在版本上保持一致。 | 0b0001 - 版本 1 (目前只有版本1) |
报头大小(Header size) (4) | header实际大小是 |
|
消息类型(Message type) (4) | 定义消息类型。 |
|
Message type specific flags (4) | flags含义取决于消息类型。 | |
序列化方法(Message serialization method) (4) | 定义序列化payload的方法。 注意:它只对某些特定的消息类型有意义 (例如Audio-only server response |
|
压缩方法(Message Compression) (4) | 定义payload的压缩方法。 Payload size字段不压缩(如果有的话,取决于消息类型),而且Payload size指的是payload压缩后的大小。 Header不压缩。 |
|
保留字段(Reserved) (8) | 保留字段,同时作为边界 (使整个报头大小为4个字节). | 0x00 - 目前只有0 |
请求首包需要使用full client request格式。
Header size为b0001
(即4B,没有header extension)。
Message type为b0001
.
Message type specific flags固定为b0000
.
Message serialization method为b0001
JSON。字段参考参数说明 。其中request["operation"]="submit", request["sequence"]=0.
如果使用gzip压缩payload,则payload size为压缩后的大小。
b0001
.0b0010
.b0001
- sequence number > 0.b0011
- sequence number < 0,表示来自客户端的最后一条消息。b0000
(raw bytes).b0000
(无压缩)。b0001
.b1011
.b0000
- 没有sequence number(full client request对应的ACK消息).b0001
- sequence number > 0.b0010
orb0011
- sequence number < 0,表示来自服务器的最后一条消息,此时客户端应合并所有音频片段(如果有多条)。b0000
(raw bytes).b0000
(无压缩),无论request是否压缩。参考文档:参数说明