音频内容同步审核

音频内容审核用于识别音频内容中的不良信息,给出审核结果和处理建议。

1. 功能描述

调用方提交审核语音片段,指定需要检测的类型,服务器同步返回调用结果。
目前支持的检测类型包括:娇喘识别、敏感词识别。

检测类型及对应标签如下:

检测类型说明actionlabel
娇喘识别检测音频文件的声纹特征,识别其中的娇喘等违规特征pornnormal:正常
moan:娇喘
敏感词识别翻译音频文件的文字信息,识别其中的敏感违规内容antispamnormal:正常
terrorism:暴力恐怖
porn:色情低俗
illegal:违法违规
politics:涉政敏感
abuse:谩骂灌水
ad:广告欺诈
feudalism:封建迷信
religion:宗教敏感
affairs:时事舆情
contraband:违禁物品
minors:未成年人
banned-website:非法网址

2. 使用限制

限制类别说明
文件来源1) 以HTTP/HTTPS开头的音频URL地址
2) 音频二进制流Base64编码字符串
文件时长同步检测场景下,娇喘识别单个音频长度10s到60s,敏感词识别单个音频长度不大于15s
文件大小单个音频文件10MB以内,单个请求大小应该小于50MB
文件格式支持aac、amr、mp3、wav音频格式,更多音频格式支持,请联系技术支持
语种支持敏感词识别当前支持中文,更多语种支持,请联系技术支持
并发限制每秒最多可处理20个音频片段[20QPS],如需更高QPS并发,请联系技术支持
区域限制中国大陆,其他国家和地区支持,请联系技术支持
检测时长除去下载时间,15s的音频片段执行娇喘识别耗时约200ms,执行敏感词识别耗时约3000ms,调用方请根据音频长度和检测类型设置请求返回超时

3. 接口说明

3.1 发起请求

事项说明
请求方法POST
请求协议 HTTPS
请求域名ai.aivacom.com
请求路径app/{appid}/v1/audio/sync?traceId=uuid-xxxx-xxxx-xxxx-xxxx
请求参数appid为用户的应用ID
traceId为uuid字符串,用于排查问题时对账,建议每次请求使用不同值
请求头部Content-Type: application/json;charset=UTF-8
token: 鉴权token,生成方式参考身份认证
请求Bodyjson字符串,详细定义如下
名称类型是否必需描述
actions字符串数组检测类型,可选值包括:
- porn: 声音娇喘识别
- antispam: 敏感词识别
data[]JSON数组指定检测对象信息列表,JSON数组中每个元素是一个声音检测对象结构体(见下方请求data表)。
单次请求中最多可处理10个音频片段。

表. 请求data

名称类型是否必需描述
dataId字符串对象唯一标识,如:uuid-xxxx-xxxx-xxxx-xxxx
dataType字符串数据类型
- URL: http/https开头的url地址
- BASE64: 二进制流base64编码串
content字符串待检测音频内容
(如dataType字段填URL,content字段对应填写音频url地址)
extraJSON附加配置,定义见下表
contextJSON用户自定义上下文数据,返回结果时自动带上。

表. extra

名称类型描述
lang字符串antispam 敏感词检测使用的语言,默认为中文,可选值:
- chinese:中文
- bahasa:印尼语

3.2 响应结果

响应内容为json对象,详细定义如下

名称类型是否必需描述
code整型请求错误码,点击详细定义
message字符串错误信息描述
traceId字符串透传请求参数中的traceId内容
requestId字符串系统针对本次检查请求生成的唯一标识
timestamp整型当前unix时间戳,单位秒
data[]JSON数组检测结果数据列表(具体结构见下方返回data表),数组中每一项表示一个图片的处理结果,在出错的情况下该字段可能为空。

表. 返回data

名称类型是否必需描述
code整型数据处理错误码,点击详细定义
message字符串错误描述信息
dataId字符串对应请求中的dataId
taskId字符串针对该检查对象多个检测类型生成的唯一任务标识
contextJSON对应请求中的context
results[]JSON数组返回结果数据。调用成功时(code==200),返回结果中包含一个或多个元素。每个元素表示一种action的处理结果,具体结构见下方result表

表. result

名称类型是否必需描述
code整型检测错误码,点击详细定义
message字符串错误信息描述
action字符串检测类型,和调用请求中的检测类型(actions)对应
label字符串检测结果标签,取值与action有关。具体取值参见上面审核类型及对应标签说明表
rate浮点数检测结果标签的概率,取值范围在[0.00 - 1.00],值越大表示可信度越高
suggestion字符串建议您执行的操作,取值范围:
- pass: 正常,无需操作;
- block: 违规,建议做违规处罚;
- review: 疑似,检测结果不确定,需要进一步人工审核;
duration浮点数声音数据播放时长
text字符串音译文文本内容
extraData[]JSON数组检测结果扩展信息,不同action扩展信息内容不一样,详见下面表porn-extraData和antispam-extraData

表. porn-extraData

名称类型是否必需描述
begin浮点数音频片段开始时间,单位秒
end浮点数音频片段结束时间,单位秒
score浮点数声音娇喘匹配程度,取值[0~100],分数越高匹配程度越高

表. antispam-extraData

名称类型是否必需描述
hintJson数组命中的关键字
label字符串命中的关键字所属类型
rate浮点数无意义,恒为"1.0"

4. 调用示例

以下是一个python的调用示例代码:

# -*- coding: utf-8 -*-
#! python3.5

import requests
import uuid
import base64

host = "https://ai.aivacom.com"

appid = 123456789                       # 您的业务ID
restful_id = '********************'     # 您的证书ID
restful_secret = '********************' # 您的证书秘钥
traceid = str(uuid.uuid4())
dataid = str(uuid.uuid4())

# url
url = host + '/app/%s/v1/audio/sync?traceId=%s' % (appid, traceid)

# headers
headers = {
    "content-type": "application/json"
}

auth = base64.b64encode(("%s:%s" % (restful_id, restful_secret)).encode('utf-8'))
headers['token'] = 'Base ' + auth.decode()

# content
values = {
    'actions': ['porn'],
    'data': [
        {
            'dataType': 'URL',
            'content': 'http://127.0.0.1/some-url.aac',
            'dataId': dataid,
            'context': {'uid': 12345}
        }
    ]
}

# request
res = requests.post(url, json=values, headers=headers)
print('code=%s, data=%s\n' % (res.status_code, res.text))

响应内容

{
  "code": 200,
  "message": "OK",
  "traceId": "36b5eaa2-6e56-41ac-9c1a-08a73d8143b4",
  "requestId": "a72a64a8-2e15-47be-b900-3e64ca731445",
  "timestamp": 1584082795,
  "data": [
    {
      "code": 200,
      "message": "OK",
      "dataId": "3d9c927a-a0f4-4a73-b712-db5aded30677",
      "taskId": "17428f1a-a86a-42c0-9c90-aa579aba436e",
      "context": {
        "uid": 12345
      },
      "results": [
        {
          "action": "porn",
          "code": 200,
          "duration": 10,
          "extraData": [
            {
              "begin": 0,
              "end": 15,
              "score": 76
            }
          ],
          "label": "moan",
          "message": "OK",
          "rate": 0.7599999904632568,
          "suggestion": "review"
        }
      ]
    }
  ]
}

5. 版本说明

版本时间说明
v1.0.02020-03-13初始版本
<