百度语音识别简单快速集成

> 下载SDK包: http://yuyin.baidu.com/sdk/down?appId=10094475

百度语音识别简单快速集成_第1张图片

解压压缩包,会得到一个AS项目,导入AS项目,编译若出现空指针异常,调高最小版本SDK版本:

compileSdkVersion 25 

  buildToolsVersion "25.0.2" 

  defaultConfig { 

      minSdkVersion 15

       targetSdkVersion 25

}        

可以正常运行后,在自己的项目中导入该项目的app module,然后修改几个地方就可以用了。

1.gradle的修改:

apply plugin: 'com.android.library'

去掉:applicationId

注释掉:

 buildTypes {
        release {
//            minifyEnabled false
//            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
        }
    }

2.AndroidManifest.xml的修改:

        android:minSdkVersion="15"
        android:targetSdkVersion="25" />

            android:name="android.test.InstrumentationTestRunner"
        android:label="Tests for com.baidu.speech.recognizerdemo"
        android:targetPackage="自己的程序包名" />
          >

       
       

                    android:name="com.baidu.speech.APP_ID"
            android:value="自己的appid" />
       
       
       
                    android:name="com.baidu.speech.API_KEY"
            android:value="自己的appkey" />
           
                    android:name="com.baidu.speech.SECRET_KEY"
            android:value="自己的select_key" />
           
                    android:name="com.baidu.speech.VoiceRecognitionService"
            android:exported="false" />
                    android:name="com.baidu.android.voicedemo.activity.ActivityMain"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.DeviceDefault.Light">
       

       。。。
   

最后应该就可以只用了,最好自己再封装一个工具类,将语音识别的环境初始化过程和调用的方法封装进去,使用就更方便了,我自己封装的SpeecherUtils

public class SpeecherUtils {

    private static Handler handler;
    private static MyRecognizer myRecognizer;
    protected static CommonRecogParams apiParams;
    private static Context context;

    public static void init(Context context){
//        apiParams = new OnlineRecogParams((Activity) context);
        SpeecherUtils.context = context;
        KLog.init(true);
        apiParams = new OfflineRecogParams( context);
        handler = new Handler() {

            /*
             * @param msg
             */
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                KLog.e(msg.obj.toString() );
            }

        };
        IRecogListener listener = new MessageStatusRecogListener(handler);
        // 可以传入IRecogListener的实现类,也可以如SDK,传入EventListener实现类
        // 如果传入IRecogListener类,在RecogEventAdapter为您做了大多数的json解析。
         myRecognizer = new MyRecognizer(context, listener); // this是Activity或其它Context类
        myRecognizer.loadOfflineEngine(OfflineRecogParams.fetchOfflineParams());
    }
    public static void start(){
        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
        Map params = apiParams.fetch(sp);
        myRecognizer.start(params);
        KLog.e("start");
    }
    public static void stop(){
        myRecognizer.stop(); // 发送停止录音事件,提前结束录音等待识别结果

    }
    public static void cancle(){
        myRecognizer.cancel(); // 取消本次识别,取消后将立即停止不会返回识别结果
    }
    public static void destory(){
        context=null;
        myRecognizer.release();
    }

}



你可能感兴趣的:(android)