精品嵌入式语音识别及控制技术在智能家居系统中的应用毕业论文.docx
- 文档编号:26618870
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:20
- 大小:32.12KB
精品嵌入式语音识别及控制技术在智能家居系统中的应用毕业论文.docx
《精品嵌入式语音识别及控制技术在智能家居系统中的应用毕业论文.docx》由会员分享,可在线阅读,更多相关《精品嵌入式语音识别及控制技术在智能家居系统中的应用毕业论文.docx(20页珍藏版)》请在冰豆网上搜索。
精品嵌入式语音识别及控制技术在智能家居系统中的应用毕业论文
目录
一、摘要1
二、设计要求2
2.1语音红外控制2
2.2系统需求规划2
三、设计的作用和目的2
四、系统设计方案3
4.1系统原理框图3
4.2设计方案及特点3
五、系统硬件设计4
5.1开关控制的硬件设计4
5.2红外控制的硬件设计5
5.3硬件系统的设计7
六、系统软件设计8
6.1嵌入式操作系统的构建8
6.2MicrosoftSpeech的调用12
七、心得体会19
八、参考文献20
1
嵌入式语音识别及控制技术在智能家居系统中的应用
1、摘要
随着现代科学技术的发展和人民生活水平的提高,人们对居住环境的要求,正在从以往追求居室空间宽大和装饰豪华,向着追求品味、安全、舒适、便捷和智能方向发展。
人们对家庭住宅的观念也有所改变,家庭智能化是今后家庭装饰的必经之路。
然而智能家居目前还存在很多的问题。
嵌入式高性能芯片的出现、各种操作系统应用于嵌入式系统以及网络技术的发展为解决这些问题提供能了技术保障。
嵌入式系统芯片性能在不断提高,操作系统在嵌入式系统中也得到了广泛的应用,为智能家居目前存在的问题提供了解决途径,也为未来智能家居的发展提供了技术背景。
虽然,嗅觉、触觉也是人类固有的感觉,人们可以从中得到某些外界信息,但最重要、最精细的信息源只有图像和语言两种。
而且,语言是人类最重要的、最有效的、最常用的和最方便的通信形式。
这就很容易让人想到能否用自然语言代替传统的人机交流方式如键盘、鼠标等。
传统的家用电器的控制,无外乎两种控制方式:
手动或遥控。
随着家用电器的增多,开关和遥控版越来越多,使用极不方便,有时分不清谁是谁的控制器,甚至找不到遥控器等,特别是以后电视数字化了,频道增加,用遥控器翻查电视非常麻烦和耗时,而采用语音控制,可以很方便的分别出电视,空调等设备,并且可以直接叫出如“中央一台”来,所以语音识别及控制在智能家居中尤其重要。
2、设计要求
本课题主要通过选择性能优良的语音识别方法,嵌入在Windows操作系统中,对家居设备如电灯等开关电器,电视机等遥控设备实现语音控制,语音开关控制通过麦克风发出语音信号,实现电灯等开关设备的控制,要求:
实现开、关等基本控制;语音识别客厅、卧室、卫生间等不同开关设备;保留手动控制方式为备用控制。
2.1语音红外控制
语音控制电视机、空调等红外遥控设备,要求:
能学习不同遥控器的按键编码;语音识别不同遥控设备;语音控制代替相应的遥控器进行如调台等相应的控制操作;方便地增加新增遥控设备的控制功能。
2
2.2系统需求规划
根据系统功能的要求,系统软件需求分析:
性能优良的语音识别软件包:
为了减少硬件的开销,必须使用嵌入式式操作系统;为了使用该系统简单,
必须使用可视化编程语言。
硬件需求分析:
采集语音信号的声卡;能承载嵌入式操作系统的计算机最小。
系统;完成执行的单片机或者FPGA芯片。
3、设计目的和作用
语音识别控制应用在智能家居中,有十分重要的意义,语音识别的应用背景和科技基础如下图3.1所示。
图3.1语音识别的应用背景
语音识别具有很大的实际应用价值,其发展、成熟和实用化将推动许多产业的迅速发展,其中包括计算机、办公室自动化、通信、国防、机器人等等。
目前可以想象的语音识别主要应用有:
语音输入系统,作为一种最自然的文字输入方法,用口述代替键盘向计算机输入文字,这将给办公室自动化和出版界带来革命性的变化;语音控制系统,为人们在手动控制以外提供了一种更安全、更方便的控制方法,特别是当系统工作在一些特定的环境(如黑暗场所或手脚已被占用来进行其它动作的环境)或一些特殊的用户(如残疾人)时;基
于对话系统的数据库查询系统,为用户提供了更为自然、友好和便捷的数据库检索或查询,可以广泛运用在银行、交易所、民航等机构;除此之外,语音识别还可以用于口语翻译系统、计算机辅助教学、自动身份确认等很多领域。
4、设计方案
4.1系统原理框图
应用程序
SAP1
微软语音识别AP1
AP1
WindowsXPEmbcddcd嵌入式操作系统
数字信号底层操作
声音模拟信号命令传输
语音麦克风声卡UART单片机
状态返回
图4.1智能家居系统原理框图
语音信号通过声卡被计算机采集,送给语音识别软件进行识别,根据识别的结果,返
回相应的文本信号,送给应用程序处理,判断出该执行的命令,由USB口送出,单片机
或FPGA芯片等执行装置接受命令完成相应的动作。
4.2设计方案及特点
为实现设计方案图的功能,首先必须构建一个嵌入式操作系统,然后无缝地把语音识别软件包链接进去,制定UART通信协议,执行机构能和上位机顺利通信,完成信息交换和相应的命令动作。
此方案简单可行,运行可靠,成本低廉。
五、系统硬件设计
5.1开关控制的硬件设计
这部分的主要功能是实现语音控制电灯、门等设备的开和关,而不再去寻找开关的位置,还可以控制其他房间的设备,是生活变得很方便。
开关设备控制的基本原理是:
上位机通过语音识别系统获取人发出的信息命令,比如“卧室日光灯开”,主程序通过比较判断出相应的命令,把关灯的命令按前面所述的数据格式发送到USB口,转换上RS485总线通信,再通过转换接口转换成RS232的数据形式,相应的底层单片机取出编码信息,进行译码,判断出该驱动的继电器,在相应的端口输出高电平“1”,驱动后面的开关三极管和继电器,使卧室日光灯打开,实现语音控制的功能。
其原理流程如图3.2所示:
上位机
图5.2开关设备控制原理图
电路原理图如图5.3所示:
图5.3开关设备单片机控制电路
其中输出继电器之画了两个,JP1是一个网线插口,接RS485串行通信总线,两片
MAX485是完成RS485与RS232相互转换的功能。
单片机处理命令,驱动相应的继电
器进行开关控制。
5.2红外控制的硬件设计
单片机通过RS485总线取出遥控版按键编码信号,用程序合成相应按键的红外波形,经红外发射管发射出去控制电视机的开关,调台等操作,从而实现语音控制电视等遥控设
备。
大大方便使用。
其原理如下:
①外编码学习及遥控的设计红外编码学习以长虹电视机遥控版为例,发射的红外波形如图5.4所示:
图5.4红外发射波形图
用不同的周期来表示“0”、“1”编码,再通过38Khz脉冲调制,有红外发射管发射。
为了采集遥控版的波形进行分析,利用单片机的定时功能,准确地记录脉冲的上升沿和下沿,
计算脉冲的宽度,确定每个按键的二进制编码,并用文本文件存储下来,供上位机编程设置使用。
其流程如图3.5所示:
图5.5单片机编码学习流程图
单片机学习到的编码如图5.6所示:
图5.6红外线编码测试界面
②外遥控发射
红外遥控的基本原理是:
上位机通过语音识别系统获取人发出的信息命令,比如“中
央5台”(电视机已经预置为9频道),主程序通过比较判断,执行相应的命令,把9的
红外编码按特定的数据格式发送到USB口,转换上RS485总线通信,再通过转换接口转换成符合RS232通信协议的数据形式,相应的底层单片机取出信息,根据接收到的编码,严格按照遥控版波形规则,用定时功能把按键9的红外调制波形从新合成,发送到输出端口,经放大,最后有红外发射管发射,实现控制电视机的目的。
其原理流程如图5.7所示:
图5.7红外遥控原理图
其中USB先用转接线转换RS232再用两片MAX485芯片装换成RS485总线。
单片机选用STC12C5406,DIP20的封装,单片机红外编码学习及发射电路原理如图5.8所示:
图5.8红外编码采集及发射电路
为了省掉电路中的电源,利用了USB的自带电源,其中JP1是一个USB到RS232
的转换接口;IR-T是红外接收头,用于红外遥控的编码学习;IR-R是红外发射头,完成红外编码的发射功能。
5.3硬件系统的设计
整个硬件必须利用串行总线技术构成一个网络系统,硬件系统主要有上位机、通信网路和执行部分组成,系统网络原理框图如图5.1所示:
图5.1智能家居系统原理
上位机信号输出选用USB接口主要是USB口自带电源,使用方便,不需在做电源
部分。
通信总线选用RS485主要是为了增加传输距离满足大房间户型的需要,理论上可
以到4000米。
从上位PC机USB口出来,用一根USB——RS232转换线,转换为
RS232,再用两片MAX485芯片转换为RS485,JP2是网线插口,最后用网线构成网络传输信号,电路如图5.2所示。
图5.2USB→RS485电路
六、系统软件设计
6.1嵌入式操作系统的构建
首先介绍开发用的工作站,一台标准PC机,硬件配置要求如下:
操作系统WindowsXPProfessional,PIII500MHz以上(最好1GHz以上),256MB内存(最好512MB),3GB剩余硬盘空间。
构建方法流程图如图6.1所示:
图6.1构建方法流程图
第一步分区。
将硬盘设置两个分区,第二分区分配为700MB,可以是FAT32格式或NTFS格式(这
个分区将包含可启动的WindowsXPEmbeddedImage);第一分区使用所有剩余的硬盘空
间,可以设置为FAT32格式或者NTFS格式,在主分区中安装WindowsXP
Professional系统,并安装WindowsXPEmbedded开发工具修改BOOT.ini文件,将下面的代码部分增加到该文件中,可以使这台PC机双重启动,作为开发用的WindowsXPProfessional系统从分区一启动,而开发好的WindowsXPEmbeddedImage从第二个分区启动。
BOOT.ini文件内容如下:
[bootloader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition
(1)\\Windows[operatingsystems]
multi(0)disk(0)rdisk(0)partition
(1)\\Windows="MicrosoftWindowsXPProfessional"fastdetect
multi(0)disk(0)rdisk(0)partition
(2)\\Windows="MicrosoftWindowsXPEmbeddedd"fastdetect
第二步安装WindowsXPEmbedded开发工具。
将WindowsXPEmbedded开发包的CD1放入CD-ROM中,在自动运行的提示中,按照以下顺序安装XPE开发工具:
ToolsSetup:
安装XPE开发工具(包括TargetDesigner,ComponentDesigner,ComponentDatabaseManager,以及其它工具)。
DatabaseEngineSetup:
安装SQLServer2000DesktopEditiondatabaseengine(MSDE)。
DatabaseSetup:
安装组件数据库及Repositories。
第三步硬件平台分析。
在开发过程中,首先需要运行硬件分析程序来分析当前机器的硬件配置情况。
操作系
统与硬件紧密相关,只用充分地了解和支持硬件,才能让操作系统正常稳定的运行。
由于
X86结构计算机的硬件比较复杂,普通开发者很难对它充分地理解熟悉,因此,微软提供
了一个硬件分析工具来帮助开发者分析硬件。
WindowsXPEmbedded提供的这个工具叫
TargetAnalyzer,可以自动分析所在设备的硬件信息,TargetAnalyzer有两个版本:
TA.exe和TAP.exe。
分析完成后会在同一个目录中产生一个XML格式的输出文件Devices.pmq。
TAP.exe是一个32位的应用程序,运行在WindowsXP和Windows2000上,可以运行一些高级的硬件检测。
TA.exe是一个16位应用程序,运行在DOS上,可以用来检测一些无法安装Windows2000及WindowsXP的系统,但检测的功能要差一些,有的硬件设备无法识别。
下面我们运行TAP.exe来检测这台开发机的硬件配置:
进入C:
\\ProgramFiles\\WindowsEmbedded\\Utilities目录运行TAP.exe,会在同目录中生成Devices.pmq用文本编辑器打开这个Device.pmq文件,文件中用XML语言描述了目标设备的硬件信息,例如:
在PCI段中,描述了Intel的21440Ethernet控制器。
因为我们是在开发工作站上运行了这个程序,所以Devices.pmq中包含的是开发工作站的硬件信息。
第四步创建XPE组件。
使用Devices.pmq中的信息有两个办法:
其一:
可以根据这个文件生成一个XPE组件,为以后开发完整的操作系统作准备。
其二:
可以在开发时将这个文件直接导入。
将PMQ文件做成XPE组件的好处是,可以一次工作反复使用:
做成XPE组件后
保存到组件数据库中,以后每次开发系统都可以调用。
运行组件设计器ComponentDesigner。
将刚才生成的Devices.pmq文件导入,选择FileImpot…,弹出导入对话框,按下“Start”按钮,开始PMQ文件的导入过程,该过程大约耗时10分钟。
完成后,会在ComponentDesigner中显示一个‘Devices.sld’组件,将其改名为‘Demo
PlatformComponent’,展开ComponentDesigner中目录结构:
WindowsXPEmbeddedClient\Components\Devices选中Devices,将组件的Name属性由‘Devices’改为‘Demo
PlatformComponent,将该组件设为‘SelectorPrototypeComponent’类型,成为该类型的组件后,可在TargetDesigner中单独地选取该组件所关联的各个设备:
在Prototype栏中按下Browse,弹出SelectPrototypeComponent对话框。
在Prototypecomponentsource栏中选中Database选项。
在组件树列中展开到SoftwareTest&Developnent,选中SelectorPrototype
在Component组件。
在按下OK确定。
在选择FileSaveas菜单将该配置保存为“C:
\\XPE_Demo\\DemoPlatform.SLD”这个SLD文件中就包含了前面开发的DemoPlatformComponent组件,关闭ComponentDesigner。
第五步保存组件。
要在TargetDesigner中使用这个组件,需要先把这个组件保存到组件数据库中,操作如下:
打开ComponentDatabaseManager,开始菜单\\所有程序\\MicrosoftWindowsEmbeddedStudio\\ComponentDatabaseManager。
点击‘Import’按钮,在SLDfile:
栏中按下浏览按钮,找到“C:
\\XPE_Demo\\DemoPlatform.SLD”,点击Import。
Import成功后,关闭ComponentDatabaseManager。
第六步:
XPE系统信息的配置。
打开TargetDesigner,选择FileNew菜单,建立一个新的配置Configuration,确认DemoPlatformComponent是否在TargetDesigner左侧的组件浏览器中,如果发现该组件,则说明刚才的硬件分析工作顺利完成了。
要构造一个完整的XPE系统,首先需要在TargetDesigner中创建一个配置(Configuration),这个配置仅仅是一个空的开发框架,然后在该配置中添加所有的硬件支持组件,系统内核组件和软件功能组件。
添加完成后使用TargetDesigner自动检测组件的关联关系,并自动把缺少的组件添加到配置中。
首先运行TargetDesigner,选择File\New,创建一个新的WindowsXPEmbedded配置将该配置的Name改为DemoPlatform,在下面的ChoosePlatform中,选择WindowsXPEmbeddedClient(x86),按下OK按钮创建该配置并保存。
在TargetDesigner中间的组件列表栏中,选中DemoPlatform.slx,在右边的属性栏中修改配置的属性,添入您的个人信息(Name,Owner,Author,Description等)。
设置高级参数。
下面设置一些整个系统运行需要的参数,在配置浏览器的顶端,展开DemoPlatform.slx,选中Settings,这时右边的属性设置面板会显示可以设置的选项,在TargetDevicesSettings下面,点击Show,显示详细的选项,设置下列的配置信息:
BootDrive=C:
WindowsFolder=D:
\\Windows
ProgramFilesFolder=D:
\\ProgramFiles
DocumentsandSettingsfolder=D:
\\DocumentsandSettingsBootARCpath=multi(0)disk(0)rdisk(0)partition
(2)
BootPartitionSize(MB)=700
设置完成后,将配置信息保存到C:
\\XPE_Demo目录。
到此我们已经完成的硬件信息的分析并开发了一个硬件信息组件,开发了一个应用程序的组件,另外还建立了初始化的配置。
在本节中完成一个完整配置的开发工作。
第七步XPE系统组件的配置
打开TargetDesigner,第一个需要添加的组件是由Devices.pmq文件产生的宏组件DemoPlatformComponent,加入了这个组件,就把硬件信息全部添加到配置中;只要在TargetDesigner左侧的组件浏览器面板中双击该组件就可以添加该组件到配置中。
在组件浏览器中,找到DemoPlatformComponent组件,将该组件加入配置中。
向配置中添加DesignTemplate组件。
这个设计模板组件也是个宏组件,并且与DemoPlatformComponent组件非常类似;所谓宏组件是指一个仅仅包含组件关联信息的组件,而没有其它功能。
例如可以将与TCPIP协议有关的20个组件都与一个名为TCPIP的宏组件关联,通过添加这个TCPIP宏组件,可以一次添加那20个组件。
向配置中添加组件的方法有很多,可以单个组件逐一添加;可以添加宏组件;也可以通过TargetDesigner的关联性检查功能自动添加组件。
WindowsXPEmbedded提供了若干的模板组件,从单一的软件功能如TCPIP、DerictX8.0到整个系统模板如机顶盒模板、POS机模板都有,可以根据实际应用考虑使用其中一个。
加入Windows-basedTerminalProfessional组件,这个组件可以在DesignTemplates文件夹中找到。
在配置面板中,扩展这个组件,并选中Settings,右边的属性面板会显示该宏组件中主要的组件模块。
向配置中添加其它必须的核心组件。
在这个系统中需要添加组件有:
SpeechAPIEnglishTextToSpeechEngine组件、SpeechControlPanel组件、TextToSpeechCore组件。
进行关联性检查,确保所有的必要组件都已经添加到配置中:
在Configuration菜单中,选择CheckDependencies进行组件关联性检查,所有宏组件的关联组件以及缺少的组件都会自动添加到配置中。
第八步生成系统
在Configuration菜单中,选中BuildTargetImage…菜单项,出现Build对话框,按下Build按钮,TargetDesigner会完成SystemImage(系统镜像)的构建;完成后,在指定目录下会生成所构建的系统的文件和目录集合。
6.2MicrosoftSpeech的调用
①SAPI5.1的结构
IBM、微软等几家公司都提供语音识别和合成的二次开发平台,只有微软是免费的,而且经过实验,微软的识别系统在连续语音识别上的识别率虽然不太高,但在命令控制方式下却很高,完全可以满足语音控制应用程序的要求。
微软SpeechSDK5.1全面支持中文语音应用程序的开发,SDK里提供了语音识别和合成引擎相关组件、应用程序层接口、详细的技术资料和帮助文档。
它采用COM标准开发,底层协议都以COM组件的形式完全独立于应用程序层,为应用程序设计人员屏蔽掉复杂的语音技术,充分体现了COM的优点,即语音相关的一系列工作由COM组件完成:
语音识别由识别引擎(RecognitionEngine)管理,语音合成由语音合成引擎(SynthesisEngine)负责;程序员只需专注于自己的应用,调用相关的语音应用程序接口(SAPI)来实现语音功能。
SAPI5.1的结构见图6.3所示:
图6.3SAPI5.1的结构图
②SAPI5.1的工作原理
语音识别的工作原理。
语音识别的功能由一系列的COM接口协调完成,下面是语音识别的主要接口:
·IspRecognizer接口:
用于创建语音识别引擎的实例,在创建时通过参数选择引擎的种类。
识别引擎有两种:
独占(InProcRecognizer)的引擎和共享(SharedRecognizer)的
引擎。
独占的引擎对象只能由创建的应用程序使用,而共享的引擎可以供多个应用程序共同使用。
·IspRecoContext接口:
主要用于接受和发送与语音识别消息相关的事件消息,装载和卸载识别语法资源。
·IspRecoGrammar接口:
通过这个接口,应用程序可以载入、激活语法规则,而语法规则里则定义着期望识别的单词、短语和句子。
通常有两种语法规则:
听写语法(DictationGrammer)和命令控制语法(CommandandControl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 嵌入式 语音 识别 控制 技术 智能家居 系统 中的 应用 毕业论文