Whisper基于Ascend NPU的环境配置及应用部署心得
一、背景介绍
Whisper 是由 OpenAI 开发的通用语音识别模型,基于大规模的弱监督训练数据,涵盖了多种语音任务,如多语言语音识别、语音翻译和语言识别。其模型架构为基于 Transformer 的编码器-解码器模型,能够处理长达 30 秒的音频片段,并通过预测序列标记来实现多个任务。相比于特定领域的模型,Whisper 更加通用,并且能够在不同数据集上展示出更高的鲁棒性。
二、过程
拉取镜像,参考http://mirrors.cn-central-221.ovaijisuan.com/detail/143.html;此镜像torch和torch_npu版本为2.1,需升级到2.2
Python版本:3.9
CANN版本:8.0.RC2
CPU:kupeng-920
操作系统版本:Euler2.0(SP8)
NPU:Ascend 910B3
创建容器并进入容器(进如前把测试代码文件传输进docker的某个路径下,测试文件包含音频文件和test.py文件)
使用yum更新下环境包:yum update -y
#编译安装yasm
mkdir -p ~/yasm_sources
cd ~/yasm_sources
curl -LO https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar -xzf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make
sudo make install
#安装相关依赖
sudo yum install -y gcc gcc-c++ make cmake git pkg-config libtool automake autoconf nasm
# 下载并编译 x264:
mkdir -p ~/ffmpeg_sources
cd ~/ffmpeg_sources
git clone https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-shared --enable-pic
make
sudo make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
pkg-config --libs x264
find /usr/local/lib /usr/lib -name "libx264.so.164"
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/x264.conf
sudo ldconfig
#下载和编译 ffmpeg
mkdir -p ~/ffmpeg_sources
cd ~/ffmpeg_sources
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-nonfree --enable-libx264
make
sudo make install
进入源文件whisper/whisper/__init__目录下,在load_model函数下指定npu(需要在一开始导入import torch_npu)
device = 'npu:0'
torch_npu.npu.set_device(device)
print('===== load medel =====', device)
进入源文件whisper内,安装相关环境
pip install .
进入测试文件夹,运行test.py,可使用不同模型。
import whisper
model = whisper.load_model("tiny.en")
result = model.transcribe("demo02.wav")
print('\n', result["text"])
print(result)
三、结果
短文本结果
长文本结果
四、心得
系统是arrch64架构,不同于常见的x86,很多配置没有相应版本需要重新编译。昇腾官网有公开的镜像可以直接用,但是具体的版本需要甄别,镜像内所涵盖的torch版本不一定满足需求,可编写脚本重复使用。whisper官方建议给的torch版本是1.11,但是2.2也可以,2.1反而不行。官方给的环境在昇腾下跑不起来,需要多装别的依赖,直接安装ffmpeg会报错。Whisper 不直接支持.m4a 格式的音频文件,它主要支持 .wav、.mp3、.flac 等常见格式。whisper不需要提前下载预训练模型,调用的时候系统会自动下载。国外模型网站不是经常能访问到,有需要可设置国内镜像源。
- 点赞
- 收藏
- 关注作者
评论(0)