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 获取本机ip地址的两个方法
Feb 25 Python
在Python的Flask框架中使用模版的入门教程
Apr 20 Python
python实现井字棋游戏
Mar 30 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
Python正则表达式指南 推荐
Oct 09 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
浅谈Python中range与Numpy中arange的比较
Mar 11 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
Python进行统计建模
Aug 10 Python
python实现简单贪吃蛇游戏
Sep 29 Python
python dir函数快速掌握用法技巧
Dec 09 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
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
JS中的作用域链
2017/03/01 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
JS实现简易计算器
2020/02/14 Javascript
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
python学习数据结构实例代码
2015/05/11 Python
python实现简单ftp客户端的方法
2015/06/28 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
《最后的姿势》教学反思
2014/02/27 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
义诊活动通知
2015/04/24 职场文书
起诉书格式范文
2015/05/20 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
利用Python多线程实现图片下载器
2022/03/25 Python