Skip to content

Latest commit

 

History

History
153 lines (102 loc) · 3.93 KB

install_ch.md

File metadata and controls

153 lines (102 loc) · 3.93 KB

CAT安装介绍

English英文

这是一篇CAT的详细安装说明,其中包括CAT的一些依赖(PyTorch和Kaldi)的安装。

安装依赖

CAT主要的依赖工具有两个:PyTorch和Kaldi。一些其他的依赖例如用于读取数据的h5py模块可以较为简单地通过pippip3命令安装,因此在本文中不涉及。

我们推荐在conda创建的环境下安装CAT及其依赖工具,直接在默认用户环境下安装可能需要root权限。

此外CAT依赖于CUDA计算库,纯CPU方式当前并不支持。

PyTorch

  1. 查看CUDA版本;

    whereis cuda

    输出信息中包括你的CUDA路径,通常是 /usr/local/cuda, 基于输出信息的路径,查看CUDA版本信息。

    <path to cuda>/bin/nvcc -V
  2. 安装对应的PyTorch版本;

    PyTorch官方文档中给出了不同方法安装最新稳定版的详细命令。

    如果要安装旧版PyTorch或者当前最新稳定版支持的CUDA版本中没有你的版本,可以在这个页面内寻找适合你的PyTorch版本。

    CAT当前支持Python3和PyTorch1.1+。更早的Python与PyTorch版本支持请参考CAT v1分支。

  3. 检查编译安装PyTorch使用的CUDA版本

    python3 -m torch.utils.collect_env
    # 输出类似如下的信息:
    # 
    # Collecting environment information...
    # PyTorch version: 1.8.1
    # Is debug build: False
    # CUDA used to build PyTorch: 10.2
    # ...
    

Kaldi

Kaldi官方安装说明

git clone https://github.com/kaldi-asr/kaldi.git
cd kaldi && cat INSTALL

对于某些数据集,可能需要额外安装IRSTLM/SRILM/Kaldi LM等工具,为了后续说明方便,将Kaldi的安装目录记为<path to kaldi>

CAT

  1. 从GitHub获取源代码,把路径记为<path to CAT>

    git clone https://github.com/thu-spmi/CAT
    export PATH_CAT=$(readlink -f <path to CAT>)
    export PATH_Kaldi=$(readlink -f <path to kaldi>)
  2. 安装python依赖包;

    cd $PATH_CAT
    python -m pip install --user -r requirements.txt
  3. 把CAT中添加的补丁打包到Kaldi中;

    # 复制补丁文件到Kaldi目录
    cp $PATH_CAT/src/kaldi-patch/latgen-faster.cc $PATH_Kaldi/src/bin/
    # 进入目录
    cd $PATH_Kaldi/src/bin/

    修改Makefile文件:

    BINFILES文件列表中,添加latgen-faster。修改后运行命令编译:

    make

    如果一切正常,kaldi目录下会新增文件kaldi/src/bin/latgen-faster

  4. 安装 CTC-CRF 模块;

    # 进入目录
    cd $PATH_CAT/src/ctc_crf/

    CTC-CRF 模块会以python模块的形式安装,因此在安装之前,检查并确保当前使用的python和之后要运行CAT的python是同一个:

    which python
    #
    which python3

    编译并安装

    # 如果提示permission denied错误,使用root权限重新运行
    # gcc-6/gcc-5 均可正常编译
    CC=gcc-6 CXX=g++-6 make

    若编译中出现错误,使用以下命令清除此前的编译文件

    make clean
  5. 尝试导入CTC-CRF模块

    python -c "import ctc_crf"

    如果没有错误信息则说明导入正常。

  6. 最后一些小的改动:

    CAT/egs/<task>/path.sh文件中的KALDI_ROOT=...修改为你的Kaldi安装目录<path to kaldi>。其中<task>是ASR任务的名称,例如wsjswbd

    CAT/egs/wsj中,链接kaldi文件夹

    cd $PATH_CAT/egs/wsj
    ln -snf $PATH_Kaldi/egs/wsj/s5/steps steps
    ln -snf $PATH_Kaldi/egs/wsj/s5/utils utils
  7. Enjoy it! 🚀