python调用百度语音识别api


Posted in Python onAugust 30, 2018

最近在处理语音检索相关的事。
其中用到语音识别,调用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用python)

环境:

python3.5
centos 7

流程

整个百度语音识别rest api 使用分为三部分:

1 (申请操作)创建应用,获取应用的 API Key 以及 Secret Key。

2 (程序实现)通过已知的 应用的 API Key 以及 Secret Key, 发送post 请求到 https://openapi.baidu.com/oauth/2.0/token 获取 token

3 (程序实现) 通过上步骤获取的 token,通过post, 发送相关的 语音信息 到 http://vop.baidu.com/server_api ,获取识别结果.

以上过程参考百度语音开发文档,或者网上的资料。

python实现

程序整体如下:

import requests
import json
import uuid
import base64

def get_token():
 url = "https://openapi.baidu.com/oauth/2.0/token"
 grant_type = "client_credentials"
 api_key = "NzGBYD0jPFDqVT8VHRYa****"  # 自己申请的应用
 secret_key = "8439155b9db2040b4acd13b0c*****" # 自己申请的应用
 data = {'grant_type': 'client_credentials', 'client_id': api_key, 'client_secret': secret_key}
 r = requests.post(url, data=data)
 token = json.loads(r.text).get("access_token")
 return token


def recognize(sig, rate, token):
 url = "http://vop.baidu.com/server_api"
 speech_length = len(sig)
 speech = base64.b64encode(sig).decode("utf-8")
 mac_address = uuid.UUID(int=uuid.getnode()).hex[-12:]
 rate = rate
 data = {
 "format": "wav",
 "lan": "zh",
 "token": token,
 "len": speech_length,
 "rate": rate,
 "speech": speech,
 "cuid": mac_address,
 "channel": 1,
 }
 data_length = len(json.dumps(data).encode("utf-8"))
 headers = {"Content-Type": "application/json",
 "Content-Length": data_length}
 r = requests.post(url, data=json.dumps(data), headers=headers)
 print(r.text)


filename = "two.wav"

signal = open(filename, "rb").read()
rate = 8000

token = get_token()
recognize(signal, rate, token)

同时,获取语音信息可以通过:

import scipy.io.wavfile
filename = "two.wav"
rate, signal = scipy.io.wavfile.read(filename=filename)

python调用百度语音识别api

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

Python 相关文章推荐
Python字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
使用Python编写vim插件的简单示例
Apr 17 Python
python脚本设置系统时间的两种方法
Feb 21 Python
Python正规则表达式学习指南
Aug 02 Python
深入理解python中的atexit模块
Mar 07 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
Python日志无延迟实时写入的示例
Jul 11 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
python同时遍历两个list用法说明
May 02 Python
详解python tcp编程
Aug 24 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
Python读写zip压缩文件的方法
Aug 29 #Python
使用python生成杨辉三角形的示例代码
Aug 29 #Python
You might like
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
php时间不正确的解决方法
2008/04/09 PHP
奇怪的PHP引用效率问题分析
2012/03/23 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
jquery ajax执行后台方法
2010/03/18 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
用Pygal绘制直方图代码示例
2017/12/07 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
PyQt5实现拖放功能
2018/04/25 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
pandas重新生成索引的方法
2018/11/06 Python
Python函数中不定长参数的写法
2019/02/13 Python
python实现手机销售管理系统
2019/03/19 Python
Python实现微信小程序支付功能
2019/07/25 Python
Python持续监听文件变化代码实例
2020/07/22 Python
python中的测试框架
2020/11/13 Python
Python ellipsis 的用法详解
2020/11/20 Python
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
暑期实践思想汇报
2014/01/06 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
怎样写家长意见
2015/06/04 职场文书
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis