百度语音识别通过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里包含的參数:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenBmODg2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">





当中。开发人员能够把语音数据放在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网络请求方式获得语音识别功能的更多相关文章

  1. Android进阶(一)几种网络请求方式详解

    Ref:http://blog.csdn.net/zuolongsnail/article/details/6373051 Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面 ...

  2. IOS 网络请求方式

    iOS开发中的网络请求   今天来说说关于iOS开发过程中的网络请求. 关于网络请求的重要性我想不用多说了吧.对于移动客户端来说,网络的重要性不言而喻.常见的网络请求有同步GET, 同步POST, 异 ...

  3. 关于Web API中使用ajax发送请求方式的问题

    参见以下文章 http://www.west-wind.com/weblog/posts/2012/May/08/Passing-multiple-POST-parameters-to-Web-API ...

  4. 原生网络请求以及AFN网络请求/异步下载

    这里对网络请求方式做一个总结. 原生方式同步GET请求: NSString *urlStr = @"http://apis.juhe.cn/mobile/get?phone=13429667 ...

  5. 一步步搭建Retrofit+RxJava+MVP网络请求框架(一)

    首先,展示一下封装好之后的项目的层级结构. 1.先创建一个RetrofitApiService.java package com.xdw.retrofitrxmvpdemo.http; import ...

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

    比较的指标: 1.cpu 2.流量 3.电量 4.内存占用 5.联网时间 功能点: 1.重试机制 2.提供的扩展功能 3.易用性 4.是否https 5.是否支持reflect api,OkHttp有 ...

  7. 【安卓网络请求开源框架Volley源码解析系列】定制自己的Request请求及Volley框架源码剖析

    通过前面的学习我们已经掌握了Volley的基本用法,没看过的建议大家先去阅读我的博文[安卓网络请求开源框架Volley源码解析系列]初识Volley及其基本用法.如StringRequest用来请求一 ...

  8. XDroidRequest网络请求框架,新开源

    XDroidRequest 是一款网络请求框架,它的功能也许会适合你.这是本项目的第三版了,前两版由于扩展性问题一直不满意,思考来 思考去还是觉得Google的Volley的扩展性最强,于是借鉴了Vo ...

  9. 基于RxJava2+Retrofit2简单易用的网络请求实现

    代码地址如下:http://www.demodashi.com/demo/13473.html 简介 基于RxJava2+Retrofit2实现简单易用的网络请求,结合android平台特性的网络封装 ...

随机推荐

  1. 数往知来C#面向对象〈三〉

    C# 基础方法篇 一.复习 1)方法的重载 方法的重载并不是一个方法,实际上方法的重载就是一些不同的 方法,目的是为了方便程序员编码,所以将功能相近的方法命名相同 根据参数,编译器自动的去匹配方法体, ...

  2. 黑马程序员——有关protocol的小结

    在OC程序中经常会有这样的问题就是一个类想让其他类帮自己实现某些方法,然后再将结果返回给这个类:如何让一个类要找的代理去实现自己想要的方法呢? 这样就需要有一个协议,让能遵守协议的其他类都能实现协议中 ...

  3. SAS、R以及SPSS的比较__统计语言大战

  4. Spring3 整合Quartz2 实现定时任务

    一.Quartz简介 Quartz是一个由James House创立的开源项目,是一个功能强大的作业调度工具,可以计划的执行任务,定时.循环或在某一个时间来执行我们需要做的事,这可以给我们工作上带来很 ...

  5. [转]caffe+Ubuntu14.0.4 64bit 环境配置说明(无CUDA,caffe在CPU下运行) --for --Amd

    caffe是一个简洁高效的深度学习框架,具体介绍可以看这里,caffe环境配置过程可以参考这里,我在搭建环境时搜集了许多资料,这里整理了一下,介绍一下caffe在无CUDA的环境下如何配置. 1. 安 ...

  6. Zookeeper Hello World

    1.Zookeeper的安装使用 在官网上下载zk的安装包(http://labs.renren.com/apache-mirror/zookeeper/),解压后cd到zk的目录下. 单机版安装方法 ...

  7. WS之cxf与spring整合2

    在action中加入webservice

  8. 【原创】MapReduce编程系列之二元排序

    普通排序实现 普通排序的实现利用了按姓名的排序,调用了默认的对key的HashPartition函数来实现数据的分组.partition操作之后写入磁盘时会对数据进行排序操作(对一个分区内的数据作排序 ...

  9. EF6 在原有数据库中使用 CodeFirst 总复习(五、生成发帖页面)

    有点与在原有数据库中使用 CodeFirst 远了,不过是总复习吗,总得全面点. 一.在用户表(Users)中插入两个用户 二.生成发帖界面 MVC生成的界面很多,也没使用Ajax,实际开发中很少会使 ...

  10. POJ 3449 Geometric Shapes(判断几个不同图形的相交,线段相交判断)

    Geometric Shapes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1243   Accepted: 524 D ...