리눅스 centos7 환경 기준 설명입니다.
git clone https://github.com/kaldi-asr/kaldi.git 파일명 --origin upstream
kaldi 설치 시, tool(kaldi가 사용하는 외부패키지)과 src(kaldi의 core source)를 설치해야한다.
kaldi 설치에 앞서, 가상 환경을 실행한다.
virtualenv kaldi-venv(가상환경명) --python=python3
. kaldi-venv/bin/activate
cd /kaldi/tools
sudo yum -y install devtoolset-7 설치되어 있다면, 아래 명령어로 세션이 살아있는동안 gcc version 7scl enable devtoolset-7 bashmake -j 64./extras/install_srilm.sh <name> <organization> <email>
pip install scipy
pip install six./extras/install_sequitur.shcd /kaldi/src
configure
configure란? 소스 코드로부터 컴파일하기 직전에 사용자 컴퓨터의 라이브러리의 존재 여부를 확인하고 연결하는 작업
./configure --mathlib=MKL --use-cuda=yes --cudatk-dir=/usr/local/cuda-10.2
여기서, 사용하는 cuda version 확인하고, 위와 같이 명령어로 cuda version 지정해주기 or 코드 수정하기. 예시는 10.2 version
코드 수정하는 방법) line 258
기존 코드: "for base in /usr/local/share/cuda /usr/local/cuda; do"
수정 코드: "for base in /usr/local/cuda-10.2; do
kaldi.mk 폴더가 생기면, 성공했다는 의미이다.
최적화
작업을 수행하는 것이 예민하지 않게끔 수정하는 작업이다.
kaldi.mk 편집기를 열고, 아래와 같이 수정한다.
CXXFLAGS = -std=c++14 -I.. -isystem $(OPENFSTINC) -O1 \
-Wall -Wno-sign-compare -Wno-unused-local-typedefs \
-Wno-deprecated-declarations -Winit-self \
-DKALDI_DOUBLEPRECISION=$(DOUBLE_PRECISION) \
-DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_MKL $(MKL_CXXFLAGS) \
-m64 -msse -msse2 -pthread -g
CXXFLAGS = -std=c++14 -I.. -isystem $(OPENFSTINC) \
-Wall -Wno-sign-compare -Wno-unused-local-typedefs \
-Wno-deprecated-declarations -Winit-self \
-DKALDI_DOUBLEPRECISION=$(DOUBLE_PRECISION) \
-DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_MKL $(MKL_CXXFLAGS) \
-m64 -msse -msse2 -pthread -O2 -fpermissive
Make
make depend -j 60 #종속성 체크
make -j 60 #병렬적으로 작업 실행