最近在做畢設(shè)項(xiàng)目中,要用到一個語音識別的功能,主要目的是把用戶說的話轉(zhuǎn)換成文字,然后再做其他處理。找了多個語音識別的第三方SDK,比如百度語音識別、微信語音識別、科大訊飛語音識別,發(fā)現(xiàn)科大訊飛的比較好用。做了一個Demo程序,有詳細(xì)的注釋,在這里整理一下。
?。ㄒ唬?zhǔn)備工作
0、創(chuàng)建一個空的Android項(xiàng)目,比如項(xiàng)目名叫:SpeechRecogniTIonDemoJYJ。
1、首先要在科大訊飛開放平臺(http://www.xfyun.cn/)上注冊,或者用QQ等第三方登錄也行。
2、點(diǎn)擊網(wǎng)站首頁右上角的“控制臺”,進(jìn)入控制臺。
3、按照說明創(chuàng)建一個應(yīng)用,該應(yīng)用名就叫SpeechRecogniTIonDemoJYJ,創(chuàng)建成功后會有一個AppID,記下來,編程的時候要用到。
4、點(diǎn)擊SpeechRecogniTIonDemoJYJ后面的“開通服務(wù)”按鈕,開通服務(wù)—》語音聽寫,進(jìn)入語音聽寫—》下載當(dāng)前應(yīng)用對應(yīng)的SDK。
5、下載Android版的SDK,將SDK包中l(wèi)ibs目錄下的Msc.jar和armeabi復(fù)制到Android工程的libs目錄(如果工程無libs目錄,請自行創(chuàng)建)中,并且因?yàn)檫€要用到語音聽寫Dialog,所以還要把SDK包中assets目錄下的iflytek文件夾復(fù)制到工程的assets目錄下,如下圖所示。還要注意,每個不同的應(yīng)用都要申請不同的AppID,并且要分別下載不同AppID對應(yīng)的SDK,否則會出錯。
6、其他更詳細(xì)的說明和資料可以參看訊飛開放平臺的資料庫(http://www.xfyun.cn/doccenter)。
?。ǘ╅_發(fā)
Demo實(shí)現(xiàn)的功能很簡單,就是點(diǎn)擊一個按鈕,彈出語音識別Dialog窗口,說話,說完了點(diǎn)擊Dialog窗口后會把自動識別的文字結(jié)果顯示在下方的EditText中。服務(wù)器返回的語音聽寫的結(jié)果是Json格式數(shù)據(jù),最后還要對Json數(shù)據(jù)進(jìn)行解析(具體解析方法參看我的這篇文章:用GSON解析Json格式數(shù)據(jù)),解析出語音字符串。
1、XML代碼:
界面中有一個按鈕,一個TextView和一個EditText,EditText用于顯示語音識別的結(jié)果。
2、MainAcTIvity