This article describes the implementation of the speech recognition method of Android programming. Share to everyone for your reference, specific as follows:
Speech recognition technology is widely used in mobile phones, the most common way for human communication is voice, while in mobile applications, mostly through the hardware manual input, this is still the main way of interacting with the mobile phone. But with the mobile phone hardware and software functions of the continuous improvement, it can be foreseen in the near future, voice communication will be the main way of human-computer interaction. The Siri voice helper built into the iphone is a good example. What's known is that the speech recognition technology it uses comes from Google. To be aware, Google-pushed Android is naturally embedded in the most core speech recognition technology, it also integrates Google's cloud technology to better achieve human-computer voice interaction.
Android mainly through the recognizerintent to achieve speech recognition, it mainly includes some constants to represent the mode of speech, etc., as shown in the following table:
Constant |
Describe |
Action_recognize_speech |
Turn on voice activity |
Action_web_search |
Open the network voice mode, the result will be a web search display |
Extra_language |
Set Language Library |
Extra_language_model |
Speech recognition mode |
Extra_max_results |
The maximum result returned |
Extra_prompt |
Prompts the user to start the speech |
EXTRA _results |
Returns a string to a ArrayList |
Language_model-free_form |
Free language in one language mode |
Language_model-web_search |
Using the language model to search on the Web |
Result_audio_error |
The audio encountered an error while returning the result |
Result_client_error |
The client encountered an error while returning the result |
Result_network_error |
The network encountered an error while returning results |
Result_no_match |
No speech errors detected |
Result_server_error |
The server encountered an error while returning results |
Here we only need to pass intent to send an action as well as some attributes, and then start the speech through Startactivityforresult, the code is as follows:
Intent intent= New Intent (Recognizerintent.action_recognize_speech);
Intent.putextra (recognizerintent.extra_language_model,recognizerintent.language_model_free_form);
Intent.putextra (Recognizerintent.extra_prompt, "Start speech");
Of course, if the setting is not found, it throws activitynotfoundexception, so we need to catch this exception. In the following example, we implement a simple speech recognition program, when we click the "Click to use Speech Recognition" button, start the voice, and then in the Onactivityresult method to obtain results and display, if the current phone is not connected to the Internet will show connectivity problems, The results of the operation are as follows:
After clicking the button:
If there is no networking there will be a connection error:
After the word "computer" is spoken to the microphone:
The code for the implementation is as follows:
public class Recognizerintent_testactivity extends activity {private static final int voice_recognition_request_code =
1;
Private ListView mlist;
Button Mbutton;
@Override public void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.main);
Mbutton = (Button) Findviewbyid (R.id.button1);
Mbutton.setonclicklistener (New Myrecognizerintentlistener ());
Mlist = (ListView) Findviewbyid (R.ID.LISTVIEW1);
public class Myrecognizerintentlistener implements Onclicklistener {public void OnClick (View v) {try { Use Intent to pass the mode of speech recognition and turn on the speech mode Intent Intent = new Intent (RECOGNIZERINTENT.ACTION_RECOGNIZE_SPEEC
H); Language mode and free form of speech recognition Intent.putextra (Recognizerintent.extra_language_model, Recognizerintent.language_mod
El_free_form);
Prompt language start Intent.putextra (recognizerintent.extra_prompt, "Please start Speech"); Start speech recognition StartactivityforrEsult (Intent, Voice_recognition_request_code);
catch (Activitynotfoundexception e) {toast.maketext (recognizerintent_testactivity.this, "Voice device not found",
Toast.length_long). Show ();
}}//speech at the end of the callback function @Override protected void onactivityresult (int requestcode, int resultcode, Intent data) {
if (Requestcode = = Voice_recognition_request_code && ResultCode = = RESULT_OK) {//Get speech characters
arraylist<string> results = data. Getstringarraylistextra (Recognizerintent.extra_results); Set the update for the View Mlist.setadapter new Arrayadapter<string> (this, Android.
R.layout.simple_list_item_1, results));
String resultsstring = "";
for (int i = 0; i < results.size (); i++) {resultsstring + = Results.get (i);
} toast.maketext (this, resultsstring, Toast.length_long). Show ();
} super.onactivityresult (Requestcode, ResultCode, data);
}
}
For more information on Android-related content readers can view the site: "Android Multimedia how-to Summary (audio, video, recording, etc.)", "Android Development introduction and Advanced Course", "Android view summary of the tips", " The activity Operation skill summary of Android programming, "Android operation SQLite database Skill Summary", "Android operation JSON format Data technique summary", "Android database Operation skill Summary", "Android File Operation skill Summary "," Android programming development of SD card operation method Summary "," Android Resource Operation skills Summary "and" Android Control usage Summary "
I hope this article will help you with the Android program.