Kaldi ASR 1) 설치 방법

윤혜원·2022년 10월 21일

음성인식기 Kaldi

목록 보기
1/4

리눅스 centos7 환경 기준 설명입니다.

1. git 다운로드

git clone https://github.com/kaldi-asr/kaldi.git 파일명 --origin upstream

2. Kaldi 설치

kaldi 설치 시, tool(kaldi가 사용하는 외부패키지)과 src(kaldi의 core source)를 설치해야한다.
kaldi 설치에 앞서, 가상 환경을 실행한다.

virtualenv kaldi-venv(가상환경명) --python=python3
. kaldi-venv/bin/activate

1) tool (외부 패키지)

cd /kaldi/tools
  1. gcc 설치 ( version 7 이상 필요)
    sudo yum -y install devtoolset-7
    설치되어 있다면, 아래 명령어로 세션이 살아있는동안 gcc version 7
    scl enable devtoolset-7 bash
  2. tool 설치
    make -j 64
  3. srilm(언어모델 생성 툴) 설치
./extras/install_srilm.sh <name> <organization> <email>
  1. 파이썬 라이브러리 설치
    pip install scipy
     pip install six
  2. g2p 설치
    local 환경이 아닌 가상 환경에 설치시, "/extras/install_sequitur.sh"을 vi로 열어 (pwd)로 되어있는 부분을 VIRTUAL_ENV로 수정하고 진행
    ./extras/install_sequitur.sh

2) src (core source)

cd /kaldi/src
  1. 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 폴더가 생기면, 성공했다는 의미이다.

  2. 최적화
    작업을 수행하는 것이 예민하지 않게끔 수정하는 작업이다.
    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
  3. Make

     make depend -j 60 #종속성 체크
      make -j 60 #병렬적으로 작업 실행
profile
음성인식 연구개발자 (Speech Recognition Researcher)

0개의 댓글