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