陳宇玲 向卓元
關(guān)鍵詞:Vrml;場景交互;語音交互
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)21-5172-02
Applied Research Based on Web3d Interactive Technology
CHEN Yu-ling, XIANG Zhuo-yuan
(School of Information and Safty Engineering,Zhongnan University of Economics and Law,Wuhan 430000,China)
Abatract: Use VRML combined with JavaScript to construct and change 3d scene, Use Java speech API and speech engine to realize voice interaction. The two points make it that web interaction can simulate real communication, and be more real, convenient.
Key words: Vrml; scene interaction; speech interaction
隨著互聯(lián)網(wǎng)和軟件的不斷發(fā)展和對人們工作和生活的不斷滲透,產(chǎn)生了對各種智能交互系統(tǒng)的需求,在工作和生活中的各種信息查詢、檢索和信息分析和指導(dǎo)、以及智能輔助和決策系統(tǒng)中,都有這種需求。充分發(fā)揮網(wǎng)絡(luò)的沒有時(shí)空限制、受眾廣泛、數(shù)據(jù)信息量大,將數(shù)字展覽融入到3D虛擬社區(qū)的架構(gòu)上,使得虛擬社區(qū)能像真實(shí)環(huán)境一樣有效、有趣。
1 3D場景技術(shù)
1.1 vrml場景創(chuàng)建
VRML(Virtual Reality Modeling Language)即虛擬現(xiàn)實(shí)建模語言,是一種用于建立真實(shí)世界的場景模型或人們虛構(gòu)的三維世界的場景建模語言,也具有平臺(tái)無關(guān)性。VRML的對象稱為結(jié)點(diǎn),子結(jié)點(diǎn)的集合可以構(gòu)成復(fù)雜的景物。結(jié)點(diǎn)可以通過實(shí)例得到復(fù)用,對它們賦以名字,進(jìn)行定義后,即可建立動(dòng)態(tài)的VR(虛擬世界)。為了構(gòu)建真實(shí)精細(xì)的3d場景,可以采用3dmax輔助建模后導(dǎo)出為vrml語言,繼續(xù)用vrml語言進(jìn)行更改完善。
1.2場景交互
VRML不同于其他虛擬技術(shù)的一大特點(diǎn)就是其有著很好的交互性。VRML的交互方法主要分為三類,一類是通過VRML內(nèi)部的Script節(jié)點(diǎn)與其他高級語言編寫的腳本程序、VRML事件以及各種感應(yīng)器配合進(jìn)行交互,這種方法的交互能力有限,只能做一些簡單交互,不能提供豐富的交互手段。另一種就是通過利用JAVA APPLET調(diào)用EAI(External Authoring Interface)進(jìn)行交互。還有一種是通過HTML語言中的JavaScript腳本直接改變VRML中節(jié)點(diǎn)屬性值從而達(dá)到交互的目的,這種交互方法適用范圍很大,能夠設(shè)計(jì)出豐富的交互界面[3]。本此研究主要采用第三種方法,用法方便簡單,如下:
設(shè)置場景屬性:document.CC3D.setNodeEventIn(node,field, value);獲取場景屬性:document.CC3D.getNodeEventOut(node,field);
2語音交互技術(shù)
2.1簡介
Java Speech API是一套語音技術(shù)接口規(guī)范,包含三方面的內(nèi)容:語音引擎中心、語音識(shí)別引擎和語音合成引擎,組織成三個(gè)包:javax.speech,javax.speech.recognition和javax.speech.synthesis,允許開發(fā)人員將語音技術(shù)整合到Java applet和應(yīng)用程序的用戶界面中。但JSAPl只提供了接口標(biāo)準(zhǔn),不同開發(fā)者實(shí)現(xiàn)該接口時(shí),使用的方法會(huì)各不相同[2]。例如可以運(yùn)用cloudgarden的cgjsapi實(shí)現(xiàn)。
2.2語音合成
JSAPI語音合成引擎具有基本功能如下:1)合別器模式和屬性:從JSAPI引擎中心繼承而來,確定要?jiǎng)?chuàng)建識(shí)別引擎的更具體的模式和屬性;2)合別結(jié)果:對識(shí)別器處理完語音輸入后給出的結(jié)果進(jìn)行管理;3)異?;蝈e(cuò)誤處理。
EngineList syns = Central.availableSynthesizers(null);
final SynthesizerModeDesc desc = (SynthesizerModeDesc)syns.elementAt(2);
Voice[] vcs = desc.getVoices();
Voice vc= vcs[0];
synth = Central.createSynthesizer(desc;); synth.allocate(); synth.waitEngineState(synth.ALLOCATED); synth.getSynthesizerProperties().setVoice(v);
2.3語音識(shí)別
JSAPI語音識(shí)別引擎具有基本功能如下[2]:1)識(shí)別器模式和屬性:從JSAPI引擎中心繼承而來,確定要?jiǎng)?chuàng)建識(shí)別引擎的更具體的模式和屬性;2)識(shí)別語法:限定語音表達(dá)方式的詞匯和句式,語法有規(guī)則名稱和標(biāo)識(shí)。標(biāo)識(shí)可以分組或選擇??梢允褂猛獠空Z法規(guī)則文件或者內(nèi)部語法規(guī)則設(shè)置;3)識(shí)別結(jié)果:對識(shí)別器處理完語音輸入后給出的結(jié)果進(jìn)行管理;4)異常或錯(cuò)誤處理。例子代碼如下:
grammar robot;
public
……
EngineList ryns = Central.availableRecognizers(null);
final RecognizerModeDesc rdesc = (RecognizerModeDesc)ryns.elementAt(0);
rec = Central.createRecognizer(rdesc);
rec.allocate();
rec.waitEngineState(Recognizer.ALLOCATED);
rec.addResultListener(new ResultAdapter(){
public void resultAccepted(ResultEvent et) {//識(shí)別后的處理程序
FinalRuleResult result =(FinalRuleResult)re.getSource();
String[] tags = result.getTags();
System.out.println("First tag was :" +tags[0]); }};
3工程實(shí)例
3.1系統(tǒng)功能
在采用Java EE+MySql架構(gòu)的基礎(chǔ)上運(yùn)用web的3d智能交互技術(shù)構(gòu)建一個(gè)與虛擬人交互的系統(tǒng)——基于web的3d智能虛擬人。該系統(tǒng)中的3D智能虛擬人可以與用戶簡單對話,并根據(jù)語音指令或文字指令做各種操作,回答各種資訊并且能根據(jù)問題的內(nèi)容做出相應(yīng)的表情和動(dòng)作。
3.2系統(tǒng)關(guān)鍵流程
與場景中的虛擬卡通交流采用語音交互技術(shù)實(shí)現(xiàn),虛擬卡通在場景中走動(dòng),場景智能化變動(dòng)或場景自定義設(shè)置則是采用Vrml語言實(shí)現(xiàn)的。場景變動(dòng)和語音交互要協(xié)調(diào)同步,所以系統(tǒng)交互大概框架流程圖如圖2。
4結(jié)束語
該文主要介紹了web3d智能交互技術(shù)——基于vrml語言的場景交互技術(shù)和基于JSAPI的語音交互技術(shù)。Vrml具有可交互性,支持多媒體,節(jié)省網(wǎng)絡(luò)帶寬等特點(diǎn),非常適合開發(fā)三維網(wǎng)上應(yīng)用程序。但由于自身的局限性需要用3dmax輔助。對于JSAPI,隨著Java技術(shù)的廣泛應(yīng)用和語音技術(shù)的不斷發(fā)展,加之JSAPI自身的完善、簡單易用、定義的嚴(yán)密、概括等特點(diǎn),JSAPI將廣為Java語音技術(shù)開發(fā)者所采用。
參考文獻(xiàn):
[1]倪素萍,董濱,趙慶衛(wèi),顏永紅.基于Java Speech API規(guī)范的語音識(shí)別引擎的實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2006,2(2).
[2]李健,萬群生.VRML交互研究與基于H-Animation人體骨架的個(gè)性化定制[DB/OL].(2012-06-19).http://www.ahcit.com/lanmuyd.asp id=2493.