语音审核增强版API

本文介绍了调用语音审核增强版接口审核音频内容的方法,包括音频文件审核和音频流审核。

使用说明

业务接口:https://green-cip.{region}.aliyuncs.com

您可以调用该接口创建语音内容检测任务。关于如何构造HTTP请求,请参见HTTP原生调用;您也可以直接选用已构造好的HTTP请求,更多信息,请参见语音审核增强版SDK及接入指南

  • 业务接口

    • 提交审核任务:VoiceModeration

    • 查询审核任务:VoiceModerationResult

    • 取消审核任务:VoiceModerationCancel

  • 支持的地域及接入地址

    地域

    外网接入地址

    内网接入地址

    华东2(上海)

    green-cip.cn-shanghai.aliyuncs.com

    green-cip-vpc.cn-shanghai.aliyuncs.com

    华北2(北京)

    green-cip.cn-beijing.aliyuncs.com

    green-cip-vpc.cn-beijing.aliyuncs.com

    华东1(杭州)

    green-cip.cn-hangzhou.aliyuncs.com

    green-cip-vpc.cn-hangzhou.aliyuncs.com

    华南1(深圳)

    https://green-cip.cn-shenzhen.aliyuncs.com

    green-cip-vpc.cn-shenzhen.aliyuncs.com

  • 计费信息

    该接口为收费接口。仅对HTTP状态码为200的请求进行计量计费,产生其他错误码时不会计费。关于计费方式,请参见计费说明

  • 服务性能

    服务性能

    说明

    音频文件大小

    增强版支持音频文件的大小限制从200 MB提高到500 MB

    音频文件格式

    支持音频文件格式:MP3、WAV、AAC、WMA、OGG、M4A、AMR。

    支持视频文件格式:AVI、FLV、MP4、MPG、ASF、WMV、MOV、RMVB、RM。

    音频直播流

    支持以下协议:RTMP、HLS、HTTP-FLV、RTSP。

    请求频率(QPS)

    提交任务请求频率(QPS)从50次/秒提升至100次/秒

    并发路数

    增强版支持的默认并发路数限制从20路提高至50路

提交审核任务

请求参数

名称

类型

是否必须

示例值

描述

Service

String

live_stream_detection

审核服务类型。取值:

  • audio_media_detection:音视频媒体检测

  • live_stream_detection:社交娱乐直播检测

ServiceParameters

JSONString

审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters

表 1. ServiceParameters

名称

类型

是否必须

示例值

描述

url

String

是。音频审核增强版支持三种方式传入文件,请您选择其中一种:

  • 使用音频URL方式进行检测,传入url。

  • 使用OSS授权进行检测,必须同时传入ossBucketName、ossObjectName、ossRegionId。

  • 使用本地音频进行检测。上传本地音频文件检测,不占用您的OSS存储空间,且文件只存储30分钟。SDK接入已经集成本地音频上传功能,具体代码示例,请参见语音审核增强版SDK及接入指南

http://aliyundoc.com/test.flv

待检测对象的URL:公网HTTP/HTTPS URL。

ossBucketName

String

bucket_01

已授权OSS空间的Bucket名。

说明

使用OSS视频内网地址时必须先使用阿里云账号(即主账号)访问云资源访问授权页面进行授权。

ossObjectName

String

20240307/07/28/test.flv

已授权OSS空间的文件名。

ossRegionId

String

cn-shanghai

OSS Bucket所在区域。

callback

String

http://aliyundoc.com

检测结果回调通知您的URL,支持使用HTTP和HTTPS协议的地址。该字段为空时,您必须定时轮询检测结果。

callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksumcontent

内容安全按照以下规则和格式设置checksumcontent,调用您的callback接口返回检测结果。

  • checksum:字符串格式,由用户uid + seed + content拼成字符串,通过SHA256算法生成。用户UID即阿里云账号ID,可以在阿里云控制台查询。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。

    说明

    用户UID必须是阿里云账号的UID,而不是RAM用户的UID。

  • content:JSON字符串格式,请自行解析反转成JSON对象。关于content结果的示例,请参见查询检测结果的返回示例。

说明

您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。

seed

String

abc****

随机字符串,该值用于回调通知请求中的签名。

由英文字母、数字、下划线(_)组成,不超过64个字符。由您自定义,用于在接收到内容安全的回调通知时校验请求由阿里云内容安全服务发起。

说明

当使用callback时,该字段必须提供。

cryptType

String

SHA256

使用回调通知时(callback),设置对回调通知内容进行签名的算法。内容安全会将返回结果(由用户uid + seed + content拼接的字符串)按照您设置的加密算法计算签名,再发送到您的回调通知地址。取值:

  • SHA256(默认):使用SHA256加密算法。

  • SM3:使用国密HMAC-SM3加密算法,返回十六进制的字符串,且字符串由小写字母和数字组成。例如,abc经国密SM3加密后返回66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0。

liveId

String

liveId1****

语音直播流的ID。

该参数用于语音直播任务去重,防止重复检测,如果传递该参数,会根据uid+service+liveId判断是否存在检测中的直播任务。如果存在,就直接返回已存在的直播检测taskId,不发起新的任务。

dataId

String

voice20240307***

检测对象对应的数据ID。

由大小写英文字母、数字、下划线(_)、短划线(-)、英文句号(.)组成,不超过64个字符,可以用于唯一标识您的业务数据。

extra

String

{"VolcAppId":"6fabbd****1a7e", "VolcTokenId": "User123456", "VolcToken": "6fabbd****1a7e"}

扩展参数JSON字符串,仅用于指定第三方音视频通信RTC产品的参数。具体信息,请参见语音审核增强版对接第三方音视频通信RTC

返回参数

名称

类型

示例值

描述

Code

Integer

200

状态码。更多信息,请参见Code说明

Data

JSONObject

{"TaskId": "AAAAA-BBBBB","DataId": "voice20240307***"}

审核结果数据。

Message

String

OK

请求消息的响应消息。

RequestId

String

AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****

请求ID。

示例

请求示例

{
    "service": "audio_media_detection",
    "serviceParameters": {
        "cryptType": "SHA256",
        "seed": "abc***123",
        "callback": "https://aliyun.com/callback",
        "url": "http://aliyundoc.com/test.flv"
    }
}

正常返回示例

{
    "Code": 200,
    "Data": {
        "TaskId": "AAAAA-BBBBB",
        "DataId": "voice20240307***"
    },
    "Message": "SUCCESS",
    "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}

查询任务结果

直播类型审核任务过程中,查询结果会返回最近N条语音片段数据。任务审核完成后,查询结果会返回全部语音片段数据。

请求参数

名称

类型

是否必须

示例值

描述

Service

String

live_stream_detection

审核服务类型。

ServiceParameters

JSONString

审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters

表 2. ServiceParameters

名称

类型

是否必须

示例值

描述

taskId

String

AAAAA-BBBBB

提交任务返回的ID。

返回参数

名称

类型

示例值

描述

Code

Integer

200

状态码。更多信息,请参见Code说明

Data

JSONObject

音频内容检测结果。更多信息,请参见Data

Message

String

OK

请求消息的响应消息。

RequestId

String

AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****

请求ID。

表 3. Data

名称

类型

示例值

描述

Url

String

https://aliyundoc.com

检测对象的URL。

LiveId

String

liveId1****

语音直播流的ID(可选)。

DataId

String

voice20240307***

检测对象对应的数据ID(可选)

RiskLevel

String

high

音频的风险等级,根据所有音频切片计算后返回,返回值包括:

  • high:高风险

  • medium:中风险

  • low:低风险

  • none:未检测到风险

说明

高风险内容建议直接处置;中风险内容建议人工复查;低风险内容建议在高召回需求时再做处理,日常建议和未检测到风险做相同处理。

SliceDetails

JSONArray

返回语音片段的详细结果。具体内容,请参见sliceDetails

表 4. sliceDetails

名称

类型

示例值

描述

StartTime

Integer

0

句子开始的时间,单位:秒。

EndTime

Integer

4065

句子结束的时间,单位:秒。

StartTimestamp

Integer

1678854649720

切片开始时间戳,单位:毫秒。

EndTimestamp

Integer

1678854649720

切片结束时间戳,单位:毫秒。

Text

String

恶心的

语音转换成文本内容。

Url

String

https://aliyundoc.com

如果检测的内容是语音流,表示该段文本对应的语音流的临时访问地址。该地址有效时间为30分钟,需要及时转存。

Labels

String

political_content,xxxx

标签,多个用英文逗号分隔。包括:

  • ad:广告引流

  • violence:暴恐内容

  • political_content:涉政内容

  • specified_speaking:特定声音

  • specified_lyrics:特定歌曲

  • sexual_content:色情内容

  • sexual_sounds:呻吟声音

  • contraband:违禁内容

  • profanity:辱骂内容

  • religion:宗教内容

  • cyberbullying:网络暴力

  • negative_content:不良内容

  • nontalk:静音音频

  • C_customized:用户库命中

RiskLevel

String

high

音频切片的风险等级,返回值包括:

  • high:高风险

  • medium:中风险

  • low:低风险

  • none:未检测到风险

RiskWords

String

AAA,BBB,CCC

命中风险词,多个词以逗号分隔。

RiskTips

String

色情_低俗词,色情_描述

细分标签,多个标签以逗号分隔。

Extend

String

{\"riskTips\":\"色情_低俗词\",\"riskWords\":\"色情服务\"}

保留字段。

示例

请求示例

{
    "service": "audio_media_detection",
    "serviceParameters": {
        "taskId": "AAAAA-BBBBB"
    }
}

正常返回示例

{
    "Code": 200,
    "Data": {
        "DataId": "voice20240307***",
        "LiveId": "liveId1****",
        "RiskLevel": "high",
        "SliceDetails": [
            {
                "EndTime": 4065,
                "Labels": "political_content,xxxx",
                "RiskLevel": "high",
                "RiskTips": "违禁_违禁商品",
                "RiskWords": "风险词A",
                "StartTime": 0,
                "Text": "内容安全产品测试用例",
                "Url": "https://aliyundoc.com"
            }
        ]
    },
    "Message": "OK",
    "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}

取消审核任务

仅直播流的审核任务支持取消,文件类型的任务不支持取消。

请求参数

名称

类型

是否必须

示例值

描述

Service

String

live_stream_detection

审核服务类型。

ServiceParameters

JSONString

审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters

表 5. ServiceParameters

名称

类型

是否必须

示例值

描述

taskId

String

AAAAA-BBBBB

提交任务返回的ID。

返回参数

名称

类型

示例值

描述

Code

Integer

200

状态码。更多信息,请参见Code说明

Message

String

OK

请求消息的响应消息。

RequestId

String

AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****

请求ID。

示例

请求示例

{
    "service": "live_stream_detection",
    "serviceParameters": {
        "taskId": "AAAAA-BBBBB"
    }
}

正常返回参数

{
    "Code": 200,
    "Message": "OK",
    "RequestId": "AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}

回调消息格式

回调消息的数据为JSON格式的表单如下所示:

字段名

字段类型

描述

checksum

String

校验码,字符串格式,由用户uid + seed + content拼成字符串,通过SHA256算法生成。

用户UID即阿里云账号ID,可以在阿里云控制台查询。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。

说明

用户UID必须是阿里云账号的UID,而不是RAM用户的UID。

taskId

String

回调消息的任务ID。

content

String

序列化后的检测结果,JSON字符串格式,请自行解析反转成JSON对象。关于content结果的格式,与查询任务结果的返回一致。详细信息,请参见返回参数

Code说明

以下为接口返回code的含义说明,系统仅对code返回为200的请求计量计费,其他code不会计费。

Code

说明

200

请求正常。

280

检测中。

400

请求参数为空。

401

请求参数错误。

402

请求参数长度不符合接口规定,请检查并修改。

403

请求超过QPS限制,请检查并调整QPS限制。

404

传入的文件下载遇到错误,请检查或重试。

405

传入的文件下载超时,可能是因为文件无法访问,请检查调整后重试。

406

传入的文件超过大小限制,请检测调整后重试。

407

传入的文件格式暂不支持,请检查调整后重试。

408

该账号无权限调用该接口,可能是账号未开通或者已欠费,或者调用账号未被授权访问。

480

检测并发路数超过限制,请检查并调整并发。

500

系统异常。