sherpa-ncnn:构建Android APK -- 语音转文本大模型


更多内容:XiaoJ的知识星球



克隆仓库:

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/Env

export 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*.so
  build-android-arm64-v8a/install/lib/libkaldi-native-fbank-core.so 
  build-android-arm64-v8a/install/lib/libsherpa-ncnn-core.so
  build-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.zip
  distributionUrl=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

.


声明:资源可能存在第三方来源,若有侵权请联系删除!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值