帮你快速理解、总结文档立即下载

音频审核

最近更新时间:2025-06-17 19:18:02
我的收藏

简介

本文档提供关于音频审核的 API 概览和 SDK 示例代码。
注意:
需要 COS PHP SDK v2.4.4 及以上版本。旧版本可能存在 bug,使用时建议升级到 最新版本。
API
操作描述
用于提交一个音频审核任务
用于查询指定的音频审核任务

提交音频审核任务

功能说明

用于提交一个音频审核任务。

方法原型

public Guzzle\\Service\\Resource\\Model detectAudio(array $args = array());

请求示例

示例一:存储桶音频文件审核

<?php

require 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,
'schema' => '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);
}

示例二:音频文件地址审核

<?php

require 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,
'schema' => '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());

请求示例

<?php

require 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,
'schema' => '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
)