Python调用百度api实现语音识别详解_第1页
Python调用百度api实现语音识别详解_第2页
Python调用百度api实现语音识别详解_第3页
Python调用百度api实现语音识别详解_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第Python调用百度api实现语音识别详解最近在学习python,做一些python练习题

github上几年前的练习题

有一题是这样的:

使用Python实现:对着电脑吼一声,自动打开浏览器中的默认网站。

例如,对着笔记本电脑吼一声“百度”,浏览器自动打开百度首页。

然后开始search相应的功能需要的模块(windows10),理一下思路:

本地录音

上传录音,获得返回结果

组一个map,根据结果打开相应的网页

所需模块:

PyAudio:录音接口

wave:打开录音文件并设置音频参数

requests:GET/POST

为什么要用百度语音识别api呢?因为免费试用。。

不多说,登录百度云,创建应用

查看文档RESTAPI文档

文档写的蛮详细的,简单概括就是

1.可以下载使用SDK

2.不需要下载使用SDK

选择2.

根据文档组装url获取token

处理本地音频以JSON格式POST到百度语音识别服务器,获得返回结果

语音格式

格式支持:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)。推荐pcm采样率:16000固定值。编码:16bit位深的单声道。

百度服务端会将非pcm格式,转为pcm格式,因此使用wav、amr会有额外的转换耗时。

保存为pcm格式可以识别,只是windows自带播放器识别不了pcm格式的,所以改用wav格式,毕竟用的模块是wave

首先是本地录音

importwave

frompyaudioimportPyAudio,paInt16

framerate=16000#采样率

num_samples=2000#采样点

channels=1#声道

sampwidth=2#采样宽度2bytes

FILEPATH='speech.wav'

defsave_wave_file(filepath,data):

wf=wave.open(filepath,'wb')

wf.setnchannels(channels)

wf.setsampwidth(sampwidth)

wf.setframerate(framerate)

wf.writeframes(b''.join(data))

wf.close()

defmy_record():

pa=PyAudio()

#打开一个新的音频stream

stream=pa.open(format=paInt16,channels=channels,

rate=framerate,input=True,frames_per_buffer=num_samples)

my_buf=[]#存放录音数据

t=time.time()

print('正在录音...')

whiletime.time()t+4:#设置录音时间(秒)

#循环read,每次read2000frames

string_audio_data=stream.read(num_samples)

my_buf.append(string_audio_data)

print('录音结束.')

save_wave_file(FILEPATH,my_buf)

stream.close()

然后是获取token

importrequests

importbase64#百度语音要求对本地语音二进制数据进行base64编码

#组装url获取token,详见文档

base_url="/oauth/2.0/tokengrant_type=client_credentialsclient_id=%sclient_secret=%s"

APIKey="LZAdqHUGC********mbfKm"

SecretKey="WYPPwgHu********BU6GM*****"

HOST=base_url%(APIKe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论