基於智慧手機的盲人語言應用軟體的設計與開發論文

基於智慧手機的盲人語言應用軟體的設計與開發論文

  該文主要介紹了在Android平臺上設計和實現的一款服務於盲人的手機應用軟體,開發該軟體主要有兩個目的:第一是用智慧手機服務於盲人的生活;第二是讓盲人的生活也能像正常人一樣豐富多彩。針對盲人的特殊需求,該軟體設計了三大模組:基本應用模組、生活模組和娛樂模組。軟體的主要功能有:語音撥打電話、語音發簡訊、導盲、天氣預報、語音控制播放歌曲等功能。軟體開發使用到的核心技術主要有要核心技術有:語音合成、語音識別、百度定位、百度導航、百度天氣、網路程式設計和SQLite程式設計等。有了該款軟體,盲人也能像正常人一樣享受智慧手機帶來的便利。

  1.緒論

  1.1開發背景

  教育心理學研究表明,人類不同感覺器官獲取資訊的比例,83%來自於視覺,11%來自於聽覺,只有6%來自於其他,這就意味著盲人朋友從外界獲取到的資訊量非常少,根據最新調查顯示,我國目前的盲人數量為700-800萬,佔世界盲人總數的18%,另外雙眼低視力患者達1200萬,陪伴他們的不應該只有盲道和盲杖,基於這樣的需求,筆者專為盲人開發了一款盲人語音應用軟體,目的是讓盲人也能像正常人一樣享受智慧手機帶來的便利。

  1.2研究現狀

  國外目前比較成熟的智慧語音軟體有三款:蘋果公司開發的Siri、谷歌公司開發的GoogleTalk和微軟的小冰。但是Siri只能執行在IPone4s以上版本的手機上,而且蘋果手機的價格比較昂貴,並不是所有的盲人朋友都能使用iPhone手機;而GoogleTalk對中文的識別率不是很理想,而微軟小冰目前還沒有推出專門針對盲人的功能。

  2.研究內容

  該款軟體用到的相關技術有iFLY Mobile Speech Platform 2.0、百度地圖API 、百度天氣預報API、藍芽通訊、Android OS架構等。基於盲人的特殊需求,該軟體分為三個模組進行設計,分別是基本應用模組、娛樂模組和生活模組,系統功能架構圖1所示,框架圖中列出的所有功能均已實現。

  3.系統關鍵功能介紹

  3.1 語音撥打電話邏輯設計

  設計該模組的目的主要是方便盲人打電話,當用戶需要打電話時,點選螢幕任意位置,發出相應指令給該軟體,軟體識別出指令後,對指令進行分析處理,即可達到使用者需求。發指令時,使用者有兩種選擇:第一種是“打電話給+聯絡人姓名”,此時系統將呼叫手機資料庫中的通訊錄查詢該聯絡人,如果找到該聯絡人則直接撥號,否則提示未找到該聯絡人;第二種是“打電話給+電話號碼”,此時系統直接提取號碼進行撥號。

  3.2語音播報來電資訊並自動接聽

  移動裝置裝上該軟體後,該軟體將一直監聽手機的狀態,當監聽到有電話打進時,系統將在手機資料庫的通訊錄中查詢聯絡人,如果找到,則語音提示“您有電話來自某聯絡人”,否則直接播報“您有電話來自‘電話號碼’”。系統為語音播報預留20S,20S過後,系統自動接聽電話,接聽後提示“接通成功,祝你們溝通愉快!”。

  3.3及時朗讀簡訊功能模組

  該模組主要使用Android的監聽機制完成,新增一個BroadcastReceiver來監聽操作Android.provider.Telephony.SMS_RECEIVED。此操作在裝置收到SMS訊息時由Android廣播,只要收到SMS訊息,就會通知應用程式[7],應用程式收到廣播後就會語音通知“有新資訊來自+聯絡人”,然後呼叫語言合成功能播報簡訊給使用者。

  3.4定位附件的餐館

  當盲人嚮應用發出語音指令“我好餓。”或其他與吃飯有關的語言指令時,系統自動為盲人定位到當前位置附近5000米內的所小吃店和餐館,盲人知道了附近的餐館名稱後,即可用語音導航功能定位到餐館所在的地點,並就餐。

  3.5天氣預報功能

  應用中添加了天氣預報功能,該功能需要獲取盲人使用者所在的位置,然後用盲人的位置作為引數向百度天氣發出天氣請求,軟體接收到返回結果後,對返回的Json資料進行解析,根據使用者不同的請求做出不同的`回應。

  3.6娛樂功能

  筆者曾到盲人學校進行調查,發現很多盲人性格都比較孤僻,不喜歡與別人交流,因此筆者在應用里加入了一系列娛樂功能,包括智慧聊天、講故事、講笑話、百度百科等,以此來豐富盲人朋友的生活。

  4.系統功能實現

  4.1語音合成功能實現

  語音合成和語音識別是該款軟體的核心,這兩個功能的實現藉助了科大訊飛語音平臺,語音識別功能的關鍵程式碼如下:

  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語音識別功能實現

  實現該功能需要建立一個RecognizerDialogListener物件,然後複寫該物件的2個方法,onResult()和onError()。其中關鍵的是onResult()方法;該是語音識別結果回撥方法,控制元件採用邊錄音邊傳送的方式,可能會多次返回結果在呼叫時要判斷是否是最後一次返回,在該方法裡可得到識別結果,然後對識別結果做處理。privateRecognizerDialogListenerrecognizerDialogListener = newRecognizerDialogListener() {

  publicvoidonResult(RecognizerResult results, booleanisLast) {

  // 把自然語言轉化成文字

  String text = JsonParser.parseIatResult(results.getResultString());

  editText1.append(text);

  if (isLast) {

  if (flag == 1) {

  smsInfo = editText1.getText().toString();

  }

  4.3 語音撥打電話功能

  系統啟動後,使用者點選螢幕,使用者可發兩種指令,若發語音指令“打電話給付靖玲”,若手機中存有名為“付靖玲”的聯絡人,應用將撥打電話給“付靖玲”;若發語音指令“打電話給10086”,應用將撥打電話給10086。實現該功能需要兩步操作:第一步,在AndroidManifest.xml中新增使用者許可權。第二步,判別識別結果並呼叫打電話功能,該部分程式碼必須寫在語音識別控制元件RecognizerDialogListener的音識別結果回撥方法onResult()中。

  4.4語音播報天氣

  該盲人手機的語音應用軟體運用了百度的天氣預報API,實現了給使用者播報天氣資訊的功能,該功能可播報使用者所在城市近三天的天氣情況。程式碼實現如下:

  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.手機應用介面圖

  下圖展示了語音撥打電話模組的介面圖,圖示如下:

  6.作品創新點

  任意一款裝上了該軟體的智慧手機都可以供盲人使用,沒有機型的限制。此外,不僅盲人朋友可以使用該軟體,老人和不會使用智慧手機的朋友也可以透過安裝該軟體享受智慧手機帶來的便利,讓老年朋友的生活豐富多彩。筆者在完成軟體的開發工作後,曾到盲人學校進行測試,受到盲人朋友的一致好評,目前該軟體正在推行中,已有800人左右的盲人使用者在使用該軟體。

  7.小結

  盲人手機的語音應用軟體是一款方便盲人使用智慧手機而開發的手機應用軟體,它避免了繁瑣的輸入,該軟體目前還在完善中,增加聾啞人模組,最終達到一體化服務於殘疾人的目的。

最近訪問