云服务器内容精选
-
响应示例 状态码: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":"***" }
-
响应参数 状态码: 200 表7 响应Body参数 参数 是否必选 参数类型 描述 trace_id 是 String 服务内部的令牌,可用于在日志中追溯具体流程,调用失败无此字段。 在某些错误情况下可能没有此令牌字符串。 result 是 Result object 调用成功表示识别结果,调用失败时无此字段。 表8 Result 参数 是否必选 参数类型 描述 text 是 String 调用成功表示识别出的内容。 score 是 Float 调用成功表示识别出的置信度,取值范围:0~1。 word_info 否 Array of WordInfo objects 分词信息列表。 分词是指将识别出的文本进一步拆分成单独的词语。 表9 WordInfo 参数 是否必选 参数类型 描述 start_time 否 Integer 起始时间。 end_time 否 Integer 结束时间。 word 否 String 分词。 状态码: 400 表10 响应Body参数 参数 参数类型 描述 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(); } }
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 用于获取操作API的权限。获取方法请参见认证鉴权。响应消息头中X-Subject-Token的值即为Token。 Enterprise-Project-Id 否 String 企业项目ID。SIS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。 获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。 企业项目创建步骤请参见用户指南。 说明: 账户创建企业项目后,在传参时,有以下三类场景。 携带正确的ID,正常使用SIS服务,账单归到企业ID对应的企业项目中。 携带错误的ID,正常使用SIS服务,账单的企业项目会被分类为“default”。 不携带ID,正常使用SIS服务,账单的企业项目会被分类为“default”。 表3 请求Body参数 参数 是否必选 参数类型 描述 config 是 Config object 配置信息。 data 是 String 语音数据,Base64编码,要求Base64编码后大小不超过4M,音频时长不超过1分钟。Base64编码示例如/+MgxAAUeHpMAUkQAANhuRAC...,如果携带data:audio/mp3;base64,类前缀,会产生报错。 表4 Config 参数 是否必选 参数类型 描述 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”。 表5 audio_format取值范围 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格式。 表6 property取值范围 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参数。
-
代码示例 import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; /** * 此demo仅供测试使用,强烈建议使用SDK * 使用前需已配置okhttp、okio jar包。jar包可通过下载SDK获取。 */ public class SasrWebsocketDemo { public void sasrWebsocketDemo() { try { // endpoint和projectId需要替换成实际信息。 String url = "wss://{{endpoint}}/v1/{{project_id}}/asr/short-audio"; String token = "对应region的token"; byte[] data = null; // 存放将要发送音频的byte数组 OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder().url(url).header("X-Auth-Token", token).build(); WebSocket webSocket = okHttpClient.newWebSocket(request, new MyListener()); webSocket.send("{\"command\": \"START\", \"config\": {\"audio_format\": \"pcm8k16bit\", \"property\": \"chinese_8k_common\"}}"); webSocket.send(ByteString.of(data)); // audio太大注意要分片发送,否则会报错。建议分片大小3200 webSocket.send("{ \"command\": \"END\"}"); Thread.sleep(10000); webSocket.close(1000, null); } catch (Exception e) { e.printStackTrace(); } } class MyListener extends WebSocketListener { @Override public void onOpen(WebSocket webSocket, Response response) { System.out.println("conneected"); } @Override public void onClosed(WebSocket webSocket, int code, String reason) { System.out.println("closed"); } @Override public void onFailure(WebSocket webSocket, Throwable t, Response response) { t.printStackTrace(); } @Override public void onMessage(WebSocket webSocket, String text) { System.out.println(text); } } public static void main(String[] args) { SasrWebsocketDemo sasrWebsocketDemo = new SasrWebsocketDemo(); sasrWebsocketDemo.sasrWebsocketDemo(); } }
-
结束识别 功能介绍 对于识别中的对话,需要在Websocket上发送“结束识别”的请求来取消或结束识别。 "结束识别"请求使用文本类型的数据帧(text message)发送,命令和参数以json字符串的形式提供。 请求消息 表7 参数说明 参数名 是否必选 参数类型 说明 command 是 String 表示客户端结束识别请求,参数值设置为END。 示例 { "command": "END" } 状态码 状态码请参见状态码。 错误码 错误码请参见错误码。
-
响应结果 开始识别响应 由于WebSocket是全双工的,因此响应就是从服务器端发送给客户端的消息,但也并不是所有的请求信息都有一条对应的响应。服务器端收到“开始识别”请求时,会给出如下响应消息,以json字符串形式放置在text message中。 表8 响应参数 参数名 参数类型 说明 resp_type String 响应类型。参数值为START,表示开始识别响应。 trace_id String 服务内部的令牌,可用于在日志中追溯具体流程。 示例 { "resp_type": "START", "trace_id": "567e8537-a89c-13c3-a882-826321939651" } 事件响应 服务器端检测到某些事件时,会给出如下响应消息,以json字符串形式放置在text message中。 表9 响应参数 参数名 参数类型 说明 resp_type String 响应类型。参数值为EVENT,表示开始识别响应。 trace_id String 服务内部的令牌,可用于在日志中追溯具体流程。 event String 具体的事件, 一句话识别 中仅会出现"EXCEEDED_AUDIO”,当输入音频超过1min时,会返回该事件。 timestamp Integer 保留字段。将来会用于此事件发生的具体时间,以会话开始作为0点,单位为ms。 示例 { "resp_type": "EVENT", "trace_id": "567e8537-a89c-13c3-a882-826321939651", "event": "EXCEEDED_AUDIO", "timestamp": 1500 } 结果响应 服务端在收到客户端发送的连续音频数据后, 当服务端识别出结果后会实时向客户端按句推送识别结果响应消息, 以json字符串形式放置在text message中。 表10 响应参数 参数名 参数类型 说明 resp_type String 响应类型。参数值为RESULT,表示识别结果响应。 trace_id String 服务内部的令牌,可用于在日志中追溯具体流程。 segments Array of objects 多句结果。 请参考表 segment 数据结构。 表11 segment 数据结构 参数名 参数类型 说明 start_time Integer 一句的起始时间戳,单位为ms。 end_time Integer 一句的结束时间戳,单位为ms。 is_final Boolen true表示是最终结果, false表示为中间临时结果。 result Object 调用成功表示识别结果,调用失败时无此字段。 请参考表 result数据结构。 表12 result数据结构 参数名 参数类型 说明 text String 识别结果。 score Float 识别结果的置信度,取值范围:0~1。此值仅会在最终结果时被赋值,在中间结果时统一置为“0.0”。 说明: 目前置信度作用不是太大,请勿过多依赖此值。 word_info Array of Object 分词输出列表。 表13 word_info 数据结构 参数名 是否必选 参数类型 说明 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词 示例 { "resp_type": "RESULT", "trace_id": "567e8537-a89c-13c3-a882-826321939651", "segments": [ { "start_time": 100, "end_time": 1500, "is_final": false, "result": { "text": "第一句中间结果", "word_info": [ { "start_time": 100, "end_time": 800, "word": "第一" }, { "start_time": 800, "end_time": 1000, "word": "句" }, { "start_time": 1000, "end_time": 1500, "word": "结果" } ], "score": 0.0 }, }, ] } 错误响应 错误响应,包括如下情况: 配置串错误,包括存在不识别的配置串,或者配置串值的范围不合法。 时序不正确,比如连续发送两次“开始识别”指令。 识别过程中发生错误,比如音频解码发生错误。 表14 响应参数 参数名 参数类型 说明 resp_type String 参数值为ERROR,表示错误响应。 trace_id String 服务内部的跟踪令牌,可用于在日志中追溯具体流程。 在某些错误情况下,可能没有此字段。 error_code String 错误码列表。详细错误码解释,请参见错误码。 error_msg String 返回错误信息。 示例 { "resp_type": "ERROR", "trace_id": "567e8537-a89c-13c3-a882-826321939651", "error_code": "SIS.0002", "error_msg": "***" } 结束识别响应 服务器端收到“结束识别”请求时或语音识别过程中发生错误,服务端会向客户端推送如下响应消息,以json字符串形式放置在text message中。 表15 响应参数 参数名 参数类型 说明 resp_type String 参数值为END,表示结束识别响应。 trace_id String 服务内部的令牌,可用于在日志中追溯具体流程。 reason String 结束原因,详情请参见表 结束原因表。 表16 结束原因表 参数名 说明 NORMAL 正常结束。 ERROR 识别过程中发生错误。 示例 { "resp_type": "END", "trace_id": "567e8537-a89c-13c3-a882-826321939651", "reason": "NORMAL", }
-
wss-URI wss-URI格式 wss /v1/{project_id}/asr/short-audio 参数说明 表1 参数说明 参数名 是否必选 说明 project_id 是 项目编号。获取方法,请参见获取项目ID。 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 用于获取操作API的权限。获取方法请参见认证鉴权。响应消息头中X-Subject-Token的值即为Token。 Enterprise-Project-Id 否 String 企业项目ID。SIS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。 获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。 企业项目创建步骤请参见用户指南。 说明: 账户创建企业项目后,在传参时,有以下三类场景。 携带正确的ID,正常使用SIS服务,账单归到企业ID对应的企业项目中。 携带错误的ID,正常使用SIS服务,账单的企业项目会被分类为“default”。 不携带ID,正常使用SIS服务,账单的企业项目会被分类为“default”。
-
开始识别 功能介绍 当wss握手请求收到成功响应后,客户端到服务端的通信协议会升级为Websocket协议。通过Websocket协议,客户端发送开始识别请求,用于配置一句话识别的配置信息。 请求消息 表3 参数说明 参数名 是否必选 参数类型 说明 command 是 String 表示客户端发送开始识别请求,参数值需设置为START。 config 是 Object 配置信息。结构信息请参见表 config数据结构。 表4 config数据结构 参数 是否必选 参数类型 说明 audio_format 是 String 支持语音的格式,请参见表 audio_format取值范围。 property 是 String 所使用的模型特征串。通常是 “语种_采样率_领域”的形式,例如chinese_8k_common。请参见表 property取值范围。 add_punc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digit_norm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。识别结束后,会将数字识别为阿拉伯数字。 interim_results 否 String 是否输出中间结果,可以为yes或no。默认为no,表示不输出中间结果。 vocabulary_id 否 String 热词表id,不使用热词则不填写。 创建热词表信息请参考创建热词表。 need_word_info 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。 表5 property取值范围 property取值 说明 chinese_8k_general 支持采样率为8k的中文普通话语音识别,采用新一代端到端识别算法,识别准确率更高。 格式支持pcm8k16bit/alaw8k8bit/ulaw8k8bit,区域支持cn-east-3和cn-north-4(强烈推荐使用)。 chinese_16k_general 支持采样率为16k的中文普通话语音识别,采用新一代端到端识别算法,识别准确率更高。 格式支持pcm16k16bit/alaw16k8bit/ulaw16k8bit,区域支持cn-east-3和cn-north-4(强烈推荐使用)。 chinese_8k_common 支持采样率为8k的中文普通话语音识别。 chinese_16k_common 支持采样率为16k的中文普通话语音识别。 sichuan_16k_common 支持采样率为16k的中文普通话与四川话方言语音识别。区域仅支持cn-north-4。max_seconds参数最短时长为10s,当设置低于10s,默认按照10s处理。 cantonese_16k_common 支持采样率为16k的粤语方言语音识别。区域仅支持cn-north-4。max_seconds参数最短时长为10s,当设置低于10s,默认按照10s处理。 shanghai_16k_common 支持采样率为16k的上海话方言语音识别。区域仅支持cn-north-4。max_seconds参数最短时长为10s,当设置低于10s,默认按照10s处理。 表6 audio_format取值范围 audio_format取值 说明 pcm16k16bit 16k16bit单通道录音数据。 pcm8k16bit 8k16bit单通道录音数据。 ulaw16k8bit 16k8bit ulaw单通道录音数据。 ulaw8k8bit 8k8bit ulaw单通道录音数据。 alaw16k8bit 16k8bit alaw单通道录音数据。 alaw8k8bit 8k8bit alaw单通道录音数据。 目前仅支持裸音频格式,仅支持pcm编码的wav格式,不支其他wav头或者arm格式的编码。 示例 { "command": "START", "config": { "audio_format": "pcm8k16bit", "property": "chinese_8k_common", "add_punc": "yes", "interim_results": "yes", "need_word_info": "yes" } } 状态码 状态码请参见状态码。 错误码 错误码请参见错误码。
-
功能介绍 一句话识别websocket接口支持识别1min以内的音频,交互过程如图 客户端和服务端交互流程所示,主要分为开始识别、发送音频数据,结束识别、断开连接四个步骤。 websocket接口同http接口一致按次计费,只要建立连接成功,发送音频,服务开始识别,则本次调用计费生效。如果用户发送错误end请求或者持续20s未发送音频而产生了报错,该次调用依然认为生效。如果连接成功后未发送音频直接断开,或者请求字段不正确而产生异常,则认为本次调用无效,不会纳入计费次数。 图1 客户端和服务端交互流程
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格