科大讯飞 · 集成语音合成
前言
由于项目需要语音提示的功能,于是在网上搜索相关的sdk。
目前,国内语音方面做得最好的应该是科大讯飞。
想使用科大讯飞的sdk,首先要注册成为讯飞开放平台的会员(注册登录不做赘述)。
具体可以查看(个人觉得不太友好)科大讯飞新手指南
我使用的是这个科大讯飞MSCAndroid版SDK的用户指南
一定要仔细看这个MSC Android API 文档
需要注意的是,科大讯飞并没有提供Gradle依赖的方式。而是给出了ADT环境下的集成方式。哔了狗!!!请问你们还考虑eclipse的兼容?(这也是我觉得不友好的地方)你光把.so文件粘贴到libs文件夹是没用的。编译的时候并不会编译科大讯飞的.so文件。(然而官方文档根本没提过这事!!!)
所以还需要配置gradle文件(配置在android{}里面):
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: "**/*.so")
into "lib"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
下面贴出完整的gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 26
buildToolsVersion '25.0.0'
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
defaultConfig {
applicationId "com.shtoone.hat"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
signingConfigs {
signing {
keyAlias '***'
keyPassword '*******'
storePassword '*******'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
repositories {
flatDir {
dirs 'libs'
}
}
/*科大讯飞start*/
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: "**/*.so")
into "lib"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
/*科大讯飞end*/
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile 'com.android.support:appcompat-v7:26.+'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
compile 'com.trello.rxlifecycle2:rxlifecycle-kotlin:2.2.1'
compile 'io.reactivex.rxjava2:rxkotlin:2.1.0'
}
结束语
一直都是听大佬们说gradle狠重要,但是并没有放在心上。因为平时对用gradle的使用也就是添加依赖,改一改sdk的版本之类的。连混淆都没用过(听说过很多遍)。包括上面的一些配置也是粘贴别人博客的,这些配置具体什么含义并不知道。以后会花时间去学习gradle,一定要做的灵活运用。