Whisper基于Ascend NPU的环境配置及应用部署心得

举报
yd_254538132 发表于 2024/11/08 23:42:12 2024/11/08
【摘要】 一、背景介绍Whisper 是由 OpenAI 开发的通用语音识别模型,基于大规模的弱监督训练数据,涵盖了多种语音任务,如多语言语音识别、语音翻译和语言识别。其模型架构为基于 Transformer 的编码器-解码器模型,能够处理长达 30 秒的音频片段,并通过预测序列标记来实现多个任务。相比于特定领域的模型,Whisper 更加通用,并且能够在不同数据集上展示出更高的鲁棒性。二、过程拉取镜...

一、背景介绍

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)

三、结果

短文本结果结果1.png

长文本结果结果2.png

四、心得

系统是arrch64架构,不同于常见的x86,很多配置没有相应版本需要重新编译。昇腾官网有公开的镜像可以直接用,但是具体的版本需要甄别,镜像内所涵盖的torch版本不一定满足需求,可编写脚本重复使用。whisper官方建议给的torch版本是1.11,但是2.2也可以,2.1反而不行。官方给的环境在昇腾下跑不起来,需要多装别的依赖,直接安装ffmpeg会报错。Whisper 不直接支持.m4a 格式的音频文件,它主要支持 .wav、.mp3、.flac 等常见格式。whisper不需要提前下载预训练模型,调用的时候系统会自动下载。国外模型网站不是经常能访问到,有需要可设置国内镜像源。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。