简介
本文档提供关于音频审核的 API 概览和 SDK 示例代码。
注意
API | 操作描述 |
用于提交一个音频审核任务 | |
用于查询指定的音频审核任务 |
提交音频审核任务
功能说明
用于提交一个音频审核任务。
方法原型
public Guzzle\\Service\\Resource\\Model detectAudio(array $args = array());
请求示例
示例一:存储桶音频文件审核
<?phprequire dirname(__FILE__) . '/../vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'scheme' => 'https', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {$result = $cosClient->detectAudio(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Input' => array('Object' => 'sound01.mp3',// 'DataId' => '', // 可选 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。// 'UserInfo' => array(// 'TokenId' => '',// 'Nickname' => '',// 'DeviceId' => '',// 'AppId' => '',// 'Room' => '',// 'IP' => '',// 'Type' => '',// 'ReceiveTokenId' => '',// 'Gender' => '',// 'Level' => '',// 'Role' => '',// ),),// 'Conf' => array(// 'BizType' => '', // 可选 定制化策略// 'Callback' => '', // 可选 回调URL// 'CallbackVersion' => '', // 可选 回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。// 'Freeze' => array(// 'PornScore' => 90,// 'AdsScore' => 90,// 'PoliticsScore' => 90,// 'TerrorismScore' => 90,// ), // 可选 可通过该字段,设置根据审核结果给出的不同分值,对音频文件进行自动冻结,仅当`input`中审核的音频为`object`时有效// ), // 可选 走默认策略及默认审核场景。));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
示例二:音频文件地址审核
<?phprequire dirname(__FILE__) . '/../vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'scheme' => 'https', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {$result = $cosClient->detectAudio(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Input' => array('Url' => 'https://example.com/test.mp3',// 'DataId' => '', // 可选 该字段在审核结果中会返回原始内容,长度限制为512字节。您可以使用该字段对待审核的数据进行唯一业务标识。),// 'Conf' => array(// 'BizType' => '', // 可选 定制化策略// 'Callback' => '', // 可选 回调URL// 'CallbackVersion' => '', // 可选 回调内容的结构,有效值:Simple(回调内容包含基本信息)、Detail(回调内容包含详细信息)。默认为 Simple。// ), // 可选 走默认策略及默认审核场景。));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
Request 中的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Input | Request | 需要审核的内容。 | Container | 是 |
Conf | Request | 审核规则配置。 | Container | 否 |
Container 类型 Input 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Object | Request.Input | 存储在 COS 存储桶中的音频文件名称,例如在目录 test 中的文件audio.mp3,则文件名称为 test/audio.mp3。Object 和 Url 只能选择其中一种。 | String | 否 |
Url | Request.Input | 音频文件的链接地址,例如 http://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/audio.mp3。Object 和 Url 只能选择其中一种。 | String | 否 |
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 | 否 |
返回结果示例
GuzzleHttp\\Command\\Result Object([RequestId] => NjEzYTExN2RfNzgwYzdkNjRfMThiOV8zMjY2Zjc=[ContentType] => application/xml[ContentLength] => 324[JobsDetail] => Array([Object] => sound01.mp3[JobId] => sa19232ce6117511ecb6485254009f6100[State] => Submitted[CreationTime] => 2021-09-09T21:51:57+08:00)[Bucket] => examplebucket-1250000000[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/audio/auditing)
查询音频审核任务
功能说明
用于查询音频审核任务执行情况和结果。
方法原型
public Guzzle\\Service\\Resource\\Model getDetectAudioResult(array $args = array());
请求示例
<?phprequire dirname(__FILE__) . '/../vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'scheme' => 'https', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {$result = $cosClient->getDetectAudioResult(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Key' => 'examplejobid', // JobId));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
参数名称 | 类型 | 描述 | 是否必填 |
Bucket | String | 存储桶名称,格式:BucketName-APPID。 | 是 |
Key | String | 需要查询的任务 ID。 | 是 |
返回结果示例
GuzzleHttp\\Command\\Result Object([RequestId] => NjEzYjRjMWRfNzgwYzdkNjRfMThiOV8zNjI5OWI=[ContentType] => application/xml[ContentLength] => 2394[JobsDetail] => Array([JobId] => sa19232ce6117511ecb6485254009f6100[State] => Success[CreationTime] => 2023-05-15T16:43:55+08:00[Object] => audiotest.mp3[Label] => Porn[SubLabel] =>[Result] => 1[ForbidState] => 0[AudioText] => 健康没有信息。这是一个色情命中的词库单词。这是一个色情命中的词库单词。[PornInfo] => Array([HitFlag] => 1[Score] => 91[Label] => 这是一个色情命中的词库单词[SubLabel] =>[Category] =>)[TerrorismInfo] => Array([HitFlag] => 0[Score] => 0[Label] =>[SubLabel] =>[Category] =>)[PoliticsInfo] => Array([HitFlag] => 0[Score] => 0[Label] =>[SubLabel] =>[Category] =>)[AdsInfo] => Array([HitFlag] => 0[Score] => 0[Label] =>[SubLabel] =>[Category] =>)[Section] => Array([0] => Array([Url] => https://audio-auditing-1259788808.cos.ap-guangzhou.myqcloud.com/_cms_segments/cms/vod/w-audio-ZGHwyy6jkwLDVZuq/audio_0_1684140240.mp3?q-sign-algorithm=sha1&q-ak=************************************&q-sign-time=1684207543%3B1684214743&q-key-time=168543%3B168443&q-header-list=host&q-url-param-list=&q-signature=****************************************[Text] => 健康没有信息。这是一个色情命中的词库单词。这是一个色情命中的词库单词。[Label] => Porn[SubLabel] =>[OffsetTime] => 0[Duration] => 15000[Result] => 1[PornInfo] => Array([HitFlag] => 1[Score] => 91[Category] =>[SubLabel] =>[Keywords] => Array([0] => 这是一个色情命中的词库单词)[LibResults] => Array([0] => Array([LibType] => 2[LibName] => franktest[Keywords] => Array([0] => 这是一个色情命中的词库单词))))[TerrorismInfo] => Array([HitFlag] => 0[Score] => 0[Category] =>[SubLabel] =>)[PoliticsInfo] => Array([HitFlag] => 0[Score] => 0[Category] =>[SubLabel] =>)[AdsInfo] => Array([HitFlag] => 0[Score] => 0[Category] =>[SubLabel] =>))))[Key] => sa19232ce6117511ecb6485254009f6100[Bucket] => examplebucket-1250000000[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/audio/auditing/sa19232ce6117511ecb6485254009f6100)