《毕业论文设计--嵌入式语音识别及控制技术在智能家居系统中的应用课程设计正文.doc》由会员分享,可在线阅读,更多相关《毕业论文设计--嵌入式语音识别及控制技术在智能家居系统中的应用课程设计正文.doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录一、摘要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.2 Microsoft Speech 的调用12 七、心得体会19八、参考文献20 1嵌入式语音识别及控制技术在智能家居系统中的应用一、 摘要随着现代科学技术的发展和人民生活水平的提高,人们对居住环境的要求,正在从以 往追求居室空间宽大和装饰豪华,向着追求品味、安全、舒适
2、、便捷和智能方向发展。人们对家庭住宅的观念也有所改变,家庭智能化是今后家庭装饰的必经之路。然而智能家居目前还存在很多的问题。嵌入式高性能芯片的出现、各种操作系统应用于嵌入式系统以及网络技术的发展为解决这些问题提供能了技术保障。嵌入式系统芯片性能在不断提高,操作系统在嵌入式系统中也得到了广泛的应用,为智能家居目前存在的问题提供了解决途径,也为未来智能家居的发展提供了技术背景。虽然,嗅觉、触觉也是人类固有的感觉,人们可以从中得到某些外界信息,但最重要、最精细的信 息源只有图像和语言两种。而且,语言是人类最重要的、最有效的、最常用的和最方便的 通信形式。这就很容易让人想到能否用自然语言代替传统的人机
3、交流方式如键盘、鼠标等。 传统的家用电器的控制,无外乎两种控制方式:手动或遥控。随着家用电器的增多,开关和遥控版越来越多,使用极不方便,有时分不清谁是谁的控制器,甚至找不到遥控器等, 特别是以后电视数字化了,频道增加,用遥控器翻查电视非常麻烦和耗时,而采用语音控制,可以很方便的分别出电视,空调等设备,并且可以直接叫出如“中央一台”来,所以语音识别及控制在智能家居中尤其重要。二、 设计要求本课题主要通过选择性能优良的语音识别方法,嵌入在 Windows 操作系统中,对家居设备如电灯等开关电器,电视机等遥控设备实现语音控制,语音开关控制通过麦克风发出语音信号,实现电灯等开关设备的控制,要求: 实现
4、开、关等基本控制;语音识别客厅、卧室、卫生间等不同开关设备;保留手动控制方式为备用控制。2.1 语音红外控制 语音控制电视机、空调等红外遥控设备,要求: 能学习不同遥控器的按键编码;语音识别不同遥控设备;语音控制代替相应的遥控器进行如调台等相应的控制操作;方便地增加新增遥控设备的控制功能。 22.2 系统需求规划 根据系统功能的要求,系统软件需求分析:性能优良的语音识别软件包:为了减少硬 件的开销,必须使用嵌入式式操作系统;为了使用该系统简单,必须使用可视化编程语言。硬件需求分析:采集语音信号的声卡;能承载嵌入式操作系统的计算机最小。系统;完成执行的单片机或者 FPGA 芯片。三、 设计目的和
5、作用 语音识别控制应用在智能家居中,有十分重要的意义,语音识别的应用背景和科技基础如下图 3.1 所示。 图3.1 语音识别的应用背景语音识别具有很大的实际应用价值,其发展、成熟和实用化将推动许多产业的迅速发 展,其中包括计算机、办公室自动化、通信、国防、机器人等等。目前可以想象的语音识 别主要应用有:语音输入系统,作为一种最自然的文字输入方法,用口述代替键盘向计算 机输入文字,这将给办公室自动化和出版界带来革命性的变化;语音控制系统,为人们在 手动控制以外提供了一种更安全、更方便的控制方法,特别是当系统工作在一些特定的环 境(如黑暗场所或手脚已被占用来进行其它动作的环境)或一些特殊的用户(如
6、残疾人)时;基于对话系统的数据库查询系统,为用户提供了更为自然、友好和便捷的数据库检索或查询, 可以广泛运用在银行、交易所、民航等机构;除此之外,语音识别还可以用于口语翻译系统、计算机辅助教学、自动身份确认等很多领域。四、 设计方案4.1 系统原理框图 应用程序 SAP1 微软语音识别 AP1 AP1 Windows XP Embcddcd嵌入式操作系统 数字信号 底层操作 声音 模拟信号 命令传输 语音 麦克风 声卡 UART 单片机 状态返回 图4.1智能家居系统原理框图语音信号通过声卡被计算机采集,送给语音识别软件进行识别,根据识别的结果,返回相应的文本信号,送给应用程序处理,判断出该执
7、行的命令,由 USB 口送出,单片机或 FPGA 芯片等执行装置接受命令完成相应的动作。4.2设计方案及特点 为实现设计方案图的功能,首先必须构建一个嵌入式操作系统,然后无缝地把语音识 别软件包链接进去,制定 UART 通信协议,执行机构能和上位机顺利通信,完成信息交 换和相应的命令动作。此方案简单可行,运行可靠,成本低廉。五、系统硬件设计5.1开关控制的硬件设计 这部分的主要功能是实现语音控制电灯、门等设备的开和关,而不再去寻找开关的位 置,还可以控制其他房间的设备,是生活变得很方便。 开关设备控制的基本原理是:上位机通过语音识别系统获取人发出的信息命令,比如“卧室日光灯开”,主程序通过比较
8、 判断出相应的命令,把关灯的命令按前面所述的数据格式发送到 USB 口,转换上 RS485总线通信,再通过转换接口转换成 RS232 的数据形式,相应的底层单片机取出编码信息, 进行译码,判断出该驱动的继电器,在相应的端口输出高电平“1”,驱动后面的开关三极管和继电器,使卧室日光灯打开,实现语音控制的功能。其原理流程如图 3.2 所示:继电器输出单片机译码识别命令RS485RS232调用相应编码RS485总线语音识别 上位机 图 5.2 开关设备控制原理图 电路原理图如图 5.3 所示: 图 5.3 开关设备单片机控制电路 其中输出继电器之画了两个,JP1 是一个网线插口,接 RS485 串行
9、通信总线,两片MAX485 是完成 RS485 与 RS232 相互转换的功能。单片机处理命令,驱动相应的继电器进行开关控制。5.2 红外控制的硬件设计 单片机通过 RS485 总线取出遥控版按键编码信号,用程序合成相应按键的红外波形, 经红外发射管发射出去控制电视机的开关,调台等操作,从而实现语音控制电视等遥控设备。大大方便使用。其原理如下: 外编码学习及遥控的设计红外编码学习以长虹电视机遥控版为例,发射的红外波形如图 5.4 所示: 图 5.4 红外发射波形图用不同的周期来表示“0”、“1”编码,再通过 38Khz 脉冲调制,有红外发射管发射。 为了采集遥控版的波形进行分析,利用单片机的定
10、时功能,准确地记录脉冲的上升沿和下沿,计算脉冲的宽度,确定每个按键的二进制编码,并用文本文件存储下来,供上位机编程设置使用。其流程如图 3.5 所示:上位机编码存储串口通信单片机分析红外接收管遥控板 图 5.5 单片机编码学习流程图 单片机学习到的编码如图 5.6 所示: 图5.6 红外线编码测试界面 外遥控发射 红外遥控的基本原理是:上位机通过语音识别系统获取人发出的信息命令,比如“中央 5 台”(电视机已经预置为 9 频道),主程序通过比较判断,执行相应的命令,把 9 的红外编码按特定的数据格式发送到 USB 口,转换上 RS485 总线通信,再通过转换接口转换成符合 RS232 通信协议
11、的数据形式,相应的底层单片机取出信息,根据接收到的编码,严格按照遥控版波形规则,用定时功能把按键 9 的红外调制波形从新合成,发送到输出端口,经放大,最后有红外发射管发射,实现控制电视机的目的。其原理流程如图 5.7所示:红外发射单片机波形合成RS485RS232RS485总线调用相应编码语音识别 图 5.7 红外遥控原理图其中 USB 先用转接线转换 RS232 再用两片 MAX485 芯片装换成 RS485 总线。 单片机选用 STC12C5406,DIP20 的封装,单片机红外编码学习及发射电路原理如图 5.8所示: 图 5.8 红外编码采集及发射电路为了省掉电路中的电源,利用了 USB
12、 的自带电源,其中 JP1 是一个 USB 到 RS232的转换接口;IR-是红外接收头,用于红外遥控的编码学习;是红外发射头,完成红外编码的发射功能。5.3 硬件系统的设计整个硬件必须利用串行总线技术构成一个网络系统,硬件系统主要有上位机、通信网 路和执行部分组成,系统网络原理框图如图 5.1 所示:RS485总线RS232其他复杂设备控制开关设备如:电灯FPGA控制单片机开关控制单片机红外控制USB转换转换转换电视机等遥控设备转换Pc机 图 5.1 智能家居系统原理 上位机信号输出选用 USB 接口主要是 USB 口自带电源,使用方便,不需在做电源部分。通信总线选用 RS485 主要是为了
13、增加传输距离满足大房间户型的需要,理论上可以到 4000 米。 从上位 PC 机 USB 口出来,用一根 USBRS232 转换线,转换为RS232,再用两片 MAX485 芯片转换为 RS485,JP2 是网线插口,最后用网线构成网络 传输信号,电路如图5.2 所示。 图 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 Professional
15、 系统从分区一启动,而开发好的 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)Windows=Microsoft W
16、indows 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 Edition databas
17、e engine (MSDE)。 Database Setup:安装组件数据库及 Repositories。第三步 硬件平台分析。 在开发过程中,首先需要运行硬件分析程序来分析当前机器的硬件配置情况。操作系统与硬件紧密相关,只用充分地了解和支持硬件,才能让操作系统正常稳定的运行。由于X86 结构计算机的硬件比较复杂,普通开发者很难对它充分地理解熟悉,因此,微软提供了一个硬件分析工具来帮助开发者分析硬件。Windows XP Embedded 提供的这个工具叫Target Analyzer,可以自动分析所在设备的硬件信息,Target Analyzer 有两个版本:TA.exe和 TAP.exe
18、。分析完成后会在同一个目录中产生一个 XML 格式的输出文件 Devices.pmq。 TAP.exe 是一个 32 位的应用程序,运行在 Windows XP 和 Windows 2000 上,可以运行 一些高级的硬件检测。TA.exe 是一个 16 位应用程序,运行在 DOS 上,可以用来检测一 些无法安装 Windows 2000 及 Windows XP 的系统,但检测的功能要差一些,有的硬件设 备无法识别。下面我们运行 TAP.exe 来检测这台开发机的硬件配置:进入C:Program FilesWindows EmbeddedUtilities 目录 运行 TAP.exe,会在同目
19、录中生成 Devices.pmq用文本编辑器打开这个 Device.pmq 文件,文件中用 XML 语言描述了目标设备的硬 件信息,例如:在 PCI 段中,描述了 Intel 的 21440 Ethernet 控制器。因为我们是在开 发工作站上运行了这个程序,所以 Devices.pmq 中包含的是开发工作站的硬件信息。第四步 创建 XPE 组件。 使用 Devices.pmq 中的信息有两个办法:其一:可以根据这个文件生成一个 XPE 组件,为以后开发完整的操作系统作准备。其二:可以在开发时将这个文件直接导入。将 PMQ 文件做成 XPE 组件的好处是,可以一次工作反复使用:做成 XPE 组
20、件后保存到组件数据库中,以后每次开发系统都可以调用。运行组件设计器 Component Designer 。将刚才生成的 Devices.pmq 文件导入,选择 File/Impot ,弹出导入对话框,按下“Start”按钮,开始 PMQ 文件的导入过程,该过程大约耗时 10 分钟。完成后,会在 Component Designer 中显示一个Devices.sld组件,将其改名为DemoPlatform Component ,展开 Component Designer 中目录结构:Windows XP Embedded ClientComponentsDevices 选中 Devices,将
21、组件的 Name 属性由Devices改为DemoPlatform Component,将该组件设为Selector Prototype Component类型,成为该类型的组件后,可在 Target Designer 中单独地选取该组件所关联的各个设备:在 Prototype 栏中按下 Browse,弹出 Select Prototype Component 对话框。在 Prototype component source 栏中选中 Database 选项。 在组件树列中展开到 Software/Test&Developnent,选中 Selector Prototype在 Componen
22、t 组件。在 按下 OK 确定。在 选 择 File/Save as 菜 单 将 该 配 置 保 存 为 “ C:XPE_Demo DemoPlatform.SLD” 这个 SLD 文件中就包含了前面开发的 Demo Platform Component组件,关闭 Component Designer。第五步 保存组件。 要在 Target Designer 中使用这个组件,需要先把这个组件保存到组件数据库中,操作如下:打开 Component Database Manager,开始菜单所有程序Microsoft Windows Embedded StudioComponent Databas
23、e Manager。点 击 Import 按 钮 , 在 SLD file: 栏 中 按 下 浏 览 按 钮 , 找 到“C:XPE_DemoDemoPlatform.SLD”,点击 Import。Import 成功后,关闭 Component Database Manager。第六步:XPE 系统信息的配置。 打开 Target Designer,选择 File/New 菜单,建立一个新的配置 Configuration,确认Demo Platform Component 是否在 Target Designer 左侧的组件浏览器中,如果发现该组件,则说明刚才的硬件分析工作顺利完成了。要构造一
24、个完整的 XPE 系统,首先需要在 Target Designer 中创建一个配置(Configuration),这个配置仅仅是一个空的开发框架,然后在该配置中添加所有的硬件支持组件,系统内核组件和软件功能组件。添加完成后使用 Target Designer 自动检测组件的关联关系,并自动把缺少的组件添加到配置中。首先运行 Target Designer,选择 FileNew,创建一个新的 Windows XP Embedded配置 将该配置的 Name 改为 DemoPlatform,在下面的 Choose Platform 中,选择Windows XP Embedded Client (x
25、86),按下 OK 按钮创建该配置并保存。在 Target Designer 中间的组件列表栏中,选中 DemoPlatform.slx,在右边的属性栏 中修改配置的属性,添入您的个人信息(Name, Owner, Author, Description 等)。设置高级参数。下面设置一些整个系统运行需要的参数,在配置浏览器的顶端,展开DemoPlatform.slx,选中 Settings,这时右边的属性设置面板会显示可以设置的选项,在Target Devices Settings 下面,点击 Show,显示详细的选项 ,设置下列的配置信息:Boot Drive = C:Windows Fol
26、der = D:WindowsProgram Files Folder = D:Program FilesDocuments and Settings folder = D:Documents and Settings Boot ARC path = multi(0)disk(0)rdisk(0)partition(2)Boot Partition Size (MB) = 700设置完成后,将配置信息保存到 C:XPE_Demo 目录。 到此我们已经完成的硬件信息的分析并开发了一个硬件信息组件,开发了一个应用程序的组件,另外还建立了初始化的配置。在本节中完成一个完整配置的开发工作。第七步 XP
27、E 系统组件的配置 打开 Target Designer,第一个需要添加的组件是由 Devices.pmq 文件产生的宏组件Demo Platform Component,加入了这个组件,就把硬件信息全部添加到配置中;只要在Target Designer 左侧的组件浏览器面板中双击该组件就可以添加该组件到配置中。在组件浏览器中,找到 Demo Platform Component 组件,将该组件加入配置中。向配置中添加 Design Template 组件。这个设计模板组件也是个宏组件,并且与 Demo Platform Component 组件非常类似;所谓宏组件是指一个仅仅包含组件关联信息
28、的组件, 而没有其它功能。例如可以将与 TCP/IP 协议有关的 20 个组件都与一个名为 TCP/IP 的宏组件关联,通过添加这个 TCP/IP 宏组件,可以一次添加那 20 个组件。 向配置中添加组件的方法有很多,可以单个组件逐一添加;可以添加宏组件;也可以通过 Target Designer 的关联性检查功能自动添加组件。Windows XP Embedded 提供了若干的模板组件,从单一的软件功能如 TCP/IP、DerictX8.0 到整个系统模板如机顶盒模板、POS 机模板都有,可以根据实际应用考虑使用其中一个。加入 Windows-based Terminal Professio
29、nal 组件,这个组件可以在 Design Templates 文件夹中找到。在配置面板中,扩展这个组件,并选中 Settings,右边的属性面板会显示该宏组件中主要的组件模块。向配置中添加其它必须的核心组件。在这个系统中需要添加组件有:Speech API English Text To Speech Engine 组件、 Speech Control Panel 组件、Text ToSpeech Core 组件。进行关联性检查,确保所有的必要组件都已经添加到配置中:在 Configuration 菜单中, 选择 Check Dependencies 进行组件关联性检查,所有宏组件的关联组件
30、以及缺少的组件都会自动添加到配置中。第八步 生成系统 在 Configuration 菜单中,选中 Build Target Image 菜单项,出现 Build 对话框,按下 Build 按钮,Target Designer 会完成 System Image(系统镜像)的构建;完成后,在指定目录下会生成所构建的系统的文件和目录集合 。6.2 Microsoft Speech 的调用SAPI 5.1 的结构IBM、微软等几家公司都提供语音识别和合成的二次开发平台,只有微软是免费的,而且 经过实验,微软的识别系统在连续语音识别上的识别率虽然不太高,但在命令控制方式下却 很高,完全可以满足语音控制
31、应用程序的要求。微软 Speech SDK 5.1 全面支持中文语音应 用程序的开发,SDK 里提供了语音识别和合成引擎相关组件、应用程序层接口、详细的技 术资料和帮助文档。它采用 COM 标准开发,底层协议都以 COM 组件的形式完全独立于 应用程序层,为应用程序设计人员屏蔽掉复杂的语音技术,充分体现了 COM 的优点,即语 音相关的一系列工作由 COM 组件完成:语音识别由识别引擎(Recognition Engine) 管理,语音合成由语音合成引擎(Synthesis Engine) 负责;程序员只需专注于自己的应用,调用相 关的语音应用程序接口(SAPI) 来实现语音功能。SAPI 5
32、.1 的结构见图 6.3 所示: 图 6.3 SAPI 5.1 的结构图SAPI 5. 1 的工作原理 语音识别的工作原理。语音识别的功能由一系列的 COM 接口协调完成,下面是语音识 别的主要接口:IspRecognizer 接口:用于创建语音识别引擎的实例,在创建时通过参数选择引擎的种 类。识别引擎有两种: 独占( InProc Recognizer) 的引擎和共享(Shared Recognizer) 的引擎。独占的引擎对象只能由创建的应用程序使用,而共享的引擎可以供多个应用程序共同使用。IspRecoContext 接口:主要用于接受和发送与语音识别消息相关的事件消息,装载和 卸载识别
33、语法资源。IspRecoGrammar 接口:通过这个接口,应用程序可以载入、激活语法规则,而语法规 则里则定义着期望识别的单词、短语和句子。通常有两种语法规则: 听写语法(DictationGrammer) 和命令控制语法(Command and Control Grammer) 。听写语法用于连 续语音识别,可以识别出引擎词典中大量的词汇,例如,可以识别报纸上的一篇文章、你的一 段讲话、一个故事等,也就是说,可以用语音代替键盘进行文字输入;命令控制语法主要用于 识别用户在语法文件里自定义的一些特定的命令词汇和句子,譬如,菜单命令(打开文件,保存文件,插入等) ,画图命令(画一条直线,过直线
34、外一点 A 作直线的垂线等) 。这些语法 规则以 XML 文件的格式编写, 通过 IspRecoGrammar 接口载入、激活。IspPhrase 接口: 用于获取识别的结果,包括识别的文字、识别了哪一条语法规则等。 语音识别的功能由上面的 COM 接口共同完成,而且遵守特定的工作程序。概括地说,语音识 别的工作原理遵循COM 组件的工作原理和一般Windows 应用程序的工作原理(消息驱动 机制) ,具体如下:首先,初始化 COM;接着要实例化各个语音接口(以特定的顺序) ,设置识别语法、识别消息,使识别引擎处于 工作状态;当有语法规则被识别后,语音接口向应用程序发出语音识别消息;在识别消息
35、响应函数里,通过 IspPhrase 接口获取识别的结果;应用程序退出时,卸载 COM。 Microsoft Speech 的调用方法 SAPI 5.1 通过注册类型库来提供许多重要的接口、类型和常量,而 SAPI 5.0 则没有,这使得 SAPI 5.1 在 Delphi 中调用起来更加方便、快捷。只需要在 Delphi 中导入类型库之后,就可以在 Delphi 中以控件形式调用 SAPI 5.1。Delphi 中,选择“Project | Import Type Library.”,然后添加“Microsoft Speech Object Library (Version 5.1)”。导入
36、的类库将保存在“SpeechLib_TLB.pas”单元中,并且会安 装到一个包集合中(既可以是已有包,也可以是新包)。安装完成后,就可以在 Delphi 的控 件集中使用 SAPI 5.1 的接口了。程 序 中 添 加 “SpSharedRecoContext” 控 件 , Delphi 会 自 动 将“SpeechLib_TLB.pas” 单 元 添 加 到 程 序 的 引 用 中 , 并 且 生 成 一 个 实例“SpSharedRecoContext”。之后添加如下代码即可以在程序中使用 Microsoft SpeechRecognition(SR)的功能了。SRGrammar: IS
37、peechRecoGrammar;.procedure TfrmMain.FormCreate(Sender: TObject); beginSpSharedRecoContext.EventInterests := SREAllEvents;SRGrammar := SpSharedRecoContext.CreateGrammar(0);SRGrammar.CmdLoadFromFile(Speech.xml, SLODynamic);当 Microsoft Speech 识别出语音后,就会将结果以 ISpeechRecoResult 数据结构形式回传给程序,只需在程序中读取结果并按程序要
38、求进行处理即可。以下为ISpeechRecoResult的读取过程,详细内容将在语音识别返回结果的分析中阐述。procedure TfrmMain.SpSharedRecoContextRecognition(ASender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;RecognitionType: TOleEnum; const Result: ISpeechRecoResult);vari: integer; ReturnResult: String;Element: ISpeechPhraseElement;
39、beginfor i:=0 to Result.PhraseInfo.Elements.Count-1 do beginElement := Result.PhraseInfo.Elements.Item(i);ReturnResult := ReturnResult + Element.DisplayText + ;end;ReturnBackCall(PChar(ReturnResult);end;XML 语法 为了增加语音识别的灵活性,以便日后的更新及修改,Microsoft Speech 使用 XML 格式存取命令,并且提供了多种功能的标记。XML 是 Extensible Marku
40、p Language 的缩写,即可扩展标记语言是一种可以用来创建自己的标记的标记语言。它由万维网协会(W3C)创建,用来克服 HTML(即超文本标记语言(Hypertext Markup Language),它是所有网页的基础)的局限。和 HTML 一样,XML 基于 SGML标准通用标记语言(Standard Generalized Markup Language)。尽管SGML 已在出版业使用了数十年,但其理解方面的复杂性使许多本打算使用它的人望而却步(SGML 也代表“听起来很棒,但或许以后会用(Sounds great, maybe later)”)。XML 是为Web 设计的。XML
41、 实际上是 Web 上表示结构化信息的一种标准文本格式,它没有复杂的语法和 包罗万象的数据定义。XML 同 HTML 一样,都来自 SGML(标准通用标记语言)。SGML是一种在 Web 发明之前就早已存在的用标记来描述文档资料的通用语言。但 SGML 十分庞大且难于学习和使用。鉴于此,人们提出了 HTML 语言。但近年来,随着 Web 应用的不断深入,HTML 在需求广泛的应用中已显得捉襟见肘,有人建议直接使用 SGML作为 Web 语言。但 SGML 太庞大了,学用两难尚且不说,就是全面实现 SGML 的浏览 器也非常困难。于是 Web 标准化组织 W3C 建议使用一种精简的 SGML 版
42、本XML。 XML 与 SGML 一样,是一个用来定义其他语言的元语言。与 SGML 相比,XML 规范 不到 SGML 规范的 1/10,简单易懂,是一门既无标签集也无语法的新一代标记语言。XML 继承了 SGML 的许多特性,首先是可扩展性。XML 允许使用者创建和使用他 们自己的标记而不是 HTML 的有限词汇表。这一点至关重要,企业可以用 XML 为电子 商务和供应链集成等应用定义自己的标记语言,甚至特定行业一起来定义该领域的特殊标 记语言,作为该领域信息共享与数据交换的基础。其次是灵活性。HTML 很难进一步发展,就是因为它是格式、超文本和图形用户界面 语义的混合,要同时发展这些混合
43、在一起的功能是很困难的。而 XML 提供了一种结构化 的数据表示方式,使得用户界面分离于结构化数据。所以,Web 用户所追求的许多先进功 能在 XML 环境下更容易实现。第三是自描述性。XML 文档通常包含一个文档类型声明,因而 XML 文档是自描述的。不仅人能读懂 XML 文档,计算机也能处理。XML 表示数据的方式真正做到了独立 于应用系统,并且数据能够重用。XML 文档被看作是文档的数据库化和数据的文档化。除了上述先进特性以外,XML 还具有简明性。它只有 SGML 约 20%的复杂性,但却具有 SGML 功能的约 80%。XML 比完整的 SGML 简单得多,易学、易用并且易实 现。另外,XML 也吸收了人们多年来在 Web 上使用 HTML 的经验。XML 支持世界上 几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,应用 XML 的软 件能处理这些语言的任何组合。所有这一切将使 XML 成为数据表示的一个开放标准,这种数据表示独立于机器平台、供应商以及编程语言。它将为网络计算注入新的活力,并为信息技术带来新的机遇。目前,许多大公司和开发人员已经开始使用 XML,包括 B2B