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实现二分法算法实例
Feb 02 Python
python通过装饰器检查函数参数数据类型的方法
Mar 13 Python
fastcgi文件读取漏洞之python扫描脚本
Apr 23 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
Python子类继承父类构造函数详解
Feb 19 Python
Python中一些深不见底的“坑”
Jun 12 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
Python PyInstaller库基本使用方法分析
Dec 12 Python
通过实例解析Python return运行原理
Mar 04 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 Python
Python数据分析之绘图和可视化详解
Jun 02 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随机生成唯一HASH值自定义函数
2015/04/20 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
Javascript事件实例详解
2013/11/06 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
jquery延迟对象解析
2016/10/26 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
vue中监听返回键问题
2019/08/28 Javascript
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
Python回调函数用法实例详解
2015/07/02 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
Python 装饰器原理、定义与用法详解
2019/12/07 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
制衣厂各岗位职责
2013/12/02 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
庆六一活动总结
2014/08/29 职场文书
投标单位介绍信
2015/05/05 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
实习指导老师意见
2015/06/04 职场文书