欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

文檔序號:12368490閱讀:672來源:國知局
一種用于旅游景區(qū)智能導游系統(tǒng)的語音解說方法與流程

本發(fā)明涉及智能導游技術領域,具體涉及一種用于旅游景區(qū)智能導游系統(tǒng)的語音解說方法。



背景技術:

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



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

針對現(xiàn)有技術存在的問題,本發(fā)明提供一種用于旅游景區(qū)智能導游系統(tǒng)的語音解說方法。

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

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

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

步驟1-1、設置景點所在位置;

步驟1-2、確定景點的解說范圍;

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

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

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

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

步驟3、語音解說:調用API函數(shù)PlaySound播放相應景點的解說語音;

步驟4、語音重復播放:當此景點的語音解說結束后,如果游客還在當前景點的語音解說范圍內,會再一次觸發(fā)該景點的語音解說事件,游客就會重復聽到景點解說語音。

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

有益效果:

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

附圖說明

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

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

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

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

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

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

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

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

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

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

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

具體實施方式

下面結合附圖對本發(fā)明的具體實施方式做詳細說明。

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

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

步驟1-1、設置景點所在位置;

步驟1-2、確定景點的解說范圍;

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

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

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

此外如圖3所示,對于像A這樣的景點,在ad邊一側,游客距ad還有一個較大的距離R`時就開始進行語音解說了,這時由于游客離A較遠,很有可能看不到一些具體的細節(jié),而在a、b、c、d四個點附近,即使游客距離A很近,也不會有關于A的語音解說。有人會說,這個問題可以通擴大半徑R來解決。但是當R擴大以后,a、b、c、d四個點附近的問題解決了,但是實際上R`也會隨之變大,第一個問題仍然沒有解決。

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

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

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

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

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

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

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

步驟3、語音解說:

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

步驟4、語音重復播放:當此景點的語音解說結束后,如果游客還在當前景點的語音解說范圍內,會再一次觸發(fā)該景點的語音解說事件,游客就會重復聽到景點解說語音。

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

為了解決重復播放同一景點的解說語音問題,我們在存儲景點數(shù)據(jù)的結構體struct scenery-Buffer中定義了一個播放標記flag初始化為0,當數(shù)據(jù)匹配成功且播放標記sceBuf[i].flag為0時播放該點語音解說。當播放完某個景點的語音解說后,將sceBuf[i].flag置為1。這時,如果游客還在同一景點的解說范圍內,雖然數(shù)據(jù)匹配時是成功的,但該景點的播放標記sceBuf[i].flag為1,所以不再進行語音播放。

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

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

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宿松县| 原平市| 黑水县| 泸定县| 龙胜| 开化县| 通海县| 滕州市| 灵宝市| 洮南市| 枣强县| 阿拉善盟| 天津市| 大埔区| 永嘉县| 杂多县| 兴宁市| 于田县| 苍山县| 吐鲁番市| 阜宁县| 通山县| 蕲春县| 英德市| 蒙山县| 沂南县| 油尖旺区| 和平县| 兴城市| 安新县| 堆龙德庆县| 东乡族自治县| 乌拉特中旗| 科技| 揭阳市| 西华县| 盐亭县| 江川县| 池州市| 翼城县| 南和县|