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中字典和JSON互转操作实例
Jan 19 Python
Python实现快速多线程ping的方法
Jul 15 Python
Python实现识别手写数字大纲
Jan 29 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
单链表反转python实现代码示例
Feb 08 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
python中if嵌套命令实例讲解
Feb 25 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 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
初探PHP5
2006/10/09 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python实现随机漫步方法和原理
2019/06/10 Python
最小二乘法及其python实现详解
2020/02/24 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
组织关系转移介绍信
2014/01/16 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
车贷收入证明范本
2014/09/14 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
教务处干事工作总结
2015/08/14 职场文书
Java设计模式中的命令模式
2022/04/28 Java/Android