码迷,mamicode.com
首页 > 移动开发 > 详细

Android语音识别功能使用总结

时间:2014-06-25 19:26:47      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:语音识别   android   speechrecognizer   

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 onError(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这个服务接口,下一篇文章将介绍如何实现该类。




Android语音识别功能使用总结,布布扣,bubuko.com

Android语音识别功能使用总结

标签:语音识别   android   speechrecognizer   

原文地址:http://blog.csdn.net/zpf8861/article/details/33758723

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!