泛娱乐音视频聊天场景充斥着色情、暴力、恐怖主义、政治信息等各种不可控的风险因素。随着国家监管日趋严格,各平台需要对平台的音视频内容进行管控,需要大量人力自行处理音视频内容的审核。整合通信云专家网易云信和网易易盾的内容审核能力,为开发者提供实时音视频“SafeCommunication”(内容安全审核)服务,有效区分筛选音视频内容,减少人力投入。本期云信小课堂,为大家带来实时音视频《安全沟通》的快速入门指南。功能分析实时音视频“平安通讯”(内容安全审核)服务(以下简称“平安通讯”)是基于实时音视频通话的内容审核和处理功能。开发者默认已经实现了基本的音视频通话功能(如果您还没有开始集成,请参考上一期《云信小课堂|如何实现音视频通话》)。“平安通信”的基本功能包括:创建“平安通信”审核任务查询审核视频截图查询审核音频句子停止“平安通信”审核任务接收安全审核结果并处理安全审核结果是实时的音视频通话内容实现全程监控“审查-检查-禁止”服务功能。功能实现以下内容介绍如何基于网易云信音视频通话2.0SDK和SafeCommunicationAPI快速实现音视频通话的安全检测功能。基本步骤如下:Step1开始准备1、登录云信控制台创建应用,申请开通音视频2.0和“平安通讯”相关服务。详细操作步骤请参考:《音视频 2.0?接入流程》:https://doc.yunxin.163.com/do...《开通「安全通」服务》:https://doc.yunxin.163.com/do...2.准备接收复制消息的服务器的公网地址。审核结果将以消息副本的形式发送至您预留的抄送地址。请您在开通服务前准备CC地址,并确保CC地址长期有效。配置方法如下图所示:3.准备音视频通话的开发环境。Safecom服务支持音视频2.0全终端接入检测。无论使用什么平台,接入流程都是一样的。4.配置内容检测的相关规则,在“安全通信”功能页面进入策略配置页面。在这里您可以配置您想要的安全检测策略。Step2创建音视频通话创建房间(可选)通过服务端API创建音视频通话https://doc.yunxin.163.com/do...传入指定房间名称和用户ID。对于这个测试,我们定义房间名称为neteasetest,用户id为12345。curl--location--requestPOST'https://logic-dev.netease.im/v2/api/room'--header'AppKey:***'\//请使用你的appkey--header'Nonce:***'\//Nonce,最大长度为128个字符。--header'CurTime:1639555317'\//当前Unix时间戳,即从1970年1月1日0:00:00到现在的秒数。数据类型为字符串。--header'CheckSum:ba193e4d4ba3991987eb72afe692095598552b79'\//计算方法详见:https://doc.yunxin.163.com/docs/jcyOTA0ODM/TA5MjEzNTM?platformId=50326--header'Content-Type:application/json'--data-raw'{"channelName":"neteasetest","mode":2,"uid":12345}'获取对应的请求返回结果:{"code":200,"errmsg":"原因码200",//code200表示创建成功。其他状态码请参考https://doc.yunxin.163.com/docs/jcyOTA0ODM/DY2NDIwMTM?platformId=50326"cid":1344424603797473}注:“创建房间”不是必须的操作,用户可以选择无论是否创建,云信音视频2.0通话也支持未创建的客户端直接加入音视频房间。建立音视频通话为了演示方便,我们使用web进行音视频通话(假设开发者已经实现了基本的音视频通话功能),传入与创建时相同的房间名房间,建立音视频通话。this.client.join({channelName:"neteasetest",//房间名uid:12345,//用户idtoken:''//认证token,参见:https://doc.yunxin.163.com/docs/jcyOTA0ODM/TQ0MTI2ODQ?platformId=50002});进入房间成功后,通话就会正式开始。Step3创建“平安通讯”的审计任务调用创建审计任务调用后,即可通过服务端API启动对应房间的审计任务:https://doc.yunxin.163.com/do...curl--location--requestPOST'https://logic-dev.netease.im/livewallsolution/submit'--header'AppKey:***'\//请使用yourappkey--header'Nonce:***'\//随机数,最大长度为128个字符。--header'CurTime:1639555317'\//当前Unix时间戳,即从1970年1月1日0:00:00到现在的秒数。数据类型为字符串。--header'CheckSum:ba193e4d4ba3991987eb72afe692095598552b79'\//计算方法详见:https://doc.yunxin.163.com/docs/jcyOTA0ODM/TA5MjEzNTM?platformId=50326--header'Content-Type:application/json'--data-raw'{"monitorUid":666666,"channelName":"neteasetest","detectType":0,"scFrequency":5,"callbackUrl":"***"//接收审计任务的地址,详见2.1}'得到对应的返回结果:{"code":200,"result":{"taskId":"***",//审计任务id,使用为后续审计任务查询"status":true,"dataId":"235979990138017090111639568801012"//网易云信唯一标识自动为你生成的数据。如对检测结果有疑问,请根据dataId咨询技术支持。}}至此,你的音视频通话正式进入审核阶段。步骤4接收安全审计结果,实现审计结果接收服务。之前,我们已经配置好接收消息副本的服务器的公网地址。在安全审计过程中,异常行为会实时回调到您配置的地址。您需要在地址中收到相应的审核消息。我们提供了一个PHP解析CC内容的相关例子:https://faq.yunxin.163.com/#K...在这个演示中,我们只进行最简单的CC内容接收和打印。publicStringrobot(@RequestBodyStringmsg){logger.info(msg);System.out.println(味精);返回“机器人”;会触发具体的异常详情,详见:https://doc.yunxin.163.com/do...触发违规内容在调用之前,我们预先配置了一些敏感词作为审计过滤条件。接下来,我们将模拟视频通话中的相关视频内容:接收审核结果最后,您可以使用您配置的接受CC服务的地址接收与通话相关的审核结果!这里只显示视频相关的审核结果,音频也可以同时审核。审计结果字段的详细解释可以参考:https://doc.yunxin.163.com/do...{"data":{"dataId":{"dataId":"235979990138017090111639568801012","callback":"","channelName":"neteasetest","evidences":{"video":{"evidence":{"uid":12345,"beginTime":1639569545356,"endTime":1639569545356,"type":1,"url":"https://yidun-video.nos-eastchina1.126.net/ur9j7xwis91ejyprqsuilchg04009rez_12345_1639569545374.jpg?Signature=GR%2FQRk37f8k7ukRVLkeTtZiQWNfRMEx%2BL0uIeogAQ5M%3D&Expires=1642161545&NOSAccessKeyId=7b107844ee8e4f9689d54c726e3273ff"},"labels":[{"subLabels":[{"subLabel":400017,"rate":1.0,"details":{"hitInfos":["好好学习"],“hitLocationInfos”:[{“y1”:0.33333334,“x1”:0.20926562,“y2”:0.56666666,“x2”:0.7454219,“hitInfo”:“努力学习”}],“imageListInfos”:[{“类型”:2,"word":"好好学习"}]}}],"level":2,"rate":1.0,"label":400}]}},"censorSource":2,"channelId":1344424603797473,"taskId":"ur9j7xwis91ejyprqsuilchg04009rez","status":101},"eventType":400}Step5处理安全审计结果。移除发现调用存在违规的成员只是安全审计的第一步。下一步是处理安全审计结果在配置安全策略时,您可以根据自己的具体业务情况确定审计强度。对于审核结果,每个业务都会有不同的策略,或者在客户端弹出相关提示,或者直接挂断电话。云信音视频通话提供房间管理相关服务器API接口,可以移除房间内的成员或关闭整个房间。下面是违规房间移除成员的例子,服务器移除成员接口:https://doc.yunxin.163.com/do...curl--location--requestPOST'https://logic-dev.netease.im/v3/api/kicklist/members?cname=neteasetest1&uid=12345'--header'AppKey:***'\//请使用你的appkey--header'Nonce:***'\//随机数,最大长度为128个字符。--header'CurTime:1639555317'\//当前Unix时间戳,即从1970年1月1日0:00:00到现在的秒数。数据类型为字符串。--header'CheckSum:ba193e4d4ba3991987eb72afe692095598552b79'\//计算方法详见:https://doc.yunxin.163.com/docs/jcyOTA0ODM/TA5MjEzNTM?platformId=50326--header'Content-Type:application/json'--data-raw''请求没有返回结果,HTTP200表示请求成功。客户端处理完成后,客户端会收到被移除房间的回调。以web端为例:this.client.on('client-banned',(event)=>{logger.log('peer-leave',event);message.error('你被踢出了房间');});至此,音视频通话安全审查完成了“审查-检查-禁止”一体化操作。Step6结束审计任务最后,我们需要结束这个调用通道的审计任务https://doc.yunxin.163.com/do...curl--location--requestPOST'https://logic-dev.netease.im/livewallsolution/feedback'--header'AppKey:***'\//请使用您应用的appkey--header'Nonce:***'\//随机数,最大长度为128个字符。--header'CurTime:1639555317'\//当前Unix时间戳,即从1970年1月1日0:00:00到现在的秒数。数据类型为字符串。--header'CheckSum:ba193e4d4ba3991987eb72afe692095598552b79'\//计算方法详见:https://doc.yunxin.163.com/docs/jcyOTA0ODM/TA5MjEzNTM?platformId=50326--header'Content-Type:application/json'--data-raw'{"realTimeInfoList":[{"channelName":"neteasetest","status":100}]}'得到对应的返回结果:{"code":200,"result":[{"channelName":"neteasetest","result":0,"taskId":"ur9j7xwis91ejyprqsuilchg04009rez"}]}总结以上就是网易云信实时音视频快速接入指南《安全沟通》详解,按照以上步骤即可轻松完成。越来越多的音视频聊天场景,意味着各个平台不仅需要管控,还需要大量的人力成本来审核平台的音视频内容,而网易云信为开发者提供实时音视频“安全通信”(内容安全审查)服务,有效区分和屏蔽音视频内容,减少人力投入。云信小课堂推荐阅读第一期:如何实现音视频通话第二期:5步搭建本地“会所”第三期:5分钟实现Android端PK第四期:5分钟快速实现iOS端PK第五期连麦场景阶段:从0搭建在线聊天室,仅需4步!问题六:搭建应用级在线聊天室,7步就够问题七:看聊天室内容很头疼?三步解决第八期:简单四步快速搭建协同办公系统。.提供通信和视频融合的核心能力和组件,包括IM即时通讯、5G消息平台、一键登录、信令、短信和号码隐私保护、音视频通话、直播、点播、互动等通信服务直播、互动白板等。音视频服务、视频会议等组件服务。网易云信服务于网易云音乐、好未来、新东方、科大讯飞、南京银行等各行业客户,100w+企业开发者接入云信服务。
