轮询模式
2024.09.06 10:39:09
内容安全直播音频异步检测或人工审核的结果,客户可以通过轮询调用该接口获取数据。轮询模式与推送模式互斥,只能选取一种模式进行结果获取。
接口说明
该接口返回直播音频经过人工审核的结果或者直播音频异步机器检测结果,需要客户通过该接口进行定时轮询获取,当提交检测接口参数callbackUrl为空时,表示结果通过该接口获取,结果可以根据提交检测时返回的taskId对应。
鉴权说明
易盾内容安全服务使用签名方法对接口进行鉴权,所有接口每一次请求都需要包含签名信息(signature 参数),以验证用户身份,防止信息被恶意篡改。目前支持MD5,SHA1,SHA256,SM3几种加密算法,详细信息,请参见接口鉴权
结果说明
- 获取结果后,下次调用,不会再次返回之前获取过的结果
- 接口一次最多返回200个结果,审核结果数据默认保留7天,7天不获取会失效
- 接口请求频率建议1s一次,过快服务器会拒绝处理,客户可以根据业务需求进行适当调整
接口耗时
结果获取接口的响应很快,正常50ms内返回结果,业务方根据需求适当调整超时时间,建议为1s
历史版本
请求
请求地址
名称 | 值 |
---|---|
HTTP URL | http://as.dun.163.com/v4/liveaudio/callback/results |
HTTP Method | POST |
请求头
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | String | 是 | 固定值:"application/x-www-form-urlencoded" |
请求参数
请求参数由公共参数和业务参数两部分组成
公共参数
公共参数包含密钥信息和参数签名信息,公共参数详细见请求公共参数
业务参数
名称 | 类型 | 必填 | 最大长度 | 描述 |
---|---|---|---|---|
version | String | 是 | 4 | 接口版本v4.1 |
yidunRequestId | String | 否 | 64 | 幂等参数说明 |
请求体示例
version=v4.1&signature=xxx&secretId=xxx&businessId=xxx&nonce=xxxxx×tamp=1628137551000
响应
该接口可以返回人工审核结果或异步机器检测结果,两类结果结构保持一致。
响应结果
响应字段如下,响应公共字段已省略,详细见响应公共字段。详细字段信息如下:
名称 | 类型 | 必须返回 | 描述 |
---|---|---|---|
result | Object[] | 是 | 音频检测结果 |
∟ antispam | Object | 否 | 内容安全检测结果 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ callback | String | 否 | 提交时传递的callback |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ censorSource | Number | 是 | 审核来源,0:易盾人审,1:客户人审,2:易盾机审 |
∟ status | Number | 是 | 检测状态,1-检测中,2-检测成功,3-检测失败 |
∟ finishType | Number | 是 | 结束检测类型,0-易盾结束检测,1-客户结束检测 |
∟ failureReason | Number | 否 | 检测失败原因,当检测失败时返回,1:下载失败,2:直播流不存在,3:解析失败,4:格式错误 |
∟ riskLevel | Number | 否 | 直播异常风险等级, 0-正常,1-低危,2-中危,3-中高危,4-高危 |
∟ riskScore | Number | 否 | 直播异常分数 |
∟ duration | Number | 否 | 直播时长字段,直播结束返回直播整体时长,单位s |
∟ billDuration | Number | 否 | 直播音频片段计费时长字段,单位s |
∟ strategySource | Number | 否 | 策略来源,0:易盾策略来源,1:客户策略来源 |
∟ evidences | Object | 否 | 直播断句审核证据信息 |
∟ suggestion | Number | 是 | 建议结果 0-通过 1-嫌疑 2-删除 |
∟ label | Number | 是 | 分类信息,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,1040:黑麦,1100:涉价值观,1050:噪音 |
∟ secondLabel | String | 否 | 命中二级标签细分类 |
∟ thirdLabel | String | 否 | 命中三级标签细分类 |
∟ suggestionLevel | Number | 否 | 嫌疑级别,针对部分定制策略支持命中嫌疑时返回,1:低嫌疑,2:高嫌疑,对通用策略、模型结果暂不支持,v5.2版本新增,默认不返回,如果需要返回请联系运营经理配置 |
∟ startTime | Number | 是 | 断句开始时间,单位毫秒 |
∟ endTime | Number | 是 | 断句结束时间,单位毫秒 |
∟ type | Number | 是 | 断句类型,0-语音识别,1-声纹检测 |
∟ rate | Number | 否 | 声纹检测命中置信度 |
∟ content | String | 是 | 当断句为声纹检测时返回命中声纹检测,语音识别时语音内容 |
∟ url | String | 否 | 需要开启返回直播语音片段播放地址,请联系易盾策略经理 |
∟ speakerId | String | 否 | 针对接入SDK监听客户,返回说话人ID信息 |
∟ speakerRiskScore | Number | 否 | 说话人的直播异常分数 |
∟ segmentId | String | 是 | 断句id |
∟ frontSegment | Object | 否 | 关联证据信息,异常/嫌疑断句命中时返回,命中断句前20s的证据信息,包含前20s的音频语音识别内容及对应url。通过时数据为空,如果命中断句前20s没有内容,返回为空。 |
∟ content | String | 是 | 命中断句前20s的语音识别内容 |
∟ url | String | 是 | 命中断句前20s的音频url,可解析进行回放 |
∟ labels | Object[] | 否 | 分类信息,通过时数据为空 |
∟ label | Number | 是 | 分类信息,分类信息,100:色情,200:广告,260:广告法,300:暴恐,400:违禁,500:涉政,600:谩骂,1040:黑麦,1100:涉价值观,1050:噪音 |
∟ level | Number | 是 | 命中级别,示例值:1:嫌疑,2:不通过,0:正常,特殊策略下可返回“level=0”的数据,如果需要返回可以找策略经理配置 |
∟ rate | Number | 否 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。v4.1及以上版本支持返回 |
∟ subLabels | Object[] | 否 | 命中细分类信息 |
∟ subLabel | String | 是 | 细分类,详细编码请参考细分类编码 对照表 |
∟ subLabelDepth | Number | 是 | 命中的标签层级,目前支持的层级:2,3 |
∟ secondLabel | String | 是 | 命中二级标签细分类 |
∟ thirdLabel | String | 否 | 命中三级标签细分类 |
∟ rate | Number | 否 | 置信度分数,0-1之间取值,1为置信度最高,0为置信度最低。v4.1及以上版本支持返回 |
∟ details | Object | 是 | 其他信息 |
∟ hitInfos | Object[] | 否 | 证据信息 |
∟ value | String | 否 | 命中线索内容 |
∟ hitLeaders | Object[] | 否 | 命中领导人信息 |
∟ value | String | 否 | 领导人名,若命中领导人声纹,返回对应的领导人名 |
∟ keywords | Object[] | 否 | 自定义敏感词线索分类信息 |
∟ word | String | 否 | 自定义添加敏感词 |
∟ libInfos | Object[] | 否 | 自定义名单线索分类信息 |
∟ listType | Number | 是 | 名单类型,1:自定义用户名单,2:自定义IP名单,3:自定义设备名单 |
∟ entity | String | 是 | 名单内容 |
∟ strategyGroupName | String | 否 | 策略组名称 |
∟ intent | Object | 否 | 意图识别结果 |
∟ result | Number | 否 | 意图识别结果类型,0:否定意图;1:肯定意图 |
∟ score | Number | 否 | 意图识别结果得分,小数[0-1]范围 |
∟ rules | Object[] | 否 | 命中用户自定义的规则信息 |
∟ name | String | 是 | 规则名 |
∟ reviewEvidences | Object | 否 | 直播墙人审证据信息 |
∟ action | Number | 是 | 审核操作, 1为忽略, 2为警告, 3为断流, 4为提示 |
∟ actionTime | Number | 是 | 操作时间, UNIX_TIME时间戳, 毫秒为单位 |
∟ spamType | Number | 是 | 违规类型, 100-色情, 115-音乐内容低俗, 116-言论低俗涉黄, 121-发出涉黄声音, 122-ASMR, 200-广告, 211-商业推广, 212-提及竞品, 300-暴恐, 400-违禁, 500-涉政, 511-影响政府形象, 512-邪教迷信, 513-涉军事, 514-涉宗教, 515-国歌、严肃歌曲, 516-涉及少数民族,517-涉及政治敏感话题 800-不文明, 826-传播负面情绪, 827-违反公序良俗, 828-侵害他人隐私, 1000-其他, 1023-无营养, 1027-话题炒作, 1030-挂机, 1050-自定义 |
∟ spamDetail | String | 否 | 违规详细说明 |
∟ censorLabels | Object[] | 否 | 支持在审核系统自定义标签分类信息;使用自定义标签时,spamType为1050 |
∟ code | String | 是 | 在系统配置自定义标签之后会生成一个唯一的标签ID |
∟ name | String | 否 | 在审核系统配置自定义标签名称 |
∟ desc | String | 否 | 在审核系统配置自定义标签备注 |
∟ customCode | String | 否 | 在审核系统配置自定义标签code |
∟ speakerId | String | 否 | 针对接入SDK监听客户,针对房间内具体说话人的处罚,返回说话人ID信息,若为空,则针对房间维度处罚 |
∟ censorAccount | String | 否 | 审核账号 |
∟ warnCount | Number | 是 | 警告次数 |
∟ promptCount | Number | 是 | 提示次数 |
∟ segments | Object[] | 否 | 人审断句信息, 可为空 |
∟ startTime | Number | 是 | 断句开始时间,单位毫秒 |
∟ endTime | Number | 是 | 断句结束时间 ,单位毫秒 |
∟ asr | Object | 否 | 语音识别检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ startTime | Number | 是 | 断句开始时间,单位毫秒 |
∟ endTime | Number | 是 | 断句结束时间,单位毫秒 |
∟ content | String | 是 | 语音识别结果 |
∟ url | String | 否 | 语音断句的临时访问地址,地址有效期为7天,如需开启请联系易盾策略经理 |
∟ speakerId | String | 否 | 针对接入SDK监听客户,返回说话人ID信息 |
∟ language | Object | 否 | 语种识别检测结果,如有需要请联系您的专属商务,未开通状态下不返回 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ startTime | Number | 是 | 断句开始时间,单位毫秒 |
∟ endTime | Number | 是 | 断句结束时间,单位毫秒 |
∟ content | String | 是 | 语种识别类型,支持检测语种类型请参考语种代码表 |
∟ callback | String | 否 | 提交时传递的callback |
∟ segmentId | String | 是 | 断句id |
∟ speakerId | String | 否 | 针对接入SDK监听客户,返回说话人ID信息 |
∟ voice | Object | 否 | 人声属性检测结果 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ startTime | Number | 是 | 断句开始时间,单位毫秒 |
∟ endTime | Number | 是 | 断句结束时间,单位毫秒 |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ segmentId | String | 否 | 断句id |
∟ speakerId | String | 否 | 针对接入SDK监听客户,返回说话人ID信息 |
∟ callback | String | 否 | 提交时传递的callback |
∟ mainGender | String | 否 | 音频性别建议值,male/female |
∟ mainAgeGroup | String | 否 | 识别人声年龄,underage(0~18岁),adult(18岁以上) |
∟ mainAgeGroupRate | Number | 否 | 人声年龄置信度分数,0-1之间取值,1为置信度最高,0为置信度最低 |
∟ url | String | 否 | 语音断句的临时访问地址 |
∟ quality | Object | 否 | 语音质量检测结果 |
∟ taskId | String | 是 | 易盾侧机审数据唯一标识,能够根据该值定位到该条数据,如对检测结果有异议,可以发送该值给策略经理查询 |
∟ startTime | Number | 是 | 断句开始时间,单位毫秒 |
∟ endTime | Number | 是 | 断句结束时间,单位毫秒 |
∟ dataId | String | 否 | 上传数据唯一标识,能够根据该值定位到该条数据,如对数据结果有异议,可以发送该值给客户经理查询 |
∟ callback | String | 否 | 提交时传递的callback |
∟ speakerId | String | 否 | 针对接入SDK监听客户,返回说话人ID信息 |
∟ details | Object | 是 | 详细说明 |
∟ silent | Boolean | 否 | 是否为无声片段,true:无声片段 |
响应体示例
检测中返回示例
{
"code":200,
"msg":"ok",
"result":[
{
"antispam":{
"taskId":"3e10895e028d4b53b387edef27f6deb6",
"dataId":"1631932263268",
"censorSource":2,
"evidences":{
"content":"加我",
"startTime":1631932269297,
"endTime":1631932285317,
"dataId":"1631932263268",
"speakerId":"",
"segmentId":"0ab2682947b648fd98cbe9436875ab0d",
"suggestion":2,
"labels":[
{
"label":200,
"level":2,
"subLabels":[
{
"details":{
"hitInfos":[
{
"value":"加我"
}
]
},
"subLabel":"200009",
"subLabelDepth":2,
"secondLabel":"200009"
}
]
}
]
},
"riskLevel":4,
"riskScore":212,
"status":1
},
"asr":{
"taskId":"3e10895e028d4b53b387edef27f6deb6",
"startTime":1631932269297,
"endTime":1631932285317,
"content":"加我",
"speakerId":"",
"dataId":"1631932263268"
},
"voice":{
"taskId":"7f03cdeaf4cf4c748a4edbe97833a9ee",
"dataId":"",
"callback":"",
"detail":{
"mainAgeGroup":"adult",
"mainAgeGroupRate":0.9973
}
}
}
]
}
检测结束返回示例
{
"code:200,
"msg":ok,
"result":[
{
"antispam":{
"taskId":"31d2bdoi41d457gfmifu4ysog04009xgv",
"callback":"{自定义callback内容}",
"evidences":{
"startTime":0,
"endTime":0,
"segments":[
],
"suggestion":0,
"censorSource":2
},
"duration":26,
"status":2,
"dataId":"12345"
}
]
}
响应返回码
响应返回码见:响应返回码
示例代码
服务端 SDK 接入
推荐使用我们提供的服务端 SDK 进行接入(目前支持 Java 和 Go 两种语言),不但可以节省接入成本,实现更快速的集成,并享有灵活的请求配置选项,同时 SDK 内置了错误重试、熔断降级等功能,提升服务可用性。点击 服务端 SDK 接入指引 了解更多。