声网语音流异步接口
1. 接口介绍
声网客户使用 云端录制
服务时,可选择图普的语音流识别作为扩展服务,对录制中的语音进行实时审核。通过云端录制进行审核时,声网会将录制的数据源整合为 RTMP
流,图普根据声网提供的流地址进行拉流切片审核,并将审核结果回调给客户。
目前图普语音流识别已支持声网单流录制 & 合流录制。业务流程如下:
参考文档
下面列出声网关于 云端录制 相关的接口文档:
2. 请求
客户通过调用声网 开始云端录制接口
,开始进行云端录制。调用时,在 clientRequest.extensionServiceConfig
中指定图普语音流识别相关参数。该参数说明摘录如下(请以声网文档页面说明为准):
extensionServiceConfig
是一个 JSON Object,用于设置扩展服务。扩展服务是基于声网 RTC SDK 的一系列应用服务,能够对声网
RTC SDK 中产生的音视频流进行进一步处理,如页面录制、视频点播服务、智能语音审核服务。
extensionServiceConfig
包含以下字段:
errorHandlePolicy
:(选填)String 类型。错误处理策略。目前仅可设置为默认值error_abort
,表示当某一扩展服务发生错误后,订阅及其他非扩展服务均停止。apiVersion
:(选填)String 类型,云端录制 RESTful API 的版本号,默认为v1
。extensionServices
:JSONArray 类型,由每个扩展服务的设置组成的数组。
2.1 扩展参数说明
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
serviceName | String | 是 | 扩展服务的名称,需填入 tupu_voice_scan |
errorHandlePolicy | String | 否 | 声网定义的错误处理策略,可选值:error_abort |
streamTypes | String | 否 | 声网定义的订阅媒体流类型,当前可选值:0 |
serviceParam | Object | 是 | 扩展服务的具体参数设置,详见 ServiceParam 数据结构 |
ServiceParam 数据结构
- v3.1(默认)
- v3
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
secretId | String | 是 | 图普应用 SID |
version | String | 是 | 审核服务版本,填入 v3.1 |
callback | String | 是 | 识别结果回调接口地址,用于接收 POST 回调 |
callbackAddr | String | 是 | 声网新增的必填参数,实际传 - 即可,避免参数校验不通过 |
timestamp | Number | 是 | 当前服务器的 Unix 时间戳 |
nonce | Number | 是 | 随机数 |
signature | String | 是 |
|
callbackRule | String | 否 | 回调规则,主要影响审核场景的识别任务,如语音转译审核、低俗语音识别,默认为 violation 。violation :仅回调违规片段的识别结果;all :回调所有片段的识别结果 |
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
secretId | String | 是 | 图普应用 SID |
callback | String | 是 | 识别结果回调接口地址,用于接收 POST 回调 |
callbackAddr | String | 是 | 声网新增的必填参数,实际传 - 即可,避免参数校验不通过 |
timestamp | Number | 是 | 当前服务器的 Unix 时间戳 |
nonce | Number | 是 | 随机数 |
signature | String | 是 |
|
callbackRules | Number | 否 | 回调规则,默认为 0 。0 :仅回调违规片段的识别结果;1 :回调所有片段的识别结果;2 :结束时回调语音流结束状态;3 :回调所有片段的识别结果,并在结束时回调语音流结束状态 |
roomId | String | 否 | 房间 ID(指定时可在控制台根据此字段搜索识别结果) |
userId | String | 否 | 用户 ID(指定时可在控制台根据此字段搜索识别结果) |
forumId | String | 否 | 板块 ID(指定时可在控制台根据此字段搜索识别结果) |
2.2 请求示例
- v3.1(默认)
- v3
{
"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>",
"version": "v3.1",
"callback": "<callback>",
"callbackAddr": "-",
"callbackRule": "all",
"timestamp": 1685000000,
"nonce": 1685000000,
"signature": "<signature>"
}
}
]
}
}
}
{
"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. 同步响应
略。参考声网 开始云端录制接口。
4. 常见问题
4.1 开启语音流扩展服务后,未接收到识别结果回调
- 首先确认开始录制后,用户是否加入了指定频道,并向频道内推流;
- 将回调规则设置为全部回调,观察是否能够收到识别结果回调。若仍无回调,请记录开始录制时声网返回
的
SessionID
(录制 ID),提供给图普客户经理进行排查。
5. 更新日志
日期 | 说明 |
---|---|
2024-07-26 | 更新声网云端录制接口文档链接;更新常见问题 |