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实现马耳可夫链算法实例分析
May 20 Python
Python实现Kmeans聚类算法
Jun 10 Python
Python实现的质因式分解算法示例
May 03 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 Python
python实现中文文本分句的例子
Jul 15 Python
Python3 使用pillow库生成随机验证码
Aug 26 Python
python生成随机红包的实例写法
Sep 02 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
Python如何获取文件路径/目录
Sep 22 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网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
php实现简单爬虫的开发
2016/03/28 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
Python实现简单文本字符串处理的方法
2018/01/22 Python
python事件驱动event实现详解
2018/11/21 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
Python如何使用字符打印照片
2020/01/03 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
Internal修饰符有什么含义
2013/07/10 面试题
医药营销个人求职信范文
2014/02/07 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
十岁生日答谢词
2015/01/05 职场文书
助学感谢信范文
2015/01/21 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
任长霞观后感
2015/06/16 职场文书
小学运动会入场口号
2015/12/24 职场文书
股权投资协议书
2016/03/23 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript