版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.1项目描述本项目的主要内容包括:交互式智能家居机器人听觉交互控制模块的硬件设计与制作;交互式智能家居机器人语音识别模块的软件设计(语音感知与获取软件设计、语音分析处理与模式识别软件设计、语音识别与机器人动作控制程序设计)。返回5.2教学目标通过学习与实践,学生应掌握以下知识和技能:(1)掌握机器人语音识别的基本原理;(2)掌握机器人语音识别的基本电路;(3)掌握机器人语音识别调试软件的基本操作;(4)掌握机器人语音识别程序的编写方法;(5)能够编写机器人语音互动程序;(6)能够编写用机器人语音控制其他家电的程序;(7)能够编写机器人语音提醒软件的程序;(8)能够编写用机器人语音控制机器人动作的软件;返回5.3知识准备5.3.1关于语音识别LD3320非特定人语音识别模块以LD3320语音识别芯片为核心。LD3320芯片是一款语音识别专用芯片。该芯片高度集成化,外围只需要增加少量的器件就可以构成完整的语音识别方案。该芯片基于非特定人语音识别,任何人只要说出正确的识别语句,都可被识别,而不需要事先进行训练。识别语句以汉语拼音字符串的形式被送入芯片中识别。每条识别语句可以由单字、词组、短句组成。每条识别语句最多支持10个汉字或79个字节的拼音字符串。受不同的麦克风灵敏度的影响,使用不同的麦克风可能在识别率和识别距离方面会有不同的效果,但通常情况下识别率能达到90%。另外该芯片支持MP3语音播放功能,可满足设计时播放语音提示的需求。该芯片还支持并行和串行两种接口,串行方式可以简化与其他模块的连接。下一页返回5.3知识准备语音识别模块、硬件接口和管脚如图5.3.1、图5.3.2、图5.3.3所示;相关硬件说明和管脚定义如表5.3.1和表5.3.2所示。5.3.2听觉交互控制模块硬件的设计思路语音识别模块的设计(见图5.3.4)目的是用最简单的方式来操作LD3320芯片所具有的语音识别功能。(1)模块集成了LD3320用来作语音识别,主控MCU选用的是单片机STC12C5A60S2。演示的软件程序全部烧录在MCU的内置Flash中。主控MCU直接控制LD3320完成所有和语音识别相关的工作(主控MCU通过读/写LD3320的寄存器完成操作,例如在编辑关键词语时,主控MCU通过把关键词语的拼音串设置进LD3320的相关寄存器来完成编辑)。上一页下一页返回5.3知识准备(2)模块上另外集成了一片串行存储芯片,是华邦的W25Q40AVSNIG,大小为512kB。里面存储的是演示程序在运行过程中播放的声音素材,格式为MP3。为了节省存储空间,所有的录音声音都为8kB的MP3。(3)在电源方面,模块使用了NS公司的LM1117-3.3芯片,为LD3320提供3.3V的电压。5.3.3语音感知、获取的原理语音识别芯片完成工作的原理是:对通过MIC输入的声音进行频谱分析→提取语音特征与关键词语列表中的关键词语进行对比匹配→找出得分最高的关键词语作为识别结果输出。具体如图5.3.5所示。上一页下一页返回5.3知识准备语音识别通常需要两个阶段来完成:第一个阶段是训练,主要是提取语音特征参数;第二个阶段是识别,识别过程就是将输入的语音特征参数和模型库中的参数进行相似性比较,最后输出匹配度最高的特征参数以完成识别过程。语音识别芯片能在以下两种情况下给出识别结果:(1)当外部送入预定时间的语音数据(比如5s的语音数据)时,芯片对这些语音数据运算分析后,给出识别结果。(2)外部送入语音数据流,语音识别芯片通过端点检测VAD(VoiceActivityDetection)检测出用户停止说话,对用户开始说话到停止说话之间的语音数据进行运算分析后,给出识别结果。上一页返回5.4任务实现5.4.1方案设计该功能模块采用语音识别模块与底层控制板相结合的架构设计方案,同时用LD3320语音识别模块进行语音的识别,通过串口通信接口可以使用串口语音配置软件进行控制。首先通过配置软件配置好需要识别关键字的基本信息,该模块一旦有匹配的语音便会向串行接口发出响应字节,通过底层控制板获取相关的响应字节做出响应,如让语音识别模块播放声音或者控制机器人运动,完成基于机器人语音识别方面的功能。语音识别模块的系统总框图如图5.4.1所示。5.4.2听觉交互控制模块硬件的设计与制作由于语音识别模块采用串口通信协议,故采用底层控制板,通过IO口PD2和PD3来模拟串口通信,从而使语音识别模块和底层控制板紧密结合起来,如图5.4.2所示。下一页返回5.4任务实现5.4.3语音分析处理与模式识别设计在完成这个实验的时候需要使用到一个新的硬件,即USB转串口模块,如图5.4.3所示。在电脑上安装好驱动程序,可以在设备管理器中看到虚拟出来的转串口号,如图5.4.4所示,如果出现这个显示,说明驱动安装成功。当驱动安装成功后,使用USB转串口模块连接语音识别模块,就可以使用语音识别上位机软件进行匹配语音设置了。上一页下一页返回5.4任务实现5.4.3.1建立语音识别模板打开“关键词配置文件.txt”:0:11223344:xiaomiza::1:A5FFFF5B:xiao::2:A501015B:za::3:A502025B:mi::4:A503035B:kaideng:p12=0:ff5:A504045B:guandeng:p12=1:ff6:A505055B:qianjin:p13=0:ff7:A506065B:houtui:p13=1:018:A507075B:zuozhuan:p14=1:019:A508085B:youzhuan:p14=0:01上一页下一页返回5.4任务实现参照格式编辑或添加:4:A503035B:kaideng:p12=0:ff序号:0~50,序号0在口令模式中可定义为口令;串口数据:“11223344”表示串口输出的数据,可以为任意数字,注意中间用空格隔开,但必须保持4个字节,如果为空会输出“00000000”;关键词:“kaideng”,注意中间用空格隔开;IO输出:p12=0,外引的所有IO都可以编辑,注意中间不要有空格;IO动作时间:“ff”表示时间不限,“1”表示1s。注意:符号一个都不能少,最好的方法是复制一行,然后修改。上一页下一页返回5.4任务实现5.4.3.2下载语音识别模板第一步:打开上位机软件,如图5.4.5所示。第二步:选择发送文件,如图5.4.6所示。第三步:长按板子上的“SW1”按键上电,看到启动后LED灯D1常亮,表示进入下载模式;如果LED灯D1闪烁,请重新操作上电。第四步:看到D1常亮后,单击上位机的手动发送按钮,看到状态栏的提示,直到提示下载成功后才可以关闭上位机。第五步:下载成功后需要重新上电。打开串口,在上电的瞬间可以看到如图5.4.7所示的界面,这表示下载成功。上一页下一页返回5.4任务实现5.4.3.3设置串口输出模式在使用的时候,如果要通过串口直接模式连接,那么识别后,不是打开模块上的IO口,而是要让底层控制板驱动机器人动作,那么这就需要设置串口输出。设置串口输出的方法为短接图5.4.8所示的两个接线端子。5.4.4语音识别与机器人动作控制程序设计基于语音识别模块控制机器人动作时,首先需要通过语音配置上位机,把需要的关键字让语音识别模块识别。一旦发出匹配的语音,语音识别模块就会通过串口发出4个字节的匹配地址命令,底层控制板接收到4个字节的匹配信息后,最终做出判断该执行什么样的动作。下面举一个例子做说明。上一页下一页返回5.4任务实现如果要通过语音识别模块控制机器人左转或者右转,即发出左转命令,机器人就会左转,发出右转命令,机器人就会右转,那么该如何操作呢?首先使用上位机进行关键字匹配,匹配代码如下:0:11223344:xiaomiza::1:A507075B:zuozhuan:p14=1:012:A508085B:youzhuan:p14=0:01通过上面介绍的方法将下载到语音识别模块中,然后把语音识别模块设置为串口输出模式。上一页下一页返回5.4任务实现接下来需要对底层控制板进行编程,根据识别信息控制机器人运动。底层控制板的程序代码如下:/*语音识别模块使用模拟串口*RXisdigitalpin2(connecttoTXofotherdevice)*TXisdigitalpin3(connecttoRXofotherdevice)通过语音模块控制机器人左转或右转*/#include<SoftwareSerial.h>SoftwareSerialmySerial(2,3);//RX,TXCharaddr[4];上一页下一页返回5.4任务实现intINA=4;//电机A正反转控制端intPWMA=5;//电机A调速端intINB=7;//电机B正反转控制端intPWMB=6;//电机B调速端voidmotospd(intsp1,intsp2)//电机速度控制函数,括号内分别为左右电机速度值{//范围-255~+255,正值为正转,负值为反转if(sp1>0)digitalWrite(INA,HIGH);上一页下一页返回5.4任务实现elsedigitalWrite(INA,LOW);if(sp2>0)digitalWrite(INB,HIGH);elsedigitalWrite(INB,LOW);analogWrite(PWMA,abs(sp1));analogWrite(PWMB,abs(sp2));}voidsetup(){mySerial.begin(9600);上一页下一页返回5.4任务实现}voidloop(){if(mySerial.available()==4)//接收到4个字节{Addr[0]=mySerial.read();Addr[1]=mySerial.read();Addr[2]=mySerial.read();Addr[3]=mySerial.read();}if(addr[1]==0x07)上一页下一页返回5.4任务实现{motospd(50,100);//左转}elseif(addr[1]==0x08){motospd(100,50);//右转}elsemotospd(100,100);//直行delay(50);}上一页下一页返回5.4任务实现在这个例子中,主要判断第二个字节就可以判断出识别的是哪一个声音,因为左转(A507075B:zuozhuan:p14=1:01)和右转(A508085B:youzhuan:p14=0:01)的第一个字节全部为“0xA5”,无法判断,而第二个字节,一个为“0x08”,一个为“0x07”,则很容易判断出来。5.4.5程序代码的编辑、调试及运行把上面的程序代码下载到底层控制板中,成功后,就可以调试程序了。首先需要分析能不能按照要求实现原定计划的功能,上电让机器人正常工作,首先发出“小米子”,然后语音模块会发出“你好”声音。如果没有发出声音,则需要检测语音模块是否正常工作,供电电压是否正常,如果没有问题,则需要检测管脚是否有松动,直到发出“小米子”的命令,语音模块有应答为止。上一页下一页返回5.4任务实现如果上面这一步正确了,那么就可以发出关键字了,如发出“左转”命令,看机器人是否往左转。如果没有出现这个现象,也很容易解决,即用上面提到的USB转串口的模块,把语音识别模块连接到电脑上,使用串口调试助手监控串口数据,在正常情况下,发出“左转”命令,在串口调试助手上会看到4个字节数据(A507075B),如果出现这个字符,说明语音模块是正常的,这样就可以排除语音模块的问题。这样一步一步排除故障,即可调试好机器人。上一页返回5.5考核评价任务1交互式智能家居机器人的人机对话设计要求:能够独立使用语音模块,掌握语音模块的基本操作和配置关键字的方法。配置成功后,就可以和语音识别系统对话了,如发出“小米子”口令,机器人就会回复“你好”,如果发出控制命令,如“左转”,机器人会回复“收到”。也可以设置自己想要的应答语音,但是需要详细学习语音识别模块的操作手册。由于语音识别模块关联的概念比较多,特别是修改应答语音,需要一定的编程能力,所以需要进一步学习更多的相关知识。可以试着动一动手并且用专业的语言正确流利地展示项目成果,思路清晰、有条理,圆满回答老师与同学提出的问题。要求项目总结报告的格式符合标准,内容完整,有详细的过程记录和分析,并能提出一些新的建议。下一页返回5.5考核评价任务2接收主人发出的控制命令并响应要求:能够通过上位机软件配置关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一般工业固废堆放场管理规范
- 膝关节理疗康复技术方案
- 客户满意度调查反馈处理指引
- 身体成分检测评估解读规范
- 羊场生物安全管理制度
- 烟粉虱温室大棚生物防治技术方案
- 消防灭火实战演练实施手册
- 环保设施故障应急处置预案
- 食物中毒事件应急处置预案
- 酒店APP功能管理员题目及答案
- 市场监管局价格监管课件
- 紧固件基础知识培训课件
- 油气管道施工方案
- 2025至2030中国信用保险行业项目调研及市场前景预测评估报告
- 货运安保知识培训课件
- 深圳中考英语语法填空专项训练
- 内科医学说课设计与实施
- 2025年甘肃省检察官员额考试业务测试题及答案解析
- 2025年新疆投资发展集团有限责任公司人员招聘笔试备考题库含答案详解(完整版)
- 结构稳定理论(第2版)课件全套 第1-9章 结构稳定问题概述 -薄板的屈曲
- 合唱团服装管理办法
评论
0/150
提交评论