轮询模式
2023.03.22 16:21:39
内容安全点播音频异步检测或人工审核的结果,客户可以通过轮询调用该接口获取数据。轮询模式与推送模式互斥,只能选取一种模式进行结果获取。
接口说明
该接口返回点播音频经过人工审核的结果或者点播音频异步机器检测结果,需要客户通过该接口进行定时轮询获取,当提交检测接口参数callbackUrl为空时,表示结果通过该接口获取,结果可以根据提交检测时返回的taskId对应。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权,所有接口每一次请求都需要包含签名信息(signature 参数),以验证用户身份,防止信息被恶意篡改。目前支持MD5,SHA1,SHA256,SM3几种加密算法,详细信息,请参见接口鉴权
结果说明
- 获取结果后,下次调用,不会再次返回之前获取过的结果
- 接口一次最多返回200个结果,审核结果数据默认保留7天,7天不获取会失效
- 接口请求频率建议1s一次,过快服务器会拒绝处理,客户可以根据业务需求进行适当调整
接口耗时
结果获取接口的响应很快,正常50ms内返回结果,业务方根据需求适当调整超时时间,建议为1s
历史版本
请求
请求地址
名称 | 值 |
---|---|
HTTP URL | http://as.dun.163.com/v4/audio/callback/results |
HTTP Method | POST |
请求头
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | String | 是 | 固定值:"application/x-www-form-urlencoded" |
请求参数
请求参数由公共参数和业务参数两部分组成
公共参数
公共参数包含密钥信息和参数签名信息,公共参数详细见请求公共参数
业务参数
名称 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
version | String | 是 | 4 | 接口版本v4 |
yidunRequestId | String | 否 | 64 | 幂等参数说明 |
请求体示例
version=v4&signature=xxx&secretId=xxx&businessId=xxx&nonce=12345×tamp=1628137551000
响应
该接口可以返回人工审核结果或异步机器检测结果,两类结果结构保持一致
响应结果
响应字段如下,响应公共字段已省略,详细见响应公共字段,resultType为2时表示人工审核结果,详细字段信息如下:
名称 | 类型 | 必须返回 | 描述 |
---|---|---|---|
result | Object[] | 是 | 点播音频检测结果 |
∟ antispam | Object | 是 | 内容安全检测结果 |
∟ taskId | String | 是 | 检测任务 ID,示例值:"38e08da8d2574df4bd2eca9b5153df72" |
∟ status | Number | 是 | 检测状态,2-检测成功,3-检测失败 |
∟ label | Number | 是 | 整体分类信息,0:正常,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,1100:涉价值观,1050:噪音 |
∟ suggestion | Number | 是 | 建议结果 0-通过 1-嫌疑 2-删除 |
∟ suggestionLevel | Number | 否 | 在嫌疑时可能返回,表示嫌疑程度 1-低嫌疑 2-高嫌疑 |
∟ resultType | Number | 是 | 结果类型 1-机器结果 2-人审结果 |
∟ dataId | String | 否 | 提交时传递的dataId |
∟ failureReason | Number | 否 | 检测失败原因,当检测失败时返回,1:文件格式错误,2:文件下载失败,3:解析失败,4:音频流不存在 |
∟ callback | String | 否 | 提交时传递的callback |
∟ censorSource | Number | 是 | 审核来源,0:易盾人审,1:客户人审,2:易盾机审,3:用户质检,4:易盾质检 |
∟ remark | String | 否 | 人审备注信息 |
∟ censorTime | Number | 否 | 审核完成时间,毫秒单位时间戳(13位) |
∟ duration | Number | 是 | 音频时长字段,单位s |
∟ customAction | Number | 否 | 客户自定义建议结果 0-通过 2-删除 |
∟ censorLabels | Object[] | 否 | 支持在智能审核系统自定义标签分类信息 |
∟ code | String | 是 | 在智能系统配置自定义便签之后会生成一个唯一的标签ID |
∟ name | String | 是 | 在智能审核系统配置自定义标签名称 |
∟ desc | String | 是 | 在智能审核系统配置自定义标签备注 |
∟ customCode | String | 否 | 在智能审核系统配置自定义标签ID |
∟ segments | Object[] | 是 | 音频数据所在断句详细信息 |
∟ startTime | Number | 是 | 断句开始时间点,单位秒 |
∟ endTime | Number | 是 | 断句结束时间点,单位秒 |
∟ type | Number | 是 | 断句类型,0-语音识别,1-声纹检测 |
∟ leaderName | String | 否 | 领导人名,若命中领导人声纹,返回对应的领导人名 |
∟ content | String | 是 | 音频数据所在断句语音识别原文内容,支持返回异常数据所在断句内容或全部原文内容 |
∟ url | String | 否 | 风险片段对应语音片段的临时访问地址,地址有效期为7天,如需开启请联系易盾策略经理 |
∟ labels | Object[] | 是 | 分类信息 |
∟ label | Number | 是 | 分类信息,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,1100:涉价值观,1050:噪音 |
∟ level | Number | 是 | 分类级别,0:通过,1:嫌疑,2:不通过 |
∟ subLabels | Object[] | 否 | 命中细分类信息 |
∟ subLabel | String | 是 | 细分类,详细编码请参考下方对应细分类编码对应表 |
∟ details | Object | 是 | 其他信息 |
∟ hitInfos | Object[] | 是 | 证据信息 |
∟ value | String | 是 | 命中的敏感词或者声纹检测的分值 |
∟ songName | String | 否 | 命中的涉政歌曲名称 |
∟ keywords | Object[] | 否 | 自定义敏感词线索分类信息 |
∟ word | String | 是 | 自定义添加敏感词 |
∟ libInfos | Object[] | 否 | 自定义名单线索分类信息 |
∟ listType | Number | 是 | 名单类型,1:自定义用户名单,2:自定义IP名单,3:自定义设备名单 |
∟ entity | String | 是 | 名单内容 |
∟ language | Object | 否 | 语种检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 检测任务 ID,示例值:"38e08da8d2574df4bd2eca9b5153df72" |
∟ dataId | String | 否 | 提交时传递的dataId |
∟ callback | String | 否 | 提交时传递的callback |
∟ details | Object[] | 是 | 语种检测详情 |
∟ type | String | 是 | 语种类型,支持检测语种类型请参考语种代码表 |
∟ segments | Object[] | 是 | 识别语种检测的音频断句 |
∟ startTime | Number | 是 | 最近开始时间点,单位秒 |
∟ endTime | Number | 是 | 最近结束时间点,单位秒 |
∟ asr | Object | 否 | 语音识别检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 检测任务 ID,示例值:"38e08da8d2574df4bd2eca9b5153df72" |
∟ dataId | String | 否 | 提交时传递的dataId |
∟ callback | String | 否 | 提交时传递的callback |
∟ details | Object[] | 是 | 语音识别详情 |
∟ startTime | Number | 是 | 断句开始时间点,单位秒 |
∟ endTime | Number | 是 | 断句结束时间点,单位秒 |
∟ content | String | 是 | 语音识别内容 |
∟ voice | Object | 否 | 人声属性检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 检测任务 ID,示例值:"38e08da8d2574df4bd2eca9b5153df72" |
∟ dataId | String | 否 | 提交时传递的dataId |
∟ callback | String | 否 | 提交时传递的callback |
∟ detail | Object | 是 | 人声属性详情 |
∟ mainGender | String | 是 | 音频性别建议值,male/female |
∟ mainAgeGroup | String | 是 | 识别人声年龄建议值,underage(0~18岁),adult(18岁以上) |
∟mainAgeGroupRate | Number | 是 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟deepfake | Number | 否 | 音频深度伪造检测值,1-伪造,0-真实 |
∟ quality | Object | 否 | 质量检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 检测任务 ID,示例值:"38e08da8d2574df4bd2eca9b5153df72" |
∟ dataId | String | 否 | 提交时传递的dataId |
∟ callback | String | 否 | 提交时传递的callback |
∟ silentSegments | Object[] | 是 | 无声断句检测结果详情 |
∟ startTime | Number | 是 | 断句开始时间点,单位秒 |
∟ endTime | Number | 是 | 断句结束时间点,单位秒 |
响应体示例
{
"code": 200,
"msg": "ok",
"result": [
{
"antispam": {
"taskId": "38e08da8d2574df4bd2eca9b5153df72",
"status ": 2,
"suggestion": 1,
"suggestionLevel": 2,
"resultType": 1,
"segments": [
{
"startTime": 0,
"endTime": 20,
"content": "加我",
"url":"https://as.dun.163.com/v1/audio/segment/play?Signature=455f29675707306bc700e3d9b59ce4f5&Expires=1672404623965&AccessKey=d7k9wgszvzwyg00609yg5&BeginTime=285&EndTime=300",
"labels": [
{
"label": 200,
"level": 1,
"subLabels": [
{
"subLabel": "200009",
"details": {
"hitInfos": [
{
"value": "加我"
}
],
"keywords": [
{
"word": "xxx"
}
],
"libInfos": [
{
"listType": 1,
"entity": "xxx"
}
]
}
}
]
},
{
"label": 100,
"level": 0
},
{
"label": 200,
"level": 0
},
{
"label": 300,
"level": 0
},
{
"label": 400,
"level": 0
},
{
"label": 1100,
"level": 0
}
]
}
],
"callback": "",
"dataId": "",
"censorSource": 2,
"duration": 10,
"censorTime": 1621825885716,
"censorLabels": []
},
"language": {
"taskId": "38e08da8d2574df4bd2eca9b5153df72",
"dataId": "",
"callback": "",
"details": [
{
"type": "en",
"segments": [
{
"startTime": 35,
"endTime": 40
},
{
"startTime": 160,
"endTime": 165
}
]
}
]
},
"asr": {
"taskId": "38e08da8d2574df4bd2eca9b5153df72",
"dataId": "",
"callback": "",
"details": [
{
"startTime": 0,
"endTime": 20,
"content": "加我"
}
]
},
"voice": {
"taskId": "7f03cdeaf4cf4c748a4edbe97833a9ee",
"dataId": "",
"callback": "",
"detail": {
"mainGender": "male",
"mainAgeGroup": "adult",
"mainAgeGroupRate": 0.9973
}
},
"quality": {
"dataId": "",
"callback": "",
"taskId": "7f03cdeaf4cf4c748a4edbe97833a9ee",
"silentSegments": [
{
"startTime": 0,
"endTime": 6
},
{
"startTime": 6,
"endTime": 12
},
{
"startTime": 12,
"endTime": 18
},
{
"startTime": 18,
"endTime": 19
}
]
}
}
]
}
响应返回码
响应返回码见:响应返回码
接入示例代码
开发工具集(SDK)接入
为方便 JAVA 开发者调试和接入API,我们提供了配套的开发工具集(SDK),用于简化API接入流程。SDK中各接口调用方式基本相同,接入方式统一,并提供了一些接口调用过程中常见的异常处理方案。以下介绍了SDK的使用流程,以及使用SDK的简单示例。
- 准备工作
准备步骤详见通用步骤
- 使用方法
该接口的使用方法可参考SDK demo
API接入
如果您选择非SDK接入,使用API方式接入,请参考各开发语言汇总示例代码
该接口的使用方法具体示例如下: