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基于百度接口的语音识别相关推荐

  1. python 百度ai批量识别_Python基于百度AI的文字识别的示例

    Python基于百度AI的文字识别的示例 使用百度AI的文字识别库,做出的调用示例,其中filePath是图片的路径,可以自行传入一张带有文字的图片,进行识别. 下载baidu-aip这个库,可以直接 ...

  2. python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字

    最终效果 1. 实现环境 win10系统 + pycharm社区版 + anaconda3 2. 实现步骤 step 1. 安装baidu-aip库 step 2. 进入百度ai官网 http://a ...

  3. python cv2 轮廓的包络 面积_Python 基于FIR实现Hilbert滤波器求信号包络详解

    在通信领域,可以通过希尔伯特变换求解解析信号,进而求解窄带信号的包络. 实现希尔伯特变换有两种方法,一种是对信号做FFT,单后只保留单边频谱,在做IFFT,我们称之为频域方法:另一种是基于FIR根据传 ...

  4. python调用离线百度语音识别_python调用百度语音识别api

    最近在处理语音检索相关的事. 其中用到语音识别,调用的是讯飞与百度的api,前者使用js是实现,后者用python3实现(因为自己使用python) 环境: python3.5 centos 7 流程 ...

  5. python socket模块实现udp通信_Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例 本文实例讲述了Python基于socket模块实现UDP通信功能.分享给大家供大家参考,具体如下: 一 代码 1.接收端 import sock ...

  6. python实时语音识别_Python结合百度语音识别实现实时翻译软件的实现

    一.所需库安装 pip install PyAudio pip install SpeechRecognition pip install baidu-aip pip install Wave pip ...

  7. python辗转相除法求最大公约数最小公倍数_Python基于辗转相除法求解最大公约数的方法示例...

    本文实例讲述了Python基于辗转相除法求解最大公约数的方法.分享给大家供大家参考,具体如下: 之前总结过一次高德纳TAOCP中的最大公约数求解,其实课后题中的算法修改要求实现的是辗转相除法求解最大公 ...

  8. python时钟程序的设计总结_python基于Kivy写一个图形桌面时钟程序

    kivy 是一个开源的 python 第三方库,可以用来快速开发应用程序. 它有如下三个特点: 跨平台 kivy 编写的程序可在 linux,windows,os x,android,ios 和 ra ...

  9. python读取千万级数据库数据类型_Python 基于Python从mysql表读取千万数据实践

    场景: 有以下两个表,两者都有一个表字段,名为waybill_no,我们需要从tl_waybill_bar_record表读取1000w条唯一的waybill_no,然后作为INSERT SQL语句的 ...

最新文章

  1. android tv如何适配不同的平台
  2. 绘制矩形php,php绘制一个矩形的方法
  3. java docx 内存溢出_第2章 Java内存区域与内存溢出异常
  4. 机器学习第六回-无监督学习—— K-均值算法
  5. Python办公自动化(八)|使用Python转换PDF,Word/Excel/PPT/md/HTML都能转
  6. /var/lock/subsys作用
  7. psp能装安卓软件吗_PSP模拟器下载_安卓PSP模拟器下载「ppsspp模拟器」-太平洋下载中心...
  8. 上交所、深交所证券代码编码规则
  9. 欧瑞变频器故障码表_变频器常见故障处理.doc
  10. 立创 EDA #学习笔记10# | 常用连接器元器件识别 和 蜂鸣器驱动电路
  11. 【MySQL】Online DDL详解
  12. 【20191025】考试
  13. 基于BP神经网络的英文字母识别
  14. untiy下连接photon
  15. Carte作为Windows服务
  16. 调试绝对值编码器测试角速度值
  17. OAUTH之 钉钉第三方授权登录
  18. 在HTML中lt;是什么意思?
  19. 苹果手机不进post方法
  20. 热搜第一!刘强东回国了!

热门文章

  1. c 初始化char**_CC++|指针详述及实例分析
  2. 企业 SpringBoot 教程(六)springboot整合mybatis
  3. 面试小结之Elasticsearch篇
  4. 响应式开发一招致胜 学习视频 分享
  5. 安全漏洞“心脏出血”继续 原因是“丘比特”
  6. Redis持久化实践及数据恢复
  7. 关于Shiro框架权限标识符中*使用的总结
  8. MVC项目开发中那些用到的知识点(登录权限认证)
  9. margin折叠问题
  10. Javascript学习笔记2——函数