티스토리 뷰

개발/기계학습

[Kaldi] voxforge online demo

Jaeyeon Baek 2019. 3. 5. 13:47

http://kaldi-asr.org/


이 글을 읽고 있다는 것은 sample 스크립트 학습을 끝냈다는 이야기인데 일단 축하드립니다. 이번 글에서는 학습시킨 데이터를 기반(은 이미 공개되어 있는 모델셋)으로 demo 를 해볼텐데 kaldi 에 있는 voxforge 에서는 두 가지 방식으로 데모를 지원합니다. 여기에는 1) microphone 의 입력에 따라 실시간으로 음성을 text 로 변환하는 live 모드와 2) 음성파일을 text로 변환하는 simulated 모드가 있습니다.

일단 egs/voxforge 로 이동해서 보면 다음과 같이 세 개의 디렉터리가 존재합니다.

$ tree -L 1
.
├── gst_demo
├── online_demo
└── s5

3 directories, 0 files

s5 는 학습시킬 때 확인 했고 나머지가 데모 관련된 디렉터리인데 gst_demo GUI 를 통해 데모를 확인 할 수 있도록 해줍니다. 다만 앞선 글의 연장선으로 이 글에서는 Mac 을 기준으로 설명하고 있으며 MacOS 에서 gst_demo 를 돌리는건 녹록치 않기 때문에 online_demo 를 소개하도록 합니다. ( 원하신다면 gst_demo 를 여러방면으로 시도해볼 수 있겠지만 정확히 알 수 없는 여러가지 패키지가 설치 되어 여러분의 Mac 이 너저분해질 수 있습니다 )

자, 그러 online_demo 디렉터리로 이동해서 내용을 살펴봅시다. run.sh 은 데모를 실행시켜주는데 test-mode argumentlive simulated 를 넘길 수 있습니다. livemic 를 통한 테스트를 진행할 수 있고, simulated 는 사전에 정의된 wav 파일( online-data/audio/*wav )을 대상으로 테스트 할 수 있습니다. 여기서 ... 스크립트를 실행하면 바로 microphone 데모( Mac 기준이니 당연히 mic 를 사용할 수 있다고 가정합니다 )를 볼 수 있지만 아마도 다음과 같은 에러를 만나게 될 겁니다. 

$ cd online_demo 
$ ./run.sh --test-mode live
...
...생략
online-gmm-decode-faster command not found

데모를 돌리기 위해 필요한 패키지가 설치 되어 있지 않기 때문인데 kaldi 홈에서 다음 디렉터리로 이동하고 패키지를 설치하도록 합시다.

cd /path/to/kaldi/tools

패키지를 설치하도록 합니다.

$ ./install_portaudio.sh

관련된 모듈을 컴파일해줘야 하기 때문에 src 경로로 이동해서 아래와 같이 make 를 실행해줍니다.

cd /path/to/kaldi/src
$ make ext

이제 모든 준비는 끝났습니다. 다시 online_demo 로 이동해서 테스트 해봅시다. 아래 영상은 CNN 방송을 대상으로 테스트한 결과 입니다.


마무리

데모 성공을 축하드립니다. 인식률은 다소 떨어지지만 kaldi 를 처음 다루는 예제로 훌륭하다고 생각됩니다. 이제 다양하고 더 많은 데이터를 기반으로 모델을 학습시키고 Kaldi 기반의 speech recognition 를 도전해 볼 수 있겠군요. :-)



댓글
  • 프로필사진 Mmj 안녕하세요~
    이전 글을 보고 kaldi를 수월하게 설치해보았습니다. 이번에는 voxforge demo를 실행해보려고 하는데요.. live mode로 수행했을 때, portaudio부분에서 계속 에러가 발생합니다... 구글을 참고해보며 나를 해결해보려고 하였으나.. 결과는 마찬가지입니다.

    Portaudio failed to open the default stream.이라는 에러이고요. 환경은 virtual box에서 ubuntu 18.04.3입니다.

    혹시 에러를 해결할 수 있는 방안이 있을까요...?
    2019.09.02 17:41
  • 프로필사진 BlogIcon Jaeyeon Baek 혹시 vm에 mic가 인식되는 상태인지 확인해보는게 좋을 듯 합니다. 2019.09.02 18:19 신고
  • 프로필사진 Mmj 인식은 되고 있다고 생각됩니다. arecord를 이용해 녹음도 해보았고 재생도 해보았습니다. 잘 되더라고요...
    또 인식을 바로 못할 수도 있다고 하여, Default 기기로 설정도 해보았고 패키지 설치 (alsa, pulseaudio, libaudio 등)가 필요할 수도 있다고 하여 설치도 해보았습니다만, 여전히 안되네요...;;
    2019.09.03 10:23
  • 프로필사진 BlogIcon Jaeyeon Baek PortAudio가 Virtualbox에서 사용할 때 문제가 있다는 글이 몇 개 보이는데요, Host에서 구동하던지, 아니면 Virtualbox의 버전을 변경해보면 어떨까 싶습니다. 2019.09.03 10:32 신고
  • 프로필사진 dd 안녕하세요 kaldi를 공부중인 학생입니다.
    다름이 아니라 yesno 예시를 위처럼 온라인데모를 하고 싶은데 yesno의 경우는 voxforge처럼 online_demo 디렉터리가 없더라구요..
    혹시 할 수 있는 방법이 없을까 해서 여쭤봅니다! 인풋 아웃풋이 제대로만 나오면 됩니다.
    2019.09.09 15:46
  • 프로필사진 BlogIcon Jaeyeon Baek 별도로 구현해야 할 것으로 보입니다. 2019.09.15 11:45 신고
  • 프로필사진 dd 혹시 별도로 구현하는 것에 대해 조금 더 구체적으로 말씀해주실 수 있나요...? 열심히 검색해봐도 뭔가 감이 안오네요... ㅠㅠㅠ 2019.09.29 23:13
댓글쓰기 폼