# Print output for @column tags ?>
public
class
SpeechRecognizer
extends Object
java.lang.Object | |
↳ | android.speech.SpeechRecognizer |
This class provides access to the speech recognition service. This service allows access to the
speech recognizer. Do not instantiate this class directly, instead, call
SpeechRecognizer#createSpeechRecognizer(Context)
, or
SpeechRecognizer#createOnDeviceSpeechRecognizer(Context)
. This class's methods must be
invoked only from the main application thread.
The implementation of this API is likely to stream audio to remote servers to perform speech recognition. As such this API is not intended to be used for continuous recognition, which would consume a significant amount of battery and bandwidth.
Please note that the application must have Manifest.permission.RECORD_AUDIO
permission to use this class.
Constants | |
---|---|
String |
CONFIDENCE_SCORES
Key used to retrieve a float array from the |
int |
ERROR_AUDIO
Audio recording error. |
int |
ERROR_CLIENT
Other client side errors. |
int |
ERROR_INSUFFICIENT_PERMISSIONS
Insufficient permissions |
int |
ERROR_LANGUAGE_NOT_SUPPORTED
Requested language is not available to be used with the current recognizer. |
int |
ERROR_LANGUAGE_UNAVAILABLE
Requested language is supported, but not available currently (e.g. not downloaded yet). |
int |
ERROR_NETWORK
Other network related errors. |
int |
ERROR_NETWORK_TIMEOUT
Network operation timed out. |
int |
ERROR_NO_MATCH
No recognition result matched. |
int |
ERROR_RECOGNIZER_BUSY
RecognitionService busy. |
int |
ERROR_SERVER
Server sends error status. |
int |
ERROR_SERVER_DISCONNECTED
Server has been disconnected, e.g. because the app has crashed. |
int |
ERROR_SPEECH_TIMEOUT
No speech input |
int |
ERROR_TOO_MANY_REQUESTS
Too many requests from the same client. |
String |
RESULTS_RECOGNITION
Key used to retrieve an |
Public methods | |
---|---|
void
|
cancel()
Cancels the speech recognition. |
static
SpeechRecognizer
|
createOnDeviceSpeechRecognizer(Context context)
Factory method to create a new |
static
SpeechRecognizer
|
createSpeechRecognizer(Context context)
Factory method to create a new |
static
SpeechRecognizer
|
createSpeechRecognizer(Context context, ComponentName serviceComponent)
Factory method to create a new |
void
|
destroy()
Destroys the |
static
boolean
|
isOnDeviceRecognitionAvailable(Context context)
Checks whether an on-device speech recognition service is available on the system. |
static
boolean
|
isRecognitionAvailable(Context context)
Checks whether a speech recognition service is available on the system. |
void
|
setRecognitionListener(RecognitionListener listener)
Sets the listener that will receive all the callbacks. |
void
|
startListening(Intent recognizerIntent)
Starts listening for speech. |
void
|
stopListening()
Stops listening for speech. |
Inherited methods | |
---|---|
public static final String CONFIDENCE_SCORES
Key used to retrieve a float array from the Bundle
passed to the
RecognitionListener#onResults(Bundle)
and
RecognitionListener#onPartialResults(Bundle)
methods. The array should be
the same size as the ArrayList provided in RESULTS_RECOGNITION
, and should contain
values ranging from 0.0 to 1.0, or -1 to represent an unavailable confidence score.
Confidence values close to 1.0 indicate high confidence (the speech recognizer is confident that the recognition result is correct), while values close to 0.0 indicate low confidence.
This value is optional and might not be provided.
Constant Value: "confidence_scores"
public static final int ERROR_AUDIO
Audio recording error.
Constant Value: 3 (0x00000003)
public static final int ERROR_CLIENT
Other client side errors.
Constant Value: 5 (0x00000005)
public static final int ERROR_INSUFFICIENT_PERMISSIONS
Insufficient permissions
Constant Value: 9 (0x00000009)
public static final int ERROR_LANGUAGE_NOT_SUPPORTED
Requested language is not available to be used with the current recognizer.
Constant Value: 12 (0x0000000c)
public static final int ERROR_LANGUAGE_UNAVAILABLE
Requested language is supported, but not available currently (e.g. not downloaded yet).
Constant Value: 13 (0x0000000d)
public static final int ERROR_NETWORK
Other network related errors.
Constant Value: 2 (0x00000002)
public static final int ERROR_NETWORK_TIMEOUT
Network operation timed out.
Constant Value: 1 (0x00000001)
public static final int ERROR_NO_MATCH
No recognition result matched.
Constant Value: 7 (0x00000007)
public static final int ERROR_RECOGNIZER_BUSY
RecognitionService busy.
Constant Value: 8 (0x00000008)
public static final int ERROR_SERVER
Server sends error status.
Constant Value: 4 (0x00000004)
public static final int ERROR_SERVER_DISCONNECTED
Server has been disconnected, e.g. because the app has crashed.
Constant Value: 11 (0x0000000b)
public static final int ERROR_SPEECH_TIMEOUT
No speech input
Constant Value: 6 (0x00000006)
public static final int ERROR_TOO_MANY_REQUESTS
Too many requests from the same client.
Constant Value: 10 (0x0000000a)
public static final String RESULTS_RECOGNITION
Key used to retrieve an ArrayList<String>
from the Bundle
passed to the
RecognitionListener#onResults(Bundle)
and
RecognitionListener#onPartialResults(Bundle)
methods. These strings are the possible
recognition results, where the first element is the most likely candidate.
Constant Value: "results_recognition"
public void cancel ()
Cancels the speech recognition. Please note that
setRecognitionListener(android.speech.RecognitionListener)
should be called beforehand, otherwise
no notifications will be received.
This method must be called from the main thread of your app.
public static SpeechRecognizer createOnDeviceSpeechRecognizer (Context context)
Factory method to create a new SpeechRecognizer
.
Please note that setRecognitionListener(android.speech.RecognitionListener)
should be called
before dispatching any command to the created SpeechRecognizer
, otherwise no
notifications will be received.
This method must be called from the main thread of your app.
Parameters | |
---|---|
context |
Context : in which to create SpeechRecognizer
This value cannot be null . |
Returns | |
---|---|
SpeechRecognizer |
a new on-device SpeechRecognizer .
This value cannot be null . |
Throws | |
---|---|
UnsupportedOperationException |
iff isOnDeviceRecognitionAvailable(android.content.Context)
is false |
public static SpeechRecognizer createSpeechRecognizer (Context context)
Factory method to create a new SpeechRecognizer
. Please note that
setRecognitionListener(android.speech.RecognitionListener)
should be called before dispatching any
command to the created SpeechRecognizer
, otherwise no notifications will be
received.
For apps targeting Android 11 (API level 30) interaction with a speech recognition
service requires <queries>
<intent>
<action
android:name="android.speech.RecognitionService" />
</intent>
</queries>
This method must be called from the main thread of your app.
Parameters | |
---|---|
context |
Context : in which to create SpeechRecognizer |
Returns | |
---|---|
SpeechRecognizer |
a new SpeechRecognizer |
public static SpeechRecognizer createSpeechRecognizer (Context context, ComponentName serviceComponent)
Factory method to create a new SpeechRecognizer
. Please note that
setRecognitionListener(android.speech.RecognitionListener)
should be called before dispatching any
command to the created SpeechRecognizer
, otherwise no notifications will be
received.
Use this version of the method to specify a specific service to direct this
SpeechRecognizer
to.
Important: before calling this method, please check via
PackageManager.queryIntentServices(Intent, int)
that serviceComponent
actually exists and provides
RecognitionService#SERVICE_INTERFACE
. Normally you would not use this; call
createSpeechRecognizer(android.content.Context)
to use the system default recognition
service instead or createOnDeviceSpeechRecognizer(android.content.Context)
to use on-device
recognition.
For apps targeting Android 11 (API level 30) interaction with a speech recognition
service requires <queries>
<intent>
<action
android:name="android.speech.RecognitionService" />
</intent>
</queries>
This method must be called from the main thread of your app.
Parameters | |
---|---|
context |
Context : in which to create SpeechRecognizer |
serviceComponent |
ComponentName : the ComponentName of a specific service to direct this
SpeechRecognizer to |
Returns | |
---|---|
SpeechRecognizer |
a new SpeechRecognizer |
public void destroy ()
Destroys the SpeechRecognizer
object.
public static boolean isOnDeviceRecognitionAvailable (Context context)
Checks whether an on-device speech recognition service is available on the system. If this
method returns false
,
SpeechRecognizer#createOnDeviceSpeechRecognizer(Context)
will
fail.
Parameters | |
---|---|
context |
Context : with which on-device SpeechRecognizer will be created
This value cannot be null . |
Returns | |
---|---|
boolean |
true if on-device recognition is available, false otherwise |
public static boolean isRecognitionAvailable (Context context)
Checks whether a speech recognition service is available on the system. If this method
returns false
, SpeechRecognizer#createSpeechRecognizer(Context)
will
fail.
Parameters | |
---|---|
context |
Context : with which SpeechRecognizer will be created
This value cannot be null . |
Returns | |
---|---|
boolean |
true if recognition is available, false otherwise |
public void setRecognitionListener (RecognitionListener listener)
Sets the listener that will receive all the callbacks. The previous unfinished commands will
be executed with the old listener, while any following command will be executed with the new
listener.
This method must be called from the main thread of your app.
Parameters | |
---|---|
listener |
RecognitionListener : listener that will receive all the callbacks from the created
SpeechRecognizer , this must not be null. |
public void startListening (Intent recognizerIntent)
Starts listening for speech. Please note that
setRecognitionListener(android.speech.RecognitionListener)
should be called beforehand, otherwise
no notifications will be received.
This method must be called from the main thread of your app.
Parameters | |
---|---|
recognizerIntent |
Intent : contains parameters for the recognition to be performed. The intent
may also contain optional extras, see RecognizerIntent . If these values are
not set explicitly, default values will be used by the recognizer. |
public void stopListening ()
Stops listening for speech. Speech captured so far will be recognized as if the user had stopped speaking at this point.
Note that in the default case, this does not need to be called, as the speech endpointer
will automatically stop the recognizer listening when it determines speech has completed.
However, you can manipulate endpointer parameters directly using the intent extras defined in
RecognizerIntent
, in which case you may sometimes want to manually call this method
to stop listening sooner.
Upon invocation clients must wait until RecognitionListener#onResults
or
RecognitionListener#onError
are invoked before calling
SpeechRecognizer#startListening
again. Otherwise such an attempt would be rejected by
recognition service.
Please note that
setRecognitionListener(android.speech.RecognitionListener)
should be called beforehand, otherwise
no notifications will be received.
This method must be called from the main thread of your app.