first need to be in
Click to create application
After creation, remember his ID and other information, which will be used later, and then download the speech recognition SDK on the official website
Help the libs inside here, and then add baid..... to VoiceRecognition as a dependency. In this way, the Activity can be called.
MainActivity:
package com.huangfushi.hfs192025214_yuyinshibie1;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.baidu.voicerecognition.android.VoiceRecognitionConfig;
import com.baidu.voicerecognition.android.ui.BaiduASRDigitalDialog;
import com.baidu.voicerecognition.android.ui.DialogRecognitionListener;
import java.util.ArrayList;
public class MainActivity extends ActionBarActivity {
private BaiduASRDigitalDialog dlgVoiceRecognize;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dlgVoiceRecognize = createASRDialog();
}
@Override
protected void onDestroy(){
super.onDestroy();
if (dlgVoiceRecognize!=null)
dlgVoiceRecognize.dismiss();
}
public void btnVoiceRecognize_Click(View view){
if (dlgVoiceRecognize!=null)
dlgVoiceRecognize.show();
else Toast.makeText(this, "初始化语音识别失败,无法打开。", Toast.LENGTH_LONG).show();
}
private BaiduASRDigitalDialog createASRDialog(){
Bundle params = new Bundle();
params.putString(BaiduASRDigitalDialog.PARAM_API_KEY, "7ZXYuM3vKzoa1Go01eRMAGFb");
params.putString(BaiduASRDigitalDialog.PARAM_SECRET_KEY, "WhlqUamyw1Z7YPUrGb7cppHuYlA97WtC");
params.putInt(BaiduASRDigitalDialog.PARAM_PROP, VoiceRecognitionConfig.PROP_INPUT);
params.putString(BaiduASRDigitalDialog.PARAM_LANGUAGE, VoiceRecognitionConfig.LANGUAGE_ENGLISH);
BaiduASRDigitalDialog dlgVoiceRecognize = null;
try {
dlgVoiceRecognize = new BaiduASRDigitalDialog(this,params);
dlgVoiceRecognize.setDialogRecognitionListener(new DialogRecognitionListener() {
@Override
public void onResults(Bundle bundle) {
ProcessVoiceRecognizeResult(bundle);
}
});
}catch (Exception e){
Toast.makeText(this,e.getMessage(),Toast.LENGTH_LONG).show();
}
return dlgVoiceRecognize;
}
public void btnQuit_Click(View view){
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
public void ProcessVoiceRecognizeResult(Bundle results){
ArrayList<String> rs = null;
if (results != null)
rs = results.getStringArrayList(DialogRecognitionListener.RESULTS_RECOGNITION);
if (results ==null || rs==null || rs.size()<=0){
Toast.makeText(this,"没有语音识别结果。",Toast.LENGTH_LONG).show();
return;
}
String s="";
for (String i:rs){
s+=i;
}
Toast.makeText(this,s,Toast.LENGTH_LONG).show();
if (s.contains("退出"))
btnQuit_Click(null);
}
}
head:
Add permissions:
XML:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.a10741.yn_215.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="speech recognition" android:onClick="btnVoiceRecognize_Click"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Exit" android:onClick="btnQuit_Click"/> </LinearLayout>
build.gradle:
Need to add this string and dependencies:
This is the SDK downloaded by Baidu
The renderings are as follows: