天天看點

安卓Android科大訊飛語音識别代碼使用詳解

這個語音識别需要在官網申請APPID

測試:

安卓Android科大訊飛語音識别代碼使用詳解
安卓Android科大訊飛語音識别代碼使用詳解

自己項目采用了科大訊飛語音識别服務,報告中是這樣解釋的:

(1)要想寫好Service代碼,必須了解Service的生命周期.

(2)首先啟動Service服務的方法是: 

getActivity().startService(new Intent(getActivity(),VoiceService.class)); 

停止Service服務: 

getActivity().stopService(new Intent(getActivity(),VoiceService.class)); 

(3)将類繼承與Service: 

public class VoiceService extends Service{ 

自動重載OnBind()函數,通過OnBind()的傳回值,将Service的執行個體傳回調用者。 

(3) 調用科大訊飛語音API接口代碼 

先調用手機麥克風錄音: 

rd.setSampleRate(RATE.rate16k); 

調用語音API包中的語音識别對話框,将錄音發送到伺服器,并接受伺服器傳回的結果,将資料以連結清單資料結構的形式傳過來,擷取結果: 

final StringBuilder sb = new StringBuilder(); 

rd.setListener(new RecognizerDialogListener() { 

public void onResults(ArrayList result, boolean isLast) { 

for (RecognizerResult recognizerResult : result) { 

sb.append(recognizerResult.text); 

public void onEnd(SpeechError error) { 

}); 

(4)文本語音朗讀的調用: 

先是聲明播放對象: 

private static SynthesizerPlayer player ; 

這裡我直接封裝一個朗讀函數,appid是申請的應用授權id,代碼如下: 

public void speak(String words){ 

player = SynthesizerPlayer.createSynthesizerPlayer(getActivity(),”appid=57527406”); 

player.playText(words, null,null); //播放文本 

}

開啟和關閉服務:

服務中:

Service中是無法顯示對話框的,顯示對話框的方式就是使用getwindow的方法,設定視窗最高優先級即可了!

繼續閱讀