接口调用概述
泛娱乐类的直播音频聊天场景的日益增加,充斥着各种不可控的风险因素,例如色情、暴恐和涉政信息等。随着国家监管的日趋严格,各平台需要对平台的音频内容进行管控,需要投入大量人力进行甄别。实时音频内容安全检测可对音视频内容进行有效的判别和筛选,大大降低人力投入。内容安全直播音频检测提供异步检测方式,同时也提供离线分析和人工审核服务。提交音频直播流相关信息后,易盾会对直播流进行语音检测。对客户获取异步检测结果或人工审核结果提供轮询模式和推送模式两种方式支持。
直播音频提交检测接入
内容安全直播音频检测服务提供异步检测接口,该接口适用于提交直播音频内容安全检测请求,接口调用详见直播音频异步检测,通过提交接口提交检测数据后,客户可以通过轮询模式或者推送模式获取机器检测结果。若客户接入纯机器检测,也建议客户接入直播音频结果获取,便于获取直播音频离线分析和数据质检结果,有助于提高检测准确率;若客户接入人工审核,详见下面直播音频人工审核接入流程。
直播音频人工审核接入
内容安全直播音频机器检测任务提交后,若客户需要接入人工审核,请与商务沟通。通过提交接口接入完成后,客户可以通过轮询模式或者推送模式获取人工审核结果。
以下是内容安全直播音频检测服务接口调用示意图:
直播音频检测方式
内容安全直播音频支持普通直播拉流或SDK监听检测两种方式。其中SDK监听检测支持RTC服务商包括云信、声网、即构等。以下是对这两种检测方式的介绍:
拉流
提交直播音频的URL进行语音内容检测。当前直播音频支持流媒体协议:rtp、srtp、rtmp、rtmps、mmsh、mmst、hls、http、tcp、https等。
SDK
以下介绍如何使用易盾API搭配声网、云信、即构等RTC API进行实时音频内容检测
方案架构图
下图展示了从发起内容安全检测请求到处理违规情况的整体方案架构图。
调用时序图
短期房间
长期房间
各SDK接入说明
以下介绍如何使用不同的SDK接入直播音频检测
云信
准备监听uid
建议您预留uid号段提供给内容安全直播音频SDK加入房间,以下为uid说明:
- uid与调用云信getRecordSdkUserChecksum时传入的uid保持一致
- uid不能与房间内任何用户uid重复
- uid建议不超过12位整数
- uid需授权进入直播音频房间
准备监听token
根据不同的检测场景,建议您准备不同的token。结合token,您可根据不同的检测场景生成不同的提交URL。以下为不同检测场景下token说明:token获取方式,请参考云信文档说明
- 针对短期房间,准备允许短期周期内一直有效的一次性token,适用于实际房间最长30天短期房间。token和channelName如果包含特殊符号,需要urlencoding编码之后,再拼接到url中,提交URL:yunxin://uid:token@appkey/channelName
- 针对长期房间,需要根据易盾token获取规范,提供易盾在token失效时获取最新有效token的api。提交URL:yunxin://appid/channelName,channelName如果包含特殊符号,需要urlencoding编码之后再拼接到url中
提交直播音频检测
完成鉴权流程后,您需要根据所需加入的频道名(channelName)、appkey云信申请产品时生成的唯一标识,token以及uid生成URL,并提交检测接口。
声网
准备监听uid
建议您预留uid号段提供给内容安全直播音频SDK加入房间,以下为uid说明:
- uid需要自定义
- uid不能与房间内任何用户uid重复
- uid建议不超过32位无符号整数,范围为1到 (2³² - 1)
- uid需授权进入直播音频房间 声网文档说明
准备监听token
根据不同的检测场景,建议您准备不同的token。结合token,您可根据不同的检测场景生成不同的提交URL。以下为不同检测场景下token说明:
- 针对短期房间,准备允许短期周期内一直有效的一次性token,适用于实际房间最长24小时短期房间。token和channelName如果包含特殊符号,需要urlencoding编码之后,再拼接到url中,提交URL:agora://uid:token@appid/channelName
- 针对长期房间,需要根据易盾token获取规范,提供易盾在token失效时获取最新有效token的api。提交URL:agora://appid/channelName
- 针对公开房间,无需token,提交url中token可不传。提交URL:agora://uid@appid/channelName,channelName如果包含特殊符号,需要urlencoding编码之后再拼接到url中
- 支持小流检测,需要在声网开启双流模式,声网大小流视频属性对应关系,提交格式:需要添加url参数videoStreamType=1,示例:agora://uid:token@appid/channelName?videoStreamType=1
提交直播音频检测
完成鉴权流程后,您需要根据所需加入的频道名(channelName)、token以及uid生成URL,并提交检测接口。
即构
准备监听token
-
鉴权是指验证用户是否拥有访问系统的权限,来避免因权限控制缺失或操作不当引发的安全风险问题,ZEGO 通过 Token(包括基础鉴权 Token 和权限认证 Token) 对用户进行鉴权。token获取方式请参考即构文档说明
-
如果是长期房,适用于实际房间时长大于30天,需要根据易盾token获取规范,在token失效时为易盾提供获取token的接口,获取最新有效token,API接口需提供给易盾配置。
生成URL
-
监听方案 - 1小时内房间,提交url参数:rtc://room.zego.im/<room_id>?identify_token=<...>
-
监听方案 - 1小时以上房间,提交url参数:rtc://room.zego.im/<room_id>
-
监听方案 - 音频混流模式,需要在url末尾拼接 mixed=true,
-
1小时内房间,提交url参数:rtc://room.zego.im/<room_id>?identify_token=<...>&mixed=true
-
1小时以上房间,提交url参数:rtc://room.zego.im/<room_id>?mixed=true
-
-
如果是即构测试环境生成的url,需要在url末尾拼接testenv=true
-
1小时内房间,提交url参数:rtc://room.zego.im/<room_id>?identify_token=<...>&testenv=true
-
1小时以上房间,提交url参数:rtc://room.zego.im/<room_id>&testenv=true
-
注意事项
-
如果token照片中带有特殊符号,需要做urlencoding编码之后,再拼接到url中,特殊符号不能包含"|"
-
使用RTC的SDK录制方案,会在RTC侧产生额外的录制费用,具体费用请咨询相关RTC厂商。在通话结束或者直播结束后,建议您调用停止检测接口退出房间,避免未退出房间造成额外的录制费用
火山引擎
准备监听uid
建议您预留uid号段提供给内容安全直播音视频SDK加入房间,以下为uid说明:
- uid需要自定义
- uid不能与房间内任何用户uid重复
- uid不能包含冒号":"
- uid需授权进入直播音视频房间 火山引擎文档说明
准备监听token
根据不同的检测场景,建议您准备不同的token。结合token,您可根据不同的检测场景生成不同的提交URL。以下为不同检测场景下token说明:
- 针对短期房间,准备允许短期周期内一直有效的一次性token,适用于实际房间最长24小时短期房间。token需要urlencoding编码之后,再拼接到url中,提交URL:rtc://uid:token@volcengine.com/app/channel,uid:token需要单独做urlencoding再拼接
- 针对长期房间,需要根据易盾token获取规范,提供易盾在token失效时获取最新有效token的api。提交URL:rtc://volcengine.com/app/channel
提交直播音频检测
完成鉴权流程后,您需要根据所需加入的频道名(channelName)、token以及uid生成URL,并提交检测接口。
阿里云
准备监听uid
建议您预留uid号段提供给内容安全直播音视频SDK加入房间,以下为uid说明:
1.uid需要自定义
2.uid不能与房间内任何用户uid重复
3.uid不能包含冒号":"
4.uid需授权进入直播音视频房间 阿里云文档说明
准备监听token
1.应用客户端在加入 RTC 房间,都需要传入 token、timestamp(时间戳 单位秒)、nonce 参数完成鉴权,适用于实际房间最长时长24h(timestamp < 24h)内的短期房间token获取方式请参考阿里云说明文档
2.如果是长期房,适用于实际房间时长大于30天,需要根据易盾token获取规范,在token失效时为易盾提供获取token的接口,获取最新有效token,API接口需提供给易盾配置。
生成URL
根据不同的检测场景,建议您准备不同的token。结合token,您可根据不同的检测场景生成不同的提交URL。以下为不同检测场景下token说明:
1.针对短期房间,准备允许短期周期内一直有效的一次性token,适用于实际房间最长24小时短期房间。提交URL:rtc://uid:token@aliyun.im/app/cid×tamp=..
2.针对长期房间,需要根据易盾token获取规范,提供易盾在token失效时获取最新有效token的api。提交URL:rtc://aliyun.im/app/cid
注意事项
如果token照片中带有特殊符号,需要做urlencoding编码之后,再拼接到url中,特殊符号不能包含"|"
使用RTC的SDK录制方案,会在RTC侧产生额外的录制费用,具体费用请咨询相关RTC厂商。在通话结束或者直播结束后,建议您调用停止检测接口退出房间,避免未退出房间造成额外的录制费用
建议房间开播后,再提交任务进行检测,阿里云SDK在房间不存在或者主播下播时,监听机器人可能会创建房间进行无效监听
提交直播音频检测
完成鉴权流程后,您需要根据所需加入房间的cid及加入房间的token及时间戳按规范拼装提交地址
腾讯云
准备监听uid
建议您预留uid号段提供给内容安全直播音视频SDK加入房间,以下为uid说明:
-
uid需要自定义
-
uid不能与房间内任何用户uid重复
-
uid不能包含冒号":"
-
uid需授权进入直播音视频房间 腾讯云文档说明
准备监听token
-
token 对应腾讯TRTC UserSig
-
应用客户端在加入 RTC 房间,都需要传入 token (UserSig)参数完成鉴权,适用于实际房间最长时长24h内的短期房间token(UserSig)获取方式请参考腾讯云说明文档
-
如果是长期房,适用于实际房间时长大于30天,需要根据易盾token获取规范,在token失效时为易盾提供获取token的接口,获取最新有效token,API接口需提供给易盾配置。
生成URL
根据不同的检测场景,建议您准备不同的token。结合token,您可根据不同的检测场景生成不同的提交URL。(建议)以下为不同检测场景下token说明:
-
针对短期房间,准备允许短期周期内一直有效的一次性token,适用于实际房间最长24小时短期房间。提交URL:rtc://uid:token@tencent.im/app/cid
-
针对长期房间,需要根据易盾token获取规范,提供易盾在token失效时获取最新有效token的api。提交URL:rtc://tencent.im/app/cid
a. token: 对应腾讯 SDK UserSig b. uid: 用户 id (int 类型) c. app: AppId d. cid: 房间 id
注意事项
-
如果token照片中带有特殊符号,需要做urlencoding编码之后,再拼接到url中,特殊符号不能包含"|"
-
使用RTC的SDK录制方案,会在RTC侧产生额外的录制费用,具体费用请咨询相关RTC厂商。在通话结束或者直播结束后,建议您调用停止检测接口退出房间,避免未退出房间造成额外的录制费用
-
建议房间开播后,再提交任务进行检测,腾讯云SDK在房间不存在或者主播下播时,监听机器人可能会创建房间进行无效监听
请求token接口
适用于实际房间最长时长大于30天的长期房间,提供获取最新有效token的api,供易盾反垃圾token失效时重新加入房间,api设计需参考易盾规范 获取腾讯云 token API 设计规范
接口描述
该接口用于易盾获取房间最新的token、uid等相关信息
接入说明
接入回调方式很简单,只需要联系您的商务在您的业务上配置一个接入地址(即一个http(s)协议接口的URL)。需要您的接口支持http协议,支持POST方法,传输数据编码采用utf-8。为了保证顺利检测直播,客户需保证接口性能稳定。
请求参数
参数名称类型是否必填描述secretIdStringY产品秘钥id,由易盾反垃圾云服务分配,产品标识signatureStringY请求签名,用来验证此次请求的合法性,具体算法见 接口鉴权url StringY直播提交检测时的原始urlsecretIdStringYsignature参数用来给数据接收接口做签名鉴权用
响应结果
响应字段如下,响应通用字段已省略,详细见 响应通用字段 :
数据结构
参数名称 | 类型 | 必填 | 描述 |
---|---|---|---|
token | String | 是 | 直播token |
uid | String | 是 | 直播uid |
请求示例:
{
"secretId": "your_secret_id",
"signature": "signature",
"url": "******"
}
响应示例:
{
"code": 200,
"msg": "ok",
"result": {
"token": "your_token",
"uid": "your_uid"
}
}