云信小课堂|如何实现音视频安全检测?

4ea63955b8c13795705e1a64c00bb9ef.png

Vol. 9

389f1e5d2bf868613eee6dad206b943a.png

泛娱乐类音视频聊天场景中,充斥着各种不可控的风险因素,例如色情、暴恐和涉政信息等。随着国家监管的日趋严格,各平台需要对平台的音视频内容进行管控,自行处理音视频内容审核需要投入大量人力进行甄别。

融合通信云专家网易云信融合网易易盾的内容审核能力,为开发者提供实时音视频「安全通」(内容安全审核)服务,对音视频内容进行有效的判别和筛选降低人力投入。

本次云信小课堂,我们为大家带来实时音视频「安全通」的快速接入指南

视频讲解

10 分钟视频,手把手教你接入

功能解析

实时音视频「安全通」(内容安全审核)服务(以下简称「安全通」),是基于实时音视频通话的内容审核及处理功能。我们默认开发者已经实现了基础的音视频通话功能(如您还未开始集成,可参考往期《云信小课堂|如何实现音视频通话》)。

「安全通」的基础功能包含:

  • 创建「安全通」审核任务

  • 查询审核视频截图

  • 查询审核音频断句

  • 停止「安全通」审核任务

  • 接收安全审核结果

  • 处理安全审核结果

基于实时音视频通话内容,实现全流程的“审-查-禁”服务功能

功能实现

以下内容为大家介绍如何基于网易云信音视频通话 2.0 SDK 及安全通 API 快速实现音视频通话安全检测功能,基本步骤如下:

Step 1 开始准备

1、登录云信控制台创建应用并申请开通音视频 2.0 及「安全通」相关服务。详细操作步骤可参考:

《音视频 2.0 接入流程》:

https://doc.yunxin.163.com/docs/jcyOTA0ODM/DkyMDM2Mzk?platformId=50002

 《开通「安全通」服务》:

https://doc.yunxin.163.com/docs/jcyOTA0ODM/zMzMTYzNDM?platformId=50326

2、准备接收消息抄送的服务器公网地址。审核结果会以消息抄送的方式发送至您预留的抄送地址,请在开通服务前准备抄送地址,并保证抄送地址长期有效。配置方式如下图所示:

6fc4f1d6423a5e53808cc0011d6f621f.png

3、准备音视频通话开发环境,安全通服务支持音视频 2.0 全终端接入检测,无论您使用的是什么平台,接入流程一致。

4、配置内容检测相关规则,在「安全通」功能页面,进入策略配置页面。在此您可以配置您希望的安全检测策略。

43d3e40b7c69399d279ef40cf09a2475.png

e986e23b203407c53aaf82af27ffbbd6.png

73f9ff83cb687e851126838010104953.png

Step 2 创建音视频通话

创建房间(可选)

通过服务端 API 进行音视频通话房间创建

https://doc.yunxin.163.com/docs/jcyOTA0ODM/jg3NjcyNTE?platformId=50326

传入指定的房间名及用户 id 。在此测试时,我们定义房间名为 neteasetest ,用户 id 为 12345 。

curl --location --request POST 'https://logic-dev.netease.im/v2/api/room' \
--header 'AppKey: ***' \  //请使用您应用的appkey
--header 'Nonce: ***' \  //随机数,最大长度为 128 个字符。
--header 'CurTime: 1639555317' \  //当前 Unix 时间戳,即从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的秒数。数据类型为 String。
--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": "reason code 200", //code 200即为创建成功,其他状态码请参考 https://doc.yunxin.163.com/docs/jcyOTA0ODM/DY2NDIwMTM?platformId=50326
    "cid": 1344424603797473
}

注:“创建房间“为非必要操作,用户可以自主选择创建或不创建,云信音视频 2.0 通话亦支持未创建客户端直接加入音视频房间。

建立音视频通话

为了方便演示,我们使用 Web 端进行音视频通话(我们默认开发者已经实现了基础的音视频通话功能),传入与创建房间时相同的房间名,建立音视频通话。

this.client.join({
        channelName: "neteasetest", //房间名
        uid: 12345, //用户id
        token: '' //鉴权token,详见:https://doc.yunxin.163.com/docs/jcyOTA0ODM/TQ0MTI2ODQ?platformId=50002
      });

进入房间成功后,通话就正式开始咯。

2ebc880091fdadcfe09bb3dbd3ccd405.png

Step 3 创建「安全通」审核任务

通话建立完成后,即可通过服务端 API 开启对应房间的审核任务:

https://doc.yunxin.163.com/docs/jcyOTA0ODM/DA3OTIwNzg?platformId=50326

curl --location --request POST 'https://logic-dev.netease.im/livewallsolution/submit' \
--header 'AppKey: ***' \  //请使用您应用的appkey
--header 'Nonce: ***' \  //随机数,最大长度为 128 个字符。
--header 'CurTime: 1639555317' \  //当前 Unix 时间戳,即从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的秒数。数据类型为 String。
--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 咨询技术支持。
    }
}

至此,您的音视频通话即正式进入审核阶段。

Step 4 接收安全审核结果

实现审核结果接收服务

在之前,我们已经配置了接收消息抄送的服务器公网地址,安全审核过程中,会将异常行为实时回调到您配置的地址中,您需要在该地址中实现对应审核消息的接收,我们提供了 PHP 解析抄送内容的相关示例:

https://faq.yunxin.163.com/#KB0304

在本次演示中,我们只进行最简单的抄送内容接收及打印。

public String robot(@RequestBody String msg) {
        logger.info(msg);
        System.out.println(msg);
        return "robot";
    }

正常情况,审核抄送不会触发,只有在有问题的情况下,会触发具体异常详情抄送,详见:

https://doc.yunxin.163.com/docs/jcyOTA0ODM/jYyMzk5Nzc?platformId=50326

触发违规内容

在进行通话之前,我们提前配置了部分敏感词作为审核过滤条件。

41e280d1752b49e85822d260ff61d975.png

接下来,我们在视频通话中,模拟相关的视频内容:

28ce009687741f3c0edb5d0251b35afa.png

审核结果接收

最终,您配置的接受抄送服务的地址,就能收到该次通话相关的审核结果了!这里只展示了视频相关的审核结果,音频也可以进行同步审核。审核结果字段释义详见:

https://doc.yunxin.163.com/docs/jcyOTA0ODM/jYyMzk5Nzc?platformId=50326#400%20%E5%AE%9E%E6%97%B6%E9%9F%B3%E8%A7%86%E9%A2%91%E5%AE%89%E5%85%A8%E9%80%9A%E5%AE%A1%E6%A0%B8%E6%8A%84%E9%80%81

{
  "data": {
    "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": [{
                "type": 2,
                "word": "好好学习"
              }]
            }
          }],
          "level": 2,
          "rate": 1.0,
          "label": 400
        }]
      }
    },
    "censorSource": 2,
    "channelId": 1344424603797473,
    "taskId": "ur9j7xwis91ejyprqsuilchg04009rez",
    "status": 101
  },
  "eventType": 400
}

Step 5 处理安全审核结果

移出成员

发现通话存在违规只是安全审核的第一步,接下来需要处理安全审核的结果。在配置安全策略时,您可以根据您具体的业务情况,来辨别审核力度。

针对审核结果,每个业务会有不同的策略,或是在客户端弹出相关提示,或是直接结束该通通话。云信的音视频通话提供房间管理的相关服务端 API 接口,可以对房间内的成员进行移除,或是对整个房间进行关闭。以下以移除违规房间成员为例,服务端移出成员接口:

https://doc.yunxin.163.com/docs/jcyOTA0ODM/TA5MTExNjg?platformId=50326

curl --location --request POST '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 点 0 分 0 秒开始到现在的秒数。数据类型为 String。
--header 'CheckSum: ba193e4d4ba3991987eb72afe692095598552b79' \ //计算方式详见:https://doc.yunxin.163.com/docs/jcyOTA0ODM/TA5MjEzNTM?platformId=50326
--header 'Content-Type: application/json' \
--data-raw ''

该请求无返回结果,HTTP 200 即请求成功。

客户端处理

之后客户端即会收到被移除房间的回调,以 Web 端为例:

this.client.on('client-banned', (event) => {
      logger.log('peer-leave', event);
      message.error('你已被踢出房间');
    });

f3f2f7b188d860be87bab0926ad74046.png

至此,音视频通话的安全审核即已完成”审-查-禁“的一体化操作。

Step 6  结束审核任务

最终我们需要结束该通话频道的审核任务

https://doc.yunxin.163.com/docs/jcyOTA0ODM/Dg5NzQ1MjM?platformId=50326

curl --location --request POST 'https://logic-dev.netease.im/livewallsolution/feedback' \
--header 'AppKey: ***' \  //请使用您应用的appkey
--header 'Nonce: ***' \  //随机数,最大长度为 128 个字符。
--header 'CurTime: 1639555317' \  //当前 Unix 时间戳,即从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的秒数。数据类型为 String。
--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步构建本土「Clubhouse」

第三期:5分钟实现安卓端PK连麦场景

第四期:5分钟快速实现iOS端PK连麦场景

第五期:从0搭建在线聊天室,只需4步!

第六期:搭建应用级别在线聊天室,7步就够

第七期:聊天室内容审核很头疼?3 步解决

第八期:简单四步,快速搭建协同办公系统

925043dbf3540b1705c993d26689b05c.gif

504a5ec05149289855e96ceef882a860.gif

关于网易云信

网易云信是集网易 24 年 IM 以及音视频技术打造的融合通信云服务专家,稳定易用的通信与视频 PaaS 平台。

提供融合通信与视频的核心能力与组件,包含 IM 即时通讯、5G 消息平台、一键登录、信令、短信与号码隐私保护等通信服务,音视频通话、直播、点播、互动直播与互动白板等音视频服务,视频会议等组件服务。

网易云信服务于网易云音乐、好未来、新东方、科大讯飞、南京银行等各行各业客户,已有 100w+ 企业开发者接入云信服务。

9628b77856dd8e872c3d8966232c2d07.gif

b3c5618a4aedfc6ad60b4c92ab09766d.gif

21b078bd8b3643ac07fd66b607530b51.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值