python调用百度REST API实现语音识别


Posted in Python onAugust 30, 2018

目前,语音识别,即将语音内容转换为文字的技术已经比较成熟,遥想当时锤子发布会上展示的讯飞输入法语音识别,着实让讯飞火了一把。由于此类语音识别需要采集大量的样本,才能达到一定的准确度,个人很难从零开始搭建。但是,许多拥有语音识别技术的公司,或多或少会提供一些API或者SDK供开发者使用,这样就把语音识别的门槛降到了一个很低的程度,只需几行代码即可实现。下面我介绍以下如何使用Python调用百度的REST API实现一个简单的语音识别。

注册账号,并成为开发者

打开 http://yuyin.baidu.com/ ,并且使用你的百度账号登陆,如果你不是开发者,系统会自动引导你申请成为开发者。

创建应用

打开 http://yuyin.baidu.com/app ,点击创建应用,应用名称自己取,选择合适的应用类型。下一步,服务类型选择语音识别,继续点击下一步,然后就可以关闭了。

刷新当前页面,你就可以看到自己创建的应用,点击查看key,这些是进行身份识别的关键信息。

代码编写

在 http://yuyin.baidu.com/docs/asr/54 可以查看官方文档,百度提供了两种方法:隐式发送是将音频数据打包转换成一个字符串,放到json数据包中来发送;显示发送则是直接发送语音数据。本代码使用隐式发送。

注意:使用前要将你的应用信息填入适当位置

#!/usr/bin/env python
# coding: utf-8
import urllib2
import json
import base64
import os

#设置应用信息
baidu_server = "https://openapi.baidu.com/oauth/2.0/token?"
grant_type = "client_credentials"
client_id = "" #填写API Key
client_secret = "" #填写Secret Key

#合成请求token的URL
url = baidu_server+"grant_type="+grant_type+"&client_id="+client_id+"&client_secret="+client_secret

#获取token
res = urllib2.urlopen(url).read()
data = json.loads(res)
token = data["access_token"]
print token

#设置音频属性,根据百度的要求,采样率必须为8000,压缩格式支持pcm(不压缩)、wav、opus、speex、amr
VOICE_RATE = 8000
WAVE_FILE = "test.wav" #音频文件的路径
USER_ID = "hail_hydra" #用于标识的ID,可以随意设置
WAVE_TYPE = "wav"

#打开音频文件,并进行编码
f = open(WAVE_FILE, "r")
speech = base64.b64encode(f.read())
size = os.path.getsize(WAVE_FILE)
update = json.dumps({"format":WAVE_TYPE, "rate":VOICE_RATE, 'channel':1,'cuid':USER_ID,'token':token,'speech':speech,'len':size})
headers = { 'Content-Type' : 'application/json' } 
url = "http://vop.baidu.com/server_api"
req = urllib2.Request(url, update, headers)

r = urllib2.urlopen(req)


t = r.read()
result = json.loads(t)
print result
if result['err_msg']=='success.':
  word = result['result'][0].encode('utf-8')
  if word!='':
    if word[len(word)-3:len(word)]==',':
      print word[0:len(word)-3]
    else:
      print word
  else:
    print "音频文件不存在或格式错误"
else:
  print "错误"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的数据结构与算法之队列详解
Apr 22 Python
python字符串编码识别模块chardet简单应用
Jun 15 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
Python面向对象类的继承实例详解
Jun 27 Python
python列表使用实现名字管理系统
Jan 30 Python
python实现统计代码行数的小工具
Sep 19 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
python基于selenium爬取斗鱼弹幕
Feb 20 Python
python调用百度语音REST API
Aug 30 #Python
python调用百度语音识别api
Aug 30 #Python
python实现ID3决策树算法
Aug 29 #Python
python实现C4.5决策树算法
Aug 29 #Python
python机器学习之KNN分类算法
Aug 29 #Python
深入理解python中sort()与sorted()的区别
Aug 29 #Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 #Python
You might like
php模板函数 正则实现代码
2012/10/15 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
php页面缓存方法小结
2015/01/10 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
2011/07/26 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
清除输入框内的空格
2016/12/21 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
彻底理解Python list切片原理
2017/10/27 Python
简单实现python画圆功能
2018/01/25 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
python的faker库用法
2019/11/28 Python
Django REST 异常处理详解
2020/07/15 Python
如何理解transaction事务的概念
2015/05/27 面试题
毕业生求职的求职信
2013/12/05 职场文书
新闻报道稿范文
2015/07/23 职场文书
导游词之唐山景点
2019/12/18 职场文书