语音流审核接口
1.音频流提交接口
适用范围
直播音频流
请求地址:
- 国内:
http://api.speech.tuputech.com/v3/recognition/speech/stream/<secretId>
secretId 需替换为您的 secretId,请联系我们为您开通 secretId。
请求方法:
POST
请求头:
Content-type: application/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'
指定任务
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'
请求参数说明:
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
speechStream | Array | 是 | 音频流内容信息,详见下面说明 |
timestamp | Number | 是 | 当前的服务器的Unix时间戳 |
nonce | Number | 是 | 随机数 |
signature | String | 是 | 我们采用的数字证书签名算法是:"RSA-SHA256",签名输出类型是:"base64",具体步骤如下: 1、所有参与签名的参数为:secretId,timestamp,nonce,用英文半角逗号“,”相连,得到sign_string; 2、利用您的私钥,使用算法"RSA-SHA256"签名,输出为 "base64" 格式,得到参数signature的值。 点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证; |
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 的使用补充说明
规则 | 对应的回调内容 |
---|---|
0 | 默认规则, 识别结果为违规时才回调违规结果,其他规则不回调 |
1 | 回调所有识别结果 |
2 | 任务结束时,主动回调任务结束状态 |
3 | 使用规则 1 和规则 2 |
返回参数说明
公共响应结果
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 |
返回结果示例
{
"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
}
音频流提交成功后, 会进行音频的审核,审核出来有违规的数据会回调给调用者
,不同的审核任务会回调不同的数据,详见以下任务的回调数据详解
2.音频流关闭接口
请求地址:
http://api.speech.tuputech.com/v3/recognition/speech/stream/close/'your_secretId'
请求方法:
POST
请求头:
Content-type: application/json
请求示例:
{
"speechStream": [
{
"requestId": "5c8213b9bc807806aab0a321"
}
],
"timestamp": 1541499770,
"nonce": 0.8469537531104208,
"signature": "CsIMcHuWqn/QFEnHWcFEhrB7ydcg5xTKawpRpNqA9Nw2WlCVIDR5jDcyUF85"
}
请求参数说明:
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
speechStream | Array | 是 | 音频内容信息,详见下面说明 |
timestamp | Number | 是 | 当前的服务器的Unix时间戳 |
nonce | Number | 是 | 随机数 |
signature | String | 是 | 我们采用的数字证书签名算法是:"RSA-SHA256",签名输出类型是:"base64",具体步骤如下: 1、所有参与签名的参数为:secretId,timestamp,nonce,用英文半角逗号“,”相连,得到sign_string; 2、利用您的私钥,使用算法"RSA-SHA256"签名,输出为 "base64" 格式,得到参数signature的值。 点击管理公钥证书查看如何生成私钥,及如何上传您的公钥用于数字签名的认证; |
speechStream
参数名 | 类型 | 是否必填 | 说明 |
---|---|---|---|
requestId | String | 是 | 音频流唯一ID |
返回参数说明
公共响应结果
json参数说明
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
result | Array | 是 | 返回结果 |
code | Number | 是 | 返回码,0:调用成功 |
message | String | 是 | 返回信息 |
nonce | String | 是 | 随机数 |
timestamp | String | 是 | 当前的服务器的Unix时间戳 |
result数据结构
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
requestId | string | 是 | 音频流唯一ID |
status | string | 是 | 检测状态 |
status说明
值 | 描述 |
---|---|
closed | 已关闭 |
返回数据示例:
{
"result": [
{
"requestId": "5c8213b9bc807806aab0a321",
"status": "closed"
}
],
"code": 0,
"message": "success",
"nonce": "0.01627771095362096",
"timestamp": 1552391372490
}
3. (可选) 结束状态回调
说明:仅在 callbackRules
参数设置了状态结束回调时才会在任务结束时回调
返回结构说明
公共响应结果
服务返回信息的公共结构
参数名 | 类型 | 是否必有 | 说明 |
---|---|---|---|
signature | String | 是 | 我们采用的数字证书签名算法是:"RSA-SHA256" ,签名输出类型是:"base64" ,首先下载图普科技的公钥证书,然后按如下步骤认证:1、收到的JSON数据经过JSON.parse(),得到JSON对象,记为data; 2、data含两个字段:signature、json;signature是数字签名,json是真正的有效数据的字符串格式; 3、用signature对json进行签名认证,算法: RSA-SHA256 ,输出类型:base64 ,得到认证结果;4、认证通过后,对json进行JSON.parse(),得到JSON数据,详见"json"字段说明。 |
json | String | 是 | json 字段经过JSON.parse(json)后,得到具体的结果,含: message:与code相关的文本信息 timestamp:当前的服务器的Unix时间戳。 nonce:随机数。 |
json 参数说明
返回结果样例
{
"code": 0,
"requestId": "61275d377b8d07d33a10cde0",
"status": "end",
"nonce": "0.8954065702381435",
"timestamp": 1629969759333
}
参数名称 | 类型 | 是否必需 | 说明 |
---|---|---|---|
code | Number | 是 | 返回码,0:正常结束(由用户请求关闭的任务), 其他状态码请参考语音状态码 |
requestId | String | 是 | 任务 Id |
status | String | 是 | 任务状态,目前只有 end |
nonce | String | 是 | 随机数 |
timestamp | String | 是 | 当前的服务器的Unix时间戳 |
使用建议:
- 当收到回调中存在
status
字段时, 说明任务已结束。 - 若
code
的值不为 0,则说明是异常结束,可根据code
的值查询到对应的异常结束类型。