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
解压软件,那么需要自己去下载,然后上传到服务器。
如何安装可以参考这篇博文:https://blog.csdn.net/kenjianqi1647/article/details/120654333
3.2 安装Anaconda(可选)
推荐使用conda
虚拟环境运行。如果不使用conda
虚拟环境,那么可能会和其它python
项目中用到的依赖版本有冲突。当然除了安装Anaconda
作为python
的虚拟环境之外,你也可以安装你熟悉的其它的python
虚拟环境。当然你也可以选择不使用任何python
虚拟环境。
下载Anaconda
:https://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
下载GCC
:http://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
参考文档
如需远程帮忙部署,可在博客首页中添加我的微信,并说明情况,非免费。
Q.E.D.