本發(fā)明涉及虛擬現(xiàn)實(shí)設(shè)備系統(tǒng)及方法,尤其涉及一種基于語言學(xué)習(xí)的虛擬現(xiàn)實(shí)設(shè)備系統(tǒng)及方法。
背景技術(shù):
在全球一體化和知識(shí)經(jīng)濟(jì)的背景下,除掌握自己的母語以外,越來越多的人們希望掌握一門外語。英語作為一種世界主流官方語言,對(duì)英語的掌握更是一直受到學(xué)校、家長及學(xué)生的重視。隨著英語課程改革的不斷推進(jìn),英語的學(xué)習(xí)從注重對(duì)純語言技能的學(xué)習(xí),過渡到重點(diǎn)發(fā)展學(xué)生綜合語言運(yùn)用能力;同時(shí),評(píng)價(jià)方式也由只看重考試成績(jī),向培養(yǎng)學(xué)生獨(dú)立自主學(xué)習(xí)意識(shí),滿足不同學(xué)習(xí)需要為重點(diǎn)的方向轉(zhuǎn)變。也就是說,教育界更關(guān)注的英語學(xué)習(xí)目的是:能夠順暢的用英語進(jìn)行交流與溝通。
然而,大量的調(diào)查結(jié)果顯示,即使學(xué)校、家長及學(xué)生都逐漸意識(shí)到了英語口語的重要性,實(shí)際上大多數(shù)學(xué)生對(duì)自己的英語口語水平不滿意,缺乏表達(dá)自信。這種明顯的口語輸出障礙,極大的制約了英語作為一種交際語言所能發(fā)揮的交際作用。一些學(xué)生對(duì)英語口語活動(dòng)感到焦慮,缺乏必要的興趣和參與積極性,是受到多種原因影響的,例如:1)學(xué)校的大班課堂教學(xué)多以雙語教學(xué)為主,2)教學(xué)過程多注重強(qiáng)調(diào)語法與知識(shí)點(diǎn)的教與學(xué),3)課外無法得到及時(shí)的復(fù)習(xí)和鞏固,4)學(xué)生家長口語不好的情況較多,不能很好的進(jìn)行課后溝通輔導(dǎo),5)青春期的學(xué)生在意他人對(duì)自己的看法,羞于或怯于表達(dá)自己,過多的依賴語言的輸入等。
目前,英語口語學(xué)習(xí)的最大瓶頸在于缺乏逼真的語言學(xué)習(xí)環(huán)境和相應(yīng)的社交活動(dòng)。人們流利的說話能力不是從直接教授和句法形成的訓(xùn)練中獲得的,而是在有意義的互動(dòng)交流活動(dòng)中自然習(xí)得的。因此,借鑒于加拿大法語浸入式教學(xué)的成功模式,中國本土化的語言浸入式教學(xué)模式引起了教育界、語言學(xué)、心理學(xué)等領(lǐng)域的共同關(guān)注。以“習(xí)得論”為基礎(chǔ)的浸入式英語教學(xué)模式,摒棄了傳統(tǒng)的英語教學(xué)法,通過大量創(chuàng)設(shè)語言環(huán)境,通過習(xí)得和實(shí)踐獲得語言能力。多年的研究結(jié)果表明,在這種給予大量且適當(dāng)?shù)那榫臣罢Z言環(huán)境的教育模式下,學(xué)生的聽說機(jī)會(huì)會(huì)大大提高,也更容易自然而然的習(xí)得并應(yīng)用第二語言。
愛因斯坦曾說過:“興趣是最好的老師”。沉浸式教學(xué)的逼真性讓學(xué)生仿佛身臨其境,誘發(fā)學(xué)生的好奇心和學(xué)習(xí)動(dòng)力;交互性讓學(xué)生更多的產(chǎn)生交際興趣,讓學(xué)生有話說、想說話,積極主動(dòng)的掌握語言能力。學(xué)生在模擬的真實(shí)情境中視覺聽覺全方位投入,能夠產(chǎn)生極大的滿足感與成就感。
另外,語言交際(包含聽與說)的困難很多時(shí)候是由于自己不正確的語音造成的。發(fā)音是語言學(xué)習(xí)的基礎(chǔ),早在19世紀(jì),著名的語言學(xué)家saussure就指出:發(fā)音作為傳達(dá)信息和思想的工具,是語言的基礎(chǔ)。著名語言學(xué)家a.g.gimson(1978)有一句名言,“不管說何種語言,我們必須具備該語言的全部語音知識(shí),而50%~90%的語法和1%的詞匯量可以說是夠用的了“。因此,在對(duì)第二語言的習(xí)得及應(yīng)用中,良好的語音知識(shí)對(duì)于幫助學(xué)生記憶和積累語言能力,建立良性的語言習(xí)得機(jī)制,培養(yǎng)聽、說能力的及語言交際能力的有著至關(guān)重要的作用。
然而目前多數(shù)的英語學(xué)習(xí)設(shè)備例如點(diǎn)讀筆,學(xué)習(xí)機(jī),網(wǎng)上視頻聊天等都由于都無法營造一個(gè)全沉浸式的語言學(xué)習(xí)環(huán)境,從而使得學(xué)習(xí)效果大打折扣。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述方案的缺點(diǎn),本發(fā)明利用虛擬現(xiàn)實(shí)技術(shù)搭建一整套用于語言學(xué)習(xí)的沉浸式系統(tǒng),提高語言學(xué)習(xí)的效率和效果。
本發(fā)明技術(shù)方案是:一種用于語言學(xué)習(xí)的虛擬現(xiàn)實(shí)設(shè)備系統(tǒng),包括語音輸入模塊、顯示模塊以及音頻播放模塊,
所述語音輸入模塊用于語音的輸入;
所述顯示模塊用于學(xué)習(xí)內(nèi)容的播放,用戶根據(jù)學(xué)習(xí)內(nèi)容進(jìn)行發(fā)音;
所述音頻外放模塊用于根據(jù)用戶輸入的語音進(jìn)行音頻的輸出。
優(yōu)選的,所述語音輸入模塊包括麥克風(fēng)陣列、麥克風(fēng)陣列驅(qū)動(dòng)模塊以及麥克風(fēng)音頻數(shù)據(jù)解析模塊,所述麥克風(fēng)陣列用于語音音頻的輸入;所述麥克風(fēng)陣列驅(qū)動(dòng)模塊用于麥克風(fēng)陣列以及外接設(shè)備的驅(qū)動(dòng);所述麥克風(fēng)音頻數(shù)據(jù)解析模塊用于根據(jù)麥克風(fēng)陣列以及外接設(shè)備的數(shù)據(jù)協(xié)議將其解析為包含實(shí)際信息的數(shù)據(jù)結(jié)構(gòu)。
優(yōu)選的,所述顯示模塊包括語言學(xué)習(xí)模塊以及虛擬現(xiàn)實(shí)渲染模塊,所述語言學(xué)習(xí)模塊用于教學(xué)內(nèi)容的存儲(chǔ)及播放,所述虛擬現(xiàn)實(shí)渲染模塊用于播放畫面的渲染。
優(yōu)選的,還包括音頻系統(tǒng)服務(wù)模塊,所述音頻系統(tǒng)服務(wù)模塊用于維護(hù)麥克風(fēng)陣列的生命周期,將解析后的數(shù)據(jù)結(jié)構(gòu)傳輸給語言學(xué)習(xí)模塊,同時(shí)也接收來自語言學(xué)習(xí)模塊的下發(fā)指令并發(fā)送給麥克風(fēng)陣列。
優(yōu)選的,還包括光學(xué)模塊,所述光學(xué)模塊用于放大顯示器的尺寸,增加用戶視覺市場(chǎng)角,提高用戶的視覺體驗(yàn)的沉浸感。
一種麥克風(fēng)音頻數(shù)據(jù)解析的方法,所述方法包括:
根據(jù)設(shè)備類型獲取相應(yīng)的數(shù)據(jù)解析模塊;
如果設(shè)備類型表明設(shè)備為自定義協(xié)議設(shè)備,則讀取擴(kuò)展解析協(xié)議模塊;
如果是系統(tǒng)標(biāo)準(zhǔn)協(xié)議則根據(jù)協(xié)議版本號(hào)獲取數(shù)據(jù)解析模塊中對(duì)應(yīng)版本的解析實(shí)例;
遍歷讀取的字節(jié)數(shù)組,尋找字段頭,將解析數(shù)值放入數(shù)據(jù)結(jié)構(gòu)中;
如果已經(jīng)解析到字節(jié)數(shù)組尾部,判斷當(dāng)前是否解析完成,如果已經(jīng)完成則等待下一組數(shù)據(jù),如果未解析完成,則將這部分字節(jié)放入下一組數(shù)據(jù)中繼續(xù)處理。
本發(fā)明的有益效果是:利用虛擬現(xiàn)實(shí)技術(shù)搭建了一整套用于語言學(xué)習(xí)的沉浸式系統(tǒng),仿真出一個(gè)供學(xué)習(xí)者學(xué)習(xí)的虛擬環(huán)境系統(tǒng),提高語言學(xué)習(xí)的效率和效果;對(duì)系統(tǒng)進(jìn)行了模塊化設(shè)計(jì),可兼容更多的硬件設(shè)計(jì)邏輯,例如更改了麥克風(fēng)陣列的硬件輸入,可直接修改麥克風(fēng)陣列驅(qū)動(dòng)模塊即可,而需要兼容新的引擎架構(gòu)則只需要修改語言學(xué)習(xí)模塊即可。
附圖說明
下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
圖1是本發(fā)明實(shí)施例的整體框架示意圖。
圖2是本發(fā)明實(shí)施例中麥克風(fēng)陣列驅(qū)動(dòng)模塊流程示意圖;
圖3是本發(fā)明實(shí)施例中麥克風(fēng)音頻數(shù)據(jù)解析模塊流程示意圖;
圖4是本發(fā)明實(shí)施例中音頻系統(tǒng)服務(wù)模塊流程示意圖;
圖5是本發(fā)明實(shí)施例中語言學(xué)習(xí)模塊流程示意圖;
圖6是本發(fā)明實(shí)施例中虛擬現(xiàn)實(shí)渲染模塊流程示意圖。
具體實(shí)施方式
以下結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步的描述,但本發(fā)明并不限于這些實(shí)施例。
一種用于語言學(xué)習(xí)的虛擬現(xiàn)實(shí)設(shè)備系統(tǒng),包括語音輸入模塊、顯示模塊以及音頻播放模塊,所述語音輸入模塊用于語音的輸入;所述顯示模塊用于學(xué)習(xí)內(nèi)容的播放,用戶根據(jù)學(xué)習(xí)內(nèi)容進(jìn)行發(fā)音;所述音頻外放模塊用于根據(jù)用戶輸入的語音進(jìn)行音頻的輸出。
具體的,所述語音輸入模塊包括麥克風(fēng)陣列、麥克風(fēng)陣列驅(qū)動(dòng)模塊以及麥克風(fēng)音頻數(shù)據(jù)解析模塊,所述麥克風(fēng)陣列用于語音音頻的輸入;所述麥克風(fēng)陣列驅(qū)動(dòng)模塊用于麥克風(fēng)陣列以及外接設(shè)備的驅(qū)動(dòng);所述麥克風(fēng)音頻數(shù)據(jù)解析模塊用于根據(jù)麥克風(fēng)陣列以及外接設(shè)備的數(shù)據(jù)協(xié)議將其解析為包含實(shí)際信息的數(shù)據(jù)結(jié)構(gòu)。
具體的,所述顯示模塊包括語言學(xué)習(xí)模塊以及虛擬現(xiàn)實(shí)渲染模塊,所述語言學(xué)習(xí)模塊用于教學(xué)內(nèi)容的存儲(chǔ)及播放,所述虛擬現(xiàn)實(shí)渲染模塊用于播放畫面的渲染。
進(jìn)一步的,還包括音頻系統(tǒng)服務(wù)模塊,所述音頻系統(tǒng)服務(wù)模塊用于維護(hù)麥克風(fēng)陣列的生命周期,將解析后的數(shù)據(jù)結(jié)構(gòu)傳輸給語言學(xué)習(xí)模塊,同時(shí)也接收來自語言學(xué)習(xí)模塊的下發(fā)指令并發(fā)送給麥克風(fēng)陣列。
進(jìn)一步的,還包括光學(xué)模塊,所述光學(xué)模塊用于放大顯示模塊的尺寸,增加用戶視覺市場(chǎng)角,提高用戶的視覺體驗(yàn)的沉浸感。
結(jié)合附圖2,麥克風(fēng)陣列驅(qū)動(dòng)模塊負(fù)責(zé)在系統(tǒng)中利用多種連接方式識(shí)別,連接和讀寫麥克風(fēng)陣列音頻設(shè)備。連接方式包含:藍(lán)牙,usb和無線網(wǎng)絡(luò),因此在不同連接驅(qū)動(dòng)之上構(gòu)建麥克風(fēng)陣列驅(qū)動(dòng)模塊,負(fù)責(zé)識(shí)別設(shè)備類型和協(xié)議版本,連接/斷開設(shè)備,讀寫數(shù)據(jù)等基本設(shè)備操作。
步驟1:系統(tǒng)的藍(lán)牙/usb/wifi收到設(shè)備連接事件;
步驟2:通過讀取設(shè)備描述符決定是否為麥克風(fēng)陣列音頻設(shè)備;
步驟3:確定是麥克風(fēng)設(shè)備后,執(zhí)行連接操作;
步驟4:讀取設(shè)備屬性信息,包括廠商,設(shè)備子類型和協(xié)議版本信息;
步驟5:開啟讀寫端口,建立輪詢數(shù)據(jù)線程;
步驟6:將數(shù)據(jù)上報(bào)給麥克風(fēng)音頻數(shù)據(jù)解析模塊。
結(jié)合附圖3,麥克風(fēng)音頻數(shù)據(jù)解析模塊負(fù)責(zé)根據(jù)設(shè)備類型解析設(shè)備上報(bào)的數(shù)據(jù)為麥克風(fēng)陣列數(shù)據(jù)結(jié)構(gòu)。其中數(shù)據(jù)解析模塊分為標(biāo)準(zhǔn)協(xié)議模塊和自定義協(xié)議模塊,標(biāo)準(zhǔn)協(xié)議模塊為系統(tǒng)定義的標(biāo)準(zhǔn)麥克風(fēng)音頻數(shù)據(jù)協(xié)議,只要麥克風(fēng)音頻設(shè)備按標(biāo)準(zhǔn)數(shù)據(jù)協(xié)議上報(bào)數(shù)據(jù)就能被正確解析,而自定義協(xié)議為麥克分音頻設(shè)備自身設(shè)定,為了兼容這類設(shè)備,在解析擴(kuò)展中可支持這類麥克風(fēng)設(shè)備數(shù)據(jù)解析流程:
步驟1:根據(jù)設(shè)備類型獲取相應(yīng)的數(shù)據(jù)解析模塊;
步驟2:如果設(shè)備類型表明設(shè)備為自定義協(xié)議設(shè)備,則讀取擴(kuò)展解析協(xié)議模塊;
步驟3:如果是系統(tǒng)標(biāo)準(zhǔn)協(xié)議則根據(jù)協(xié)議版本號(hào)獲取數(shù)據(jù)解析模塊中對(duì)應(yīng)版本的解析實(shí)例;
步驟4:遍歷讀取的字節(jié)數(shù)組,尋找字段頭,將解析數(shù)值放入數(shù)據(jù)結(jié)構(gòu)中;
步驟5:如果已經(jīng)解析到字節(jié)數(shù)組尾部,判斷當(dāng)前是否解析完成,如果已經(jīng)完成則等待下一組數(shù)據(jù),如果未解析完成,則將這部分字節(jié)放入下一組數(shù)據(jù)中繼續(xù)處理。
結(jié)合附圖4,音頻系統(tǒng)服務(wù)模塊位于應(yīng)用和底層驅(qū)動(dòng)之間,在系統(tǒng)中運(yùn)行高優(yōu)先級(jí)系統(tǒng)服務(wù)來建立驅(qū)動(dòng)到應(yīng)用的數(shù)據(jù)通道,其中系統(tǒng)服務(wù)的主要功能有,維護(hù)麥克風(fēng)陣列設(shè)備的生命周期,將解析后的數(shù)據(jù)結(jié)構(gòu)通過sdkapi接口傳輸給語言學(xué)習(xí)模塊,同時(shí)也接收來自語言學(xué)習(xí)模塊的下發(fā)指令并發(fā)送到驅(qū)動(dòng)層發(fā)送給麥克風(fēng)陣列設(shè)備。
音頻系統(tǒng)服務(wù)層數(shù)據(jù)傳輸流程:
步驟1:通過驅(qū)動(dòng)層獲取當(dāng)前連接的麥克風(fēng)陣列設(shè)備列表;
步驟2:根據(jù)sdkapi啟動(dòng)來自麥克風(fēng)陣列設(shè)備列表的某個(gè)設(shè)備,創(chuàng)建數(shù)據(jù)消息隊(duì)列;
步驟3:讀取來自數(shù)據(jù)解析模塊解析后的麥克風(fēng)數(shù)據(jù)結(jié)構(gòu)體;
步驟4:如果該結(jié)構(gòu)體時(shí)間戳小于最后一組數(shù)據(jù)的時(shí)間戳,認(rèn)為是亂序數(shù)據(jù)而直接拋棄;
步驟5:如數(shù)據(jù)時(shí)間戳正常,將解析數(shù)據(jù)結(jié)構(gòu)體拷貝一份到服務(wù)層共享內(nèi)存中,供語言學(xué)習(xí)模塊直接讀??;
步驟6:通知語言學(xué)習(xí)模塊有新數(shù)據(jù)上報(bào),回調(diào)其接口;
步驟7:等待下一組解析數(shù)據(jù)結(jié)構(gòu)體。
結(jié)合附圖5,語言學(xué)習(xí)模塊以插件的形式內(nèi)嵌在應(yīng)用中,為了支持不同類型的應(yīng)用,語言學(xué)習(xí)模塊在核心邏輯基礎(chǔ)上封裝了androidapi,unity插件,unreal插件,讓應(yīng)用和游戲都能夠獲取麥克風(fēng)音頻數(shù)據(jù)并且能夠給設(shè)備寫回指令數(shù)據(jù)。
獲取麥克風(fēng)音頻數(shù)據(jù)流程:
步驟1:向音頻系統(tǒng)服務(wù)模塊注冊(cè)服務(wù);
步驟2:如果注冊(cè)成功,獲取當(dāng)前連接設(shè)備列表;
步驟3:選擇要讀取數(shù)據(jù)的設(shè)備,設(shè)置監(jiān)聽器;
步驟4:監(jiān)聽器等待數(shù)據(jù)信號(hào),如果存在新數(shù)據(jù),監(jiān)聽器回調(diào)監(jiān)聽方法,監(jiān)聽方法參數(shù)中帶有麥克風(fēng)陣列數(shù)據(jù)結(jié)構(gòu)體;
步驟5:開發(fā)者利用結(jié)構(gòu)體中的數(shù)據(jù)改變應(yīng)用的訓(xùn)練狀態(tài);
步驟6:回到步驟4,繼續(xù)等待數(shù)據(jù)。
虛擬現(xiàn)實(shí)渲染服務(wù)模塊
結(jié)合附圖6,麥克風(fēng)陣列數(shù)據(jù)需要作用于虛擬現(xiàn)實(shí)場(chǎng)景中才能獲得訓(xùn)練效果,為了支持開發(fā)者開發(fā)沉浸式語言學(xué)習(xí)課程內(nèi)容,系統(tǒng)中提供了渲染服務(wù)層提供虛擬現(xiàn)實(shí)渲染api和相應(yīng)的開發(fā)工具幫助開發(fā)者開發(fā)內(nèi)容。
虛擬現(xiàn)實(shí)渲染流程如下:
步驟1:通過sdkapi接口獲得應(yīng)用的場(chǎng)景模型的數(shù)據(jù)和資源,這些模型數(shù)據(jù)通常為模型頂點(diǎn)數(shù)據(jù),紋理資源等;
步驟2:準(zhǔn)備開始畫面新一幀的渲染;
步驟3:將模型/場(chǎng)景/ui數(shù)據(jù)通過語言學(xué)習(xí)模塊同步給系統(tǒng)渲染層;
步驟4:在每一個(gè)渲染幀的回調(diào)中更新一次麥克風(fēng)陣列數(shù)據(jù),讓數(shù)據(jù)作用于應(yīng)用中的場(chǎng)景或模型中,并且將更新后的結(jié)果提交給系統(tǒng)渲染層;
步驟5:讀取系統(tǒng)九軸傳感器數(shù)據(jù),九軸傳感器安裝于人體,用于檢測(cè)人體姿態(tài)數(shù)據(jù);
步驟6:傳感器融合算法對(duì)采集的傳感器數(shù)據(jù)進(jìn)行融合,得到當(dāng)前的姿態(tài)矩陣;
步驟7:將姿態(tài)矩陣作用到系統(tǒng)渲染服務(wù)層中的相機(jī)上,更新視角方向;
步驟8:執(zhí)行圖形渲染矩陣計(jì)算,并將結(jié)果提交給gpu渲染。
本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。