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安装与使用redis的方法
Apr 19 Python
python数据类型_字符串常用操作(详解)
May 30 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
Jan 02 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
利用python脚本如何简化jar操作命令
Feb 24 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
Django配置Bootstrap, js实现过程详解
Oct 13 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 Python
Python与C++中梯度方向直方图的实现
Mar 17 Python
详解Python内置模块Collections
Mar 22 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
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
js实现简单的打印表格
2020/01/15 Javascript
python实现保存网页到本地示例
2014/03/16 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
python 遍历pd.Series的index和value
2019/11/26 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Python class的继承方法代码实例
2020/02/14 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
pytorch 中forward 的用法与解释说明
2021/02/26 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
澳大利亚相机之家:Camera House
2017/11/30 全球购物
《鹬蚌相争》教学反思
2014/04/22 职场文书
高中学生评语大全
2014/04/25 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
2014年审计工作总结
2014/11/17 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
奖金申请报告模板
2015/05/15 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
Python IO文件管理的具体使用
2022/03/20 Python