跳到主要内容

语音文件异步接口

1. 接口介绍

客户通过语音文件异步识别接口提交识别任务,图普拉取语音文件进行切片,对语音片段进行识别检测,通过回调通知客户识别结果。业务流程如下:

提示
  1. 异步文件接口对文件大小和时长没有限制,根据最佳实践,建议文件大小小于 10 GB;异步流接口对流的时长没有限制,建议客户在流关闭时主动调用任务关闭接口。

  2. 图普采用 任务并发数 对异步接口进行并发控制,即任一时刻最多允许 N 个任务同时处理。在测试期间,任务并发数为 30(允许同时处理 30 个任务),正式使用或需要增加时请联系客户经理调整。当超出任务并发数后继续提交任务时,根据接口类型略有不同:

    • 异步文件接口:可以正常提交任务,提交的任务排队等待处理;
    • 异步流接口:提交任务时返回超出并发状态码(由于流的实时性要求,无法排队等待处理,因此无法继续提交)。

2. 请求

2.1 请求地址

区域请求地址
国内http://api.speech.tuputech.com/v3.1/recognition/speech/recording/async/<secretId>
提示

<secretId> 需替换为您的应用 SID,请联系客户经理为您开通及配置。关于 SID 详见 常见问题(FAQ)

2.2 请求方法

POST

2.3 请求头

Content-Type: application/json

2.4 超时时间及异常处理

建议配置超时时间 1 秒,在 HTTP 响应状态码非 200 或业务状态码不为 0 时进行重试。

2.5 请求参数说明

参数名称类型是否必填说明
recordingRecording语音文件信息,详见 Recording 参数说明
timestampNumber当前服务器的 Unix 时间戳
nonceNumber随机数
signatureString

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

  1. 将参与签名的参数(secretIdtimestampnonce)用英文半角逗号 , 拼接,得到 SignString
  2. 使用您的私钥以 RSA-SHA256 算法对 SignString 签名,然后进行 Base64 编码,得到 signature 字符串。
  • 点击 数字证书 下载私钥。私钥有 rsapkcs8 两种格式,通常 Golang,Python 使用 rsa 格式私钥,Java 使用 pkcs8 格式私钥
  • 点击 签名及验证示例 查看签名示例
tasksArray<String>指定的任务 ID。通常单个应用(接口)下会配置多个识别任务,可根据业务需要指定其中的部分任务进行识别

Recording 参数说明

参数名称类型是否必填说明
urlString语音文件地址。

1. 支持的编码格式:AACAC-3ADPCMAMRDSDMP1MP2MP3PCM
2. 支持的容器格式:flvmkvmp5rmvbaviwmv3gptsmov
callbackUrlString识别结果回调接口地址,用于接收 POST 回调;未指定时忽略回调
callbackRuleString回调规则,主要影响审核场景的识别任务,如语音转译审核、低俗语音识别,默认为 violation

violation:仅回调违规片段的识别结果;
all:回调所有片段的识别结果
languageString语言代码,在进行多语种语音转译或审核时必填。多语种语音转译类产品请联系客户经理进行配置使用。对应语言代码详见:语音转译审核(多语种)语言代码列表
roomIdString房间 ID(指定时可在控制台根据此字段搜索识别结果)
userIdString用户 ID(指定时可在控制台根据此字段搜索识别结果)
forumIdString板块 ID(指定时可在控制台根据此字段搜索识别结果)
customInfoObject自定义信息,用于给请求附加额外信息(比如:关联的信息)

2.6 请求示例

{
"recording": {
"url": "<url>",
"callbackUrl": "<callback>",
"callbackRule": "all",
"roomId": "<roomId>",
"userId": "<userId>",
"forumId": "<forumId>"
},
"tasks": [
"<taskId>"
],
"timestamp": 1685000000,
"nonce": 1685000000,
"signature": "<signature>"
}

3. 同步响应

3.1 响应参数说明

参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0,\"message\":\"success\"}
  • 字段详见下述 json 参数说明;
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

json 参数说明

参数名称类型是否必有说明
codeNumber状态码,详见 业务状态码
messageString状态信息
resultResult任务提交结果,详见 Result 参数说明
nonceNumber随机数
timestampNumber当前服务器的 Unix 时间戳

Result 参数说明

参数名称类型是否必有说明
requestIdString任务唯一 ID,回调中携带该任务 ID。字符串长度 24~128
urlString提交的语音文件地址
callbackUrlString提交的识别结果回调接口地址
roomIdString提交的房间 ID
userIdString提交的用户 ID
forumIdString提交的板块 ID

3.2 响应示例

{
"result": {
"requestId": "<requestId>",
"url": "<url>",
"callbackUrl": "<callback>",
"roomId": "<roomId>",
"userId": "<userId>",
"forumId": "<forumId>"
},
"code": 0,
"message": "success",
"timestamp": 1685000000,
"nonce": 1685000000
}

4. 回调请求

4.1 请求地址

callbackUrl 参数指定的地址。

4.2 请求方法

POST

4.3 请求头

Content-Type: application/json

4.4 超时时间及异常处理

回调超时时间 5 秒,在 HTTP 响应状态码非 200 时进行重试,最多重试 3 次。

建议客户在处理回调时进行异步处理,响应回调时可以返回字符串或 JSON,示例如下:

// JSON
{
"message": "ok"
}

// 字符串
success

4.5 请求参数说明

参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0,\"message\":\"success\"}
  • 字段详见下述 json 参数说明;
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

json 参数说明

参数名称类型是否必有说明
codeNumber状态码,详见 业务状态码
requestIdString任务唯一 ID
speechInfoSpeechInfo语音文件信息,详见 SpeechInfo
roomIdString提交的房间 ID
userIdString提交的用户 ID
forumIdString提交的板块 ID
<任务 ID>Object识别任务结果,不同任务数据结构不同,详见 具体任务识别结果回调
SpeechInfo 参数说明
参数名称类型是否必有说明
durationNumber语音文件时长,单位:秒

4.6 请求示例

{
"code": 0,
"message": "success",
"requestId": "<requestId>",
"roomId": "<roomId>",
"userId": "<userId>",
"forumId": "<forumId>",
"speechInfo": {
"duration": 178.956
},
"5c8213b9bc807806aab0a574": {
"segments": [
{
"label": 0,
"review": false,
"speechUrl": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2023-05-31/15-7/ec3249c2c68c475da82acfa0e01da544/1685518035.6439307480301700542.wav",
"startTime": 0,
"endTime": 10
}
]
},
"5ca1bd6b3872ecc9afb99132": {
"segments": [
{
"content": "今天是二零一零年一月十九号星期二欢迎收看东方新闻我是小蕾我是袁名我们在上海的直播向各位问好",
"speechUrl": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2023-05-31/15-7/ec3249c2c68c475da82acfa0e01da544/1685518035.6439307480301700542.wav",
"startTime": 0,
"endTime": 10
}
],
"text": "今天是二零一零年一月十九号星期二欢迎收看东方新闻我是小蕾我是袁名我们在上海的直播向各位问好"
},
"5caee6b2a76925c55a09a6d2": {
"segments": [
{
"label": "Politics",
"rate": 0.9607035630154159,
"review": false,
"action": "block",
"content": "昨天下午举行传达学习,贯彻胡锦涛总书记,在上海考察时的重要讲话精神,中共中央政治局委员上海市委书记俞正声强调",
"hasVoice": true,
"speechUrl": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2023-05-31/15-7/ec3249c2c68c475da82acfa0e01da544/1685518035.7890524239124616494.wav",
"startTime": 20,
"endTime": 30,
"details": [
{
"keyword": "胡锦涛",
"hint": "胡锦涛",
"mainLabel": "Politics",
"subLabel": "Political_Negative_events"
}
]
}
],
"label": "Politics",
"review": false,
"rate": 0.9608212453978402,
"action": "block",
"text": "今天是二零一零年一月十九号星期二欢迎收看东方新闻我是小蕾我是袁名我们在上海的直播向各位问好。昨天下午举行传达学习,贯彻胡锦涛总书记,在上海考察时的重要讲话精神,中共中央政治局委员上海市委书记俞正声强调"
},
"5f59e4b71b29fa890e5472fb": {
"segments": [
{
"label": 1,
"review": false,
"speechUrl": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2023-05-31/15-7/ec3249c2c68c475da82acfa0e01da544/1685518035.6439307480301700542.wav",
"startTime": 0,
"endTime": 10,
"details": [
{
"label": 1,
"rate": 0.9999990463256836,
"startTime": 2.8,
"endTime": 10
}
]
}
]
},
"nonce": 1685000000,
"timestamp": 1685000000
}

4.7 具体任务识别结果回调