http接口
功能介绍
一句话识别接口,用于短语音的同步识别。一次性上传1min以内音频,能快速返回识别结果。该接口的使用限制请参见约束与限制,详细使用指导请参见SIS服务使用简介章节。
SIS服务控制台提供了一句话识别的在线使用页面,用户无需编程即可使用服务功能。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v1/{project_id}/asr/short-audio
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目编号。获取方法,请参见获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 用于获取操作API的权限。获取方法请参见认证鉴权。响应消息头中X-Subject-Token的值即为Token。 |
Enterprise-Project-Id |
否 |
String |
企业项目ID。SIS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。 获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。
企业项目创建步骤请参见用户指南。
说明:
账户创建企业项目后,在传参时,有以下三类场景。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
config |
是 |
Config object |
配置信息。 |
data |
是 |
String |
语音数据,Base64编码,要求Base64编码后大小不超过4M,音频时长不超过1分钟。Base64编码示例如/+MgxAAUeHpMAUkQAANhuRAC...,如果携带data:audio/mp3;base64,类前缀,会产生报错。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
audio_format |
是 |
String |
支持语音的格式,请参考表 audio_format取值范围。 |
property |
是 |
String |
所使用的模型特征串,通常是 “语种_采样率_领域”的形式,采样率需要与音频采样率保持一致,取值范围请参考表 property取值范围。 |
add_punc |
否 |
String |
表示是否在识别结果中添加标点,取值为“yes”和“no”,默认为“no”。 |
digit_norm |
否 |
String |
表示是否将语音中的数字识别为阿拉伯数字,取值为“yes” 和 “no”,默认为“yes”。 |
vocabulary_id |
否 |
String |
热词表id,不使用则不填写。创建热词表信息请参考创建热词表。 |
need_word_info |
否 |
String |
表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。 |
audio_format取值 |
描述 |
---|---|
pcm16k16bit |
16k16bit单通道录音数据。 |
pcm8k16bit |
8k16bit单通道录音数据。 |
ulaw16k8bit |
16k8bit ulaw单通道录音数据。 |
ulaw8k8bit |
8k8bit ulaw单通道录音数据。 |
alaw16k8bit |
16k8bit alaw单通道录音数据。 |
alaw8k8bit |
8k8bit alaw单通道录音数据。 |
mp3 |
mp3格式音频。目前仅支持单通道的音频。 |
aac |
aac格式音频。目前仅支持单通道的音频。 |
wav |
带wav封装头的格式,从封装头中自动确定格式,目前仅支持8k/16k采样率、单通道、pcm, alaw, ulaw三种编码格式。 |
amr |
AMR窄带(8k) 压缩录音数据。目前仅支持单通道的音频。 |
amrwb |
AMR 宽带(16k) 压缩录音数据。目前仅支持单通道的音频。 |
auto |
由引擎自动判断音频数据的格式并解码,支持自动判断amr,flac,m4a,mp3,ogg,webm,wav,aac,ac3,mov,wma、amrwb格式。 |
property取值 |
描述 |
---|---|
chinese_16k_general |
支持采样率为16k的中文普通话语音识别,采用新一代端到端识别算法,识别准确率更高。 区域支持cn-east-3和cn-north-4(强烈推荐使用)。 |
chinese_16k_travel |
支持采样率为16k的中文普通话语音识别,采用新一代端到端识别算法,并针对网约车质检场景进行了优化。 区域支持cn-east-3和cn-north-4(强烈推荐使用)。 |
sichuan_16k_common |
支持采样率为8k/16k的中文普通话与四川话方言识别。区域仅支持cn-north-4,暂不支持digit_norm,vocabulary_id参数。 |
cantonese_16k_common |
支持采样率为8k/16k的粤语方言识别。区域仅支持cn-north-4,暂不支持digit_norm,vocabulary_id参数。 |
shanghai_16k_common |
支持采样率为8k/16k的上海话方言识别,区域仅支持cn-north-4,暂不支持digit_norm,vocabulary_id参数。 |
chinese_8k_common |
支持采样率为8k的中文普通话语音识别。 |
chinese_16k_common |
支持采样率为16k的中文普通话语音识别。 |
english_16k_common |
支持采样率为16k的英文语音识别,区域仅支持cn-east-3。格式仅支持wav,暂不支持add_punc, digit_norm,vocabulary_id,need_word_info参数。 |
english_8k_common |
支持采样率为8k的英文语音识别,区域仅支持cn-east-3。格式仅支持wav,暂不支持add_punc, digit_norm,vocabulary_id,need_word_info参数。 |
响应参数
状态码: 200
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
trace_id |
是 |
String |
服务内部的令牌,可用于在日志中追溯具体流程,调用失败无此字段。 在某些错误情况下可能没有此令牌字符串。 |
result |
是 |
Result object |
调用成功表示识别结果,调用失败时无此字段。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
text |
是 |
String |
调用成功表示识别出的内容。 |
score |
是 |
Float |
调用成功表示识别出的置信度,取值范围:0~1。 |
word_info |
否 |
Array of WordInfo objects |
分词信息列表。 分词是指将识别出的文本进一步拆分成单独的词语。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
调用失败时的错误码。 调用成功时无此字段。 |
error_msg |
String |
调用失败时的错误信息。 调用成功时无此字段。 |
请求示例
“endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点。
- 上传短音频,快速返回识别结果
POST https://{endpoint}/v1/{project_id}/asr/short-audio Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request body: { "config": { "audio_format": "wav", "property": "chinese_8k_common", "add_punc": "yes", "need_word_info": "yes" }, "data": "/+MgxAAUeHpMAUkQAANhuRAC..." }
- 使用Python3语言上传短音频,快速返回识别结果
# -*- coding: utf-8 -*- # 此demo仅供测试使用,强烈建议使用sdk。需提前安装requests,执行pip install requests import requests import base64 import json def sasr_demo(): url = 'https://{{endpoint}}/v1/{{project_id}}/asr/short-audio' # endpoint和project_id需替换 token = '用户对应region的token' file_path = '将要识别音频的路径' with open(file_path, 'rb') as f: data = f.read() base64_data = str(base64.b64encode(data), 'utf-8') header = { 'Content-Type': 'application/json', 'X-Auth-Token': token } body = { 'data': base64_data, 'config': { 'property': 'chinese_8k_common', 'audio_format': 'pcm8k16bit' } } resp = requests.post(url, data=json.dumps(body), headers=header) print(resp.text) if __name__ == '__main__': sasr_demo()
- 使用Java语言上传短音频,快速返回识别结果
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; /** * 此demo仅供测试使用,强烈建议使用SDK */ public class SasrDemo { public void sasrDemo() { try { // endpoint和projectId需要替换成实际信息。 URL url = new URL("https://{{endpoint}}/v1/{{project_id}}/asr/short-audio"); String token = "对应region的token"; String audioBody = "8k wav格式audio对应base64编码"; HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod("POST"); connection.setDoInput(true); connection.setDoOutput(true); connection.addRequestProperty("Content-Type", "application/json"); connection.addRequestProperty("X-Auth-Token", token); OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); String body = "{\"data\":\"" + audioBody + "\", \"config\": { \"audio_format\": \"wav\", " + "\"property\":\"chinese_8k_common\"}}"; osw.append(body); osw.flush(); InputStream is = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); while (br.ready()) { System.out.println(br.readLine()); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { SasrDemo sasrDemo = new SasrDemo(); sasrDemo.sasrDemo(); } }
响应示例
状态码:200
成功响应示例
{ "trace_id": "567e8537-a89c-13c3-a882-826321939651", "result":{ "text": "欢迎使用语音云服务。", "score": 0.9, "word_info": [ { "start_time": 150, "end_time": 570, "word": "欢迎" }, { "start_time": 570, "end_time": 990, "word": "使用" }, { "start_time": 990, "end_time": 1380, "word": "语音" }, { "start_time": 1380, "end_time": 1590, "word": "云" }, { "start_time": 1590, "end_time": 2070, "word": "服务" } ] } }
状态码:400
失败响应示例
{ "error_code":"SIS.0001", "error_msg":"***" }
状态码
状态码请参见状态码。
错误码
错误码请参见错误码。