当前位置: 首页 > news >正文

Unity打包Android平台调用sherpa-onnx

https://github.com/xue-fei/sherpa-onnx-unity

最初测试了PC的Win和Linux平台,直接从nuget缓存包中拷贝相关文件,按示例写了语音转文字和文字转语音的测试代码,功能都正常。

在这里插入图片描述

然后是Android端,看了示例发现有编译好的jni.so之类的,装AndroidStudio建library一顿折腾,发现这种方法怕是要写很多Java代码,而且Unity里也要写很多代码,挺费劲,翻了翻 Issues 发现有预编译针对Android的libsherpa-onnx-cxx-api.so和libsherpa-onnx-c-api.so 等,sherpa-onnx-v1.10.46-android.tar.bz2 拷贝进Unity直接使用

在这里插入图片描述

对于打包安卓的相关修改,勾选了两个模板

在这里插入图片描述
mainTemplate.gradle 忽略了模型相关文件

apply plugin: 'com.android.library'
**APPLY_PLUGINS**

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
**DEPS**}

android {
    compileSdkVersion **APIVERSION**
    buildToolsVersion '**BUILDTOOLS**'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion **MINSDKVERSION**
        targetSdkVersion **TARGETSDKVERSION**
        ndk {
            abiFilters **ABIFILTERS**
        }
        versionCode **VERSIONCODE**
        versionName '**VERSIONNAME**'
        consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
    }

    lintOptions {
        abortOnError false
    }

    aaptOptions {
        noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ')
        //ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
		ignoreAssetsPattern = 'sherpa-onnx-punct-ct-transformer-zh-en-vocab272727-2024-04-12:sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20:vits-melo-tts-zh_en:!silero_vad.onnx'
    }**PACKAGING_OPTIONS**
}**REPOSITORIES**
**IL_CPP_BUILD_SETUP**
**SOURCE_BUILD_SETUP**
**EXTERNAL_SOURCES**

gradleTemplate.properties 注释了android.enableR8

org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M
org.gradle.parallel=true
#android.enableR8=**MINIFY_WITH_R_EIGHT**
unityStreamingAssets=**STREAMING_ASSETS**
**ADDITIONAL_PROPERTIES**

最后放上一张Android运行截图

在这里插入图片描述

相关文章:

  • 【VUE2】第五期——VueCli创建项目、Vuex多组件共享数据、json-server——模拟服务端api
  • MySQL隐式依赖引发的字段长度溢出:一次触发器事故的深度剖析
  • RK3588 openssl-3.4.1 编译安装
  • esProc SPL vs DuckDB:多源数据处理谁更胜一筹?
  • 编程自学指南:java程序设计开发,反射与注解,反射机制,注解
  • 【商城实战(31)】从0到1:商城项目部署全攻略
  • 提升模型准确性的关键技术与实践指南
  • Qt5中视口(ViewPort)与窗口(Window)
  • WordPress顶部菜单自定义的方法
  • Android studio运行报错处理
  • 反射、反射调用以及修改成员变量,成员方法,构造函数、反射的应用
  • Ubuntu22.04 安装 Isaac gym 中出现的问题
  • jEasyUI 基本的拖动和放置
  • JPom使用Docker方式构建SpringBoot项目详解
  • 从被动响应到主动防御——IT 应急演练平台 v3.0.1 重构企业安全免疫系统
  • PHP:从入门到进阶的全方位指南
  • 在 Django 中通过 `/media/xxxx` URL 访问上传资源的安全性与实践
  • 原生微信小程序实现导航漫游(Tour)
  • 鸿蒙开发:了解应用级配置信息
  • CUDA编程(6):CUDA流、并发内核执行、重叠核函数执行与内核传输、流回调
  • 第二期人工智能能力建设研讨班在京开班,近40国和区域组织代表参加
  • “饿了么”枣庄一站点两名连襟骑手先后猝死,软件显示生前3天每日工作超11小时
  • 种罂粟喂鸡防病?四川广元一村民非法种植毒品原植物被罚​
  • 巴军事行动致印度70%电网瘫痪
  • 三大猪企4月生猪销量同比均增长,销售均价同比小幅下降
  • “浦东时刻”在京展出:沉浸式体验海派风情