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的struct模块中进行数据格式转换的方法
Jun 17 Python
使用python检测主机存活端口及检查存活主机
Oct 12 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
python的socket编程入门
Jan 29 Python
python 输出上个月的月末日期实例
Apr 11 Python
python生成每日报表数据(Excel)并邮件发送的实例
Feb 03 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
Python实现括号匹配方法详解
Feb 10 Python
Pytest mark使用实例及原理解析
Feb 22 Python
500行python代码实现飞机大战
Apr 24 Python
python for循环赋值问题
Jun 03 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
Jun 26 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
php常见的魔术方法详解
2014/12/25 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
Three.js快速入门教程
2016/09/09 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
python Tkinter的图片刷新实例
2019/06/14 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
Python控制台实现交互式环境执行
2020/06/09 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
linux面试相关问题
2013/04/28 面试题
教师演讲稿大全
2014/05/16 职场文书
师范类求职信
2014/06/21 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
体育运动会广播稿
2014/10/05 职场文书
2014年电教工作总结
2014/12/19 职场文书
护士医德考评自我评价
2015/03/03 职场文书
村主任当选感言
2015/08/01 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
Python实现抖音热搜定时爬取功能
2022/03/16 Python
Python sklearn分类决策树方法详解
2022/09/23 Python