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