AI-基于sherpa-onnx集成各SST、ASR、TTS模型

目录

目标

步骤

下载安装Android Studio

下载安装sherpa-onnx

下载安装NDK

下载预编译的AI模型

编译生成APK

Pre-built APKs


目标

安卓平台上集成各SST、ASR、TTS预训练模型应用

步骤

1、下载安装Android Studio

https://developer.android.google.cn/studio?hl=zh-cn

image.png

2、下载安装sherpa-onnx

https://github.com/k2-fsa/sherpa-onnx

3、下载安装NDK

打开Android Studio,打开sherpa-onnx/android/SherpaOnnx.

image.png

image.png

image.png

设置环境变量ANDROID_NDK以供后续使用

export ANDROID_NDK=NDK路径

编译 sherpa-onnx (C++)

装完NDK,可以编译sherpa-onnx (C++),以编译 arm64-v8a安卓ABI为例

cd sherpa-onnx # Go to the root repo
./build-android-arm64-v8a.sh

编完可以发现如下动态库

ls -lh build-android-arm64-v8a/install/lib/

-rw-r--r--  1 fangjun  staff    15M Jul 28 12:54 libonnxruntime.so
-rwxr-xr-x  1 fangjun  staff   3.7M Jul 28 12:54 libsherpa-onnx-jni.so

把它们拷贝到 android/SherpaOnnx/app/src/main/jniLibs/arm64-v8a/

image.png

Note:也可以直接在如下网址下载编译好的动态库并替换

https://github.com/k2-fsa/sherpa-onnx/releases

4、下载预编译的AI模型

以sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20为例

如下网址找到该模型并下载

https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html#sherpa-onnx-pre-trained-models

只保留如下文件并复制到asserts路径下

image.png

5、编译生成APK

OnlineRecognizer.kt文件中确认模型对应哪个入参,这里对应的是0

image.png

在MainActivity中修改type值为0

image.png

adb连接终端,build APK进去并运行看效果

Screenshot_20241221_161059.png

Pre-built APKs

在如下网址可以找到已有预编译的APK,可自行安装体验

https://k2-fsa.github.io/sherpa/onnx/android/prebuilt-apk.html

Sherpa ONNX是一个用于将ONNX模型部署到移动设备(如Android)的工具包。ONNX是一种跨平台的机器学习模型交换格式,而Sherpa则是Facebook开源的一个轻量级模型优化和量化库。要在Android上整合Sherpa ONNX,你可以按照以下步骤操作: 1. **安装依赖**:首先,你需要在项目中添加SherpaONNX的相关依赖,通常通过Gradle将`com.facebook.sherpa:lib`和`com.facebook.onnx:onnx`库引入。 ```groovy dependencies { implementation 'com.facebook.sherpa:lib:<latest_version>' implementation 'com.facebook.onnx:onnx:<latest_version>' } ``` 记得替换 `<latest_version>` 为实际版本号。 2. **加载模型**:使用Sherpa的API从ONNX文件加载模型,并可能对模型进行优化或量化以适应移动设备资源限制。 ```java Model model = Model.loadFromOnnxFile("path_to_your_model.onnx"); Optimization optimization = new Optimization(model); optimizedModel = optimization.optimize(); ``` 3. **转换为TensorFlow Lite或TFLite Micro**:Sherpa支持将优化后的模型转换为TensorFlow Lite(tflite)格式,然后可以在Android平台上使用。 ```java Converter converter = new TfliteConverter(optimizedModel); byte[] tfliteModel = converter.convertToTflite(); ``` 4. **保存和加载模型**:最后,将生成的TFLite模型保存到Android应用的Assets目录或存储空间,然后在运行时动态加载并使用。 5. **在Android应用中使用**:利用Android的TensorFlow Lite API,在应用程序中加载并运行转换后的模型进行推理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值