语音审核2.0版升级音频模型能力,能够支持中文、英文和中英文混合的音频内容。结合国际化业务特性,提供审核策略和标签体系。本文介绍语音审核2.0版多语言服务的内容以及使用方法。
功能特性
相比较语音审核1.0版本,语音审核2.0版采用单独的策略和标签体系,满足国际化业务特性。同时提供更多功能特性,简化业务使用并辅助人工审核。
对比项 | 语音审核1.0版本 | 语音审核2.0版 |
多语言能力 | 默认仅支持中文。 | 支持中文、英文和中英文混合。 |
审核能力 |
|
|
标签体系 | 沿用标签体系,仅支持单个风险标签。 | 采用国际化标签体系,增加亵渎、地域等国际化标签,支持多个风险标签和细分标签。 |
接口功能 |
|
|
国际化标签
语音审核2.0版多语言服务采用国际化标签体系。如果内容存在多类风险,能够同时返回多个标签。标签分类包括但不限于如下所示:
标签类型 | 分类 |
一级标签(labels) |
|
细分标签(riskTips) | 细分标签采用 |
服务性能
语音审核2.0版采用高性能的核心引擎,能够高并发调度几十种模型和策略,提供更高时效性的服务保障。
服务性能 | 说明 |
文件大小 | 2.0版支持音频文件的大小限制从200 MB提高到500 MB。 |
文件格式 | 支持音频文件格式:MP3、WAV、AAC、WMA、OGG、M4A、AMR。 支持视频文件格式:AVI、FLV、MP4、MPG、ASF、WMV、MOV、RMVB、RM。 |
请求频率(QPS) | 提交任务请求频率(QPS)从50次/秒提升至100次/秒。 |
并发路数 | 2.0版支持的默认并发路数限制从20路提高至50路。 |
语音审核的QPS是指API每秒响应的请求数;并发路数是指系统中同时检测的语音文件或语音流数量。
计费说明
语音审核2.0版服务支持按量后付费方式。
按量后付费
当您开通语音审核2.0版服务后,默认付费方式是按量后付费,且按照实际用量结算当日费用,不调用服务不收费。
审核类型 | 支持的业务场景(服务) | 计费单价 |
语音审核基础(audio_standard) | 音视频媒体多语言检测:audio_multilingual_global | 9.0美元/千分钟 |
接入指南
步骤一:开通服务
访问开通服务,开通语音审核2.0版服务。
步骤二:为RAM用户授权
在接入SDK或者API之前,您需要为RAM用户授权。您可以为阿里云账号和RAM用户创建一个访问密钥(AccessKey)。在调用阿里云API时您需要使用AccessKey完成身份验证。获取方式,请参见获取AccessKey。
使用阿里云账号(主账号)或具有管理权限的RAM用户登录RAM控制台。
- 创建RAM用户。
具体操作,请参见创建RAM用户。
- 向RAM用户授权系统策略权限:
AliyunYundunGreenWebFullAccess
。具体操作,请参见为RAM用户授权。
完成以上配置后,您可以使用RAM用户调用内容安全API。
步骤三:安装并接入SDK
目前支持的接入地域如下:
地域 | 外网接入地址 | 内网接入地址 |
新加坡 | green-cip.ap-southeast-1.aliyuncs.com | green-cip-vpc.ap-southeast-1.aliyuncs.com |
如果需要其他语言的SDK示例代码,您可以通过OpenAPI开发者门户在线调试工具调试API接口,该工具会自动生成相应API的SDK调用示例代码。
API
使用说明
业务接口:https://green-cip.{region}.aliyuncs.com
。
您可以调用该接口创建语音内容检测任务。关于如何构造HTTP请求,请参见HTTP原生调用;您也可以直接选用已构造好的HTTP请求,更多信息,请参见语音审核2.0版接入指南。
业务接口:
提交审核任务:VoiceModeration
查询审核任务:VoiceModerationResult
计费信息:
该接口为收费接口。仅对HTTP状态码为200的请求进行计量计费,产生其他错误码时不会计费。
提交审核任务
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
Service | String | 是 | audio_multilingual_global | 审核服务类型。取值: audio_multilingual_global |
ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters。 |
表 1. ServiceParameters
名称 | 类型 | 是否必须 | 示例值 | 描述 |
url | String | 是 | http://aliyundoc.com/test.flv | 待检测对象的URL:公网HTTP/HTTPS URL。 |
callback | String | 否 | http://aliyundoc.com | 检测结果回调通知您的URL,支持使用HTTP和HTTPS协议的地址。该字段为空时,您必须定时轮询检测结果。 callback接口必须支持POST方法、UTF-8编码的传输数据,以及表单参数checksum和content。 内容安全按照以下规则和格式设置checksum和content,调用您的callback接口返回检测结果。
说明 您的服务端callback接口收到内容安全推送的结果后,如果返回的HTTP状态码为200,则表示接收成功,其他的HTTP状态码均视为接收失败。接收失败时,内容安全将最多重复推送16次检测结果,直到接收成功。重复推送16次后仍未接收成功,则不再推送,建议您检查callback接口的状态。 |
seed | String | 否 | abc**** | 随机字符串,该值用于回调通知请求中的签名。 由英文字母、数字、下划线(_)组成,不超过64个字符。由您自定义,用于在接收到内容安全的回调通知时校验请求由阿里云内容安全服务发起。 说明 当使用callback时,该字段必须提供。 |
cryptType | String | 否 | SHA256 | 使用回调通知时(callback),设置对回调通知内容进行加密的算法。内容安全会将返回结果(由
|
返回参数
名称 | 类型 | 示例值 | 描述 |
Code | Integer | 200 | 错误码,和HTTP状态码一致。更多信息,请参见错误码。 |
Data | JSONObject | {"taskId": "AAAAA-BBBBB"} | 审核结果数据。 |
Message | String | OK | 请求消息的响应消息。 |
RequestId | String | AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** | 请求ID。 |
示例
请求示例
{
"service":"audio_multilingual_global",
"serviceParameters":"{\"cryptType\":\"SHA256\",\"seed\":\"abc***123\",\"callback\":\"https://aliyun.com/callback\",\"url\":\"http://aliyundoc.com/test.flv"}"
}
正常返回示例
{
"code":200,
"data":{
"taskId":"AAAAA-BBBBB"
},
"message":"SUCCESS",
"requestId":"AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}
查询任务结果
任务审核完成后,查询结果会返回全部语音片段数据。
请求参数
名称 | 类型 | 是否必须 | 示例值 | 描述 |
Service | String | 是 | audio_multilingual_global | 审核服务类型。 |
ServiceParameters | JSONString | 是 | 审核服务需要的参数集。JSON字符串格式,关于每个字符串的描述,请参见ServiceParameters。 |
表 2. ServiceParameters
名称 | 类型 | 是否必须 | 示例值 | 描述 |
taskId | String | 是 | AAAAA-BBBBB | 提交任务返回的ID。 |
返回参数
名称 | 类型 | 示例值 | 描述 |
Code | Integer | 200 | 错误码,和HTTP状态码一致。更多信息,请参见错误码。 |
Data | JSONObject | {"url":xxxx,"results":xxx} | 返回参数JSON格式。 |
Message | String | OK | 请求消息的响应消息。 |
RequestId | String | AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE**** | 请求ID。 |
表 3. Data
名称 | 类型 | 示例值 | 描述 |
url | String | https://aliyundoc.com | 检测对象的URL。 |
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 | pullinTraffic | 标签,多个标签用英文逗号(,)分隔。包括:
|
riskWords | String | AAA,BBB,CCC | 命中风险词,多个词以逗号分隔。 |
riskTips | String | sexuality_Suggestive | 细分标签,多个标签以逗号分隔。 |
extend | String | {\"riskTips\":\"sexuality_Suggestive\",\"riskWords\":\"pxxxxy\"} | 保留字段。 |
示例
请求示例
{
"service":"audio_multilingual_global",
"serviceParameters":"{\"taskId\":\"AAAAA-BBBBB"}"
}
正常返回示例
{
"code":200,
"data":{
"sliceDetails":[
{
"endTime":4065,
"labels":"pullinTraffic",
"startTime":0,
"text":"pxxxxy xxxxxx",
"riskTips":"sexuality_Suggestive",
"riskWords":"pxxxxy",
"url":"https://aliyundoc.com"
}
]
},
"message":"OK",
"requestId":"AAAAAA-BBBB-CCCCC-DDDD-EEEEEEEE****"
}
回调消息格式
回调消息的数据为JSON格式的表单如下所示:
字段名 | 字段类型 | 描述 |
checksum | String | 校验码,字符串格式,由用户 用户UID即阿里云账号ID,可以在阿里云控制台查询。为防篡改,您可以在获取到推送结果时,按上述算法生成字符串,与checksum做一次校验。 说明 用户UID必须是阿里云账号的UID,而不是RAM用户的UID。 |
taskId | String | 回调消息的任务ID。 |
content | String | 序列化后的检测结果,JSON字符串格式,请自行解析反转成JSON对象。关于content结果的格式,与查询任务结果的返回一致。 |
错误码
以下为接口返回code的含义说明,系统仅对code返回为200的请求计量计费,其他code不会计费。
Code | 说明 |
200 | 请求正常。 |
280 | 检测中。 |
400 | 请求参数为空。 |
401 | 请求参数错误。 |
402 | 请求参数长度不符合接口规定,请检查并修改。 |
403 | 请求超过QPS限制,请检查并调整QPS限制。 |
404 | 传入的文件下载遇到错误,请检查或重试。 |
405 | 传入的文件下载超时,可能是因为文件无法访问,请检查调整后重试。 |
406 | 传入的文件超过大小限制,请检测调整后重试。 |
407 | 传入的文件格式暂不支持,请检查调整后重试。 |
408 | 该账号无权限调用该接口,可能是账号未开通或者已欠费,或者调用账号未被授权访问。 |
480 | 检测并发路数超过限制,请检查并调整并发。 |
500 | 系统异常。 |