接口说明
内容审核平台-图像
为用户提供色情识别、广告识别、图像垃圾文本识别(反作弊)、恶心图像识别等一系列图像识别接口的一站式服务调用,并且支持用户在控制台中自定义配置所有接口的报警阈值和疑似区间,上传自定义文本黑库和敏感人物名单等。相比于组合服务接口,本接口除了支持自定义配置外,还对返回结果进行了总体的包装,按照用户在控制台中配置的规则直接返回是否合规,如果不合规则指出具体不合规的内容。
public void sample(AipContentCensor client) {
// 参数为本地图片路径
String path = "test.jpg";
JSONObject response = client.imageCensorUserDefined(path, EImgType.FILE, null);
System.out.println(response.toString());
// 参数为url
String url = "http://testurl";
response = client.imageCensorUserDefined(url, EImgType.URL, null);
System.out.println(response.toString());
// 参数为本地图片文件二进制数组
byte[] file = readImageFile(imagePath);
response = client.imageCensorUserDefined(file, null);
System.out.println(response.toString());
}
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
image | String | N (和imgUrl二选一) |
待审核图像Base64编码字符串, 以图像文件形式请求时必填 |
/9j/4AAQSkZJRgABAQAASABIAAD/4 QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAYAAIdp |
imgUrl | String | N (和image二选一) |
网图URL地址, 以网图形式请求, 图像Url需要做UrlEncode |
https://ai-solution-admin.cdn.bcebos.com/audit%2F demo%2Fcensoring-demo.jpg |
imgType | uint64 | N | 图片类型0:静态图片,1:gif动态图片 | 1 |
返回参数详情
参数名称 | 数据类型 | 是否必须 | 备注 |
---|---|---|---|
log_id | Long | Y | 请求唯一id,用于问题排查 |
error_code | Long | N | 错误提示码,失败才返回,成功不返回 |
error_msg | String | N | 错误提示信息,失败才返回,成功不返回 |
conclusion | String | N | 审核结果,可取值描述:合规、不合规、疑似、审核失败 |
conclusionType | uint64 | N | 审核结果类型,可取值1、2、3、4,分别代表1:合规,2:不合规,3:疑似,4:审核失败 |
data | Array | N | 不合规/疑似/命中白名单项详细信息。响应成功并且conclusion为疑似或不合规或命中白名单时才返回,响应失败或conclusion为合规且未命中白名单时不返回。 |
+error_code | uint64 | 否 | 内层错误提示码,底层服务失败才返回,成功不返回 |
+error_msg | string | 否 | 内层错误提示信息,底层服务失败才返回,成功不返回 |
+type | Integer | N | 结果具体命中的模型:0:百度官方违禁图库、1:色情识别、2:暴恐识别、3:恶心图识别、4:广告监测、5:政治敏感识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、9:图文审核、11:百度官方违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单、15:EasyDL自定义模型 |
+subType | Integer | N | 审核子类型,此字段需参照type主类型字段决定其含义: 当type=0时subType取值含义 : 0:百度官方违禁图 当type=1时subType取值含义: 0:一般色情、1:卡通色情、2:SM、3:低俗、4:儿童裸露、5:艺术品色情、6:性玩具、7:男性性感、8:自然男性裸露、9:女性性感、10:卡通女性性感、11:特殊类、12:亲密行为、13:卡通亲密行为 当type=2时subType取值含义: 0:警察、1:血腥、2:尸体、3:爆炸火灾、4:杀人、5:暴乱、6:暴恐人物、7:军事武器、8:暴恐旗帜、9:血腥动物或动物尸体、10:车祸 当type=3时subType取值含义: 0:恶心图 当type=4时subType取值含义:0:水印、1:二维码、2:条形码 当type=5时subType取值含义:0:政治敏感、1:公众人物、2:自定义敏感人物 当type=6时subType取值含义: 0:图像清晰度、1:图像美观度 当type=7时subType取值含义: 0:用户自定义图像黑名单 当type=8时subType取值含义: 0:用户自定义图像白名单 当type=9时subType取值含义: 0:图像中必须是真人脸 1:人脸必须为正脸 2:左右旋转角度 3:俯仰角度 4:歪头角度 5:人脸不能有遮挡 6:不能遮挡眼睛 7:不能遮挡鼻子 8:不能遮挡嘴 9:不能遮挡下巴 10:不能遮挡脸颊 11:人脸不能佩戴墨镜 12:人脸占比 13:人脸必须清晰 当type=11时subType取值含义: 0:百度官方默认违禁词库 当type=12时subType取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4恶意推广、5:低俗辱骂 当type=13时subType取值含义: 0:自定义文本黑名单 当type=14时subType取值含义: 0:自定义文本白名单 |
+msg | String | N | 不合规项描述信息 |
+probability | Float | N | 不合规项置信度 |
+datasetName | Float | N | 违规项目所属数据集名称 |
+stars | Array | N | 敏感人物列表数组,只有敏感人物审核不通过才有 |
++name | String | N | 敏感人物名称 |
++probability | Float | N | 人脸相似度 |
++datasetName | Float | N | 人脸所属数据集名称 |
+hits | Array | N | 命中关键词信息 |
++words | String | N | 违规文本关键字 |
+codes | Array | N | (如果您在策略配置中勾选了二维码识别)二维码或者条形码识别结果 |
++modelName | String | N | (如果您勾选了EasyDL的模型)命中自定义模型名称 |
++score | Float | N | (如果您勾选了EasyDL的模型)命中自定义模型置信度 |
++modelId | Array | N | (如果您勾选了EasyDL的模型)命中自定义模型ID |
++label | String | N | (如果您勾选了EasyDL的模型)命中自定义模型标签名称 |
+type | int | N | 原生结果的类型1:色情识别、2:暴恐识别、3:恶心图识别、4:广告监测、5:政治敏感识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、9:图文审核 |
+results | JSONArray | N | 每个type可能会调用多个底层服务,此处可能有多个结果 |
返回示例
// 失败返回示例
{
"log_id": 149319909347709,
"error_code": 282800,
"error_msg":"configId param is error or null"
}
// 成功返回示例-合规
{
"log_id": 123456789,
"conclusion": "合规"
}
// 成功返回示例-不合规
{
"log_id": 123456789,
"conclusion": "不合规",
"data": [
{
"msg": "存在色情内容",
"probability": 0.94308,
"type": 1
},
{
"msg": "存在性感内容",
"probability": 0.94308,
"type": 2
},
{
"msg": "存在暴恐内容",
"probability": 0.94308,
"type": 3
},
{
"msg": "存在恶心内容",
"probability": 0.9688154,
"type": 4
},
{
"msg": "存在政治敏感内容",
"stars": [
{
"probability": 0.94308,
"name": "xxx"
},
{
"probability": 0.44308,
"name": "xxx"
}
],
"type": 8
},
{
"msg": "存在二维码内容",
"probability": 0.94308,
"type": 6
},
{
"msg": "存在水印码内容",
"probability": 0.94308,
"type": 5
},
{
"msg": "存在条形码内容",
"probability": 0.94308,
"type": 7
},
{
"msg": "包含联系方式",
"probability": 0.94308,
"words": "包含联系方式",
"type": 8
}
]
}
内容审核平台-文本
public void sample(AipContentCensor client) {
// 参数为待审核的文本字符串
String text = "测试文本";
JSONObject response = client.textCensorUserDefined(text);
System.out.println(response.toString());
}
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
text | String | N | 待审核文本字符串 | "测试文本" |
返回数据参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
log_id | Long | Y | 请求唯一id | |
error_code | Long | N | 错误提示码,失败才返回,成功不返回 | |
error_msg | String | N | 错误提示信息,失败才返回,成功不返回 | |
conclusion | String | N | 审核结果,可取值:合规、不合规、疑似、审核失败 | |
conclusionType | uint64 | N | 审核结果类型,可取值1.合规,2.不合规,3.疑似,4.审核失败 | |
data | Array | N | 不合规/疑似/命中白名单项详细信息。响应成功并且conclusion为疑似或不合规或命中白名单时才返回,响应失败或conclusion为合规且未命中白名单时不返回。 | |
+error_code | uint64 | 否 | 内层错误提示码,底层服务失败才返回,成功不返回 | |
+error_msg | string | 否 | 内层错误提示信息,底层服务失败才返回,成功不返回 | |
+type | Integer | N | 审核主类型,11:百度官方违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单 | |
+subType | Integer | N | 审核子类型,此字段需参照type主类型字段决定其含义: 当type=11时subType取值含义: 0:百度官方默认违禁词库 当type=12时subType取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂 当type=13时subType取值含义: 0:自定义文本黑名单 当type=14时subType取值含义: 0:自定义文本白名单 |
|
+msg | String | N | 不合规项描述信息 | |
+probability | Float | N | 不合规项置信度 | |
+datasetName | Float | N | 违规项目所属数据集名称 | |
+hits | Array | N | 命中关键词信息 | |
++words。 | String | N | 违规文本关键字 |
返回示例
// 成功返回示例-合规
{
"log_id": 15556561295920002,
"conclusion": "合规",
"conclusionType": 1
}
或者
{
"log_id": 15572142621780024,
"conclusion": "合规",
"conclusionType": 1,
"data": [{
"type": 14,
"subType": 0,
"conclusion": "合规",
"conclusionType": 1,
"msg": "自定义文本白名单审核通过",
"hits": [{
"datasetName": "SLK-测试-自定义文本白名单",
"words": ["张三"]
}]
}]
}
// 成功返回示例-不合规
{
"log_id": 123456789,
"conclusion": "不合规",
"conclusionType": 2,
"data": [{
"type": 11,
"subType": 0,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在百度官方默认违禁词库不合规",
"hits": [{
"datasetName": "百度默认黑词库",
"words": ["免费翻墙"]
}]
}, {
"type": 12,
"subType": 2,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在文本色情不合规",
"hits": [{
"datasetName": "百度默认文本反作弊库",
"probability": 1.0,
"words": ["电话 找小姐"]
}]
}, {
"type": 12,
"subType": 3,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在政治敏感不合规",
"hits": [{
"probability": 1.0,
"datasetName": "百度默认文本反作弊库",
"words": ["张三"]
}]
}, {
"type": 12,
"subType": 4,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在恶意推广不合规",
"hits": [{
"probability": 1.0,
"datasetName": "百度默认文本反作弊库",
"words": [""]
}]
}, {
"type": 13,
"subType": 0,
"conclusion": "不合规",
"conclusionType": 2,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "SLK-测试-自定义黑名单",
"words": ["我是你爹", "他妈的"]
}]
}]
}
// 失败响应示例
{
"log_id": 149319909347709,
"error_code": 0,
"error_msg":"configId error"
}
短音频审核接口
public void sample(AipContentCensor client) {
//设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
//可选参数配置
HashMap<String, Object> options=new HashMap();
options.put("rawText","false");
options.put("split","true");
// 参数为本地音频
String path = "test.wav";
byte[] data = Util.readFileByBytes(path);
JSONObject response = client.voiceCensorUserDefined(data, 16000, "wav", options);
System.out.println(response.toString());
// 参数为音频url
String url = "http://testurl";
//采样率
int rate=1600
response = client.voiceUrlCensorUserDefined("url", rate, "wav", options);
}
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
voice | String | Y | 音频二进制文件 | |
url | String | Y | 音频url路径 与voice二选一 | |
fmt | String | Y | 语言文件格式 | 音频文件的格式,pcm、wav、amr、m4a;不区分大小写。推荐pcm文件 |
rate | Integer | Y | 音频采样率[16000] ] | |
rawText | boolean | N | 是否返回音频识别结果 true:是;false:否 默认为true | xxxx |
split | boolean | N | true:拆句;false:不拆句返回整段文本 默认为false | xxxx |
返回参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
log_id | Long | Y | 请求唯一id | |
error_code | Long | N | 错误提示码,失败才返回,成功不返回 | |
error_msg | String | N | 错误提示信息,失败才返回,成功不返回 | |
conclusion | String | N | 总体审核结果,可取值:合规、不合规、疑似、审核失败 | |
conclusionType | int | N | 总体审核结果类型,可取值1.合规,2.不合规,3.疑似,4.审核失败 | |
rawText | list | N | 音频识别文本结果 | |
sn | String | N | 音频数据唯一标识,系统内部产生。如果反馈及debug请提供sn。 | |
data | list | N | 不合规/疑似/命中白名单项详细信息。响应成功并且conclusion为疑似或不合规或命中白名单时才返回,响应失败或conclusion为合规且未命中白名单时不返回。 | |
+text | list | Y | 分段文本结果,若不拆句,则为整段文本 | |
+conclusion | list | N | 当前文本审核结果,可取值:合规、不合规、疑似、审核失败 | |
+conclusionType | list | N | 当前文本审核结果类型,可取值1.合规,2.不合规,3.疑似,4.审核失败 | |
+auditData | list | N | 当前文本审核结果明细 | |
++type | int | N | 审核主类型,11:百度官方违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单 20:存在娇喘内容 | |
++subType | int | N | 审核子类型,此字段需参照type主类型字段决定其含义: 当type=11时subType取值含义: 0:百度官方默认违禁词库 当type=12时subType取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂、6:恶意推广-联系方式、7:恶意推广-软文推广、8:广告法审核 当type=13时subType取值含义: 0:自定义文本黑名单 当type=14时subType取值含义: 0:自定义文本白名单 |
|
++msg | String | N | 不合规项描述信息 | |
++hits | list | N | 命中信息 | |
++probability | Float | N | 不合规项置信度 | |
+++datasetName | Float | N | 违规项目所属数据集名称 | |
+++words | list | N | 命中关键词 |
成功响应示例
{
"log_id":15656780617612718,
"conclusion":"不合规",
"conclusionType":2,
"rawText":[
"第一段文本-违规",
"第二段文本-命中白名单合规",
"第三段文本-自然合规"
],
"data":[
{
"auditData": [
{
"hits": [
{
"probability": 0.0023267511,
"words": []
}
],
"msg": "存在娇喘内容",
"subType": 0,
"type": 20
}
],
"conclusion": "疑似",
"conclusionType": 3,
"text": "存在娇喘内容"
},
{
"text":"第一段文本-违规",
"conclusion":"不合规",
"conclusionType":2,
"auditData":[
{
"type":11,
"subType":0,
"msg":"存在百度官方默认违禁词库不合规",
"hits":[
{
"datasetName":"百度默认黑词库",
"words":[
"免费翻墙"
]
}
]
},
{
"type":12,
"subType":2,
"msg":"存在文本色情不合规",
"hits":[
{
"datasetName":"百度默认文本反作弊库",
"probability":1,
"words":[
"电话 找小姐"
]
}
]
},
{
"type":13,
"subType":0,
"msg":"存在自定义文本黑名单不合规",
"hits":[
{
"datasetName":"SLK-测试-自定义黑名单",
"words":[
"我是你爹",
"他妈的"
]
}
]
}
]
},
{
"text":"第二段文本-命中白名单合规",
"conclusion":"合规",
"conclusionType":1,
"auditData":[
{
"type":8,
"subType":0,
"msg":"命中用户自定义白名单",
"datasetName":"用户自定义白名单1"
}
]
},
{
"text":"第三段文本-自然合规",
"conclusion":"合规",
"conclusionType":1
}
]
}
失败响应示例
{
"log_id": 149319909347709,
"error_code": 0,
"error_msg":"configId error"
}
短视频审核接口
AipContentCensor contentCensor = new AipContentCensor("appid","ak","sk");
public void sample(AipContentCensor client) {
//可选参数
HashMap<String, Object> options=new HashMap();
options.put("videoUrl2",http://vfx.mtime.cn/Video/2019/03/12/mp4/190312083533415853.mp4");
options.put("extInfo","[{\"subject\":\"账户信息\",\"fields\":[{\"title\":\"昵称\",\"value\":\"陈翔六点半\"}]}]");
//视频url 地址
String videoUrl = "http://vfx.mtime.cn/Video/2019/03/12/mp4/190312083533415853.mp4";
//视频名字
String name="videoName";
//视频id;
String extId="id";
//设置链接超时时间
contentCensor.setConnectionTimeoutInMillis(10000);
contentCensor.setSocketTimeoutInMillis(20000);
JSONObject res=contentCensor.videoCensorUserDefined(name, videoUrl, extId, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
name | String | Y | 视频名字 | |
videoUrl | String | Y | 视频主URL地址,若主Url无效或抓取失败,则依次抓取备用地址videoUrl2、videoUrl3、videoUrl4,若全部抓取失败则审核失败 | |
videoUrl2 | String | N | 视频备用URL地址 | |
videoUrl3 | String | N | 视频备用URL地址 | |
videoUrl4 | String | N | 视频备用URL地址 | |
extId | String | Y | 视频在用户平台的唯一ID,方便人工审核结束时数据推送,用户利用此ID唯一锁定一条平台资源,若无可填写视频Url | |
extInfo | JsonArray | N | 用户自定义字段,用户可以在此字段中添加自定义字段,此字段会展示在审核员页面以帮助审核人员更好的判断视频内容是否合规,具体格式请参照下方示例 | |
+subject | String | Y | 主题描述 | |
+fields | JsonArray | Y | 字段列表 | |
++title | String | Y | 字段名称 | |
++value | String | Y | 字段值 |
返回数据参数详情
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
log_id | Long | Y | 调用唯一ID | |
error_code | uint64 | N | 服务调用错误码,失败才返回,成功不返回 | |
error_msg | String | N | 服务调用提示信息,失败才返回,成功不返回 | |
conclusion | String | N | 审核结果描述,可取值:合规、不合规、疑似 | |
conclusionType | Int | N | 审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
isHitMd5 | boole | N | 是否命中视频黑库MD5提示,true:命中 false:未命中 | |
msg | String | N | 命中MD5提示 | |
frames | JsonArray | N | 帧审核明细 | |
+frameTimeStamp | Long | N | 帧时间戳 | |
+conclusion | Long | N | 帧审核结果描述,可取值:合规、不合规、疑似 | |
+conclusionType | Int | N | 帧审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
+frameUrl | String | N | 帧url地址 | |
+frameThumbnailUrl | String | N | 帧缩略图url地址 | |
+data | JsonArray | N | 各维度明细审核结果 | |
++error_code | uint64 | N | 内层错误提示码,底层服务失败才返回,成功不返回 | |
++error_msg | string | N | 内层错误提示信息,底层服务失败才返回,成功不返回 | |
++type | uint64 | N | 审核主类型,0:百度官方违禁图库、1:色情识别、2:暴恐识别、3:恶心图识别、4:广告检测、5:政治敏感识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、10:用户头像审核、11:百度官方违禁词库、12:图文审核、13:自定义文本黑名单、14:自定义文本白名单、15:EasyDL自定义模型、16:敏感旗帜标志识别、21:不良场景识别 | |
++subType | uint64 | N | 审核子类型,此字段需参照type主类型字段决定其含义: 当type=0时subType取值含义: 0:百度官方违禁图 当type=1时subType取值含义: 0:一般色情、1:卡通色情、2:SM、3:低俗、4:儿童裸露、5:艺术品色情、6:性玩具、7:男性性感、8:自然男性裸露、9:女性性感、10:卡通女性性感、11:特殊类、12:亲密行为、13:卡通亲密行为、14:孕肚裸露、15:臀部特写、16:脚部特写、17:裆部特写 当type=2时subType取值含义: 0:警察、1:血腥、2:尸体、3:爆炸火灾、4:杀人、5:暴乱、6:暴恐人物、7:军事武器、8:暴恐旗帜、9:血腥动物或动物尸体、10:车祸、11:枪械、12:弹药、13:刀具、14:武装人员、15、特殊服饰 当type=3时subType取值含义: 0:恶心图、1:性器官特写、2:脏器、3:疾病表症、4:密集恐惧症、5:腐烂食物、6:排泄物、7:恶心动物、8:人体血腥和尸体、9:动物血腥及尸体 当type=4时subType取值含义: 0:水印、1:二维码、2:条形码、3:识别二维码中内容、4:识别条形码中内容、5:不过滤字幕、6:小程序码 当type=5时subType取值含义: 0:政治敏感、1:公众人物、2:自定义敏感人物 当type=6时subType取值含义: 0:图像清晰度、1:图像美观度 当type=7时subType取值含义: 0:用户自定义图像黑名单 当type=8时subType取值含义: 0:用户自定义图像白名单 当type=10时subType取值含义: 0:图像中必须是真人脸、1:人脸必须为正脸、2:左右旋转角度、3:俯仰角度、4:歪头角度、5:人脸不能有遮挡、6:不能遮挡眼睛、7:不能遮挡鼻子、8:不能遮挡嘴、9:不能遮挡下巴、10:不能遮挡脸颊、11:人脸不能佩戴墨镜、12:人脸占比、13:人脸必须清晰 当type=11时subType取值含义: 0:百度官方默认违禁词库 当type=12时subType取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂、6:广告法审核 当type=13时subType取值含义: 0:自定义文本黑名单 当type=14时subType取值含义: 0:自定义文本白名单 当type=16时subType取值含义: 0:中国国旗及类似图形、1:中国地图及类似图形、2:党旗、军旗、党徽及类似图形、3:警徽及类似图形、4:各类臂章、5:反动组织旗帜、徽章、标志 当type=21时subType取值含义: 1:真人吸烟、2:卡通吸烟、3:毒品、4:真人饮酒、5:卡通饮酒、6:赌博 |
|
++msg | String | N | 不合规项描述信息 | |
++probability | Float | N | 不合规项置信度 | |
++datasetName | Float | N | 违规项目所属数据集名称 | |
++stars | Array | N | 敏感人物列表数组,只有敏感人物审核不通过才有 | |
+++name | String | N | 敏感人物名称 | |
+++probability | Float | N | 人脸相似度 | |
+++datasetName | Float | N | 所属数据集名称 | |
++codes | Array | N | 二维码或者条形码识别结果 | |
++hits | Array | N | 命中信息 | |
+++words | Array | N | 命中关键词 | |
+++modelName | String | N | 命中自定义模型名称 | |
+++score | Float | N | 命中自定义模型置信度 | |
+++modelId | Array | N | 命中自定义模型ID | |
+++label | String | N | 命中自定义模型标签名称 | |
conclusionTypeGroupInfos | JSON | N | 审核结论汇总 | |
+msg | String | N | 一级违规类型描述信息 | |
+subTypeInfoList | List | N | 二级违规列表。timestamp:帧时间戳;subType:二级违规类型描述 | |
+typeInfo | json | N | type:一级违规类型描述 |
成功响应示例
{
"log_id": 15832318739570011,
"conclusionType": 2,
"conclusion": "不合规",
"isHitMd5": false,
"msg": "未命中视频黑库",
"frames": [{
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 0,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/2877d59d-414c-4b4f-9b99-9a125b6b2055?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F8801a8dc24914caf2ea3d1c360d24002ccbbffb99c3f74d35a1257d07ea15529",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/84e15149-2f91-4033-bff5-b7c6078107ed?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fa90ef9833579b3503863aea51a47e40ab2cd269a9354d8b0f4730c44803170f5",
"data": [{
"conclusionType": 2,
"conclusion": "不合规",
"type": 5,
"subType": 1,
"msg": "存在公众人物不合规",
"stars": [{
"probability": 0.96015228271484,
"name": "圆圆"
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.99330544,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
}, {
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}]
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 3033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/e4bd6b04-59f5-40c6-b83b-fb426d87e714?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F9ebb1ee1ba7d5fa864d2ad6e9a76b28ea07586152815cecba4a44597bee332af",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/801bf227-3ff6-47bc-9759-5e920580d5f1?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F212653b237895ac5a8f6f08d689e975c4a53ca5d4ebb0cfec01fafa88dcdd0bf",
"data": [{
"conclusionType": 2,
"conclusion": "不合规",
"type": 4,
"subType": 0,
"probability": 0.99816656,
"msg": "存在watermark不合规"
}, {
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "#################111",
"words": ["好看视频"]
}]
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 6033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/b239a644-6fa2-40a1-8a59-f7d0d15918a9?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F4a923722349243c3332ac274338d89d7f8a687ed0fa60e8acb982a5744d18774",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/b063f42f-340d-4275-b59a-21e2a51c254c?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F7a8e81ed06e09b91e92704d0a4654eccfd6a4261408322f428c255f37ab4c6a4",
"data": [{
"conclusionType": 2,
"conclusion": "不合规",
"type": 5,
"subType": 1,
"msg": "存在公众人物不合规",
"stars": [{
"probability": 0.91569610595703,
"name": "圆圆"
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.9982729,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
}, {
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}]
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 9033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/65d7cc3d-30db-48e2-8bd6-403377b79b7f?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fef8c29c559b0a4a903587cc9cadde5580f1e92b2934ed49353c0c6eaf085a126",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/8ae73692-5ec6-4217-be91-2fdd706163e1?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F774b05e67fc5938af9bc0add229e3dfa738738ca5bcfd1754d12f59856a50757",
"data": [{
"conclusionType": 2,
"conclusion": "不合规",
"type": 5,
"subType": 1,
"msg": "存在公众人物不合规",
"stars": [{
"probability": 0.90749565124512,
"name": "圆圆"
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"type": 4,
"subType": 0,
"probability": 0.9990488,
"msg": "存在watermark不合规"
}, {
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}]
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 12033,
"frameUrl": "http://bj.bcebos.com/v1/aip-web/70bbd265-aa8d-47dd-ad3e-f221eacf4638?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F7edc87b8c40c7cf05d27225f771a778849bc2a36f4c0275bda4245b6620ee2ce",
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/d6853b59-4e32-4d2b-92fe-78a8deca9a42?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fac65249d7009c584edba4235508c7a8a99c36e4037829bfad8612a3eeeffd000",
"data": [{
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.9984498,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
}, {
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "#################111",
"words": ["好看视频", "好看视频"]
}]
}]
}, {
"conclusionType": 2,
"conclusion": "不合规",
"frameTimeStamp": 18033,
"frameThumbnailUrl": "http://bj.bcebos.com/v1/aip-web/b23b8992-8d13-43d3-b1d6-02fcb4b03202?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2Fb503ac106e521e4bf1cc699595ee9c6115b96b18bf91e138a6fd33e40034e1a9",
"frameUrl": "http://bj.bcebos.com/v1/aip-web/272de021-d2b2-4abd-a9cb-c1c17b2955d0?authorization=bce-auth-v1%2Ff86a2044998643b5abc89b59158bad6d%2F2020-03-03T10%3A37%3A56Z%2F-1%2F%2F9f778dce855fca47be17c65ca0b3d9fcdac2c0e43b2bdeb4e114806c94c2fd07",
"data": [{
"conclusionType": 2,
"conclusion": "不合规",
"probability": 0.988422,
"type": 4,
"subType": 0,
"msg": "存在watermark不合规"
}, {
"conclusionType": 2,
"conclusion": "不合规",
"type": 13,
"subType": 0,
"msg": "存在自定义文本黑名单不合规",
"hits": [{
"datasetName": "#################111",
"words": ["好看视频", "好看视频", "好看视频", "好看视频"]
}]
}]
}],
"conclusionTypeGroupInfos": [{
"msg": "存在watermark不合规",
"typeInfo": {
"type": "广告检测"
},
"subTypeInfoList": [{
"subType": "watermark",
"timestamp": 0
}, {
"subType": "watermark",
"timestamp": 3033
}, {
"subType": "watermark",
"timestamp": 6033
}, {
"subType": "watermark",
"timestamp": 9033
}, {
"subType": "watermark",
"timestamp": 12033
}, {
"subType": "watermark",
"timestamp": 18033
}]
}, {
"msg": "存在公众人物不合规",
"typeInfo": {
"type": "政治敏感识别"
},
"subTypeInfoList": [{
"subType": "公众人物",
"timestamp": 0
}, {
"subType": "公众人物",
"timestamp": 6033
}, {
"subType": "公众人物",
"timestamp": 9033
}]
}, {
"msg": "存在自定义文本黑名单不合规",
"typeInfo": {
"type": "自定义文本黑名单"
},
"subTypeInfoList": [{
"subType": "自定义文本黑名单",
"timestamp": 0
}, {
"subType": "自定义文本黑名单",
"timestamp": 3033
}, {
"subType": "自定义文本黑名单",
"timestamp": 6033
}, {
"subType": "自定义文本黑名单",
"timestamp": 9033
}, {
"subType": "自定义文本黑名单",
"timestamp": 12033
}, {
"subType": "自定义文本黑名单",
"timestamp": 18033
}]
}]
}
失败响应示例
{
"log_id": 149319909347709,
"error_code": 0,
"error_msg":"configId error"
}
长视频审核接口
提交视频审核任务
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// 可选参数
HashMap<String, Object> options = new HashMap<String, Object>();
options.put("frequency", 5);
// 长视频url
String videoUrl = "http://testurl";
// 用户侧视频唯一标识
String extId = "123456";
// sdk调用接口并输出结果
JSONObject res = client.longVideoCensorSubmit(videoUrl, extId, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
appid | Long | 应用ID | N |
strategyId | Long | 策略ID | N |
url | String | 视频地址 | Y |
noticeUrl | String | 通知地址,用于用户接收百度推送的审核结果。用户调用接收结果接口以接收审核结果时必填,调用获取结果接口以获取审核结果时无需填写 | N |
frequency | Integer | 抽帧频率,默认 5s一帧,抽帧频率可在内容审核平台-策略中心配置 | N |
extId | String | 用户侧视频唯一标识 | Y |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
logId | Long | 请求唯一id,用于问题排查 | Y |
msg | String | 详细描述结果 | N |
ret | Int | 响应状态码,可取值:0处理成功,其他为处理失败 | Y |
data | JSONObject | 结果详情 | Y |
+taskId | String | 本次任务的唯一标识,可根据该标识查询审核详情 | Y |
+queueSize | Int | 队列长度,达到并发处理上线后,后续提交任务进入该队列 | Y |
成功响应示例
{
"data":{
"queueSize":0,
"taskId":"16293673898580002"
},
"logId":16293673898580002,
"msg":"success",
"ret":"0"
}
失败响应示例
{
"logId":16293674334040003,
"msg":"duplicate request",
"ret":"282005"
}
拉取视频审核结果
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// 可选参数
HashMap<String, Object> options = new HashMap<String, Object>();
options.put("fullFrames", true);
// taskId: 任务唯一标识
String taskId = "xxxxxx";
// sdk调用接口并输出结果
JSONObject res = client.longVideoCensorPull(taskId, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 任务唯一标识 | Y |
appid | Long | 应用Id,用于确定有没有权限查询这个taskId | N |
fullFrames | boolean | 是否需要返回全部的视频帧的审核结论,默认返回违规和疑似的审核数据,如果需要全量数据,字段设置成true。全量数据会增加数据传输时间,降低接口响应速度,建议若无特殊需要,可填写false | N |
返回参数详情
字段名 | 类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
logId | Long | Y | 请求唯一标识,用于消息追踪 | |
ret | int | Y | 响应状态码,可取值:0处理成功,其他为处理失败 | |
msg | String | N | 请求接口描述,非空,字符串,详细描述结果。 | |
data | JSONObject | Y | 结论详情,参见审核结论详情数据 | |
+error_code | uint64 | N | 服务调用错误码,失败才返回,成功不返回 | |
+error_msg | String | N | 服务调用提示信息,失败才返回,成功不返回 | |
+conclusion | String | N | 审核结果描述,可取值:合规、不合规、疑似 | |
+conclusionType | Int | N | 审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
+frames | JsonArray | N | 帧审核明细,定义只返回违规、疑似的帧;审核失败、合规的不返回 | |
++frameTimeStamp | Long | N | 帧时间戳 | |
++conclusion | Long | N | 帧审核结果描述,可取值:合规、不合规、疑似 | |
++conclusionType | Int | N | 帧审核结果,可取值:1 合规,2 不合规,3 疑似, 4 审核失败 | |
++frameUrl | String | N | 帧url地址 | |
++frameThumbnailUrl | String | N | 帧缩略图url地址 | |
++data | JsonArray | N | 各维度明细审核结果 | |
+++error_code | uint64 | N | 内层错误提示码,底层服务失败才返回,成功不返回 | |
+++error_msg | string | N | 内层错误提示信息,底层服务失败才返回,成功不返回 | |
+++type | uint64 | N | 结果具体命中的模型:0:百度官方违禁图库、1:色情识别、2:暴恐识别、3:恶心图识别、4:广告检测、5:政治敏感识别、6:图像质量检测、7:用户图像黑名单、8:用户图像白名单、11:百度官方违禁词库、12:图文审核、13:自定义文本黑名单、14:自定义文本白名单、15:EasyDL自定义模型、16:旗帜标志识别、21:违禁识别、24:直播场景审核 | |
+++subType | uint64 | N | 审核子类型,此字段需参照type主类型字段决定其含义: 当type=0时subType取值含义 : 0:百度官方违禁图 当type=1时subType取值含义: 0:一般色情、1:卡通色情、2:SM、3:低俗、4:儿童裸露、5:艺术品色情、6:性玩具、7:男性性感、8:自然男性裸露、9:女性性感、10:卡通女性性感、11:特殊类、12:亲密行为、13:卡通亲密行为、14:孕肚裸露、15:臀部特写、16:脚部特写、17:裆部特写 当type=2时subType取值含义: 0:警察部队、1:血腥、2:尸体、3:爆炸火灾、4:杀人、5:暴乱、6:暴恐人物、7:军事武器、8:暴恐旗帜、9:血腥动物或动物尸体、10:车祸、11:枪械、12:弹药、13:刀具、14:武装人员、15、特殊服饰 当type=3时subType取值含义: 0:恶心图、1:性器官特写、2:脏器、3:疾病表症、4:密集恐惧症、5:腐烂食物、6:排泄物、7:恶心动物、8:人体血腥和尸体、9:动物血腥及尸体 当type=4时subType取值含义:0:水印、1:二维码、2:条形码、3:识别二维码中内容、4:识别条形码中内容、5:不过滤字幕、6:小程序码 当type=5时subType取值含义:0:政治敏感、1:公众人物、2:自定义敏感人脸黑库、3:自定义敏感人脸白库、4:领导人、5:涉政正面人物、6:涉政负面人物、7:其他涉政人物、8:劣迹艺人、9:其他公众人物 当type=6时subType取值含义: 0:图像清晰度、1:图像美观度 当type=7时subType取值含义: 0:用户自定义图像黑名单 当type=8时subType取值含义: 0:用户自定义图像白名单 当type=11时subType取值含义: 0:百度官方默认违禁词库 当type=12时subType取值含义: 0:低质灌水、1:暴恐违禁、2:文本色情、3:政治敏感、4恶意推广、5:低俗辱骂、6:恶意推广-联系方式、7:恶意推广-软文推广、8:广告法审核 当type=13时subType取值含义: 0:自定义文本黑名单 当type=14时subType取值含义: 0:自定义文本白名单 当type=16时subType取值含义: 0:中国国旗及类似图形、1:中国地图及类似图形、2:党旗、军旗、党徽及类似图形、3:警徽及类似图形、4:各类臂章、5:反动组织旗帜、徽章、标志、6:政治敏感事件、7:领导人影射、8:宗教雕塑 当type=21时subType取值含义: 1:真人吸烟、2:卡通吸烟、3:毒品、4:真人饮酒、5:卡通饮酒、6:赌博、7:纹身、8:钱币、9:竖中指 当type=24时subType取值含义: 0:卫生间场景、1:车内场景、2:卧室场景、3:无意义场景、4:普通场景 |
|
+++msg | String | N | 不合规项描述信息 | |
+++probability | Float | N | 不合规项置信度 | |
+++datasetName | Float | N | 违规项目所属数据集名称 | |
+++stars | Array | N | 敏感人物列表数组,只有敏感人物审核不通过才有 | |
++++name | String | N | 敏感人物名称 | |
++++probability | Float | N | 人脸相似度 | |
++++datasetName | Float | N | 所属数据集名称 | |
+++codes | Array | N | 二维码或者条形码识别结果 | |
+++hits | Array | N | 命中信息 | |
++++words | Array | N | 命中关键词 | |
++++modelName | String | N | 命中自定义模型名称 | |
++++score | Float | N | 命中自定义模型置信度 | |
++++modelId | Array | N | 命中自定义模型ID | |
++++label | String | N | 命中自定义模型标签名称 | |
+conclusionTypeGroupInfos | JSON | N | 审核结论汇总,合规没有该字段返回 | |
++msg | String | N | 一级违规类型描述信息 | |
++subTypeInfoList | List | N | 二级违规列表。timestamp:帧时间戳;subType:二级违规类型描述 | |
++typeInfo | json | N | type:一级违规类型描述 |
成功响应示例
{
"data":{
"conclusion":"不合规",
"frames":[
{
"conclusion":"不合规",
"frameTimeStamp":480,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/480.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fad06a942baa1c4e63907a0953b303ecf607b3da4c5944cb21f0dd66908d49c95",
"data":[
{
"msg":"存在watermark不合规",
"conclusion":"不合规",
"probability":0.9168264,
"subType":0,
"conclusionType":2,
"type":4
}
],
"conclusionType":2,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/480.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fad06a942baa1c4e63907a0953b303ecf607b3da4c5944cb21f0dd66908d49c95"
},
{
"conclusion":"疑似",
"frameTimeStamp":120,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/120.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc9b9528d1c6f2db8010f17c29ae1a0d2221af32e6a90ef6f1e8b5d07a909197",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.88397026,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/120.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc9b9528d1c6f2db8010f17c29ae1a0d2221af32e6a90ef6f1e8b5d07a909197"
},
{
"conclusion":"疑似",
"frameTimeStamp":150,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/150.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F3baee8925f5f24059468fb6f8ee987d402408e4437ae0975a20f8b19f5857956",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.85340554,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/150.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F3baee8925f5f24059468fb6f8ee987d402408e4437ae0975a20f8b19f5857956"
},
{
"conclusion":"疑似",
"frameTimeStamp":180,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/180.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F0331c417d8b721d4ee88b53f436295c891b531aaf801098d5ebde2205ce4bc3f",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.85520506,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/180.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F0331c417d8b721d4ee88b53f436295c891b531aaf801098d5ebde2205ce4bc3f"
},
{
"conclusion":"疑似",
"frameTimeStamp":210,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/210.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F15c32196ee914a6996f2b329f71422c1823922cea6d95701f90095f99a2834fd",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.89889395,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/210.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F15c32196ee914a6996f2b329f71422c1823922cea6d95701f90095f99a2834fd"
},
{
"conclusion":"疑似",
"frameTimeStamp":240,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/240.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc708de7912d927dde56b365d3aecbe362ad47ca962bf77fa9a01a3e92e5ad8b",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.8332106,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/240.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Fcc708de7912d927dde56b365d3aecbe362ad47ca962bf77fa9a01a3e92e5ad8b"
},
{
"conclusion":"疑似",
"frameTimeStamp":360,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/360.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Ffd9c7788c1da708c5dde025cb7db27547b855685e148295c3423776fc8c9a4aa",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.81543106,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/360.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2Ffd9c7788c1da708c5dde025cb7db27547b855685e148295c3423776fc8c9a4aa"
},
{
"conclusion":"疑似",
"frameTimeStamp":300,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/300.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F4b09619af986557f7a612470b04b4df659072117fbce995c38c87466483c9b71",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.86002344,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/300.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F4b09619af986557f7a612470b04b4df659072117fbce995c38c87466483c9b71"
},
{
"conclusion":"疑似",
"frameTimeStamp":330,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/330.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F274e0e8d04c1ea62ef68e1f44593b71330f7783a9c769214f1aef16be4d7548f",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.8592974,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/330.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A25Z%2F2592000%2F%2F274e0e8d04c1ea62ef68e1f44593b71330f7783a9c769214f1aef16be4d7548f"
},
{
"conclusion":"疑似",
"frameTimeStamp":510,
"frameUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/510.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fc703deef16674dd2404217ccea19bc2df9a22833e8244d15e545d35ea285a651",
"data":[
{
"msg":"疑似存在watermark不合规",
"conclusion":"疑似",
"probability":0.87063086,
"subType":0,
"conclusionType":3,
"type":4
}
],
"conclusionType":3,
"frameThumbnailUrl":"http://bj.bcebos.com/aip-web/81219/2021-08-12/162877275333721741/510.jpg?authorization=bce-auth-v1%2F5c28b2780c0d4df8a99aec39a07fdb79%2F2021-08-12T15%3A39%3A35Z%2F2592000%2F%2Fc703deef16674dd2404217ccea19bc2df9a22833e8244d15e545d35ea285a651"
}
],
"conclusionTypeGroupInfos":[
{
"msg":"疑似存在watermark不合规",
"typeInfo":{
"type":"广告检测"
},
"subTypeInfoList":[
{
"subType":"watermark",
"timestamp":480
},
{
"subType":"watermark",
"timestamp":120
},
{
"subType":"watermark",
"timestamp":150
},
{
"subType":"watermark",
"timestamp":180
},
{
"subType":"watermark",
"timestamp":210
},
{
"subType":"watermark",
"timestamp":240
},
{
"subType":"watermark",
"timestamp":360
},
{
"subType":"watermark",
"timestamp":300
},
{
"subType":"watermark",
"timestamp":330
},
{
"subType":"watermark",
"timestamp":510
}
]
}
],
"conclusionType":2
},
"logId":16293678179780004,
"msg":"success",
"ret":"0"
}
失败响应示例
{
"logId":16293679811620005,
"msg":"用户下taskId对应审核任务不存在",
"ret":"282006"
}
长音频审核接口
提交任务
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// 可选参数
HashMap<String, Object> options = new HashMap<String, Object>();
options.put("rawText", true);
options.put("audioId", "11223344");
// 音频url
String voiceUrl = "http://testurl";
// 音频文件格式
String fmt = "mp3";
// 音频采样率
Integer rate = 16000;
// sdk调用接口并输出结果
JSONObject res = client.asyncVoiceCensorSubmit(voiceUrl, fmt, rate, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 是否必须 | 描述 |
---|---|---|---|
url | String | Y | 音频地址 |
fmt | String | Y | 音频文件格式[pcm、wav、amr、m4a、mp3] |
rate | Integer | Y | 音频采样率[16000 ] |
audioId | String | N | 音频信息标识,限长128位字符长度 |
account | String | N | 用户信息标识,限长64位字符长度 |
callbackUrl | String | N | 回调地址,用来接收审核结论的地址 |
rawText | Boolean | N | 回调接口是否返回音频识别结果,true:返回,false:不返回, 默认为false |
split | Boolean | N | 回调接口返回结果rawText字段是否拆句,true:拆句,false:不拆句, 默认为false |
返回参数详情
参数名称 | 数据类型 | 描述 |
---|---|---|
logId | Long | 请求唯一id,用于问题排查 |
msg | String | 详细描述结果 |
ret | Integer | 响应状态码,可取值:0表示处理成功 |
data | JSONObject | 结果详情 |
+taskId | String | 本次任务的唯一标识,可根据该标识查询审核详情 |
+audioId | Int | 用户侧音频标识,如果入参中有该字段,才会透传 |
成功响应示例
{
"msg": "success",
"ret": "0",
"data": {
"taskId": "8aa70aa5-f9cf-4aff-973e-98b3a53ef855"
},
"logId": 16469816944643902
}
失败响应示例
{
"log_id": 16469819789325589,
"error_msg": "invalid parameter",
"error_code": 282004
}
获取结果——轮询模式
仅输入taskId,获取结果
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// taskId: 任务唯一标识
String taskId = "xxxxxx";
// sdk调用接口并输出结果
JSONObject res = client.asyncVoiceCensorPullByTaskId(taskId, null);
System.out.println(res.toString(2));
}
仅输入audioId,获取结果
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// audioId: 用户侧音频唯一标识
String audioId = "xxxxxx";
// sdk调用接口并输出结果
JSONObject res = client.asyncVoiceCensorPullByAudioId(audioId, null);
System.out.println(res.toString(2));
}
同时输入taskId和audioId,获取结果
public void sample(AipContentCensor client) {
// taskId: 任务唯一标识
String taskId = "xxxxxx";
// audioId: 用户侧音频唯一标识
String audioId = "yyyyyy";
// sdk调用接口并输出结果
JSONObject res = client.asyncVoiceCensorPull(taskId, audioId, null);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 是否必须 | 描述 |
---|---|---|---|
taskId | String | N | 提交任务接口返回的任务的唯一标识(与audioId二选一) |
audioId | String | N | 用户侧音频唯一标识(与taskId二选一),当taskId与audioId同时传入时,优先查询taskId |
返回参数详情
参数名称 | 数据类型 | 描述 |
---|---|---|
error_code | Integer | 审核服务异常错误码 |
error_msg | string | 审核服务异常错误提示信息 |
log_id | Long | 请求唯一id,用于问题排查 |
conclusion | String | 音频任务审核结果描述:合规、不合规、疑似、审核失败 |
conclusionType | Integer | 音频任务审核结果值:1 合规,2 不合规,3 疑似,4 审核失败 |
sn | String | 音频数据唯一标识,系统内部产生 |
audioId | String | 用户侧音频唯一标识 |
account | String | 用户侧音频备注 |
rawText | StringArray | 音频识别文本结果,字符串数组 |
data | JSONArray | 音频识别文本审核结果,参见data结构 |
data结构
参数名称 | 数据类型 | 描述 |
---|---|---|
text | String | 分段文本结果 |
startTime | Long | 文本对应音频文件的起始时间戳 |
endTime | Long | 文本对应音频文件的终止时间戳 |
conclusion | String | 文本审核结果,可取值:合规、不合规、疑似、审核失败 |
conclusionType | Integer | 文本审核结果类型,可取值1.合规,2.不合规,3.疑似,4.审核失败 |
auditData | JSONArray | 文本审核结果详情,参见auditData结构 |
auditData结构
参数名称 | 数据类型 | 描述 |
---|---|---|
type | Integer | 审核主类型,11:百度官方违禁词库、12:文本反作弊、13:自定义文本黑名单、14:自定义文本白名单 20:存在娇喘内容 |
subType | Integer | 审核子类型,此字段需参照type主类型字段决定其含义: 当type=11时subType取值含义: 0:百度官方默认违禁词库 当type=12时subType取值含义: 0:低质灌水、1:违禁、2:文本色情、3:敏感信息、4:恶意推广、5:低俗辱骂、6:恶意推广-联系方式、7:恶意推广-软文推广、8:广告法审核 当type=13时subType取值含义: 0:自定义文本黑名单 当type=14时subType取值含义: 0:自定义文本白名单 |
msg | String | 不合规项描述信息 |
hits | JSONArray | 命中信息,参见hits结构 |
hits结构
参数名称 | 数据类型 | 描述 |
---|---|---|
probability | Float | 不合规项置信度 |
datasetName | Float | 违规项目所属数据集名称 |
words | StringArray | 命中关键词 |
成功响应示例
{
"audioId": "",
"conclusion": "合规",
"conclusionType": 1,
"data": [
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 9160,
"startTime": 0,
"text": "那就学习那给三角形进行分类下面我们看啊可以按照什么来分类呢首先第一个的分类标准,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 19490,
"startTime": 9160,
"text": "就按照它们的角来分类那按照三角形的角来分类呢我们看这些同学呀他们摆出来各自不同形状的三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 27810,
"startTime": 19490,
"text": "如何给他们按角来分类呢就有的呢我们看那三角形它角有什么样的特征有的角呢,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 32120,
"startTime": 27720,
"text": "它三个有的三角形它那三个角都是锐角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 40490,
"startTime": 32120,
"text": "这是一种类型也就是说三个角都是锐角的三角形还有呢有的三角形呢它有一个钝角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 44600,
"startTime": 40490,
"text": "而其余的那两个角呢都是锐角的,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 52800,
"startTime": 44550,
"text": "那还有一种情况呢就是它那个三角形呢有一个直角的那我们下面把它画出图形来看,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 60960,
"startTime": 52840,
"text": "说有一个直角的有两个钝角这一类的也就是这个三角形里含有一个角度是直角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 68600,
"startTime": 60960,
"text": "那其余的那两个角呢是锐角那另一种类型呢就是三角形里只有一个钝角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 79060,
"startTime": 68600,
"text": "其余的两个呢是锐角我们看啊这个里边一个是直角其余两个钝角一个是其余两个是锐角啊一个是钝角的时候呢其余两个是锐角,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 89170,
"startTime": 79060,
"text": "那还有一种情况呢三个角都是锐角的那这样呢我们就把这个三角形进行了这样以角来进行了三种不同的分类,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 99960,
"startTime": 90140,
"text": "分为有一个直角两个锐角的呢我们称它为直角三角形那有一个钝角两个锐角的呢我们称它为,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 109170,
"startTime": 99960,
"text": "钝角三角形那看见三个角都是什么锐角的时候我们称它为什么锐角三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 119450,
"startTime": 109170,
"text": "那这样我们就是按照三角形它的角来给它进行了分类三种不同的分类包括是直角三角形钝角三角形和,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 121240,
"startTime": 119390,
"text": "锐角三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 129030,
"startTime": 121280,
"text": "那我们看对于给出来这个锐角三角形直角三角形和钝角三角形我们看,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 139230,
"startTime": 129030,
"text": "那把所有三角形作为一个整体来看的话那上面这三种的三角形作为整体的一部分可以用这个图来表示,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 149360,
"startTime": 139310,
"text": "那就是整体的这一个图形里记三角形里边整体都是三角形啊它包含一部分是锐角三角形一部分是直角三角形一部分是,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 151000,
"startTime": 149360,
"text": "对角三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 160030,
"startTime": 152010,
"text": "那我们来看观察下观察一下啊三角形它们这些边有什么样的不同,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 168450,
"startTime": 160050,
"text": "那有什么样的特点呢看这个同学说我发现呢有两条边相等的三角形,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 177290,
"startTime": 168450,
"text": "那另外一个同学说呢他说还有三条边相等的三角形那还有什么样呢我们看以边呢来不同,"
},
{
"auditData": [],
"conclusion": "合规",
"conclusionType": 1,
"endTime": 180740,
"startTime": 177290,
"text": "作为它的分类标准我们刚才是一角,"
}
],
"log_id": 16469822826124169,
"sn": "bb7ea0ef-2431-4c64-b62f-e6c638d50e3e"
}
失败响应示例
{
"error_code": 282006,
"error_msg": "task not exist"
}
直播审核接口
公共参数说明
数据类型
数据类型 | 说明 |
---|---|
日期类型 | 前后端传递的日期都以Long类型表示,存储距离1970年1月1日0时起的毫秒数,由前端在显示时根据时区做相应转换 |
String | 标准的json字符串类型,默认长度255 |
String[] | 标准的json字符串数组类型 |
Int | 标准的json的整型类型,默认范围正负2的32次方 |
Long | 标准的json的整型类型,默认范围正负2的64次方 |
Double | 标准的json的浮点数类型 |
公共请求头
公共请求头(不包含http其他请求头)
头域(Header) | 说明 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Accept | */* |
公共响应头
公共响应头(不包含http其他请求头)
头域(Header) | 说明 |
---|---|
Content-Type | application/json;charset=UTF-8 |
Accept | application/json;charset=UTF-8 |
公共响应体
响应体的公共部分
消息体(Body) | 说明 |
---|---|
logId | 请求唯一标识,非空,唯一,字符串。用于消息追踪 |
ret | 请求结果,非空,唯一,int,参考响应状态码。 |
msg | 请求接口描述,非空,字符串,详细描述结果。 |
订阅事件
code | 说明 |
---|---|
1 | 合规 |
2 | 不合规 |
3 | 疑似 |
4 | 审核失败 |
状态码
状态码 | 说明 | 描述 | 解决办法 |
---|---|---|---|
0 | 处理成功 | 处理成功 | 处理成功 |
282000 | logic internal error | 系统内部错误 | 联系业务支持团队或者提交云工单 |
282003 | missing parameters | 缺少参数 | 核验接口文档,补充缺失的参数 |
282004 | invalid parameter | 参数无效 | 核验接口文档,修改不合法的参数 |
282006 | task not exist | taskId对应的任务不存在 | 检查taskId是否正确,taskId是提交任务后接口返回的数据 |
282905 | stream config exist | 检测任务已经存在 | 提交任务参数中,appId和extId的组合要求唯一,一般更换extId即可 |
282906 | request process fail | 请求处理失败 | 联系业务支持团队或者提交云工单 |
提交任务
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// 可选参数
HashMap<String, Object> options = new HashMap<>();
options.put("detectType", 2);
// 流地址
String streamUrl = "http://testUrl";
// 流地址协议类型
String streamType = "hls";
// 用户侧流唯一标识
String extId = "123456789";
// 直播开始时间戳,当前时间之后,单位ms
Long startTime = System.currentTimeMillis() + 5 * 1000;
// 直播结束时间戳, startTime之后,单位ms
Long endTime = startTime + 2 * 60 * 1000;
// 直播名称
String streamName = "wudao";
// sdk调用接口并输出结果
JSONObject res = client.liveCensorSave(streamUrl, streamType, extId,
startTime, endTime, streamName, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
appid | Long | 应用ID | 否 |
streamUrl | String | 流地址,支持hls、rtmp、rtsp协议 | 是 |
strategyId | Long | 策略ID | 否 |
streamType | String | 流地址协议类型,例如:hls、rtmp、rtsp等 | 是 |
extId | String | 用户侧流唯一标识 | 是 |
startTime | Long | 直播开始时间戳,当前时间之后,单位ms | 是 |
endTime | Long | 直播结束时间戳,startTime之后,单位ms | 是 |
streamName | String | 直播名称 | 是 |
streamDealInfo | Object | 音视频流处理方案,字段说明见下方 | 否,默认是视频抽帧频率5s,音频切分VAD模式,最长时间60s |
subEvents | Object | 音频流、视频流订阅事件,字段说明见下方,默认音频、视频订阅都是违规 | 否 |
noticeUrl | String | 通知地址 ,接口定义见通知接口 | 否 |
region | String | hd/hn/hb | 否(默认音视频流地址地域为hb,其他无效参数也是默认hb) |
detectType | Integer | 审核类型 | 否(0:音、视频都审核,1:视频流,2:音频流; 默认0:音视频) |
treamDealInfo结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
videoFrequency | Integer | 视频流处理抽帧频率,单位s,默认5s抽一帧图 | 否 |
audioCutModel | Integer | 音频流切分方式 ,VAD模式为0,固定时长切分为1,默认VAD切分音频流片段 | 否 |
audioCutLength | Integer | 音频流切分方式为固定时长时,切分音频的最长时长,单位s。该参数最长支持设置为60s,默认值为60s | 否 |
subEvents结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
videoSubEvents | String | 视频流接收通知的订阅事件,参数是订阅事件的code,之间用英文逗号分隔,默认是2。例如 1,2,3,4 | 否 |
audioSubEvents | String | 音频流接收通知的订阅事件,参数是订阅事件的code,之间用英文逗号分隔,默认是2。例如 1,2,3,4 | 否 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
公共响应体 | 无 | 公共响应参数,logId,ret,msg | 是 |
data | Object | 任务提交成功的返回结构体 | 否 |
data结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 音视频流任务的任务Id,全局唯一,用于后续停止流、查询审核结果等操作 | 是 |
成功响应示例
{
"logId":16139832848680002,
"msg":"success",
"ret":"0",
"data":{
"taskId":"163214312312312"
}
}
失败响应示例
{
"logId": 16139873216780003,
"msg": "stream config exist",
"ret": "282905"
}
停止任务
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// 可选参数
HashMap<String, Object> options = new HashMap<>();
// taskId: 提交任务时返回的id
String taskId = "xxxxxx";
// sdk调用接口并输出结果
JSONObject res = client.liveCensorStop(taskId, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
appid | Long | 应用ID | 否 |
taskId | String | 任务Id,提交任务时返回的,需要客户侧自行保存 | 是 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
公共响应体 | 无 | 公共响应参数,logId,ret,msg | 是 |
成功响应示例
{
"logId": 16139962168020001,
"msg": "success",
"ret": "0"
}
失败响应示例
{
"logId": 16469831731471462,
"msg": "task not exist",
"ret": "282006"
}
查看任务
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// 可选参数
HashMap<String, Object> options = new HashMap<>();
// taskId: 提交任务时返回的id
String taskId = "xxxxxx";
// sdk调用接口并输出结果
JSONObject res = client.liveCensorView(taskId, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
appid | Long | 应用ID | 否 |
taskId | String | 任务Id | 是 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
公共响应体 | 无 | 公共响应参数,logId,ret,msg | 是 |
data | Object | 任务提交成功的返回结构体 | 否 |
data结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 音视频流任务的任务Id,全局唯一,用于后续停止流、查询审核结果等操作 | 是 |
appId | Long | 应用ID | 是 |
streamUrl | String | 流地址 | 是 |
strategyId | Long | 策略ID | 是 |
streamType | String | 流地址协议类型,例如:http、rmtp等 | 是 |
extId | String | 用户侧流唯一标识 | 是 |
createTime | Long | 任务创建时间戳,单位ms | 是 |
startTime | Long | 直播开始时间戳,单位ms | 是 |
endTime | Long | 直播结束时间戳,单位ms | 是 |
streamName | String | 直播名称 | 是 |
streamDealInfo | Object | 音视频流处理方案,字段说明见下方 | 否,默认是视频抽帧频率5s,音频切分VAD模式 |
subEvents | Object | 音频流、视频流订阅事件,字段说明见下方,默认音频、视频订阅都是违规 | 否 |
noticeUrl | String | 通知地址 ,接口定义见通知接口 | 是 |
region | String | hd/hn/hb | 否(默认音视频流地址地域为hb,其他无效参数也是默认hb) |
detectType | Integer | 审核类型 | 否(0:音、视频都审核,1:视频流,2:音频流; 默认0:音视频) |
streamDealInfo结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
videoFrequency | Integer | 视频流处理抽帧频率,单位s,默认5s抽一帧图 | 否 |
audioCutModel | Integer | 音频流切分方式 ,VAD模式为0,固定时长切分为1,默认VAD切分音频流片段 | 否 |
audioCutLength | Integer | 音频流切分方式为固定时长时,切分音频的最长时长,单位s。该参数最长支持设置为60s,默认值为60s | 否 |
subEvents结构 | 参数名称 | 数据类型 | 描述 | 是否必须 | | :------------- | :------: | :----------------------------------------------------------- | :------- | | videoSubEvents | String | 视频流接收通知的订阅事件,参数是订阅事件的code,之间用英文逗号分隔,默认是2。例如 1,2,3,4 | 否 | | audioSubEvents | String | 音频流接收通知的订阅事件,参数是订阅事件的code,之间用英文逗号分隔,默认是2。例如 1,2,3,4 | 否 |
成功响应示例
{
"data":{
"appId":1482863739,
"createTime":1638264055000,
"detectType":0,
"endTime":1638264830000,
"extId":"18",
"noticeUrl":"http://notice.com",
"region":"hb",
"startTime":1638257845000,
"strategyId":462,
"streamDealInfo":{
"audioCutLength":60,
"audioCutModel":0,
"videoFrequency":30
},
"streamName":"测试终止流",
"streamType":"rtsp",
"streamUrl":"rtsp://caoqiyun.bcc-bdbl.baidu.com:8554/record/1_e689aaef88f1474fb9361c9ffd1e6dd0.mp4",
"subEvents":{
"audioSubEvents":"2,3",
"videoSubEvents":"2,3"
},
"taskId":"16382640539450029"
},
"logId":16382764268520001,
"msg":"success",
"ret":"0"
}
失败响应示例
{
"logId": 16469832999721472,
"msg": "task not exist",
"ret": "282006"
}
获取结果——轮询模式
public void sample(AipContentCensor client) {
// 设置链接超时时间
client.setConnectionTimeoutInMillis(10000);
client.setSocketTimeoutInMillis(20000);
// 可选参数
HashMap<String, Object> options = new HashMap<String, Object>();
options.put("subEvents", "1,2,3");
options.put("mediaType", 2);
// taskId: 提交任务时返回的id
String taskId = "xxxxxx";
// sdk调用接口并输出结果
JSONObject res = client.liveCensorPull(taskId, options);
System.out.println(res.toString(2));
}
请求参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
appid | Long | 应用ID | 否 |
taskId | String | 任务Id,提交任务时返回的,需要客户侧自行保存 | 是 |
subEvents | String | 查阅的事件,包括违规、合规等,格式是审核结论的类型汇总,之间用英文逗号隔离,例如1,2,3,4。默认是只订阅不合规 2 | 否 |
mediaType | Integer | 流类型,1代表视频流,2代表音频流,默认是1 | 否 |
pageNum | Integer | 页数,默认是1 | 否 |
pageSize | Integer | 每页数量,最大为1000,默认是10 | 否 |
返回参数详情
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
taskId | String | 任务ID | 是 |
total | Integer | 帧图或者音频片段总数量 | 是 |
videoFrameList | List | 视频流帧图信息列表,Object类型的List | 否 |
audioFrameList | List | 音频流音频片段信息列表,Object类型的List | 否 |
videoFrameList结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
frameTimestamp | Integer | 帧图时间戳,单位s | 是 |
frameUrl | String | 帧图地址 | 是 |
frameAuditResult | JSONObject | 帧图审核结论,JSONObject中字段和图片审核的结果字段相同 | 是 |
audioFrameList结构
参数名称 | 数据类型 | 描述 | 是否必须 |
---|---|---|---|
startTime | Integer | 音频片段开始时间,单位s | 是 |
endTime | Integer | 音频片段结束时间,单位s | 是 |
audioUrl | String | 音频片段地址 | 是 |
audioAuditResult | JSONObject | 音频片段审核结论,JSONObject中字段和音频同步审核V3返回的结果字段相同 | 是 |
成功响应示例
视频流审核拉取结论
{
"data":{
"taskId":"16371338463540001",
"total":64,
"videoFrameList":[
{
"frameAuditResult":{
"conclusion":"不合规",
"log_id":16327419922927415,
"data":[
{
"msg":"存在女性性感不合规",
"conclusion":"不合规",
"probability":0.9771008,
"subType":9,
"conclusionType":2,
"type":1
}
],
"isHitMd5":false,
"conclusionType":2
},
"frameTimestamp":1,
"frameUrl":"http://1111.com"
},
{
"frameAuditResult":{
"conclusion":"不合规",
"log_id":16327419922927415,
"data":[
{
"msg":"存在女性性感不合规",
"conclusion":"不合规",
"probability":0.9771008,
"subType":9,
"conclusionType":2,
"type":1
}
],
"isHitMd5":false,
"conclusionType":2
},
"frameTimestamp":1,
"frameUrl":"http://1111.com"
},
{
"frameAuditResult":{
"conclusion":"不合规",
"log_id":16327419922927415,
"data":[
{
"msg":"存在女性性感不合规",
"conclusion":"不合规",
"probability":0.9771008,
"subType":9,
"conclusionType":2,
"type":1
}
],
"isHitMd5":false,
"conclusionType":2
},
"frameTimestamp":1,
"frameUrl":"http://1111.com"
},
{
"frameAuditResult":{
"conclusion":"不合规",
"log_id":16327419922927415,
"data":[
{
"msg":"存在女性性感不合规",
"conclusion":"不合规",
"probability":0.9771008,
"subType":9,
"conclusionType":2,
"type":1
}
],
"isHitMd5":false,
"conclusionType":2
},
"frameTimestamp":1,
"frameUrl":"http://1111.com"
},
{
"frameAuditResult":{
"conclusion":"不合规",
"log_id":16327419922927415,
"data":[
{
"msg":"存在女性性感不合规",
"conclusion":"不合规",
"probability":0.9771008,
"subType":9,
"conclusionType":2,
"type":1
}
],
"isHitMd5":false,
"conclusionType":2
},
"frameTimestamp":1,
"frameUrl":"http://1111.com"
}
]
},
"logId":16371356327780005,
"msg":"success",
"ret":"0"
}
音频流审核拉取结论
{
"data":{
"audioFrameList":[
{
"audioAuditResult":{
"conclusion":"不合规",
"log_id":16347855222910014,
"data":[
{
"conclusion":"不合规",
"auditData":[
{
"hits":[
{
"probability":0.95653117,
"datasetName":"百度默认文本反作弊库",
"words":[
]
}
],
"msg":"存在文本色情不合规",
"subType":2,
"type":12
}
],
"startTime":0,
"conclusionType":2,
"endTime":0,
"text":"上海啊,上海有个奶奶总没呻吟,你啥时间来的,刚进来是吧,我刚才这个听这么早呢?哦,你压根儿就没下线啊你是?"
}
],
"rawText":[
"上海啊,上海有个奶奶总没呻吟,你啥时间来的,刚进来是吧,我刚才这个听这么早呢?哦,你压根儿就没下线啊你是?"
],
"conclusionType":2,
"sn":"16347855222910014"
},
"audioUrl":"http://aqmidaudio.oss-cn-shanghai.aliyuncs.com/50049_a_99255161_2705227128_1761227312_0_0_1761227312_1761227312_1634782567555_c79faa32-8d8f-44f1-b96e-98715c15a5d5_bb8a97db.aac",
"endTime":5,
"startTime":0
}
],
"taskId":"16371338463540001",
"total":1
},
"logId":16379302043000005,
"msg":"success",
"ret":"0"
}
失败响应示例
{
"logId":16371357212350006,
"msg":"invalid parameter,mediaType error",
"ret":"282004"
}