更多内容:XiaoJ的知识星球
目录
- 1.Android环境
- 1)Android Studio安装
- 2)NDK安装
- 2.构建sherpa-ncnn (C++代码)
- 1)为 arm64-v8a 构建
- 其他ABI构建:。。。
- 3.下载预训练模型
- 1)下载预训练
- 2)使用其他模型:
- 4.生成 APK
- 0)替换gradle镜像:
- 1)Android studio(Linux) 构建 APK
克隆仓库:
git clone https://github.com/k2-fsa/sherpa-ncnn# 进入工程目录进行以下操作
cd sherpa-ncnn
.
1.Android环境
1)Android Studio安装
(1)安装你的Android Studio,请参阅 https://developer.android.com/studio
(2)设置环境变量:
export MY_ENV_HOME=$HOME/Envexport AS_DIR=$MY_ENV_HOME/App/Android_Studio/android-studio-2022.1.1.19
export ANDROID_HOME=$MY_ENV_HOME/App/Android_Studio/Android-2022.1.1.19
export ANDROID_NDK=$ANDROID_HOME/Sdk/ndk/28.0.12674087
export ANDROID_NDK_HOME=$ANDROID_HOME/Sdk/ndk/28.0.12674087
export PATH=$PATH:$AS_DIR/bin
2)NDK安装
(1)安装你的Android NDK,请参阅:。。。
(2)设置环境变量:
export ANDROID_NDK=<path>/ndk/22.1.7171670
.
2.构建sherpa-ncnn (C++代码)
目前支持以下 Android ABI 构建 sherpa-ncnn :
-
arm64-v8a
-
armeabi-v7a
-
x86_64
-
x86
1)为 arm64-v8a 构建
(1)github访问失败问题:修改为镜像(kkgithub.com)
# 修改github地址:避免访问github失败,下载库失败vi cmake/kaldi-native-fbank.cmake# Please also change ../pack-for-embedded-systems.sh#set(kaldi_native_fbank_URL "https://github.com/csukuangfj/kaldi-native-fbank/archive/refs/tags/v1.18.7.tar.gz")set(kaldi_native_fbank_URL "https://kkgithub.com/csukuangfj/kaldi-native-fbank/archive/refs/tags/v1.18.7.tar.gz")vi cmake/ncnn.cmake# the latest master as of 2025.01.06#set(ncnn_URL "https://github.com/Tencent/ncnn/archive/39cf4f6018a49d59deec1ae3133fabe602370131.zip")set(ncnn_URL "https://kkgithub.com/Tencent/ncnn/archive/39cf4f6018a49d59deec1ae3133fabe602370131.zip")
(2)构建arm64-v8a版so:
# 构建
./build-android-arm64-v8a.sh# 构建成功,则存在如下so
ls build-android-arm64-v8a/install/lib/lib*.sobuild-android-arm64-v8a/install/lib/libkaldi-native-fbank-core.so build-android-arm64-v8a/install/lib/libsherpa-ncnn-core.sobuild-android-arm64-v8a/install/lib/libncnn.so build-android-arm64-v8a/install/lib/libsherpa-ncnn-jni.so
(3)so复制到Android工程:
cp build-android-arm64-v8a/install/lib/lib*.so android/SherpaNcnn/app/src/main/jniLibs/arm64-v8a/
其他ABI构建:。。。
.
3.下载预训练模型
请阅读 预训练模型 了解所有可用的预训练模型。
在下文中,我们使用 https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-06 的预训练模型。
1)下载预训练
下载预训练模型模型并将其放入 android/SherpaNcnn/app/src/main/assets/
中:
cd android/SherpaNcnn/app/src/main/assets/sudo apt-get install git-lfs# 不能访问huggingface,修改为镜像访问
#GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-06
GIT_LFS_SKIP_SMUDGE=1 git clone https://hf-mirror.com/csukuangfj/sherpa-ncnn-conv-emformer-transducer-2022-12-06
cd sherpa-ncnn-conv-emformer-transducer-2022-12-06
git lfs pull --include "*.bin"# Now, remove extra files to reduce the file size of the generated apk
rm -rf .git test_wavs scripts/
rm export-for-ncnn.sh *.png README.md
2)使用其他模型:
如果您选择其他预训练模型,请确保还更改以下屏幕截图中列出的相应代码:
.
4.生成 APK
0)替换gradle镜像:
vi sherpa-ncnn/android/SherpaNcnn/gradle/wrapper/gradle-wrapper.properties# distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zipdistributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.4-bin.zip
1)Android studio(Linux) 构建 APK
# USB连接Android设备# 运行Android studio(Linux)studio.sh# 等待Android studio build :首次构建较慢,实测需56分钟# 点击:Run 'app' 图标# 同意APK安装及权限
# 打开APK -> START:开始检测语音 -> STOP:停止检测语音
预构建的 APK,可从huggingface或镜像网站中下载:
-
https://huggingface.co/csukuangfj/sherpa-ncnn-apk
-
https://hf-mirror.com/csukuangfj/sherpa-ncnn-apk
.
声明:资源可能存在第三方来源,若有侵权请联系删除!