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

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运行截图

在这里插入图片描述


http://www.kler.cn/a/585318.html

相关文章:

  • 【Devops】DevOps and CI/CD Pipelines
  • Qt5中视口(ViewPort)与窗口(Window)
  • ACwing—01背包(暴力bfs+dp+递归+记忆化搜索算法)
  • std::span
  • 【软考-架构】4.2、嵌入式软件-系统-RTOS-软件开发
  • 03.Python基础2
  • 【蓝桥杯集训·每日一题2025】 AcWing 4905. 面包店 python
  • Android LeakCanary使用与原理深度解析
  • R语言基础| 高级数据管理
  • mne溯源相关说明
  • ChatGPT、DeepSeek、Grok 三者对比:AI 语言模型的博弈与未来
  • RTSP/Onvif视频安防监控平台EasyNVR调用接口返回匿名用户名和密码的原因排查
  • Linux内核实时机制19 - RT调度器3 - 实时任务出入队
  • 【vLLM 学习】使用 TPU 安装
  • C++11 编译使用 aws-cpp-sdk
  • HTTP相关问题(AI回答)
  • 前端开发中的设计模式:装饰器模式的应用与实践
  • IDEA 一键完成:打包 + 推送 + 部署docker镜像
  • Python区块链应用开发从入门到精通
  • 深入理解 Python 中的进程池