본문 바로가기
IT

[ESPnet] 우분투 Ubuntu 20.04 LTS 에서 아나콘다 Anaconda 가상환경으로 End-to-end (E2E) 음성인식 Toolkit ESPnet 설치하기

by dino_think 2022. 12. 16.

오늘은 음성인식의 대표적인 end-to-end (E2E) toolkit인 ESPnet을 우분투 20.04 LTS의 아나콘다 가상환경 상에서 설치하는 방법을 살펴보겠습니다. ESPnet은 Shinji Watanabe라는 Carnegie Mellon 대학의 associate professor가 주도하여 만든 end-to-end 기반 음성인식 toolkit 입니다. 이분이 참여한 음성인식 오픈소스 toolkit으로 KALDI가 있죠. KALDI는 현재 샤오미에서 근무하고 있는 Daniel Povey가 주도하여 만든 Gaussian Mixture Model (GMM) 및 Deep Neural Network (DNN)의 hybrid 기반 음성인식 시스템을 구축할 수 있는 toolkit입니다. 최근에는 KALDI 2 (K2) 라는 toolkit도 발표했는데요, 이건 end-to-end 기반 음성인식 모델에 Weighted Finite State Transducer (WFST) 디코더를 제공하는 toolkit입니다. 이 toolkit도 나중에 다뤄보겠습니다.

 

사실 초창기 ESPnet은 설치 과정에서 오류도 많았고, 학습 과정에서도 역시 오류가 많았습니다. 그래서 저는 ESPnet 보다 KALDI toolkit을 많이 사용했었는데요, ESPnet으로 실험을 해야 하는 상황이 발생해서 오랜만에 찾아보니 사용하기도 편하고 KALDI를 사용해봤던 사람이라면 쉽게 접근할 수 있어서 좋았습니다. 아, 서론이 길었습니다. 빨리 ESPnet 설치를 진행해보겠습니다.

 

 

우분투 20.04 LTS의 아나콘다 가상환경 상에서 ESPnet 설치 전 준비사항

 

ESPnet은 본 글의 맨 아래의 <참고 자료>에 있는 설치 관련 문서 페이지를 보면서도 설치를 진행하실 수 있는데요, 모든 설치 환경을 고려해서 작성이 되어있다보니, 혼동될 수 있습니다. 우선 이 포스트에서는 우분투 20.04 LTS의 아나콘다 가상환경 상에서 설치하는 방법만 다뤄보겠습니다. 우분투 20.04 LTS에 아나콘다를 설치하는 방법과 PyTorch를 지원하는 아나콘다 가상환경 구축하는 방법은 아래의 제 블로그 링크를 차례대로 살펴보시기 바랍니다.

 

https://dino-thinking.tistory.com/97

 

우분투 (Ubuntu) 20.04 LTS에 아나콘다 (Anaconda) 가상환경 설치 해보기

오늘은 우분투 (Ubuntu) 20.04 LTS에 아나콘다 (Anaconda)를 설치해보는 과정을 설명하겠습니다. 아나콘다는 python과 R 언어 기반의 오픈소스로, 대규모 데이터 처리와 분석, 기계 학습 등에 사용되는 패

dino-thinking.tistory.com

https://dino-thinking.tistory.com/98

 

우분투 (Ubuntu) 20.04 LTS에 아나콘다 (Anaconda) 가상환경 상에서 파이토치 (PyTorch) 및 TorchText 설치 및

어제는 우분투 20.04 LTS에서 아나콘다 가상환경을 설치해보았습니다. 오늘은 파이썬 3.9 버전으로 새로운 아나콘다 가상환경을 만들어보고, 파이토치 (pytorch)를 설치해보겠습니다. https://dino-thinkin

dino-thinking.tistory.com

 

제 블로그를 보면서 아나콘다 가상환경을 구축하신 분들이라면, 가상환경 이름이 “testpy” 이고, PyTorch는 1.12.0 버전, 파이썬 버전은 3.9가 설치 되셨을껍니다. 우선 아래 [사진 1]과 같이, 아나콘다 가상환경 “testpy”를 실행시켜주세요.

 

아나콘다-가상환경-실행-화면
[사진 1] 아나콘다 가상환경 실행 화면

 

ESPnet을 설치하기 전, cmake3, sox, sndfile, ffmpeg, flac 패키지들을 미리 설치해보겠습니다. ESPnet 설치 관련 문서에서는 아나콘다를 사용하면 이 패키지들을 따로 설치할 필요가 없다고 기술되어 있는데요, 그래도 혹시 모르니 아래 명령어를 차례대로 입력해서 설치를 진행해보겠습니다.

 

sudo apt-get install cmake
sudo apt-get install sox
sudo apt-get install libsndfile1-dev
sudo apt-get install ffmpeg
sudo apt-get install flac

 

만약 위 명령어를 입력하다가 오류가 발생하신다면, 한 번 아래 명령어로 업데이트를 진행한 이후 다시 위 명령어들을 입력해주세요.

 

sudo apt-get update

 

이제 준비가 끝났으니, ESPnet 설치를 진행해보겠습니다. 

 

 

우분투 20.04 LTS의 아나콘다 가상환경 상에서 ESPnet 설치하는 방법

 

이제 아래 명령어를 입력해서 ESPnet github 프로젝트를 git clone을 사용해서 현재 디렉토리로 복사합니다.

 

git clone https://github.com/espnet/espnet

 

그러면 아래 [사진 2]와 같이, espnet이 복사된 것을 확인하실 수 있습니다.

 

ESPnet-프로젝트가-복사된-것을-확인
[사진 2] ESPnet 프로젝트가 복사된 것을 확인

 

이제 생성된 espnet 디렉토리의 tools 디렉토리를 아래 [사진 3]과 같이 이동 후, 아래의 명령어를 입력합니다.

 

아나콘다의-bin-디렉토리-경로를-변수에-등록하는-화면
[사진 3]  아나콘다의 bin 디렉토리 경로를 변수에 등록하는 화면

 

CONDA_TOOLS_DIR=$(dirname ${CONDA_EXE})/..

 

CONDA_TOOLS_DIR 이라는 변수에 여러분이 설치한 아나콘다의 bin 디렉토리 경로가 잘 걸려있는지 확인하려면, 아래 명령어를 입력하면 됩니다.

 

echo $CONDA_TOOLS_DIR

 

설정이 잘 되었다면, 아래 명령어를 입력해서 ESPnet에서 사용할 python 환경 설정을 진행해주세요.

 

./setup_anaconda.sh ${CONDA_TOOLS_DIR} espnet 3.9

 

그러면 아래 [사진 4]와 같이 설치가 진행되는 것을 확인할 수 있습니다.

 

ESPnet에서-사용할-python-환경-설정-진행하는-화면
[사진 4] ESPnet에서 사용할 python 환경 설정 진행하는 화면

 

그리고, 드디어 ESPnet을 설치해줍니다. ESPnet 설치 관련 문서에서는 ESPnet을 설치할 때 PyTorch와 CUDA 버전을 설정해서 설치할 수 있습니다. 만약 제가 포스팅한, 아나콘다 가상환경에서 PyTorch를 설치하는 방법에 대한 링크를 따라 하셨다면, PyTorch는 1.12.0 버전, CUDA는 11.3 버전이 설치되었을텐데요, 이걸 반영해서 아래 명령어를 입력해주시면 됩니다.

 

make TH_VERSION=1.12.0 CUDA_VERSION=11.3

 

설치 완료까지 꽤 오랜 시간이 소요되는데요, 설치가 완료되면 아래 [사진 5]와 같이, ESPnet을 설치하면서 함께 설치하거나 이미 설치된 요소들을 [x] 표시해서 나타내고 있습니다. 만약 추가로 필요한 패키지들이 있다면, “INFO” 밑의 명령어들을 입력해서 따로 설치를 진행하면 됩니다. 물론 이 명령어들을 실행시키지 않아도, 기본적인 ESPnet 기능들은 전부 동작합니다.

 

ESPnet-설치-과정에서-설치가-완료된-python-패키지들-목록
[사진 5] ESPnet 설치 과정에서 설치가 완료된 python 패키지들 목록

 

이제 파이썬에서 espent을 잘 불러오는지 확인해볼까요? 현재 tools 디렉토리에서 상위 디렉토리로 이동합니다. 이후, python을 입력 후, 아래의 명령어를 순차적으로 입력합니다.

 

import espnet 
import espnet2
import torch

 

만약 오류가 없다면, 아래 [사진 6]과 같이 espnet이 제대로 동작하는 것을 확인할 수 있습니다.

 

python에서-ESPnet-라이브러리-불러오는-화면
[사진 6] python에서 ESPnet 라이브러리 불러오는 화면

 

<참고 자료>

 

1. ESPnet 설치 관련 문서 페이지 링크

 

ESPnet-설치-관련-문서-페이지-URL

 

2. ESPnet github 페이지 링크

 

ESPnet-github-페이지-URL

 

지금까지 우분투 20.04 LTS의 아나콘다 가상환경에서 end-to-end 기반 음성인식 tookit은 ESPnet을 설치하는 방법에 대해 알아보았습니다. 다음에도 ESPnet과 관련된 내용으로 찾아뵙겠습니다.

 

댓글