1/* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package android.speech; 17 18import android.content.Intent; 19import android.os.Bundle; 20 21/** 22 * Used for receiving notifications from the SpeechRecognizer when the 23 * recognition related events occur. All the callbacks are executed on the 24 * Application main thread. 25 */ 26public interface RecognitionListener { 27 /** 28 * Called when the endpointer is ready for the user to start speaking. 29 * 30 * @param params parameters set by the recognition service. Reserved for future use. 31 */ 32 void onReadyForSpeech(Bundle params); 33 34 /** 35 * The user has started to speak. 36 */ 37 void onBeginningOfSpeech(); 38 39 /** 40 * The sound level in the audio stream has changed. There is no guarantee that this method will 41 * be called. 42 * 43 * @param rmsdB the new RMS dB value 44 */ 45 void onRmsChanged(float rmsdB); 46 47 /** 48 * More sound has been received. The purpose of this function is to allow giving feedback to the 49 * user regarding the captured audio. There is no guarantee that this method will be called. 50 * 51 * @param buffer a buffer containing a sequence of big-endian 16-bit integers representing a 52 * single channel audio stream. The sample rate is implementation dependent. 53 */ 54 void onBufferReceived(byte[] buffer); 55 56 /** 57 * Called after the user stops speaking. 58 */ 59 void onEndOfSpeech(); 60 61 /** 62 * A network or recognition error occurred. 63 * 64 * @param error code is defined in {@link SpeechRecognizer} 65 */ 66 void onError(int error); 67 68 /** 69 * Called when recognition results are ready. 70 * 71 * @param results the recognition results. To retrieve the results in {@code 72 * ArrayList<String>} format use {@link Bundle#getStringArrayList(String)} with 73 * {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter 74 */ 75 void onResults(Bundle results); 76 77 /** 78 * Called when partial recognition results are available. The callback might be called at any 79 * time between {@link #onBeginningOfSpeech()} and {@link #onResults(Bundle)} when partial 80 * results are ready. This method may be called zero, one or multiple times for each call to 81 * {@link SpeechRecognizer#startListening(Intent)}, depending on the speech recognition 82 * service implementation. To request partial results, use 83 * {@link RecognizerIntent#EXTRA_PARTIAL_RESULTS} 84 * 85 * @param partialResults the returned results. To retrieve the results in 86 * ArrayList<String> format use {@link Bundle#getStringArrayList(String)} with 87 * {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter 88 */ 89 void onPartialResults(Bundle partialResults); 90 91 /** 92 * Reserved for adding future events. 93 * 94 * @param eventType the type of the occurred event 95 * @param params a Bundle containing the passed parameters 96 */ 97 void onEvent(int eventType, Bundle params); 98} 99