Face Feature API #
流式接口 #
/ff
调用方式 #
使用 WebSocket 协议。
调用流程 #
- 建立 WebSocket 连接,在 URL 中使用 query paramter 形式指定
ff_id。例如:“ws://localhost:58001/ff?ff_id=nina” - 接收响应,内容为
"accepted",类型为 text - 发送 PCM 音频,格式要求固定为 16000 采样率、16 位宽、单通道、小端 的音频,可以分多包发送,类型为 binary
- 发送文本
"eof",表示音频发送结束 - 接收响应,内容为提取的表情系数,类型为 binary
- 接收响应,内容为
"eof",类型为 text - 断开连接,close code 为 1000(正常结束)
注意:为防止连接被长时间占用,如发送音频的间隔超过1分钟,连接将被断开。
请求参数 #
参数通过 URL 中的 query paramter 传递。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ff_id | string | 是 | 人脸特征 ID |
| trace | string | 否 | 跟踪 ID,用于跟踪一次请求的整个过程,可用于排查问题,推荐填写 |
| form | string | 否 | 请求来源,用于区分不同的请求来源,可用于排查问题,推荐参照下方请求码填写 |
| vad | int | 否 | VAD 模式,0 为关闭,1 为开启,默认为 0,开启时会额外返回 VAD 数据,用于数字人动静切换。 请注意:VAD 模式与普通模式返回包格式有所差异,见下方说明 |
请求码 #
| 请求码 | 请求来源 | 来源说明 |
|---|---|---|
| APP_RUYING | 如影 APP | 如影客户端直接请求 |
| CS_CORE | 中控 | 中控服务本体 |
| CS_HTTP | 中控 HTTP Pre-Adapter | 中控 HTTP 接口适配服务 |
| CLOUD_LIVE | 云端数字人直播推流 | 2D/3D数字人直播云推流服务 |
| CLOUD_VIDEO | 云端数字人视频合成 | 2D/3D数字人视频服务端合成服务 |
| PC_LIVE | PC 数字人直播 | PC 端数字人直播软件 |
| PC_VIDEO | PC 数字人视频合成 | PC 端数字人视频合成软件(已废弃) |
响应 #
普通模式 #
在非 VAD 模式下,响应内容为提取的表情系数,类型为 binary。
每个数据包包含多帧表情系数数据,每帧表情系数数据由 51 个类型为 float 的表情系数组成。
VAD 模式 #
在 VAD 模式下,响应内容分为两种,类型均为 binary。数据包两两一组,第一个数据包为表情系数数据,第二个数据包为 VAD 数据。
表情系数数据
表情系数数据在普通模式表情系数数据的基础上添加 2 个字节前缀
0xaaaa,表示表情系数数据。VAD 数据
VAD 数据的 2 个字节前缀为
0xbbbb,表示 VAD 数据。
每个 VAD 数据包含多帧 VAD 数据,每帧 VAD 数据的类型为 integer,值为 1 或 0,表示该帧画面中数字人的动静状态,VAD 帧数与表情系数数据帧数相同。
错误处理 #
如提取表情系数过程中出现任何问题,返回错误信息,并断开连接。
错误信息格式为 json,类型为 text,样例如下
{
"status": "fail",
"error": "ff_id not found"
}
错误码及错误原因 #
| close code | error message | 错误原因 |
|---|---|---|
| 1000 | - | 正常关闭 |
| 1008 | ff_id not given | 未指定 ff_id |
| 1008 | ff_id not found | 指定了不存在的 ff_id |
| 1008 | timeout | 超时 |
| 1011 | internal error | 内部错误 |
非流式接口(TODO) #
/quick-input
调用方式 #
使用 WebSocket 协议。
调用流程 #
- 建立 WebSocket 连接,在 URL 中使用 query paramter 形式指定
ff_id。例如:“ws://localhost:58001/quick-input?ff_id=nina” - 发送音频文件 URL,ws message 类型为 text。支持的音频格式为:wav, mp3, m4a, mp4, mov, aac, pcm。如使用 pcm 格式,需遵循以下格式要求:16000 采样率、16 位宽、单通道、小端,且文件名后缀为 raw 或 pcm。
- 接收响应,内容为
"accepted",类型为 text - 接收响应,内容为提取的表情系数,类型为 binary
- 接收响应,内容为
"eof",类型为 text - 断开连接,close code 为 1000(正常结束)
注意:为防止连接被长时间占用,如建立连接与发送音频文件URL的间隔超过1分钟,连接将被断开。
请求参数 #
参数通过 URL 中的 query paramter 传递。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ff_id | string | 是 | 人脸特征 ID |
| trace | string | 否 | 跟踪 ID,用于跟踪一次请求的整个过程,可用于排查问题,推荐填写 |
| form | string | 否 | 请求来源,用于区分不同的请求来源,可用于排查问题,推荐参照下方请求码填写 |
| vad | int | 否 | VAD 模式,0 为关闭,1 为开启,默认为 0,开启时会额外返回 VAD 数据,用于数字人动静切换。 请注意:VAD 模式与普通模式返回包格式有所差异,见下方说明 |
请求码 #
| 请求码 | 请求来源 | 来源说明 |
|---|---|---|
| APP_RUYING | 如影 APP | 如影客户端直接请求 |
| CS_CORE | 中控 | 中控服务本体 |
| CS_HTTP | 中控 HTTP Pre-Adapter | 中控 HTTP 接口适配服务 |
| CLOUD_LIVE | 云端数字人直播推流 | 2D/3D数字人直播云推流服务 |
| CLOUD_VIDEO | 云端数字人视频合成 | 2D/3D数字人视频服务端合成服务 |
| PC_LIVE | PC 数字人直播 | PC 端数字人直播软件 |
| PC_VIDEO | PC 数字人视频合成 | PC 端数字人视频合成软件(已废弃) |
响应 #
普通模式 #
在非 VAD 模式下,响应内容为提取的表情系数,类型为 binary。
每个数据包包含多帧表情系数数据,每帧表情系数数据由 51 个类型为 float 的表情系数组成。
VAD 模式 #
在 VAD 模式下,响应内容分为两种,类型均为 binary。数据包两两一组,第一个数据包为表情系数数据,第二个数据包为 VAD 数据。
表情系数数据
表情系数数据在普通模式表情系数数据的基础上添加 2 个字节前缀
0xaaaa,表示表情系数数据。VAD 数据
VAD 数据的 2 个字节前缀为
0xbbbb,表示 VAD 数据。
每个 VAD 数据包含多帧 VAD 数据,每帧 VAD 数据的类型为 integer,值为 1 或 0,表示该帧画面中数字人的动静状态,VAD 帧数与表情系数数据帧数相同。
错误处理 #
如提取表情系数过程中出现任何问题,返回错误信息,并断开连接。
错误信息格式为 json,类型为 text,样例如下
{
"status": "fail",
"error": "ff_id not found"
}
错误码及错误原因 #
| close code | error message | 错误原因 |
|---|---|---|
| 1000 | - | 正常关闭 |
| 1008 | ff_id not given | 未指定 ff_id |
| 1008 | ff_id not found | 指定了不存在的 ff_id |
| 1008 | timeout | 超时 |
| 1011 | internal error | 内部错误 |