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中heapq模块的用法
Jun 28 Python
Python格式化输出%s和%d
May 07 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
python实现画一颗树和一片森林
Jun 25 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
python并发编程 Process对象的其他属性方法join方法详解
Aug 20 Python
Python socket 套接字实现通信详解
Aug 27 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
Python Map 函数的使用
Aug 28 Python
Pycharm如何自动生成头文件注释
Nov 14 Python
用Python爬取某乎手机APP数据
Jun 15 Python
Python中的datetime包与time包包和模块详情
Feb 28 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常用代码
2006/11/23 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
Javascript 面向对象之重载
2010/05/04 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
urllib2自定义opener详解
2014/02/07 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
详谈python read readline readlines的区别
2017/09/22 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
你会写请假条吗?
2019/06/26 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
MySQL注入基础练习
2021/05/30 MySQL
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android