首页 > 代码库 > Android语音识别功能使用总结
Android语音识别功能使用总结
Android引入了对语音识别的支持。语音识别主要位于android.speech包中,主要的类包括SpeechRecognizer、RecognitionService、RecognizerIntent、RecognizerResultsIntent、RecognitionListener等类和接口。
SpeechRecognizer提供了接入语音识别服务的接口,下面是SpeechRecognizer的常用方法:
<span style="font-size:18px;"> createSpeechRecognizer() //创建语音识别器 setRecognitionListener() //设置监听器 startListening() //开始语音识别 stopListening() //结束语音识别</span>
语音识别要求"android.permission.RECORD_AUDIO"权限。
为了进行语音识别,首先需要发布一个语音识别的Activity,然后系统会启动语音识别引擎,并对用户的语音进行处理,处理的结果将会通过onActivityResult()方法被返回。下面是Android中的一个实现:
SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(this, new ComponentName(getPackageName(), BDRecognitionService.class.getName())); sr.setRecognitionListener(new listener()); sr.startListening(new Intent(getIntent().getAction()).putExtras(getIntent()));
回调方法
<span style="text-indent: 24px; background-color: rgb(240, 240, 240);">class listener implements RecognitionListener{</span> @Override public void onReadyForSpeech(Bundle params) { } @Override public void onBeginningOfSpeech() { } @Override public void onRmsChanged(float rmsdB) { } @Override public void onBufferReceived(byte[] buffer) { } @Override public void onEndOfSpeech() { } @Override public void one rror(int error) { } @Override public void onResults(Bundle results) { //具体处理识别结果 } @Override public void onPartialResults(Bundle partialResults) { } @Override public void onEvent(int eventType, Bundle params) { } }
注意:android虽然提供了该接口,但是没有提供具体的识别功能
new ComponentName(getPackageName(),BDRecognitionService.class.getName())
因此实例化时的参数指定了具体实现功能的service,这就需要开发者实现RecognitionService这个服务接口,下一篇文章将介绍如何实现该类。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。