k2环境配置

K2环境配置

1. conda create -n icefall python=3.8 
2. conda activate icefall
3. conda install -c k2-fsa -c pytorch -c conda-forge k2 python=3.8 cudatoolkit=11.6 pytorch=1.12.1 torchaudio=0.12.1
4. conda install torchaudio -c pytorch
5. pip install git+https://github.com/lhotse-speech/lhotse
6. git clone https://github.com/k2-fsa/icefall

这个没用:export DYLD_LIBRARY_PATH=$CONDA_PREFIX/lib/python3.8/site-packages:$DYLD_LIBRARY_PATH
这个管用:export PYTHONPATH=/home/work/wangyaru05/workspace/E2E/GIT/icefall:$PYTHONPATH

conda create -n icefall -c k2-fsa -c pytorch -c conda-forge k2 python=3.8 cudatoolkit=11.6 pytorch=1.12.0 torchaudio=0.12.0 tensorboard
conda activate icefall
pip install lhotse
git clone https://github.com/k2-fsa/icefall
cd icefall
pip install -r requirements.txt
export PYTHONPATH=/home/work/wangyaru05/workspace/E2E/GIT/icefall:$PYTHONPATH

错误解决方法:

  1. 如果import k2报下面的错误,则执行下面的conda install命令

Traceback (most recent call last):
File “”, line 1, in
File “/root/anaconda3/envs/wenet/lib/python3.8/site-packages/k2/init.py”, line 23, in
from _k2 import DeterminizeWeightPushingType
ImportError: /root/anaconda3/envs/wenet/lib/python3.8/site-packages/torch/lib/…/…/…/…/libstdc++.so.6: version `GLIBCXX_3.4.30’ not found (required by /root/anaconda3/envs/wenet/lib/python3.8/site-packages/k2/lib/libk2context.so)

conda install -c conda-forge gcc=12.1.0

ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: ‘/root/anaconda3/envs/wenet/lib/python3.8/site-packages/numpy-1.23.5.dist-info/METADATA’

解决方法:
转到 site-packages,

删除所有numpy**文件夹。

重新安装

pip install numpy==1.23.5

优秀文章:https://www.bilibili.com/read/cv21513152/
新一代Kaldi包含Lhotse、k2、Icefall、sherpa,是有着良好的生态且专于ASR的开源项目,k2的模型较丰富,推理速度快准确度高、且支持并行解码。其中icefall主要用于各种模型的训练,eg非常详细,几乎包含数据预处理、训练、模型评估和预测,模型导出、量化,及转换onnx的所有步骤;而sherpa可以用于快速部署语音识别服务,开箱即用的方式,可以快速应用于项目生产。项目源码简洁干练,可读性强,从中亦能学到软件架构、设计模式、神经网络计算等知识。

那么如何使用docker快速部署新一代kaldi?

一、准备工作,首先对系统环境做基本了解:

宿主机系统windows10/11或linux/ubuntu20等,需要装有支持cuda10.1+显卡,以便进行模型训练和GPU推理(仅部署CPU推理服务,则不需要)。

在宿主机系统中安装nvidia-docker 。

在宿主机系统中安装nvidia cuda驱动,文中使用 CUDA 11.6/11.7。

可使用python3.7+,文中使用Python3.8(推荐python3.8+)。

文中使用nvidia/cuda:11.0-base基础镜像,也可以使用官方提供的其他更新版本的镜像。

Sherpa里websocket服务需要开启的端口:6006、6008(使用dockerx镜像部署,docker run的时候,需提前做好端口映射)。

若使用conda安装,可直接跳过docker的步骤,在conda的虚拟环境中安装好cuda+cudnn之后,执行步骤8及后续操作。

二、在docker中部署k2的具体操作步骤

1.拉取基础镜像

docker pull nvidia/cuda:11.0-base
测试:

docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
2.使用基础镜像启动一个容器

docker run --restart=always -ti --gpus all --name k2_train -it -p 16008:6008 -p 16006:6006 -v /workspace:/workspace nvidia/cuda:11.0-base /bin/bash
3.进入容器

docker exec -it k2_train /bin/bash
4.安装依赖

apt-get update && apt-get install vim kmod gcc g++ python3.8 python3-distutils pip git git-lfs cmake

git lfs install
清除apt-get缓存

apt-get clean --dry-run
5.安装cudatoolkit,去掉驱动选项,然后Install:

sh cuda_11.6.2_510.47.03_linux.run
修改环境变量,并添加:

vim ~/.bashrc export PATH=/usr/local/cuda-11.6/binKaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+:{PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64KaTeX parse error: Expected '}', got 'EOF' at end of input: …LIBRARY_PATH:+:{LD_LIBRARY_PATH}}
使环境变量生效:

source ~/.bashrc
查看:

nvidia-smi nvcc -V
6.安装cudnn

tar -zxvf cudnn-linux-x86_64-8.4.1.50_cuda11.6-archive.tar.xz

cp cudnn--archive/include/cudnn.h /usr/local/cuda-11.6/include

cp -P cudnn--archive/lib/libcudnn /usr/local/cuda-11.6/lib64

chmod a+r /usr/local/cuda-11.6/include/cudnn*.h /usr/local/cuda-11.6/lib64/libcudnn*
查看cuDNN的信息:

cat /usr/local/cuda-11.6/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
(完成以上步骤,可建快照,以复用。)

7.安装torch(与cuda版本配套的torch)

pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio===0.12.1+cu116 -f https://download.pytorch.org/whl/torch_stable.html

8.安装lhotse(只推理不训练,例如仅体验sherpa,可跳过此步骤)

pip install git+https://github.com/lhotse-speech/lhotse
9.安装icefall(只推理不训练,例如仅体验sherpa,可跳过此步骤)

cd /workspace

git clone https://github.com/k2-fsa/icefall

cd icefall

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

export PYTHONPATH=/workspace/icefall:$PYTHONPATH
10.安装kaldifeat

cd /workspace

git clone https://github.com/csukuangfj/kaldifeat.git

cd kaldifeat

python3 setup.py install
11.安装k2

cd /workspace

git clone https://github.com/k2-fsa/k2.git

cd k2

export K2_CMAKE_ARGS=“-DK2_BUILD_FOR_ALL_ARCHS=ON”

python3 setup.py install
12.安装sherpa

cd /workspace

git clone https://github.com/k2-fsa/sherpa

cd sherpa

python3 setup.py install
以上部署成功之后,使用sherpa可快速体验新一代kaldi。

作者:从孑开始 https://www.bilibili.com/read/cv21513152/ 出处:bilibili

conda安装k2

conda install -c k2-fsa -c pytorch -c conda-forge k2 python=3.8 cudatoolkit=11.3 pytorch=1.12.1

conda安装k2报错
Traceback (most recent call last):
File “”, line 1, in
File “/root/anaconda3/envs/wenet/lib/python3.8/site-packages/k2/init.py”, line 23, in
from _k2 import DeterminizeWeightPushingType
ImportError: /root/anaconda3/envs/wenet/lib/python3.8/site-packages/torch/lib/…/…/…/…/libstdc++.so.6: version `GLIBCXX_3.4.30’ not found (required by /root/anaconda3/envs/wenet/lib/python3.8/site-packages/k2/lib/libk2context.so)

解决方法:conda install -c conda-forge gcc=12.1.0

import k2
from icefall.utils import get_texts
from icefall.decode import get_lattice, Nbest, one_best_decoding
from icefall.mmi import LFMMILoss
from icefall.mmi_graph_compiler import MmiTrainingGraphCompiler

安装icefall ,需要clone安装,那如何在其他地方使用icefall呢? 需要添加python_path

export PYTHONPATH=/workspace/icefall:$PYTHONPATH

比如:export PYTHONPATH=/home/work/wangyaru05/workspace/E2E/GIT/icefall:$PYTHONPATH

猜你喜欢

转载自blog.csdn.net/weixin_43870390/article/details/131090985
今日推荐