1.在百度云官网注册,进入“语音技术”,开始创建你的应用。
2.创建完成以后在列表页面可以查看AppID,APIKEY,SecretKEY:如下(这个是关键,很有用)
3.下载百度云离线语音包https://ai.baidu.com/sdk#asr,Android版本;
4.查看百度云技术文档:https://cloud.baidu.com/doc/SPEECH/ASR-Android-SDK.html#DEMO.E5.8E.8B.E7.BC.A9.E5.8C.85.E8.AF.B4.E6.98.8E
DEMO压缩包说明
DEMO压缩包下载即可运行,其中DEMO内已经附带了SDK的库。
bdasr_V3_xxx_xxx.jar 位于 core/libs 目录下。
armeabi,armeabi-v7a,arm64-v8a,x86,x86_64
5个架构目录位于core/src/main/jniLibs 目录下
NDK so库架构,共计5个架构目录:armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,每个架构下均有以下5个so库文件。
资源名称资源大小
libBaiduSpeechSDK.so
libbd_easr_s1_merge_normal_20151216.dat.so
libbdEASRAndroid.so
libglobal.cmvn.so
libvad.dnn.so
5.先获取你需要的唤醒词:http://ai.baidu.com/tech/speech/wake?track=cp:ainsem|pf:pc|pp:chanpin-yuyin|pu:yuyin-yuyinhuanxing|ci:|kw:10003552
6.根据技术文档,在Android studio中新建assets文件夹和jniLibs文件夹,将相应文件放到文件夹中:
在bulid中加入:ndk { abiFilters"armeabi","arm64-v8a","x86_64","x86","armeabi-v7" }
然后在demo中复制java文件到项目中:
7.在配置文件中加入关键代码:(敲黑板最重要啊)
8.调用SDK
/**
* 设置语音唤醒功能
*/
private void setMyWakeup(){
handler =new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
handleMsg(msg);
}
};
MyLogger.setHandler(handler);
IWakeupListener listener =new RecogWakeupListener(handler);
myWakeup =new MyWakeup(MyService.this, listener);
}
/**
* 接收到唤醒词并唤醒成功
* @param msg
*/
private void handleMsg(Message msg){
if (msg.obj !=null) {
Log.d(TAG, "handleMsg: "+msg.obj.toString());
String name = msg.obj.toString();
if (name.indexOf("唤醒成功")!=-1){
Handler handler=new Handler(Looper.getMainLooper());
handler.post(() -> {
Intent intent =new Intent(MyService.this, VoiceActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
startActivity(intent);
});
}
}
}
/**
* 开启唤醒
*/
private void wakeUpStart() {
Map params =new HashMap<>();
params.put(SpeechConstant.WP_WORDS_FILE, "assets://WakeUp.bin");
myWakeup.start(params);
}