[runtime/android] Add how to run on Android, and change onnxruntime to 1.12.1 (#111)

* add Usage

* LookupCustomMetadataMap() is deprecated in 1.13.1, so change to 1.12.1

Co-authored-by: weiliang <weiliang.chong@day-care.cn>
This commit is contained in:
veelion 2022-11-24 17:17:43 +08:00 committed by GitHub
parent 16e20ed0f2
commit 184e8a8da4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 3 deletions

27
runtime/android/README.md Normal file
View File

@ -0,0 +1,27 @@
# Usage
Most of AI engineers are not familiar with Android development, this is a simple how to.
1. Train your model with your data
2. Export pytorch model to onnx model
3. Convert onnx model for mobile deployment
```bash
python -m onnxruntime.tools.convert_onnx_models_to_ort your-model.onnx
```
you will get `your-model.ort` and `your-model.with_runtime_opt.ort`
4. Install Android Studio and open path of wekws/runtime/android and build
*NOTE:* The default feature_dim in code is 40, if your models is 80, change it here `./app/src/main/cpp/wekws.cc`
```C++
feature_config = std::make_shared<wenet::FeaturePipelineConfig>(40, 16000); // 40 -> 80
```
Its also can be built on Linux by runing `bash ./gradlew build`
5. Install `app/build/outputs/apk/debug/app-debug.apk` to your phone and try it.

View File

@ -45,8 +45,8 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.microsoft.onnxruntime:onnxruntime-mobile:latest.release'
extractForNativeBuild 'com.microsoft.onnxruntime:onnxruntime-mobile:latest.release'
implementation 'com.microsoft.onnxruntime:onnxruntime-mobile:1.12.1'
extractForNativeBuild 'com.microsoft.onnxruntime:onnxruntime-mobile:1.12.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
@ -70,4 +70,4 @@ tasks.whenTaskAdded { task ->
if (task.name.contains('externalNativeBuild')) {
task.dependsOn(extractAARForNativeBuild)
}
}
}