Android——百度语音唤醒
来源:互联网 发布:linux 虚拟文件 编辑:程序博客网 时间:2024/04/27 19:40
这篇文章我们主要介绍一下,百度语音唤醒。所谓语音唤醒是指说出指定的语音指令(自定义的唤醒词),使程序激活某个功能的能力。百度语音唤醒支持自定义唤醒词。我做过讯飞的语音唤醒,这两个比较起来,讯飞的语音唤醒整体效果比百度要好。百度的语音唤醒功能需要使用唤醒词评估工具评估和导出唤醒资源,也就是一个名字为WakeUp.bin的文件,在评估唤醒词的过程中,对于不建议用作唤醒词的词语,唤醒效果不好。而讯飞的语音唤醒词中没有评估这一步,二是直接导出一个*.jet的文件。使用同样的唤醒词在两个平台上分别测试,总体还是讯飞更好。
我们这里介绍百度的语音唤醒的主要目的在于,百度语音唤醒是免费的,好像免费的时间也不太长。
百度语音唤醒SDK和lib文件是和语音识别在一起的,上篇博文我已经介绍了关于百度语音识别相关内容,这里我就不重复了。如果大家有疑问可以看一下这篇博文。这里还要注意一点是,我们需要将上面自定义的唤醒词,也就是通过百度导出的WakeUp.bin文件放到Android工程的assets目录下。SDK会到这一目录下寻找这个文件,如果没有,你的唤醒功能将不能够实现。
百度语音唤醒功能实现主要有三个步骤:
步骤一:创建唤醒时间管理器
EventManager wakeup = EventManagerFactory.create(ActivityWakeUp.this, "wp");
步骤二:注册唤醒时间监听器
mWpEventManager.registerListener(new EventListener() { @Override public void onEvent(String name, String params, byte[] data, int offset, int length) { }});
步骤三:启动唤醒功能
HashMap params = new HashMap();params.put("kws-file", "assets:///WakeUp.bin"); // 设置唤醒资源, 唤醒资源请到 http://yuyin.baidu.com/wake#m4 来评估和导出mWpEventManager.send("wp.start", new JSONObject(params).toString(), null, 0, 0);
最后还有一点:关闭唤醒
mWpEventManager.send("wp.stop", null, null, 0, 0);
完整的代码如下:
package com.BDXCW;import java.util.HashMap;import org.json.JSONException;import org.json.JSONObject;import android.content.Context;import android.util.AndroidRuntimeException;import android.util.Log;import com.baidu.speech.EventListener;import com.baidu.speech.EventManager;import com.baidu.speech.EventManagerFactory;public class MyWakeUp { public static final String TAG = MyWakeUp.class.getSimpleName(); private EventManager mWpEventManager; private Context context; /** * 唤醒构造方法 * @param context 一个上下文对象 */ public MyWakeUp(Context context) { this.context = context; //create方法示是一个静态方法,还有一个重载方法EventManagerFactory.create(context, name, version) //由于百度文档没有给出每个参数具体含义,我们只能按照官网给的demo写了 mWpEventManager = EventManagerFactory.create(context, "wp"); //注册监听事件 mWpEventManager.registerListener(new MyEventListener()); } /** * 开启唤醒功能 */ public void start() { HashMap<String, String> params = new HashMap<String, String>(); // 设置唤醒资源, 唤醒资源请到 http://yuyin.baidu.com/wake#m4 来评估和导出 params.put("kws-file", "assets:///WakeUp.bin"); mWpEventManager.send("wp.start", new JSONObject(params).toString(), null, 0, 0); Log.d(TAG, "----->唤醒已经开始工作了"); } /** * 关闭唤醒功能 */ public void stop() { // 具体参数的百度没有具体说明,大体需要以下参数 // send(String arg1, byte[] arg2, int arg3, int arg4) mWpEventManager.send("wp.stop", null, null, 0, 0); Log.d(TAG, "----->唤醒已经停止"); } private class MyEventListener implements EventListener { @Override public void onEvent(String name, String params, byte[] data, int offset, int length) { try { //解析json文件 JSONObject json = new JSONObject(params); if ("wp.data".equals(name)) { // 每次唤醒成功, 将会回调name=wp.data的时间, 被激活的唤醒词在params的word字段 String word = json.getString("word"); // 唤醒词 /* * 这里大家可以根据自己的需求实现唤醒后的功能,这里我们简单打印出唤醒词 */ Log.d(TAG, word); } else if ("wp.exit".equals(name)) { // 唤醒已经停止 } } catch (JSONException e) { throw new AndroidRuntimeException(e); } } }
相比讯飞的语音唤醒,百度的语音唤醒的代码还是比较简单的,有过有时间我会把讯飞的语音唤醒整理出来。由于百度语音唤醒开放时间比较短,网上的资源也比较少,目前只有这么多,希望以上内容对你有所帮助。
版权说有,转载希望表明出处,谢谢!!
2 0
- Android——百度语音唤醒
- android应用百度语音识别、语音合成和语音唤醒
- android 百度语音识别(离在线)以及唤醒功能
- Android——百度语音识别
- BaiduSpeed百度语音唤醒语音识别语音合成
- Android语音识别——谷歌语音识别与百度语音识别
- 百度语音——语音识别(简易教程)
- Python——百度语音识别api
- Android 百度在线语音识别
- Android使用百度语音识别
- 百度语音识别-REST-android
- Android百度语音合成Demo
- Android百度(1)---百度语音集成指南
- 灵云语音唤醒
- 语音唤醒技术调研
- android 休眠唤醒机制分析— wake_lock
- Android 基于百度语音的语音交互功能
- 百度Android在线语音识别SDK使用方法
- DOM获取结点
- Python安装与学习资源
- codeforces724C. Ray Tracing(扩展欧几里得详解)
- C++基础笔记之九:运算符的优先级
- Linux常用命令
- Android——百度语音唤醒
- Qt窗口布局
- 如何设计一个简单的cache系统
- 修改docker时区
- Android中使用软件设计模式之观察者模式、Builder模式、单例模式、简单工厂模式
- 两个向量构成的平行四边形面积的求解 ————简单技巧
- linux的防火墙端口配置
- 另一种对外部样式表的获取、修改方法
- 如何避免Docker容器启动脚本运行后自动退出——一个cron定时任务docker镜像方案