注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
lb8820265的个人空间 https://home.eeworld.com.cn/space-uid-527961.html [收藏] [复制] [分享] [RSS]
日志

简单的语言交互(2)--百度语音唤醒

已有 6027 次阅读2016-11-25 00:54 |个人分类:我的小车| 百度, 语音, 唤醒, demo

前面简要的介绍了讯飞语音和百度语音,讯飞语音优点多多,但是百度语音唤醒免费,那么接下面就来从一个空白工程开始,新建一个百度语音唤醒工程

使用Android Studio 2.X新建一个android V4.4版本空白工程,软件名BD_Voice,包名com.libin.bd_voice

然后去http://yuyin.baidu.com/app选择“创建新应用”,填好软件名,包名,选择语音识别,下载SDK包,SDK包中是一个简单的Demo以及工程,是用Eclipse编写的,用AS打不开。将下载下来的SDK包中的\demo\libs路径中将VoiceRecognition-2.1.20.jar文件复制到新建的工程路径BD_Voice\app\libs中。SDK\demo\libs路径中arm64-v8aarmeabi两个文件夹复制到新建工程路径BD_Voice\app\src\main\jniLibs中,如果没有jniLibs文件夹新建即可。在路径BD_Voice\app\src\main中新建assets文件夹,可以将SDK包中的WakeUp.bin文件复制进去,该文件包含“小度你好”,“百度一下”两个唤醒此,当然可以自己设置,在http://yuyin.baidu.com/wake#m4 中自定义唤醒此,最多只能定义三个,然后导出成为WakeUp.bin文件,将此文件复制到assets文件夹中即可。

在新建的工程中左边导航栏切换为Project视图模式,找到VoiceRecognition-2.1.20.jar然后右击选择“Add As Library…”,在AndroidManifest.xml文件中添加权限如下:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<
uses-permission android:name="android.permission.INTERNET" />
<
uses-permission android:name="android.permission.READ_PHONE_STATE" />
<
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Application中添加配置信息如下:

<meta-data android:name="com.baidu.speech.APP_ID" android:value="6536447"/>
<meta-data android:name="com.baidu.speech.API_KEY" android:value="8MAxI5o7VjKSZOKeBzS4XtxO"/>
<meta-data android:name="com.baidu.speech.SECRET_KEY" android:value="Ge5GXVdGQpaxOmLzc8fOM8309ATCz9Ha"/>
<service android:name="com.baidu.speech.VoiceRecognitionService" android:exported="false" />

其中的三个配置信息在http://yuyin.baidu.com/app 中找到之前新建好的BD_Voice工程,然后点击后面的“查看key”即可看到,不同的用户创建的工程Key不一样,需要替换上面的配置。

在布局文件activity_main.xml中将布局修改为线性布局,然后添加如下代码:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="请说唤醒词:LB开灯 LB关灯 LB你好" />
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textSize="12dp"
        android:id="@+id/txtLog" />
</ScrollView>
MainActivity.java创建语音唤醒功能步骤如下:

1. 创建唤醒事件管理器

mWpEventManager = EventManagerFactory.create(MainActivity.this, "wp");

2. 注册唤醒事件监听器

mWpEventManager.registerListener(new EventListener() {
   
@Override
   
public void onEvent(String name, String params, byte[] data, int offset, int length) {

}

});

3.启动唤醒功能

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);

4.停止唤醒监听

mWpEventManager.send("wp.stop", null, null, 0, 0);

    全部源代码详见帖子最后,工程中BD_Voice.apk是编译好的安装包文件,安装后直接对着手机说“LB开灯”,“LB关灯”,“LB你好”就会在屏幕上显示唤醒词语,说其他词语没有反应,效果如下图:

工程源码:https://github.com/flyloong/Baidu-Voice

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章