资源描述:
《基于web3d智能交互技术应用探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于web3d智能交互技术应用探究摘要:利用vrml和javascript结合构建和改变3d场景,javaspeechAPI和语音引擎实现语音交互,这两点使得web交互可以真实模拟现实交流,更真实,方便。关键词:Vnnl;场景交互;语音交互中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)21-5172-02AppliedResearchBasedonWeb3dInteractiveTechnologyCHENYu-ling,XIANGZhuo-yuan(SchoolofInformationandSaftyEn
2、gineering,ZhongnanUniversityofEconomicsandLaw,Wuhan430000,China)Abatract:UseVRMLcombinedwithJavaScripttoconstructandchange3dscene,UseJavaspeechAPIandspeechenginetorealizevoiceinteraction.ThetwopointsmakeitthatwebinteractioncanSimulaterealcommunication,andbemorereal,conven
3、ient.Keywords:Vrml;sceneinteraction;speechinteraction随着互联网和软件的不断发展和对人们工作和生活的不断渗透,产生了对各种智能交互系统的需求,在工作和生活中的各种信息查询、检索和信息分析和指导、以及智能辅助和决策系统中,都有这种需求。充分发挥网络的没有时空限制、受众广泛、数据信息量大,将数字展览融入到3D虚拟社区的架构上,使得虚拟社区能像真实环境一样有效、有趣。13D场景技术1.1vrml场景创建VRML(VirtualRealityModelingLanguage)即虚拟现实建模语言,
4、是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,也具有平台无关性。VRML的对象称为结点,子结点的集合可以构成复杂的景物。结点可以通过实例得到复用,对它们赋以名字,进行定义后,即可建立动态的VR(虚拟世界)。为了构建真实精细的3d场景,可以采用3dmax辅助建模后导出为vrml语言,继续用vrml语言进行更改完善。1.2场景交互VRML不同于其他虚拟技术的一大特点就是其有着很好的交互性。VRML的交互方法主要分为三类,一类是通过VRML内部的Script节点与其他高级语言编写的脚本程序、VRML事件以及各种感应器配合进
5、行交互,这种方法的交互能力有限,只能做一些简单交互,不能提供丰富的交互手段。另一种就是通过利用JAVAAPPLET调用EAI(ExternalAuthoringInterface)进行交互。还有一种是通过HTML语言中的JavaScript脚本直接改变VRML中节点属性值从而达到交互的目的,这种交互方法适用范围很大,能够设计出丰富的交互界面[3]。本此研究主要采用第三种方法,用法方便简单,如下:设置场景属性:document・CC3D.setNodeEventln(node,field,value);获取场景属性:document.CC3
6、D.getNodeEventOut(node,field);2语音交互技术2.1简介JavaSpeechAPI是一套语音技术接口规范,包含三方面的内容:语音引擎中心、语音识别引擎和语音合成引擎,组织成三个包:javax.speech,javax・speech.recognition和javax.speech,synthesis,允许开发人员将语音技术整合到Javaapplet和应用程序的用户界面中。但JSAP1只提供了接口标准,不同开发者实现该接口时,使用的方法会各不相同⑵。例如可以运用cloudgarden的cgjsapi实现。2.2语
7、音合成JSAPI语音合成引擎具有基本功能如下:1)合别器模式和属性:从JSAPI引擎中心继承而来,确定要创建识别引擎的更具体的模式和属性;2)合别结果:对识别器处理完语音输入后给出的结果进行管理;3)异常或错误处理。EngineListsyns二Centra1.availab1eSynthesizers(null);finalSynthesizerModeDescdesc二(SynthesizerModeDesc)syns・elementAt(2);Voice[]vcs=desc・getVoices();Voicevc二vcs[0];sy
8、nth=Central,createSynthesizer(desc;);synth.allocate();synth.woitEngineState(synth・ALLOCATED);syn