python基于百度接口的语音识别_Python基于百度接口的语音识别
1. 主要模块介绍
1) 使用pyaudio 模块来调用麦克风录制音频
2) 使用百度提供的密钥获取access_token
3) 使用百度的语音识别接口,识别语音
2.pyaudio模块的安装
pip install pyaudio
3.使用pyaudio录制声音
Pyaudio主要用法:
主要列出pyaudio对象的open()方法的参数:
rate:采样率, 每秒使用多少bit对采样数据进行保存
channels:声道数
format:采样值的量化格式,值可以为paFloat32、paInt32、paInt24、paInt16、paInt8等。下面的例子中,使用paInt16.
input:输入流标志,Ture表示开始输入流
output:输出流标志
Pyaudio详细文档http://people.csail.mit.edu/hubert/pyaudio/docs/
下面为代码
def get_data_mic():
p = PyAudio()
# 摁下任意键开始录音
input("摁下任意键开始5秒录音...")
# 初始化麦克风设备参数,并开始采样
stream = p.open(format=paInt16,
channels=1,
rate=8000,
input=True,
frames_per_buffer=1024)
# 声音采集数据缓存
frames = []
for x in range(0, int(8000/1024 * 5)):
data = stream.read(1024)
frames.append(data)
print('* stop recorded')
# 关闭设备
stream.stop_stream()
stream.close()
p.terminate()
# 返回采集数据位二进制流字符
return b''.join(frames)
4.获取access_token
# 获取Access Token,通过api_key,secret_key获取
def get_access_token(cltid, srt_key):
oauth_url = 'https://openapi.baidu.com/oauth/2.0/token'
args_data = {'grant_type': 'client_credentials',
'client_id': cltid,
'client_secret': srt_key,
}
cnt_type = {'Content-Type': 'application/json; charset=UTF-8'}
resp = requests.post(oauth_url, data=args_data, headers=cnt_type)
print("get baidu center info...")
if resp.status_code != 200:
print("have http error", resp.status_code)
return None
cnt = resp.json() # 获取的内容变为字典
cnt['expires_in'] += int(time.time()) # 将有效期时间记录
with open('baidu.ck', 'w', encoding='utf-8') as fp:
res = {'access_token': cnt['access_token'], 'expires_in': cnt['expires_in']}
json.dump(res, fp)
return cnt['access_token']
5.获取语音识别结果
# 获取语音识别结果
def get_text_fromsound(atoken):
speed_url = 'http://vop.baidu.com/server_api'
args_data = {'format': 'pcm',
'rate':8000,
'channel': 1,
'cuid': 'rocky_shop', # 应用名称,可随意取名
'token': atoken,
}
# 获取麦克风数据,按照百度文档要求,填写数据和长度
buf = get_data_mic() #此处是3定义的录音,返回值为二进制流字符
args_data['len'] = len(buf)
args_data['speech'] = base64.b64encode(buf).decode()
header = {'Content-Type': 'application/json'}
resp = requests.post(speed_url, data=json.dumps(args_data), headers=header)
info = resp.json()
if info['err_no'] == 0:
return info['result']
else:
return [info['err_msg']]
更多技术干货敬请关注,另有源码时代成都校区最新干货:
了解语音识别的原理;
了解百度语音识别的应用场景;
学会应用语音识别解决实际工作问题;
python基于百度接口的语音识别_Python基于百度接口的语音识别相关推荐
- python 百度ai批量识别_Python基于百度AI的文字识别的示例
Python基于百度AI的文字识别的示例 使用百度AI的文字识别库,做出的调用示例,其中filePath是图片的路径,可以自行传入一张带有文字的图片,进行识别. 下载baidu-aip这个库,可以直接 ...
- python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字
最终效果 1. 实现环境 win10系统 + pycharm社区版 + anaconda3 2. 实现步骤 step 1. 安装baidu-aip库 step 2. 进入百度ai官网 http://a ...
- python cv2 轮廓的包络 面积_Python 基于FIR实现Hilbert滤波器求信号包络详解
在通信领域,可以通过希尔伯特变换求解解析信号,进而求解窄带信号的包络. 实现希尔伯特变换有两种方法,一种是对信号做FFT,单后只保留单边频谱,在做IFFT,我们称之为频域方法:另一种是基于FIR根据传 ...
- python调用离线百度语音识别_python调用百度语音识别api
最近在处理语音检索相关的事. 其中用到语音识别,调用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用python) 环境: python3.5 centos 7 流程 ...
- python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例
Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...
- python实时语音识别_Python结合百度语音识别实现实时翻译软件的实现
一.所需库安装 pip install PyAudio pip install SpeechRecognition pip install baidu-aip pip install Wave pip ...
- python辗转相除法求最大公约数最小公倍数_Python基于辗转相除法求解最大公约数的方法示例...
本文实例讲述了Python基于辗转相除法求解最大公约数的方法.分享给大家供大家参考,具体如下: 之前总结过一次高德纳TAOCP中的最大公约数求解,其实课后题中的算法修改要求实现的是辗转相除法求解最大公 ...
- python时钟程序的设计总结_python基于Kivy写一个图形桌面时钟程序
kivy 是一个开源的 python 第三方库,可以用来快速开发应用程序. 它有如下三个特点: 跨平台 kivy 编写的程序可在 linux,windows,os x,android,ios 和 ra ...
- python读取千万级数据库数据类型_Python 基于Python从mysql表读取千万数据实践
场景: 有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_bar_record表读取1000w条唯一的waybill_no,然后作为INSERT SQL语句的 ...
最新文章
- android tv如何适配不同的平台
- 绘制矩形php,php绘制一个矩形的方法
- java docx 内存溢出_第2章 Java内存区域与内存溢出异常
- 机器学习第六回-无监督学习—— K-均值算法
- Python办公自动化(八)|使用Python转换PDF,Word/Excel/PPT/md/HTML都能转
- /var/lock/subsys作用
- psp能装安卓软件吗_PSP模拟器下载_安卓PSP模拟器下载「ppsspp模拟器」-太平洋下载中心...
- 上交所、深交所证券代码编码规则
- 欧瑞变频器故障码表_变频器常见故障处理.doc
- 立创 EDA #学习笔记10# | 常用连接器元器件识别 和 蜂鸣器驱动电路
- 【MySQL】Online DDL详解
- 【20191025】考试
- 基于BP神经网络的英文字母识别
- untiy下连接photon
- Carte作为Windows服务
- 调试绝对值编码器测试角速度值
- OAUTH之 钉钉第三方授权登录
- 在HTML中lt;是什么意思?
- 苹果手机不进post方法
- 热搜第一!刘强东回国了!
热门文章
- c 初始化char**_CC++|指针详述及实例分析
- 企业 SpringBoot 教程(六)springboot整合mybatis
- 面试小结之Elasticsearch篇
- 响应式开发一招致胜 学习视频 分享
- 安全漏洞“心脏出血”继续 原因是“丘比特”
- Redis持久化实践及数据恢复
- 关于Shiro框架权限标识符中*使用的总结
- MVC项目开发中那些用到的知识点(登录权限认证)
- margin折叠问题
- Javascript学习笔记2——函数