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中操作字典之setdefault()方法的使用
May 21 Python
Python编程实现粒子群算法(PSO)详解
Nov 13 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
python dict 相同key 合并value的实例
Jan 21 Python
PyQt5 多窗口连接实例
Jun 19 Python
django框架模板语言使用方法详解
Jul 18 Python
详解Python Opencv和PIL读取图像文件的差别
Dec 27 Python
Python模块/包/库安装的六种方法及区别
Feb 24 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
python 实现有道翻译功能
Feb 26 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 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 Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
PHP概率计算函数汇总
2015/09/13 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
讲解JavaScript中for...in语句的使用方法
2015/06/03 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
实现非常简单的js双向数据绑定
2015/11/06 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
Django接受前端数据的几种方法总结
2016/11/04 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
Python中的延迟绑定原理详解
2019/10/11 Python
python3 实现调用串口功能
2019/12/26 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
外贸业务员的岗位职责
2013/11/23 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
小学作文评语大全
2014/04/21 职场文书
实习指导教师评语
2014/12/30 职场文书
五年级上册复习计划
2015/01/19 职场文书
初中班主任心得体会
2016/01/07 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书