语音文件同步接口
1. 接口介绍
该接口对语音内容进行检测识别,并同步返回识别结果,适用于时长小于 60 秒的短音频。
提示
- 接口并发限制:默认每秒请求数不超过 50 次;
- 语音文件大小限制:默认不超过 1M,请联系我们调整并发及文件限制;
- 支持的编码格式:
AAC
、AC-3
、ADPCM
、AMR
、DSD
、MP1
、MP2
、MP3
、PCM
; - 支持的容器格式:
flv
、mkv
、mp5
、rmvb
、avi
、wav
、wmv
、3gp
、ts
、mov
。
1.1 接入指南
- 联系客户经理开通账号
- 同客户经理沟通详细需求与审核标准。根据您的需求,客户经理将为您开通对应的应用(SID)
- 访问控制台 - 数字证书 获取 API 鉴权所需的密钥
- 点击 签名及验证示例 查看签名示例,了解如何生成鉴权所需的签名
- 查阅下方的接口参数文档,了解如何构建请求以及如何解析响应数据
- 使用 示例资源 调用接口,进行调试和测试
- 查阅 审核场景汇总结果说明,了解如何通过汇总结果判断内容是否违规,以及如何解析汇总结果
- 添加异常处理逻辑,以处理可能出现的错误和异常情况,增强代码的健壮性和稳定性
如果在接入过程中遇到任何技术问题,请联系客户经理以获取帮助。
2. 请求
2.1 请求地址
- v3.1(推荐)
- v3
区域 | 请求地址 |
---|---|
国内 | https://api.speech.tuputech.com/v3.1/recognition/speech/<secretId> |
国外 | https://api-oversea.speech.tuputech.com/v3.1/recognition/speech/<secretId> |
区域 | 请求地址 |
---|---|
国内 | https://api.speech.tuputech.com/v3/recognition/speech/<secretId> |
国外 | https://api-oversea.speech.tuputech.com/v3/recognition/speech/<secretId> |
提示
<secretId>
需替换为您的应用 SID
,请联系客户经理为您开通及配置。关于 SID
详见 常见问题(FAQ)。
2.2 请求方法
POST
2.3 请求头
Content-Type: multipart/form-data 或 application/json
2.4 超时时间及异常处理
建议配置超时时间 60
秒,在 HTTP 响应状态码非 200
或业务状态码不为 0
时进行重试。
危险
由于模型基于请求流量动态伸缩,在空闲一定时间后会关闭(部分专用模型空闲一定时间后会关闭全部实例)。
由于模型冷启动耗时较长,部分请求可能无法处理,最终返回非 200
HTTP 状态码或业务状态码 101
。该现象可能在以下情况下出现:
- 初次请求
- 长时间未调用后再次请求
- 请求流量突增
- 请求存在规律性的流量波动(例如每隔超过 5 分钟请求一批数据,或仅在工作日期间有大量请求)
针对以上情况,我们分别建议您:
- 间隔 2~3 分钟后重试
- 间隔 2~3 分钟后重试,并且后续保持至少每分钟 1 次调用
- 提前进行预热,或及时联系我们扩容
- 调整业务请求时间间隔到 5 分钟内,或联系我们调整实例保持策略。若您的业务仅在工作日期间有大量请求,节假日期间较少,请务必联系我们
2.5 请求参数说明 🔥
- v3.1(推荐)
- v3
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
speech | String 或 File | 是 | 语音文件内容或文件链接。 1. 提交语音文件时,指定 ContentType: multipart/form-data ;2. 提交语音链接时,指定 ContentType: application/json ;3. 支持的编码格式: AAC 、AC-3 、ADPCM 、AMR 、DSD 、MP1 、MP2 、MP3 、PCM ;4. 支持的容器格式: flv 、mkv 、mp5 、rmvb 、avi 、wav 、wmv 、3gp 、ts 、mov ;5. 出于安全考虑,语音链接端口除 80 , 443 端口外,应在 1025-65535 范围内 6. 文件链接需支持断点续传及 HEAD 请求,推荐使用云服务商对象存储。请避免通过自建存储提供文件链接(可能因缺失前述特性导致文件无法正常拉取)或使用社交平台文件链接(可能访问受限) |
timestamp | Int | 是 | 当前服务器的 Unix 时间戳 |
nonce | Float | 是 | 随机数(建议使用 Unix 时间戳或若干位随机整数) |
signature | String | 是 |
|
language | String | 否 | 语言种类代码(预览),在进行多语种语音转译或审核时填写。支持的语言种类及代码列表详见:语言代码列表。 1. 如需使用多语种语音转译或审核,请联系客户经理进行配置; 2. 暂不支持语种自动识别 |
tasks | Array<String> | 否 | 指定的任务 ID。通常单个应用(接口)下会配置多个识别任务,可根据业务需要指定其中的部分任务进行识别 |
customInfo | Object<String, Any> | 否 | 自定义信息,用于给请求附加额外信息(比如:关联的信息)。 1. 请注意,该参数仅支持 JSON 请求 |
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
speech | String 或 File | 是 | 语音文件内容或文件链接。 1. 提交语音文件时,指定 ContentType: multipart/form-data ;2. 提交语音链接时,指定 ContentType: application/json ;3. 支持的编码格式: AAC 、AC-3 、ADPCM 、AMR 、DSD 、MP1 、MP2 、MP3 、PCM ;4. 支持的容器格式: flv 、mkv 、mp5 、rmvb 、avi 、wav 、wmv 、3gp 、ts 、mov ;5. 出于安全考虑,语音链接端口除 80 , 443 端口外,应在 1025-65535 范围内 6. 文件链接需支持断点续传及 HEAD 请求,推荐使用云服务商对象存储。请避免通过自建存储提供文件链接(可能因缺失前述特性导致文件无法正常拉取)或使用社交平台文件链接(可能访问受限) |
timestamp | Int | 是 | 当前服务器的 Unix 时间戳 |
nonce | Float | 是 | 随机数(建议使用 Unix 时间戳或若干位随机整数) |
signature | String | 是 |
|
task | Array<String> | 否 | 指定的任务 ID。通常单个应用(接口)下会配置多个识别任务,可根据业务需要指定其中的部分任务进行识别 |
language | String | 否 | 语言种类代码(预览),在进行多语种语音转译或审核时填写。支持的语言种类及代码列表详见:语言代码列表。 1. 如需使用多语种语音转译或审核,请联系客户经理进行配置; 2. 暂不支持语种自动识别 |
customInfo | Object<String, Any> | 否 | 自定义信息,用于给请求附加额外信息(比如:关联的信息) |
2.6 请求示例
- v3.1(推荐)
- v3
{
"speech": "<url>",
"tasks": [
"<taskId>"
],
"customInfo": {
"userId": "<userId>",
"forumId": "<forumId>"
},
"nonce": 1685000000,
"timestamp": 1685000000,
"signature": "<signature>"
}
{
"speech": "<url>",
"task": [
"<taskId>"
],
"customInfo": {
"userId": "<userId>",
"forumId": "<forumId>"
},
"nonce": 1685000000,
"timestamp": 1685000000,
"signature": "<signature>"
}
3. 同步响应
3.1 响应参数说明 🔥🔥
参数名称 | 类型 | 说明 |
---|---|---|
signature | String | 同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥
进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:
|
json | String | 同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。
|
JSON 参数说明
- v3.1(推荐)
- v3
参数名称 | 类型 | 是否必有 | 说明 |
---|---|---|---|
code | Int | 是 | 状态码,详见 业务状态码 |
message | String | 是 | 状态信息 |
requestId | String | 是 | 请求 ID |
suggestion | Int | 是 | 汇总结果,语音整体的通过/拒绝情况,详见 审核场景汇总结果说明 |
riskType | Int | 是 | 汇总结果,语音整体的风险类型,详见 审核场景汇总结果说明 |
<任务 ID> | Object | 是 | 识别任务的结果,每个识别任务会有 全局固定不变 的 taskId 和对应数据结构,详见下述链接:1. 图片类任务结果 2. 文本类任务结果 3. 语音类任务结果 |
customInfo | Object | 否 | 自定义信息,请求的附加额外信息 |
nonce | Float | 是 | 随机数(建议使用 Unix 时间戳或若干位随机整数) |
timestamp | Int | 是 | 当前服务器的 Unix 时间戳 |
3.2 响应示例
- v3.1(推荐)
- v3
{
"code": 0,
"message": "success",
"nonce": 1685000000,
"timestamp": 1685000000,
"suggestion": 1,
"riskType": 4,
"5ca1bd6b3872ecc9afb99132": {
"segments": [
{
"tag": "38bde37a271a4d28a0ee7df58e48022a-0",
"content": "今天是二零一零年一月十九号星期二欢迎收看东方新闻我是小蕾我是名我们在上海的直播向各位问号今天中国二零一年上海世博会开幕还有一百零二天在快速浏览了今天的主要新闻之后我们来看详细报道",
"speechUrl": "https://static.tuputech.com/api/image/original/cloud-api/storage-0831/2023-12-25/15-7/38bde37a271a4d28a0ee7df58e48022a/1703487976.7751210988855430687.wav",
"startTime": 0,
"endTime": 30
}
],
"text": "今天是二零一零年一月十九号星期二欢迎收看东方新闻我是小蕾我是名我们在上海的直播向各位问号今天中国二零一年上海世博会开幕还有一百零二天在快速浏览了今天的主要新闻之后我们来看详细报道"
},
"customInfo": {
"userId": "<userId>",
"forumId": "<forumId>"
}
}
{
"code": 0,
"message": "success",
"nonce": 1685000000,
"timestamp": 1685000000,
"5caee6b2a76925c55a09a6d2": {
"fileList": [
{
"file_name": "<url>",
"result": {
"content": "不要说这种话,今天聊了。",
"action": "pass",
"label": "Normal",
"review": false,
"rate": 1,
"startTime": 0,
"hasVoice": true,
"details": []
}
}
]
},
"5f59e4b71b29fa890e5472fb": {
"speeches": [
{
"name": "<url>",
"label": 0,
"review": false,
"rate": 0.9999165534973145,
"details": [
{
"startTime": 5.4,
"endTime": 10,
"label": 0,
"rate": 0.9999165534973145
}
]
}
]
},
"5c8213b9bc807806aab0a574": {
"speechs": [
{
"name": "<url>",
"label": 0,
"review": false,
"details": []
}
]
},
"customInfo": {
"userId": "<userId>",
"forumId": "<forumId>"
}
}
3.3 具体任务返回结果
4. 更新日志
日期 | 说明 |
---|---|
2025-01-03 | 新增接入指南 |