接口调用概述
泛娱乐类的直播音频聊天场景的日益增加,充斥着各种不可控的风险因素,例如色情、暴恐和涉政信息等。随着国家监管的日趋严格,各平台需要对平台的音频内容进行管控,需要投入大量人力进行甄别。实时音频内容安全检测可对音视频内容进行有效的判别和筛选,大大降低人力投入。内容安全直播音频检测提供异步检测方式,同时也提供离线分析和人工审核服务。提交音频直播流相关信息后,易盾会对直播流进行语音检测。对客户获取异步检测结果或人工审核结果提供轮询模式和推送模式两种方式支持。
直播音频提交检测接入
内容安全直播音频检测服务提供异步检测接口,该接口适用于提交直播音频内容安全检测请求,接口调用详见直播音频异步检测,通过提交接口提交检测数据后,客户可以通过轮询模式或者推送模式获取机器检测结果。若客户接入纯机器检测,也建议客户接入直播音频结果获取,便于获取直播音频离线分析和数据质检结果,有助于提高检测准确率;若客户接入人工审核,详见下面直播音频人工审核接入流程。
直播音频人工审核接入
内容安全直播音频机器检测任务提交后,若客户需要接入人工审核,与商务沟通。通过提交接口接入完成后,客户可以通过轮询模式或者推送模式获取人工审核结果。
以下是内容安全直播音频检测服务接口调用示意图:
直播音频检测方式
内容安全直播音频支持普通直播拉流或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,并提交检测接口。
即构
即构RTC支持监听或拉流进行检测。内容安全直播音频服务在监听方案下,会自动获取房间内每一路说话人的信息,推荐使用此种方案
生成URL
- 监听方案-1小时内房间,token需要urlencoding编码之后,再拼接到url中,提交url参数:rtc://room.zego.im/<room_id>?identify_token=<...>
- 监听方案-1小时以上房间,需自行按照易盾token获取规范,以免机器人在token失效时无法加入房间,提交url参数:rtc://room.zego.im/<room_id>
- 如果是即构测试环境生成的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
提交直播音频检测
生成直播URL地址后,您需要提交到检测接口。
火山引擎
准备监听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,并提交检测接口。