python调用百度语音识别api
作者:lijiao 发布时间:2023-02-13 10:23:48
标签:python,语音识别,api
最近在处理语音检索相关的事。
其中用到语音识别,调用的是讯飞与百度的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)
来源:https://blog.csdn.net/a1368783069/article/details/54600774


猜你喜欢
- 简介pandas中的DF数据类型可以像数据库表格一样进行groupby操作。通常来说groupby操作可以分为三部分:分割数据,应用变换和和
- 前言本文主要给大家介绍了关于python中用Future对象异步返回结果的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
- 本文实例讲述了Python编程实现输入某年某月某日计算出这一天是该年第几天的方法。分享给大家供大家参考,具体如下:#基于 Pyth
- 内部/内嵌函数1、定义:在一个函数的函数体内使用关键字def关键字定义一个新的函数,这个新的函数就叫做内部/内嵌函数。2、注意点:内部函数的
- 前言登录跳转:不同的用户在登录成功之后跳转到不同的网页当中例如:网站管理员登录成功后跳转到网站后台,vip用户登录成功后跳转到vip页面准备
- 本文实例讲述了python获取目录下所有文件的方法。分享给大家供大家参考。具体分析如下:os.walk()函数声明:walk(top,top
- 数据表/*Navicat SQLite Data TransferSource Server &n
- 当我们想指定每一层的学习率时:optim.SGD([ &
- 本文实例讲述了python函数形参用法。分享给大家供大家参考。具体如下:函数形参:函数取得的参数是你提供给函数的值,这样函数就可以利用这些值
- 结构体structstruct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套;go中的struct类型理解为类,可以定义方法,
- 最近用python写了一个远程监控的程序,主要功能有:1.用邮件控制所以功能2.可以对屏幕截图,屏幕截图发送到邮箱3.可以用摄像头获取图片,
- 关系型数据库:关系型数据库的优势:保持数据的一致性(事务处理)由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)可以进行J
- 先说一下IIS 301重定向的做法:IIS中301重定向打开“Internet信息服务”,右击你要跳转的文件夹或者文件,在弹出的右键菜单中选
- Python实现新版正方系统滑动验证码识别算法和方案步骤一:点击数据分析点击滑动按钮,将发送一个请求到 /zfcaptchaLogin请求内
- 通常我们做统计图的时候需要借助组件来完成例如mschart,aspchart等但是这个类不需要任何组件,而且使用方便,本站测试可用:clsG
- import os,pandas as pd,re#1.获取文件夹下要合并的文件名dirpath = '文件夹地址'#工作表
- CREATE TABLE table1( [ID] [bigint] IDENTITY(1,1) NOT NULL, [Name] [nva
- 上个周末去书店时碰巧看到了AS3 CookeBook,我记得在apollo的alpha版快出来的时候,7yue就推荐过这个小册子,只不过我已
- 我们从一个测试开始。下面这个函数的功能是什么? def foo(lst): a = 0 for i in
- Javascript中的变量同样支持自由类型转换成为适用(或者要求)的内容以便于使用。 弱类型的Javascript不会按照程序员的愿望从实