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解释器相关安装方法
Oct 12 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
python 调用有道api接口的方法
Jan 03 Python
详解Python sys.argv使用方法
May 10 Python
Python短信轰炸的代码
Mar 25 Python
Python流程控制语句的深入讲解
Jun 15 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
python实战之用emoji表情生成文字
May 08 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
MySQL修改密码方法总结
2008/03/25 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php学习笔记之基础知识
2014/11/08 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python实现获取命令行输出结果的方法
2017/06/10 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
Python语法分析之字符串格式化
2019/06/13 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
SQL Server面试题
2016/10/17 面试题
求职者简历中的自我评价
2013/10/20 职场文书
简历自我评价模版
2014/01/31 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers