1. 环境介绍

OS: CentOS 7.9
Python: 3.9.17
Whisper: 20230314 

2. 下载Whisper源码(可选)

如果你懂得如何编译python项目,那么你可以通过源码方式进行安装。这里我选择使用pip方式安装。

下载地址:https://github.com/openai/whisper

把下载的源码上传到Linux服务器。

3. 安装系统软件

3.1 安装unzip

如果系统不带unzip解压软件,那么需要自己去下载,然后上传到服务器。

下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=unzip&submit=Search+...&system=centos&arch=X86_64

如何安装可以参考这篇博文:https://blog.csdn.net/kenjianqi1647/article/details/120654333

3.2 安装Anaconda(可选)

推荐使用conda虚拟环境运行。如果不使用conda虚拟环境,那么可能会和其它python项目中用到的依赖版本有冲突。当然除了安装Anaconda作为python的虚拟环境之外,你也可以安装你熟悉的其它的python虚拟环境。当然你也可以选择不使用任何python虚拟环境。

下载Anacondahttps://www.anaconda.com/download#downloads

如果觉得下载的太慢了,可以试一下这个下载地址:

https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh

上传到服务器,并运行shell脚本安装程序。

3.3 安装GCC

如果服务器上没有GCC,那么需要安装GCC

安装过程中可能会报下面的错误:是因为缺少一些依赖导致的。

warning: gcc-4.8.5-44.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:
        cpp = 4.8.5-44.el7 is needed by gcc-4.8.5-44.el7.x86_64
        glibc-devel >= 2.2.90-12 is needed by gcc-4.8.5-44.el7.x86_64
        libmpc.so.3()(64bit) is needed by gcc-4.8.5-44.el7.x86_64
        libmpfr.so.4()(64bit) is needed by gcc-4.8.5-44.el7.x86_64

解决方案:https://blog.csdn.net/wsyzxss/article/details/121155427

因此在安装GCC之前,需要先安装其它的依赖。

# 先安装 mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
# 安装 libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
# 安装 cpp-4.8.5-44.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-44.el7.x86_64.rpm
# 安装 kernel-headers-3.10.0-1160.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-1160.el7.x86_64.rpm
# 安装 glibc-headers-2.17-317.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-317.el7.x86_64.rpm
# 安装 glibc-devel-2.17-317.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-317.el7.x86_64.rpm
# 安装 gcc
rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm

下载GCChttp://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/gcc-4.8.5-44.el7.x86_64.rpm

一定要注意下载的版本问题,el7表示适用于CentOS7的系统,一定要和自己使用的系统版本一致。亲测,我想要安装更高版本的GCC,结果会安装失败,如果想要安装更高版本的GCC,应该通过源码编译的方式安装,具体可以参考这篇文章

3.4 编译安装ffmpeg

下载源码:https://ffmpeg.org/download.html

源码编译并安装,可以参考这篇文章

4. Whisper

4.1 安装Whisper

方式一:虚拟环境安装

由于是在离线状态所以,我们需要先从能联网的设备上创建好虚拟环境,然后把虚拟环境拷贝到服务器上。

如何在离线状态下创建虚拟环境可以参考这篇文章

也可以根据下面的方式打包。

# 安装打包工具
conda install conda-pack
# 进行打包
conda pack -n whisper2
# 把打包好的whisper2压缩包拷贝到离线的服务器上并进行解压
# 注意解压的路径为/root/anaconda3/envs,如果你修改了`Anaconda`的默认安装路径,那么修改为你自己的路径即可。
tar -xvf whisper2.tar.gz
# 最后要修改pkgs目录里面的内容,把本地中的pkgs覆盖掉离线服务器中的pkgs(貌似不修改也可以,亲测,不用修改也可以,我接下来的操作就没有修改pkgs,网上说,不修改会在运行时报错,我这边亲测,并没有任何报错。)

方式二:非虚拟环境安装

如果你不想运行在虚拟环境中,那么你要提前在有网的机器上下载openai-whisper

pip download openai-whisper

然后在无网的机器上安装。

pip install openai-whisper...whl

4.2 下载文件

为了下一步顺利进行,需要在这一步中下载一些必要的文件。

你可以在浏览器中下载,然后拷贝到无网的机器上。

https://openaipublic.blob.core.windows.net/gpt-2/encodings/main/vocab.bpe
https://openaipublic.blob.core.windows.net/gpt-2/encodings/main/encoder.json
https://openaipublic.blob.core.windows.net/encodings/r50k_base.tiktoken
https://openaipublic.blob.core.windows.net/encodings/p50k_base.tiktoken
https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken

我这里上传到无网的服务器的位置是/usr/local/src/whisper

4.3 修改源码

下面是在无网的服务器上操作。

找到源码python3.9/site-packages/tiktoken_ext/openai_public.py,如果在Linux系统上,你也可以使用下面命令查找openai_public.py的位置,把11和12行中的https://openaipublic.blob.core.windows.net/gpt-2/encodings/main/替换为你服务器本地路径,比如:/usr/local/src/whisper/。把该文件中的所有https请求的内容替换为服务器本地路径即可。

4.4 在联网的电脑上下载依赖

在有网的电脑上先下载好这些依赖,然后拷贝到无网的服务器上安装即可。

pip download blobfile
pip download pycryptodomex~=3.8
pip download lxml~=4.9
pip download filelock~=3.0

版本要求:如果你还没有安装以下依赖,那么你在安装的时候一定要注意版本。

urllib3<3,>=1.25.3
filelock~=3.0

4.5 在无网的电脑上安装依赖

pip install filelock...whl
pip install lxml...whl
pip install pycryptodomex...whl
pip install blobfile...whl

需要注意安装的顺序。

4.6 下载模型

模型下载地址:

4.7 运行Whisper

whisper -h 
whisper audio.mp3 --model base --language Chinese --output_dir /root/ --output_format srt

参考文档

WhisperDO

unable to use whisper offline

如需远程帮忙部署,可在博客首页中添加我的微信,并说明情况,非免费。

Q.E.D.


热爱生活,热爱程序