百度语音识别REST API——通过使用Http网络请求方式获得语音识别功能

百度语音识别通过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授权”部分。

其中,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网络请求方式获得语音识别功能

时间: 2024-08-10 11:17:46

百度语音识别REST API——通过使用Http网络请求方式获得语音识别功能的相关文章

Android中的几种网络请求方式详解

http://blog.csdn.net/zuolongsnail/article/details/6373051 Android应用中使用AsyncHttpClient来异步网络数据 http://blog.csdn.net/sdvch/article/details/13615605 Android中的几种网络请求方式详解,布布扣,bubuko.com

Android Studio第三十期 - 介绍几种网络请求方式写法

框架git地址:附(爱一个人就要爱他(loader)的全部~) https://github.com/geeklx/MakeJarAAR 1:http://192.168.200.96/v2/weather/weather.get.info 请求方式:POST     请求示例 {    "verify_info":{        "app":{            "app_id":"2e263d60-2d48-43d9-b699

IOS 网络请求方式

iOS开发中的网络请求 今天来说说关于iOS开发过程中的网络请求. 关于网络请求的重要性我想不用多说了吧.对于移动客户端来说,网络的重要性不言而喻.常见的网络请求有同步GET, 同步POST, 异步GET, 异步POST.今天来看一下四种网络请求的实现方式. 一.同步GET 1 2 3 4 5 6 7 8 9 10 11 12 // 1.将网址初始化成一个OC字符串对象 NSString *urlStr = [NSString stringWithFormat:@"%@?query=%@®ion

Windows Phone 网络请求方式对比

目前的Windows Phone平台支持有以下几种实现网络请求的方式:HttpWebRequest.WebClient.WebBrowser.Socket 我个人给他们分个类: 最实用,最麻烦:HttpWebRequest 最简洁:WebClient 最猥琐:WebBrowser 最不常用:Socket 可能用到的一些wp源码案例:http://code.662p.com/list/14_1.html 1.HttpWebRequest: 能实现各种WP上支持的请求类型(目前支持POST/GET)

CFNetwork 网络请求方式1

// // CFNetworkTest1.m // TestCF // // Created by Jabez on 15/5/11. // Copyright (c) 2015年 John. All rights reserved. // #import "CFNetworkTest1.h" @implementation CFNetworkTest1 - (void)sendMessage { [self magicHappens]; } - (void)magicHappens

Android4种网络连接方式HttpClient、HttpURLConnection、OKHttp和Volley优缺点和性能对比

比较的指标: 1.cpu 2.流量 3.电量 4.内存占用 5.联网时间 功能点: 1.重试机制 2.提供的扩展功能 3.易用性 4.是否https 5.是否支持reflect api,OkHttp有配套方法 6.缓存.重试 7.cookie支持session  id会话支持 8.弱网性能和稳定性 9.超时时间,几种超时时间   连接超时,响应超时 10.适配各种机型.4.4和之前版本  2.3  4.1 5.0 4种网络连接方式提供的功能对比表格: 缓存 重试 Https/Http 稳定性 C

iOS开发——网络请求方法汇总

在实际的项目开发中,连接网络是每一款App必不可少的基本功能.对于客户端的网络请求而言,无非是有两个实现方向:使用网络请求框架或者不使用网络请求框架.在这篇博客中,我将用苹果自带的网络请求方式(不使用第三方框架)下对iOS网络请求方法做一个汇总.我将在之后的博客中介绍使用AFNetworking框架进行请求的实现.代码已经上传至:https://github.com/chenyufeng1991/iOS-NetworkRequest   . [使用XML请求Webservice,可用GET或PO

XDroidRequest网络请求框架,新开源

XDroidRequest 是一款网络请求框架,它的功能也许会适合你.这是本项目的第三版了,前两版由于扩展性问题一直不满意,思考来 思考去还是觉得Google的Volley的扩展性最强,于是借鉴了Volley的责任链模式,所以有了这个第三版. Provide 1 适配 Android 6.0 ,不再使用HttpClient相关API 2 一行代码发送请求,提供多种回调函数供选择, 3 支持8种网络请求方式 GET,POST,PUT,DELETE,HEAD,OPTIONS,TRACE,PATCH

Http与Android网络请求的几种协议

HTTP深入浅出 http请求 HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.