功能描述

2022.08.15 16:29:36

    泛娱乐类的音频聊天场景的日益增加,充斥着各种不可控的风险因素,例如色情、暴恐和涉政信息等。随着国家监管的日趋严格,各平台需要对平台的音频内容进行管控,需要投入大量人力进行甄别。实时音频反垃圾可对音视频内容进行有效的判别和筛选,大大降低人力投入。本文介绍如何使用易盾API搭配云信 RTC API进行实时音频内容进行审核。

    若要对频道内的音频进行实时审核,你需要通过应用程序服务器调用音频反垃圾服务的 RESTful API 发送 HTTP 请求。音频反垃圾服务的审核结果以 HTTP 请求的形式发送到你指定的地址。

    方案架构图

    下图展示了从发起反垃圾请求到处理违规情况的整体方案架构图。其中,“你的业务逻辑”展示了针对审核结果的示例处理策略。你也可以结合自己的业务场景,采取不同策略。

    方案架构图

    调用时序图

    短期房间

    调用时序图

    长期房间

    调用时序图

    接入说明

    准备工作

    开通反垃圾功能

    ** 易盾控制台获取接入秘钥 **

    易盾控制台获取接入秘钥

    准备监听uid/token

    反垃圾SDK的uid号段预留

    建议您预留uid号段提供给音频反垃圾SDK加入音视频房间进行反垃圾服务;uid与调用云信getRecordSdkUserChecksum时候传的uid保持一致,不能与房间内任何用户uid重复,建议是不超过12位整数。

    准备反垃圾SDK的uid授权进入房间的token

    方案1

    一次性token,适用于实际房间最长时长30天内的短期房间

    获取反垃圾SDK的房间token

    1.调用RESTful API :POST https://api.netease.im/nimserver/nrtc/getRecordSdkUserChecksum.action

    2.传入以下字段

    参数 参数类型 是否必须 说明
    channelName string 房间名称
    type int 0表示IM音视频,1表示独立音视频
    accid string IM音视频必须
    uid long 独立音视频必须
    expireSeconds long 请配置为30天

    接口返回说明,checksum对应token字段。

    {
        "code":200,
        "checksum":"42753e0ade9b4ebfbe31c363a8177ce3",
        "cid":43634037884897
    }
    

    为保证您较好的使用音频反垃圾服务,建议您基于您的具体业务场景(实际音视频房间时长)对expireSeconds进行配置。

    准备反垃圾结果接收地址(callbackURL)

    用于接收反垃圾异常检测结果,离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。

    提交反垃圾检测

    您需要将反垃圾SDK所需加入的频道名(channelName)、appkey云信申请产品时生成的唯一标识,token以及反垃圾SDK对应的uid按如下格式生成http请求,并提交检测接口,不同场景的提交检测地址有所不同:

    场景1:短期房间,准备允许短期周期内一直有效的监听token 提交URL:yunxin://uid:token@appkey/channelName

    接口地址

    https://as.dun.163.com/v3/liveaudio/check

    接口描述

    提交直播语音的URL进行语音内容检测

    请求参数

    公共参数已省略,详细见 请求公共参数,其他参数如下:

    参数名称 类型 是否必选 最大长度 描述
    url String Y 1024 场景1:短期房间,准备允许短期周期内一直有效的监听token,提交URL:yunxin://uid:token@appkey/channelName;
    title String N 512 直播语音标题
    ip String N 128 用户IP地址
    account String N 128 用户唯一标识,如果无需登录则为空
    deviceId String N 128 用户设备 id
    version String Y 4 接口版本 v3.1
    deviceType Number N 4 用户设备类型,1:web, 2:wap, 3:android, 4:iphone, 5:ipad, 6:pc, 7:wp
    callback String N 512 数据回调参数,调用方根据业务情况自行设计,当调用文本离线结果获取接口时,该接口会原样返回该字段,详细见直播音频离线检测结果获取。作为数据处理标识,因此该字段应该设计为能唯一定位到该次请求的数据结构,如对用户的昵称进行检测,dataId可设为用户标识(用户ID),用户修改多次,每次请求数据的dataId可能一致,但是callback参数可以设计成定位该次请求的数据结构,比如callback字段设计成json,包含dataId和请求的时间戳等信息,当然如果不想做区分,也可以直接把callback设置成dataId的值。
    callbackUrl String N 512 离线结果回调通知到客户的URL。主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。

    响应结果

    响应字段如下,响应通用字段已省略,详细见响应通用字段

    result 数据结构

    参数名称 类型 描述
    taskId String 本次请求数据标识,可以根据该标识查询数据最新结果
    status Number 请求结果,0为成功,1为失败

    接收审核结果

    • 主动接收结果(推荐,结果获取更实时):

    通过在提交检测接口提交callbackURL,主动获取检测结果,主动回调数据接口超时时间设置为2s,为了保证顺利接收数据,需保证接收接口性能稳定并且保证幂等性。

    • 被动接收结果:

    您也可以通过定时轮询结果获取接口(https://support.dun.163.com/documents/2018082201?docId=274670761104560128)的方式获得结果;

    停止音频反垃圾

    停止音频反垃圾分为两种场景进行实现:

    1. 当房间结束时;
    2. 某一时刻,当前音频房间内不再需要音频反垃圾检测服务时; 您需要调用停止检测接口实现停止检测。

    停止检测接口:

    接口地址

    https://as-liveaudio.dun.163yun.com/v1/liveaudio/feedback

    接口描述

    实时更新直播中的直播语音信息

    请求参数

    公共参数已省略,详细见 请求公共参数,其他参数如下:

    参数名称 类型 是否必选 最大长度 描述
    version String Y 4 接口版本v1.0
    feedbacks String Y - 直播信息更新数据(Json数组)

    feedbacks字段原始数组结构

    参数名称 类型 是否必选 最大长度 描述
    taskId String Y - 直播音频taskId
    status Number N 3 直播音频开播状态, 100:下播

    响应结果

    响应字段如下,响应通用字段已省略,详细见响应通用字段

    result 数组结构

    参数名称 类型 描述
    taskId String 直播音频taskId
    result Number 请求结果,0成功,1失败,2数据不存在
    Online Chat Tel:95163223