接口说明
发送音频时请特别留意请求参数下方的发送注意事项,不然会导致发送不成功。
请求参数
参数名称 | 类型 | 必选 | 描述 |
ReqId | String | 是 | 单次驱动的唯一标识。每一段音频指定一个32位 uuid 值(不包含‘-’)。 注意: 每一段流式音频序列指定一个 ReqId,而不是单独一次音频分片请求指定一个。 值得注意的是,在发送 final 包时仍然使用的是指定的这一个 ReqId,不需要再生成一个。 |
SessionId | String | 是 | 会话唯一标识。 |
Command | String | 是 | SEND_AUDIO,发送音频。 |
Data | 是 | 数据对象。 |
Data
名称 | 类型 | 必选 | 描述 |
Audio | string | 是 | 音频原始数据的 byte 数组,经 Base64 编码后的字符串。只支持:格式-PCM,采样率-16kHz,采样位深-16bits,声道-单声道。可以使用FFmpeg工具对音频格式进行调整,详情请看ffmpeg转化音频格式说明。 |
Seq | int | 是 | 音频片包序号,序号必须从1开始。 |
IsFinal | bool | 否 | 用于标记本次音频驱动是否结束,默认值 false。 注意: 当数据包发送完毕后,必须再发送一个IsFinal=true的空数据包(Audio字段填空串)结束当次音频驱动使数字人回到静默状态。 |
VideoSeiInfo | string | 否 |
注意:
1. 如果是麦克风实时收音发送,每录制160ms(5120B)的数据即可发出,中间不需要间隔等待;如果是读取离线音频文件发送,片包大小为160ms(5120B),片包发送间隔为120ms。
2. 最后一个片包大小按实际发送(需小于160ms)。
3. 发送音频实时率要介于[0.75,1],小于0.75会触发限速,大于1会导致画面卡顿。例如160ms音频片包大小,发送间隔不能低于120ms,不能高于160ms。
请求示例
{"Header": {},"Payload": {"ReqId": "d7aa08da33dd4a662ad5be508c5b77cf","SessionId": "m318552187863054171","Command": "SEND_AUDIO","Data": {"Audio": "声音二进制数据编码Base64后的值","Seq": 1,"IsFinal": false}}}