首先第一步 注册你的应用。如图进入官网。
(登入百度账号)依次点击左上角应用管理、创建新应用(如下界面)。按提示输入、然后选择需要的SDK 这里因为只做识别所以只下载语音识别的SDK
如下图 下载这个包。
发布时间是2016-6-24的、
下载好之后压缩包里面是这样的
如果你是用eclipse直接跑demo吧、如果是Android Studio继续往下看吧。
切换到project视图
好了 先别说别的 先把 libs下的VoiceRecognition-2.1.20.jar和armeabi拷贝到上图app的libs下
然后把demo下的assets文件夹拷贝到app\main下
只要baidu_speech_grammar.bsg和WakeUp.bin这2个文件。另外2个txt不要。
demo下的res拷贝到app\main下提示冲突的覆盖就好。或者你直接把这个project的res删了用baidu的
然后再build.gradle中的android内添加如下代码 (引用libs下的armeabi内的so文件)
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
再在dependencies内添加如下代码 (导入jar包)
compile files('libs/VoiceRecognition-2.1.20.jar')
添加完之后大概像这样
sdk版本不一样很正常。只要添加那2个就好了。
好了 工作做到这里 完成一部分了。。
然后打开官方下载的那个demo
把这些全拷贝到
这个位置 你的project里面应该还有一个MainActicity
那个16k_test.pcm是语义唤醒的文件 没有打不开语义唤醒界面。
这时候把他们的包名全改成和MainActivity一样
官方的是 package com.baidu.android.voicedemo;
你的包名去MainActivity里面的第一行可以看到
之后是重要的了。。配置 AndroidManifest.xml
这里贴出我的AndroidManifest
xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="你的包名">
//以下5行为权限 <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 android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">
//下面的APPID、APIKEY和SECRETKEY
我们先回到官方的应用管理界面。刚才创建的应用
点击管理包名输入你的AndroidManifestx下的包名
然后点查看key就能看到下图对话框
用你的key替换下面的3个KEY <meta-data android:name="com.baidu.speech.APP_ID" android:value="APPID" /> <meta-data android:name="com.baidu.speech.API_KEY" android:value="APIKEY" /> <meta-data android:name="com.baidu.speech.SECRET_KEY" android:value="SECRETKEY" /> <service android:name="com.baidu.speech.VoiceRecognitionService" android:exported="false" />
下面这个activity必须要有。。否则点击开始无法弹出语音识别框
<activity android:name="com.baidu.voicerecognition.android.ui.BaiduASRDigitalDialog" android:configChanges="orientation|keyboardHidden|screenLayout" android:exported="false" android:screenOrientation="portrait" android:theme="@android:style/Theme.Dialog"> <intent-filter> <action android:name="com.baidu.action.RECOGNIZE_SPEECH" /> <category android:name="android.intent.category.DEFAULT" /> intent-filter> activity>
上面这个activity必须要有。。否则点击开始无法弹出语音识别框
下面就是普通的注册了。没什么好说的。。一个启动界面其他几个附属界面 <activity android:name=".ActivityMain" android:configChanges="orientation|keyboardHidden|screenLayout" android:screenOrientation="portrait" android:theme="@android:style/Theme.DeviceDefault.Light"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> intent-filter> activity> <activity android:name=".ApiActivity" android:configChanges="orientation|keyboardHidden|screenLayout" android:label="普通模式(API方式和UI方式)" android:screenOrientation="portrait" android:theme="@android:style/Theme.DeviceDefault.Light"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="com.baidu.speech.recognizerdemo.intent.category.SAMPLE_CODE" /> intent-filter> activity> <activity android:name=".ActivityWakeUp" android:configChanges="orientation|keyboardHidden|screenLayout" android:label="语义唤醒" android:screenOrientation="portrait" android:theme="@android:style/Theme.DeviceDefault.Light"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="com.baidu.speech.recognizerdemo.intent.category.SAMPLE_CODE" /> intent-filter> activity> <activity android:name=".ActivityOffline" android:configChanges="orientation|keyboardHidden|screenLayout" android:label="离线语法" android:screenOrientation="portrait" android:theme="@android:style/Theme.DeviceDefault.Light"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="com.baidu.speech.recognizerdemo.intent.category.SAMPLE_CODE" /> intent-filter> activity> <activity android:name=".Setting" android:configChanges="orientation|keyboardHidden|screenLayout" android:label="设置" android:screenOrientation="portrait" android:theme="@android:style/Theme.DeviceDefault.Light"> <intent-filter> <action android:name="com.baidu.speech.asr.demo.setting" /> <category android:name="android.intent.category.DEFAULT" /> intent-filter> activity> <uses-library android:name="android.test.runner" /> application> manifest>
如果KEY对的话应该是能跑起来的。
以上。。
综合几个跑不起来的原因。
1、jar没导入
2、so文件没导入
3、assest没拷进去
4、AndroidManifest没有配置对
就酱0.0
纪念第一篇博客。。。
以后的路还很长
gg
晚安 世界
2016年8月29日 00:33:19