whisper.cpp: Android端测试 -- Android端手机部署音频大模型

whisper.cpp: Android端测试


1.环境需要

以下是经实验验证可行的环境参考,也可尝试其他版本。

(1)PC:Ubuntu 22.04.4

(2)硬件设备:Android 手机

(3)软件环境:如下表所示

工具 版本 安装
Anaconda 2021.05 参考:Anaconda3安装及使用
cmake 3.26.0 conda install -c conda-forge cmake
make 4.4.1 conda install -c conda-forge make
ndk android-ndk-r26c 官网下载解压,设置环境变量
adb 1.0.41 conda install -c conda-forge adb
git 2.34.1 sudo apt-get update
sudo apt-get install git
git-lfs 3.6.0 sudo apt-get install git-lfs

2.构建项目

(1)克隆项目:

shell 复制代码
git lfs install
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp

(2)下载模型:

shell 复制代码
# 修改脚本./models/download-ggml-model.sh:
#      替换huggingface.co为镜像网站hf-mirror.com(因不能访问外网)
#src="https://huggingface.co/ggerganov/whisper.cpp"
src="https://hf-mirror.com/ggerganov/whisper.cpp"
    #src="https://huggingface.co/akashmjn/tinydiarize-whisper.cpp"
    src="https://hf-mirror.com/akashmjn/tinydiarize-whisper.cpp"

# 下载模型:下载其中一个 Whisper 模型 转换为 ggml 格式。例如:
sh ./models/download-ggml-model.sh base.en

(3)Android构建:

shell 复制代码
# 构建适用于 Android 的版本
$ cmake \
  -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI=arm64-v8a \
  -DANDROID_PLATFORM=android-28 \
  -DCMAKE_C_FLAGS="-march=armv8.7a" \
  -DCMAKE_CXX_FLAGS="-march=armv8.7a" \
  -DGGML_OPENMP=OFF \
  -DGGML_LLAMAFILE=OFF \
  -B build-android
  
$ cmake --build build-android --config Release -j{n}
$ cmake --install build-android --prefix ${install-dir} --config Release
$ cp build-android/bin ${install-dir}

3.Android测试

(1)设备连接:确认设备连接好了,使用以下命令查看是否有adb设备连接:

shell 复制代码
$ adb devices

(2)push文件到设备:

shell 复制代码
$ adb shell "mkdir /data/local/tmp/whisper.cpp"
$ adb push ${install-dir} /data/local/tmp/whisper.cpp/
$ adb push ./models /data/local/tmp/whisper.cpp/
$ adb push ./samples /data/local/tmp/whisper.cpp/

(3)设备上运行:

shell 复制代码
$ adb shell
$ cd /data/local/tmp/whisper.cpp
$ export LD_LIBRARY_PATH=lib ./bin/main -f ${audio_file_16bit.wav}

注意,main示例仅使用 16 位 WAV 运行,因此请确保音频是此格式文件,如不是请转换格式。例如:

shell 复制代码
# mp3转wav
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav

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

相关推荐
Dwyane032 小时前
Android实战经验篇-AndroidScrcpyClient投屏一
android
FlyingWDX2 小时前
Android 拖转改变视图高度
android
_可乐无糖2 小时前
Appium 检查安装的驱动
android·ui·ios·appium·自动化
一名技术极客4 小时前
Python 进阶 - Excel 基本操作
android·python·excel
我是大佬的大佬5 小时前
在Android Studio中如何实现综合实验MP3播放器(保姆级教程)
android·ide·android studio
lichong9515 小时前
【Flutter&Dart】MVVM(Model-View-ViewModel)架构模式例子-http版本(30 /100)
android·flutter·http·架构·postman·win·smartapi
刘争Stanley5 小时前
Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普
android·linux·运维·内核·镜像·gki·kmi
五味香6 小时前
Java学习,List截取
android·java·开发语言·python·学习·golang·kotlin
m0_748246616 小时前
Ubuntu22部署MySQL5.7详细教程
android·adb
xvch15 小时前
Kotlin 2.1.0 入门教程(三)
android·kotlin