游戏多媒体引擎 回调说明(语音内容安全)

实时语音审核 和 第三方语音流或音频文件审核 的回调均为服务端回调,且回调参数一致,详情如下面所述。

相关产品
游戏多媒体引擎 产品页,含版本规格、价格与购买入口。

一、网络协议

如果在请求参数中指定了回调地址参数 Callback,即一个 HTTP(S) 协议接口的 URL,则需要支持 POST 方法,传输数据编码采用 UTF-8。

二、URL Query 参数

名称 类型 是否必需 描述
Signature string 是 签名,具体见下方 签名生成 说明。

三、签名生成

Signature = Base64 ( HMAC-SHA1 ( strContent, SecretKey ))

·strContent:签名原文串,为 POST+body 的整个 JSON 内容(长度以 Content-Length 为准)。

·body:回调给业务的 JSON 内容,下方 回调示例 中的全部内容即为 body。

·SecretKey:密钥,为应用的 SecretKey,可通过 控制台 > 应用详情 查看。

·HMAC-SHA1:签名算法。

·Base64:加密函数,进行 Base64 编码后,即可生成 Signature 签名。

·将 Signature 加到 Url 的参数里,即可生成最终的回调请求。

四、回调示例

{ "Code": 0, "DataId": "1400000000_test_data_id", "ScanFinishTime": 1566720906, "HitFlag": true, "Live": false, "Msg": "", "ScanPiece": [{ "DumpUrl": "", "HitFlag": true, "MainType": "abuse", "RoomId": "123", "OpenId": "1111", "Info":"", "Offset": 0, "Duration": 3400, "PieceStartTime":1574684231, "SubLabel": "PersonalAttack", "ScanDetail": [{ "EndTime": 1110, "KeyWord": "违规字", "Label": "abuse", "Rate": "90.00", "StartTime": 1110 }, { "EndTime": 1380, "KeyWord": "违规字", "Label": "abuse", "Rate": "90.00", "StartTime": 930 }, { "EndTime": 1560, "KeyWord": "违规字", "Label": "abuse", "Rate": "90.00", "StartTime": 930 }, { "EndTime": 2820, "KeyWord": "违规字", "Label": "abuse", "Rate": "90.00", "StartTime": 2490 }] }], "ScanStartTime": 1566720905, "Scenes": [ "default" ], "Status": "Success", "TaskId": "6330xxxx-9xx7-11ed-98e3-52xxxxe4ac3b", "Url": "https://xxx/xxx.m4a"}

注意:说明:

五、语音消息审核回调说明

语音消息审核回调中,下载语音完成回调、转文本完成回调为客户端回调,在客户端接口中,除会返回原先的 code、filepath、fileid 外,还会增加 auditResult 的回调数据。审核结果回调为服务端回调。

六、客户端回调示例:

FileDownloadDelegateImpl filedAudioDownloadDelegate = new FileDownloadDelegateImpl(delegate (int code, string filepath, string fileid, string auditResult) { showLoadingView(false, ""); if (code == 0) { showWarningText("下载成功"); InputField field = transform.Find("downloadFilePath").GetComponent<InputField>(); field.text = filepath; InputField audioInput = transform.Find("auditResult").GetComponent<InputField>(); audioInput.text = auditResult; } else { showWarningText("下载失败" + Convert.ToString(code)); InputField field = transform.Find("downloadFilePath").GetComponent<InputField>(); field.text = ""; InputField audioInput = transform.Find("auditResult").GetComponent<InputField>(); audioInput.text = auditResult; } });

七、语音消息审核回调参数:

名称 类型 描述
user_id Number 业务方玩家用户 ID。
player_uin String 业务方玩家用户 ID,字符串类型。
biz_id Number GME Sdkappid。
sign String 签名字符串。
audit_res Number 审核状态,对应如下:1:审核完成。2:审核中。3:语言不支持。4:没有勾选该语言选项。
DataId String 数据唯一标识。
HitFlag Boolean 是否违规。true 违规。false 不违规。
Label String 审核结果标签,对应如下:normal:正常文本。 politics: 政治。porn:色情。abuse:谩骂。ad:广告。illegal:违法。terrorism:暴恐。moan:呻吟/娇喘。customized:自定义词库。
AsrText String 语音转文本结果。
ScanDetail Array of ScanDetail 包含语音消息的审核结果和违规内容。
RequestId String 唯一请求 ID,用于跟踪查询问题。

八、ScanDetail 字段说明:

名称 类型 描述
Label String 审核结果标签,对应如下:normal:正常文本。politics: 政治。porn:色情。abuse:谩骂。 ad:广告。illegal:违法。 terrorism:暴恐。moan:呻吟/娇喘。customized:自定义词库。
KeyWords []String 命中关键词
Rate String 置信度分数;示例值:100
StartTime Number 违规事件结束时间,单位为秒(s);示例值:15
EndTime Number 违规事件结束时间,单位为秒(s);示例值:15

九、语音消息审核结果回调示例:

{ "user_id": 9920413420219, "player_uin": "9920413420219", "biz_id": 1400367018, "sign": "f7067c7020dc384879f273738f76319235d94aef60b7d83cec575a300e548199", "audit_res": 1, "DataId": "A1A3E84F-4C9A-4A51-B7EC-10DFBC49959F", "HitFlag": true, "Label": "porn", "AsrText": "怎么,还想你的奶了?", "ScanDetail": [ { "Label": "porn", "Rate": "72", "StartTime": 0, "EndTime": 0 } ], "RequestId": "a61df1f6-e0e2-4a5b-805c-e277463d7bc3"}

十、语音消息审核回调验签说明:

审核回调结构体 sign 字段是待验签的字段。

步骤1:组成待签名的字符串

//待签名字符串body: "biz_id=" +biz_id + "&audit_res=" +audit_res+ "&DataId=" + DataId + "&Label=" + Label

步骤2:使用 sha256签名算法签名

func createSignature(signKey string, body string) string { mac := hmac.New(sha256.New, []byte(signKey)) mac.Write([]byte(body)) sha := hex.EncodeToString(mac.Sum(nil)) return sha}

赞 (0)
上一篇 4天前
下一篇 4天前