基于智能手機(jī)的盲人語言應(yīng)用軟件的設(shè)計(jì)與開發(fā)論文
該文主要介紹了在Android平臺上設(shè)計(jì)和實(shí)現(xiàn)的一款服務(wù)于盲人的手機(jī)應(yīng)用軟件,開發(fā)該軟件主要有兩個(gè)目的:第一是用智能手機(jī)服務(wù)于盲人的生活;第二是讓盲人的生活也能像正常人一樣豐富多彩。針對盲人的特殊需求,該軟件設(shè)計(jì)了三大模塊:基本應(yīng)用模塊、生活模塊和娛樂模塊。軟件的主要功能有:語音撥打電話、語音發(fā)短信、導(dǎo)盲、天氣預(yù)報(bào)、語音控制播放歌曲等功能。軟件開發(fā)使用到的核心技術(shù)主要有要核心技術(shù)有:語音合成、語音識別、百度定位、百度導(dǎo)航、百度天氣、網(wǎng)絡(luò)編程和SQLite編程等。有了該款軟件,盲人也能像正常人一樣享受智能手機(jī)帶來的便利。
1.緒論
1.1開發(fā)背景
教育心理學(xué)研究表明,人類不同感覺器官獲取信息的比例,83%來自于視覺,11%來自于聽覺,只有6%來自于其他,這就意味著盲人朋友從外界獲取到的信息量非常少,根據(jù)最新調(diào)查顯示,我國目前的盲人數(shù)量為700-800萬,占世界盲人總數(shù)的18%,另外雙眼低視力患者達(dá)1200萬,陪伴他們的不應(yīng)該只有盲道和盲杖,基于這樣的需求,筆者專為盲人開發(fā)了一款盲人語音應(yīng)用軟件,目的是讓盲人也能像正常人一樣享受智能手機(jī)帶來的便利。
1.2研究現(xiàn)狀
國外目前比較成熟的智能語音軟件有三款:蘋果公司開發(fā)的Siri、谷歌公司開發(fā)的GoogleTalk和微軟的小冰。但是Siri只能運(yùn)行在IPone4s以上版本的手機(jī)上,而且蘋果手機(jī)的價(jià)格比較昂貴,并不是所有的盲人朋友都能使用iPhone手機(jī);而GoogleTalk對中文的識別率不是很理想,而微軟小冰目前還沒有推出專門針對盲人的功能。
2.研究內(nèi)容
該款軟件用到的相關(guān)技術(shù)有iFLY Mobile Speech Platform 2.0、百度地圖API 、百度天氣預(yù)報(bào)API、藍(lán)牙通信、Android OS架構(gòu)等;诿と说奶厥庑枨螅撥浖譃槿齻(gè)模塊進(jìn)行設(shè)計(jì),分別是基本應(yīng)用模塊、娛樂模塊和生活模塊,系統(tǒng)功能架構(gòu)圖1所示,框架圖中列出的所有功能均已實(shí)現(xiàn)。
3.系統(tǒng)關(guān)鍵功能介紹
3.1 語音撥打電話邏輯設(shè)計(jì)
設(shè)計(jì)該模塊的目的主要是方便盲人打電話,當(dāng)用戶需要打電話時(shí),點(diǎn)擊屏幕任意位置,發(fā)出相應(yīng)指令給該軟件,軟件識別出指令后,對指令進(jìn)行分析處理,即可達(dá)到用戶需求。發(fā)指令時(shí),用戶有兩種選擇:第一種是“打電話給+聯(lián)系人姓名”,此時(shí)系統(tǒng)將調(diào)用手機(jī)數(shù)據(jù)庫中的通訊錄查找該聯(lián)系人,如果找到該聯(lián)系人則直接撥號,否則提示未找到該聯(lián)系人;第二種是“打電話給+電話號碼”,此時(shí)系統(tǒng)直接提取號碼進(jìn)行撥號。
3.2語音播報(bào)來電信息并自動(dòng)接聽
移動(dòng)設(shè)備裝上該軟件后,該軟件將一直監(jiān)聽手機(jī)的狀態(tài),當(dāng)監(jiān)聽到有電話打進(jìn)時(shí),系統(tǒng)將在手機(jī)數(shù)據(jù)庫的通訊錄中查找聯(lián)系人,如果找到,則語音提示“您有電話來自某聯(lián)系人”,否則直接播報(bào)“您有電話來自‘電話號碼’”。系統(tǒng)為語音播報(bào)預(yù)留20S,20S過后,系統(tǒng)自動(dòng)接聽電話,接聽后提示“接通成功,祝你們溝通愉快!”。
3.3及時(shí)朗讀短信功能模塊
該模塊主要使用Android的監(jiān)聽機(jī)制完成,添加一個(gè)BroadcastReceiver來監(jiān)聽操作Android.provider.Telephony.SMS_RECEIVED。此操作在設(shè)備收到SMS消息時(shí)由Android廣播,只要收到SMS消息,就會通知應(yīng)用程序[7],應(yīng)用程序收到廣播后就會語音通知“有新信息來自+聯(lián)系人”,然后調(diào)用語言合成功能播報(bào)短信給用戶。
3.4定位附件的餐館
當(dāng)盲人向應(yīng)用發(fā)出語音指令“我好餓!被蚱渌c吃飯有關(guān)的語言指令時(shí),系統(tǒng)自動(dòng)為盲人定位到當(dāng)前位置附近5000米內(nèi)的所小吃店和餐館,盲人知道了附近的餐館名稱后,即可用語音導(dǎo)航功能定位到餐館所在的地點(diǎn),并就餐。
3.5天氣預(yù)報(bào)功能
應(yīng)用中添加了天氣預(yù)報(bào)功能,該功能需要獲取盲人用戶所在的位置,然后用盲人的位置作為參數(shù)向百度天氣發(fā)出天氣請求,軟件接收到返回結(jié)果后,對返回的Json數(shù)據(jù)進(jìn)行解析,根據(jù)用戶不同的請求做出不同的`回應(yīng)。
3.6娛樂功能
筆者曾到盲人學(xué)校進(jìn)行調(diào)查,發(fā)現(xiàn)很多盲人性格都比較孤僻,不喜歡與別人交流,因此筆者在應(yīng)用里加入了一系列娛樂功能,包括智能聊天、講故事、講笑話、百度百科等,以此來豐富盲人朋友的生活。
4.系統(tǒng)功能實(shí)現(xiàn)
4.1語音合成功能實(shí)現(xiàn)
語音合成和語音識別是該款軟件的核心,這兩個(gè)功能的實(shí)現(xiàn)借助了科大訊飛語音平臺,語音識別功能的關(guān)鍵代碼如下:
publicvoidYuyinHecheng(Context context, String t){
mTts = SpeechSynthesizer.createSynthesizer(context, mTtsInitListener);
mSharedPreferences = context.getSharedPreferences(TtsSettings.PREFER_NAME, Activity.MODE_PRIVATE);
setParam();
int code = mTts.startSpeaking(t, mTtsListener);
if (code != ErrorCode.SUCCESS) {
if(code == ErrorCode.ERROR_COMPONENT_NOT_INSTALLED){
}else {}}}
4.2語音識別功能實(shí)現(xiàn)
實(shí)現(xiàn)該功能需要?jiǎng)?chuàng)建一個(gè)RecognizerDialogListener對象,然后復(fù)寫該對象的2個(gè)方法,onResult()和onError()。其中關(guān)鍵的是onResult()方法;該是語音識別結(jié)果回調(diào)方法,控件采用邊錄音邊發(fā)送的方式,可能會多次返回結(jié)果在調(diào)用時(shí)要判斷是否是最后一次返回,在該方法里可得到識別結(jié)果,然后對識別結(jié)果做處理。privateRecognizerDialogListenerrecognizerDialogListener = newRecognizerDialogListener() {
publicvoidonResult(RecognizerResult results, booleanisLast) {
// 把自然語言轉(zhuǎn)化成文字
String text = JsonParser.parseIatResult(results.getResultString());
editText1.append(text);
if (isLast) {
if (flag == 1) {
smsInfo = editText1.getText().toString();
}
4.3 語音撥打電話功能
系統(tǒng)啟動(dòng)后,用戶點(diǎn)擊屏幕,用戶可發(fā)兩種指令,若發(fā)語音指令“打電話給付靖玲”,若手機(jī)中存有名為“付靖玲”的聯(lián)系人,應(yīng)用將撥打電話給“付靖玲”;若發(fā)語音指令“打電話給10086”,應(yīng)用將撥打電話給10086。實(shí)現(xiàn)該功能需要兩步操作:第一步,在AndroidManifest.xml中添加用戶權(quán)限。第二步,判別識別結(jié)果并調(diào)用打電話功能,該部分代碼必須寫在語音識別控件RecognizerDialogListener的音識別結(jié)果回調(diào)方法onResult()中。
4.4語音播報(bào)天氣
該盲人手機(jī)的語音應(yīng)用軟件運(yùn)用了百度的天氣預(yù)報(bào)API,實(shí)現(xiàn)了給使用者播報(bào)天氣信息的功能,該功能可播報(bào)用戶所在城市近三天的天氣情況。代碼實(shí)現(xiàn)如下:
buffer = newStringBuffer("http://api.map.baidu.com/telematics/v3/weather?");
buffer.append("location=").append(URLEncoder.encode(lCityName, "utf-8"));
buffer.append("&output=json");
buffer.append("&ak=").append("AINCvl9FxeNWQiWEML1rpyen");
buffer.append("&mcode=").append("百度秘").append(";").append("a.com.fjl.main");
5.手機(jī)應(yīng)用界面圖
下圖展示了語音撥打電話模塊的界面圖,圖示如下:
6.作品創(chuàng)新點(diǎn)
任意一款裝上了該軟件的智能手機(jī)都可以供盲人使用,沒有機(jī)型的限制。此外,不僅盲人朋友可以使用該軟件,老人和不會使用智能手機(jī)的朋友也可以通過安裝該軟件享受智能手機(jī)帶來的便利,讓老年朋友的生活豐富多彩。筆者在完成軟件的開發(fā)工作后,曾到盲人學(xué)校進(jìn)行測試,受到盲人朋友的一致好評,目前該軟件正在推行中,已有800人左右的盲人用戶在使用該軟件。
7.小結(jié)
盲人手機(jī)的語音應(yīng)用軟件是一款方便盲人使用智能手機(jī)而開發(fā)的手機(jī)應(yīng)用軟件,它避免了繁瑣的輸入,該軟件目前還在完善中,增加聾啞人模塊,最終達(dá)到一體化服務(wù)于殘疾人的目的。
【基于智能手機(jī)的盲人語言應(yīng)用軟件的設(shè)計(jì)與開發(fā)論文】相關(guān)文章:
基于兒童網(wǎng)站設(shè)計(jì)開發(fā)與實(shí)踐之初探論文04-22
基于精準(zhǔn)教學(xué)的交互式微課開發(fā)以及設(shè)計(jì)論文01-11
手持設(shè)備應(yīng)用軟件的開發(fā)課程教學(xué)研究論文04-17
云平臺下基于包裝設(shè)計(jì)的軟件開發(fā)研究論文04-14
基于天地圖的校園導(dǎo)航系統(tǒng)移動(dòng)端的設(shè)計(jì)與開發(fā)論文04-19
基于CAD輔助包裝設(shè)計(jì)的軟件開發(fā)和實(shí)現(xiàn)的論文04-19
移動(dòng)應(yīng)用軟件開發(fā)實(shí)踐教學(xué)改革分析論文11-11
淺析基于Mashup 的煤炭銷售業(yè)務(wù)管理系統(tǒng)設(shè)計(jì)與開發(fā)論文10-21