楊 穎,曹紅兵,吳 方,楊晴龍
(阜陽師范學院 計算機與信息工程學院,安徽 阜陽 236037)
?
語音-文本轉(zhuǎn)換技術(shù)在手機軟件開發(fā)中的應(yīng)用
楊穎,曹紅兵,吳方,楊晴龍
(阜陽師范學院 計算機與信息工程學院,安徽 阜陽 236037)
語音-文本轉(zhuǎn)換旨在將說話人語音中的詞匯內(nèi)容轉(zhuǎn)換為計算機可讀的文本輸入,使計算機具有能夠“聽懂”人類語音的能力。基于Android智能手機平臺,利用國內(nèi)先進的語音-文本轉(zhuǎn)換技術(shù)設(shè)計并實現(xiàn)了兩款手機軟件——商品訂單查詢和手機語音筆記。商品訂單查詢的語音功能提供了更為便捷的個性化操作。手機語音筆記的主要功能包括單人錄音和多人協(xié)作錄音,尤其是多人協(xié)作錄音實現(xiàn)了多人語音交流的記錄和分享。這兩款手機軟件具有一定的實際應(yīng)用價值。
手機應(yīng)用軟件開發(fā);語音-文本轉(zhuǎn)換;語音查詢;語音筆記
語音識別技術(shù)是將用戶輸入的語音信號通過識別引擎轉(zhuǎn)換為對應(yīng)文本的一種技術(shù),是人機交互的一個研究熱點,其應(yīng)用領(lǐng)域越來越廣泛[1]。自“蘋果智能語音助手Siri”成功地將語音識別融入移動終端以來,引發(fā)了語音識別技術(shù)在移動互聯(lián)網(wǎng)應(yīng)用的發(fā)展熱潮[2]。隨著智能手機的迅速普及和App(application的縮寫)開發(fā)的流行,語音技術(shù)的接口在手機設(shè)備上的應(yīng)用也越來越多,比如語音撥號、語音搜索、語音猜歌等手機App。這些手機語音App的出現(xiàn)一方面為用戶操作提供個性化的選擇;另一方面,也為不善使用手機鍵盤或不識字、看不清屏幕的中老年用戶提供了使用手機的新途徑。
本文基于科大訊飛語音-文本轉(zhuǎn)換接口在Android智能手機平臺上設(shè)計并實現(xiàn)了兩個App,即網(wǎng)購商品訂單信息查詢和手機語音筆記。這兩款App具有一定的應(yīng)用場景和實用價值。下文在簡單介紹科大訊飛語音-文本轉(zhuǎn)換接口的基礎(chǔ)上,重點闡述兩款App的設(shè)計和實現(xiàn)過程。
本項目采用科大訊飛Android版的軟件開發(fā)工具包(Software Development Kit,SDK)進行開發(fā),用到了應(yīng)用程序編程接口API中的語音聽寫接口,即語音-文本轉(zhuǎn)換接口。所謂語音聽寫就是將一段語音轉(zhuǎn)換成文本的過程,把語音中包含的詞匯信息提取出來,訊飛的語音聽寫能夠識別常見的句型詞匯。下面是語音-文本轉(zhuǎn)換接口的設(shè)置過程:
(1)將SDK中l(wèi)ibs目錄下的Msc.jar和armeabi復制到Android工程的libs目錄中;
(2)在AndroidManifest的xml文件中分別添加如下4種權(quán)限:
(i)
(ii)
(iii)
(iv)
(3)在訊飛的開放平臺上注冊一個賬號申請APPID,創(chuàng)建語音配置對象,初始化使用SDK中的服務(wù),即在程序的入口處添加初始化代碼:SpeechUtility.createUtility(context, SpeechConstant.APPID+"=12345678"),其中,context參數(shù)指向本類,APPID后面的字符串是在訊飛開放平臺申請的賬號。
(4)創(chuàng)建SpeechRecognizer對象,然后設(shè)置聽寫參數(shù),代碼如下:mIat.setParameter(SpeechConstant.DOMAIN, "iat");
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
mIat.setParameter(SpeechConstant.ACCENT, "mandarin ");
(5)用上述對象調(diào)用startListening方法開始聽寫。聽寫結(jié)果回調(diào)接口用Json格式返回,在onResult方法中重寫printResult方法,完整地識別內(nèi)容通過多次結(jié)果的累加顯示出來。
網(wǎng)購已經(jīng)成為電商時代的一種主流的購物方式。在收到網(wǎng)購商品前,買家希望能夠及時跟蹤訂單當前的物流狀態(tài),為此,本文開發(fā)了一款App用于隨時隨地查詢商品訂單信息。本系統(tǒng)可以通過鍵盤輸入或者語音輸入訂單編號的方式進行查詢,操作極為方便快捷。
本系統(tǒng)用Eclipse進行界面設(shè)計,訂單查詢主界面如圖1所示。在主界面中設(shè)置了3個按鈕分別用于voice錄音、查詢訂單、取消查詢?!翱爝f類型”設(shè)置為一個Spinner下拉列表,如圖2所示,用于顯示可使用的快遞公司。在spinner.xml文件中設(shè)置快遞的名稱,在程序中通過type = (String) spinner.getSelectedItem(),得到被選擇項的值。選擇快遞公司后,可以選擇在“快遞單號”后的文本框中鍵盤輸入訂單號或者點擊Voice按鈕用語音說出訂單號。語音輸入功能利用訊飛的語音聽寫接口通過SpeechRecognizer對象設(shè)置聽寫參數(shù),用RecognizerListener對象來用Json格式返回聽寫結(jié)果。查詢按鈕通過下面的關(guān)鍵語句進行查詢:QueryExpressUtil.queryExpressForNumber(number, type, code, KuaidiActivity. this, progressDialog),如果快遞單號輸入正確,就能得到正確的訂單信息。一個查詢結(jié)果如圖3所示。
圖1訂單查詢主界面
圖2下拉列表顯示圖
圖3查詢結(jié)果界面
APP一般是通過手機鍵盤進行文本錄入,而手機語音筆記則直接通過說話人語音完成文本輸入。手機語音筆記的目的是通過語音系統(tǒng),把說話人說的每一句話轉(zhuǎn)換為文字,然后把文字保存在文件中。本文開發(fā)的手機語音筆記主要功能包括單人錄音和多人協(xié)作錄音,還可以根據(jù)需要將保存的語音文字分享給好友。該系統(tǒng)可以為個人演講、多人開會等場景錄制聲音文字,具有一定實際應(yīng)用價值。
由文獻[3-4]的系統(tǒng)開發(fā)思路,經(jīng)詳細的系統(tǒng)分析和設(shè)計將手機語音筆記系統(tǒng)的功能劃分為4個主要功能模塊:單人錄音、多人協(xié)作錄音、查看個人資料、發(fā)送錄音文件。手機語音筆記APP的功能模塊結(jié)構(gòu)如圖4所示。
圖4 手機語音筆記功能模塊結(jié)構(gòu)圖
該軟件設(shè)置了用戶登錄功能。用戶登錄之后可以看到其他登錄用戶,可以進行單人錄音,如果需要也可以邀請其他用戶一起錄音,被邀請的用戶會受到一個邀請?zhí)崾?,點擊確定后可以一起錄音,錄音期間該軟件在某一時刻只能有唯一的一個錄音者。只有登錄的用戶點擊錄音按鈕才可以進行錄音,如果某個用戶最先點擊了錄音按鈕,那么這個用戶就占有了錄音功能,其他用戶的錄音此時不能被轉(zhuǎn)換為文本,聲音被轉(zhuǎn)換成文本之后可以進行郵件發(fā)送給共同錄制聲音的人。系統(tǒng)主界面如圖5所示,界面中的文件列表顯示的是用戶錄音文件信息目錄。
圖5 手機錄音筆記主界面
3.1單人錄音功能
單人錄音功能是將用戶的錄音轉(zhuǎn)變成文本并保存。用戶選擇該項功能以后,可以在輸入錄音主題以后,點擊錄音按鈕,進行錄音,在選項框里把語音轉(zhuǎn)化的文本信息修改以后保存,選擇查看錄音信息或者繼續(xù)錄音選項。單人錄音界面如圖6所示。
圖6 單人錄音界面
在這頁面中,設(shè)置了3個EditText對象用來輸入錄音主題、聽寫內(nèi)容(用添加至錄音內(nèi)容按鈕添加到錄音內(nèi)容)和錄音內(nèi)容。點擊startButton(錄音)按鈕,開始錄音,然后通過調(diào)用科大訊飛中SpeechRecognizer對象,獲取引擎參數(shù),然后調(diào)用該對象的startListening方法,在該方法中,參數(shù)為RecognizerListener對象。 RecognizerListener接口用于獲取當前識別的狀態(tài)和結(jié)果,在該接口中分別重載了onBeginOfSpeech,onError,onResult方法。其中,onResult方法中識別出來的語句結(jié)果會多次返回,即會多次回調(diào)SpeechRecognizer.startListening()方法,在說話的時候會采用邊上傳邊錄音的方式分別上傳音頻數(shù)據(jù),可能在沒有說完一句話的時候就有返回結(jié)果。簡單地說,可能會間斷的一個詞語一個詞語的返回,而不是說完后一次性返回。如果沒有說話的時候返回的結(jié)果為null,所以增加判斷處理。錄音結(jié)果返回的部分代碼如下:
StringBufferresultBuffer = new StringBuffer();
for (String key : mIatResults.keySet()) {resultBuffer.append(mIatResults.get(key));}
mResultText.setText(resultBuffer.toString());
在點擊錄音后,如果說話錯誤,轉(zhuǎn)換的文字與需要的不符時,可以再次點擊,點擊后就調(diào)用了SpeechRecognizer對象的setText(null)方法,使內(nèi)容清空,這樣就可以重新說話,修正說話內(nèi)容。說完后點擊previewbtn按鈕,將第一次識別的結(jié)果通過賦值給mBodyText,從而添加至內(nèi)容。關(guān)鍵代碼如下:
str2=mBodyText.getText().toString();str1=mResultText.getText().toString();
str2=str2+str1;mBodyText.setText(str2);
3.2多人協(xié)作錄音功能
多人協(xié)作錄音功能是指用戶可邀請多人參加錄音,接受的人員添加到錄音組中。用戶邀請好友時,如果對方同意,就返回給邀請人同意信息,并把好友加入?yún)f(xié)作錄音組中;如果對方不同意,不能添加到錄音組中;如果對方不在線,則不能發(fā)出邀請。
錄音組中的人員,界面顯示為多人協(xié)作錄音界面。當正在錄音的人結(jié)束錄音后,組內(nèi)的其他人員可以搶麥克參加錄音,把聲音轉(zhuǎn)成本文發(fā)送給組中的其他人員,麥克被搶占后,其他人員不能錄音。圖7描繪了多人錄音的順序圖。
圖7多人協(xié)作錄音的順序圖
多人協(xié)作錄音時的語音-文本轉(zhuǎn)換的原理與單人錄音是一樣的,只是在廣播接收器類中重載onReceive方法的時候,需要將對方的message用toString方法轉(zhuǎn)換為字符串后,作為參數(shù)傳給mBodyText.setText()方法中。這樣一方就可以得到另一方的錄音文字內(nèi)容。
多人協(xié)作錄音的時候,界面上顯示出目前在線的用戶,點擊用戶名后即可和該用戶合作錄音。圖8所示的是三人一起同時錄音的截圖。
圖8多人協(xié)作錄音界面
此外,發(fā)送錄音文本給好友的功能是把文件以附件的形式發(fā)送到對方的郵箱,或者將文本信息通過短信的方式發(fā)送給好友。圖9是分享錄音文件的界面圖。
圖9 分享錄音文件界面
隨著語音識別技術(shù)在智能手機應(yīng)用中的深入研究,將會為智能手機的使用錦上添花。本文利用科大訊飛先進的語音-文本轉(zhuǎn)換接口在Android智能手機平臺上開發(fā)了商品訂單查詢和手機語音筆記兩款軟件。商品訂單查詢引入了說話人語音查詢的功能,它可以根據(jù)手機用戶的喜好選擇鍵盤輸入查詢或者語音輸入查詢,更好地滿足了用戶需求。手機語音筆記的單人錄音、多人協(xié)作錄音和文件傳送功能可以用于很多生活場景。手機語音APP使得人機交互方式更為靈活和方便。但是,限于說話人發(fā)音吐字的特殊性,語音文本轉(zhuǎn)換的精度還有待提升?;诂F(xiàn)階段的研究工作,今后將嘗試對語音文本轉(zhuǎn)換接口進行優(yōu)化,提高語音轉(zhuǎn)換的準確度。
[1] 王敏妲. 語音識別技術(shù)的研究與發(fā)展[J]. 微型機與應(yīng)用, 2009, 23: 1-3.
[2]百度百科. 蘋果智能語音助手siri [EB/OL]. ( 2015-11-26)[2015-11-30]. http://baike.baidu.com/subview/6573497/7996501.htm.
[3] 梁曉龍. 基于Android平臺語音日程軟件的設(shè)計與實現(xiàn)[D]. 北京:北京郵電大學, 2012.
[4] 劉憲濤. 基于Android平臺的手機語音識別服務(wù)客戶端系統(tǒng)的設(shè)計與實現(xiàn)[D]. 北京:北京郵電大學, 2013.
Application of Speech-to-Text in the Development of Mobile Software
YANG Ying, CAO Hong-bing, WU Fang, YANG Qing-long
(School of computer and information engineering, Fuyang Teachers College, Fuyang, Anhui 236037, China)
Speech-to-Text aims at converting the lexical content of the speaker’s speech into the computer-readable text input, and making computer capable of “understanding” the human voice. Based on Android platform, the paper designed and developed two mobile applications, namely order inquiry and voice notes, by the domestically advanced Speech-to-Text technology. The voice function of the commodity order inquiry provides a more convenient personalized operation. The main functions of the voice notes include single and multi-person cooperative recording, especially the latter function achieves the recording and sharing of multi-person voice communication. In conclusion, these two mobile applications have some practical values.
app development; speech-to-text; voice query; voice notes
2015-12-12
安徽省教育廳質(zhì)量工程項目(2014jyxm224,2014sjjd077,AH201410371004,2014zjjh024)和安徽省教育廳自然科學項目(KJ2013B192)。
楊穎,女,安徽蒙城人,碩士,阜陽師范學院計算機與信息工程學院副教授,研究方向為模式識別和軟件開發(fā)。E-mail: yyang@fync.edu.cn
時間:2016-8-17 11:31
http://www.cnki.net/kcms/detail/34.1150.N.20160817.1131.020.html
TP311.52
A
1007-4260(2016)03-0073-05
10.13757/j.cnki.cn34-1150/n.2016.03.020