android studio的百度语音识别功能

首先需要在

 点击创建应用

 

创建完后,记住他的ID等信息,后面会用到,随后在官网下载语音识别的SDK 

将里面的libs辅助到这里来,随后将baid.....于VoiceRecognition加入依赖。这样Activity才能调用。 

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);
    }
}

头:

 添加权限:

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="语音识别"
        android:onClick="btnVoiceRecognize_Click"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="退出"
        android:onClick="btnQuit_Click"/>
</LinearLayout>

build.gradle:

需要添加这串以及依赖:

这是百度下载下来的SDK 

 效果图如下:

猜你喜欢

转载自blog.csdn.net/a1060916181/article/details/127892246