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的Django框架中的templates设置
May 11 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
用python处理图片之打开\显示\保存图像的方法
May 04 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
tensorflow中的数据类型dtype用法说明
May 26 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
详解jquery和vue对比
2019/04/16 jQuery
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python2和python3的输入和输出区别介绍
2018/11/20 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
python向图片里添加文字
2019/11/26 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python中的流程控制详解
2021/02/18 Python
咖啡馆创业计划书
2014/01/26 职场文书
开会迟到检讨书
2014/02/03 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
网络销售员岗位职责
2015/04/11 职场文书
学生通报表扬范文
2015/05/04 职场文书
征求意见函
2015/06/05 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
创业的9条正确思考方式
2019/08/26 职场文书