As the mobile Internet killer interaction method, voice recognition has been attracting more and more attention since its publication, from IOS Siri to xunfei voice in China, speech recognition technology is the most promising and promising technology in mobile development. Android, as a mobile operating system, inherits Google's inherent search genes. Therefore, Android provides better support for speech recognition and speech synthesis. However, due to various reasons, many features of Android can only be discussed on paper. As a new model of human-computer interaction in the future, Chinese speech recognition technology itself has a relatively high threshold, which does not block many developers. However, there are already some manufacturers in China that provide speech recognition-related technical services. By understanding the current situation of speech recognition technology in China, this helps us select a proper direction when developing speech recognition-related applications. Now, the two well-known manufacturers in China that provide speech recognition technology are KEDA xunfei and Baidu, and both vendors have opened corresponding API interfaces, through API interfaces, we can easily implement Speech Recognition in our own applications. KEDA xunfei provides a series of solutions from text synthesis to speech recognition, while Baidu only provides solutions for speech recognition. For details, refer to the following address:
After completing the preparations, we can start learning today. First let's create an Android project, and introduce the jar library file: VoiceRecognition-1.2.jar of Baidu voice in the project, and then add the following permissions in the AndroidManifest. xml file:
Then we make a simple layout, a Button, and a text box:
In this article, we only have a preliminary understanding of Baidu speech. Therefore, the method we adopt today is to directly call a Speech Recognition dialog box class BaiduASRDigitalDialog encapsulated by Baidu for us, let's take a look at the Code:
package com.Android.BaiduVoice;
import java.util.ArrayList;
import com.baidu.voicerecognition.android.ui.BaiduASRDigitalDialog;
import com.baidu.voicerecognition.android.ui.DialogRecognitionListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
// start button
private Button BtnStart;
// text box
private EditText InputBox;
// Baidu speech recognition dialog
private BaiduASRDigitalDialog mDialog = null;
private DialogRecognitionListener mDialogListener = null;
// Apply authorization information. The parameters in the official SDK are used here. If necessary, please apply for it yourself and modify it to your own authorization information.
private String API_KEY = 8MAxI5o7VjKSZOKeBzS4XtxO;
private String SECRET_KEY = Ge5GXVdGQpaxOmLzc8fOM8309ATCz9Ha;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_main);
if (mDialog == null) {
if (mDialog! = null) {
mDialog.dismiss ();
}
Bundle params = new Bundle ();
// Set API_KEY, SECRET_KEY
params.putString (BaiduASRDigitalDialog.PARAM_API_KEY, API_KEY);
params.putString (BaiduASRDigitalDialog.PARAM_SECRET_KEY, SECRET_KEY);
// Set the speech recognition dialog to blue highlight theme
params.putInt (BaiduASRDigitalDialog.PARAM_DIALOG_THEME, BaiduASRDigitalDialog.THEME_BLUE_LIGHTBG);
// Instantiate Baidu speech recognition dialog
mDialog = new BaiduASRDigitalDialog (this, params);
// Set Baidu speech recognition callback interface
mDialogListener = new DialogRecognitionListener ()
{
@Override
public void onResults (Bundle mResults)
{
ArrayList rs = mResults! = Null? MResults.getStringArrayList (RESULTS_RECOGNITION): null;
if (rs! = null && rs.size ()> 0) {
InputBox.setText (rs.get (0));
}
Ranch
}
Hell
};
mDialog.setDialogRecognitionListener (mDialogListener);
}
// Set the voice recognition mode to input mode
mDialog.setSpeechMode (BaiduASRDigitalDialog.SPEECH_MODE_INPUT);
// Disable semantic recognition
mDialog.getParams (). putBoolean (BaiduASRDigitalDialog.PARAM_NLU_ENABLE, false);
// Interface elements
BtnStart = (Button) findViewById (R.id.BtnStart);
InputBox = (EditText) findViewById (R.id.InputBox);
BtnStart.setOnClickListener (new OnClickListener ()
{
@Override
public void onClick (View v)
{
mDialog.show ();
}
});
}
}
In this way, we have achieved the goal of implementing Speech Recognition in our applications. It seems quite simple. The following shows how the program runs:
Calling Baidu voice in this way is very simple, but it is difficult to meet the needs of personalized customization. By default, the official website has provided us with 8 color schemes, if these eight color schemes cannot meet our actual needs, we need to customize them using the APIS provided by Baidu voice. You can continue to follow my blog for specific content, in the next article, we will implement our speech recognition Interface Based on Baidu voice API. Thank you for your attention!
Source code download