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的循环体中使用else语句的方法
Mar 30 Python
PyMongo安装使用笔记
Apr 27 Python
Python中的匿名函数使用简介
Apr 27 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
Python requests发送post请求的一些疑点
May 20 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 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
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
Vue内容分发slot(全面解析)
2017/08/19 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
搞笑婚礼主持词
2014/03/13 职场文书
责任书范本
2014/08/25 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
实习单位证明范例
2014/11/17 职场文书
社区端午节活动总结
2015/02/11 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang