||
前面简要的介绍了讯飞语音和百度语音,讯飞语音优点多多,但是百度语音唤醒免费,那么接下面就来从一个空白工程开始,新建一个百度语音唤醒工程
使用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-v8a和armeabi两个文件夹复制到新建工程路径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你好”就会在屏幕上显示唤醒词语,说其他词语没有反应,效果如下图: