树莓派语音识别-初探
从今天开始我们将通过几篇文章来讲述,如何通过树莓派+ReSpeaker 4-Mic麦克风扩展板捕获声音然后通过BaiduApi的声音识别调用,实现语音到文字的转换;最后我们会尝试通过转换后的命令去控制其他传感器或者电器机构,从而初步实现智能家居在树莓派上的雏形;通过这一些列的铺垫后续会发现更多好玩的方向与尝试。
从上图可见ReSpeaker 4-Mic麦克风扩展板可完美的安装在树莓派上(此处为3B+),但是有个弊端就是会全部占用树莓派的GPIO口,导致其他传感器无法使用(不过不用担心后续我们会通过别的方式去实现)。
安装好后,接下来我们来实现语音捕获和识别,首先我们先来看一下效果:
由上可见,程序会将语音转换为文字并输出;由于没有其他设置,所以语音识别有会有一些误差,比如我说 “就酱”但是程序返回的是 “九江”;这部分调准我们会在下一篇文章详细讲解。
接下来开始做语音识别的前期准备,由于我们调用的是百度的语音识别Api,因此需要在百度控制台建立我们自己的应用,并获取接口调用权限;
- 登录百度控制台,如果没有账号需要先申请;地址https://login.bce.baidu.com/
- 登录进来后我们选择右侧栏的语音技术,然后在概览处创建我们自己的应用;如下图:
- 应用创建好后,则会得到一个AppID和一个API Key 这个两个是声音识别api调用的钥匙 要谨记保管好;
- AppID和API Key申请好后,这个时候还需要领取api调用的额度;此处我们领取的是短语音识别-中文普通话的15W的额度;这个足够自己做测试用了;但是记得6个月有效,因此需要注意过期时间;
- 接下来我们就可以去实地的去调用接口了,此处demo我们用的是百度的Api实时调用(文档地址 https://ai.baidu.com/ai-doc/SPEECH/Vk38lxily),其中文档内有可直接测试的demo,可以拿来直接用;我们这次实验也是基于这个demo改造而来;
- 其中在请求方式这一块,有json格式和raw格式, 我们采用的是raw格式,两种格式都可以,都可以尝试;
代码部分,我们写了两个文件;其中run.py是语音采集以及api调用转换文件;baidu_analysis.py是改造的百度的官方demo;这个文件主要是登录验证获取token,然后用token去识别获取的二进制语音流;
后面按钮是测试demo的代码样例,可下载更换自己申请的appid以及appkey后直接应用;代码的具体含义会放在下一篇文章进行讲解;此处可以先用demo代码进行实验。执行命令:
python run.py