一、引言
利用百度语音识别和百度语音合成可以很方便的设计一个语音交互应用,这里记录一下百度在线语音识别的简单例子以便快速上手。
我所用的语音识别包的版本是Baidu-Voice-SDK-Android-1.6.2.zip,开发平台用的是Android Studio 1.3.2,操作系统是win10(64bit)。
二、导入语音识别SDK
下载的百度语音包目录结构如下:
VoiceRecognitionDemo文件夹里是一个demo
libs和res目录就是我们要导入的库文件
1、将libs和res文件夹拷到相应目录
先将libs文件夹整个复制到工程文件夹下,比如我的Android Studio设置的工作空间为D:\Android\workspace\,我新建一个应用名为testvoice,那我就把libs文件复制到D:\Android\workspace\Testvoice\app目录下。也可以先复制libs,然后在Android Studio中工程目录中选中app文件夹,右键选择Paste,直接将libs文件夹粘贴过来。
再把资源文件夹res拷到D:\Android\workspace\Testvoice\app\src\main文件夹下
注意,这里仅仅只是将文件夹拷过来而已,.jar和.so都还未能导入到工程中。
2、将libs中的.jar和.so添加为库文件
在Android Studio的Project视图下打开Testvoice/app/libs文件夹可以看到Baidu-SpeechRecognitionUI-SDK-Android-1.6.2.jar,右键单击它选择Add as library,然后在出现的Create Library对话框中选择一个module,我这里当然选择app这个module了。
然后我们还需要引入.so文件,这个时候就需要修改build.gradle配置文件了,在android语句块内紧跟buildTypes语句块添加两个语句块如下:
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$projectDir/libs")
baseName "Native_Libs2"
extension "jar"
from fileTree(dir: "libs", include: "armeabi/*.so")
into "lib"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
注意:这里面语句
from fileTree(dir: "libs", include: "armeabi/*.so")
armeabi/*.so是需要根据.so文件的路径来改的,由于我的.so文件都放在libs子文件夹armeabi中,所以斜杠前面写的是armeabi。
完整的build.gradle文件如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.example.zjl.testvoice"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
task