0x00 snowboy唤醒引擎简介
snowboy 是一个开源的、轻量级语音唤醒引擎,通过它还可以很轻松地创建属于自己的唤醒词。唤醒,是人机语音交互的起点。因为在将机器人唤醒前,人说话的声音是不进行处理的,只有在唤醒后,机器人才会将收听到的语音进行解析、处理、反馈。当然这里可能也会有一些厂商他们为了得到更多的语料用于继续优化自己的语音交互效果,也会把未唤醒状态下的语音偷偷上传至服务器上。
这里的唤醒动作,可以理解为机器人的名字。就跟现在市面上的“小爱同学”、“天猫精灵”这样的唤醒词一样,不过这些唤醒词都是经过商业化定制的,一般用户可没那么多钱进行定制商业化的唤醒词。这里的snowboy就提供了一种便捷的途径来帮我们做这件事,省去高昂的商业化唤醒词定制费,snowboy具备以下特点:
(1) 可定制性 :可自由、快速的训练属于自己的唤醒词 (2) 始终倾听 :无需联网、保护隐私、低延迟 (3) 轻量可嵌入 :硬件资源消耗非常低,如下图所示: (4) 开源跨平台 :开放源代码,支持多种操作系统和硬件平台,可多编程语言开发由于公众号中每篇文章只能上传3个视频,这里就把不重要的去掉,大家可以去ROS小课堂官网查看:
www.corvin.cn
0x01 下载snowboy代码
我们这款语音板现在就可以使用snowboy这个唤醒引擎,首先来下载snowboy的源码,然后就可以在本地进行测试了,下载snowboy的源码命令如下:
git clone https://github.com/Kitt-AI/snowboy.git
下载好代码后,就可以来安装下运行需要的软件了。后面我会把这些缺少的软件都提前安装好在下一版的ROS镜像中,把语音开发环境都配置好,这样后面的同学再使用语音板的时候,就不用这么麻烦来安装这些软件包了,直接就能用snowboy唤醒。这里的安装命令如下:
sudo apt-get install python-pyaudio python3-pyaudio swig
接下来就是安装python版本的PortAudio,安装命令如下:
pip install pyaudio
上述操作过程可以参考如下的截图:
在安装好这些软件后,接下来就可以来验证下是否可以正常录音了,只要语音板麦克风可以正常工作,可以录音了,我们才可以进行后面的操作。完整的测试录音命令如下:
rec test.wav
当在终端中输入完该命令后,就会自动开启录音,我们就可以对着麦克风说几句话。最终会保存到test.wav文件中,最后播放出来test.wav看看该文件是否正常,如果正常的话,那说明语音板就是进入正常工作状态了。要想播放一下wav文件,命令也很简单:
play test.wav