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 linecache.getline()读取文件中特定一行的脚本
Sep 06 Python
python解析xml文件实例分享
Dec 04 Python
在Linux下调试Python代码的各种方法
Apr 17 Python
python处理html转义字符的方法详解
Jul 01 Python
python email smtplib模块发送邮件代码实例
Apr 26 Python
Python3.6连接Oracle数据库的方法详解
May 18 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
浅析使用Python搭建http服务器
Oct 27 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
Python绘图实现台风路径可视化代码实例
Oct 23 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
社区(php&&mysql)二
2006/10/09 PHP
APMServ使用说明
2006/10/23 PHP
实用函数9
2007/11/08 PHP
php实现短信发送代码
2015/07/05 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
js 毫秒转天时分秒的实例
2017/11/17 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
python3.x实现base64加密和解密
2019/03/28 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
大学生物业管理求职信
2013/10/24 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
技术员岗位职责范本
2015/04/11 职场文书
Java设计模式之代理模式
2022/04/22 Java/Android