版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o"1-5"\h\z一、摘要1二、设计要求2语音红外控制22・2系统需求规划2三、设计的作用和目的2四、系统设计方案3系统原理框图34・2设计方案及特点3五、系统硬件设计45・1开关控制的硬件设计45・2红外控制的硬件设计55・3硬件系统的设计7六、系统软件设计86.1嵌入式操作系统的构建8MICROSOFTSPEECH的调用12七、心得体会19八、参考文献2011嵌入式语音识别及控制技术在智能家居系统中的应用一、摘要随着现代科学技术的发展和人民生活水平的提高,人们对居住环境的要求,正在从以往追求居室空间宽大和装饰豪华,向着追求品味、安全、舒适、便捷和智能方向发展。人们对家庭住宅的观念也有所改变,家庭智能化是今后家庭装饰的必经之路。然而智能家居目前还存在很多的问题。嵌入式高性能芯片的出现、各种操作系统应用于嵌入式系统以及网络技术的发展为解决这些问题提供能了技术保障。嵌入式系统芯片性能在不断提高,操作系统在嵌入式系统中也得到了广泛的应用,为智能家居目前存在的问题提供了解决途径,也为未來智能家居的发展提供了技术背景。虽然,嗅觉、触觉也是人类固有的感觉,人们可以从中得到某些外界信息,但最重要、最精细的信息源只有图像和语言两种。而且,语言是人类最重要的、最有效的、最常用的和最方便的通信形式。这就很容易让人想到能否用自然语言代替传统的人机交流方式如键盘、鼠标等。传统的家用电器的控制,无外乎两种控制方式:手动或遥控。随着家用电器的增多,开关和遥控版越来越多,使用极不方便,有时分不清谁是谁的控制器,其至找不到遥控器等,特别是以后电视数字化了,频道增加,用遥控器翻查电视非常麻烦和耗时,而釆用语音控制,可以很方便的分别出电视,空调等设备,并且可以直接叫出如“中央一台”來,所以语音识别及控制在智能家居中尤其重要。二、设计要求本课题主要通过选择性能优良的语音识别方法,嵌入在Windows操作系统中,对家居设备如电灯等开关电器,电视机等遥控设备实现语音控制,语音开关控制通过麦克风发出语音信号,实现电灯等开关设备的控制,要求:实现开、关等基本控制;语音识别客厅、卧室、卫生间等不同开关设备;保留手动控制方式为备用控制。2.1语音红外控制语咅控制电视机、空调等红外遥控设备,要求:能学习不同遥控器的按键编码;语音识别不同遥控设备;语音控制代替相应的遥控器进行如调台等相应的控制操作;方便地增加新增遥控设备的控制功能。22.2系统需求规划根据系统功能的要求,系统软件需求分析:性能优良的语音识别软件包:为了减少硬件的开销,必须使用嵌入式式操作系统;为了使用该系统简单,必须使用可视化编程语言。硬件需求分析:釆集语音信号的声卡;能承载嵌入式操作系统的计算机最小。系统;完成执行的单片机或者FPGA芯片。三、设计目的和作用语音识别控制应用在智能家居中,有十分重要的意义,语音识别的应用背景和科技基础如下图3.1所示。图3.1语音识别的应用背景语音识别具有很大的实际应用价值,其发展、成熟和实用化将推动许多产业的迅速发展,其中包括计算机、办公室自动化、通信、国防、机器人等等。目前可以想象的语音识别主要应用有:语音输入系统,作为一种最自然的文字输入方法,用口述代替键盘向计算机输入文字,这将给办公室自动化和出版界带来革命性的变化;语音控制系统,为人们在手动控制以外提供了一种更安全、更方便的控制方法,特别是当系统工作在一些特定的环境(如黑暗场所或手脚已被占用來进行其它动作的环境)或一些特殊的用户(如残疾人)时;基于对话系统的数据库查询系统,为用户提供了更为自然、友好和便捷的数据库检索或查询,可以广泛运用在银行、交易所、民航等机构;除此之外,语音识别还可以用于口语翻译系
统、计算机辅助教学、自动身份确认等很多领域。四、设计方案1系统原理框图应用程序SAP1‘API微软単音识别APIJAPI底层操作UART命令传输■底层操作UART命令传输■•单片机状态返回|数字信号声音模拟信号语音麦克风►声卡图4.1智能家居系统原理松图语咅信号通过声卡被计算机釆集,送给语音识别软件进行识别,根据识别的结果,返回相应的文本信号,送给应用程序处理,判断出该执行的命令,由USB口送出,单片机或FPGA芯片等执行装置接受命令完成相应的动作。2设计方案及特点为实现设计方案图的功能,首先必须构建一个嵌入式操作系统,然后无缝地把语音识别软件包链接进去,制定UART通信协议,执行机构能和上位机顺利通信,完成信息交换和相应的命令动作。此方案简单可行,运行可靠,成本低廉。五、系统硬件设计1开关控制的硬件设计这部分的主要功能是实现语音控制电灯、门等设备的开和关,而不再去寻找开关的位置,还可以控制其他房间的设备,是生活变得很方便。开关设备控制的基本原理是:上位机通过语音识别系统获取人发出的信息命令,比如''卧室日光灯开”,主程序通过比较判断出相应的命令,把关灯的命令按前面所述的数据格式发送到USB口,转换上RS485总线通信,再通过转换接口转换成RS232的数据形式,相应的底层单片机取出编码信息,进行译码,判断出该驱动的继电器,在相应的端口输出高电平“1”,驱动后面的开关三极管和继电器,使卧室日光灯打开,实现语音控制的功能。其原理流程如图3.2所示:上位机图5.2上位机图5.2开关设备控制原理图电路原理图如图5.3所示:VCC
丄rigeGXDIH—ROVCCIX<iM>MAXI'iiI:R、I》R«>VCCgBDGAD(GNDMAX4X5~VCC
丄rigeGXDIH—ROVCCIX<iM>MAXI'iiI:R、I》R«>VCCgBDGAD(GNDMAX4X5~--HvrckwIGNIO—<=>—i—.邓卜HD12RSTP3CRXDrjITXDXIAL2XTALIPi.2HN10PL5INT!P;4'Tl>HIP3.5TIPCAIGM>VCCSCLK.PI7MISO.PI^MOsilPI<S&PI.4PI>'ri2
PIIPldPCACi'P^7IKK2IG1IIK?SfVUCSlW\<3'jp.厂丄<iNI>VCC(.M3GND图5.3开关设备单片机控制电路其中输出继电器之画了两个,JP1是一个网线插口,接RS485串行通信总线,两片MAX485是完成RS485与RS232相互转换的功能。单片机处理命令,驱动相应的继电器进行开关控制。5.2红外控制的硬件设计单片机通过RS485总线取出遥控版按键编码信号,用程序合成相应按键的红外波形,经红外发射管发射出去控制电视机的开关,调台等操作,从而实现语音控制电视等遥控设备。大大方便使用。其原理如下:①外编码学习及遥控的设计红外编码学习以长虹电视机遥控版为例,发射的红外波形如图5.4所示:T1T2T1T2图5.4红外发射波形图用不同的周期來表示“0”、“1”编码,再通过38Khz脉冲调制,有红外发射管发射。为了采集遥控版的波形进行分析,利用单片机的定时功能,准确地记录脉冲的上升沿和下沿,计算脉冲的宽度,确定每个按键的二进制编码,并用文本文件存储下來,供上位机编程设置使用。其流程如图3.5所示:图5.5单片机编码学习流程图单片机学习到的编码如图5.6所示:旻示授畫的数整:■霆发世的:aas日I港空I安送逊菇I打开串口II退出I图5.6红外线编码测试界而②外遥控发射红外遥控的基本原理是:上位机通过语音识别系统获取人发出的信息命令,比如“中央5台”(电视机已经预置为9频道),主程序通过比较判断,执行相应的命令,把9的红外编码按特定的数据格式发送到USB口,转换上RS485总线通信,再通过转换接口转换成符合RS232通信协议的数据形式,相应的底层单片机取出信息,根据接收到的编码,严格按照遥控版波形规则,用定时功能把按键9的红外调制波形从新合成,发送到输出端口,经放大,最后有红外发射管发射,实现控制电视机的目的。其原理流程如图5.7所示:
图5.7红外遥控原理图其中USB先用转接线转换RS232再用两片MAX485芯片装换成RS485总线。单片机选用STC12C5406,DIP20的封装,单片机红外编码学习及发射电路原理如图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所示。VCCJP1TXDRXD・•GND・——GNDVCCVCCUSB-RS232(5V)U2RXDROVCC莊BDEADIVCCJP1TXDRXD・•GND・——GNDVCCVCCUSB-RS232(5V)U2RXDROVCC莊BDEADIGNDU1TXDMAX485GNJP2.N.C.;N.C.、N.C.T-B・T-AROVCCREBDEADIGNDFGNDMAX485RJ-456GND?N.C.R-BR-A图5・2USB〜RS4S5电路六、系统软件设计1嵌入式操作系统的构建首先介绍开发用的工作站,一台标准PC机,硬件配置要求如下:操作系统WindowsXPProfessional,Pill500MHz以上(最好1GHz以上),256MB内存(最好512MB),3GB剩余硬盘空间。构建方法流程图如图6.1所示:AnalyzeAuthorTest图6・1构建方法流程图第一步分区。将硬盘设置两个分区,第二分区分配为700MB,可以是FAT32格式或NTFS格式(这个分区将包含可启动的WindowsXPEmbeddedImage):第一分区使用所有剩余的硬盘空间,可以设置为FAT32格式或者NTFS格式,在主分区中安装WindowsXPProfessional系统,并安装WindowsXPEmbedded开发工具修改BOOT,ini文件,将下面的代码部分增加到该文件中,可以使这台PC机双重启动,作为开发用的WindowsXPProfessional系统从分区一启动,而开发好的WindowsXPEmbeddedImage从第二个分区启动。BOOT,ini文件内容如下:[bootloader]timeout=30defauIt二multi(0)disk(0)rdisk(0)partition(l)\\WindowsLoperatingsystems]multi(0)disk(0)rdisk(0)partition(1)\\W'indows二"MicrosoftWindowsXPProfessional"/fastdetectmulti(0)disk(0)rdisk(0)partition(2)\\W'indows二"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.exeo分析完成后会在同一个目录中产生一个XML格式的输出文件Devices,pmqoTAP.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文件导入,选择File/Impot…,弹出导入对话框,按下“Start”按钮,开始PMQ文件的导入过程,该过程大约耗时10分钟。完成后,会在ComponentDesigner中显示一个,Devices,sld'组件,将其改夕i为*DemoPlatformComponent',展开ComponentDesigner中目录结构:WindowsXPEmbeddedClient\Components\Devices选中Devices,将组件的Name属性由'Devices'改为'DemoPlatformComponent,将该组件设为'SelectorPrototypeComponent'类型,成为该类型的组件后,可在TargetDesigner中单独地选取该组件所关联的各个设备:在Prototype栏中按下Browse,弹出SelectPrototypeComponent对话框。在Prototypecomponentsource栏中选中Database选项。在组件树列中展开到Software/Test&Developnent,选中SelectorPrototype在Component组件。在按下OK确定。在选择File/Saveas菜单将该配置保存为"C:\\XPE_Demo\\DemoPlatform.SLDM这个SLD文件中就包含了前面开发的DemoPlatformComponent组件,关闭ComponentDesigner。第五步保存组件。要在TargetDesigner中使用这个组件,需要先把这个组件保存到组件数据库中,操作如下:打开ComponentDatabaseManager,开始菜单\\所有程序WMicrosoftWindowsEmbeddedStudio\\ComponentDatabaseManager。点击4Import'按钮,在SLDfile:栏中按下浏览按钮,找到"C:\\XPE_Demo\\DemoPlatfo:nn.SLD”,点击ImportoImport成功后,关闭ComponentDatabaseManagero第六步:XPE系统信息的配置。打开TargetDesigner,选择File/New菜单,建立一个新的配置Configuration,确认DemoPlatformComponent是否在TargetDesigner左侧的组件浏览器中,女口果发现该组件,则说明刚才的硬件分析工作顺利完成了。要构造一个完整的XPE系统,首先需要在TargetDesigner中创建一个配置(Configuration),这个配置仅仅是一个空的开发框架,然后在该配置中添加所有的硬件支持组件,系统内核组件和软件功能组件。添加完成后使用TargetDesigner自动检测组件的关联关系,并自动把缺少的组件添加到配置中。首先运行TargetDesigner,选择File\New,创建一个新的WindowsXPEmbedded配置将该配置的Name改为DemoPlatform,在下面的ChoosePlatform中,选择WindowsXPEmbeddedClient(x86),按下OK按钮创建该配置并保存。在TargetDesigner中间的组件列表栏中,选中DemoPlatform,six,在右边的属性栏中修改配置的属性,添入您的个人信息(Name,Owner,Author,Description等)。设置高级参数。下面设置一些整个系统运行需要的参数,在配置浏览器的顶端,展开DemoPlatforni.slx,选中Settings,这时右边的属性设置面板会显示可以设置的选项,在TargetDevicesSettings下面,点击Show,显示详细的选项,设置下列的配置信息:BootDrive=C:WindowsFolder=D:\\WindowsProgramFilesFolder=D:\\ProgramFilesDocumentsandSettingsfolder=D:WDocumentsandSettingsBootARCpath=multi(0)disk(0)rdisk(0)partition(2)BootPartitionSize(MB)=700设置完成后,将配置信息保存到C:\\XPE_Demo目录。到此我们已经完成的硬件信息的分析并开发了一个硬件信息组件,开发了一个应用程序的组件,另外还建立了初始化的配置。在本节中完成一个完整配置的开发工作。第七步XPE系统组件的配置打开TargetDesigner,第一个需要添加的组件是由Devices,pmq文件产生的宏组件DemoPlatformComponent,加入了这个组件,就把硬件信息全部添加到配置中;只要在TargetDesigner左侧的组件浏览器面板中双击该组件就可以添加该组件到配置中。在组件浏览器中,找到DemoPlatformComponent组件,将该组件加入配置中。向配置中添加DesignTemplate组件。这个设计模板组件也是个宏组件,并且与DemoPlatformComponent组件非常类似;所谓宏组件是指一个仅仅包含组件关联信息的组件,而没有其它功能。例如可以将与TCP/IP协议有关的20个组件都与一个名为TCP/IP的宏组件关联,通过添加这个TCP/IP宏组件,可以一次添加那20个组件。向配置中添加组件的方法有很多,可以单个组件逐一添加;可以添加宏组件;也可以通过TargetDesigner的关联性检查功能自动添加组件。WindowsXPEmbedded提供了若干的模板组件,从单一的软件功能如TCP/IP.DerictXS.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所ZJ*ApplicationApplicationApplicationSAPIRuntimeRecognitionEngineSynthesisEngineSAPIRuntimeRecognitionEngineSynthesisEngine图6.3SAPI5.1的结构图②SAPI5.1的工作原理语音识别的工作原理。语音识别的功能由一系列的COM接口协调完成,下面是语音识别的主要接口:・IspRecognizer接口:用于创建语音识别引擎的实例,在创建时通过参数选择引擎的种类。识别引擎有两种:独占(InProcRecognizer)的引擎和共享(SharedRecognizer)的引擎。独占的引擎对象只能由创建的应用程序使用,而共享的引擎可以供多个应用程序共同使用。•IspRecoContext接口:主要用于接受和发送与语音识别消息相关的事件消息,装载和卸载识别语法资源。・IspRecoGrammar接口:通过这个接口,应用程序可以载入、激活语法规则,而语法规则里则定义着期望识别的单词、短语和句子。通常有两种语法规则:听写语法(DictationGrammer)和命令控制语法(CommandandControlGrammer)。听写语法用于连续语音识别,可以识别出引擎词典中大量的词汇,例如,可以识别报纸上的一篇文章、你的一段讲话、一个故事等,也就是说,可以用语音代替键盘进行文字输入;命令控制语法主要用于识别用户在语法文件里自定义的一些特定的命令词汇和句子,譬如,菜单命令(打开文件,保存文件,插入等),画图命令(画一条直线,过直线外一点A作直线的垂线等)。这些语法规则以XML文件的格式编写,通过IspRecoGrammar接口载入、激活。•IspPhrase接口:用于获取识别的结果,包括识别的文字、识别了哪一条语法规则等。语音识别的功能由上面的COM接口共同完成,而且遵守特定的工作程序。概括地说,语音识别的工作原理遵循COM组件的工作原理和一般Windows应用程序的工作原理(消息驱动机制),具体如下:・首先,初始化COM;•接着要实例化各个语音接口(以特定的顺序),设置识别语法、识别消息,使识别引擎处于工作状态;・当有语法规则被识别后,语音接口向应用程序发出语音识别消息;•在识别消息响应函数里,通过IspPhrase接口获取识别的结果;・应用程序退出时,卸载COMo③MicrosoftSpeech的调用方法SAPI5.1通过注册类型库來提供许多重要的接口、类型和常量,而SAPI5.0则没有,这使得SAPI5.1在Delphi中调用起来更加方便、快捷。只需要在Delphi中导入类型库之后,就可以在Delphi中以控件形式调用SAPI5.IoDelphi中,选择"ProjectImportTypeLibrary...”,然后添力『'Micros。ftSpeechObjectLibrary(Version5.1)"。导入的类库将保存在“SpeechLib_TLB.pas”单元中,并且会安装到一个包集合中(既可以是己有包,也可以是新包)。安装完成后,就可以在Delphi的控件集中使用SAPI5.1的接口了。程序中添加"SpSharedRecoContext"控件,Delphi会自动将“SpeechLib_TLB.pas”单元添加到程序的引用中,并且生成一个实例"SpSharedRecoContext"。之后添加如下代码即可以在程序中使用MicrosoftSpeechRecognition(SR)的功能了。SRGrammar:ISpeechRecoGrammar;procedureTfrmMain.FormCreate(Sender:TObject);beginSpSharedRecoContext.Eventinterests:=SREAllEvents:SRGrammar:=SpSharedRecoContext.CreateGrammar(O);SRGrammar.CmdLoadFromFile(JSpeech.xml,,SLODynamic);当MicrosoftSpeech识别出语咅后,就会将结果以ISpeechRecoResult数据结构形式回传给程序,只需在程序中读取结果并按程序要求进行处理即可。以下为ISpeechRecoResult的读取过程,详细内容将在语音识别返回结果的分析中阐述。procedureTfrmMain.SpSharedRecoContextRecognition(ASender:TObject;StreamNumber:Integer;StreamPosition:01eVariant;RecognitionType:TOleEnum;constResult:ISpeechRecoResult):i:integer;ReturnResult:String;Element:ISpeechPhraseElement;beginfori:=0toResult・Phraseinfo.Elements・Count-ldobeginElement:二Result・Phraselnfo.Elements・Item(i);ReturnResult:二ReturnResult+Element・DisplayText+'';end;ReturnBackCall(PChar(ReturnResult));end;④XML语法为了增加语音识别的灵活性,以便丨I后的更新及修改,MicrosoftSpeech使用XML格式存取命令,并且提供了多种功能的标记。XML是ExtensibleMarkupLanguage的缩写,即可扩展标记语言是一种可以用來创建自己的标记的标记语言。它由万维网协会(W3C)创建,用來克服HTML(即超文本标记语言(HypertextMarkupLanguage),它是所有网页的基础)的局限。和HTML一样,XML基于SGML—标准通用标记语言(StandardGeneralizedMarkupLanguage)□尽管SGML己在出版业使用了数十年,但其理解方面的复杂性使许多本打算使用它的人望而却步(SGML也代表“听起來很棒,但或许以后会用(Soundsgreat,maybelater)n)。XML是为Web设计的。XML实际上是Web上表示结构化信息的一种标准文本格式,它没有复杂的语法和包罗万象的数据定义。XML同HTML一样,都來自SGML(标准通用标记语言)。SGML是一种在Web发明之前就早己存在的用标记来描述文档资料的通用语言。但SGML十分庞大且难于学习和使用。鉴于此,人们提出了HTML语言。但近年来,随着Web应用的不断深入,HTML在需求广泛的应用中已显得捉襟见肘,有人建议直接使用SGML作为Web语言。但SGML太庞大了,学用两难尚且不说,就是全面实现SGML的浏览器也非常困难。于是Web标准化组织W3C建议使用一种精简的SGML版本——XMLoXML与SGML一样,是一个用來定义其他语言的元语言。与SGML相比,XML规范不到SGML规范的1/10,简单易懂,是一门既无标签集也无语法的新一代标记语言。XML继承了SGML的许多特性,首先是可扩展性。XML允许使用者创建和使用他们自己的标记而不是HTML的有限词汇表。这一点至关重要,企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言,英至特定行业一起来定义该领域的特殊标记语言,作为该领域信息共亭与数据交换的基础。其次是灵活性。HTML很难进一步发展,就是因为它是格式、超文本和图形用户界面语义的混合,要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,Web用户所追求的许多先进功能在XML环境下更容易实现。第三是自描述性。XML文档通常包含一个文档类型声明,因而XML文档是自描述的。不仅人能读懂XML文档,计算机也能处理。XML表示数据的方式真正做到了独立于应用系统,并且数据能够重用。XML文档被看作是文档的数据库化和数据的文档化。除了上述先进特性以外,XML还具有简明性。它只有SGML约20%的复杂性,但却具有SGML功能的约80%oXML比完整的SGML简单得多,易学、易用并且易实现。另外,XML也吸收了人们多年來在Web上使用HTML的经验。XML支持世界上儿乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,应用XML的软件能处理这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准,这种数据表示独立于机器平台、供应商以及编程语言。它将为网络计算注入新的活力,并为信息技术带来新的机遇。目前,许多大公司和开发人员已经开始使用XML,包括B2B在内的许多优秀应用已经证实了XML将会改变今后创建应用程序的方式。正因为XML语言具有非常好的扩展性及先进性,非常适合MicrosoftSpeech中,以增强MicrosoftSpeech的灵活性及模糊识别能力。MicrosoftSpeech中的XML釆用XMLSchema定义。XML有两种定义方法:DTD(DocumenttypeDefinition)和XSD(XMLSchemaDefinition)oXML文件的文件类型描述(DTD)可以看成一个或者多个XML文件的模板,在这里可以定义XML文件中的元素、元素的属性、元素的排列方式、元素包含的内容等等。DocumenttypeDefinition(文档类型定义),它为一个XML文档或者文档集合建立一套规贝叽它本身不是独立的技术规范,而是属于规范的一部分,XML文档中的文档类型声明既可以是标记约朿,也可以是带有标记约束的外部文档。这两种约束的总和就是DTD。它规定了XML文档的构建方式。XMLSchema描述了XML文档的结构。可以用一个指定的XMLSchema(通常以xsd扩展需结尾)来验证某个XML文档,以检查该XML文档是否符合其要求。如果符合的话,那么该XML文档被称为是有效的(valid),否则它就是非有效的(invalid)o可以通过XMLSchema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。MicrosoftSpeechSR中的语法标记如F:元素属性<DEFINE>DISP<DICTATION>DYNAMIC〈GRAMMAR〉(documentelement)EXPORT<ID>ID<L>INTERPRETER<LIST>LANGID<0>LEXDELIMITER<OPT>MAX<P>MIN<PHRASE>NAME<RESOURCE>OBJECT<RULE>PRON<RULEREF>PROPID<TEXTBUFFER>PROPNAME<WILDCARD>REFIDTOPLEVELURLVALVALSTRWEIGHTWORDTYPE釆用以上语法即可写出MicrosoftSpeechRecognition可以识别的XML文件,内容如下:〈GRAMMARLANGID二〃804〃><RULENAME=,,AllCmd/,TOPLEVEL二〃ACTIVE"〉〈0>请〈/0>〈0>把〈/0>〈P>客厅〈/P><P>H</P>〈0>打〈/0>〈P>开〈/P></RULE>〈/GRAMMAR〉MicrosoftSpeech要求XML的根结点名为“GRAMMAR”,属性“LANGID”表示语言种类,“804”是中文语言的代号。XML文件中可以有多个“RULE”,并且用“NAME”加以区别。“T0PLEVEL”属性决定了该语法规则是否是激活状态的。每条“RULE”可以包含词汇,标记符“P”包含的内容即为一个词汇,此外还有标记符“0”表示该词汇是OPTIONAL(可选的),即该词汇可以被忽略。以上述XML文件为例,其有效的语音命令为:“客厅门开”或“把客厅门打开”或“请把客厅门打开”等。(5)语音识别返回结果的分析当语音识别成功后,MicrosoftSpeech的SpSharedRecoContext发出Recognition事件,并自动调用程序的相应过程进程处理。识别的结果将以函数参数ISpeechRecoResult形式返回,以便于程序读取。语音识别的处理过程为:procedureTfrmMain.SpSharedRecoContextRecognition(ASender:TObject;StreamNumber:Integer:StreamPosition:OleVariant;RecognitionType:TOleEnum;constResult:ISpeechRecoResuIt);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务会计凭证填写与装订规范操作指南
- 跟骨骨折切开复位内固定术后护理查房
- 安全生产责任告知函(6篇)
- 项目执行方案承诺书(5篇)
- 技术服务长期性保证承诺书7篇
- 广东省深圳福田区五校联考2025-2026学年初三下学期质量检查(I)语文试题含解析
- 河南省信阳市淮滨县重点达标名校2025-2026学年初三下学期中考模拟(一)英语试题含解析
- 大规模数据库集成和优化数据管理解决方案
- 2026年江苏省江阴南闸实验校中考英语试题考前模拟试题含解析
- 广东省韶关市曲江初级中学2026年初三9月质量检测试题英语试题含解析
- 2026年中国移动转正考试试题
- 城关初中八年级地生中考模拟考试表彰暨冲刺动员大会上校长讲话
- 2026 年山东春季高考车辆维修类专业知识(理论)模拟试题(二)
- YY/T 1173-2010聚合酶链反应分析仪
- GB/T 19000-2016质量管理体系基础和术语
- GB/T 13814-1992镍及镍合金焊条
- GB/T 12585-2020硫化橡胶或热塑性橡胶橡胶片材和橡胶涂覆织物挥发性液体透过速率的测定(质量法)
- GB 4806.7-2016食品安全国家标准食品接触用塑料材料及制品
- 《伊索寓言》知识考试题库200题(含各题型)
- 餐馆用餐饮具及塑料餐饮具抽检监测检验方案
- 县交通运输局突发事件应急预案参考范本
评论
0/150
提交评论