9175| 0
|
[M10教程] 用Python玩转开源硬件-第13课:AI多功能语音开关 |
本帖最后由 JIAJIA 于 2023-3-24 10:15 编辑 AI多功能语音开关 很小的时候,我有一个梦想,梦想着自己拥有魔法,可以通过语音“芝麻开灯”“芝麻关灯”,来控制灯光的开启与关闭。随着智能家电的普及,语音控制也逐渐走入了我们的生活,使用语音指令控制灯光就不再是梦想了。 接下来,就使用行空板搭配一些硬件模块,制作一款AI多功能语音开关。要控制家里的电器设备,就是一句话的事儿~ 任务目标 通过语音的方式,控制灯、水龙头、窗户。例如,按住行空板的A按键,对着麦克风说:“打开灯”,RGB灯环亮;按住行空板的A按键,对着麦克风说:“关闭灯”,RGB灯环灭。 知识点 1. 掌握录入语音指令的方法 2. 掌握语音识别功能的使用方法 材料清单 硬件清单: 软件使用:Mind+编程软件 x1 下载地址:https://mindplus.cc/ 动手实践 AI多功能语音控制开关的主要功能是让连接在行空板上的舵机、水泵、灯环能够听懂我们语音指令,然后根据指令完成对应的操作。接下来,就从两个任务来完成吧! 任务一:语音转文字 按下A按键输入语音控制指令,松开A按键后将语音指令转换为文字,通过Mind+的终端打印出来。 任务二:制作语音控制系统 使用语音控制指令,控制执行设备水泵、舵机、灯环的开启和关闭。 任务一:语音转文字 1.硬件连接 使用USB连接线将行空板连接到计算机。 2.软件准备 打开Mind+,按照下面图示完成软件准备工作。 3.编写程序 语音转文字的方法很简单,按住行空板的A按键后,使用麦克风进行音频的录制,然后将语音指令转换成文字显示在行空板上。 (1)录入语音指令 录入语音指令前,使用条件判断指令,判断行空板上的按钮A是否被按下。 如果按钮A被按下?使用录音指令,并设置录制时长以及文件名。然后就可以开始通过行空板上的麦克风进行语音指令的录入。 (2)识别语音指令 录制好语音指令后,就可以识别语音指令了。识别语音指令将使用线上人工智能开放平台—“讯飞开放平台”的语音识别技术。需要行空板连接好无线网络,然后将录制语音输入申请好的平台服务引擎内,就可以很快获得语音对应的文本内容了。 ①行空板连接无线网络 双击打开浏览器,在浏览器地址栏输入10.1.2.3,进入行空板服务页面连接无线网络(若没有无线网可以使用手机热点)。 注意:连接无线网络时,仅支持2.4GWiFi热点。 ②获取“讯飞开放平台”账户密钥 获取账号、密钥等信息,需要进入“讯飞开放平台”注册、申请应用服务。首先,使用浏览器访问“讯飞开放平台”网站:https://www.xfyun.cn/;然后,在首页右上角点击注册,进入注册界面。 完成注册后,登录讯飞开放平台。点击右上角的“控制台”,进入应用界面,点击“创建新应用”,开始填写应用信息。 信息填写完成后,点击“提交”,完成应用的创建。现在就可以在“我的应用”中查看刚才创建成功的应用。 点击应用,查看应用的服务账号、密码、密钥等信息。 ③获取识别结果 获得账号、密码、密钥等信息后,就可以开始对录入的语音指令进行识别了。首先,需要添加讯飞语音的扩展库。点击“扩展”,在“用户库”中输入网址:https://gitee.com/liliang9693/ext-xunfeiyuyin 检索。 注意:首次使用用户库时,需要先手动添加网址,若直接打开已添加好库的程序,不用网址搜索添加,运行程序即可。 要使用讯飞语音的语音识别功能,首先需要在Python主程序开始下,使用讯飞语音设置账户指令,填写对应的服务账号、密码以及密钥信息。 账户信息设置成功后,使用讯飞语音识别录音指令,对录入的语音指令进行识别。为了方便使用,新建一个变量识别内容,将识别录音指令赋值给变量识别内容。最后使用打印指令,将识别内容在Mind+终端上进行输出。 4.程序运行 点击运行,程序运行成功后。按住A按键,进行语音指令录入,松开A按键后,语音会被转换为文字在Mind+终端进行输出,效果如下: 注意:项目运行时,可能会出现报错,可以尝试重新运行或断开行空板连接。出现以下报错时,请根据对应的方式进行修改。 任务二:制作语音控制系统 这个任务不仅要将录入的语音指令转换为文字,还要通过识别语音控制指令,控制连接在行空板上的舵机、水泵,以及RGB灯环。 1.硬件连接 将继电器连接在行空板的P21引脚,电池盒连接在继电器的VIN端口,水泵连接在继电器的VOUT端口;舵机连接在行空板的P23引脚;RGB灯环连接在行空板的P24引脚,硬件连接成功后,使用USB线将行空板连接到计算机。 2.编写程序 作为一个完整的系统,要有一个好看的控制界面,然后再根据录入的语音指令,对水泵、舵机、灯环进行控制。 (1)UI界面设计 为了简化程序,这里将界面中的框以及不变的文字制作成了一张背景图,下面将背景图片,从图片素材库中导入到文件系统。 使用显示图片指令,将背景图以及灯、水龙头、窗户关闭的图标显示在行空板上。显示图片的程序直接在任务一的基础上,进行添加即可。 在语音录入框中显示提示文字“按住按键A,进行语音指令录入…”,每个设备还有对应的状态“关”。因此,使用显示文字指令,将提示文字与设备状态显示在行空板上。然后使用更新文本内容参数指令,将语音录入框中的文字替换为变量识别内容。 (2)语音指令控制硬件 使用语音指令控制硬件,要知道有哪些语音控制指令,并且了解每条语音控制指令对应什么功能。语音控制指令的功能对应表如下: 这个任务中要用到RGB灯环和舵机,所以先添加WS2812 RGB灯库与舵机库,点击“扩展”,在pinpong库中分别找到“WS2812 RGB灯”与“舵机”并点击,完成RGB灯环库和舵机库的添加。 由于硬件连接中,将灯环连接在P24引脚,舵机连接在P23引脚。因此,在Python主程序开始下使用RGB灯初始化指令,初始化引脚为P24引脚,设置灯珠数为12;使用舵机初始化指令,初始化引脚为P23引脚。 新建函数语音控制功能,在语音指令识别成功后,调用函数语音控制功能即可。语音指令控制硬件的功能,在函数下实现。 在语音控制函数下,使用条件指令判断变量识别内容是否为语音控制指令中的内容。例如,当变量识别内容为“打开灯”时,使用设置灯环颜色指令,控制RGB灯环亮。 使用更新文本内容参数指令,更新灯光状态为“开”。使用更新图片指令,更新灯图标为“灯-开.png”。 当变量识别内容为“打开水龙头”时,使用设置数字引脚输出指令,控制P21引脚输出高电平;使用更新文本内容参数指令,更新水龙头状态为“开”;使用更新图片指令,更新水龙头图标为“水龙头-开.png”。 当变量识别内容为“打开窗户”时,就使用舵机转动指令,控制舵机转动到170度;使用更新文本内容参数指令,更新窗户状态为“开”;使用更新图片指令,更新窗户图标为“窗户-开.png”。完整程序如下: 3.程序运行 点击运行,程序运行成功后。按住A按键,就可以开始使用语音控制指令,控制设备工作。例如:按住A按键,对着行空板的麦克风说:“打开灯”,输入的语音指令会被转换成文字在行空板上显示,当语音控制指令识别成功后,RGB灯环就全部亮起。 4.试一试 上面的程序,实现了使用语音控制指令,控制灯环、舵机、水泵的开启工作。接下来,大家自己完成使用语音控制指令控制设备关闭的程序! 知识园地 1.什么是语音识别技术 语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,简称ASR)是让机器通过识别把语音信号转变为相应的文本或命令的人工智能技术,也就是让机器听懂人类的语音的技术。它的基本工作流程是,将录入的声音进行数字化和预处理之后,通过特征提取获得能够表征语言特点的特征向量,然后通过加入模型库进行模式匹配,获得概率最高的文本,输出最终结果。 2.了解语音指令控制硬件工作的方法 通过语音指令如何控制硬件工作呢? 当输入的语音指令,被识别成功后,将识别结果和设定的语音控制指令进行判断,如果识别结果和语音控制指令判断结果为真时,控制执行传感器执行对应的操作。 挑战自我 你可以通过一条语音控制指令,同时控制灯光、水龙头、窗户这三个设备同时开启或关闭吗?例如,按住A按键说:“全部开启/全部关闭”,灯环、水泵、舵机同时开启/关闭,并且行空板上切换设备的图标以及状态显示。 附件下载 公众号后台发送关键字“玩转开源硬件”,可下载程序文件(如有其它问题,请添加微信咨询:DFRobot2019) 第13课 AI多功能语音开关.zip |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed