百度语音识别REST API——通过使用Http网络请求方式获得语音识别功能
2014-06-19 13:59
686 查看
百度语音识别通过REST API的方式给开发者提供一个通用的HTTP接口,基于该接口,开发者可以轻松的获取语音识别能力,本文档描述了使用语音识别服务REST API的方法。
优点:
较之开发者常用的获取语音识别功能的方法,本方法最大的优势是轻量级,不需要在所开发的应用中集成任何SDK开发工具包,也不需要在测试机中添加任何识别引擎软件,开发者只要了解Http网络请求以及百度语音识别 REST API的使用规则,即可轻轻松松在自己的应用中使用语音识别相关的功能了。
功能介绍:
REST API支持整段录音文件的识别,对录音格式有一定的要求,支持语音识别控件:集成提示音、音量反馈动效整套交互的对话框控件,方便开发者快速集成;
原始PCM的录音参数必须符合8k/16k采样率、16bit位深、单声道,支持的压缩格式有:pcm(不压缩)、wav、opus、speex、amr、x-flac。
使用方法:
注册开放平台及创新应用
注册方法可参见之前写的百度语音识别开放平台SDK使用方法一文,其中有详细的注册方法叙述。
从管理控制台进入创建的应用,如下图所示,API Key(client_id)和Secret Key(client_secret)即显示于其中, ID即为应用id(appid)。
根据百度OAuth的Client Credentials授权方式获取access_token。百度OAuth的Client Credentials和其他授权方式的说明见百度OAuth介绍的“百度支持的OAuth授权”部分。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/d6eea972b4f06ba5f8858315842866f7)
其中,grant_type的值固定为client_credentials,client_id即为(3)中截图所示的 API Key的值,client_secret即为截图所示的Secret Key的值。更为详细的介绍请参见Client Credentials授权说明。
响应如下所示,其中access_token字段即为请求REST API所需的令牌, access_token有效期一般为一个月,开发者需要对access_token,进行有效性判断,过期需重新申请access_token。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/a5d3bc4182805fd4ae9339cf6828ce7e)
API请求方式
语音识别接口支持POST 方式
目前API仅支持整段语音识别的模式,即需要上传整段语音进行识别
语音数据上传方式有两种:隐示发送和显示发送
原始语音的录音格式目前只支持评测8k/16k采样率16bit位深的单声道语音
压缩格式支持:pcm(不压缩)、wav、opus、speex、amr、x-flac
系统支持语言种类:中文(zh)、粤语(ct)、英文(en)
正式地址:http://vop.baidu.com/server_api
语音上传模型
语音数据和其他参数通过标准JSON格式串行化POST上传, JSON里包括的参数:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/a2bac5c8dd54075589d7bb799986d1b0)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/e8311a3601631f11b65ac2ee97a50d5d)
其中,开发者可以把语音数据放在JSON序列的“speech”字段中,需要将语音先进行base64编码,并标明语音数据的原始长度,填写“len”字段;也可以直接提供语音下载地址放在“url”字段中,并且提供识别结果的回调地址,放在“callback”参数中。因此“speech”和“len”参数绑定,“url”和“callback”参数绑定,这张组参数二选一填写,如果都填,默认处理第一种。
表单类型在HTTP-HEADER里的content-type表明,例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/52ac3fe45a445dfb85b48f5edca8cec3)
Content-length请填写JSON串的长度。
上传实例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/b2dad65c791a17197f144e9f30678c8d)
注意事项:
1, len字段表示原始语音长度,不是base64编码之后的长度。
2, speech和len字段绑定验证,url和callback绑定验证,两组参数二选一必填,如果都填,默认第一种方式。
3, 如果采用base64编码语音数据,数据量会增大1/3。
显示发送:
语音数据直接放在HTTP-BODY中,控制参数以及相关统计信息通过REST参数传递,REST参数说明:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/bff60e48d13cbf7541415d17494538b2)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/d889f8aef17fa1911a842c3d744edbba)
语音数据的采样率和压缩格式在HTTP-HEADER里的content-type表明,例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/38557753883eca55a6c06ef48b650767)
Content-length请填写原始语音长度。
URL示例:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/4e79323e807f15e869f59879774b0abd)
下行接口定义
两种上传方式都返回统一的结果,采用 JSON格式封装,如果识别成功,识别结果放在JSON的“result”字段中,统一采用utf-8方式编码。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201406/975a00e16aba8809b84a874dadaf759a)
识别成功返回case:
{\"err_no\":0,\"err_msg\":\"success.\",\"corpus_no\":\"15984125203285346378\",\"sn\":\"481D633F-73BA-726F-49EF-8659ACCC2F3D\",\"result\":[\"\\u6211\\u633a\\u5e05\\u554a\\uff0c\\u5e05\\u54e5\\uff0c\"]}
识别错误返回case:
{"err_no":2000,"err_msg":"data empty.","sn":null}
错误码解释
33xx:系统内部模块交互错误,服务此时可能不太稳定。
34xx:参数错误,请检查上行参数。
30xx-32xx:后端错误,后端资源可能出现错误
由于篇幅所限,具体使用方法在下篇文章介绍。
优点:
较之开发者常用的获取语音识别功能的方法,本方法最大的优势是轻量级,不需要在所开发的应用中集成任何SDK开发工具包,也不需要在测试机中添加任何识别引擎软件,开发者只要了解Http网络请求以及百度语音识别 REST API的使用规则,即可轻轻松松在自己的应用中使用语音识别相关的功能了。
功能介绍:
REST API支持整段录音文件的识别,对录音格式有一定的要求,支持语音识别控件:集成提示音、音量反馈动效整套交互的对话框控件,方便开发者快速集成;
原始PCM的录音参数必须符合8k/16k采样率、16bit位深、单声道,支持的压缩格式有:pcm(不压缩)、wav、opus、speex、amr、x-flac。
使用方法:
注册开放平台及创新应用
注册方法可参见之前写的百度语音识别开放平台SDK使用方法一文,其中有详细的注册方法叙述。
从管理控制台进入创建的应用,如下图所示,API Key(client_id)和Secret Key(client_secret)即显示于其中, ID即为应用id(appid)。
根据百度OAuth的Client Credentials授权方式获取access_token。百度OAuth的Client Credentials和其他授权方式的说明见百度OAuth介绍的“百度支持的OAuth授权”部分。
其中,grant_type的值固定为client_credentials,client_id即为(3)中截图所示的 API Key的值,client_secret即为截图所示的Secret Key的值。更为详细的介绍请参见Client Credentials授权说明。
响应如下所示,其中access_token字段即为请求REST API所需的令牌, access_token有效期一般为一个月,开发者需要对access_token,进行有效性判断,过期需重新申请access_token。
API请求方式
语音识别接口支持POST 方式
目前API仅支持整段语音识别的模式,即需要上传整段语音进行识别
语音数据上传方式有两种:隐示发送和显示发送
原始语音的录音格式目前只支持评测8k/16k采样率16bit位深的单声道语音
压缩格式支持:pcm(不压缩)、wav、opus、speex、amr、x-flac
系统支持语言种类:中文(zh)、粤语(ct)、英文(en)
正式地址:http://vop.baidu.com/server_api
语音上传模型
语音数据和其他参数通过标准JSON格式串行化POST上传, JSON里包括的参数:
其中,开发者可以把语音数据放在JSON序列的“speech”字段中,需要将语音先进行base64编码,并标明语音数据的原始长度,填写“len”字段;也可以直接提供语音下载地址放在“url”字段中,并且提供识别结果的回调地址,放在“callback”参数中。因此“speech”和“len”参数绑定,“url”和“callback”参数绑定,这张组参数二选一填写,如果都填,默认处理第一种。
表单类型在HTTP-HEADER里的content-type表明,例:
Content-length请填写JSON串的长度。
上传实例:
注意事项:
1, len字段表示原始语音长度,不是base64编码之后的长度。
2, speech和len字段绑定验证,url和callback绑定验证,两组参数二选一必填,如果都填,默认第一种方式。
3, 如果采用base64编码语音数据,数据量会增大1/3。
显示发送:
语音数据直接放在HTTP-BODY中,控制参数以及相关统计信息通过REST参数传递,REST参数说明:
语音数据的采样率和压缩格式在HTTP-HEADER里的content-type表明,例:
Content-length请填写原始语音长度。
URL示例:
下行接口定义
两种上传方式都返回统一的结果,采用 JSON格式封装,如果识别成功,识别结果放在JSON的“result”字段中,统一采用utf-8方式编码。
识别成功返回case:
{\"err_no\":0,\"err_msg\":\"success.\",\"corpus_no\":\"15984125203285346378\",\"sn\":\"481D633F-73BA-726F-49EF-8659ACCC2F3D\",\"result\":[\"\\u6211\\u633a\\u5e05\\u554a\\uff0c\\u5e05\\u54e5\\uff0c\"]}
识别错误返回case:
{"err_no":2000,"err_msg":"data empty.","sn":null}
错误码解释
33xx:系统内部模块交互错误,服务此时可能不太稳定。
34xx:参数错误,请检查上行参数。
30xx-32xx:后端错误,后端资源可能出现错误
由于篇幅所限,具体使用方法在下篇文章介绍。
相关文章推荐
- 百度语音识别REST API——通过使用Http网络请求方式获得语音识别功能
- U3D C# 中文语音识别功能 之 Hololens篇----百度语音识别REST API
- Qt:使用百度语音识别REST API,做全平台语音识别
- 使用百度语音识别REST API,做全平台语音识别
- Android中使用Volley开源库进行Http网络请求(GET方式)
- 使用HttpURLConnection通过POST方式提交请求数据,并上传文件
- Swift - 使用SwiftHTTP通过HTTPS进行网络请求,及证书的使用
- Android中使用Volley开源库进行Http网络请求(POST方式)
- Android 使用android-async-http网络请求框架出现Header[]不识别错误的解决办法
- 【Android】【嘿!Java】Android工程、Java工程中通过HttpClient请求网络数据的不同方式
- 百度语音识别REST API使用方法(含C++代码)——不需要集成SDK的方法
- Android 网络请求方式之HttpClient,GET,POST,PUT请求使用方法
- 使用Java创建rest 服务 通过HTTP请求访问资源
- Android开发笔记-使用Volley开源库进行Http网络请求(POST方式)
- 【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目
- Python 百度语音识别与合成REST API及ffmpeg使用
- 【已解决】使用android-async-http网络请求框架出现Header[]不识别错误的解决办法
- Android中使用Volley开源库进行Http网络请求(GET方式)
- 使用HttpURLConnection和使用HttpClient方式请求网络采用get方式和post方式请求数据
- 百度语音识别REST API使用方法(含JAVA代码)——不需要集成SDK的方法