• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android平臺(tái)的資訊播報(bào)軟件設(shè)計(jì)與實(shí)現(xiàn)

      2014-09-26 00:37:20儲(chǔ)正陽
      關(guān)鍵詞:網(wǎng)絡(luò)通信資訊頻道

      鄒 樂, 費(fèi) 訓(xùn), 儲(chǔ)正陽

      (合肥學(xué)院 網(wǎng)絡(luò)與智能信息處理重點(diǎn)實(shí)驗(yàn)室,合肥 230601)

      一、引 論

      隨著網(wǎng)絡(luò)的普及和快速發(fā)展,互聯(lián)網(wǎng)已成為獲取信息的主要渠道,越來越多的用戶使用網(wǎng)絡(luò)來獲取新聞[1]。但是傳統(tǒng)的網(wǎng)頁瀏覽方式也暴露了很多問題,比如,網(wǎng)頁中大量的無關(guān)廣告和信息給我們帶來了很多困擾,對(duì)于一些門戶網(wǎng)站,我們需要經(jīng)過多層鏈接才能看到我們需要的信息,這些過程會(huì)花費(fèi)用戶非常多的時(shí)間,同時(shí)無法滿足老人,兒童等特殊群體聽資訊的需求。

      本文介紹了基于Android平臺(tái)的資訊播報(bào)軟件,該軟件克服因顯示屏、視覺等因素造成的閱讀不便,滿足用戶聽資訊的需求,利于老人、兒童等特殊群體的使用。

      二、相關(guān)技術(shù)簡介

      (一)Android軟件

      Android軟件包含操作軟件、一些關(guān)鍵的應(yīng)用程序(如GoogleMap)以及中間件,開發(fā)語言采用Java,是一組面向移動(dòng)設(shè)備的軟件開發(fā)包[2-4]。Google提供了一套基于eclipse開發(fā)平臺(tái)的工具包供開發(fā)設(shè)計(jì)人員使用。

      (二)語音合成

      語音合成,又稱文語轉(zhuǎn)換(Text to Speech)技術(shù),它涉及聲學(xué)、語言學(xué)、數(shù)字信號(hào)處理、計(jì)算機(jī)科學(xué)等多個(gè)學(xué)科技術(shù),是中文信息處理領(lǐng)域的一項(xiàng)前沿技術(shù),解決的主要問題就是如何將文字信息轉(zhuǎn)化為可聽的聲音信息,也即讓機(jī)器像人一樣開口說話[5]。文語轉(zhuǎn)換軟件其過程是先將文字序列轉(zhuǎn)換成音韻序列,再由軟件根據(jù)音韻序列生成語音波形。

      三、軟件設(shè)計(jì)

      (一)架構(gòu)設(shè)計(jì)

      軟件總體架構(gòu)如圖1所示。

      圖1 軟件總體架構(gòu)

      本軟件主要分為五個(gè)模塊,分別是手機(jī)客戶端UI,資訊業(yè)務(wù)子軟件,語音服務(wù)子軟件,資訊服務(wù)支撐平臺(tái),語音合成服務(wù)平臺(tái)。主要模塊說明如下:

      手機(jī)客戶端UI:提供一個(gè)可視化的平臺(tái),帶給用戶良好的視覺效果,使用者可以根據(jù)自己的需求進(jìn)行不同的操作。

      資訊業(yè)務(wù)子軟件:手機(jī)端對(duì)于資訊頻道與內(nèi)容的相應(yīng)功能的實(shí)現(xiàn)。用戶獲取服務(wù)端預(yù)設(shè)的頻道信息選擇訂閱,根據(jù)所訂閱的頻道取得資訊內(nèi)容并下載到本地。

      語音服務(wù)子軟件:手機(jī)端對(duì)于語音播報(bào)的相應(yīng)功能的實(shí)現(xiàn)。用戶可以對(duì)播音自定義設(shè)置,發(fā)送請(qǐng)求得到轉(zhuǎn)換的音頻,如同音樂播放器一樣可以選擇播放、暫?;蛳乱皇椎鹊?。

      資訊服務(wù)支撐平臺(tái):提供資訊的相應(yīng)服務(wù)。預(yù)先設(shè)定資訊頻道的信息,進(jìn)行數(shù)據(jù)的采集。保存記錄不重復(fù)并及時(shí)更新數(shù)據(jù)庫,根據(jù)手機(jī)端上傳的信息將查找指定的資訊內(nèi)容并將結(jié)果返回。

      語音合成服務(wù)平臺(tái):提供文語轉(zhuǎn)換服務(wù),本次采用的是MSP語音云平臺(tái)。

      (二)交互設(shè)計(jì)

      本軟件所用的通信都是基于HTTP協(xié)議的。在Internet上的Web服務(wù)器上存放的都是超文本信息,客戶機(jī)需要通過HTTP協(xié)議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,不僅可用于Web訪問,也可以用于其他因特網(wǎng)/內(nèi)聯(lián)網(wǎng)應(yīng)用軟件之間的通信,從而實(shí)現(xiàn)各類應(yīng)用資源超媒體訪問的集成。

      軟件中的交互主要是手機(jī)客戶端與服務(wù)器之間的交互。本軟件有六個(gè)部分的交互:資訊內(nèi)容瀏覽、資訊頻道查看、語音服務(wù)、數(shù)據(jù)采集、版本控制和頻道管理。

      (1)資訊內(nèi)容瀏覽的交互過程:進(jìn)入資訊主界面,發(fā)送HTTP請(qǐng)求給網(wǎng)絡(luò)通信層,網(wǎng)絡(luò)通信層調(diào)用NewsList接口訪問服務(wù)支撐接口,支撐接口根據(jù)請(qǐng)求信息查詢數(shù)據(jù)庫中的資訊詳細(xì)內(nèi)容,返回所需的資訊內(nèi)容到支撐接口,支撐接口將結(jié)果生成為XML文檔,返回給網(wǎng)絡(luò)通信層,手機(jī)端解析返回的數(shù)據(jù)并以列表顯示,將下載數(shù)據(jù)格式重組保存在本機(jī)。

      (2)資訊頻道查看的交互:進(jìn)入頻道訂閱界面,發(fā)送HTTP請(qǐng)求給網(wǎng)絡(luò)通信層,網(wǎng)絡(luò)通信層調(diào)用SourceCategoryList接口訪問服務(wù)支撐接口,支撐接口查詢數(shù)據(jù)庫中存儲(chǔ)的資訊頻道,返回所需的頻道信息到支撐接口,將結(jié)果生成為XML文檔,返回給網(wǎng)絡(luò)通信層,手機(jī)端解析返回的數(shù)據(jù)顯示給用戶進(jìn)行操作,將下載的數(shù)據(jù)保存在本機(jī)。

      (3)語音服務(wù)過程的交互:開啟語音播報(bào),發(fā)送請(qǐng)求至網(wǎng)絡(luò)通信層,鏈接到MSP語音云端進(jìn)行語音會(huì)話,在此過程中將資訊內(nèi)容的文本上傳給云端,進(jìn)行文語轉(zhuǎn)換,并將合成的音頻返回到網(wǎng)絡(luò)通信層,手機(jī)端取得音頻開始播放。

      (4)版本升級(jí):開始版本檢查,發(fā)送HTTP請(qǐng)求給網(wǎng)絡(luò)通信層,網(wǎng)絡(luò)通信層調(diào)用version接口訪問服務(wù)支撐接口,支撐接口查詢業(yè)務(wù)數(shù)據(jù)庫中的版本號(hào),返回版本號(hào)到支撐接口進(jìn)行比較,將版本相關(guān)信息以XML的格式返回給網(wǎng)絡(luò)通信層,手機(jī)端解析返回的數(shù)據(jù)后讓用戶選擇操作。

      (5)數(shù)據(jù)采集:服務(wù)啟動(dòng)后,由服務(wù)端根據(jù)頻道設(shè)置從網(wǎng)絡(luò)來源上進(jìn)行數(shù)據(jù)采集,過濾網(wǎng)頁噪聲將采集結(jié)果返回到資訊采集接口,并且將得到的數(shù)據(jù)信息存入到業(yè)務(wù)數(shù)據(jù)庫中保持實(shí)時(shí)更新。

      (6)頻道管理:由管理員進(jìn)行操作,調(diào)用ManagerService訪問服務(wù)支撐接口,對(duì)數(shù)據(jù)庫中的頻道信息進(jìn)行改動(dòng),將處理結(jié)果返回到頁面。

      (三)數(shù)據(jù)存儲(chǔ)設(shè)計(jì)

      本軟件業(yè)務(wù)數(shù)據(jù)所涉及的主要實(shí)體包括:source,category,news,category-news。它們之間的關(guān)系如圖2所示。

      source-category:一對(duì)多關(guān)系,反應(yīng)資訊頻道的來源中所含有的分類信息。

      category-category-news:一對(duì)多關(guān)系,反應(yīng)資訊頻道的分類中所包含的新聞?dòng)涗洝?/p>

      category-news-news:一對(duì)一關(guān)系,反應(yīng)資訊分類新聞?dòng)涗浿兴鶎?duì)應(yīng)的相應(yīng)新聞內(nèi)容的具體信息。

      圖2 資訊信息ER圖

      四、服務(wù)端的開發(fā)

      (一)服務(wù)端類與模塊說明

      服務(wù)器端采用基于ASP.NET的三層架構(gòu),其主要類與組件如下:

      1.RSS解析組件

      RSS解析部分作為一個(gè)單獨(dú)的組件,包含Channel類、Feed類與Item類,Channel類和Item類分別定義了RSS規(guī)范中來源和項(xiàng)的數(shù)據(jù)結(jié)構(gòu)。

      2.實(shí)體類

      實(shí)體類是負(fù)責(zé)各層之間數(shù)據(jù)交互的載體,包含NewsModel類、SourceModel類、InstallModel類、CategoryNewsModel類、CategoryModel類,它們與數(shù)據(jù)庫中的同名表相映射。

      3.數(shù)據(jù)庫訪問層

      數(shù)據(jù)庫訪問層主要負(fù)責(zé)與數(shù)據(jù)庫的增刪改查的基本操作,其中包括 CategoryDAL 類、CategoryNewsDAL 類、InstallDAL 類、NewsDAL 類、SourceDAL類。

      4.業(yè)務(wù)邏輯層

      業(yè)務(wù)邏輯層主要負(fù)責(zé)實(shí)現(xiàn)軟件的業(yè)務(wù)邏輯。主要包括CategoryBLL類、CategoryNewsBLL類、InstallBLL類、NewsBLL類、SourceBLL類。

      (二)核心功能處理流程

      1.資訊采集

      對(duì)網(wǎng)絡(luò)上的資訊信息進(jìn)行數(shù)據(jù)采集,其流程如圖3所示。

      圖3 資訊采集流程圖

      資訊采集是服務(wù)器端實(shí)現(xiàn)的關(guān)鍵技術(shù),服務(wù)器會(huì)定時(shí)地通過RSS鏈接地址向新浪、網(wǎng)易等媒體網(wǎng)站獲取最新資訊。在ASP.NET中,Application在網(wǎng)站第一次響應(yīng)請(qǐng)求啟動(dòng),到應(yīng)用程序關(guān)閉結(jié)束。在Application-Start中設(shè)置一個(gè)定時(shí)器以實(shí)現(xiàn)此功能。在這個(gè)定時(shí)器中加入事件,負(fù)責(zé)資訊采集,并清理過期新聞。

      資訊采集過程中,首先通過預(yù)設(shè)的RSS Feed地址,獲取RSS的內(nèi)容,調(diào)用RSS解析組件,根據(jù)RSS文檔規(guī)范解析XML,此處使用基于DOM模型的解析方式。取得新聞的標(biāo)題與內(nèi)容鏈接之后,為新聞標(biāo)題計(jì)算MD5值,并根據(jù)此值查找數(shù)據(jù)庫中是否有重復(fù)的記錄。

      如果無重復(fù)記錄則由新聞內(nèi)容的鏈接地址請(qǐng)求新聞全文,并通過HTML過濾器HtmlHelper類,來獲取新聞的純文本信息,過濾的方法按技術(shù)簡介中所述,根據(jù)正則表達(dá)式截取主體內(nèi)容,同時(shí)這里使用了微軟的組件MSHTML訪問HTML對(duì)象模型,遍歷DOM的節(jié)點(diǎn)元素把文本段落中的文字提取出來,而把圖片、樣式等多余節(jié)點(diǎn)中的內(nèi)容忽略。最后將采集到的新聞內(nèi)容與相關(guān)信息插入到數(shù)據(jù)庫中。

      根據(jù)正則表達(dá)式截取主體內(nèi)容的實(shí)現(xiàn)過程如下:

      2.資訊服務(wù)

      根據(jù)手機(jī)客戶端的請(qǐng)求信息,提供相應(yīng)的資訊業(yè)務(wù)內(nèi)容,其流程如圖4所示。

      圖4 資訊服務(wù)流程圖

      資訊服務(wù)主要是響應(yīng)手機(jī)客戶端的請(qǐng)求,包括資訊內(nèi)容與頻道信息的請(qǐng)求,并提供相應(yīng)的業(yè)務(wù)服務(wù)。以資訊內(nèi)容服務(wù)為例,服務(wù)器端接收到手機(jī)客戶端發(fā)送的請(qǐng)求包并進(jìn)行解析,其格式如軟件設(shè)計(jì)中所述,取得相應(yīng)的參數(shù)信息,然后根據(jù)請(qǐng)求的參數(shù)查詢數(shù)據(jù)庫,重組數(shù)據(jù)生成XML文檔返回給手機(jī)客戶端。

      五、手機(jī)客戶端的開發(fā)

      (一)核心功能處理流程

      一個(gè)Android程序默認(rèn)情況下只有一個(gè)進(jìn)程Process。UI Thread在Android程序運(yùn)行的時(shí)候就被創(chuàng)建,是一個(gè)Process當(dāng)中的主線程,主要是負(fù)責(zé)控制UI界面的顯示、更新和控件交互。在Android程序創(chuàng)建之初,一個(gè)Process呈現(xiàn)的是單線程模型,所有的任務(wù)都在一個(gè)線程中運(yùn)行。因此,我們認(rèn)為,UI Thread所執(zhí)行的每一個(gè)函數(shù),所花費(fèi)的時(shí)間都應(yīng)該是越短越好。而其他比較費(fèi)時(shí)的工作(訪問網(wǎng)絡(luò),下載數(shù)據(jù),查詢數(shù)據(jù)庫等),都應(yīng)該交由子線程去執(zhí)行,以免阻塞主線程。

      獲取資訊的過程是比較耗時(shí)的操作,此處創(chuàng)建一個(gè)新的線程LoadNewsThread來管理新聞讀取。為了讓主線程知道子線程的狀態(tài),并在主線程更新UI,我們使用了Thread+Handler的方式。由Handler來根據(jù)接收的消息,處理UI更新。Thread線程發(fā)出Handler消息,通知更新UI。

      (二)語音播報(bào)

      對(duì)選擇的資訊內(nèi)容進(jìn)行語音播報(bào),其流程如圖5所示。

      圖5 語音播報(bào)流程圖

      語音播報(bào)中的語音合成與播放都是在后臺(tái)進(jìn)行的,但同時(shí)也需要與主Activity進(jìn)行交互,傳遞參數(shù)或者方法調(diào)用,因此這里使用bind/unbind方法啟動(dòng)/關(guān)閉服務(wù)Service來進(jìn)行語音播報(bào)的管理。

      為了避免合成的文本過大,等待時(shí)間過長,對(duì)設(shè)置的文本資源進(jìn)行了分段處理。同時(shí)為了控制播報(bào)流程需要為播放器設(shè)置監(jiān)聽器TTSPlayerListener。

      在語音播報(bào)服務(wù)過程中,會(huì)發(fā)生狀態(tài)的改變,包括播放狀態(tài),當(dāng)前的條目位置等,同時(shí)要在UI上更新顯示。使用Broadcast,Service發(fā)出廣播,Activity負(fù)責(zé)接收,再對(duì)接收到的數(shù)據(jù)進(jìn)行處理,就達(dá)到了預(yù)期的目的。

      (三)頻道訂閱

      獲取資訊頻道的列表,進(jìn)行訂閱選擇,其流程如圖6所示。

      圖6 頻道訂閱流程圖

      在進(jìn)入頻道界面時(shí)需要先下載頻道信息,為了避免UI阻塞,同樣使用了Thread+Handler的方式異步更新UI,此處不再詳述。

      獲取頻道信息的過程,首先向服務(wù)器端發(fā)出請(qǐng)求,然后由服務(wù)器端處理請(qǐng)求返回一個(gè)包含所有頻道信息的XML文檔,同時(shí)將下載的頻道數(shù)據(jù)保存到文件,以供網(wǎng)絡(luò)數(shù)據(jù)無效時(shí)訪問。

      六、結(jié)束語

      本軟件使用Android技術(shù)構(gòu)建手機(jī)客戶端,通過和服務(wù)器端的通訊獲得RSS頻道的最新資訊,并通過特定的協(xié)議能夠動(dòng)態(tài)的管理自己訂閱的頻道。通過對(duì)RSS及其相關(guān)技術(shù)標(biāo)準(zhǔn)的研究,設(shè)計(jì)出RSS解析組件。并根據(jù)RSS中的網(wǎng)頁地址獲取相應(yīng)資訊的HTML全文,由這些信息提煉出有用的內(nèi)容。用戶使用軟件能即時(shí)獲得訂閱頻道的最新資訊。通過對(duì)Android源文件下的bin目錄生成的.apk文件在手機(jī)端的測試,驗(yàn)證了程序代碼的正確性。

      [1]庾志成.移動(dòng)互聯(lián)網(wǎng)的發(fā)展現(xiàn)狀和發(fā)展趨勢[J].移動(dòng)通信,2008(9),22-24.

      [2]魏崇毓,張菲菲.基于 Android平臺(tái)的視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程,2012,38(14),214-216.

      [3]曾健平,邵艷潔.Android軟件架構(gòu)及應(yīng)用程序開發(fā)研究[J].微計(jì)算機(jī)信息,2011(9),1-3.

      [4]楊文志.Google Android程序設(shè)計(jì)指南[M].北京:電子工業(yè)出版社,2009.

      [5]黨建成,周晶.語音合成技術(shù)及其應(yīng)用[J].計(jì)算機(jī)與信息技術(shù),2007(6),31-34.

      猜你喜歡
      網(wǎng)絡(luò)通信資訊頻道
      資訊Information①
      基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計(jì)
      電子制作(2019年15期)2019-08-27 01:11:48
      4K頻道開播,你準(zhǔn)備好了嗎
      網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
      基于網(wǎng)絡(luò)通信的校園智能音箱設(shè)計(jì)
      電子制作(2018年1期)2018-04-04 01:48:30
      談?dòng)?jì)算機(jī)網(wǎng)絡(luò)通信常見問題及技術(shù)發(fā)展
      電子制作(2017年17期)2017-12-18 06:41:06
      寒假快樂頻道
      頻道
      專家頻道
      母嬰世界(2009年11期)2009-12-02 09:28:32
      資訊
      开化县| 陈巴尔虎旗| 乡城县| 长沙县| 滦南县| 利津县| 施甸县| 玛纳斯县| 永寿县| 门源| 通化县| 肇州县| 景泰县| 太仆寺旗| 鄂伦春自治旗| 甘孜| 浏阳市| 大连市| 邹城市| 长岛县| 容城县| 浮梁县| 花莲县| 凤庆县| 沾化县| 东兰县| 齐齐哈尔市| 临武县| 河津市| 平凉市| 扶绥县| 邛崃市| 武强县| 略阳县| 祁阳县| 清镇市| 康乐县| 抚顺市| 泗水县| 汝城县| 雷波县|