亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種用于旅游景區(qū)智能導(dǎo)游系統(tǒng)的語(yǔ)音解說(shuō)方法與流程

文檔序號(hào):12368490閱讀:669來(lái)源:國(guó)知局
一種用于旅游景區(qū)智能導(dǎo)游系統(tǒng)的語(yǔ)音解說(shuō)方法與流程

本發(fā)明涉及智能導(dǎo)游技術(shù)領(lǐng)域,具體涉及一種用于旅游景區(qū)智能導(dǎo)游系統(tǒng)的語(yǔ)音解說(shuō)方法。



背景技術(shù):

智能導(dǎo)游系統(tǒng)是指用電子設(shè)備代替導(dǎo)游對(duì)旅游景點(diǎn)進(jìn)行介紹的系統(tǒng)。智能導(dǎo)游的其中一個(gè)功能是為游客提供景點(diǎn)的語(yǔ)音解說(shuō)。系統(tǒng)實(shí)時(shí)地將游客當(dāng)前位置與系統(tǒng)設(shè)定的景點(diǎn)范圍進(jìn)行匹配,當(dāng)游客進(jìn)入系統(tǒng)設(shè)定的景點(diǎn)范圍時(shí),智能導(dǎo)游會(huì)開(kāi)始對(duì)該景點(diǎn)進(jìn)行語(yǔ)音介紹。在該功能的實(shí)現(xiàn)過(guò)程中,關(guān)鍵技術(shù)為景點(diǎn)數(shù)據(jù)的存儲(chǔ)、景點(diǎn)數(shù)據(jù)的匹配和解決景點(diǎn)解說(shuō)語(yǔ)音的重復(fù)播放問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供一種用于旅游景區(qū)智能導(dǎo)游系統(tǒng)的語(yǔ)音解說(shuō)方法。

本發(fā)明的技術(shù)方案是:

一種用于旅游景區(qū)智能導(dǎo)游系統(tǒng)的語(yǔ)音解說(shuō)方法,包括以下步驟:

步驟1、獲取景點(diǎn)數(shù)據(jù);

步驟1-1、設(shè)置景點(diǎn)所在位置;

步驟1-2、確定景點(diǎn)的解說(shuō)范圍;

步驟2、景點(diǎn)數(shù)據(jù)匹配;

步驟2-1、在景點(diǎn)的東北和西南方向分別確定兩個(gè)點(diǎn)a、b,采集a、b的經(jīng)緯度信息即景點(diǎn)數(shù)據(jù);a的經(jīng)度作為A的西側(cè)經(jīng)度wLon;b的經(jīng)度作為A的東側(cè)經(jīng)度eLon;a的緯度作為A的北側(cè)緯度nLat;b的緯度作為A的南側(cè)緯度slat;

步驟2-2、定義一個(gè)存放景點(diǎn)數(shù)據(jù)的結(jié)構(gòu)體sceneryBuffer,用于將txt文本文件中的數(shù)據(jù)讀到內(nèi)存中,定義一個(gè)類(lèi)GetStoredData,并且在類(lèi)的構(gòu)造函數(shù)中實(shí)現(xiàn)對(duì)景點(diǎn)數(shù)據(jù)讀取的所有操作,當(dāng)用該類(lèi)實(shí)例化一個(gè)對(duì)象時(shí),同時(shí)也將所有景點(diǎn)數(shù)據(jù)讀到全局的SceBuf中;

步驟2-3、進(jìn)行景點(diǎn)數(shù)據(jù)匹配:當(dāng)前地圖上游客的位置與某個(gè)景點(diǎn)匹配成功,說(shuō)明游客已進(jìn)入該景點(diǎn)的解說(shuō)范圍,則進(jìn)行步驟3;

步驟3、語(yǔ)音解說(shuō):調(diào)用API函數(shù)PlaySound播放相應(yīng)景點(diǎn)的解說(shuō)語(yǔ)音;

步驟4、語(yǔ)音重復(fù)播放:當(dāng)此景點(diǎn)的語(yǔ)音解說(shuō)結(jié)束后,如果游客還在當(dāng)前景點(diǎn)的語(yǔ)音解說(shuō)范圍內(nèi),會(huì)再一次觸發(fā)該景點(diǎn)的語(yǔ)音解說(shuō)事件,游客就會(huì)重復(fù)聽(tīng)到景點(diǎn)解說(shuō)語(yǔ)音。

所述步驟1-2確定景點(diǎn)的解說(shuō)范圍的具體方法是:對(duì)于景點(diǎn)A,分別采集其東南方向和西北方向的兩個(gè)點(diǎn)b和a,其中按a、b的經(jīng)度與緯度做射線ac、ad;bc、bd,則組成一個(gè)矩形acbd,并且acbd包括景點(diǎn)A,則acbd組成的范圍α,即是A的解說(shuō)范圍;通過(guò)調(diào)整a、b得到解說(shuō)范圍α。

有益效果:

導(dǎo)游系統(tǒng)的設(shè)計(jì)初衷是代替導(dǎo)游為游客提供個(gè)性化的導(dǎo)游服務(wù), 應(yīng)該體現(xiàn)以游客為本, 提供全方位的自然的導(dǎo)游服務(wù)。因此,對(duì)相應(yīng)景點(diǎn)的語(yǔ)音解說(shuō)是智能導(dǎo)游其中一項(xiàng)必要的服務(wù)。有了完善的語(yǔ)音解說(shuō)的支持,相信智能導(dǎo)游會(huì)更加吸引游客的注意。本方法通過(guò)設(shè)置景點(diǎn)所在位置、確定景點(diǎn)的解說(shuō)范圍完成景點(diǎn)數(shù)據(jù)的獲取,再進(jìn)行景點(diǎn)數(shù)據(jù)匹配,當(dāng)前地圖上游客的位置與某個(gè)景點(diǎn)匹配成功,說(shuō)明游客已進(jìn)入該景點(diǎn)的解說(shuō)范圍,則進(jìn)行語(yǔ)音解說(shuō);當(dāng)此景點(diǎn)的語(yǔ)音解說(shuō)結(jié)束后,如果游客還在當(dāng)前景點(diǎn)的語(yǔ)音解說(shuō)范圍內(nèi),會(huì)再一次觸發(fā)該景點(diǎn)的語(yǔ)音解說(shuō)事件,游客就會(huì)重復(fù)聽(tīng)到景點(diǎn)解說(shuō)語(yǔ)音。本方法全面地實(shí)現(xiàn)了旅游景區(qū)智能導(dǎo)游系統(tǒng)的智能語(yǔ)音解說(shuō)。

附圖說(shuō)明

圖1是本發(fā)明具體實(shí)施方式的景點(diǎn)A示意圖;

圖2是本發(fā)明具體實(shí)施方式的景點(diǎn)A、B的解說(shuō)范圍示意圖;

圖3是本發(fā)明具體實(shí)施方式的方案一中公共區(qū)域S的解說(shuō)范圍示意圖;

圖4是本發(fā)明具體實(shí)施方式的方案二中景點(diǎn)A的解說(shuō)范圍示意圖;

圖5是本發(fā)明具體實(shí)施方式的方案二中景點(diǎn)B的解說(shuō)范圍示意圖;

圖6是本發(fā)明具體實(shí)施方式的景點(diǎn)的東北和西南方向確定的兩個(gè)點(diǎn)a、b位置示意圖;

圖7是本發(fā)明具體實(shí)施方式的景點(diǎn)數(shù)據(jù)存儲(chǔ)方式;

圖8是本發(fā)明具體實(shí)施方式的讀取景點(diǎn)數(shù)據(jù)的流程圖;

圖9是本發(fā)明具體實(shí)施方式的某景區(qū)有五個(gè)景點(diǎn)示意圖;

圖10是本發(fā)明具體實(shí)施方式的語(yǔ)音重復(fù)播放流程圖;

圖11是本發(fā)明具體實(shí)施方式的用于旅游景區(qū)智能導(dǎo)游系統(tǒng)的語(yǔ)音解說(shuō)方法流程圖。

具體實(shí)施方式

下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式做詳細(xì)說(shuō)明。

一種用于旅游景區(qū)智能導(dǎo)游系統(tǒng)的語(yǔ)音解說(shuō)方法,如圖11所示,包括以下步驟:

步驟1、獲取景點(diǎn)數(shù)據(jù);

步驟1-1、設(shè)置景點(diǎn)所在位置;

步驟1-2、確定景點(diǎn)的解說(shuō)范圍;

由于景點(diǎn)的形狀通常是不規(guī)則的,所以,語(yǔ)音解說(shuō)判定的關(guān)鍵是確定景點(diǎn)的范圍,考慮兩種解決方案:

方案一:對(duì)于形狀規(guī)則的景點(diǎn),如圖1中的景點(diǎn)A,可以以A的中心O為圓心,以R為半徑做一個(gè)圓S,則S即是景點(diǎn)A的解說(shuō)范圍,S包含A。

但是這種方法有兩個(gè)缺點(diǎn):一是每個(gè)景點(diǎn)都需要一個(gè)適合自己的半徑R,對(duì)于半徑R的確定需要做更多的工作;并且在處理范圍檢測(cè)的時(shí)候,需要根據(jù)游客當(dāng)前的位置和景點(diǎn)中心的位置計(jì)算出兩者實(shí)際的距離,然后與R作比較。這樣每次循環(huán)都需要計(jì)算M(M是景點(diǎn)個(gè)數(shù))次。這無(wú)疑影響了程序的效率。另外在根據(jù)兩點(diǎn)的經(jīng)緯度進(jìn)行實(shí)際距離計(jì)算時(shí),也容易產(chǎn)生很大的誤差;二是這種方式對(duì)范圍的確定容易產(chǎn)生范圍交錯(cuò)(兩景點(diǎn)相距較近時(shí))情況,也容易產(chǎn)生范圍不均勻的情況。如圖2所示,景點(diǎn)A、B的解說(shuō)范圍α、β有一個(gè)公共區(qū)域S,當(dāng)游客站在A、B的中界線上的時(shí)候,并且出于S的區(qū)域內(nèi)的時(shí)候,就會(huì)分別播放A、B的語(yǔ)言解說(shuō),造成錯(cuò)誤。

此外如圖3所示,對(duì)于像A這樣的景點(diǎn),在ad邊一側(cè),游客距ad還有一個(gè)較大的距離R`時(shí)就開(kāi)始進(jìn)行語(yǔ)音解說(shuō)了,這時(shí)由于游客離A較遠(yuǎn),很有可能看不到一些具體的細(xì)節(jié),而在a、b、c、d四個(gè)點(diǎn)附近,即使游客距離A很近,也不會(huì)有關(guān)于A的語(yǔ)音解說(shuō)。有人會(huì)說(shuō),這個(gè)問(wèn)題可以通擴(kuò)大半徑R來(lái)解決。但是當(dāng)R擴(kuò)大以后,a、b、c、d四個(gè)點(diǎn)附近的問(wèn)題解決了,但是實(shí)際上R`也會(huì)隨之變大,第一個(gè)問(wèn)題仍然沒(méi)有解決。

方案二:對(duì)于景點(diǎn)A,需要采集其東南方向和西北方向的兩個(gè)點(diǎn)b和a,其中按a、b的精度與緯度做射線ac、ad;bc、bd,則組成一個(gè)矩形acbd,并且acbd包括景點(diǎn)A,則acbd組成的范圍α,即是A的解說(shuō)范圍。通過(guò)調(diào)整a、b到一個(gè)合理的范圍,就可以確定一個(gè)合適的解說(shuō)范圍α,如圖4所示。這種確定景點(diǎn)解說(shuō)范圍的方式有一個(gè)很明顯的優(yōu)勢(shì):當(dāng)景點(diǎn)輪廓是一個(gè)不規(guī)則的形狀的時(shí)候,如圖5中的B也可以很方便的確定一個(gè)合適的解說(shuō)范圍。因此選擇了第二種方案,可以很好地避免方案一中的不足。

步驟2、景點(diǎn)數(shù)據(jù)匹配;

步驟2-1、在景點(diǎn)的東北和西南方向分別確定兩個(gè)點(diǎn)a、b,采集a、b的經(jīng)緯度信息即景點(diǎn)數(shù)據(jù);a的經(jīng)度作為A的西側(cè)經(jīng)度wLon;b的經(jīng)度作為A的東側(cè)經(jīng)度eLon;a的緯度作為A的北側(cè)緯度nLat;b的緯度作為A的南側(cè)緯度slat;如圖6所示;

步驟2-2、定義一個(gè)存放景點(diǎn)數(shù)據(jù)的結(jié)構(gòu)體sceneryBuffer,用于將txt文本文件中的數(shù)據(jù)讀到內(nèi)存中,定義一個(gè)類(lèi)GetStoredData,并且在類(lèi)的構(gòu)造函數(shù)中實(shí)現(xiàn)對(duì)景點(diǎn)數(shù)據(jù)讀取的所有操作,當(dāng)用該類(lèi)實(shí)例化一個(gè)對(duì)象時(shí),同時(shí)也將所有景點(diǎn)數(shù)據(jù)讀到全局的SceBuf中;

將這些數(shù)據(jù)按如圖7所示的方式存儲(chǔ)到文本文件中。結(jié)構(gòu)體sceneryBuffer,用于將txt文本文件中的數(shù)據(jù)在程序運(yùn)行的時(shí)候讀到內(nèi)存中,這樣加速景點(diǎn)范圍的匹配從而提高程序運(yùn)行的效率。圖8為讀取景點(diǎn)數(shù)據(jù)的流程圖。

步驟2-3、進(jìn)行景點(diǎn)數(shù)據(jù)匹配:當(dāng)前地圖上游客的位置與某個(gè)景點(diǎn)匹配成功,說(shuō)明游客已進(jìn)入該景點(diǎn)的解說(shuō)范圍,則進(jìn)行步驟3;

進(jìn)行景點(diǎn)數(shù)據(jù)匹配時(shí),首先要讀取存儲(chǔ)好的景點(diǎn)數(shù)據(jù)到內(nèi)存中。也可以不將景點(diǎn)數(shù)據(jù)一次全部讀到內(nèi)存中,當(dāng)用地圖上當(dāng)前移動(dòng)的游客位置與存儲(chǔ)的景點(diǎn)位置數(shù)據(jù)進(jìn)行匹配時(shí),從文件中讀出一個(gè)景點(diǎn)的數(shù)據(jù)進(jìn)行匹配,如果匹配不成功繼續(xù)讀下一條數(shù)據(jù)。但這樣雖然節(jié)省了內(nèi)存卻降低了系統(tǒng)效率,因?yàn)橄到y(tǒng)每更新一次地圖上游客的位置,都要進(jìn)行一次所有存儲(chǔ)景點(diǎn)數(shù)據(jù)的循環(huán)匹配。

步驟3、語(yǔ)音解說(shuō):

如果在循環(huán)數(shù)據(jù)匹配過(guò)程中,當(dāng)前地圖上游客的位置與某個(gè)景點(diǎn)匹配成功(此時(shí)標(biāo)記變量被賦為某個(gè)值),說(shuō)明游客已進(jìn)入該景點(diǎn)的解說(shuō)范圍,則進(jìn)行當(dāng)前景點(diǎn)的語(yǔ)音解說(shuō)。語(yǔ)音文件順序和景點(diǎn)信息順序保持一致,匹配成功后,直接調(diào)用API函數(shù)PlaySound播放相應(yīng)景點(diǎn)的解說(shuō)語(yǔ)音。為了在播放語(yǔ)音同時(shí)在地圖上繪制動(dòng)態(tài)移動(dòng)的點(diǎn),采用異步播放,為了在循環(huán)進(jìn)行景點(diǎn)數(shù)據(jù)匹配時(shí)進(jìn)行其他操作,采用多線程技術(shù)。

步驟4、語(yǔ)音重復(fù)播放:當(dāng)此景點(diǎn)的語(yǔ)音解說(shuō)結(jié)束后,如果游客還在當(dāng)前景點(diǎn)的語(yǔ)音解說(shuō)范圍內(nèi),會(huì)再一次觸發(fā)該景點(diǎn)的語(yǔ)音解說(shuō)事件,游客就會(huì)重復(fù)聽(tīng)到景點(diǎn)解說(shuō)語(yǔ)音。

游客帶著智能導(dǎo)游終端進(jìn)入景區(qū)后,系統(tǒng)會(huì)實(shí)時(shí)地讀取游客當(dāng)前的位置,并與存儲(chǔ)的景點(diǎn)數(shù)據(jù)進(jìn)行匹配。當(dāng)游客進(jìn)入某一景點(diǎn)解說(shuō)范圍時(shí),會(huì)觸發(fā)當(dāng)前景點(diǎn)的語(yǔ)音解說(shuō)。但是這時(shí)會(huì)遇到一個(gè)問(wèn)題,當(dāng)此景點(diǎn)的語(yǔ)音解說(shuō)結(jié)束后,如果游客還在當(dāng)前景點(diǎn)的語(yǔ)音解說(shuō)范圍內(nèi),會(huì)再一次觸發(fā)該景點(diǎn)的語(yǔ)音解說(shuō)事件,游客就會(huì)重復(fù)聽(tīng)到景點(diǎn)解說(shuō)語(yǔ)音。

為了解決重復(fù)播放同一景點(diǎn)的解說(shuō)語(yǔ)音問(wèn)題,我們?cè)诖鎯?chǔ)景點(diǎn)數(shù)據(jù)的結(jié)構(gòu)體struct scenery-Buffer中定義了一個(gè)播放標(biāo)記flag初始化為0,當(dāng)數(shù)據(jù)匹配成功且播放標(biāo)記sceBuf[i].flag為0時(shí)播放該點(diǎn)語(yǔ)音解說(shuō)。當(dāng)播放完某個(gè)景點(diǎn)的語(yǔ)音解說(shuō)后,將sceBuf[i].flag置為1。這時(shí),如果游客還在同一景點(diǎn)的解說(shuō)范圍內(nèi),雖然數(shù)據(jù)匹配時(shí)是成功的,但該景點(diǎn)的播放標(biāo)記sceBuf[i].flag為1,所以不再進(jìn)行語(yǔ)音播放。

但此時(shí)遇到另一個(gè)問(wèn)題,如果游客再次進(jìn)入該景點(diǎn)的解說(shuō)范圍,由于該景點(diǎn)的播放標(biāo)記sceBuf[i].flag已被置為1,即使數(shù)據(jù)匹配成功,也不會(huì)播放該景點(diǎn)語(yǔ)音解說(shuō)。如圖9所示,某景區(qū)有五個(gè)景點(diǎn),當(dāng)游客進(jìn)入景點(diǎn)1的語(yǔ)音解說(shuō)范圍,播放完該景點(diǎn)的解說(shuō)語(yǔ)音后,該景點(diǎn)的語(yǔ)音解說(shuō)標(biāo)記立即被置為1。 同理,接下來(lái)游客分別進(jìn)入景點(diǎn)2和3,相應(yīng)的語(yǔ)音解說(shuō)標(biāo)記分別被置為1。此時(shí),由于某種原因,游客從景點(diǎn)3回到了景點(diǎn)1,但是由于景點(diǎn)1的語(yǔ)音解說(shuō)標(biāo)記已經(jīng)被置為了1,所以沒(méi)有播放景點(diǎn)1的解說(shuō)語(yǔ)音。

為解決這一問(wèn)題,定義一個(gè)順序表int sceFlagList[SIZE],用來(lái)存放某個(gè)景點(diǎn)的播放標(biāo)記sceBuf[i].flag。可以根據(jù)景區(qū)景點(diǎn)數(shù)量來(lái)調(diào)整SIZE,從而調(diào)整sceFlagList的大小。SIZE為景區(qū)的景點(diǎn)數(shù),或者比景點(diǎn)數(shù)量大的某個(gè)合適值。當(dāng)游客進(jìn)入某個(gè)景點(diǎn)的解說(shuō)范圍時(shí),數(shù)據(jù)匹配成功,并進(jìn)行語(yǔ)音解說(shuō),然后將該景點(diǎn)的播放標(biāo)記sceBuf[i].flag設(shè)為1,并順序壓入順序表。另外定義一個(gè)順序表內(nèi)容數(shù)量標(biāo)記int curFlag并初始化為0。當(dāng)每次順序表中壓入一條內(nèi)容之后,順序表內(nèi)容數(shù)量標(biāo)記curFlag都要加1。每次進(jìn)入下一個(gè)景點(diǎn)解說(shuō)范圍,進(jìn)行完語(yǔ)音解說(shuō)之后,除進(jìn)行將該景點(diǎn)的播放標(biāo)記sceBuf[i].flag設(shè)為1,并順序壓入順序表工作之外,如果此時(shí)順序表內(nèi)容數(shù)量標(biāo)記curFlag>=1,則將順序表中該景點(diǎn)的播放標(biāo)記sceFlagList[curFlag]的上一個(gè)位置sceFlagList[curFlag-1]置為0,即游客剛游覽過(guò)的倒數(shù)第二個(gè)景點(diǎn)的播放標(biāo)記設(shè)為0,這樣很好的解決了上面提到的問(wèn)題。如圖9所示,當(dāng)游客走出景點(diǎn)1的語(yǔ)音解說(shuō)范圍時(shí),立即將景點(diǎn)1的語(yǔ)音解說(shuō)標(biāo)記置為0。這樣,當(dāng)游客再次返回到景點(diǎn)1時(shí),由于此時(shí)景點(diǎn)1的語(yǔ)音解說(shuō)標(biāo)記為0,所以會(huì)觸發(fā)景點(diǎn)1的語(yǔ)音解說(shuō)事件。圖10為解決該問(wèn)題的流程圖。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1