zoukankan      html  css  js  c++  java
  • 百度语音识别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:后端错误。后端资源可能出现错误


    因为篇幅所限,详细用法在下篇文章介绍。

  • 相关阅读:
    Linq To Entity 的增删改查(技术储备,怕忘了) jerry
    微博内容中的短地址 分析
    使用HttpWebRequest自动更新客户端应用程序[转]
    面向对象的js编程
    获取asp.net解析页面完毕后后的html代码
    js 面向对象继承 动物叫声比赛版
    [译]C# Socket连接请求超时机制
    c# 扫描可疑文件(找到木马)(简)转
    session如何保存在专门的StateServer服务器中
    动态加载script文件 专题
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5372192.html
Copyright © 2011-2022 走看看