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中的闭包
Aug 11 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
Python中的函数作用域
May 07 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
Django 自定义分页器的实现代码
Nov 24 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
python自动点赞功能的实现思路
Feb 26 Python
在python中使用nohup命令说明
Apr 16 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
django的403/404/500错误自定义页面的配置方式
May 21 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
Js的MessageBox
2006/12/03 Javascript
javascript 建设银行登陆键盘
2008/06/10 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
快速查询Python文档方法分享
2017/12/27 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
python实现Virginia无密钥解密
2019/03/20 Python
Python reduce函数作用及实例解析
2020/05/08 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
捐助贫困学生倡议书
2014/05/16 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
yolov5返回坐标的方法实例
2022/03/17 Python
python中数组和列表的简单实例
2022/03/25 Python
SQL Server 中的事务介绍
2022/05/20 SQL Server