基于行空板的校园语音导航装置
项目介绍
语音识别技术是一种能让计算机理解和执行人类的语音指令的技术,它可以帮助机器“听懂”人类的语言。语音识别为我们和机器的交互提供了一种新的方式,比如语音导航,当你对麦克风说出要去的地方,智能设备就能显示出前往的路线。本项目我们就来用集成了语音识别技术的语音识别模块,制作一个校园语音导航装置,通过说话快速找到要去的校园地标。
1 项目功能
本项目将制作一个校园语音导航装置,模仿生活中的语音助手工作过程,实现语音唤醒装置,并使用设置好的语音命令,控制行空板屏幕显示语音命令中地点的路线指示。
项目分为下面两个实操过程:
■ 任务一:语音唤醒装置。通过语音命令唤醒装置,让装置进入工作状态。
■ 任务二:语音控制显示路线。设置指定地点语音命令,控制行空板显示语音命令以及对应路线指示。
3 软件清单
Mind+编程软件(下载地址:https://www.mindplus.cc)
任务一:唤醒装置
和生活中我们见到的语音助手一样,要控制装置,必须先唤醒装置。如何唤醒呢?接下来我们就来一起看看吧。
1 连接硬件
首先,将语音识别模块通过4P白色胶线连接到行空板IIC接口上。
注意1:将语音识别模块上的接口开关拨到IIC接口,喇叭开关拨到SPK1内置喇叭上。
注意2:语音识别模块的介绍,参见附录。
然后,将行空板通过USB线连接到电脑上,等待行空板屏幕亮起,并显示行空板LOGO,表示连接成功。同时,语音识别模块响起欢迎语音。
2 准备软件
按照下面步骤,设置Mind+软件编程方式为 Python图形化编程,并完成行空板的加载和连接。
3 编写程序
编写程序,通过语音命令唤醒装置开始识别命令,并在行空板上显示唤醒信息。
先加载语音识别模块操作相关指令。点击“扩展”,选择“用户库”,在搜索框中输入“语音识别”,点击加载“Gravity语音识别&合成模块”。
由于语音识别模块扩展库属于用户库,需要使用到“pinpong初始化”库完成模块的引脚初始化。“pinpong初始化”库位于“扩展库”的“pinpong库”分类下,按下图查找并点击加载。
接下来,就可以按照“初始化语音识别模块 → 识别并保存结果 → 判断识别结果是否为唤醒词”的流程编写程序。
这里需要说明的是,在 唤醒词ID 指令中,唤醒词有三个选项,我们先使用固定关键词“小爱同学”完成装置的唤醒。
当然,为了更加方便直观的看到装置已被唤醒,可以添加适当文字提醒。完整示例代码如下:
4 运行程序
点击运行按钮,运行程序,终端显示模块的初始化过程。
程序运行后,行空板显示“叫我小爱同学”(唤醒词提示),对着语音识别模块的麦克风说出“小爱同学”,语音识别模块亮起蓝色灯,响起提示语,行空板屏幕显示“已唤醒”。
5小试牛刀
刚才是使用固定唤醒词唤醒装置的,能不能自己给装置起个“名字”,用来唤醒装置呢?
我们可以用语音控制模块学习自定义唤醒词,然后修改程序就可以用自己定义的唤醒词唤醒装置了。
提示1:控制模块学习自定义唤醒词步骤如下:
(1)唤醒模块。对准板载麦克风说出“小智你好”或“小爱同学”(固定唤醒词),模块响起回应词,蓝色指示灯亮起,唤醒成功。
(2)学习唤醒词。说出“学习唤醒词”,然后根据模块语音提示说出要学习的唤醒词三遍,如“小麦”。
(3)如果提示“学习模板超过上限”表示已学习过自定义唤醒词,此时需要删除已学习唤醒词。说出“我要删除”,模块询问“你要删除的是唤醒词还是命令词”,然后说出“删除唤醒词”,删除完毕。重新学习唤醒词。
提示2:要修改的核心代码:
任务二:语音控制显示路线
通过唤醒,装置已经可以开始识别其它命令词了。现在我们可以设置语音命令,控制行空板屏幕显示对应位置的线路。
1 学习自定义命令词
首先,先来根据学校的地点确定要使用的命令词和学习顺序,可以用表格记录这些信息(如下表)。
接下来,按照下面的步骤控制语音识别模块学习自定义命令词:
(1)唤醒模块。对着模块麦克风说出已学习的唤醒词或固定唤醒词,模块响起回应词,蓝色指示灯亮起,唤醒成功。
(2)删除已学习命令词。说出“我要删除”,模块询问“你要删除的是唤醒词还是命令词”,然后说出“删除命令词”,删除完毕。
(3)学习命令词。说出“学习命令词”,然后根据模块语音提示分别学习“教学楼”和“食堂”两个命令词。
(4)说出“退出学习”,即可退出命令词学习。
2 编写程序
编写程序,识别自定义命令词,控制显示对应地点的路线指示图片。
自定义命令词的识别需要使用 学习的命令词的第几个自定义ID ,依照次序分别选择两个自定义命令,分别对应“教学楼”和“食堂”路线,并在行空板屏幕上显示对应文字和图片。示例代码如下。
注意:行空板上显示的图片需要提前放入程序文件夹中(放入方法如下图)。
最后,为了使装置更加完整,可以在开始和唤醒时加入对应的背景图片进行显示。完整示例程序如下:
3 运行程序
点击运行按钮,运行程序。行空板显示唤醒词提示语和校园背景,对着语音识别模块麦克风说出自定义唤醒词,语音识别模块响起唤醒成功提示语,行空板屏幕显示“已唤醒”和当前位置提示。
说出“教学楼”,语音识别模块响起执行成功提示语,行空板屏幕显示“教学楼”和路线图。
说出“食堂”,语音识别模块响起执行成功提示语,行空板屏幕显示“食堂”和路线图。
5 小试牛刀
请尝试为你的装置设置一个彩蛋,语音控制模块学习一个你自己的语音命令词,用来让屏幕显示制作人或其它你想显示的图片(使用素材图片或者自己上网搜索)。
提示:补充示例代码如下。
附录 语音识别模块介绍
本项目使用的语音识别模块支持I2C和UART两种通讯方式,采用双麦克风收音。自带训练好的语音识别模型库,使用的时候程序会自动处理语音并在模型库中进行匹配,你可以用内置的语音命令控制,也可以学习自定义的命令。同时,模块也自带喇叭,能通过播放对应的语音给予及时的识别反馈,实现不用编程只通过说话即可完成对模块的设置。
下图标出了模块使用时需要注意的部分:
模块通电后,电源指示灯常亮红色;模块成功唤醒后,唤醒指示灯亮起蓝色灯,等待到达休眠时间(可用程序设置),蓝色灯自动熄灭。
另外,模块可识别命令分为唤醒词和命令词。唤醒词是指唤醒模块进入工作状态的命令,固定唤醒词有两个:“小智你好”和“小爱同学”,可自定义一个唤醒词。
命令词包含学习词、自定义命令词和固定命令词。其中,学习词可用于控制模块学习自定义的命令,常用的学习词如下表:
对于自定义命令词,模块支持自定义17个;模块学习自定义命令次时需要先说出唤醒词,再说出“学习命令词”,然后根据语音提示说出学习命令词完成对应命令词的学习。需要强调的是,不管是识别还是学习命令,模块都需要先被唤醒,才能正常工作。
附件
评论