我的配置:WSL2 CentOS7.9
一,准备工作:
CentOS7.9系统
1)配置yum阿里云镜像
#下载阿里云基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#下载阿里云EPEL源
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
#清理并重建yum缓存
yum clean all
yum makecache
二,更新Python
如果你使用anaconda等虚拟环境,可以跳过这一步
# 安装依赖
yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
# 创建目录
mkdir -p /usr/local/python3
#下载新版Python
wget -c https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz
# 解压
xz -d Python-3.9.9.tar.xz
tar -xvf Python-3.9.9.tar.xz
# 进入 Python-3.9.9 目录
cd Python-3.9.9
# 编译并安装
./configure --prefix=/usr/local/python3 && make && make install
三,更新gcc
gcc是linux常用的编译器工具,我们在后续安装FFmpeg时需要用到。实际上,系统可能自带gcc,但是版本过旧了,所以我们需要升级gcc。
1)安装SCL仓库
cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo
2)安装gcc11
yum -y install devtoolset-11
3)添加到环境变量
echo "scl enable devtoolset-11 bash" >> /etc/profile
4)检查gcc版本
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-11/root/bin/gcc /usr/bin/gcc
ln -s /opt/rh/devtoolset-11/root/bin/g++ /usr/bin/g++
gcc --version
g++ --version
你也可以参考 这篇博客
四,安装新版nasm
yasm会更好,所以我们用nasm。
1)删除旧版nasm(如果有)
# 查看版本(未安装会提示 command not found)
nasm -v
# 若已装旧版,先卸载(避免冲突)
yum remove -y nasm
2)从官网下载新版nasm
wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.xz
3)解压并切换到nasm目录
# 解压源码包
tar -xvf nasm-2.16.01.tar.xz
# 进入解压后的目录
cd nasm-2.16.01
4)编译安装
./configure --prefix=/usr/local/nasm && make && make install
5)写入系统路径
# 将NASM路径写入系统全局配置文件
echo "export PATH=/usr/local/nasm/bin:\$PATH" >> /etc/profile
source /etc/profile
6)查看安装版本
nasm -v
五,安装FFmpeg
1)安装git,我们需要从仓库克隆
yum install git
2)克隆源码
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
3)切换到ffmpeg目录
cd ffmpeg
4)配置编译并安装
./configure && make && make install
编译或者安装不成功就是之前的前置有问题,检查一下下载的是不是新版,新版有没有启用。
六,安装whisper
1)利用pip安装whisper
pip install -U openai-whisper
2)检查安装
whisper -h
3)准备一个音频文件,我们来测试一下
#识别test_audio.mp3文件的文字,利用base模型,输出txt文件,识别语言为中文。
whisper test_audio.mp3 --model base --output_format txt --language chinese
因为我客户的设备没有显卡,所以这里没有配置GPU加速,识别会非常慢。如果你的设备有显卡,你可以参考网上的cuda安装教学利用GPU加速。你可以参考这篇博客
七,模型优化
当前这个模型还是太难用了,主要有以下几个问题需要解决才能用于生产环境:
①不宜用,我们需要图形化界面方便上传下载文件和调节参数
②该模型无法识别100m以上的音频文件(大概是20min时长的音频)
③识别效果差,方言适配度低
但是我们可以通过一个python程序解决这个问题。
1)图形化界面
首先是图形化界面的问题
我们可以利用Streamlit或者Flask利用网页实现图形化,也可以使用tkinter,但是tkinter不适用于纯命令行的系统。
Streamlit比Flask更好上手更易读,所以我们这里使用Flask
2)音频预处理和大文件识别
利用FFmpeg可以预处理音频让模型更好识别
分割大文件为若干个小文件,再将输出的文件黏结
我将在下一篇关于离线部署的博客上传这个文件
部分内容参考了 这篇博客

