Added in API level 8

RecognitionService.Callback


public class RecognitionService.Callback
extends Object

java.lang.Object
   ↳ android.speech.RecognitionService.Callback


This class receives callbacks from the speech recognition service and forwards them to the user. An instance of this class is passed to the RecognitionService#onStartListening(Intent, Callback) method. Recognizers may call these methods on any thread.

Summary

Public methods

void beginningOfSpeech()

The service should call this method when the user has started to speak.

void bufferReceived(byte[] buffer)

The service should call this method when sound has been received.

void endOfSegmentedSession()

The service should call this method to end a segmented session.

void endOfSpeech()

The service should call this method after the user stops speaking.

void error(int error)

The service should call this method when a network or recognition error occurred.

AttributionSource getCallingAttributionSource()

Gets the permission identity of the calling app.

int getCallingUid()

Return the Linux uid assigned to the process that sent you the current transaction that is being processed.

void languageDetection(Bundle results)

The service should call this method when the language detection (and switching) results are available.

void partialResults(Bundle partialResults)

The service should call this method when partial recognition results are available.

void readyForSpeech(Bundle params)

The service should call this method when the endpointer is ready for the user to start speaking.

void results(Bundle results)

The service should call this method when recognition results are ready.

void rmsChanged(float rmsdB)

The service should call this method when the sound level in the audio stream has changed.

void segmentResults(Bundle results)

The service should call this method for each ready segment of a long recognition session.

Inherited methods

Public methods

beginningOfSpeech

Added in API level 8
public void beginningOfSpeech ()

The service should call this method when the user has started to speak.

Throws
RemoteException

bufferReceived

Added in API level 8
public void bufferReceived (byte[] buffer)

The service should call this method when sound has been received. The purpose of this function is to allow giving feedback to the user regarding the captured audio.

Parameters
buffer byte: a buffer containing a sequence of big-endian 16-bit integers representing a single channel audio stream. The sample rate is implementation dependent.

Throws
RemoteException

endOfSegmentedSession

Added in API level 33
public void endOfSegmentedSession ()

The service should call this method to end a segmented session.

Throws
RemoteException

endOfSpeech

Added in API level 8
public void endOfSpeech ()

The service should call this method after the user stops speaking.

Throws
RemoteException

error

Added in API level 8
public void error (int error)

The service should call this method when a network or recognition error occurred.

Parameters
error int: code is defined in SpeechRecognizer Value is SpeechRecognizer.ERROR_NETWORK_TIMEOUT, SpeechRecognizer.ERROR_NETWORK, SpeechRecognizer.ERROR_AUDIO, SpeechRecognizer.ERROR_SERVER, SpeechRecognizer.ERROR_CLIENT, SpeechRecognizer.ERROR_SPEECH_TIMEOUT, SpeechRecognizer.ERROR_NO_MATCH, SpeechRecognizer.ERROR_RECOGNIZER_BUSY, SpeechRecognizer.ERROR_INSUFFICIENT_PERMISSIONS, SpeechRecognizer.ERROR_TOO_MANY_REQUESTS, SpeechRecognizer.ERROR_SERVER_DISCONNECTED, SpeechRecognizer.ERROR_LANGUAGE_NOT_SUPPORTED, SpeechRecognizer.ERROR_LANGUAGE_UNAVAILABLE, SpeechRecognizer.ERROR_CANNOT_CHECK_SUPPORT, or SpeechRecognizer.ERROR_CANNOT_LISTEN_TO_DOWNLOAD_EVENTS

Throws
RemoteException

getCallingAttributionSource

Added in API level 31
public AttributionSource getCallingAttributionSource ()

Gets the permission identity of the calling app. If you want to attribute the mic access to the calling app you can create an attribution context via Context.createContext(android.content.ContextParams) and passing this identity to ContextParams.Builder.setNextAttributionSource(AttributionSource).

Returns
AttributionSource The permission identity of the calling app. This value cannot be null.

getCallingUid

Added in API level 23
public int getCallingUid ()

Return the Linux uid assigned to the process that sent you the current transaction that is being processed. This is obtained from Binder#getCallingUid().

Returns
int

languageDetection

Added in API level 34
public void languageDetection (Bundle results)

The service should call this method when the language detection (and switching) results are available. This method can be called on any number of occasions at any time between beginningOfSpeech() and endOfSpeech(), depending on the speech recognition service implementation.

Parameters
results Bundle: the returned language detection (and switching) results.

To retrieve the most confidently detected language IETF tag (as defined by BCP 47, e.g., "en-US", "de-DE"), use Bundle#getString(String) with SpeechRecognizer#DETECTED_LANGUAGE as the parameter.

To retrieve the language detection confidence level represented by a value prefixed by LANGUAGE_DETECTION_CONFIDENCE_LEVEL_ defined in SpeechRecognizer, use Bundle#getInt(String) with SpeechRecognizer#LANGUAGE_DETECTION_CONFIDENCE_LEVEL as the parameter.

To retrieve the alternative locales for the same language retrieved by the key SpeechRecognizer#DETECTED_LANGUAGE, use Bundle#getStringArrayList(String) with SpeechRecognizer#TOP_LOCALE_ALTERNATIVES as the parameter.

To retrieve the language switching results represented by a value prefixed by LANGUAGE_SWITCH_RESULT_ and defined in SpeechRecognizer, use Bundle#getInt(String) with SpeechRecognizer#LANGUAGE_SWITCH_RESULT as the parameter. This value cannot be null.

partialResults

Added in API level 8
public void partialResults (Bundle partialResults)

The service should call this method when partial recognition results are available. This method can be called at any time between beginningOfSpeech() and results(android.os.Bundle) when partial results are ready. This method may be called zero, one or multiple times for each call to SpeechRecognizer#startListening(Intent), depending on the speech recognition service implementation.

Parameters
partialResults Bundle: the returned results. To retrieve the results in ArrayList<String> format use Bundle#getStringArrayList(String) with SpeechRecognizer#RESULTS_RECOGNITION as a parameter

Throws
RemoteException

readyForSpeech

Added in API level 8
public void readyForSpeech (Bundle params)

The service should call this method when the endpointer is ready for the user to start speaking.

Parameters
params Bundle: parameters set by the recognition service. Reserved for future use.

Throws
RemoteException

results

Added in API level 8
public void results (Bundle results)

The service should call this method when recognition results are ready.

Parameters
results Bundle: the recognition results. To retrieve the results in ArrayList<String> format use Bundle#getStringArrayList(String) with SpeechRecognizer#RESULTS_RECOGNITION as a parameter

Throws
RemoteException

rmsChanged

Added in API level 8
public void rmsChanged (float rmsdB)

The service should call this method when the sound level in the audio stream has changed. There is no guarantee that this method will be called.

Parameters
rmsdB float: the new RMS dB value

Throws
RemoteException

segmentResults

Added in API level 33
public void segmentResults (Bundle results)

The service should call this method for each ready segment of a long recognition session.

Parameters
results Bundle: the recognition results. To retrieve the results in ArrayList<String> format use Bundle#getStringArrayList(String) with SpeechRecognizer#RESULTS_RECOGNITION as a parameter This value cannot be null.

Throws
RemoteException