Python语言实现百度语音识别API的使用实例


Posted in Python onDecember 13, 2017

未来的一段时间,人工智能在市场上占有很重的位置,Python语言则是研究人工智能的最佳编程语言,下面,就让我们来感受一下它的魅力吧!

百度给的样例程序,不论C还是Java版,都分为method1和method2两种

前者称为隐式(post的是json串,音频数据编码到json里),后者称为显式(post的就是音频数据)

一开始考虑到pythonwave包处理的都是“字符串”,担心跟C语言的数组不一致,所以选择低效但保险的method1,

即先将音频数据base64编码,再加上采样率、通道数等信息汇集成dict,最后总体编码成json串

结果老是报:

3300输入参数不正确

先后试过urllib2和pycurl包,都是上面情况

不得已换用method2,成功(看来wave包对音频的存储并不是“字符串”)

#encoding=utf-8 
import wave 
import urllib, urllib2, pycurl 
import base64 
import json 
## get access token by api key & secret key 
 
def get_token(): 
  apiKey = "xxxxxxxx" 
  secretKey = "xxxxxxxxx" 
  auth_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apiKey + "&client_secret=" + secretKey; 
  res = urllib2.urlopen(auth_url) 
  json_data = res.read() 
  return json.loads(json_data)['access_token'] 
 
def dump_res(buf): 
  print buf 
## post audio to server 
def use_cloud(token): 
  fp = wave.open('vad_0.wav', 'rb') 
  nf = fp.getnframes() 
  f_len = nf * 2 
  audio_data = fp.readframes(nf) 
 
  cuid = "xxxxxxxxxx" #my xiaomi phone MAC 
  srv_url = 'http://vop.baidu.com/server_api' + '?cuid=' + cuid + '&token=' + token 
  http_header = [ 
    'Content-Type: audio/pcm; rate=8000', 
    'Content-Length: %d' % f_len 
  ] 
  c = pycurl.Curl() 
  c.setopt(pycurl.URL, str(srv_url)) #curl doesn't support unicode 
  #c.setopt(c.RETURNTRANSFER, 1) 
  c.setopt(c.HTTPHEADER, http_header)  #must be list, not dict 
  c.setopt(c.POST, 1) 
  c.setopt(c.CONNECTTIMEOUT, 30) 
  c.setopt(c.TIMEOUT, 30) 
  c.setopt(c.WRITEFUNCTION, dump_res) 
  c.setopt(c.POSTFIELDS, audio_data) 
  c.setopt(c.POSTFIELDSIZE, f_len) 
  c.perform() #pycurl.perform() has no return val  
if __name__ == "__main__": 
  token = get_token() 
  use_cloud(token)

运行结果

{"corpus_no":"6150045491002357923","err_msg":"success.","err_no":0,"result":["播放小苹果,"],"sn":"243903724071431919050"}

总结

以上就是本文关于Python语言实现百度语音识别API的使用实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python文件夹与文件的相关操作(推荐)
Jul 25 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
django+echart数据动态显示的例子
Aug 12 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
python微信智能AI机器人实现多种支付方式
Apr 12 Python
Python通过matplotlib绘制动画简单实例
Dec 13 #Python
Python数据结构与算法之字典树实现方法示例
Dec 13 #Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 #Python
python+VTK环境搭建及第一个简单程序代码
Dec 13 #Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 #Python
python+pygame简单画板实现代码实例
Dec 13 #Python
Python实现简单的语音识别系统
Dec 13 #Python
You might like
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
js文件中调用js的实现方法小结
2009/10/23 Javascript
javascript date格式化示例
2013/09/25 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
react-router实现按需加载
2017/05/09 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
Python @property原理解析和用法实例
2020/02/11 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
python中Mako库实例用法
2020/12/31 Python
animation和transition的区别
2020/10/12 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
自荐信的禁忌和要点
2013/10/15 职场文书
会展中心部门工作职责
2013/11/27 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书