基于Android的移動終端語音助手系統(tǒng)設(shè)計與實現(xiàn)
引 言
近年來,語音識別技術(shù)獲得了人們的廣泛重視并取得了巨大進展。使用語音識別技術(shù)方便人與機器的交流,能夠改變?nèi)伺c計算機的交互方式。若不能熟練地使用鍵盤、鼠標與計算機或其他智能設(shè)備進行輸入,人機交流的效率較低,會影響到智能設(shè)備的進一步普及。使用語音識別技術(shù),人們只需說幾句簡單的指令,就可操作程序甚至操作系統(tǒng) [1]。
智能手機是目前使用最為廣泛的通信設(shè)備,通過在手機上嵌入語音識別系統(tǒng),可實現(xiàn)按人們的語音指令撥打電話、接通電話、語音處理電子郵件等功能 [2-3]。語音識別技術(shù)解放了人們的雙手,使他們能夠更好地操作、應(yīng)用計算機處理其他事務(wù)。
1 系統(tǒng)設(shè)計
1.1 系統(tǒng)功能簡介
語音助手系統(tǒng)是面向公司職員、學校醫(yī)院等企事業(yè)單位職工、學生等持有移動手機人員開發(fā)的一款應(yīng)用軟件,特別是針對工作忙碌的人員,該應(yīng)用系統(tǒng)發(fā)揮的作用更大。當收到開會或其他通知后,對智能語音助手講一遍通知內(nèi)容,語音助手便自動將語音識別為文字,并提取文字內(nèi)容中的時間、地點、事件等信息,最后在手機系統(tǒng)自帶的日歷中添加日程安排,默認十分鐘前提醒。當以電話的形式收到開會或其他安排的通知后,可第一時間對智能語音助手講一遍通知內(nèi)容,以免事后忘記。當手動撥號不方便時,直接語音說出聯(lián)系人姓名,系統(tǒng)可直接撥通聯(lián)系人電話,也可通過語音給聯(lián)系人發(fā)送短信。本文系統(tǒng)具體功能如下:
(1) 語音識別功能。用戶對手機講話,該功能將語音識別為文字,進行語義理解,通過關(guān)鍵詞提取等技術(shù)將內(nèi)容形成日程安排,自動插入到手機系統(tǒng)自帶的日歷中,而且日歷中日程的日期時間與語音中的日期時間相對應(yīng),日程默認提前十分鐘提醒。
(2) 語音撥號功能。用戶對手機講“打電話給某某”,系統(tǒng)自動從聯(lián)系人中查找對應(yīng)的電話號碼,啟動撥號界面,實現(xiàn)撥號。如果該聯(lián)系人有多個電話號碼,則默認提取第一個。
(3) 語音發(fā)送短信功能。用戶對手機講出“發(fā)送短信給某某”,系統(tǒng)自動從聯(lián)系人中提取電話號碼,默認提取第一個號碼, 系統(tǒng)提示“請說出短信內(nèi)容”,用戶講“短信內(nèi)容是……”,系統(tǒng)自動將語音內(nèi)容轉(zhuǎn)化為文字并形成短信發(fā)送出去。
(4) 文字識別功能。當用戶收到短信通知后,可將短信內(nèi)容粘貼到系統(tǒng)文字輸入框中,點擊“發(fā)送”按鈕,系統(tǒng)對文字內(nèi)容進行語義理解,通過關(guān)鍵詞提取等技術(shù)將內(nèi)容形成日程安排自動插入到手機系統(tǒng)自帶的日歷中,且日歷中日程的日期時間與文字中的日期時間相對應(yīng),日程默認提前十分鐘提醒。
(5) 幫助文檔。用戶點擊“幫助”按鈕,對話框中輸出幫助文檔。
1.2 總體設(shè)計
本文系統(tǒng)采用Android 框架,Android 系統(tǒng)的最大優(yōu)勢在于其平臺的開放性和服務(wù)的免費性 [4]。雖然自 4.0 Ice Cream Sandwich 系統(tǒng)應(yīng)用以來,出于安全考慮,Google 關(guān)閉了部分功能的開放源碼,但 Android 仍然具有非常大的操作空間, 仍然是廣大開發(fā)者的首選 [5-6]。目前,市面上已有較多語音助手相關(guān)軟件,在語音識別和智能搜索方面做得相當完善,但是它們卻在手機界面上仍然保留有大量操作,語音指令和手動選擇的組合無法令用戶滿意。本文語音助手通過語音識別技術(shù)配合手機日歷和記事本的提醒功能可及時自動存儲相關(guān)信息并按時提醒,用戶無需設(shè)置手機存儲及工作提醒。
本文系統(tǒng)總體設(shè)計思路 :首先搭建語音識別框架 ;然后構(gòu)建語義理解、關(guān)鍵詞提取模型 ;最后根據(jù)語音內(nèi)容形成具體事件類型,包括日程添加事件、語音撥號事件,語音發(fā)送短信事件。系統(tǒng)設(shè)計流程如圖 1 所示。
1.3 詳細設(shè)計
語 音 識 別 技 術(shù) 由 VoiceRecognitionService 包 中的 SpeechRecognizer. reateSpeechRecognizer 識 別 器實 現(xiàn), 識 別 結(jié) 果 返 回給 nbest= esults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)。 本文采用在線識別模式,識別準確率較高。
語義理解和關(guān)鍵詞提取由正則表達式組實現(xiàn),對“星期幾”“明天”“下周幾”等表示日期的詞匯進行理解轉(zhuǎn)化,對“上下午”“幾點半”等表示時間的詞匯進行理解轉(zhuǎn)化,最后形成標準的日程時間序列。
插入日程由 insertEvent 函數(shù)實現(xiàn), 調(diào)用系統(tǒng)自帶的Calendar 類。
打電話功能由nameNumberCall 函數(shù)實現(xiàn),通過 Cursor 查詢聯(lián)系人姓名,獲取聯(lián)系人電話號碼,形成 Intent,調(diào)用startActivity 呼叫聯(lián)系人。
發(fā)送短信功能由 sendSMS 函數(shù)實現(xiàn), 通過 Cursor 查詢聯(lián)系人姓名, 獲取聯(lián)系人電話號碼, 形成 Intent, 調(diào)用startActivity 給聯(lián)系人發(fā)送短信。
2 系統(tǒng)測試與特點
2.1 系統(tǒng)測試
啟動系統(tǒng),進入系統(tǒng)主界面,如圖 2 所示。本文系統(tǒng)的啟動時間少于1 s。
系統(tǒng)啟動后,界面下方有 3 個按鈕。第一個按鈕為文字 / 語音切換按鈕,系統(tǒng)默認為文字輸入模式,點一下該按鈕, 系統(tǒng)切換為語音識別模式。第二個按鈕為“發(fā)送”,可將短信收到的通知直接粘貼到“文字輸入”框內(nèi),如圖 3 所示。系統(tǒng)自動根據(jù)文字內(nèi)容進行語義理解和關(guān)鍵詞提取,將通知的主要內(nèi)容形成日程安排自動插入到日歷中,如圖 4 所示。對話框采用人機對話形式,系統(tǒng)提示在左側(cè),用戶輸入在右側(cè),消息背景為流行的氣泡效果。
應(yīng)用情景 1 :當短信或微信收到開會通知后,若此時用戶在不宜大聲說話的場所,可將通知內(nèi)容復(fù)制到“文字輸入框”中,點擊“文字識別”按鈕,系統(tǒng)會自動分析文字內(nèi)容并形成日程自動添加到日歷中。
點擊文字 / 語音切換按鈕,出現(xiàn)“語音識別”按鈕。用戶接到電話通知或口頭通知后,以免事后忘記,需第一時間點擊“語音識別”按鈕,將通知內(nèi)容或安排對準手機敘述一遍,系統(tǒng)自動對敘述內(nèi)容進行語音識別,將語音識別內(nèi)容輸出到屏幕上,如圖 5 所示。同時通過語義理解自動形成事件,若為日程事件,系統(tǒng)則會自動形成日程安排并插入到日歷中,如圖6 所示。
應(yīng)用情景 2 :當收到開會通知后,若用戶正在開車(等紅綠燈),可以點擊“語音識別”按鈕將通知內(nèi)容對手機復(fù)述一遍, 系統(tǒng)會將語音識別為文字,自動分析文字內(nèi)容并形成日程自動添加到日歷中,避免事后忘記。
應(yīng)用情景 3 :當早晨出門上班時,不會用智能手機的父母叮囑下班時幫忙買一些物品(食物、藥品等),而此時時間緊迫,來不及將物品名稱手動輸入到備忘錄中,用戶可打開智能語音助手,點擊“語音識別”按鈕,將父母叮囑的物品名稱對手機復(fù)述一遍(如下午 5 點購買大米 1 袋,掛面 2 卷,食鹽 2袋,醋 1瓶,X1藥品 2盒,X2藥品 1瓶,X3藥品 1瓶, 其中 X1只買某某廠家的等),系統(tǒng)將語音識別為文字,自動分析文字內(nèi)容并形成日程自動添加到日歷中,避免到了單位或下班時忘記要買的物品。
應(yīng)用情景 4 :當不方便手動查找聯(lián)系人而又急需給聯(lián)系人打電話時,點擊“語音識別”按鈕,講出“打電話給某某”,系統(tǒng)直接呼叫聯(lián)系人,如圖 7、圖 8 所示。
應(yīng)用情景 5 :當用戶不方便打字而又急于給聯(lián)系人發(fā)送短信時,點擊“語音識別”按鈕,講出“發(fā)送短信給某某”,然后說出短信內(nèi)容,系統(tǒng)自動將語音內(nèi)容轉(zhuǎn)為文字并形成短信發(fā)送給聯(lián)系人,如圖 9、圖 10 所示。
點擊“幫助”按鈕后,主界面輸出幫助文檔,包含功能介紹、應(yīng)用例子等。
幫助的四大功能為 :通過語音添加日程 ;通過文字添加日程 ;通過語音直接呼叫聯(lián)系人 ;通過語音直接發(fā)送短信。
通過語音或文字添加日程舉例 :4 月 25 日下午 3 點在議室開會 ;下周三上午 9 點在 B405 開例會 ;后天晚上 6 點半在×× 飯店聚餐。
通過語音撥打電話舉例 :打電話給張三。
通過語音發(fā)送短信舉例:先說“發(fā)短信給張三”;然后說“短信內(nèi)容是 :我在開車,稍后給您回電?!?
2.2 系統(tǒng)特點
本文系統(tǒng)采用云語音識別技術(shù),需打開 WiFi 或數(shù)據(jù)流量, 語音識別精度高。可一鍵完成日程添加,一鍵實現(xiàn)語音撥號, 快速實現(xiàn)語音發(fā)送文字短信。本文系統(tǒng)無需讀取聯(lián)系人信息權(quán)限,但需短信讀取權(quán)限、打電話權(quán)限、日歷讀寫權(quán)限。與其他語音助手相比,本文系統(tǒng)的優(yōu)點是無需在用戶手機新建數(shù)
據(jù)庫,用戶的所有日程都添加在用戶手機自帶的日歷中,當用戶卸載系統(tǒng)時,無需擔心已添加的日程會丟失。
編程語言為 Android,Java。 系統(tǒng)運行環(huán)境為支持
Android 系統(tǒng)的手機或平板電腦。
3 結(jié) 語
目前語音識別技術(shù)是科學研究的熱點,語音助手也是當前移動客戶端開發(fā)的熱門方向。本文提出了基于智能終端平臺的語音識別手機助手應(yīng)用系統(tǒng)的總體結(jié)構(gòu)與設(shè)計,以及實現(xiàn)的主要技術(shù),并將其應(yīng)用到手機日常應(yīng)用中。測試結(jié)果表明, 本文系統(tǒng)起到了用戶與日歷間的橋梁作用,尤其適合上班族使用,當手頭工作繁多時,使用該系統(tǒng)一鍵添加日程安排,可避免事后忘記而造成工作不便。