音频审核接口
音频审核接口
提交音频审核
用户提供音频路径,创建一次音频审核。
- 音频路径支持BOS、VOD、URL路径;
- 正在审核中的音频无法再次进行审核;
- 已经审核过的音频(FINISHED/ERROR)可以重新进行审核;
- 音频重新审核会覆盖上次审核结果。
输入限制
- 音频编码标准:MP1,MP2,MP3,AAC,AC-3,WMA,PCM,ADPCM,AMR,RealAudio,Vorbis,DSD等
请求语法
PUT /v<version>/audio HTTP/1.1
host: vcr.bj.baidubce.com
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
content-type: application/json
请求头域
除公共请求头外,无其他特殊头域。
请求体
参数 | 类型 | 描述 | 是否必须 |
---|---|---|---|
source | String | 音频路径 | 是 |
auth | String | 音频路径鉴权参数,仅URL音频使用 | 否 |
description | String | 音频描述,默认空字符串,不超过256字符 | 否 |
preset | String | 审核模板名称,不填写使用默认模版 | 否 |
notification | String | 通知名称 | 否 |
说明:
- 对于 BOS 音频,
source="bos://<bos-bucket>/<bos-object>”
, 例如"bos://testbucket/dir/audio.wav",由客户保证 BOS 路径可访问。 - 对于 VOD 媒资原音频,
source="vod://<vod-media-id>”
,例如"vod://mda-fhepatsnpn4rk9z",VCR 会内部请求VOD获取原音频地址,需要确保媒资在VOD状态为PUBLISHED。 - 对于 VOD 媒资转码后音频,
source="vod://<vod-media-id>-<preset>"
, 例如"vod://mda-fhepatsnpn4rk9z-wav",VCR 会内部请求VOD获取转码后音频地址,需要确保媒资在VOD状态为PUBLISHED,且模板存在。注意这里VOD媒资ID和模板名称的分隔符为"-"。VCR 会自动区分同一个媒资的原音频和转码后音频,几个音频可以同时发起审核,互不影响。 - 对于 URL 音频,
source="<http(s)-url">
,例如”http://video.domain.com/dir/audio.wav”
;URL source中可以包含参数,例如”http://vod.domain.com/dir/audio?id=0308”
,VCR 会主动拉取source对应的原音频进行审核,由客户保证音频可访问。 - 对于包含鉴权参数的 URL 音频,可以将鉴权参数(大多是临时参数,且在指定时间内有效)设置到auth中,
auth="<key1>=<value1>&<key2>=<value2>"
,注意这里(和HTTP协议一致)使用&
分隔多个参数,例如"token=abcxyz×tamp=1514993900"。VCR 会使用?
或&
将source和auth拼接,得到完整的原音频URL后拉取进行审核,由客户保证实际拉取的URL可访问。区分source
和auth
的好处是,客户在查询音频审核结果或处理回调时,仅需传入或解析source
而可忽略鉴权参数auth
。
请求示例
示例一:审核 BOS 音频
PUT /v2/audio HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
{
"source": "bos://testbucket/dir/audio.wav",
"preset": "audio_preset",
"notification": "vcr_callback"
}
示例二:审核 VOD 媒资原音频
PUT /v2/audio HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
{
"source": "vod://mda-fhepatsnpn4rk9z",
"notification": "vcr_callback"
}
示例三:审核 VOD 转码后音频
PUT /v2/audio HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
{
"source": "vod://mda-fhepatsnpn4rk9z-wav"
}
示例四:审核 URL 音频
PUT /v2/audio HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
{
"source": "http://test.domain.com/dir/audio.wav"
}
示例五:审核包含鉴权参数的 URL 音频
PUT /v2/audio HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
{
"source": "http://test.domain.com/dir/audio.wav",
"auth": "token=abcxyz×tamp=1514993900"
}
响应体
无
响应示例
HTTP/1.1 200 OK
查询音频审核结果
根据音频路径查询审核结果。
请求语法
查询音频审核结果:
GET /v<version>/audio?source={source} HTTP/1.1
host: vcr.bj.baidubce.com
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
content-type: application/json
请求参数
参数 | 类型 | 描述 | 参数位置 | 是否必须 |
---|---|---|---|---|
source | String | 音频路径,需要对source进行urlEncode。请参考提交音频审核的说明部分。 | query参数 | 是 |
请求体
无
请求示例
示例一:查询 BOS 音频审核结果
GET /v2/audio?source=bos%3a%2f%2ftestbucket%2fdir%2faudio.wav HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
示例二:查询 VOD 原音频审核结果
GET /v2/audio?source=vod%3a%2f%2fmda-fhepatsnpn4rk9z HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
示例三:查询 VOD 转码后音频审核结果
GET /v2/audio?source=vod%3a%2f%2fmda-fhepatsnpn4rk9z-mp4 HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
示例四:查询 URL 音频审核结果
GET /v2/audio?source=http%3a%2f%2ftest.domain.com%2fdir%2faudio.mp4 HTTP/1.1
host: vcr.bj.baidubce.com
content-type: application/json
authorization: <bce-authorization-string>
x-bce-date: <bce-authorization-utc-date>
如前所述,对于 URL 音频,如果在提交审核时指定了auth
参数,在查询审核结果时是不需要指定的。
响应体
参数 | 类型 | 描述 |
---|---|---|
source | String | 音频路径 |
mediaId | String | VOD媒资id,source为VOD路径时存在 |
description | String | 音频描述 |
preset | String | 审核模板名称 |
status | String | 审核状态 |
percent | Number | 审核进度,0 ~ 100整数;仅status=PROCESSING时存在 |
notification | String | 通知名称 |
createTime | Date | 审核创建时间 |
finishTime | Date | 审核结束时间,仅当status=FINISHED/ERROR时存在 |
label | String | 审核结果标记,仅当status=FINISHED时存在 |
results | Array | 审核结果,仅当status=FINISHED且音频中有疑似涉黄/暴恐/涉政/广告/违禁成分时存在 |
+ type | String | 审核类型 |
+ items | Array | 审核结果项数组 |
++ subType | String | 审核项 |
++ target | String | 审核物料类型,可选值:audio, speech |
++ startTimeInSeconds | Number | 物料在音频中的起始秒数 |
++ endTimeInSeconds | Number | 物料在音频中的结束秒数 |
++ confidence | Double | 该审核结果项的置信度,0~100的浮点数 |
++ label | String | 审核结果项标记 |
++ extra | String | 额外信息,如有;例如政治敏感人物识别出来的人名 |
++ evidence | Object | 审核证据 |
+++ thumbnail | String | 缩略图URL |
+++ location | Object | 证据位置信息 |
++++ leftOffsetInPixel | Number | 左偏移 |
++++ topOffsetInPixel | Number | 上偏移 |
++++ widthInPixel | Number | 宽度 |
++++ heightInPixel | Number | 高度 |
+++ text | String | 文本证据 |
error | Object | 审核失败信息,仅当status=ERROR时存在 |
+ code | String | 错误码 |
+ message | String | 错误信息 |
响应示例
HTTP/1.1 200 OK
{
"source": "vod://mda-fhepatsnpn4rk9z",
"status": "FINISHED",
"createTime": "2017-03-22T12:00:00Z",
"finishTime": "2017-03-22T12:06:48",
"label": "REVIEW",
"results": [{
"type": "sexual_porn",
"items": [{
"subType": "behavior",
"target": "audio",
"startTimeInSeconds": 0,
"confidence": 68,
"label": "REVIEW"
}]
},
{
"type": "political_group",
"items": [
{
"confidence": 99.8,
"endTimeInSeconds": 4226,
"evidence": {
"text": "昆明市工商局的"
},
"extra": "工商局",
"label": "REJECT",
"startTimeInSeconds": 4225,
"subType": "political_group_positive",
"target": "speech"
}]
}]
}
审核结果说明
音频审核状态和进度
审核状态 | 状态名称 | 描述 |
---|---|---|
PROVISIONING | 排队中 | 音频审核排队中 |
PROCESSING | 审核中 | 音频审核进行中 |
FINISHED | 审核完成 | 审核结束,可以查询审核结果 |
ERROR | 审核失败 | 审核失败,可以查询失败错误原因 |
- 每一次提交审核后,VCR会根据其使用的审核模板在内部根据不同审核类型进行多项”子审核”。
- 若任一子审核失败,本次审核就会失败。
- 当每项子审核完成时,VCR 都会更新本次审核的审核进度。
审核结果
每个音频的审核结果格式为:
参数 | 类型 | 描述 |
---|---|---|
label | String | 审核结果标记,可选值:NORMAL/REVIEW/REJECT |
results | Array | 审核结果 |
+ type | String | 审核类型 |
+ items | Array | 审核结果项数组 |
审核标记
审核结果标记label
,简称审核标记
,其可选值包括NORMAL/REVIEW/REJECT
,分别表示正常/疑似违规/确认违规。
审核标记是根据 VCR 审核结果的置信度和用户审核音频时指定的审核模板中疑似置信度阈值和确认置信度阈值生成的。
举个例子,VCR在对音频进行审核时,判断某一段音频为涉黄场景下娇喘的置信度为C
,用户使用的审核模板中配置的疑似置信度阈值和确认置信度阈值分别为T_Review
和T_Reject
:
C < T_Review
,VCR忽视该音频的涉黄-色情审核结果;T_Review <= C < T_Reject
,VCR输出一个label=REVIEW
的审核结果项;T_Reject <= C
,VCR会输出一个label=REJECT
的审核结果项。
音频的审核结果标记由各审核结果项(见下)汇总得到,汇总规则:
- 审核结果数组为空,即没有审核结果项时音频
label = NORMAL
; - 任一审核结果项
label = REJECT
时,音频label = REJECT
; - 其余情况下(所有审核结果项
label = REVIEW
)音频label = REVIEW
审核物料
VCR 会对音频中提取的不同审核物料进行审核。VCR 音频审核物料分为以下两种:
- audio,声音物料,即音频;
- speech,语音物料,即音频通过ASR技术获取的语音识别结果;
审核类型
审核结果中的type
表示”审核类型”。每类审核场景下包含着多种审核类型,不同审核类型支持的审核物料也不一样。随着智能内容审核服务的迭代升级,会不断扩展审核场景和审核类型。
审核类型列表
审核场景 | 审核类型 | 描述 | 支持的审核物料类型 |
---|---|---|---|
涉黄审核 | sexual_porn | 色情审核 | thumbnail,audio,character,speech |
涉黄审核 | sexual_sexy | 性感审核 | thumbnail |
涉黄审核 | sexual_intimacy | 亲密行为审核 | thumbnail |
涉黄审核 | sexual_vulgar | 低俗行为 | thumbnail |
涉黄审核 | sexual_special | 特殊行为 | thumbnail |
暴恐审核 | terrorist_group | 暴恐组织审核 | thumbnail,speech,character |
暴恐审核 | terrorist | 暴恐人物审核 | thumbnail,speech,character |
暴恐审核 | terror_event | 暴力事件审核 | thumbnail,speech,character |
涉政审核 | politician | 涉政人物审核 | thumbnail,character,speech |
涉政审核 | political_event | 涉政事件审核 | character,speech |
涉政审核 | political_group | 涉政组织审核 | thumbnail,character,speech |
广告审核 | ad_brand | 品牌广告审核 | thumbnail,character,speech |
广告审核 | ad_marketing | 欺诈及营销广告审核 | thumbnail,character,speech |
广告审核 | ad_brand_negative | 品牌负面评论审核 | character,speech |
违禁审核 | illegal_gamble | 赌博审核 | character,speech |
违禁审核 | illegal_forgery | 假冒伪劣及造假盗窃审核 | character,speech |
违禁审核 | illegal_trade | 非法交易审核 | character,speech |
违禁审核 | illegal_privacy | 非法获取私人信息审核 | character,speech |
审核结果项
在审核结果中,每个审核类型都对应一个items
,表示该子审核的结果。数组中的元素称为审核结果项
,其具体格式为:
参数 | 类型 | 描述 |
---|---|---|
subType | String | 审核项 |
target | String | 音频审核物料类型,可选值:audio, speech |
startTimeInSeconds | Number | 物料在音频中的起始秒数,和endTimeInSeconds同时存在,audio/speech审核物料有该属性 |
endTimeInSeconds | Number | 物料在音频中的结束秒数,和startTimeInSeconds同时存在 |
confidence | Double | 审核结果项的置信度,0~100的浮点数 |
label | String | 审核结果项标记 |
extra | String | 额外信息,如有;例如涉政人物审核出来的人名 |
evidence | Object | 审核证据 |
审核项
审核结果中的subType
表示”审核项”。每种审核类型下细分了不同审核项。
审核项列表
审核场景 | 审核类型 | 审核项 | 审核项描述 |
---|---|---|---|
涉黄审核 | sexual_porn | behavior,sm,products,children,art | 性行为及露点及招嫖,SM,性用品及性玩具,儿童,艺术品色情 |
暴恐审核 | terrorist_group | terrorist_group | 恐怖组织 |
暴恐审核 | terrorist | terrorist | 暴恐人物 |
暴恐审核 | terror_event | blood,corpse,murder,explosion,riot,weapon,police,traffic | 血腥,尸体,绑架及杀人,爆炸火灾,暴乱,军事武器,警察部队,车祸 |
涉政审核 | politician | politician_positive, politician_negative,bad_artist | 涉政正面人物,涉政负面人物,劣迹艺人 |
涉政审核 | political_event | political_event_positive,political_event_negative | 涉政正面事件,涉政负面事件 |
涉政审核 | political_group | political_group_positive,political_group_negative | 涉政正面组织,涉政负面组织 |
广告审核 | ad_brand | brand | 品牌标识 |
广告审核 | ad_marketing | qrcode,contact,website,commercial | 二维码,联系方式,网址,软文推广 |
广告审核 | ad_brand_negative | brand_negative_comment | 品牌负面评论 |
违禁审核 | illegal_gamble | gamble | 赌博 |
违禁审核 | illegal_forgery | forgery | 假冒伪劣及造假盗窃 |
违禁审核 | illegal_trade | trade | 非法交易 |
违禁审核 | illegal_privacy | privacy | 非法获取私人信息 |
官方文本黑库 | official_text_black_lib | baidu_illegal_textlib | 违禁词库 |
审核证据
根据不同的审核物料类型,审核证据也不相同。审核证据的格式为:
参数 | 类型 | 描述 |
---|---|---|
text | String | 文本证据 |
具体地说:
target=audio
,暂无审核证据target=speech
,审核证据=text
审核错误码列表
音频审核失败时,查询音频审核结果会返回审核失败错误信息。目前VCR支持如下错误码:
错误码 | 错误信息 | 备注 |
---|---|---|
InvalidAudio | fetch audio failure | URL音频拉取失败,请检查原音频 |
InvalidAudio | invalid audio: invalid audio or video | 元信息中音频信息不合预期,请检查原音频 |
InvalidAudio | invalid audio: audio duration/resolution exceeds limit | 音频时长不满足系统限制,请检查原音频 |
InternalError | create extract jobs error, please retry | 系统内部错误,建议重试 |
InternalError | extract speech(asr) error, please retry | 语音识别失败 |
InternalError | create check jobs error, please retry | 系统内部错误,建议重试 |
InternalError | porn check error, please retry | 涉黄审核失败 |
InternalError | politics check error, please retry | 涉政审核失败 |
InternalError | ad check error, please retry | 广告审核失败 |
InternalError | terrorism check error, please retry | 暴恐审核失败 |
InternalError | speech text check error, please retry | 对语音识别结果审核失败,建议重试 |
InternalError | character check error, please retry | 对文字识别结果审核失败,建议重试 |
InternalError | service internal error, please retry | 系统内部错误,建议重试 |
TimeOut | time out, please retry | 审核超时,请先检查原音频,如音频正常则可以重试 |
审核结果示例
审核结果:
{
"label" : "REJECT",
"results" : [{
"type": "sexual_porn",
"items": [{
"subType": "behavior",
"target": "audio",
"confidence": 70,
"startTimeInSeconds": 0,
"label": "REVIEW"
}
},
{
"type": "political_group",
"items": [
{
"confidence": 99.8,
"endTimeInSeconds": 4226,
"evidence": {
"text": "昆明市工商局的"
},
"extra": "工商局",
"label": "REJECT",
"startTimeInSeconds": 4225,
"subType": "political_group_positive",
"target": "speech"
}]
}]
}