科大讯飞 · 集成语音合成

科大讯飞 · 集成语音合成


前言

  由于项目需要语音提示的功能,于是在网上搜索相关的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,一定要做的灵活运用。

参考资料

Android Studio 科大讯飞语音合成接口 整合教程

猜你喜欢

转载自blog.csdn.net/liangfeng093/article/details/79293749
今日推荐