当前位置: 首页 > article >正文

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

whisper.cpp: Android端测试

    • 1.环境需要
    • 2.构建项目
    • 3.Android测试


1.环境需要

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

(1)PC:Ubuntu 22.04.4

(2)硬件设备:Android 手机

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

工具版本安装
Anaconda2021.05参考:Anaconda3安装及使用
cmake3.26.0conda install -c conda-forge cmake
make4.4.1conda install -c conda-forge make
ndkandroid-ndk-r26c官网下载解压,设置环境变量
adb1.0.41conda install -c conda-forge adb
git2.34.1sudo apt-get update
sudo apt-get install git
git-lfs3.6.0sudo apt-get install git-lfs

2.构建项目

(1)克隆项目:

git lfs install
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp

(2)下载模型:

# 修改脚本./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构建:

# 构建适用于 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设备连接:

$ adb devices

(2)push文件到设备:

$ 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)设备上运行:

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

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

# mp3转wav
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav

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


http://www.kler.cn/a/451252.html

相关文章:

  • 水电站视频智能监控系统方案设计与技术应用方案
  • 单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?
  • uniapp Native.js原生arr插件服务发送广播到uniapp页面中
  • Datawhale AI 冬令营学习笔记-零编程基础制作井字棋小游戏
  • 重塑数字文档处理:TX Text Control的2024年里程碑
  • CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践
  • 独一无二,万字详谈——Linux之文件管理
  • 虚幻引擎结构之UWorld
  • 16.1、网络安全风险评估过程
  • 基于Spring Boot的九州美食城商户一体化系统
  • HTML+CSS+JS制作外贸网站(内附源码,含5个页面)
  • 3.学习webpack配置 尝试打包ts文件
  • 【Git】-- 版本说明
  • 每天40分玩转Django:Django国际化
  • 【Kibana01】企业级日志分析系统ELK之Kibana的安装与介绍
  • 学习一下USB DFU
  • AI驱动的数据分析:利用自然语言实现数据查询到可视化呈现
  • 2.在 Vue 3 中使用 ECharts 实现动态时间轴效果
  • Android Studio打开一个外部的Android app程序
  • embeding 层到底是什么
  • YOLOv8 引入高效的可变形卷积网络 DCNv4 | 重新思考用于视觉应用的动态和稀疏算子
  • 【hackmyvm】BlackWidow靶机wp
  • MongoDB教程002:文档(表)的增删改查
  • 如何在防火墙上指定ip访问服务器上任何端口呢
  • websocket再项目中的使用
  • java提高正则处理效率