Face Feature 接口

Face Feature API #

流式接口 #

/ff

调用方式 #

使用 WebSocket 协议。

调用流程 #

  1. 建立 WebSocket 连接,在 URL 中使用 query paramter 形式指定 ff_id。例如:“ws://localhost:58001/ff?ff_id=nina”
  2. 接收响应,内容为 "accepted",类型为 text
  3. 发送 PCM 音频,格式要求固定为 16000 采样率、16 位宽、单通道、小端 的音频,可以分多包发送,类型为 binary
  4. 发送文本 "eof",表示音频发送结束
  5. 接收响应,内容为提取的表情系数,类型为 binary
  6. 接收响应,内容为 "eof",类型为 text
  7. 断开连接,close code 为 1000(正常结束)

注意:为防止连接被长时间占用,如发送音频的间隔超过1分钟,连接将被断开。

请求参数 #

参数通过 URL 中的 query paramter 传递。

参数名类型必填说明
ff_idstring人脸特征 ID
tracestring跟踪 ID,用于跟踪一次请求的整个过程,可用于排查问题,推荐填写
formstring请求来源,用于区分不同的请求来源,可用于排查问题,推荐参照下方请求码填写
vadintVAD 模式,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_LIVEPC 数字人直播PC 端数字人直播软件
PC_VIDEOPC 数字人视频合成PC 端数字人视频合成软件(已废弃)

响应 #

普通模式 #

在非 VAD 模式下,响应内容为提取的表情系数,类型为 binary。

每个数据包包含多帧表情系数数据,每帧表情系数数据由 51 个类型为 float 的表情系数组成。

VAD 模式 #

在 VAD 模式下,响应内容分为两种,类型均为 binary。数据包两两一组,第一个数据包为表情系数数据,第二个数据包为 VAD 数据。

  1. 表情系数数据

    表情系数数据在普通模式表情系数数据的基础上添加 2 个字节前缀 0xaaaa,表示表情系数数据。

  2. VAD 数据

    VAD 数据的 2 个字节前缀为 0xbbbb,表示 VAD 数据。

每个 VAD 数据包含多帧 VAD 数据,每帧 VAD 数据的类型为 integer,值为 1 或 0,表示该帧画面中数字人的动静状态,VAD 帧数与表情系数数据帧数相同。

错误处理 #

如提取表情系数过程中出现任何问题,返回错误信息,并断开连接。

错误信息格式为 json,类型为 text,样例如下

{
  "status": "fail",
  "error": "ff_id not found"
}

错误码及错误原因 #

close codeerror message错误原因
1000-正常关闭
1008ff_id not given未指定 ff_id
1008ff_id not found指定了不存在的 ff_id
1008timeout超时
1011internal error内部错误

非流式接口(TODO) #

/quick-input

调用方式 #

使用 WebSocket 协议。

调用流程 #

  1. 建立 WebSocket 连接,在 URL 中使用 query paramter 形式指定 ff_id。例如:“ws://localhost:58001/quick-input?ff_id=nina”
  2. 发送音频文件 URL,ws message 类型为 text。支持的音频格式为:wav, mp3, m4a, mp4, mov, aac, pcm。如使用 pcm 格式,需遵循以下格式要求:16000 采样率、16 位宽、单通道、小端,且文件名后缀为 raw 或 pcm。
  3. 接收响应,内容为 "accepted",类型为 text
  4. 接收响应,内容为提取的表情系数,类型为 binary
  5. 接收响应,内容为 "eof",类型为 text
  6. 断开连接,close code 为 1000(正常结束)

注意:为防止连接被长时间占用,如建立连接与发送音频文件URL的间隔超过1分钟,连接将被断开。

请求参数 #

参数通过 URL 中的 query paramter 传递。

参数名类型必填说明
ff_idstring人脸特征 ID
tracestring跟踪 ID,用于跟踪一次请求的整个过程,可用于排查问题,推荐填写
formstring请求来源,用于区分不同的请求来源,可用于排查问题,推荐参照下方请求码填写
vadintVAD 模式,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_LIVEPC 数字人直播PC 端数字人直播软件
PC_VIDEOPC 数字人视频合成PC 端数字人视频合成软件(已废弃)

响应 #

普通模式 #

在非 VAD 模式下,响应内容为提取的表情系数,类型为 binary。

每个数据包包含多帧表情系数数据,每帧表情系数数据由 51 个类型为 float 的表情系数组成。

VAD 模式 #

在 VAD 模式下,响应内容分为两种,类型均为 binary。数据包两两一组,第一个数据包为表情系数数据,第二个数据包为 VAD 数据。

  1. 表情系数数据

    表情系数数据在普通模式表情系数数据的基础上添加 2 个字节前缀 0xaaaa,表示表情系数数据。

  2. VAD 数据

    VAD 数据的 2 个字节前缀为 0xbbbb,表示 VAD 数据。

每个 VAD 数据包含多帧 VAD 数据,每帧 VAD 数据的类型为 integer,值为 1 或 0,表示该帧画面中数字人的动静状态,VAD 帧数与表情系数数据帧数相同。

错误处理 #

如提取表情系数过程中出现任何问题,返回错误信息,并断开连接。

错误信息格式为 json,类型为 text,样例如下

{
  "status": "fail",
  "error": "ff_id not found"
}

错误码及错误原因 #

close codeerror message错误原因
1000-正常关闭
1008ff_id not given未指定 ff_id
1008ff_id not found指定了不存在的 ff_id
1008timeout超时
1011internal error内部错误