昇腾CANN环境下Whisper.cpp安装指南

embedded/2024/11/26 13:48:37/

前置检查

确认昇腾AI处理器已经安装妥当

lspci | grep 'Processing accelerators'

 

❕务必确认操作系统架构及版本、Python版本满足要求

软件

版本

操作系统

openEuler20.03/22.03, Ubuntu 20.04/22.04

Python

3.8, 3.9, 3.10

uname -m && cat /etc/*release 

 python --version

确认驱动是否安装

npu-smi info

确认固件是否安装成功

#软件包默认安装路径:/usr/local/Ascend
#装详细日志路径:/var/log/ascend_seclog/ascend_install.log
cat /var/log/ascend_seclog/ascend_install.log
#安装后软件包的安装路径、安装命令以及运行用户信息记录路径:/etc/ascend_install.info
cat /etc/ascend_install.info

确认CANN是否安装成功

cat /usr/local/Ascend/ascend-toolkit/latest/arm64-linux/ascend_toolkit_install.info
cat /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/ascend_toolkit_install.info

一、Whisper.cpp 安装

1.1编译安装

cd /usr/local
#下载 Whisper.cpp 项目到本地
git clone https://github.com/ggerganov/whisper.cpp.git
#在 Whisper.cpp 项目目录下,创建构建目录并进入该目录
cd whisper.cpp 
mkdir build
cd build
source /usr/local/Ascend/ascend-toolkit/set_env.sh
#编译安装 CANN 版本的 Whisper.cpp
cmake .. -D GGML_CANN=on
make -j

1.2安装校验

编译完毕后,无任何报错信息,并输出以下关键回显即说明安装成功:

[ 90%] Built target quantize

[ 95%] Linking CXX executable ../../bin/main

[ 95%] Built target main

[100%] Linking CXX executable ../../bin/server

[100%] Built target server

二、使用脚本下载Whisper 模型

使用 Whisper.cpp 项目中的 download-ggml-model.sh 脚本下载预先转换为 gguf 格式的 Whisper 模型:

cd /usr/local/whisper.cpp/models
#如果无法下载模型,打开download-ggml-model.sh 脚本,更换默认的网址https://huggingface.co
#vi download-ggml-model.sh
./download-ggml-model.sh base.en

 三、语音文件预处理

使用 ffmpeg 转换所需处理的语音文件为 16 bit wav 语音文件,此处以 samples/jfk.mp3 为例:

cd ..
apt-get upgrade
apt-get install ffmpeg
ffmpeg -loglevel -0 -y -i samples/jfk.mp3 -ar 16000 -ac 1 -c:a pcm_s16le samples/jfk-test.wav

 四、自动语音识别

./build/bin/main -f samples/jfk-test.wav -m models/ggml-base.en.bin -t 8


http://www.ppmy.cn/embedded/140636.html

相关文章

非标自动化项目管理如何做

非标自动化项目管理的关键在于:深入理解客户需求、制定详细的项目计划、有效的资源调配、严格的质量控制、持续的风险管理、高效的沟通协调、灵活应对变更、项目总结与持续改进。深入理解客户需求是项目成功的基础。通过与客户的深入沟通,全面了解其生产…

[面试]-golang基础面试题总结

文章目录 panic 和 recover**注意事项**使用 pprof、trace 和 race 进行性能调试。**Go Module**:Go中new和make的区别 Channel什么是 Channel 的方向性?如何对 Channel 进行方向限制?Channel 的缓冲区大小对于 Channel 和 Goroutine 的通信有…

网络安全设备系列--安全隔离网闸

0x00 定义: 网闸(GAP)全称安全隔离网闸。安全隔离网闸是一种由带有多种控制功能专用硬件在电路上切断网络之间的链路层连接,并能够在网络间进行安全适度的应用数据交换的网络安全设备。 网闸在两个不同安全域之间,通过协议转换的…

Websocket++ 框架

概述 基于 C 标准的 WebSocket 协议实现,适合使用 C11 或更高版本开发的项目,支持构建 WebSocket 客户端和服务器,功能灵活,设计模块化,非常适合高性能的网络通信场景 主要特点 支持 WebSocket 客户端和服务器默认支持…

lanqiaoOJ 3745:餐厅排队 ← 数组模拟队列

【题目来源】https://www.lanqiao.cn/problems/3745/learning/【题目描述】 在蓝桥学院的新餐厅,学生们在取餐窗囗形成了一条长队。小蓝,餐厅的经理,希望能够实时了解队伍最前面和最后面的学生编号。你需要执行以下三种操作: 1.学…

Debian/Ubuntu 、Fedora 、Arch Linux, 在Linux上,对文本文件进行多线程压缩 xz、pxz、zstd、7z、lrzip

Debian/Ubuntu 、Fedora 、Arch Linux, 在Linux上,对文本文件进行多线程压缩 xz、pxz、zstd、7z、lrzip 前言对比多线程压缩1. 使用 pxz安装 pxz使用 pxz 2. 使用 xz 的 -T 选项使用 xz -T 3. 其他压缩命令1. 使用 gzip2. 使用 bzip23. 使用 xz4. 使用 7…

sql server 主从job对比差异

---查看job的基本信息 select a.job_id,a.name, a.date_created ,a.date_modified ,case when a.enabled1 then N是when a.enabled0 then N否 end as enabled ,a.description, b.step_id,b.step_name,b.subsystem,b.command,b.database_name,b.last_run_datefrom msdb.dbo.sy…

泷羽sec--轻松了解burp的配置使用及各个模块的作用

声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…