这篇文章我们主要介绍一下,百度语音唤醒。所谓语音唤醒是指说出指定的语音指令(自定义的唤醒词),使程序激活某个功能的能力。百度语音唤醒支持自定义唤醒词。我做过讯飞的语音唤醒,这两个比较起来,讯飞的语音唤醒整体效果比百度要好。百度的语音唤醒功能需要使用唤醒词评估工具评估和导出唤醒资源,也就是一个名字为WakeUp.bin的文件,在评估唤醒词的过程中,对于不建议用作唤醒词的词语,唤醒效果不好。而讯飞的语音唤醒词中没有评估这一步,二是直接导出一个*.jet的文件。使用同样的唤醒词在两个平台上分别测试,总体还是讯飞更好。

我们这里介绍百度的语音唤醒的主要目的在于,百度语音唤醒是免费的,好像免费的时间也不太长。

百度语音唤醒SDK和lib文件是和语音识别在一起的,上篇博文我已经介绍了关于百度语音识别相关内容,这里我就不重复了。如果大家有疑问可以看一下这篇博文。这里还要注意一点是,我们需要将上面自定义的唤醒词,也就是通过百度导出的WakeUp.bin文件放到Android工程的assets目录下。SDK会到这一目录下寻找这个文件,如果没有,你的唤醒功能将不能够实现。

百度语音唤醒功能实现主要有三个步骤:

步骤一:创建唤醒时间管理器

EventManager wakeup = EventManagerFactory.create(ActivityWakeUp.this, "wp");

步骤二:注册唤醒时间监听器

mWpEventManager.registerListener(new EventListener() {@Overridepublic 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{@Overridepublic 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);}}}

相比讯飞的语音唤醒,百度的语音唤醒的代码还是比较简单的,有过有时间我会把讯飞的语音唤醒整理出来。由于百度语音唤醒开放时间比较短,网上的资源也比较少,目前只有这么多,希望以上内容对你有所帮助。

版权说有,转载希望表明出处,谢谢!!

Android——百度语音唤醒相关推荐

  1. android 百度唤醒,Android百度语音唤醒(has no license,错误码11002)

    背景:1,前段时间做了百度的语音合成,2,后来又做了语音听写,3,现在要做语音唤醒 问题: 语音唤醒的代码,总是提示"has no license",很是郁闷,明明"语音 ...

  2. 安卓(Android)开发百度语音唤醒(识别)

    安卓(Android)开发百度语音唤醒(识别) 目录 安卓(Android)开发百度语音唤醒(识别) 一:准备 1:获取自定义唤醒词 2:SDK下载 3:将bdasr_V3_xxx_xxx.jar引入 ...

  3. Android百度语音集成——文字转语音

    项目涉及文字转语音的需求,用Android原生提供的TTS生成的语音太单调,机器声音太明显,故寻求第三方更好的支持,用科大讯飞的语音包收费,百度语音免费而且不限制调用次数,主页鲜明说永久免费的智能语音 ...

  4. android 百度语音 对话框,Android 通过调用系统接口使用如 谷歌语音、百度语音、讯飞语音等语音识别对话框的方法...

    现在app的开发进程会集成一些语音识别功能,而一般开发者是不具备自己开发一套语音识别引擎的,因此大多数情况是选择一个已经成熟的语音识别引擎SDK集成到自己的app中. 通常情况下,这种集成分两种,一种 ...

  5. android 百度语音 ui,在Android Studio下使用百度语音识别的一个简单例子

    一.引言 利用百度语音识别和百度语音合成可以很方便的设计一个语音交互应用,这里记录一下百度在线语音识别的简单例子以便快速上手. 我所用的语音识别包的版本是Baidu-Voice-SDK-Android ...

  6. android 百度语音转换工具,百度语音版app下载-百度语音版 安卓版v10.0.10.11-PC6安卓网...

    百度语音版app是一款装机必备应用客户端,百度语音版app来自百度为你打造的更智能的语音交互功能,给您更便捷的搜索体验,有了百度语音版app,告别广告干扰,给您更纯净的资讯阅读环境. 软件介绍 百度语 ...

  7. android 科大讯飞语音唤醒demo

    demo地址:https://gitee.com/longlyblack_admin/VoiceCallSecondDemo API文档地址:http://mscdoc.xfyun.cn/androi ...

  8. android百度语音导航开放

    先看一下完成后的效果图,和从百度下载的Demo是一样的(强调一点:下载好的工程导入到studio后还是不能直接用的,还需要自己去申请AK然后配置到自己的manifest文件中,Demo中自带的不能用) ...

  9. Android——讯飞语音唤醒简介及实现

    前段时间写了一个关于百度语音唤醒文章,最近有做了一个讯飞语音的应用,在这里把学习的资料整理一下. 唤醒的整个过程如下: (图源自讯飞官网) 讯飞的语音唤醒功能实现起来挺方便的(相比百度,百度语音And ...

最新文章

  1. Mac OS X 下mysql配置备忘
  2. 8.Deep Interest Evolution Network for Click-Through Rate Prediction论文详解
  3. Color Picker like PhotoShop
  4. .NET Core 2.1改进了性能,并提供了新的部署选项
  5. 计算机组成原理 — 总线系统
  6. CSS3 flexbox 布局 ---- flex项目属性介绍
  7. servlet 中 out.println(中文) 乱码 问题
  8. Git 常用命令(二)
  9. java jsr_分叉并加入Java 7 – JSR 166并发实用程序
  10. viewpager 自定义翻页效果_Android RecyclerView自定义LayoutManager
  11. 入局视频会议市场 揭秘“腾讯会议”背后的创新黑科技
  12. spark 读取多个路径_spark
  13. BUG——Celery ValueError: not enough values to unpack
  14. linux系统修复找不到原安装,Linux 系统用安装盘来修复GRUB 详解
  15. 如何对建模型数据进行预处理
  16. [转载]Linux shell中的竖线(|)——管道符号
  17. xlsread错误使用matlab,运行显示错误使用xlsread,未找到文件
  18. android blowfish加密算法,blowfish 现在哪种加密算法安全?A
  19. 游戏数据库 mysql_网络游戏_数据库查询
  20. Audio AudioFocus流程

热门文章

  1. 口袋理财:“来了就是深圳人?”全国均价最高的房租了解一下
  2. 服务交付服务规范十要素
  3. 怎么学习CAD?初学CAD如何入门
  4. 故事-湘西:老大与老二分家
  5. mac创建快捷新建文本方式
  6. 利用SwipeRefreshLayout实现类似知乎客户端的一打开界面就自动刷新的效果
  7. 记一次hadoop namenode 启动失败问题及解决过程(启动几秒钟后又挂了)
  8. 16.【Linux】window和linux下文件格式相互转换
  9. lopa分析_保护层分析(LOPA)
  10. 挖掘机技术到底哪家强?这个问题终于有答案了!!