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 正则式 概述及常用字符
May 07 Python
Python递归遍历列表及输出的实现方法
May 19 Python
python3.5实现socket通讯示例(TCP)
Feb 07 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
Python爬虫信息输入及页面的切换方法
May 11 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
python 判断linux进程,并杀死进程的实现方法
Jul 01 Python
Django框架 querySet功能解析
Sep 04 Python
Python 如何创建一个线程池
Jul 28 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
python如何利用Mitmproxy抓包
Oct 10 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
js TextArea的选中区域处理
2010/12/28 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
终止劳动合同协议书
2014/04/14 职场文书
整改通知书
2015/04/20 职场文书
污水处理保证书
2015/05/09 职场文书
导游词之井冈山
2019/11/20 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
解决xampp安装后Apache无法启动
2022/03/21 Servers