http接口
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/{project_id}/asr/short-audio
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目编号。获取方法,请参见获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限,响应消息头中X-Subject-Token的值即为Token。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
config |
是 |
Config object |
配置信息。 |
data |
是 |
String |
语音数据,Base64编码,要求Base64编码后大小不超过4M,音频时长不超过1分钟。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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) 压缩录音数据。目前仅支持单通道的音频。 |
property取值 |
描述 |
---|---|
chinese_8k_common |
支持采样率为8k的中文普通话语音识别。 |
chinese_16k_common |
支持采样率为16k的中文普通话语音识别。 |
chinese_16k_general |
支持采样率为16k的中文普通话语音识别,同时可识别一些简单的方言。 格式仅支持pcm16k16bit、mp3、wav,区域仅支持cn-north-4。 |
sichuan_16k_common |
支持采样率为16k的中文普通话与四川话方言识别。区域仅支持cn-north-4。 |
cantonese_16k_common |
支持采样率为16k的粤语方言识别。区域仅支持cn-north-4。 |
shanghai_16k_common |
支持采样率为16k的上海话方言识别,区域仅支持cn-north-4。 |
响应参数
状态码: 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 |
调用失败时的错误信息。 调用成功时无此字段。 |
请求示例
- 请求示例(伪码)
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":"***" }
状态码
状态码请参见状态码。
错误码
错误码请参见错误码。
