1、目 录一、摘要 .1二、设计要求 .22.1 语音红外控制 .22.2 系统需求规划 .2三、设计的作用和目的 .2四、系统设计方案 .34.1 系统原理框图 .34.2 设计方案及特点 .3五、系统硬件设计 .45.1 开关控制的硬件设计 .45.2 红外控制的硬件设计 .55.3 硬件系统的设计 .7六、系统软件设计 .86.1 嵌入式操作系统的构建 .86.2 Microsoft Speech 的调用 .12七、心得体会.19八、参考文献 .201嵌入式语音识别及控制技术在智能家居系统中的应用1、摘要随着现代科学技术的发展和人民生活水平的提高,人们对居住环境的要求,正在从以 往追求居室空
2、间宽大和装饰豪华,向着追求品味、安全、舒适、便捷和智能方向发展。人们对家庭住宅的观念也有所改变,家庭智能化是今后家庭装饰的必经之路。然而智能家居目前还存在很多的问题。嵌入式高性能芯片的出现、各种操作系统应用于嵌入式系统以及网络技术的发展为解决这些问题提供能了技术保障。嵌入式系统芯片性能在不断提高,操作系统在嵌入式系统中也得到了广泛的应用,为智能家居目前存在的问题提供了解决途径,也为未来智能家居的发展提供了技术背景。虽然,嗅觉、触觉也是人类固有的感觉,人们可以从中得到某些外界信息,但最重要、最精细的信 息源只有图像和语言两种。而且,语言是人类最重要的、最有效的、最常用的和最方便的 通信形式。这就
3、很容易让人想到能否用自然语言代替传统的人机交流方式如键盘、鼠标等。 传统的家用电器的控制,无外乎两种控制方式:手动或遥控。随着家用电器的增多,开关和遥控版越来越多,使用极不方便,有时分不清谁是谁的控制器,甚至找不到遥控器等, 特别是以后电视数字化了,频道增加,用遥控器翻查电视非常麻烦和耗时,而采用语音控制,可以很方便的分别出电视,空调等设备,并且可以直接叫出如“中央一台”来,所以语音识别及控制在智能家居中尤其重要。2、设计要求本课题主要通过选择性能优良的语音识别方法,嵌入在 Windows 操作系统中,对家居设备如电灯等开关电器,电视机等遥控设备实现语音控制,语音开关控制通过麦克风发出语音信号
4、,实现电灯等开关设备的控制,要求: 实现开、关等基本控制;语音识别客厅、卧室、卫生间等不同开关设备;保留手动控制方式为备用控制。2.1 语音红外控制语音控制电视机、空调等红外遥控设备,要求: 能学习不同遥控器的按键编码;语音识别不同遥控设备;语音控制代替相应的遥控器进行如调台等相应的控制操作;方便地增加新增遥控设备的控制功能。 22.2 系统需求规划根据系统功能的要求,系统软件需求分析:性能优良的语音识别软件包:为了减少硬 件的开销,必须使用嵌入式式操作系统;为了使用该系统简单,必须使用可视化编程语言。硬件需求分析:采集语音信号的声卡;能承载嵌入式操作系统的计算机最小。系统;完成执行的单片机或
5、者 FPGA 芯片。3、设计目的和作用语音识别控制应用在智能家居中,有十分重要的意义,语音识别的应用背景和科技基础如下图 3.1 所示。图 3.1 语音识别的应用背景语音识别具有很大的实际应用价值,其发展、成熟和实用化将推动许多产业的迅速发 展,其中包括计算机、办公室自动化、通信、国防、机器人等等。目前可以想象的语音识 别主要应用有:语音输入系统,作为一种最自然的文字输入方法,用口述代替键盘向计算 机输入文字,这将给办公室自动化和出版界带来革命性的变化;语音控制系统,为人们在 手动控制以外提供了一种更安全、更方便的控制方法,特别是当系统工作在一些特定的环 境(如黑暗场所或手脚已被占用来进行其它
6、动作的环境)或一些特殊的用户(如残疾人)时;基于对话系统的数据库查询系统,为用户提供了更为自然、友好和便捷的数据库检索或查询,可以广泛运用在银行、交易所、民航等机构;除此之外,语音识别还可以用于口语翻译系统、计算机辅助教学、自动身份确认等很多领域。4、设计方案4.1 系统原理框图应用程序SAP1微软语音识别 AP1AP1Windows XP Embcddcd 嵌入式操作系统数字信号 底层操作声音 模拟信号 命令传输语音 麦克风 声卡 UART 单片机状态返回图 4.1 智能家居系统原理框图语音信号通过声卡被计算机采集,送给语音识别软件进行识别,根据识别的结果,返回相应的文本信号,送给应用程序处
7、理,判断出该执行的命令,由 USB 口送出,单片机或 FPGA 芯片等执行装置接受命令完成相应的动作。4.2 设计方案及特点为实现设计方案图的功能,首先必须构建一个嵌入式操作系统,然后无缝地把语音识 别软件包链接进去,制定 UART 通信协议,执行机构能和上位机顺利通信,完成信息交 换和相应的命令动作。此方案简单可行,运行可靠,成本低廉。五、系统硬件设计5.1 开关控制的硬件设计这部分的主要功能是实现语音控制电灯、门等设备的开和关,而不再去寻找开关的位 置,还可以控制其他房间的设备,是生活变得很方便。 开关设备控制的基本原理是:上位机通过语音识别系统获取人发出的信息命令,比如“卧室日光灯开”
8、,主程序通过比较 判断出相应的命令,把关灯的命令按前面所述的数据格式发送到 USB 口,转换上 RS485 总线通信,再通过转换接口转换成 RS232 的数据形式,相应的底层单片机取出编码信息, 进行译码,判断出该驱动的继电器,在相应的端口输出高电平“1” ,驱动后面的开关三极管和继电器,使卧室日光灯打开,实现语音控制的功能。其原理流程如图 3.2 所示:上位机 图 5.2 开关设备控制原理图 电路原理图如图 5.3 所示:图 5.3 开关设备单片机控制电路 其中输出继电器之画了两个,JP1 是一个网线插口,接 RS485 串行通信总线,两片MAX485 是完成 RS485 与 RS232 相
9、互转换的功能。单片机处理命令,驱动相应的继电器进行开关控制。5.2 红外控制的硬件设计单片机通过 RS485 总线取出遥控版按键编码信号,用程序合成相应按键的红外波形,经红外发射管发射出去控制电视机的开关,调台等操作,从而实现语音控制电视等遥控设备。大大方便使用。其原理如下: 外编码学习及遥控的设计红外编码学习以长虹电视机遥控版为例,发射的红外波形如语音识别 调用相应编码RS485 总线RS485RS232单片机译码识别命令继电器输出图 5.4 所示:图 5.4 红外发射波形图用不同的周期来表示“0” 、 “1”编码,再通过 38Khz 脉冲调制,有红外发射管发射。 为了采集遥控版的波形进行分
10、析,利用单片机的定时功能,准确地记录脉冲的上升沿和下沿,计算脉冲的宽度,确定每个按键的二进制编码,并用文本文件存储下来,供上位机编程设置使用。其流程如图 3.5 所示:图 5.5 单片机编码学习流程图 单片机学习到的编码如图 5.6 所示:图 5.6 红外线编码测试界面 外遥控发射红外遥控的基本原理是:上位机通过语音识别系统获取人发出的信息命令,比如“中央 5 台”(电视机已经预置为 9 频道),主程序通过比较判断,执行相应的命令,把 9 遥控板 红外接收管 单片机分析串口通信上位机编码存储的红外编码按特定的数据格式发送到 USB 口,转换上 RS485 总线通信,再通过转换接口转换成符合 R
11、S232 通信协议的数据形式,相应的底层单片机取出信息,根据接收到的编码,严格按照遥控版波形规则,用定时功能把按键 9 的红外调制波形从新合成,发送到输出端口,经放大,最后有红外发射管发射,实现控制电视机的目的。其原理流程如图 5.7所示:图 5.7 红外遥控原理图其中 USB 先用转接线转换 RS232 再用两片 MAX485 芯片装换成 RS485 总线。 单片机选用 STC12C5406,DIP20 的封装,单片机红外编码学习及发射电路原理如图 5.8 所示:图 5.8 红外编码采集及发射电路为了省掉电路中的电源,利用了 USB 的自带电源,其中 JP1 是一个 USB 到 RS232的
12、转换接口;IR-是红外接收头,用于红外遥控的编码学习;是红外发射头,调用相应编码RS485 总线语音识别单片机波形合成RS485RS232红外发射完成红外编码的发射功能。5.3 硬件系统的设计整个硬件必须利用串行总线技术构成一个网络系统,硬件系统主要有上位机、通信网 路和执行部分组成,系统网络原理框图如图 5.1 所示:图 5.1 智能家居系统原理 上位机信号输出选用 USB 接口主要是 USB 口自带电源,使用方便,不需在做电源部分。通信总线选用 RS485 主要是为了增加传输距离满足大房间户型的需要,理论上可以到 4000 米。 从上位 PC 机 USB 口出来,用一根 USBRS232
13、转换线,转换为RS232,再用两片 MAX485 芯片转换为 RS485,JP2 是网线插口,最后用网线构成网络 传输信号,电路如图 5.2 所示。Pc 机 转换USB 转换转换RS485 总线转换电视机等遥控设备FPGA 控制单片机开关控制单片机红外控制开关设备如:电灯其他复杂设备控制RS232图 5.2 USB RS485 电路六、系统软件设计6.1 嵌入式操作系统的构建首先介绍开发用的工作站,一台标准 PC 机,硬件配置要求如下:操作系统 Windows XP Professional,PIII 500MHz 以上(最好 1GHz 以上),256MB 内存 (最好 512MB), 3GB
14、 剩余硬盘空间 。构建方法流程图如图 6.1 所示:图 6.1 构建方法流程图第一步 分区。将硬盘设置两个分区,第二分区分配为 700MB,可以是 FAT32 格式或 NTFS 格式(这个分区将包含可启动的 Windows XP Embedded Image);第一分区使用所有剩余的硬盘空间,可以设置为 FAT32 格式或者 NTFS 格式,在主分区中安装 Windows XPProfessional 系统,并安装 Windows XP Embedded 开发工具 修改 BOOT.ini 文件, 将下面的代码部分增加到该文件中,可以使这台 PC 机双重启动,作为开发用的 Windows XP
15、Professional 系统从分区一启动,而开发好的 Windows XP Embedded Image 从第二个分区启动。 BOOT.ini 文件内容如下:boot loader timeout=30default=multi(0)disk(0)rdisk(0)partition(1)Windows operating systemsmulti(0)disk(0)rdisk(0)partition(1)Windows=“Microsoft Windows XP Professional“ /fastdetectmulti(0)disk(0)rdisk(0)partition(2)Windo
16、ws=“Microsoft Windows XP Embeddedd“ /fastdetect第二步 安装 Windows XP Embedded 开发工具。将 Windows XP Embedded 开发包的 CD1 放入 CD-ROM 中,在自动运行的提示中, 按照以下顺序安装 XPE 开发工具:Tools Setup:安装 XPE 开发工具(包括 Target Designer, Component Designer, Component Database Manager, 以及其它工具)。Database Engine Setup:安装 SQL Server 2000 Desktop
17、Edition database engine (MSDE)。 Database Setup:安装组件数据库及 Repositories。第三步 硬件平台分析。在开发过程中,首先需要运行硬件分析程序来分析当前机器的硬件配置情况。操作系统与硬件紧密相关,只用充分地了解和支持硬件,才能让操作系统正常稳定的运行。由于X86 结构计算机的硬件比较复杂,普通开发者很难对它充分地理解熟悉,因此,微软提供了一个硬件分析工具来帮助开发者分析硬件。Windows XP Embedded 提供的这个工具叫Target Analyzer,可以自动分析所在设备的硬件信息,Target Analyzer 有两个版本:TA.exe 和 TAP.exe。分析完成后会在同一个目录中产生一个 XML 格式的输出文件 Devices.pmq。 TAP.exe 是一个 32 位的应用程序,运行在 Windows XP 和 Windows 2000 上,可以运行 一些高级的硬件检测。TA.exe 是一个 16 位应用程序,运行在 DOS 上,可以用来检测一 些无法安装 Windows 2000 及 Windows XP 的系统,但检测的功能要差一些,有的硬件设 备无法识别。下面我们运行 TAP.exe 来检测这台开发机的硬件配