莊梓佳,李衛(wèi)華(廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,廣州 510006)
基于語音與LBS的活動(dòng)查看與發(fā)布應(yīng)用設(shè)計(jì)
莊梓佳,李衛(wèi)華
(廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,廣州510006)
當(dāng)前,如何將移動(dòng)互聯(lián)網(wǎng)技術(shù)更好的與生活實(shí)際相結(jié)合,已經(jīng)是各大互聯(lián)網(wǎng)巨頭們挖空心思鉆研的方向。隨著各種團(tuán)購、旅游、打車及外賣等多個(gè)嵌入LBS技術(shù)的應(yīng)用的推出,以及各種基于LBS的O2O模式的崛起,也讓人們嗅到了互聯(lián)網(wǎng)技術(shù)的一個(gè)未來的方向。LBS將會(huì)是未來互聯(lián)網(wǎng)技術(shù)融入與研究的一個(gè)大方向,如何將LBS結(jié)合生活所需應(yīng)用到日常生活中,已經(jīng)是一個(gè)毋庸置疑的研究重點(diǎn)。人們迫切需要一個(gè)能用于發(fā)布與了解周邊活動(dòng)信息的平臺(tái),以便了解周邊信息與活動(dòng),更好地融入到周邊的生活中來。
本系統(tǒng)是建立在目前市場(chǎng)上比較普及的Android系統(tǒng)上,基于百度LBS并結(jié)合在線云語音技術(shù),實(shí)現(xiàn)了周邊活動(dòng)的發(fā)布與查看。在該客戶端開發(fā)中,不僅實(shí)現(xiàn)了查看熱門與最新的活動(dòng),發(fā)布個(gè)人的活動(dòng)信息,還具有定位及查看對(duì)應(yīng)城市或指定地理位置周邊的活動(dòng)的功能,同時(shí)接入了在線云語音技術(shù),實(shí)現(xiàn)了活動(dòng)發(fā)布時(shí)的語音轉(zhuǎn)文字輸入和活動(dòng)查看時(shí)的語音播放,方便了用戶的操作。另外,該系統(tǒng)還實(shí)現(xiàn)了在線聊天的功能。用戶可以查看對(duì)方信息進(jìn)行關(guān)注并發(fā)起在線聊天等,方便了用戶的社交交流。
該系統(tǒng)是基于LBS與語音的活動(dòng)發(fā)布與查看的Android應(yīng)用。作為一個(gè)基礎(chǔ)LBS應(yīng)用的需求,首先是要能夠滿足基本的按位置為用戶提供信息服務(wù)需求,同時(shí)結(jié)合語音技術(shù)提高使用便捷性的需求,其次是滿足基本的社交應(yīng)用需求等,對(duì)應(yīng)的基本需求模塊點(diǎn)如下:
(1)LBS地理信息模塊。LBS地理信息模塊是本應(yīng)用的最基礎(chǔ)功能,該軟件的主要服務(wù)都是基于地理信息模塊的功能之上。地理信息模塊提供用戶的城市街道定位,以及發(fā)布和查看活動(dòng)時(shí)經(jīng)緯度的獲取,并提供可視化地圖的顯示,方便用戶查看了解具體的地理位置。
(2)語音識(shí)別技術(shù)模塊。語音識(shí)別技術(shù)模塊,也是本系統(tǒng)的一個(gè)基本功能模塊。該模塊提供在線云語音轉(zhuǎn)換的技術(shù),實(shí)現(xiàn)了語音轉(zhuǎn)文字和文字轉(zhuǎn)語音的功能。其中,語音轉(zhuǎn)文字便是在用戶輸入時(shí),直接調(diào)用本地的話筒接口采集用戶的錄音,并上傳到服務(wù)器匹配轉(zhuǎn)換為文字,方便了用戶的信息輸入。而文字轉(zhuǎn)語音則是通過在線將文字內(nèi)容轉(zhuǎn)換為語音播放出來,同時(shí)實(shí)現(xiàn)了語音播放狀態(tài)的控制。
(3)信息發(fā)布查看模塊。信息發(fā)布查看是客戶端對(duì)用戶數(shù)據(jù)的采集和展示。該模塊是基于地理信息模塊和語音技術(shù)轉(zhuǎn)換模塊之上,在用戶發(fā)布信息的時(shí)候,對(duì)LBS地理信息模塊進(jìn)行調(diào)用,獲取相應(yīng)的位置信息,同時(shí)還可以調(diào)用語音技術(shù)轉(zhuǎn)換模塊,通過語音來輸入來提高輸入的便捷性,然后將采集到圖片和文字等信息,上傳到服務(wù)器。而在用戶查看信息的時(shí)候,是將從服務(wù)器獲取到的JSON數(shù)據(jù),以一定的格式解析后,展示出活動(dòng)的基本信息到界面上來,同時(shí),對(duì)于不方便直接查看的用戶,也可直接點(diǎn)擊聲音播放讓系統(tǒng)將內(nèi)容讀出來。查看詳情時(shí),也具有評(píng)論和查了評(píng)論情況的功能。
(4)個(gè)人信息模塊。個(gè)人信息模塊提供個(gè)人信息的展示和維護(hù)界面,以及參加和舉辦過的活動(dòng)信息列表等,同時(shí)還有關(guān)注和粉絲列表查看功能,以及在線聊天接入入口等。
(5)活動(dòng)收藏模塊。活動(dòng)收藏模塊,提供個(gè)人活動(dòng)收藏記錄查看,實(shí)現(xiàn)將收藏的活動(dòng)信息本地化保存,并在線自動(dòng)更新等功能。其中,收藏的記錄提供查看全部和分類查看的界面選擇,提高了用戶的信息查看效率等。
(6)消息提醒模塊。消息提醒模塊是基于個(gè)人信息模塊之上,提供了在線消息推送提醒以及在線聊天的功能。使得用戶能夠通過活動(dòng)這個(gè)介質(zhì)達(dá)到互相認(rèn)識(shí)聊天,了解到更多信息的社交服務(wù)功能。
(7)簡(jiǎn)單易用的交互設(shè)計(jì)與統(tǒng)一的界面UI風(fēng)格。一個(gè)軟件應(yīng)用不僅要有完善的功能界面,還應(yīng)該要用良好的交互以及一致的界面UI,這樣才能夠給用戶留下良好的體驗(yàn)和印象。
在程序設(shè)計(jì)分析的基礎(chǔ)上,結(jié)合實(shí)際情況,得出本程序的功能模塊結(jié)構(gòu)圖,其中包括了系統(tǒng)設(shè)計(jì)時(shí)的總體功能概括,也包含了相關(guān)功能間的聯(lián)系。該系統(tǒng)的功能模塊圖如圖1所示。
基于以上功能模塊需求,可得出系統(tǒng)設(shè)計(jì)的數(shù)據(jù)傳輸流圖如圖2所示。
圖2 數(shù)據(jù)傳輸流圖
圖1 系統(tǒng)的功能模塊圖
在該系統(tǒng)中,客戶端是用戶使用操作的主要對(duì)象,主要的關(guān)注點(diǎn)是UI、交互設(shè)計(jì)與適應(yīng)移動(dòng)設(shè)備的性能限制。除了要簡(jiǎn)潔易用的界面之外,對(duì)于系統(tǒng)的響應(yīng)也存在著嚴(yán)格的要求,并且主要為服務(wù)器收集數(shù)據(jù)和服務(wù)器打交道。該系統(tǒng)的整個(gè)移動(dòng)客戶端的分層架構(gòu)圖如圖3所示。
圖3 客戶端分層架構(gòu)圖
根據(jù)MVC的分層設(shè)計(jì),系統(tǒng)由下自上按層分包。類分層主要有如下設(shè)計(jì)實(shí)現(xiàn):
(1)Bean層:此實(shí)體類層與服務(wù)端實(shí)體類相似,都是一些定義的簡(jiǎn)單對(duì)象,有用于與服務(wù)端交互的數(shù)據(jù)對(duì)象(大多數(shù)與服務(wù)端實(shí)體類一致,便于數(shù)據(jù)傳輸?shù)慕馕觯?,也有用戶保存信息的?shù)據(jù)對(duì)象,還有一些用于適配顯示的簡(jiǎn)單類。
(2)SQLite層:本地?cái)?shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫層。
(3)Shared層:本地?cái)?shù)據(jù)存儲(chǔ)的SharedPreferences形式保存。
(4)Service層:邏輯功能與數(shù)據(jù)源交互的數(shù)據(jù)層。
(5)Adapter層:適配器層,主要負(fù)責(zé)UI和數(shù)據(jù)之間的適配工作。
(6)Application層:應(yīng)用管理及初始化一些需要公用的數(shù)據(jù)。
(7)Activity和Fragment層:主要負(fù)責(zé)和用戶交互界面的邏輯響應(yīng)。
(8)Utils層:提供公用的工具類。
(9)View層:界面使用的自定義顯示控件。
(10)zTest層:為界面顯示提供測(cè)試數(shù)據(jù)。類分層設(shè)計(jì)的代碼分包實(shí)現(xiàn)如圖4所示。
圖4 類分層結(jié)構(gòu)圖
整個(gè)交互流程主要通過HTTP協(xié)議進(jìn)行交互,數(shù)據(jù)交互的網(wǎng)絡(luò)對(duì)接方式主要封裝在 Util包中的HttpUtil類中。
(1)客戶端發(fā)送文字請(qǐng)求到服務(wù)器,主要是將對(duì)應(yīng)參數(shù)傳到對(duì)應(yīng)的Service層,Service層將參數(shù)和對(duì)應(yīng)地址組合成相應(yīng)url字段,然后調(diào)用HttpUtil中的doPost方法,通過實(shí)例化Android系統(tǒng)自動(dòng)的HttpClitent類來將對(duì)應(yīng)請(qǐng)求與參數(shù)發(fā)送至服務(wù)器端。
(2)客戶端上傳圖片資源,通過調(diào)用HttpUtil中的uploadFile方法,將圖片資源的本地路徑傳入,再通過獲取HttpURLConnection連接,將圖片以字節(jié)流的方式輸出到服務(wù)器端。圖片資源在每上傳成功一份后,會(huì)獲取到后臺(tái)服務(wù)器返回的PictureBean,該Bean標(biāo)記了上傳的結(jié)果,包括狀態(tài)和服務(wù)器保存的路徑名。
PictureBean的實(shí)現(xiàn)如下:
(3)客戶端獲取服務(wù)端的數(shù)據(jù),主要是獲取以JSON字符串格式的數(shù)據(jù)。后臺(tái)服務(wù)器通過將對(duì)應(yīng)的數(shù)據(jù)封裝成JSON字符串,再封裝到一層自定義的GsonBean中后發(fā)送給客戶端。客戶端接收到服務(wù)器端的數(shù)據(jù)后,將JSON字符串傳送給對(duì)應(yīng)的Service層。Service通過Gson解析將獲取到的 JSON字符串解析成對(duì)應(yīng)的GsonBean實(shí)例,然后返回給對(duì)應(yīng)的邏輯控制層。
GsonBean的類實(shí)現(xiàn)如圖5所示。
圖5 GsonBean的類實(shí)現(xiàn)
其中state標(biāo)記對(duì)應(yīng)的后臺(tái)操作狀態(tài),strJson存放數(shù)據(jù)的JSON字符串。
其獲取服務(wù)器數(shù)據(jù)的交互流程圖如圖6所示。
圖6 獲取服務(wù)器數(shù)據(jù)的交互流程圖
(4)客戶端獲取服務(wù)器端的圖片資源,由于Android系統(tǒng)對(duì)于應(yīng)用性能的限定,所以采用universalimage-loader開源框架來實(shí)現(xiàn)。通過將服務(wù)器的圖片加載到本地,通過各種緩存cache,避免系統(tǒng)出現(xiàn)OOM的異常,使得內(nèi)存的控制和圖片加載更加智能。該架構(gòu)使用的三級(jí)緩存的方式,對(duì)應(yīng)的圖片加載顯示流程如圖7所示。
圖7 圖片緩存的流程圖
該模塊主要是基于BaiduLBS的SDK以及相應(yīng)的庫來實(shí)現(xiàn)基本的定位功能以及地圖顯示。
調(diào)用百度LBS的API,需要在百度開發(fā)者官網(wǎng)申請(qǐng)應(yīng)用使用LBS權(quán)限的key,然后將該key保存到應(yīng)用代碼中以供驗(yàn)證使用。無論是百度LBS還是語音功能,都需使用到該數(shù)據(jù)key。
而這key的數(shù)據(jù),主要定義在AndroidManifest.xml配置文件中,并會(huì)在程序初始化時(shí)便將數(shù)據(jù)加載到內(nèi)存并保持在BaiduKeyUtil工具類中以供使用。
(1)在使用百度LBS定位功能時(shí),通過初始化LocationClient類并配置相應(yīng)的定位參數(shù)數(shù)據(jù),便可在設(shè)置的相應(yīng)的定位回調(diào)接口中獲取到定位后的數(shù)據(jù)。百度LBS位置定位的定位流程如下。
(2)地圖的可視化界面主要是實(shí)現(xiàn)在MapLoaction Actvity中,通過在Intent中傳入相應(yīng)的經(jīng)緯度信息,即可在該界面的MapView中顯示出對(duì)應(yīng)的位置信息。也可自動(dòng)定位當(dāng)前所在而顯示所在位置在地圖上的信息。百度地圖LBS顯示地圖信息的控制流程如圖8所示。
圖8 百度LBS位置定位的定位流程
本模塊主要基于百度的在線語音轉(zhuǎn)換技術(shù),通過調(diào)用百度提供的語音轉(zhuǎn)換SDK包以及l(fā)ibBDTTSDecoder_V1.so庫實(shí)現(xiàn)了在線文字轉(zhuǎn)語音播放。同時(shí)通過調(diào)用VoiceRecognition.jar包和libBDVoiceRecognition-Client_MFE_V1.so實(shí)現(xiàn)了在線語音識(shí)別轉(zhuǎn)文字。
圖9 百度地圖顯示地圖信息控制流程圖
(1)文字轉(zhuǎn)語音播放功能。通過自身設(shè)計(jì)切圖及代碼實(shí)現(xiàn)的一個(gè)懸浮播放按鈕來顯示語音的狀態(tài),包括加載、播放中、暫停中等狀態(tài),以及單機(jī)切換狀態(tài),雙擊取消播放等事件的處理。每個(gè)狀態(tài)都有對(duì)應(yīng)的顯示處理。文字轉(zhuǎn)語音的播放邏輯,則需實(shí)例化對(duì)應(yīng)的SpeechSynthesizer對(duì)象,通過這個(gè)對(duì)象控制相應(yīng)的邏輯即可。文字在線轉(zhuǎn)語音播放功能的控制邏輯流程圖如圖10所示。
圖10 文字轉(zhuǎn)語音控制邏輯流程圖
(2)語音識(shí)別功能。語音識(shí)別通過設(shè)置相應(yīng)的參數(shù)并實(shí)例化一個(gè)BaiduASRDigitalDialog來顯示語音錄入界面??刂圃摻缑娴拇a主要封裝在DialogUtil工具類中。語音識(shí)別的控制流程如圖11。
通過編碼實(shí)現(xiàn),以下是部分主要界面運(yùn)行的效果如圖12、13所示。
隨著地理信息的豐富和基礎(chǔ)設(shè)備的發(fā)展以及移動(dòng)互聯(lián)網(wǎng)的日益強(qiáng)盛,LBS應(yīng)用已經(jīng)成為生活中必不可少的一部分。同時(shí),語音轉(zhuǎn)換技術(shù)的需求也日漸提高,結(jié)合語音轉(zhuǎn)換技術(shù)嵌入在應(yīng)用客戶端中已經(jīng)形成很多基礎(chǔ)軟件的共識(shí)。
本文給出了基于語音與LBS的活動(dòng)發(fā)布與查看應(yīng)用設(shè)計(jì),目前項(xiàng)目基本完成,但是有許多地方還可繼續(xù)改善提升。例如在LBS應(yīng)用實(shí)現(xiàn)方面,可以為用戶提供相關(guān)的導(dǎo)航服務(wù),以及區(qū)域定點(diǎn)互動(dòng)游戲等,這些都會(huì)在后續(xù)進(jìn)行完善。
圖11 語音識(shí)別的控制流程圖
圖12 主界面活動(dòng)查看效果圖
圖13 活動(dòng)發(fā)布時(shí)的語音轉(zhuǎn)文字輸入及地圖地址選擇
[1]李剛.瘋狂Android講義(第二版)[M].程序語言與軟件開發(fā).電子工業(yè)出版社,2013,
[2]吳勇毅.語音技術(shù)改變?nèi)藗円苿?dòng)生態(tài)[J].CAD/CAM與制造業(yè)信息化,2014(5):14-15.DOI:10.3969/j.issn.1671-8186.2014.05.027.
[3]咨詢部.國(guó)內(nèi)語音識(shí)別領(lǐng)域?qū)@夹g(shù)發(fā)展趨勢(shì)[J].電子知識(shí)產(chǎn)權(quán),2003(9):46-49.DOI:10.3969/j.issn.1004-9517.2003.09.015.
[4]張艾萍.語音識(shí)別技術(shù)在計(jì)算機(jī)輔助語言學(xué)習(xí)中的應(yīng)用綜述[J].消費(fèi)電子,2014(12):117-118.DOI:10.3969/j.issn.S1674-7712.2014.12.107.
[5]詹新明,黃南山,楊燦.語音識(shí)別技術(shù)研究進(jìn)展[J].現(xiàn)代計(jì)算機(jī),2008(09).
[6]百度百科.百度語音.http://baike.baidu.com/view/1121864.htm.
[7]百度百科.百度地圖API(EB/OL).http://baike.baidu.com/view/3521171.htm,2014-1-8
[8]黃瑋.基于Android平臺(tái)LBS的社交網(wǎng)絡(luò)平臺(tái)[D].電子科技大學(xué),2014.
[9]Bruce Eckel.Thinking in Java[M].Upper Saddle River,New Jersey,USA:Prentice Hall,2006.
Speech Recognition;LBS
Design of Activity View and Publish Application Based on Speech and LBS
ZHUANG Zi-jia,LI Wei-hua
(School of Computer,Guangdong University of Technology,Guangzhou 510006)
1007-1423(2015)24-0070-07
10.3969/j.issn.1007-1423.2015.24.017
莊梓佳(1992-),男,廣東揭陽人,本科,研究方向?yàn)锳ndroid應(yīng)用開發(fā)
2015-05-13
2015-08-18
隨著語音識(shí)別與地理信息技術(shù)的發(fā)展,人們迫切需要一個(gè)能用于發(fā)布與了解周邊活動(dòng)信息的平臺(tái),以便更好地融入到周邊的生活中來。結(jié)合百度LBS與百度語音技術(shù),實(shí)現(xiàn)一個(gè)用于發(fā)布個(gè)人和商業(yè)活動(dòng)的信息平臺(tái),使得人們周邊的社交信息得到有效的傳播,群體活動(dòng)得到更多的認(rèn)可與參與,以此提高豐富人們的業(yè)余生活活動(dòng)。
語音識(shí)別;LBS
大學(xué)生創(chuàng)新訓(xùn)練項(xiàng)目
李衛(wèi)華(1957-),女,廣東梅州人,博士研究生,教授,研究方向?yàn)橹悄苘浖?/p>
With the development of the speech recognition and GIS technology,people need a platform which can be used to publish and understand the information of the surrounding activities,so as to better integrate into the life of the surrounding.Combination of Baidu LBS and speech technology,realizes a for publishing information platform for personal and business activities,the people surrounding the social information for effective communication,group activities get more recognition and participation,in order to improve enrich people's leisure life activities.