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脚本来获取Cisco设备信息的示例
May 04 Python
Python实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
Pandas标记删除重复记录的方法
Apr 08 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
python数据挖掘需要学的内容
Jun 23 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
Sep 20 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
详解Pycharm安装及Django安装配置指南
Sep 15 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
新浪新闻小偷
2006/10/09 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
php定界符
2014/06/19 PHP
php向js函数传参的几种方法
2014/08/10 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
python动态监控日志内容的示例
2014/02/16 Python
python中偏函数partial用法实例分析
2015/07/08 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
在python中求分布函数相关的包实例
2020/04/15 Python
python 实现超级玛丽游戏
2020/11/25 Python
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
商场消防管理制度
2014/01/12 职场文书
最新创业融资计划书
2014/01/19 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
优秀员工演讲稿
2019/06/21 职场文书