본문 바로가기

Audio & Speech

음성 데이터의 활용

한국 인공지능아카데미 [딥러닝] 오디오 처리 세션에서 공부한 내용을 정리한 글 입니다.

간단한 음성 데이터의 활용 방안과, 음성인식 tool 종류와 그 과정에 대해 알아보자

보이스 피싱 탐색기

STT(음성 데이터를 문자로 변환하는 기술) 쪽은 음성을 텍스트로 바꾸고 NLP를 이용한 서비스 모델링을 한다. 상용화 STT API 사용 cost가 높아서, 전처리에서 최대한 중요한 부분만 빼서 넘기는 식으로 한다.

샘플링 > 양자화 후 pca를 통해 잘 모여있는 걸 확인하는 작업을 거치기도 한다(약간 실전 꿀팁 느낌?, 이 task 말고도 음성 데이터를 다루는 여러 분야에서 쓰이는 기술인 듯 하다.)

 

 


음성인식 toolkits 

HTK - 근본. 소스파일이 5메가 밖에 안되고 빠르고 가볍지만, 친절하지 않고 튜닝을 해야한다, 오픈소스가 아니라서 구하기 어렵다.

 

Kaldi - 무겁지만, 오픈소스다!

 


음성인식 과정

*주의할 점! 간 단계에서 만든 파일들을 물리적인 한 디렉토리 공간에 각각 만들어줘야 한다.

 

1. task grammer 

일단 gram 파일을 input으로 넣어주면, gram을 가지고 word network를 만든다. 

 

2. dictionary(lexicon)

단어-발음 사이의 mapping 사전, 가져다 쓰면 된다. 직접만들거나!

중복된 거 제거해줌

 

3. recording the data

generate utterances : 어떻게 녹음하라고 testprompt를 n개 제공해 줌!

 

4. creating the transcrition files

dictionary를 이용해서 단어를 3개의 발음으로 변환시키는 map을 만들자!

3개인 이유는 mono,bi,tri-phone등의 방법론을 후에 적용시킬 수 있기 때문!

시작과 끝에 sil(silence)을 넣어준다

 

5. coding the data

HCopy를 이용해서 여러 하이퍼 파라미터 튜닝해주고, wave data를 MFCC로 변환해준다. 

 

6. creating flat start monophone

HMM 모델링

(LSTM, RNN 이 전부 HMM 기반 모델!)

 

7. recognizing the Test Data

Viterbi 이용, Decoding

 

8. Evaluating the Performance

 

*GMM-HMM > DNN-HMM 이게 일단 성능이 좋고 속도도 괜찮다!

요즘은 LSTM, Attention 등을 써서 end-to-end 로 가능한 모델들이 나오고 있지만, cost가 높다!