跳到主要内容

声网语音流异步接口

1. 接口介绍

声网客户使用 云端录制 服务时,可选择图普的语音流识别作为扩展服务,对录制中的语音进行实时审核。通过云端录制进行审核时,声网会将录制的数据源整合为 RTMP 流,图普根据声网提供的流地址进行拉流切片审核,并将审核结果回调给客户。 目前图普语音流识别已支持声网单流录制 & 合流录制。业务流程如下:

1.1 接入指南

  1. 联系客户经理开通账号
  2. 同客户经理沟通详细需求与审核标准。根据您的需求,客户经理将为您开通对应的应用(SID)
  3. 访问控制台 - 数字证书 获取 API 鉴权所需的密钥
  4. 点击 签名及验证示例 查看签名示例,了解如何生成鉴权所需的签名
  5. 查阅下方的接口参数文档,了解如何构建请求以及如何解析响应数据
  6. 使用 示例资源 调用接口,进行调试和测试
  7. 查阅 审核场景汇总结果说明,了解如何通过汇总结果判断内容是否违规,以及如何解析汇总结果
  8. 添加异常处理逻辑,以处理可能出现的错误和异常情况,增强代码的健壮性和稳定性

如果在接入过程中遇到任何技术问题,请联系客户经理以获取帮助。

1.2 参考文档

下面列出声网关于 云端录制 相关的接口文档:

2. 请求

客户通过调用声网 开始云端录制接口 ,开始进行云端录制。调用时,在 clientRequest.extensionServiceConfig 中指定图普语音流识别相关参数。该参数说明摘录如下(请以声网文档页面说明为准):


extensionServiceConfig 是一个 JSON Object,用于设置扩展服务。扩展服务是基于声网 RTC SDK 的一系列应用服务,能够对声网 RTC SDK 中产生的音视频流进行进一步处理,如页面录制、视频点播服务、智能语音审核服务。

extensionServiceConfig 包含以下字段:

  • errorHandlePolicy:(选填)String 类型。错误处理策略。目前仅可设置为默认值 error_abort,表示当某一扩展服务发生错误后,订阅及其他非扩展服务均停止。
  • apiVersion:(选填)String 类型,云端录制 RESTful API 的版本号,默认为 v1
  • extensionServices:JSONArray 类型,由每个扩展服务的设置组成的数组。

2.1 扩展参数说明

参数名称类型是否必填说明
serviceNameString扩展服务的名称,需填入 tupu_voice_scan
errorHandlePolicyString声网定义的错误处理策略,可选值:error_abort
streamTypesString声网定义的订阅媒体流类型,当前可选值:0
serviceParamObject扩展服务的具体参数设置,详见 ServiceParam 数据结构

ServiceParam 数据结构

参数名称类型是否必填说明
secretIdString图普应用 SID
callbackString识别结果回调接口地址,用于接收 POST 回调
callbackAddrString声网新增的必填参数,实际传 - 即可,避免参数校验不通过
timestampInt当前服务器的 Unix 时间戳
nonceFloat随机数(建议使用 Unix 时间戳或若干位随机整数)
signatureString

RSA-SHA256 算法签名。签名步骤:

  1. 将参与签名的参数(secretIdtimestampnonce)用英文半角逗号 , 拼接,得到 SignString
  2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。
  • 点击 数字证书 下载私钥。私钥有 rsapkcs8 两种格式,通常 Golang,Python 使用 rsa 格式私钥,Java 使用 pkcs8 格式私钥
  • 点击 签名及验证示例 查看签名示例
callbackRulesInt回调规则,默认为 3

0:仅回调违规片段的识别结果;
1:回调所有片段的识别结果;
2:结束时回调语音流结束状态;
3:回调所有片段的识别结果,并在结束时回调语音流结束状态
roomIdString房间 ID(指定时可在控制台根据此字段搜索识别结果)
userIdString用户 ID(指定时可在控制台根据此字段搜索识别结果)
forumIdString板块 ID(指定时可在控制台根据此字段搜索识别结果)

2.2 请求示例

{
"cname": "<cname>",
"uid": "<uid>",
"clientRequest": {
"recordingConfig": {
"channelType": 0,
"maxIdleTime": 30,
"streamTypes": 0
},
"extensionServiceConfig": {
"errorHandlePolicy": "error_abort",
"extensionServices": [
{
"serviceName": "tupu_voice_scan",
"errorHandlePolicy": "error_abort",
"streamTypes": 0,
"serviceParam": {
"secretId": "<secretId>",
"callback": "<callback>",
"callbackAddr": "-",
"callbackRules": 1,
"roomId": "<roomId>",
"userId": "<userId>",
"forumId": "<forumId>",
"timestamp": 1685000000,
"nonce": 1685000000,
"signature": "<signature>"
}
}
]
}
}
}

3. 同步响应

3.1 响应参数说明 🔥🔥

请参考声网 开始云端录制接口

3.2 响应示例

{
"cname": "<cname>",
"uid": "<uid>",
"resourceId": "<resourceId>",
"sid": "<sid>"
}

4. 常见问题

4.1 开启语音流扩展服务后,未接收到识别结果回调

  1. 首先确认开始录制后,用户是否加入了指定频道,并向频道内推流;
  2. 将回调规则设置为全部回调,观察是否能够收到识别结果回调。若仍无回调,请记录开始录制时声网返回 的 sid(录制 ID),提供给图普客户经理进行排查。

5. 更新日志

日期说明
2025-01-03新增接入指南
2024-11-19新增声网参考文档《使用图普语音审核》链接
2024-11-18更新 v3.1 接口当前状态为预览状态,当前推荐 v3 版本
2024-07-26更新声网云端录制接口文档链接;更新常见问题