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

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

解压压缩包,会得到一个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的修改:

<uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="25" />

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

        <!--
            离线功能即离线语法及唤醒词功能开启需要正式授权,正式授权完全由SDK自动管理:
            1. 在百度语音开放平台注册应用,http://yuyin.baidu.com/app
            2. 给在百度语音开放平台注册应用绑定包名。本demo的包名是com.baidu.speech.recognizerdemo,在build.gradle文件中查看。
            3. 在当前应用的AndroidManifest.xml中填写相应的APP_ID API_KEY SECRET_KEY
            4. 首次使用联网。正式授权目前有效期三年,三年之后的最后一个月尝试更新正式授权。
            另外需要注意的是优先在线识别,即离线语法识别功能在在线(包括2G网络)的情况下自动不启用。。
        -->
        <!-- 请填写真实的APP_ID API_KEY SECRET_KEY-->

        <meta-data
            android:name="com.baidu.speech.APP_ID"
            android:value="自己的appid" />
        <!--android:value="9788136" />-->
        <!-- 再次重复!!填写APP_ID 时请检查在官网的该应用内是否设置了包名。否则会导致唤醒词及离线功能无法使用。
         本demo的包名是com.baidu.speech.recognizerdemo,在build.gradle文件中查看。 -->
        <!-- 正式发布时,请替换成您自己的appId 本demo的appId会不定时下线 -->
        <meta-data
            android:name="com.baidu.speech.API_KEY"
            android:value="自己的appkey" />
            <!--android:value="0GjQNO5H4pGPf9HyA3AmZEbz" />-->
        <meta-data
            android:name="com.baidu.speech.SECRET_KEY"
            android:value="自己的select_key" />
            <!--android:value="db981ef3ec647ba8a09b599ad7447a24" />-->
        <service
            android:name="com.baidu.speech.VoiceRecognitionService"
            android:exported="false" />
        <activity
            android:name="com.baidu.android.voicedemo.activity.ActivityMain"
            android:configChanges="orientation|keyboardHidden|screenLayout"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.DeviceDefault.Light">
        </activity>
       。。。
    </application>

最后应该就可以只用了,最好自己再封装一个工具类,将语音识别的环境初始化过程和调用的方法封装进去,使用就更方便了,我自己封装的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<String, Object> 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();
    }

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值