天天看点

安卓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的方法,设置窗口最高优先级即可了!

继续阅读