/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.speech; import android.content.Intent; import android.os.Bundle; /** * Used for receiving notifications from the SpeechRecognizer when the * recognition related events occur. All the callbacks are executed on the * Application main thread. */ public interface RecognitionListener { /** * Called when the endpointer is ready for the user to start speaking. * * @param params parameters set by the recognition service. Reserved for future use. */ void onReadyForSpeech(Bundle params); /** * The user has started to speak. */ void onBeginningOfSpeech(); /** * The sound level in the audio stream has changed. There is no guarantee that this method will * be called. * * @param rmsdB the new RMS dB value */ void onRmsChanged(float rmsdB); /** * More sound has been received. The purpose of this function is to allow giving feedback to the * user regarding the captured audio. There is no guarantee that this method will be called. * * @param buffer a buffer containing a sequence of big-endian 16-bit integers representing a * single channel audio stream. The sample rate is implementation dependent. */ void onBufferReceived(byte[] buffer); /** * Called after the user stops speaking. */ void onEndOfSpeech(); /** * A network or recognition error occurred. * * @param error code is defined in {@link SpeechRecognizer} */ void onError(int error); /** * Called when recognition results are ready. * * @param results the recognition results. To retrieve the results in {@code * ArrayList<String>} format use {@link Bundle#getStringArrayList(String)} with * {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter. A float array of * confidence values might also be given in {@link SpeechRecognizer#CONFIDENCE_SCORES}. */ void onResults(Bundle results); /** * Called when partial recognition results are available. The callback might be called at any * time between {@link #onBeginningOfSpeech()} and {@link #onResults(Bundle)} when partial * results are ready. This method may be called zero, one or multiple times for each call to * {@link SpeechRecognizer#startListening(Intent)}, depending on the speech recognition * service implementation. To request partial results, use * {@link RecognizerIntent#EXTRA_PARTIAL_RESULTS} * * @param partialResults the returned results. To retrieve the results in * ArrayList<String> format use {@link Bundle#getStringArrayList(String)} with * {@link SpeechRecognizer#RESULTS_RECOGNITION} as a parameter */ void onPartialResults(Bundle partialResults); /** * Reserved for adding future events. * * @param eventType the type of the occurred event * @param params a Bundle containing the passed parameters */ void onEvent(int eventType, Bundle params); }