语音流异步识别
1.接口介绍
语音流识别接口支持异步检测方式,提交语音直播流相关信息后,图普会对直播流内容进行识别检测,并通过异步回调的方式告知客户检测结果。
2. 请求
2.1 请求地址
区域 | 请求地址 |
---|---|
国内 | http://api.speech.tuputech.com/v3/recognition/speech/stream/<secretId> |
提示
<secretId> 需替换为您的 secretId
,请联系我们为您开通 secretId
。
2.2 请求方法
POST
2.3 请求头
Content-Type: application/json
2.4 请求参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
speechStream | Array | 是 | 音频流内容信息,详见 SpeechStream 参数说明 |
timestamp | Number | 是 | 当前的服务器的 Unix 时间戳 |
nonce | Number | 是 | 随机数 |
signature | String | 是 |
|
tasks | Array | 否 | 指定运行的任务 ID 列表 |
SpeechStream 参数说明
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
url | String | 是 | 音频流地址。 支持的协议: RTMP、HLS、HTTP-FLV、RTSP; 支持的容器格式:flv, mkv, mp5, rmvb, avi, wmv, 3gp, ts, mov; 支持的编码格式:AAC、AC-3、ADPCM、AMR、DSD、MP1、MP2、MP3、PCM。 |
callback | String | 是 | 检测结果的回调地址,支持 http, https |
roomId | String | 否 | 房间 ID |
userId | String | 否 | 用户 ID |
forumId | String | 否 | 板块 ID ,数据 ID |
returnPreSpeech | Boolean | 否 | 表示需要返回违规音频前一分钟(含违规音频,最长为一分钟)音频链接; 值为 false 时,只需返回违规片段音频链接。默认值为 false |
callbackRules | Number | 否 | 回调规则,不传则默认识别到违规数据时才回调违规数据,详见 CallbackRules 的使用补充说明 |
(可选) CallbackRules 的使用补充说明
规则 | 对应的回调内容 |
---|---|
0 | 默认规则, 识别结果为违规时才回调违规结果,其他规则不回调 |
1 | 规则 1:回调所有识别结果 |
2 | 规则 2:任务结束时,主动回调任务结束状态 |
3 | 使用 规则 1 和 规则 2 |
2.5 请求示例
json 请求示例
- 不指定任务
{
"speechStream": [
{
"url": "rtmp://pili-Room-4daedc9c7a5db36c325f6609000c0201",
"callback": "http://www.tupu.com/callback",
"roomId": "111111",
"userId": "23231",
"forumId": "321313"
}
],
"timestamp": 1541499770,
"nonce": 0.8469537531104208,
"signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85"
}
- 指定识别的任务 ID
{
"speechStream": [
{
"url": "rtmp://pili-Room-4daedc9c7a5db36c325f6609000c0201",
"callback": "http://www.tupu.com/callback",
"roomId": "111111",
"userId": "23231",
"forumId": "321313"
}
],
"timestamp": 1541499770,
"nonce": 0.8469537531104208,
"signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85",
"tasks": [ "5caee6b2a76925c55a09a6d2", "5c8213b9bc807806aab0a574" ]
}
curl 请求示例
- 不指定任务
curl -X POST --header 'Content-Type: application/json' \
-d '{
"speechStream": [
{
"url": "rtmp://pili-Room-4daedc9c7a5db36c325f6609000c0201",
"callback": "http://www.tupu.com/callback",
"roomId": "111111",
"userId": "23231",
"forumId": "321313"
}
],
"timestamp": 1541499770,
"nonce": 0.8469537531104208,
"signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85"
}' \
'http://api.speech.tuputech.com/v3/recognition/speech/stream/your_secretId'
- 指定识别的任务 ID
curl -X POST --header 'Content-Type: application/json' \
-d '{
"speechStream": [
{
"url": "rtmp://pili-Room-4daedc9c7a5db36c325f6609000c0201",
"callback": "http://www.tupu.com/callback",
"roomId": "111111",
"userId": "23231",
"forumId": "321313"
}
],
"timestamp": 1541499770,
"nonce": 0.8469537531104208,
"signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85",
"tasks": [ "5caee6b2a76925c55a09a6d2", "5c8213b9bc807806aab0a574" ]
}' \
'http://api.open.tuputech.com/v3/recognition/speech/stream/your_secretId'
3. 同步返回
3.1 返回参数说明
json 参数说明
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
result | Array | 是 | 返回结果 |
code | Number | 是 | 返回码,0 为调用成功 |
message | String | 是 | 返回信息 |
nonce | String | 是 | 随机数 |
timestamp | String | 是 | 当前的服务器的 Unix 时间戳 |
Result 参数说明
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
requestId | String | 是 | 客户提交的音频流的唯一请求 ID,后续可以通过该 ID 查到音频的相关信息 |
url | String | 是 | 音频流地址 |
callback | String | 是 | 检测结果的回调地址 |
roomId | String | 否 | 房间 ID |
userId | String | 否 | 用户 ID |
forumId | String | 否 | 板块 ID ,数据 ID |
3.2 返回示例
{
"result": [
{
"requestId": "5bcf23077f532488c2ccd6a615578896555130.34123306702281964",
"url": "rtsp://172.26.3.67:8554/dawang_crop_aac.mkv",
"callback": "http://172.25.52.11:8008",
"roomId": "12345",
"userId": "milian",
"forumId": "123456"
}
],
"code": 0,
"message": "success",
"nonce": "0.01627771095362096",
"timestamp": 1552391372490
}
4. (可选) 结束状态回调
说明
仅在 callbackRules
参数设置了状态结束回调时才会在任务结束时回调
4.1 返回结构说明
服务返回信息的公共结构
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
signature | String | 是 | 响应内容签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:
|
json | String | 是 | 响应或回调内容经过 JSON 转义后的字符串 |
json 参数说明
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
code | Number | 是 | 返回码,0 :正常结束(由用户请求关闭的任务), 其他状态码请参考语音状态码 |
requestId | String | 是 | 任务 ID |
status | String | 是 | 任务状态,目前只有 'end' |
nonce | String | 是 | 随机数 |
timestamp | String | 是 | 当前的服务器的 Unix 时间戳 |
使用建议
- 当收到回调中存在
status
字段时, 说明任务已结束。 - 若
code
的值不为 0,则说明是异常结束,可根据code
的值查询到对应的异常结束类型。
3.2 返回结果示例
{
"code": 0,
"requestId": "61275d377b8d07d33a10cde0",
"status": "end",
"nonce": "0.8954065702381435",
"timestamp": 1629969759333
}
5. 结果回调
音频流提交成功后, 会进行音频的审核,审核出来有违规的数据会回调给调用者,不同的审核任务会回调不同的数据,详见以下任务的回调数据详解: