8157| 4
|
【语音识别与合成+Micro:bit】 第一课 智能语音机器人 |
本帖最后由 ki123456 于 2023-4-6 10:11 编辑 智能语音机器人 轻唤"小度"、"小爱"......,一声"主人,我在"便叫醒了你的语音机器人,也打开了语音控制家电的新世界。从此,你可能不用在寒冷的清晨翻身起床开灯,也不用在准备沐浴时匆忙合上窗帘,只需要一个命令,就可以吩咐你的语音机器人完成任务,解放双手,尽享一天美好。 今天,不需要购买昂贵的设备,有了语音识别模块,你就可以自己动手制作一个语音识别智能家居系统,只不过让电视开机等操作还有些难度,但是操纵小灯、窗户这些家居还是很容易的。那么就让我们一起来制作一个语音控制的智能家居机器人吧! 接下来一起看看如何制作吧! 在这个项目中,我们将学习I2C离线语音识别模块,利用其可以识别多个汉语音词组、单字等的技术,分辨不同的关键词命令并操控开关灯、开关窗,甚至可以在灯开启的时候调节灯的亮暗,以适应各种不同的用途。
硬件清单: 软件使用:mind+编程软件x1 通常情况下,在人和人交流的过程中,我们总能很快理解那些简单的命令的含义,这是因为我们的大脑能很快的处理声音信息。但是在人和机器交流的过程中,机器不能直接理解自然语言的含义,通常需要专业人士借助代码、数字、信号等方式操纵计算机去识别,而这样识别人类语言的技术就是语音识别技术。今天我们要使用的是I2C离线语音识别模块,无需联网它就可以实现对于汉语语音的识别。那么语音识别模块识别的语音是怎样的呢?接下来我们就从我们手边就有的设备出发了解一下我们的声音~ 看见声音——声波 我们可以发出声音、听到声音,或许你还曾经趴在音响旁用手感受过声音发出后的震动,如果没有,你也可以把手轻放在喉咙上发声感受这些震动,时快时慢、时强时弱,正是这些震动产生了声音。你知道声音可以被“看见”吗,我们只需要把你感受到震动的快慢强弱绘制出来,就可以看到了。现在有很多设备就是这样去存储声音的,比如说电脑自带的录音机,mind+实时模式,这都是声音经过一定处理得到的声波。 识别基本单位 计算机一般是通过声波来存储和分析声音的,对于相似的语音当然也会有形似的波形,为了方便识别通常我们会把要说的话拆分成一个个小的单元。音素是最常见的基础单元,它也是语音可划分的最小单元,一个音素对应着一个发音动作,比如"ma"就对应着两个发音动作"m"和"a",是两个音素,其实在汉语中音素可以对应拼音的声母和韵母,英语中可以对应音标。我们知道汉语和英语的有些发音是不同的,可见不同的语言对应着不同的音素组成,当然也会对应不同的处理方法。所以我们在书写语音识别的命令关键词时,只要描述它的每个音素的构成,也就是说对于汉语我们只要写清每个字的拼音就可以了,为了更好的区分字与字的读音,我们也可以在字和字之间加上空格。 另外,需要说明的是我们使用的I2C离线语音识别模块识别的是声音,我们不必担心汉字的字形和声调问题。完成作品后,你也可以试试用同音不同声调的方言,看模块能否识别成功。 语音识别应用场景: 智能家电:连接智能终端的用户可以通过语音识别功能直接控制家电,比如开关灯、换电视频道等。 智能汽车:开车的时候,用户可以通过语音实现导航、来电接听等操作,解放双手,专心驾驶。 I2C离线语音识别模块使用 回到我们的智能家居项目,I2C离线语音识别模块之所以能够识别声音,是因为其内置的录入语音和自动识别功能,它可以完成在不同的模式下通过麦克风录入声音并匹配是否有要识别的声音。下图标出了模块上常用的部分: 在识别方面,I2C离线语音识别模块的语音识别模式一共有三种,分别是循环模式、按钮模式以及指令模式,模式指示灯会根据使用的模式亮起不同颜色的指示灯。 循环模式,表示一直拾取环境声音,识别模式指示灯常亮蓝色; 按钮模式,识别模式指示灯为常灭,此时模块处于休眠状态,按钮被按下时会激活模块。模块被激活后,指示灯常亮绿色; 指令模式,识别模式指示灯为常灭,此时模块处于休眠状态,在说出唤醒关键词后激活模块。模块被激活后,指示灯常亮白色。 三种模式在激活模块后,识别到录入的命令关键词后,指示灯都会会闪烁一次,提示使用者已准确识别。 学习了解完基础知识和I2C离线语音识别模块以后,让我们一起来完成智能家居项目的制作吧~ 本项目我们将使用语音识别模块模拟语音机器人,这个语音机器人可以使用语音实现唤醒,控制窗户和灯的打开和关闭,也可以调整已打开灯的亮度。整个项目我们将从单个关键词识别开始学习语音识别模块的基础使用,然后学习多个关键词控制,最后通过对已打开灯的亮度控制,学习灯亮灭状态切换下的关键词操作。 任务一:唤醒语音机器人 在这步我们先来学习如何使用语音识别模块完成对应关键词的识别任务,使用"xiaomai"关键词唤醒机器人,并有一定的灯光反馈。 任务二:语音控制灯和窗户 在学会了语音识别模块的基本使用以后,我们就可以进一步连接元器件,学习多个关键词的设置,实现通过语音关键词控制窗户的开关和灯的亮灭。 任务三:调节灯的亮度 完成基本开启关闭控制任务以后,对于可以调节亮度的灯,如micro:bit的点阵屏,我们还可以通过"an"和"liang"关键词调整开启的灯的亮度。 1、硬件连接 STEP1:将micro:bit插入I/O扩展板,注意micro:bit与扩展板正确结合方式,micro:bit的点阵屏的那一面,对着micro:bit的那个方向插入如图: STEP2:按照接线图将语音识别模块和I/O扩展板接好,同时将舵机连至P9 2、程序设计 在正式编程前,通过以下3步先进行程序设计。 STEP1:Mind+软件设置 打开 Mind+ 软件(1.62或以上版本),切换到"上传模式",点击"扩展",在"主控板"下点击加载"micro:bit",在"传感器"下点击加载"语音识别模块"。 由于项目要用到舵机,点击"扩展",在"执行器"下点击加载"舵机模块" STEP2:指令学习 来一起认识一下主要用到的几条指令。 STEP3:流程图分析 3、程序示例 4、运行效果 将上面的程序上传到主控板后,说出"xiaomai",点阵屏显示笑脸,等待3秒后熄灭。 指令模式下,关键词使模块被激活后,指示灯常亮白色,识别到录入的关键词后,指示灯会闪烁一次,10s内无语音,进入休眠。 循环模式下,识别模式指示灯为常亮蓝色,此时模块一直处于拾音状态,当识别到录入的关键词后,指示灯会闪烁一次,提示使用者已准确识别。 任务2:语音控制灯和窗户 通过设置多个识别语音关键词,控制灯(点阵屏)以及舵机(控制窗户打开与关闭)。 我们已经学习了基本的语音识别操作,接下来就可以使用多个关键字指令以及对应编号来操作对应的设备,注意编号0已经被"xiaomai"占用。这里,我们将在之前程序的基础上增加指令就可以实现最终效果。 如何加入其他关键字? 模仿"xiaomai"关键字的设置,复制修改关键字以及编号,注意字与字之间有空格,编号不可以相同,比如: 关键字 编号 xiao mai 0 kai deng 1 guan deng 2 kai chuang 3 guan chuang 4 如何模拟小灯? 我们可以直接利用micro:bit的点阵屏,来完成小灯的模拟,你可以使用指令选择自己喜欢灯的图案,也可以点击点阵形成自己喜欢的图案,甚至可以点击绘制一个自己的名字作为小灯。 如何模拟窗户? 这里我们模拟上悬或下悬式窗户的打开和关闭,可旋转的180°舵机就可以完成。组装的时候需要确定关窗时舵机的初始角度以及开窗后的最大角度。 设计开关窗对应的角度时,将确定好的舵机初始角度和开窗后的最大角度填入对应指令就可以了,假设关窗对应0°,开窗对应90°,则可以设计开关窗代码如下: 2、程序示例 注意:上传代码后,可以用USB线给扩展板供电,保证舵机的正常运行。 3、运行效果 将上面的程序上传到主控板后,说出"kai deng",点阵屏图案亮起;说出"guandeng",点阵屏熄灭;说出"kai chuang",舵机旋转带动开窗;说出"guanchuang",舵机旋转带动关闭窗户,回到初始舵机的状态。 通过识别语音关键词,在开灯状态下调节灯的亮度。 本任务利用micro:bit的点阵屏是可以调节亮度的,我们用来模拟平时调节亮度的家用灯。 如何调节点阵屏的亮度? micro:bit主控板提供了亮度指令【设置亮度x】,一共有10个亮度可选择,其中0是不亮,我们可以使用变量去控制这里的亮度,因此我们建立亮度数值变量,并在开始完成初始设定,并放进亮度设置里面即可。 如何在开灯状态才能调节亮度? 由于调节亮度的基础是当前灯是亮的,但是“指令”变量只能保存当前识别到的语音关键词,无法记录前面是否有开灯关键词,所以我们在建立一个变量"灯亮了?"来记录灯的状态,其中0表示灭,1表示亮。我们只需要在开始以及改变灯亮灭状态时及时记录灯的状态。判断"liang"和"an"关键词是否被识别(是否等于对应的编号,这里"liang"设置的编号为5,"an"设置的编号为6)时,增加一个条件,即变量"灯亮了?"等于1,同时满足才可以开始调节亮度,使用【与】指令连接两个判断。 如何设置亮度限制范围? 刚才我们提到亮度是有限制范围的,不可以一直增加或减小,因此可以根据增大减小关键词位置,增加判断,限制变量。 3、运行效果 将上面的程序上传到主控板后,除任务1和任务2的功能效果以外,在灯打开时,说出"liang"灯会变亮,说出"an"灯会变暗;在灯关闭时,"liang"和"an"关键词不起任何作用。 通过智能家居项目,我们了解了语音识别识别的基础单元,学习了I2C离线语音识别模块的指令应用。在人工智能领域,语音识别是非常重要的部分,也有丰富的应用场景,大家一起来开动脑筋,想一想还能做出哪些语音识别的应用呢。 知识点回顾 1、了解声波和语音识别的基础单元 2、学习语音识别的相关指令的使用 3、学习如何判断识别到的语音 在这个项目中我们使用I2C离线语音识别模块,完成了一个简单的智能家居系统,但这个系统还可以控制更多的设备,拥有更多的功能,尝试结合风扇、水泵、音响等设备,丰富你的智能家居系统。当然你也可以悄悄的设定一个秘密关键词,让你的系统听到这个关键词后出现一些独特的效果,比如闪烁灯光、窗户连续开合、播放音乐,用于庆祝生日或是恶作剧,让你的小伙伴们也参与进来,体验别样的乐趣。对啦,恶作剧的时候,记得提醒有心脏病的小朋友们小心呀~ |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed