一、功能描述
·支持审核腾讯云 COS 上的音频文件。
·支持审核第三方云存储厂商的音频 URL。
·支持对音频文件进行自动检测,从 ASR 语音文本识别、色情呻吟两个维度,通过深度学习技术识别音频中的违规内容。
·支持设置回调地址 Callback 获取检测结果,或通过 查询音频审核任务结果接口 主动轮询获取审核结果详情。
·支持识别多种违规场景,包括:色情、广告等场景。
·支持根据不同的业务场景 配置自定义的审核策略。
二、授权说明
·通过子账号使用时,需要在 授权策略 的 action 中添加 ci:CreateAuditingAudioJob 权限。数据万象支持的所有操作接口请参见 CI action。
·子账号使用异步处理接口时,需要授予 cam:PassRole 权限,异步处理接口会通过 CAM 的“角色”进行 COS 的资源读写操作,PassRole 权限用于传递角色, 具体请查看 访问管理 > 写操作 > PassRole 接口。
三、服务开通
使用该功能需提前 绑定存储桶,开通数据万象服务。
注意:数据万象绑定后,如果你手动对存储桶进行数据万象的解绑操作,将无法继续使用该功能。
四、使用限制
·使用该接口时,请先确认相关限制条件。详情请参见 使用限制。
·不支持审核 COS 上的归档存储类型和深度归档存储类型的音频,如果需要审核此类型音频,请先 恢复归档文件。
·接口默认并发数量:10。
五、费用说明
·每个审核场景单独计费,例如你选择审核涉黄、广告两种场景,则审核1个音频,计2次审核费用。
·调用接口会产生 音频审核费用 和 COS 读请求费用。
·如果音频属于 COS 上的低频存储类型,调用审核会产生 COS 低频数据取回费用。
六、推荐使用 SDK
对象存储 SDK 提供了完整的 Demo、自动集成、计算签名等能力。你可通过 SDK 方便快捷地调用接口。点此查看 SDK 文档。
七、请求示例
POST /audio/auditing HTTP/1.1Host: <BucketName-APPID>.ci.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>Content-Length: <length>Content-Type: application/xml<body>
注意:说明:
注意:Authorization: Auth String,详情请参见 请求签名 文档。
八、请求头
此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。
九、请求体
该请求操作的实现需要有如下请求体:
<Request> <Input> <Object></Object> <Url></Url> <DataId></DataId> </Input> <Conf> <Callback></Callback> <BizType></BizType> </Conf></Request>
具体的数据描述如下:
| 节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
| Request | 无 | 音频审核的具体配置项。 | Container | 是 |
Container 类型 Request 的具体数据描述如下:
| 节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
| Input | Request | 需要审核的内容。 | Container | 是 |
| Conf | Request | 审核规则配置。 | Container | 否 |
Container 类型 Input 的具体数据描述如下:
| 节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
| Object | Request.Input | 存储在 COS 存储桶中的音频文件名称,例如在目录 test 中的文件 audio.mp3,则文件名称为 test/audio.mp3。 | String | 与 Url 必选其一 |
| Url | Request.Input | 音频文件的链接地址,例如 http://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/audio.mp3 | String | 与 Object 必选其一 |
| DataId | Request.Input | 该字段在审核结果中会返回原始内容,长度限制为512字节。你可以使用该字段对待审核的数据进行唯一业务标识。 | String | 否 |
| UserInfo | Request.Input | 用户业务字段。 | Container | 否 |
Container 节点 UserInfo 的内容:
| 节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
| TokenId | Request.Input.UserInfo | 用户业务 TokenId,长度不超过128字节。 | String | 否 |
| Nickname | Request.Input.UserInfo | 用户业务 Nickname,长度不超过128字节。 | String | 否 |
| DeviceId | Request.Input.UserInfo | 用户业务 DeviceId,长度不超过128字节。 | String | 否 |
| AppId | Request.Input.UserInfo | 用户业务 AppId,长度不超过128字节。 | String | 否 |
| Room | Request.Input.UserInfo | 用户业务 Room,长度不超过128字节。 | String | 否 |
| IP | Request.Input.UserInfo | 用户业务 IP,长度不超过128字节。 | String | 否 |
| Type | Request.Input.UserInfo | 用户业务 Type,长度不超过128字节。 | String | 否 |
| ReceiveTokenId | Request.Input.UserInfo | 用户业务 ReceiveTokenId,长度不超过128字节。 | String | 否 |
| Gender | Request.Input.UserInfo | 用户业务 Gender,长度不超过128字节。 | String | 否 |
| Level | Request.Input.UserInfo | 用户业务 Level,长度不超过128字节。 | String | 否 |
| Role | Request.Input.UserInfo | 用户业务 Role,长度不超过128字节。 | String | 否 |
Container 类型 Conf 的具体数据描述如下:
| 节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
| BizType | Request.Conf | 表示审核策略的唯一标识,你可以通过控制台上的审核策略页面,配置你希望审核的场景,如色情、广告等,配置指南: 设置公共审核策略。你可以在控制台上获取到 BizType。BizType 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。BizType 不填写时,将自动使用默认的审核策略。 | String | 否 |
| Callback | Request.Conf | 审核结果以回调形式发送至你的回调地址,支持以 http:// 或者 https:// 开头的地址,例如:http://www.callback.com。 | String | 否 |
| CallbackVersion | Request.Conf | 回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。 | String | 否 |
| CallbackType | Request.Conf | 回调片段类型,有效值:1(回调全部音频片段)、2(回调违规音频片段)。默认为 1。 | Integer | 否 |
| Freeze | Request.Conf | 可通过该字段,设置根据审核结果给出的不同分值,对音频文件进行自动冻结,仅当 input 中审核的音频为 object 。 | Container | 否 |
Container 类型 Freeze 的具体数据描述如下:
| 节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
| PornScore | Request.Conf.Freeze | 取值为[0,100],表示当色情审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
| AdsScore | Request.Conf.Freeze | 取值为[0,100],表示当广告审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
其他审核场景的冻结参数,请 联系服务人员 咨询。
十、响应头
此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。
十一、响应体
该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
<Response> <JobsDetail> <DataId></DataId> <JobId></JobId> <State></State> <CreationTime></CreationTime> </JobsDetail> <RequestId></RequestId></Response>
具体的数据内容如下:
| 节点名称(关键字) | 父节点 | 描述 | 类型 |
| Response | 无 | 音频审核返回的具体响应内容。 | Container |
Container 节点 Response 的内容:
| 节点名称(关键字) | 父节点 | 描述 | 类型 |
| JobsDetail | Response | 音频审核任务的详细信息。 | Container |
| RequestId | Response | 每次请求发送时,服务端将会自动为请求生成一个 ID,遇到问题时,该 ID 能更快地协助定位问题。 | String |
Container 节点 JobsDetail 的内容:
| 节点名称(关键字) | 父节点 | 描述 | 类型 |
| DataId | Response.JobsDetail | 请求中添加的唯一业务标识。 | String |
| JobId | Response.JobsDetail | 本次音频审核任务的 ID。 | String |
| State | Response.JobsDetail | 音频审核任务的状态,值为 Submitted(已提交审核)、Success(审核成功)、Failed(审核失败)、Auditing(审核中)其中一个。 | String |
| CreationTime | Response.JobsDetail | 音频审核任务的创建时间。 | String |
| Object | Response.JobsDetail | 当请求中包含 Object 时返回,同请求中的 Request.Input.Object | String |
| Url | Response.JobsDetail | 当请求中包含 Url 时返回,同请求中的 Request.Input.Url | String |
十二、错误码
该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。
十三、请求
POST /audio/auditing HTTP/1.1Authorization: q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=****************************************Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.comContent-Length: 166Content-Type: application/xml<Request> <Input> <Object>a.mp3</Object> <DataId>123-fdrsg-123</DataId> </Input> <Conf> <BizType>1afcdxxxxxxxxxxxxxxxxxx</BizType> <Callback>http://callback.com/</Callback> </Conf></Request>
十四、响应
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 230Connection: keep-aliveDate: Thu, 15 Jun 2017 12:37:29 GMTServer: tencent-cix-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****<Response> <JobsDetail> <Object>a.mp3</Object> <DataId>123-fdrsg-123</DataId> <JobId>vab1ca9fc8a3ed11ea834c525400863904</JobId> <State>Submitted</State> <CreationTime>2019-07-07T12:12:12+0800</CreationTime> </JobsDetail> <RequestId>xxxxxxxxxxxxxx</RequestId></Response>