|
|
|
基于语音控制的自动电机设计 |
|
发布时间:2016-06-10 点击: 次 |
第1章 绪论
1.1 设计的背景及意义
以语音作为家居控制输入、信息交互、安全识别的人机交互媒介具有方便、安全、操作简易、人性化十足的特点,因此在各种智能控制系统中语音控制技术得到广泛运用。本选题旨在研究设计出一套以单片机为核心、对电机具有语音指令输入、语音安全识别功能的语音控制系统,可用于构建智能电机综合系统的一个语音子系统单元,实现用户运用语言控制受控电器的工作,并编写了上位机软件,同时可以用上位机对电机的状态控制与状态检测。本设计涉及到的技术范围广泛而典型,系统简洁而具有代表性,可以成为相似设计的一种参考。
1.2 国内外研究现状
1.2.1 国外研究现状
人类之间通过语言交流已经有很长的一段时间,用人类语言与其他事物之间的交流一直成为人类梦寐以求的理想,欧洲文学历史上出现多种童话故事,都涉及到人与生物之外的东西用人类语言交流。而真正将人类语言与无生命物体交流的研究的开始是以电子计算机的出现,以日本、美国为代表的发达国家在上世纪四十年代已经出现了声控灯,但是这种控制是简单的声音幅度信号控制,还算不上真正意义上的语音控制。在冷战期间,特工行业盛行,军备竞争白热化,以美国和前苏联为首的冷战大国将具有特点人生识别的系统用于军事上的身份识别,这种识别方式主要是根据特定人声的音色和频率加以区分,机器并不能理解人类语言的内涵。冷战结束后,电子技术、半导体技术的发展,使得计算机技术迅速发展,人类步入人工智能研究领域,逐渐出现了对人类语言内容“理解”的语音识别系统,这种系统也出现了对非特定人声识别的功能。 至今,人工智能还处于研究阶段,语音识别仅是在识别人类语言词库的量上增加,离人类的最终理想甚远。
1.2.2 国内研究现状
我国的工业起步较晚,因此许多行业较国外落后,许多研究领域也较晚。我国对于用语音控制物体的理想常见于许多神话故事之间,如与兵器对话,语音控制物体移动等。而我国真正接触到现代语音识别技术的是在上世纪八十年代初期,改革开放后,我国与国外的交流频繁,因此得以引进许多技术。但是,国外的语音识别以因为识别居多,我国从上世纪九十年代开始研究中文的语音识别技术,至今已经获得许多突破,有许多中文语音识别软件和语音识别集成器件被用于大众电子消费中。目前我国的语音识别技术的研究已经赶上了发达国家研究的脚步。
2 语音识别相关技术
1
2.1 语音识别系统
从最根本上来说,语音识别系统可以归结为模式识别系统,图1-1为这种系统的组成框图,与普通模式识别系统类似,它由特征提取、模式匹配、参数类库等三个基本部分组成。实现模式识别通常需要经历两个阶段,第一阶段,系统需要对待识别对象“学习”和“记忆”。通过这一步,建立起参考模式库,构成基本的语言组成要素,用于建立声学模型、以及进行语言的语法分析等。第二阶段,系统对输入的语言进行“识别”或者“判别”。这一阶段系统进行识别体系的种类选择以满足准确识别的要求,通过一系列的语音信号处理方法分析对应的识别方法需要的话音特征参数,再按照一定的准则和测度与第一阶段建好的参考库中的模型相对比,最后仲裁,可获得识别结果。
图1-1 语音识别系统的结构框图
在设计语音识别时要考虑许多因素,如服务对象、词表的体积、发音形式、任务性质等,根据影响要素的差异,语音识别系统的分类可以有很多,一下系统语音识别系统的设计要考虑到服务对象、词表大小、发音方式、任务性质等许多因素。按不同的影响因素,语音识别系统可以做许多分类。
1.以服务对象差异分为:特定人声语音识别和非特定人识别。所谓特定人是指系统仅对特定的一些人识别并响应相应动作,而非特定人声识别是不区分说话人,仅区分说话人的语音内容,这类系统可以给任意的人使用。
2.识别因素是不是被词表唯一决定,还跟词和词相互的干扰强度与发音的形式都有关联。但是词汇表的体积却制约着识别策略的选择。。
3.从识别发音词句的方式分为:孤立词和连续语音识别
在这两种发音方式中,框图1-1所示原理为孤立词组识别体系的结构,相对连续话音发音方式来说是比较简单的。孤立词组发音识别原理是在每个词都对应一个词表,具有特定的参考作用,一般由这个词经过反复的发音,从许多遍发音中通过特定的训练算法提取其特征得到。这种发音方式,词组与词组之间保留充足的时间间隔,目的是为了判别词组的起始与结束的时间点。连续发音识别的系统更加复杂,其成本也相应较高,目前还没被普及,主要运用于某些特殊领域。
2.2 语音识别步骤
语音识别的一般步骤为预处理、特征提取、识别判决。主要是对语音频谱进行分析,找出话音信号的特征参数,这些特征一般构成向量矩阵,称为特征矩阵,将矩阵保存成库;最后是识别,再次输入话音信号时,也经过AD转换成数字信号,然后提取本次特征,将这些特征与库里的特征进行对比,判决出最后的识别结果。
1、预处理
预处理阶段要进行的步骤很多,话音信号最初是通过话筒输入的原始模拟信号,所以要将这先信号进行AD转换得到程序可控制的数字信号,AD转换需要经过采样、保持、量化、编码四个最基本步骤。由于语音经过转换器转换、信号放大、在信道传输过程中存在非线性响应使话音信号失真;再次,做好后续的频谱分析工作,则需要克服话音信号在扩大十倍频率而衰减20分贝的特点,在预处理过程中还要使话音频谱信号加权运算。然而,实际运用考虑的远远不止这些,如克服环境噪声问题:如何增大信噪比,使噪声对识别结果的影响尽可能小等。
2、特征提取
话音信号在预处理后,接着就是信号的特征参数提取。特征提取在任意的模式识别系统中都是首要考虑的问题。对于话音信号来说,提取其特征参数主要有以下几点要求:
(1)代表性好,区分性好;
(2)特征参数之间相关度很低,越独立识别效果越好。
(3)所提取的参数计算量小,识别延时越短越好。
在频率中,被广泛用于提取处理话音信号特征参数的方法有线性预测倒谱系数特定人声识别,LPCC效果也很好,且处理的数据量也相对少。
3、识别判决
语音识别是把当前输入话音与特征参考库对比,进行匹配,选出一定的相似度结果作为识别结果的过程。较常见的语音识别方法有模板匹配法、随机模型法、基于人工神经算法。动态时间规整算法是模版匹配的代表;隐马尔可夫模型算法也是随机模型算法的代表;模板匹配算法与随机模型算法在同一条件下,识别的结果几乎相当,但是以动态时间规整的模板匹配算法具有计算量小,分析效率高等特点。神经网络识别算法需要大量训练样本参数,程序与算法复杂,对硬件要求较高,难以用单片机实现。
本设计涉及到特定人声识别和非特定人声识别,都是选定了集成芯片方案,其识别过程不用过多考虑,参考库以及识别算法都固化于芯片中,只对识别结果关心,进而控制电机。
第3章 系统总体方案设计及方案选择
3.2 系统总体方案设计
系统由终端(下位机)和上位机组成,下位机终端以STC12C5A60S2单片机为主控芯片,协调这各个功能部分的工作,并且能与上位机通信而受其控制。上位机运行以安装有Labview的PC机为平台,通过 PC机的串口与下位机通信,并运行上位机软件,本设计的工作包括了上位机的设计制作。系统的整体结构图如图2-1所示。
图 2-1 系统整体框图
3.3 方案比较和论证
方案一:使用传统的C51单片机,这类型号有如AT89C52,STC89C51等。这类单片机工作的时钟频率皆在20MHz以下,而且指令周期需要经过时钟周期分频,一般有12分频,这类分频通常也被称为1T模式。选择类单片机的优点是关于此类单片机的实际应用案例,样例程序等资源通过可通过互联网大量的获得。缺点是这类单片机由于生产的年代久远,现在都已经全部停产,生产商不再提供硬件版本更新与技术支持。而且此类单片机程序代码空间很小,一般为8KB,程序执行的RAM空间也不过256B,片上资源极其有限,因此,若本系统采用此类单片机,须得外接程序存储空间和程序运行空间电路进行扩展。
方案二:使用高端单片机,如ARM,DSP等器件为控制核心。这类芯片资源丰富,指令执行速度惊人,数据吞吐量巨大,因此一般高端手持设备,如手机、平板电脑、MP4播放器等,还有许多通讯设备如路由器、ADSL数字解调、无线网卡等都大量采用。其优点是运算速度快,集成度高,芯片体积小,片上资源丰富,支持运算种类多,功耗底等等。其缺点是芯片售价高,开发门槛高,需要开发人员具备资深的嵌入式开发基础与开发经验,由于涉及到许多商业信息,因此基于此类芯片的实际应用案例与参考例程等资源见诸于互联网较少,这无形中又给初学者设立了障碍。
方案三:使用增强型51单片机。正如前面方案一方案二所述,由于某些运用正处于“高不成,低不就”的尴尬境地,因此一些微处理生产厂商为了满足这些应用的需求,推出了许多基于51经典指令框架而又扩展了片上资源,提高了程序执行速度,可以方便快捷的如开发传统51单片机一样,网络免费资源较多,能够借鉴参考的案例不少。缺点是资源相对ARM、DSP等还是显得匮乏,不利于后期产品的升级。
综上述三种方案分析,在满足系统的需求前提下、本着简单可行原则,又考虑到作者所学专业以及学校平常开展的实训项目没有深入到ARM、DSP等器件开发,加上实验条件的限制导致此经验不足等因素,本设计最终采用方案三,控制核心选用了宏晶公司出品的一款型号为STC12C5A60S2的增强型单片机。其封装为双列直插型,更加方便电路的制作。它拥有8通道片上高速可达10位精度AD转换器等资源,完全能满足本系统的需求。在时钟与运算速度方面它也表现不俗,最大可支持33MHz时钟,且拥有指令周期不需要时钟分频的1T模式,也就是说即在同时钟频率下,它的指令执行速度是传统51的8到12倍。
3.3.2 语音识别方案选择
由前文可知,非特定人声识别的实现原理更为复杂,对硬件的要求也更高,但是市面上有不少的单片芯片解决方案。设计使用了LD3320,它可识别任何人的语句,识别效果好,还可以进行音频解码,对音频流解码播放,因此得到了广泛的使用。它与单片机的通信简单,采用SPI总线形式,速度快,还能进行多机通信控制。芯片内部集成了对语音自动识别的算法,单片机只需配置寄存器即可操作,编程简单。
目前,可用于开发上位机的软件有很多种,如VC,VB,JAVA,C#等等;但是这些软件入门比较困难,需要比较系统和专业的学习才能开发出一个完整功能的软件。本设计使用的开发软件是Labview,该软件提供能了丰富的图形编程功能,使用图形编程,降低了设计难度,易学易上手。软件中提供能丰富的功能语句和设备接口底层驱动,节省了设计人员处理底层的繁琐工作。软件界面人性化,开发出来的软件图形界面比较生动,被广泛用于工业的监控测试系统中。
第4章 系统硬件电路设计
4.1 主控最小系统
STC12C5A60S2最小系统由复位电路,晶振电路,电源电路和下载接口组成。如图4-2所示。
单片机在上电初期,内部的寄存器处于非稳定状态,在此状态下,程序的指针寄存器不能正确的指向程序入口地址,以及其他寄存器都是无法预测的一个值,程序是不能正常运行。所以需要给单片机一个初始的稳定状态,所以需要引入复位电路,在上电初期,短时间内给单片机内的寄存器都设置到一个确定的状态。还有在系统工作过程中当遇到程序异常,或者人为需要从系统初始状态运行程序,这还需要有手动复位电路,图3-2所示电路即为上电自动复位与手动复位结合的电路。在上电前,电容C4没有被充电,此时单片机引脚RESET的电位与系统电源地相同,当上电瞬间,系统内部寄存器状态不确定,需要在一定时间内使引脚RESET有效,又可以通过51单片机技术文档可知其为高电平复位有效,所以在这段时间内需要给RESET提供高电平,当单片机内部寄存器达到稳定状态后则需要使RESET引脚置为高电平,从而让单片机正常工作。上电后,根据电路分析基础理论可知电容有两端电压不能突变的特点,所以,电源给C4充电,有位移电流流过R19,并形成压降,电位为高电平,单片机进入复位状态。随着C4被充电两端电压上升,位移电流逐渐趋于0,R19上压降逐渐变小,到达单片机可判别的低电平最终趋于0,复位结束,系统进入正常工作状态。
复位的时间由C4与R19共同决定,它们有公式4-1关系。
(4-1)
上式3-1中表示电容充电到稳态时候的电压,为电容在充电时的两端电压。对式子4-1两端积分可得式4-2。
(4-2)
由于在初始时刻电容两端电压为0,因此,t=0时,积分常数可以通过这个状态求得。
(4-3)
因此
(4-4)
进一步变形得
(4-5)
由于51单片机高电平复位的时间大约为几mS,因此选用如图3-2所示的C4=10uF与R19=10Kohm。又因为5V单片机的高电平识别一般为3V以上,所以=3V,带入式子3-5可得(s).即本系统所设计的复位时间大约为9.1mS。
图4-1 STC12C5A60S2最小系统电路
4.2 语音识别电路设计
非特定人声识别的实现电路图4-2、图4-3所示,语音经图4-3中MIC元件转换成电信号,由图4-2中的LD3320完成识别。LD3320是采用前文所述的非特定人声、孤立词识别、大词汇表系统原理。芯片内自存储有标准普通话词汇识别特征参数库,用户无需训练,即可使用。其与单片机通信是通过SPI串行总线模式进行。
图 4-2 LD3320 及其外围电路
语音采集电路如图 4-2 所示:
图 4-3 语音采集电路
图4-3为语音采集电路,话筒将人的话音转换成模拟的电信号,并经滤波后输入图 4-2所示的LD3320语音识别芯片的MICP和MICN管脚。LD3320接受到输入的声音号,则会有一中断引脚输出中断信号,单片机读取到中断信号,程序控制SPI接口给LD3320发送识别命令,并且读取当采样到声音信号时,芯片会产生中断,此中断接到 单片机引脚上面的外部中断线上,单片机接收到中断后,会经过 SPI 接口向 LD3320 芯片发送识别命令。
4.3 电机驱动电路
电机驱动电路如下图4-4所示,控制的电机对象为直流电机,通过单片机IO控制Q1和Q2的通断,进而控制继电器RL1和RL2的常开常闭端的切换,不同的通断组合可以改变电机所受电源的极性,从而实现电机正反转、停止的功能。
图4-4 电机驱动电路
第4章 系统软件设计
4.1上位机前台界面设计
图4-1为上位机前台显示界面,界面上分别有控制正反转和停止的按钮、以及不同种电机状态对应的指示灯,可以根据实际的串口连接端口选择不同的端口号。本程序可在LabView系统环境运行,且在该环境中能实现远程浏览器的运行,即可以远程控制下位机;也可以打包成扩展名为.exe的可执行文件安装在电脑上,脱离LabView系统环境。
图4-1 界面显示效果
4.2 上位机后台程序设计
上位机后台的程序如图4-3所示。
图4-3 上位机后台程序
从图4-3可见,Labview的程序开发采用图形变成,简单方便明了,下位机通过串口与其上位机软件通信。当上位机软件上按钮被单击,则通过串口向下位机发送不同的控制字,它们的通信命令为:停止→‘S’,正转→‘R’,反转→‘L’。当下位机通过串口收到命令后开始控制电机执行动作,并返回一组数据给上位机,方便在远程控制时候确保被控对象已经工作,在通过上位机对数组的解析判断,在图形界面上显示出来。这个通信数据的通信格式为:第一、二、三个字分别代表电机的执行状态,‘1’为动作执行,‘0’ 表示动作未执行。
4.3 下位机软件设计
下位机由单片机控制,本设计在keil编译环境下使用C语言编写而成的。编程的程序设计框图如图4-4所示。当语音模块采集识别到信号,并且返回一个约定的代码,程序按照代码控制电机;在上位机模式下,上位机向下位机发送控制命令,下位机接收到控制字进行判断后也执行相应动作。
图4-4下位机程序控制流程图
第5章 系统调试及结果
5.1 仿真测试及其结果分析
下位机的仿真电路如图5-1所示,仿真环境为Proteus7.8版本软件,在keil环境中编写好下位机控制软件后,加载到Proteus环境中的单片机。由于STC12C5A60S2也为经典的51单片机,因此在软件中选用AT89S52代替。而AT89S52没有SPI的通信接口,且在该环境中没有语音识别芯片LD3320,无法模拟语音识别后的信号返回。因此使用拨码开关给单片机一组IO口输入一个值替代返回的识别控制指令。定义模拟规则如下,八位拨码开关为“0000 0001”为正转命令,“0001 0000”为反转命令,“0001 0001”为停止命令,其他编码不动作。
图5-1 仿真电路图
经过仿真,当薄码开关拨到0000 0001,电机反转;拨到00010000,电机正转;拨到0001001,电机停止;其他不动作。几种仿真状态对应如图5-2所示。
图5-2 模拟语音识别仿真
当仿真上位机与下位机通信控制时,要打开上位机软件,打开Proteus,此时两个软件都使用到串口。但是,此时两个软件均在一个PC平台上运行,要想给两个软件通过串口建立连接,则需要虚拟出两个串口,并且虚拟的形式将它们配对,本文仿真使用到是串口虚拟软件,其界面如图5-3所示。
图5-3 串口虚拟软件
配对好后,则先运行Proteus,再运行LabView上位机,则分别点击上位机各个按钮,观察仿真电路图中电机的动作与上位机中指示灯的状态。分别点击不同的按钮,仿真结果如图5-4所示。
图5-4 上位机仿真
经过仿真验证,可以模拟语音控制电机,还可以通过上位机控制,系统功能达到预期。
搭建好硬件电路后,将下位机程序调好烧写进下位机单片机中,然后对着语音识别模块的麦克风说特定的语句,“正转”,电机执行正转,说“反转”时电机反转,说“停止”时电机停止。把USB转TTL电平串口连接器将上位机和下位机相连,然后运行上位机,分别点击几个功能按钮,电机执行相应的动作,且LED指示灯也对应指示。说明实际电路也符合本设计的预期。
第6章 结论
通过大量查阅文献,本文从语音识别技术原理研究入手,确定了语音识别的系统方案,通过论证最终选定了控制芯片、语音识别模块和上位机的开发软件。通过实际的软硬件的设计制作,最终完成了本设计,达到了设计预期。从选题到设计制作完毕和论文撰写结束,本人有以下几点收获。
1、通过本设计,提升了运用专业知识解决问题的综合能力,并且养成了良好的设计思维模式和专业素养,加深了对大学期间的专业知识的理解和体会。
2、经过设计和论文的撰写,收获了学与做,并且升华到总结归纳的能力,为今后从事相关工作或者深入相关专业学习打下了基础。
3、本设计具有语音识别和上位机控制的功能,经过仿真和实际验证,系统可靠稳定,经济节约,可以使用于消费电子产品或者工业控制中。
在本设计整个设计制作过程中,本人虽然做了力所能及的工作,但仍然存在许多不足指出。就本设计本身而言,将来可以往以下几个方向努力。
1、加入电机的多种控制模式、如实现电机的调速、电机的降压启动等功能,为设计得到更广泛的运用铺垫基础。
2、上位机软件设计较为简单,今后可以进行功能性的拓展。
3、本设计仅为实验系统模型,距实际的生产或者工业运用还需待优化和提升。
|
|
|
|