音频检测

缔零科技-音频检测接口文档

适用于音频内容审核,支持同步与异步检测及结果查询。

一、接口说明

调⽤URL、校验Bearer Token、传参appId与data选填示例请跟商务确认,调用连接的idleconntimeout请设置低于100s。

二、同步接口

接口名:/audit/audio

2.1 请求参数

参数名称类型是否必须示例描述规范
custID
string
test
客户ID由缔零内部平台注册提供
appIDstring和缔零确认业务ID,用于区分不同的业务类型和缔零确认
appType
string

AUDIO_GEN
内容类型,用于精细化场景策略选择。选项如下:
- AUDIO_GEN:General Audio 通用音频类型
- 入参内容中为音频或者音频列表
dataIDstring数据ID【重要】,用于回调结果、重试、去重和定位日志等,需保证指定条件下唯一,最好能全局唯一。 注:dataID由请求方生成,可复用业务方的内容ID,以省去额外的存储和映射**,建议使用例如uuid+毫秒时间戳保证ID唯一**
modTypestringDEFAULT模型类型,由默认的模型集合,以及自定义等几种类型,如:
- DEFAULT:默认的常用国内安全分类模型组合
- PRODUCT:默认的电商产品分类模型组合
- CUSTOM:自定义分类模型集
和缔零沟通确认
custModSetList<string>自定义选择模型列表,可多选。仅在modType="CUSTOM"时有效
- "POLITICS"
- "PORN"
- "AD"
和缔零沟通确认
callbackstring回调接口针对异步接口,需要提供缔零主动通知结果的接口实现
versionstring1.1返回结果协议版本,不传默认1.0,具体结构见2.2
posterposter发布者相关的信息,结构见:poster结构
datadata数据信息,核心检测内容,结构见:data结构

poster结构

参数名称类型是否必须示例描述
userIDstring发帖用户id
userNamestring发帖用户昵称
userDescstring发帖用户签名
ipstring发帖用户ip
deviceIDstring发帖用户设备id
extraInfodict其他沟通后传输信息

data结构

参数名称类型是否必须示例描述
auditInfoListlist<audit_info>检测的核心内容,结构见:audit_info结构
rootPostInfo
dict
评论对应主贴内容,只有检测内容是评论的时候存在
具体如下
- rootPostTxtInfoaudit_info主贴的核心内容,如评论对应的主贴
- rootPostPosterposter主贴的发布用户,如评论对应的主贴的作者信息
parentCmtInfodict父评论信息
- parentCmtTextInfoaudit_info发布内容对应的父评论信息
- parentCmtPosterposter发布内容对应的父评论作者信息
quotedCmtInfodict引用内容评论内容,具体如下
- quotedCmtTextInfoaudit_info引用评论内容信息
- quotedCmtPosterposter引用评论的作者信息

audit_info结构(默认结构,字段需要选择性根据appType进行传递)

参数名称类型是否必须示例描述
numint序号,代表位置
titlestring请求文本标题,注:当检测内容为帖子时存在
txtstring请求文本内容
txtListlist<string>["待审文本1", "待审文本2", "待审文本3"]请求文本内容list
imageUrlstring请求图片url,包含url类型图片时可传
imageBase64string请求图片base64,包含base64类型图片时可传
imageList
list<dict>

[
{
"type": "img/png",
"url": "https://img.xxxx.com/aaaa.png"
},{
"type": "img/base64",
"imageBase64": "xxxxxxxxx"
}
]
请求图片list
注意:这里可以支持单图,也支持多图,但是最终是合并结果。可以理解为这是一个帖子的一次检测过程
videoUrlstring请求视频url,包含视频时可传
videoUrlListlist<dict>[
{
"type": "video/mp4",
"url": "https://mp4.xxxx.com/aaaa.mp4"
}
]
audioUrlstring请求音频url,包含音频时候可传
audioUrlListlist<dict>
[
{
"type": "audio/mp3",
"url": "https://mp3.xxxx.com/aaaa.mp3"
}
]
docUrlstring请求文档url,包含文档时候可传(类型支持doc、txt、pdf、md)
docUrlListlist<dict>
[
{
"type": "doc/md",
"url": "https://md.xxxx.com/aaaa.md"
}
]
postTimeint文本发布时间
lastEditTimeint文本修改时间
extraInfodict其他沟通传递信息

2.2 返回结构

2.2.1 v1.0参数说明:

主返回结构表:

参数名称类型是否必须示例描述
verstring1.1接口版本号
statusint200请求状态码
msgstring附加提示信息或错误描述
appIDstringtxt应用或业务标识类型
dataIDstring<数据唯一ID>数据唯一标识 ID
requestIDstringdl_xxxx本次请求唯一 Trace ID
resultsresults审核结果详情,见 results 结构

results 结构表:

参数名称类型是否必须示例描述
riskLevelstringREJECT风险判定等级:REJECT / PASS / REVIEW,分别对应违规、不违规、存疑
descstring违规原因主违规的中文描述
labelslist<dict>[{"涉黄标签1级-涉黄标签2级-涉黄标签3级": 1.0}]命中的违规标签及对应的置信度分数键值对。

2.2.2 v1.0版本接口返回不违规示例

{
    "ver": "1.0",
    "status": 200,
    "msg": "",
    "appID": "txt",
    "dataID": "<数据唯一ID>",
    "requestID": "dl_xxxx",
    "results": {
        "riskLevel": "PASS",
        "desc": "",
        "labels": []
    }
}

2.2.3 v1.0版本接口返回违规示例

{
    "ver": "1.0",
    "status": 200,
    "msg": "",
    "appID": "txt",
    "dataID": "<数据唯一ID>",
    "requestID": "dl_xxxx",
    "results": {
        "riskLevel": "REJECT",
        "desc": "",
        "labels": [
            "涉黄标签1级-涉黄标签2级-涉黄标签3级": 1.0, 
            "涉政标签1级-涉政标签2级-涉政标签3级": 0.5
        ]
    }
}

2.2.4 v1.1参数说明:

主返回结构表:

参数名称类型是否必须示例描述
verstring1.1接口版本号
statusint200请求状态码
msgstring附加提示信息或错误描述
appIDstringtxt应用或业务标识类型
dataIDstring<数据唯一ID>数据唯一标识 ID
requestIDstringdl_xxxx本次请求唯一 Trace ID
resultsresults审核结果详情,见 results 结构

results 结构表:

参数名称类型是否必须示例描述
riskLevelstringREJECT风险判定等级:REJECT / PASS / REVIEW,分别对应违规、不违规、存疑
descstring违规原因主违规的中文描述
L1string涉黄标签1级主违规分类的一级标签
L2string涉黄标签2级主违规分类的二级标签
L3string涉黄标签3级主违规分类的三级标签
extraInfoobject{}预留扩展信息字段
labelDetaillist<labelDetail>所有命中标签的详情列表,见 labelDetail 结构

labelDetail 结构表(list 中每个元素):

参数名称类型是否必须示例描述
L1string涉黄标签1级命中分类的一级标签
L2string涉黄标签2级命中分类的二级标签
L3string涉黄标签3级命中分类的三级标签
descstring违规原因该特定标签的违规原因描述
confidencefloat1该标签命中的置信度,范围 0.0 ~ 1.0

2.2.5 v1.1版本接口返回不违规示例

{
    "ver": "1.1",
    "status": 200,
    "msg": "",
    "appID": "txt",
    "dataID": "<数据唯一ID>",
    "requestID": "dl_xxxx",
    "results": {
        "riskLevel": "PASS",
        "desc": "",
        "L1": "",
        "L2": "",
        "L3": "",
        "extraInfo": {},
        "labelDetail": []
    }
}

2.2.6 v1.1版本接口返回违规示例

{
    "ver": "1.1",
    "status": 200,
    "msg": "",
    "appID": "txt",
    "dataID": "<数据唯一ID>",
    "requestID": "dl_xxxx",
    "results": {
        "riskLevel": "REJECT",
        "desc": "违规原因",
        "L1": "涉黄标签1级",
        "L2": "涉黄标签2级",
        "L3": "涉黄标签3级",
        "extraInfo": {},
        "labelDetail": [
            {
                "L1": "涉黄标签1级",
                "L2": "涉黄标签2级",
                "L3": "涉黄标签3级",
                "desc": "违规原因",
                "confidence": 1.0
            },{
                "L1": "涉政标签1级",
                "L2": "涉政标签2级",
                "L3": "涉政标签3级",
                "desc": "违规原因",
                "confidence": 0.5
            }
        ]
    }
}

2.3 示例(curl)

请求示例

curl --location 'https://<URL跟商务确认>/audit/audio' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxxx' \
--**data** '{
    "custID": "test",           
    "appID": "audio",               
    "appType": "AUDIO_GEN",        
    "dataID": "<数据唯一ID>",
    "data": {
        "auditInfoList": [{
            "audioUrl":"https://mp3.xxxx.com/aaaa.mp3",
            "audioUrlList": [{
                "type": "audio/mp3",
                "url": "https://mp3.xxxx.com/aaaa.mp3"
            }]
        }]
    },
    "version": "1.1",
    "modType": "DEFAULT"
}'

三、异步接口

3.1 提交检测任务

请求参数

  • 同2.1中请求参数,此时需传入callback字段,或者通过商务私下提供callbackURL给到缔零方
  • 接口需要提供给缔零鉴权token(建议通过缔零商务私下提供)
  • 接收审核回调结果接口类型为POST,通过调用接口时传入callback参数调用,缔零调用成功后,可返回状态码{"status": 200}。

响应结果(实时返回确认消息)

参数名称类型是否必须示例描述
verstring1.1返回结果协议版本,与传入保持一致
statusint200响应码,默认200,具体错误码见:四
msgstringOK响应结果描述,默认:OK,其他同status见:四
dataIDstring<数据唯一ID>业务请求唯一ID,与传入保持一致
requestIDstringdl_xxxx缔零内部处理id,唯一确定一次请求
appIDstringaudio业务ID,用于区分不同的业务类型
resultsdict{ "requestID": "dl_xxxx"
}
调用结果字段,目前只存放requestID

示例(curl)

请求示例

curl --location 'https://<URL跟商务确认>/audit/audio' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxxx' \
--**data** '{
    "custID": "test",           
    "appID": "audio",               
    "appType": "AUDIO_GEN",        
    "dataID": "<数据唯一ID>",
    "callback":"http://",
    "data": {
        "auditInfoList": [
            {
                "audioUrl":"https://mp3.xxxx.com/aaaa.mp3",
                "audioUrlList": [{
                    "type": "audio/mp3",
                    "url": "https://mp3.xxxx.com/aaaa.mp3"
                }]
            }
        ]
    },
    "version": "1.1",
    "modType": "DEFAULT"
}'

返回示例

{
    "ver": "1.1",
    "status": 200,
    "msg": "审核数据创建成功,数据已入库入队列",
    "appID": "audio",
    "dataID": "<数据唯一ID>"
    "requestID": "xxxxx",
    "results": {
        "requestID": "xxxxx"
    }
}

3.2 异步回调(缔零检测任务完成后,调用对方接口回传审核结果)

缔零请求参数同2.2

3.3 主动查询

接口名:/audit/search

请求参数

参数名称类型是否必须示例描述
custID
string
test客户ID
appIDstringaudio业务ID,用于区分不同的业务类型
dataIDstring数据ID【重要】,用于回调结果、重试、去重和定位日志等,需保证指定条件下唯一,最好能全局唯一。 注:dataID由请求方生成,可复用业务方的内容ID,以省去额外的存储和映射
requestIDstring缔零内部处理id,提交任务时返回的requestID

示例(curl)

请求示例

curl --location 'https://<URL跟商务确认>/audit/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer xxxxx' \
--data '{
    "custID": "test",
    "appID": "audio",
    "dataID": "<数据唯一ID>",
    "requestID": "提交任务返回的id"
}'

返回结果

{
    "status": 200,
    "msg": "查询数据创建成功",
    "data": [{
        "cust_id": "test",
        "app_id": "audio",
        "app_type": "AUDIO_GEN",
        "data_id": "<dataID>",
        "data": "<送审内容>",
        "updated_at": 1776790686267,
        "trace_id": "<requestID>",
        "callback_result": "<审核结果>"
    }]
}

四、错误码定义

codemsg
429请求被窗口限速或并发限流
500缔零内部服务错误
400调用鉴权失败、Token过期

五、标签定义

可联系商务对接

订阅我们的动态

第一时间获取最新的行业深度报告与前沿技术简报,掌握数字变革的最新情报。