지금까지의 한국어 음소 인식에는 은닉 마르코프-가우시안 믹스쳐 모델(HMM-GMM)이나 인공신경망-HMM을 결합한 하이브리드 시스템이 주로 사용되어 왔다. 하지만 이 방법은 성능 개선 여지가 적으며, 전문가에 의해 제작된 강제정렬(force-alignment) 코퍼스 없이는 학습이 불가능하다는 단점이 있다. 이 모델의 문제로 인해 타 언어를 대상으로 한 음소 인식 연구에서는 이 단점을 보완하기 위해 순환 신경망(RNN) 계열 구조와 Connectionist Temporal Classification(CTC) 알고리즘을 결합한 신경망 기반 음소 인식 모델이 연구된 바 있다. 그러나 RNN 계열 모델을 학습시키기 위해 많은 음성 말뭉치가 필요하고 구조가 복잡해질 경우 학습이 까다로워, 정제된 말뭉치가 부족하고 기반 연구가 비교적 부족한 한국어의 경우 사용에 제약이 있었다. 이에 본 연구는 강제정렬이 불필요한 CTC 알고리즘을 도입하되, RNN에 비해 더 학습 속도가 빠르고 더 적은 말뭉치로도 학습이 가능한 합성곱 신경망(CNN)을 기반으로 한국어 음소 인식 모델을 구축하여 보고자 시도하였다. 총 2가지의 비교 실험을 통해 본 연구에서는 한국어에 존재하는 49가지의 음소를 판별하는 음소 인식기 모델을 제작하였으며, 실험 결과 최종적으로 선정된 음소 인식 모델은 CNN과 3층의 Bidirectional LSTM을 결합한 구조로, 이 모델의 최종 PER(Phoneme Error Rate)은 3.26으로 나타났다. 이는 한국어 음소 인식 분야에서 보고된 기존 선행 연구들의 PER인 10~12와 비교하면 상당한 성능 향상이라고 할 수 있다.
지금까지의 한국어 음소 인식에는 은닉 마르코프-가우시안 믹스쳐 모델(HMM-GMM)이나 인공신경망-HMM을 결합한 하이브리드 시스템이 주로 사용되어 왔다. 하지만 이 방법은 성능 개선 여지가 적으며, 전문가에 의해 제작된 강제정렬(force-alignment) 코퍼스 없이는 학습이 불가능하다는 단점이 있다. 이 모델의 문제로 인해 타 언어를 대상으로 한 음소 인식 연구에서는 이 단점을 보완하기 위해 순환 신경망(RNN) 계열 구조와 Connectionist Temporal Classification(CTC) 알고리즘을 결합한 신경망 기반 음소 인식 모델이 연구된 바 있다. 그러나 RNN 계열 모델을 학습시키기 위해 많은 음성 말뭉치가 필요하고 구조가 복잡해질 경우 학습이 까다로워, 정제된 말뭉치가 부족하고 기반 연구가 비교적 부족한 한국어의 경우 사용에 제약이 있었다. 이에 본 연구는 강제정렬이 불필요한 CTC 알고리즘을 도입하되, RNN에 비해 더 학습 속도가 빠르고 더 적은 말뭉치로도 학습이 가능한 합성곱 신경망(CNN)을 기반으로 한국어 음소 인식 모델을 구축하여 보고자 시도하였다. 총 2가지의 비교 실험을 통해 본 연구에서는 한국어에 존재하는 49가지의 음소를 판별하는 음소 인식기 모델을 제작하였으며, 실험 결과 최종적으로 선정된 음소 인식 모델은 CNN과 3층의 Bidirectional LSTM을 결합한 구조로, 이 모델의 최종 PER(Phoneme Error Rate)은 3.26으로 나타났다. 이는 한국어 음소 인식 분야에서 보고된 기존 선행 연구들의 PER인 10~12와 비교하면 상당한 성능 향상이라고 할 수 있다.
For Korean phoneme recognition, Hidden Markov-Gaussian Mixture model(HMM-GMM) or hybrid models which combine artificial neural network with HMM have been mainly used. However, current approach has limitations in that such models require force-aligned corpus training data that is manually annotated b...
For Korean phoneme recognition, Hidden Markov-Gaussian Mixture model(HMM-GMM) or hybrid models which combine artificial neural network with HMM have been mainly used. However, current approach has limitations in that such models require force-aligned corpus training data that is manually annotated by experts. Recently, researchers used neural network based phoneme recognition model which combines recurrent neural network(RNN)-based structure with connectionist temporal classification(CTC) algorithm to overcome the problem of obtaining manually annotated training data. Yet, in terms of implementation, these RNN-based models have another difficulty in that the amount of data gets larger as the structure gets more sophisticated. This problem of large data size is particularly problematic in the Korean language, which lacks refined corpora. In this study, we introduce CTC algorithm that does not require force-alignment to create a Korean phoneme recognition model. Specifically, the phoneme recognition model is based on convolutional neural network(CNN) which requires relatively small amount of data and can be trained faster when compared to RNN based models. We present the results from two different experiments and a resulting best performing phoneme recognition model which distinguishes 49 Korean phonemes. The best performing phoneme recognition model combines CNN with 3hop Bidirectional LSTM with the final Phoneme Error Rate(PER) at 3.26. The PER is a considerable improvement compared to existing Korean phoneme recognition models that report PER ranging from 10 to 12.
For Korean phoneme recognition, Hidden Markov-Gaussian Mixture model(HMM-GMM) or hybrid models which combine artificial neural network with HMM have been mainly used. However, current approach has limitations in that such models require force-aligned corpus training data that is manually annotated by experts. Recently, researchers used neural network based phoneme recognition model which combines recurrent neural network(RNN)-based structure with connectionist temporal classification(CTC) algorithm to overcome the problem of obtaining manually annotated training data. Yet, in terms of implementation, these RNN-based models have another difficulty in that the amount of data gets larger as the structure gets more sophisticated. This problem of large data size is particularly problematic in the Korean language, which lacks refined corpora. In this study, we introduce CTC algorithm that does not require force-alignment to create a Korean phoneme recognition model. Specifically, the phoneme recognition model is based on convolutional neural network(CNN) which requires relatively small amount of data and can be trained faster when compared to RNN based models. We present the results from two different experiments and a resulting best performing phoneme recognition model which distinguishes 49 Korean phonemes. The best performing phoneme recognition model combines CNN with 3hop Bidirectional LSTM with the final Phoneme Error Rate(PER) at 3.26. The PER is a considerable improvement compared to existing Korean phoneme recognition models that report PER ranging from 10 to 12.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
한편, 모델 (b), (c)에서는 CNN 층를 통과한 출력 배열을 입력 자질로 받는 BiLSTM, BiGRU 층을 CNN 층의 최하단 부에 추가하여, CNN만으로 구성된 모델에 비해 성능 차이가 발생하는지를 확인하고자 하였다. 모델에 사용한 활성 함수 (Activation Function)로는 CNN에는 clipped rectified-linear unit(clipped-ReLU)를, RNN에는 하이퍼볼릭 탄젠트(Hyperbolic Tangent)를 사용하였다.
이런 상황을 인지하여, 본 연구에서는 (1) 해외 사례에서 보고된 바 있는 강제정렬 없이 학습을 수행할 수 있도록 제안된 음소 인식 모델에 CTC-알고리즘을 적용하였으며, (2) 영어와 다른 특성을 가진 한국어에서의 성능 개선 효과를 기대하며 합성곱 신경망 (CNN)을 기반으로 순환 신경망(RNN)을 결합한 형태의 음소 인식 모델을 개발하였다. 또한 본 연구에서는 (3) CNN과 RNN을 어떤 구조로 결합할 때, 몇 층의 RNN을 사용할 때 성능이 가장 좋은가에 대한 비교 실험을 진행하였다.
이러한 평가 방식은 해당 음성 파일에 대하여 음소 인식이 제대로 수행되었는지를 평가할 수는 있지만, 음성 파일에서의 음소 강제정렬 위치에 대한 정확도를 알기는 제한된다는 한계가 있다. 물론 해당 오디오 파일이 음소 강제정렬에 대한 정답지를 가지고 있지는 않으므로 직접적인 평가는 제한되나, 선행 연구와의 차이점이 나타나는지를 살펴보기 위해 이러한 비교 작업을 수행하여 보았다.
본 연구에서는 음소 인식기의 정확도를 측정하기 위해 예측한 레이블 배열 #와 정답지 Y 사이의 PER을 구하여 음소 인식기의 최종 성능을 평가하였다[18].
실험 1에서는 우선 VGG16 구조를 변형한 DeepCNN 모델을 구성하여 한국어에서 CNN 기반 모델의 음소 인식 성능을 확인하여 보고자 하였다, 또한 이 모델에 RNN 계열 신경망인 BiLSTM과 BiGRU를 붙여, RNN계열 신경망에 의한 성능 개선이 나타나는지를 확인하고자 하였으며, 추가적으로 BiLSTM과 BiGRU 중에 어느 신경망의 성능 향상이 더 컸는지 확인해보고자 하였다.
이에 실험 2에서는 먼저 성능 개선을 위해 RNN 계열 신경망 층을 실험 1과는 달리 맨 끝단이 아닌 중간에 결합하는 방식으로 모델을 재구성하였다. 이어서 RNN 계열 신경망 층의 최적 개수를 찾기 위하여 DeepCNN+RNN 모델에서 RNN 계열 신경망 층의 개수를 다르게 설정한 여섯 가지 모델을 비교하여, 몇 개 층의 RNN 계열 신경망을 쌓는 것이 성능 향상에 가장 효과적인지에 대해 알아보고자 하였다.
이에 본 연구에서는 실험 2를 추가로 설계하여 RNN이 음소 인식 태스크에서 최종적으로 어느 정도 수준까지 성능에 기여할 수 있는지 확인하고, 몇 개의 RNN 층을 추가해야 유의미한 성능 향상이 나타나는지를 확인하기로 하였다. 이에본 연구에서는 RNN 층의 개수를 서로 다르게 설정한 6개의 DeepCNN+RNN 모델을 추가로 구성하여 학습을 진행하였다.
이러한 결과는 DeepCNN의 출력값만으로는 음소에 대한 충분한 정보가 주어지지 못해서인 것으로 추정된다. 이에 본 연구에서는 이를 개선하고자 DeepCNN 모델의 중간층에 RNN계열 신경 망을 여러 겹 추가함으로써, DeepCNN으로부터 최종 출력값을 받아 학습하는 것이 아니라 중간 출력값을 받아 학습을 수행할 수 있도록 모델을 변경하기로 하였다.
이러한 가능성들을 감안한다면 본 연구의 결과는 충분한 의의를 가진다고 할 수 있을 것이다. 이에 본 연구에서는 이번 연구 성과를 토대로 하여 대략적인 음소 인식 정보에 기반하여 수행할 수 있는 태스크 중 하나인 발음 실수 감지에 대한 연구를 진행하여 보고자 한다.
가설 설정
CTC가 진행된 뒤에는 CTC-디코딩이 수행된다. CTC-디코딩은 CTC를 통해 얻은 시간 레이블 배열을 음소 배열 Y 로 변환시켜 주는 과정을 의미하며, CTC-디코딩 과정은 1) 시간 레이블에 포함되어 있는 중복 레이블을 제거한 뒤, 2) 공백 레이블을 제거하는 순서로 진행된다.
제안 방법
2회에 걸친 실험을 통하여 최종적으로 DeepCNN과 BiLSTM 을 결합한 모델이 가장 나은 성능을 보인다는 것을 확인한 뒤, 본 연구에서는 최종적으로 실험을 통해 구축한 7가지 모델 중 3개의 모델인 (a) DeepCNN과 (e) DeepCNN+ BiGRU, (h) DeepCNN+BiLSTM과 선행 연구 [13]에서 제안된 모델 간의 음소 강제 정렬 결과를 테스트 집합에서 임의로 1개의 음성 자료를을 선택하여 비교하여 보았다. 이러한 비교를 수행한 이유는 본 연구에서 구축된 모델들이 모두 CTC 디코딩을 통해 얻은 음소 아웃풋을 정답지와 비교하는 방식으로 평가를 진행하였기 때문이다.
각각의 세 가지 종류의 모델에 대해 8800개의 자료 집합을 대상으로 실험을 수행하고, PER 수치를 산출하여 표 1과 같은 결과를 얻었다.
이어서 4, 5장에서는 2차에 걸쳐 수행된 7가지 모델에 대한 실험을 토대로 DeepCNN을 기반으로 하여 RNN을 결합한 형태의 음소 인식 모델을 제안한다. 구체적으로 본 연구에서는 크게 두 가지의 비교 실험을 진행하였다. 먼저, 실험 1에서는 CTC 알고리즘을 바탕으로 CNN을 중점적으로 사용한 3가지 종류의 DeepCNN 모델을 구성하여 성능을 비교하였다.
끝으로 두 실험에서 공통된 전처리 과정으로 실제 발음을 반영하는 음소 형태가 아니라 국어 표기법에 따라 기록되어 있는 전사 자료를 한국어 표준 발음에 따르는 음소 배열 Y* 로 바꾸는 변환 작업을 진행하였다. 강제정렬된 말뭉치 없이 CTC 알고리즘으로 학습을 진행한다 하더라도, 음소 인식 학습을 위해서는 말뭉치의 각 문장들에 대해 정확한 음소 배열이 무엇인지를 알려 주는 정답지가 필요하였기 때문이다.
먼저, 실험 1에서는 CTC 알고리즘을 바탕으로 CNN을 중점적으로 사용한 3가지 종류의 DeepCNN 모델을 구성하여 성능을 비교하였다. 다음으로 실험 2에서는 실험 1 의 결과를 참고하여 RNN 계열 신경망의 성능 기여를 확인하기 위해 6개의 모델을 제작하여 성능을 비교하였다. 6장에서는 본 연구에서 제안한 모델의 가능성을 검토하고 기존 모델 과의 비교를 수행하며, 마지막으로 7장에서는 본 연구에서 제안한 모델의 의의와 향후 연구 방향을 논의한다.
위의 세 가지 실험 환경을 바탕으로 하여, 먼저 실험 1에서는 CTC 알고리즘을 바탕으로 CNN을 중점적으로 사용한 3가지 종류의 DeepCNN 모델을 구성하여 성능을 비교하였 다. 다음으로 실험 2에서는 실험 1의 결과를 참고하여 RNN 계열 신경망의 성능 기여를 확인하기 위해 4개의 모델을 제작하여 성능을 비교하였다.
두 실험에서 사용된 CNN 구조는 이미지 인식 분야에서 좋은 성과를 보인 바 있는 심층 CNN 기반 모델인 VGG16모델[16, 17, 22]의 구조를 변형한 것이다. VGG16 모델은 (224 x 224) 크기의 이미지를 입력 자질로 사용하도록 고안된 모델로, 16개~19개의 CNN과 연결 신경망(Fully Connected Neuron)을 깊게 쌓는 것이 특징이다.
하지만 신경망을 깊이 쌓아 추상적인 수준의 자질을 뽑아내야 하는 이미지와는 달리, 본 연구에서 사용하고자 하는 Mel-Spectrogram은 시간에 따라 주파수 대역폭별로 어떤 소리가 나타나는지, 그리고각 대역폭에 따라 소리의 강도가 어떠한지를 담고 있는 자질 이므로 이미지에 비해 뽑아내고자 하는 정보가 비교적 명확한 편이다. 따라서 이에 맞춰 본 연구에서는 VGG16 구조를 깊게 쌓지 않고 간략화하는 방식으로 모델을 구성하기로 하였다. 구체적인 실험 과정은 아래와 같다.
실험 1에서 공통으로 사용된 DeepCNN 모델의 구조는 VGG16 구조에서 세 겹의 같은 필터 사이즈의 CNN으로 구성된 컨벌루션 층(Convolution Layer)을 CNN 1층으로 대체 하는 방식으로 구조의 깊이를 줄였다. 또한 각 CNN 층마다 Max Pooling을 진행하였다.
하지만 실험 1과 달리 드랍아웃은 설정하지 않았 다. 또한 빠른 학습을 위해 모델의 입력 데이터에 배치 정규화(Batch Normalization)를 수행하였으며, 여섯 모델 모두 10 주기에서 손실 값의 변화폭이 작아 조기 중단을 통해 학습을 마무리하였다.
구체적으로 본 연구에서는 크게 두 가지의 비교 실험을 진행하였다. 먼저, 실험 1에서는 CTC 알고리즘을 바탕으로 CNN을 중점적으로 사용한 3가지 종류의 DeepCNN 모델을 구성하여 성능을 비교하였다. 다음으로 실험 2에서는 실험 1 의 결과를 참고하여 RNN 계열 신경망의 성능 기여를 확인하기 위해 6개의 모델을 제작하여 성능을 비교하였다.
1에 있는 세 모델에서 각 레이어를 모두 통과한 최종값은 CTC로 전달되어 시간 레이블이 예측된 뒤, 예측 결과를 바탕으로 손실값이 산출되었다. 모델 훈련에는 Adam 최적화 함수(Optimizer)를 사용하였으며, 과적합(overfitting) 을 막기 위해 드랍아웃(dropout) 수치로 20%를 설정하였고, 또한 음성 자료에 무작위로 백색 소음과 분홍색 소음을 추가 하였다. 세 모델 모두 15번째 주기(epoch)에서 손실값(loss)의 변화가 매우 작아, 조기 중단(Early Stopping)을 통해 학습을 마무리하였다.
모델 훈련에는 실험 1과 같이 Adam 최적화 함수를 사용하였으며, 과적합을 막기 위해 음성 자료에 무작위로 백색 소음과 분홍색 소음을 추가하였다.
본 연구에서는 제안된 알고리즘의 타당성을 증명하기 위해 두 가지 비교 실험을 진행하였으며, 이 두 실험에서 사용한 음성 말뭉치와 입력 자질, 전처리 과정은 Fig. 1과 같이 모두 동일했다. 먼저 본 연구에서 음소 인식 학습을 위해 사용한 음성 말뭉치는 국립국어원에서 제작한 '서울말 낭독체' 말뭉치이다[20].
학습을 위해 입력 자질로 사용한 Mel-Spectrogram을 시간 레이블 단위로 작게 잘라 사용하였으며, 입력 자질의 크기인 (8 X 40)은 (시간 레이블의 시간 X 주파수 대역)을 의미한다. 본실험에서 사용하는 음소 단위 입력 자질의 크기에 맞춰, CNN 층에서 사용하는 커널은 주파수 대역폭이 더 긴 직사각형 모양의 커널을 사용하였다.
모델 훈련에는 Adam 최적화 함수(Optimizer)를 사용하였으며, 과적합(overfitting) 을 막기 위해 드랍아웃(dropout) 수치로 20%를 설정하였고, 또한 음성 자료에 무작위로 백색 소음과 분홍색 소음을 추가 하였다. 세 모델 모두 15번째 주기(epoch)에서 손실값(loss)의 변화가 매우 작아, 조기 중단(Early Stopping)을 통해 학습을 마무리하였다.
실험 1에서 공통으로 사용된 DeepCNN 모델의 구조는 VGG16 구조에서 세 겹의 같은 필터 사이즈의 CNN으로 구성된 컨벌루션 층(Convolution Layer)을 CNN 1층으로 대체 하는 방식으로 구조의 깊이를 줄였다. 또한 각 CNN 층마다 Max Pooling을 진행하였다.
실험 2에서 사용된 6가지 모델 학습에서도 실험 1과 같이 Mel-Spectrogram을 입력 자질로 사용하였으며, CTC-디코딩을 통해 최종 음소 출력 배열을 얻은 후, 정답지와 비교하여 PER을 산출하는 식으로 평가를 수행하였다. 모델 훈련에는 실험 1과 같이 Adam 최적화 함수를 사용하였으며, 과적합을 막기 위해 음성 자료에 무작위로 백색 소음과 분홍색 소음을 추가하였다.
실험 2에서는 CNN을 사용한 구조에 RNN 층을 실험 1보다 2개, 4개 더 추가한 형태의 음소 인식 모델을 구성하였다. 실험 1에서는 DeepCNN 모델과 1겹의 RNN 층을 DeepCNN 모델의 하단에 추가한 모델을 사용하여 실험을 진행하였으며, BiLSTM 층이 포함된 모델이 DeepCNN 모델보다 더 나은 성능을 내는 것을 관찰할 수 있었다.
위의 세 가지 실험 환경을 바탕으로 하여, 먼저 실험 1에서는 CTC 알고리즘을 바탕으로 CNN을 중점적으로 사용한 3가지 종류의 DeepCNN 모델을 구성하여 성능을 비교하였 다. 다음으로 실험 2에서는 실험 1의 결과를 참고하여 RNN 계열 신경망의 성능 기여를 확인하기 위해 4개의 모델을 제작하여 성능을 비교하였다.
또한 HMM-GMM을 사용하여 음소 인식을 수행하기 위해서는 학습을 위해 전문가에 의해 제작된 강제정렬(force-alignment) 코퍼스가 요구되나, 공개되어 있는 강제정렬된 코퍼스는 한국어의 경우 매우 부족한 상황이다. 이런 상황을 인지하여, 본 연구에서는 (1) 해외 사례에서 보고된 바 있는 강제정렬 없이 학습을 수행할 수 있도록 제안된 음소 인식 모델에 CTC-알고리즘을 적용하였으며, (2) 영어와 다른 특성을 가진 한국어에서의 성능 개선 효과를 기대하며 합성곱 신경망 (CNN)을 기반으로 순환 신경망(RNN)을 결합한 형태의 음소 인식 모델을 개발하였다. 또한 본 연구에서는 (3) CNN과 RNN을 어떤 구조로 결합할 때, 몇 층의 RNN을 사용할 때 성능이 가장 좋은가에 대한 비교 실험을 진행하였다.
이에 정답지의 제작을 위해 공개 소프트웨어인 Grapheme to Phoneme(G2P) 프로그램인 KoG2P를 사용하여 전사-음소 변환 작업을 수행하였다[21]. 이어서 변환된 음성 말뭉치를 Train 6, Validation 1, Test 1의 비율로 무작위로 나누어 학습에 사용하였다. 학습을 통해 1 프레임당 1개의 시간 레이블 C가 추출되도록 하였으며, 이렇게 추출된 시간 레이블 C는총 50개의 유형으로 구성되어 있다.
실험 1에서 RNN 계열 신경망이 DeepCNN 모델의 성능 향상에 기여한다는 점을 확인하기는 했지만, 세 모델 모두 기대에 미치는 성능을 보여주지 못했다. 이에 실험 2에서는 먼저 성능 개선을 위해 RNN 계열 신경망 층을 실험 1과는 달리 맨 끝단이 아닌 중간에 결합하는 방식으로 모델을 재구성하였다. 이어서 RNN 계열 신경망 층의 최적 개수를 찾기 위하여 DeepCNN+RNN 모델에서 RNN 계열 신경망 층의 개수를 다르게 설정한 여섯 가지 모델을 비교하여, 몇 개 층의 RNN 계열 신경망을 쌓는 것이 성능 향상에 가장 효과적인지에 대해 알아보고자 하였다.
하지만 세 모델 모두 만족스러운 수준의 PER수치를 보이지는 못하였다. 이에 실험 2에서는 성능 개선을 위해 영어 음성 인식 분야에서 높은 성능을 보고한 바 있는 Amodei[23]의 DeepSpeech2 모델의 구조를 참고하여 모델을 재설계하였다.
이에 본 연구에서는 실험 2를 추가로 설계하여 RNN이 음소 인식 태스크에서 최종적으로 어느 정도 수준까지 성능에 기여할 수 있는지 확인하고, 몇 개의 RNN 층을 추가해야 유의미한 성능 향상이 나타나는지를 확인하기로 하였다. 이에본 연구에서는 RNN 층의 개수를 서로 다르게 설정한 6개의 DeepCNN+RNN 모델을 추가로 구성하여 학습을 진행하였다.
학습을 위해 입력 자질로 사용한 Mel-Spectrogram을 시간 레이블 단위로 작게 잘라 사용하였으며, 입력 자질의 크기인 (8 X 40)은 (시간 레이블의 시간 X 주파수 대역)을 의미한다. 본실험에서 사용하는 음소 단위 입력 자질의 크기에 맞춰, CNN 층에서 사용하는 커널은 주파수 대역폭이 더 긴 직사각형 모양의 커널을 사용하였다.
이렇게 실험에 사용된 모델은 (d) Deep CNN에 BiGRU 층을 한 겹(1hop) 사용한 모델, (e) Deep CNN에 BiGRU을 세 겹(3hop) 사용한 모델, (f) Deep CNN에 BiGRU 층을 다섯 겹(5hop) 사용한 모델, (g) Deep CNN에 BiLSTM을 한 겹(1hop) 사용한 모델, (h) Deep CNN에 BiLSTM을 세 겹(3hop) 사용한 모델, (i) Deep CNN에 BiLSTM을 다섯 겹(5hop) 사용한 모델의 총 6가지이다. 한편 DeepCNN 층은 실험 1의 DeepCNN 모델과 마찬가지로 CNN을 각각 1층씩 쌓는 구조로 구성하였으며, 각각의 CNN 층마다 Max Pooling 을 진행하였다. 활성 함수와 손실값의 산출은 실험 1과 동일하게 설정하였다.
대상 데이터
먼저 본 연구에서 음소 인식 학습을 위해 사용한 음성 말뭉치는 국립국어원에서 제작한 '서울말 낭독체' 말뭉치이다[20].
먼저 본 연구에서 음소 인식 학습을 위해 사용한 음성 말뭉치는 국립국어원에서 제작한 '서울말 낭독체' 말뭉치이다[20]. 서울말 낭독체 말뭉치는 3대째 이상 서울에 살고 있는 20~60대 남, 여 서울말 사용자 80명의 음성 녹음 및 전사 파일로 구성되어 있다. 음성 파일의 개수는 총 71,216개 이며, 분량은 약 180시간으로 모든 음성 파일은 한 문장 단위로 실험실 환경에서 녹음되어 있다.
실험 1에서는 Fig. 2와 같이 VGG16 구조를 간략화한 DeepCNN 기반 3 가지의 모델 구조를 구성하여 비교를 수행하 였다. 비교에 활용된 모델들은 (a) CNN만 사용한 모델, (b) CNN과 BiLSTM 층을 사용한 모델, 그리고 (c) CNN과 BiGRU 층을 사용한 모델의 세 종류이다.
서울말 낭독체 말뭉치는 3대째 이상 서울에 살고 있는 20~60대 남, 여 서울말 사용자 80명의 음성 녹음 및 전사 파일로 구성되어 있다. 음성 파일의 개수는 총 71,216개 이며, 분량은 약 180시간으로 모든 음성 파일은 한 문장 단위로 실험실 환경에서 녹음되어 있다. 각 문장의 발화 시간은약 3초에서 10초 사이였으며 평균 시간은 약 5.
샘플링 주파수는 모두 16,000Hz이다. 전사 자료는 19개의 수필 및 단편소설을 한 문장으로 나누어 놓은 형태로, 대략 2,000문장으로 구성되어 있다. 하지만 검수를 진행한 결과 전사 자료를 잘못 읽은 음성 파일과 명확하지 않은 발음으로 읽은 음성 파일이 다소 섞여 있는 것이 확인되어, 문제가 있는 파일은 실험에 사용하지 않았다.
데이터처리
실험 2에서도 실험 1과 마찬가지로 8800개의 음성 자료 집합을 사용하여 PER을 산출함으로써 모델 평가를 진행하였으며, 그 결과는 표 2와 같다.
이론/모형
다음으로 두 실험의 입력 자질로 Mel-Spectrogram을 사용하였다. Mel 주파수 대역폭은 일반적으로 사용하는 대역폭인 40으로 설정하였으며, 프레임은 5ms 길이로 각각 나누었다.
한편, 모델 (b), (c)에서는 CNN 층를 통과한 출력 배열을 입력 자질로 받는 BiLSTM, BiGRU 층을 CNN 층의 최하단 부에 추가하여, CNN만으로 구성된 모델에 비해 성능 차이가 발생하는지를 확인하고자 하였다. 모델에 사용한 활성 함수 (Activation Function)로는 CNN에는 clipped rectified-linear unit(clipped-ReLU)를, RNN에는 하이퍼볼릭 탄젠트(Hyperbolic Tangent)를 사용하였다. Clipped-ReLU의 경우 수식은 아래와 같다.
강제정렬된 말뭉치 없이 CTC 알고리즘으로 학습을 진행한다 하더라도, 음소 인식 학습을 위해서는 말뭉치의 각 문장들에 대해 정확한 음소 배열이 무엇인지를 알려 주는 정답지가 필요하였기 때문이다. 이에 정답지의 제작을 위해 공개 소프트웨어인 Grapheme to Phoneme(G2P) 프로그램인 KoG2P를 사용하여 전사-음소 변환 작업을 수행하였다[21]. 이어서 변환된 음성 말뭉치를 Train 6, Validation 1, Test 1의 비율로 무작위로 나누어 학습에 사용하였다.
성능/효과
각 71,216개의 음성 파일에서 추출한 벡터는 평균 176.5개의 음소로 구성되었으며, 벡터 하나에서 추출된 최대 음소 개수는 416개였다.
넷째, 실험 1과 실험 2에서의 비교 실험에서 BiLSTM을 사용한 모델이 BiGRU를 사용한 모델보다 성능이 더 높았다. 이는 음성 인식 태스크에서 BiGRU보다 BiLSTM을 사용할때 성능이 더 좋다고 알려진 해외의 연구사례[25]에서의 보고와 같은 결과이며, 일반적으로는 GRU가 LSTM보다 성능이 높다는 시계열 데이터 모델링 분야[26]와는 다른 결과이다.
3에서도 확인할 수 있듯이, 여섯 모델의 결과가 모두 비교적 비슷한 경향을 나타냈다. 다만 (a) DeepCNN 모델의 결과는 음소 IY(/i/, ㅣ)를 예측하지 못하였고, 음소 NN(/n/, -ㄴ)의 경우 비교적 발음이 비슷한 NX(/ŋ/, -ㅇ)로 오인식한 것을 확인할 수 있었다. 그러나 NN과 NX의 경우는 사람들의 발음 습관에 따라 발음이 혼용되는 경향이 있으므로 두 발음 모두 정답으로 인정되는 경우도 있기 때문에[13], 이는 비교적 경미한 오류로 판단된다.
또한 이는 선행 연구[24]에서 6층 이상의 RNN 모델은 성능 향상이 되지 않는다고 보고한 결과와 같다. 더불어 실험 2에서 RNN 층이 깊어질수록 학습 시간이 매우 늘어났으며, 이에 본 연구에서는 성능 향상과 학습 시간의 균형을 맞추기 위해 3층의 양방향 RNN 층을 사용 하는 것이 적합하다는 결론을 얻었다.
둘째로, CNN과 RNN을 함께 사용하는 것이 CNN과 RNN 각각 사용한 것보다 한국어 음소 인식 분야에서 성능을 개선할 수 있는 방안이라는 것을 실험 1을 통해 확인할 수있었다.
둘째로, CNN과 RNN을 함께 사용하는 것이 CNN과 RNN 각각 사용한 것보다 한국어 음소 인식 분야에서 성능을 개선할 수 있는 방안이라는 것을 실험 1을 통해 확인할 수있었다. 본 실험은 CNN과 RNN을 함께 사용하여 최초로 한국어 음소인식 태스크를 수행하였다는 점에서 의의가 크다고 할 수 있다. 실험 1의 결과를 볼 때, DeepCNN만 사용한 모델의 경우 출력값을 확인한 결과 확인된 대부분의 오류는 발음 시간이 길고 진폭이 작은 자음을 놓치는 경우에 해당하였으며, 다른 오류들은 발음상 비슷한 음소가 잘못 인식되는 경우가 대부분이었다.
본 연구에서 최종적으로 제안한 모델의 최종 PER 수치는 3.26이다. 다른 실험과 테스트 셋의 종류 및 실험 방법 등이 다르기 때문에 직접적인 비교는 불가능하나, 이는 한국어 음소 인식 연구 사례로 가장 최근에 보고된 바 있는 [13]의 음소 인식기 성능보다 비교적 좋은 결과라고 할 수 있다.
셋째로, DeepCNN과 3층의 BiLSTM을 함께 사용한 모델이 가장 뛰어난 성능을 나타내는 것이 확인되었다. 실험 2에서 BiGRU를 3층 사용할 때보다 5층 사용할 때 성능이 더 좋았으며, BiLSTM의 경우 5층 사용하였을 때보다 3층을 사용하였을 때 성능이 더 높았다.
실험 1과 유사하게 DeepCNN과 BiLSTM을 함께 사용한 모델이 가장 나은 PER 수치를 보였다. DeepCNN과 RNN 계열이 함께 사용된 모델 간에서의 성능 차이를 비교하여 보았을 때, 실험 1에 사용된 (b), (c) 모델에 비해 RNN 층의 위치를 변경한 (d), (g) 모델에서 PER이 20 이상 좋아진 것으로 나타났다.
실험 2에서는 CNN을 사용한 구조에 RNN 층을 실험 1보다 2개, 4개 더 추가한 형태의 음소 인식 모델을 구성하였다. 실험 1에서는 DeepCNN 모델과 1겹의 RNN 층을 DeepCNN 모델의 하단에 추가한 모델을 사용하여 실험을 진행하였으며, BiLSTM 층이 포함된 모델이 DeepCNN 모델보다 더 나은 성능을 내는 것을 관찰할 수 있었다. 하지만 세 모델 모두 만족스러운 수준의 PER수치를 보이지는 못하였다.
본 실험은 CNN과 RNN을 함께 사용하여 최초로 한국어 음소인식 태스크를 수행하였다는 점에서 의의가 크다고 할 수 있다. 실험 1의 결과를 볼 때, DeepCNN만 사용한 모델의 경우 출력값을 확인한 결과 확인된 대부분의 오류는 발음 시간이 길고 진폭이 작은 자음을 놓치는 경우에 해당하였으며, 다른 오류들은 발음상 비슷한 음소가 잘못 인식되는 경우가 대부분이었다. 이러한 오류 경향은 RNN 층을 DeepCNN 모델의 중간에 추가함으로써 뚜렷이 개선되는 것이 관찰되었는데, 이를 통해 CNN이 음소 각각의 특성에 대해서는 학습하지만 음소의 순간적인 변화를 감지하는 데 있어서만큼은 RNN이 CNN보다 더 나은 구조라는 것을 확인할 수 있었다.
셋째로, DeepCNN과 3층의 BiLSTM을 함께 사용한 모델이 가장 뛰어난 성능을 나타내는 것이 확인되었다. 실험 2에서 BiGRU를 3층 사용할 때보다 5층 사용할 때 성능이 더 좋았으며, BiLSTM의 경우 5층 사용하였을 때보다 3층을 사용하였을 때 성능이 더 높았다. 또한 이는 선행 연구[24]에서 6층 이상의 RNN 모델은 성능 향상이 되지 않는다고 보고한 결과와 같다.
실험을 통하여 CNN만을 사용한 모델이나 BiGRU를 하단에 추가한 모델에 비해 BiLSTM을 하단에 추가한 모델이 가장 나은 PER 결과를 보이는 것을 확인할 수 있었다. 이 결과를 통해 CNN모델에 RNN층을 추가하는 것이 성능 향상에 도움이 된다는 것을 알 수 있었으며, BiGRU보다 BiLSTM의 성능 개선이 더 크다는 것을 알 수 있었다.
실험을 통하여 CNN만을 사용한 모델이나 BiGRU를 하단에 추가한 모델에 비해 BiLSTM을 하단에 추가한 모델이 가장 나은 PER 결과를 보이는 것을 확인할 수 있었다. 이 결과를 통해 CNN모델에 RNN층을 추가하는 것이 성능 향상에 도움이 된다는 것을 알 수 있었으며, BiGRU보다 BiLSTM의 성능 개선이 더 크다는 것을 알 수 있었다. 하지만 세 모델 모두 선행 연구에 비해 만족스러운 결과를 내지 못했다.
실험 1의 결과를 볼 때, DeepCNN만 사용한 모델의 경우 출력값을 확인한 결과 확인된 대부분의 오류는 발음 시간이 길고 진폭이 작은 자음을 놓치는 경우에 해당하였으며, 다른 오류들은 발음상 비슷한 음소가 잘못 인식되는 경우가 대부분이었다. 이러한 오류 경향은 RNN 층을 DeepCNN 모델의 중간에 추가함으로써 뚜렷이 개선되는 것이 관찰되었는데, 이를 통해 CNN이 음소 각각의 특성에 대해서는 학습하지만 음소의 순간적인 변화를 감지하는 데 있어서만큼은 RNN이 CNN보다 더 나은 구조라는 것을 확인할 수 있었다.이에 본 연구에서는 음소 인식 영역에서는 CNN, RNN을 함께 사용할 때, CNN의 단점을 해결할 수 있음을 알 수 있었다.
[13]의 연구 사례는 147,263개의 테스트 셋을 대상으로 19,541개의 불일치를 보여, 12 정도의 PER 값이 나온 것으로 보고되고 있다. 이를 통해 기존의 HMM-GMM 방식이나 하이브리드 방식을 사용하지 않고 딥 러닝만을 사용해서도 음소 인식 기의 학습이 가능하다는 것을 확인할 수 있었다. 또한 결과 외에 본 연구를 통해 추가적으로 알게 된 사실은 다음과 같다.
이러한 오류 경향은 RNN 층을 DeepCNN 모델의 중간에 추가함으로써 뚜렷이 개선되는 것이 관찰되었는데, 이를 통해 CNN이 음소 각각의 특성에 대해서는 학습하지만 음소의 순간적인 변화를 감지하는 데 있어서만큼은 RNN이 CNN보다 더 나은 구조라는 것을 확인할 수 있었다.이에 본 연구에서는 음소 인식 영역에서는 CNN, RNN을 함께 사용할 때, CNN의 단점을 해결할 수 있음을 알 수 있었다.
첫째로, CTC가 강제정렬된 말뭉치 없이도 음소 인식 태스크를 수행할 수 있게 해 준다는 것이 학습 결과를 통해 입증되었다. 더욱이 선행 연구 결과와의 비교를 통해 딥러닝과 CTC 모델을 사용하여 대략의 음소 위치까지 어느 정도 확인할 수 있었다는 것을 고려한다면, 강제정렬 코퍼스를 만드는 태스크에서도 본 연구에서 제안된 방법이 어느 정도 해결책이 될 수 있을 것으로 예상된다.
후속연구
첫째로, CTC가 강제정렬된 말뭉치 없이도 음소 인식 태스크를 수행할 수 있게 해 준다는 것이 학습 결과를 통해 입증되었다. 더욱이 선행 연구 결과와의 비교를 통해 딥러닝과 CTC 모델을 사용하여 대략의 음소 위치까지 어느 정도 확인할 수 있었다는 것을 고려한다면, 강제정렬 코퍼스를 만드는 태스크에서도 본 연구에서 제안된 방법이 어느 정도 해결책이 될 수 있을 것으로 예상된다.
이로 인해 모델이 음성 파일 개개의 정확한 실제 음소를 파악하지 못하고, 모델 기반으로만 음소를 파악하였을 수도 있다. 하지만 음성 합성 처럼 대략적인 음소 인식 정보만 있어도 충분한 태스크에는 본 연구의 방법론이 충분히 효과적으로 활용될 수 있으며, 전문가들이 정밀한 강제정렬 말뭉치를 제작하는데도 본 연구의 결과물이 초벌 작업으로 유용하게 사용될 수 있다. 이러한 가능성들을 감안한다면 본 연구의 결과는 충분한 의의를 가진다고 할 수 있을 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
음소 인식을 수행하기 위해 기존에는 인풋 자질은 주로 무엇이 사용되었는가?
음소 인식은 음성인식(Automation Speech Recognition) 분야에서의 주 요소 기술에 해당하는 작업으로, 주어진 음성으로부터 발음의 기본 단위에 해당하는 음소(phoneme)를 판별하는 작업이다. 음소 인식을 수행하기 위해 기존에는 인풋 자질(Feature)로 MFCC(Mel-Frequency Cepstrum Coefficient) 를 사용한 은닉 마르코프 모델(HMM)과 가우시안 믹스처 모델(GMM)과 같은 확률 함수 모델이 일반적으로 사용되었다[1-4]. 하지만 인공 신경망이 최근 들어 다양한 분야에서 성능을 내기 시작하면서, 점차 심층 신경망 구조를 기반으로 음소 인식에서 더 나은 성능을 내고자 하는 시도가 계속해서 이루어지고 있다[5-7].
CTC의 구조가 갖는 형태는?
CTC의 구조는 입력 신호 X에 대해 신호 배열 X로부터 체인 룰(Chain Rule)로 연결된 배열 Y를 찾는 형태로, 수식은 다음과 같다. 음소 인식의 경우 입력 신호 X는 오디오 데이터가 되며, 배열 Y는 오디오 데이터에 대한 음소 인식 결과가 된다.
하이브리드 시스템과 은닉 마르코프-가우시안 믹스쳐 모델의 단점은?
지금까지의 한국어 음소 인식에는 은닉 마르코프-가우시안 믹스쳐 모델(HMM-GMM)이나 인공신경망-HMM을 결합한 하이브리드 시스템이 주로 사용되어 왔다. 하지만 이 방법은 성능 개선 여지가 적으며, 전문가에 의해 제작된 강제정렬(force-alignment) 코퍼스 없이는 학습이 불가능하다는 단점이 있다. 이 모델의 문제로 인해 타 언어를 대상으로 한 음소 인식 연구에서는 이 단점을 보완하기 위해 순환 신경망(RNN) 계열 구조와 Connectionist Temporal Classification(CTC) 알고리즘을 결합한 신경망 기반 음소 인식 모델이 연구된 바 있다.
참고문헌 (27)
Gales, Mark JF. "Maximum likelihood linear transformations for HMM-based speech recognition," Computer Speech & Language, Vol.12, No.2, pp.75-98, 1998.
Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, "Gradientbased learning applied to document recognition," Proceedings of the IEEE, Vol.86, No.11, pp.2278-2324, 1998.
Schwarz, Petr, Pavel Matejka, and Jan Cernocky. "Towards lower error rates in phoneme recognition," International Conference on Text, Speech and Dialogue. Springer, Berlin, Heidelberg, 2004.
Waibel, Alexander, et al., "Phoneme recognition using timedelay neural networks," Readings in Speech Recognition, 1990. 393-404.
Bengio, Yoshua. "A connectionist approach to speech recognition," Advances in Pattern Recognition Systems Using Neural Network Technologies, pp.3-23. 1993.
Mohamed, Abdel-rahman, George E. Dahl, and Geoffrey Hinton. "Acoustic modeling using deep belief networks," IEEE Transactions on Audio, Speech, and Language Processing, Vol.20, No.1, pp.14-22, 2012.
Ardussi Mines, M., Hanson, B. F., & Shoup, J. E. "Frequency of Occurrence of Phonemes in Conversational English," Language and Speech, Vol.21, No.3, pp.221-241, 1978.
Ji-Young Shin. "Phoneme and Syllable Frequencies of Korean Based on the Analysis of Spontaneous Speech Data," Communication Sciences and Disorders, Vol.13, No.2, pp.193-215, 2008.
Seltzer, Michael L., and Jasha Droppo. "Multi-task learning in deep neural networks for improved phoneme recognition," Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on. IEEE, 2013.
Graves, Alex, Navdeep Jaitly, and Abdel-rahman Mohamed. "Hybrid speech recognition with deep bidirectional LSTM," Automatic Speech Recognition and Understanding (ASRU), 2013 IEEE Workshop on. IEEE, 2013.
Graves, Alex, Abdel-rahman Mohamed, and Geoffrey Hinton. "Speech recognition with deep recurrent neural networks," Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on. IEEE, 2013.
Minsoo Na and Minhwa Chung, "Assistive Program for Automatic Speech Transcription based on G2P Conversion and Speech Recognition," Proc. Conference on Korean Society of Speech Sciences, pp.131-132, 2016.
Palaz, Dimitri, Mathew Magimai Doss, and Ronan Collobert. "Convolutional neural networks-based continuous speech recognition using raw speech signal," Acoustics, Speech and Signal Processing (ICASSP), 2015 IEEE International Conference on. IEEE, 2015.
Heck, Michael, et al., "Ensembles of Multi-scale VGG Acoustic Models," Proc. Interspeech 2017 (2017): 1616-1620.
Zhang, Ying, et al., "Towards end-to-end speech recognition with deep convolutional neural networks," arXiv preprint arXiv:1701.02720 (2017).
Graves, Alex, et al., "Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks," Proceedings of the 23rd international conference on Machine learning. ACM, 2006.
Hori, Takaaki, et al., "Advances in joint CTC-attention based end-to-end speech recognition with a deep CNN encoder and RNN-LM," arXiv preprint arXiv:1706.02737 (2017).
National Institute of the Korean Language (NIKL), Seoul Reading Speech Corpus("서울말 낭독체 발화 말뭉치"), 2003. URL: https://ithub.korean.go.kr
Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition," arXiv preprint arXiv:1409.1556 (2014).
Amodei, Dario, et al., "Deep speech 2: End-to-end speech recognition in english and mandarin," International Conference on Machine Learning. 2016.
Xiong, Wayne, et al., "The Microsoft 2016 conversational speech recognition system," Acoustics, Speech and Signal Processing (ICASSP), 2017 IEEE International Conference on. IEEE, 2017.
Sainath, Tara N., et al., "Convolutional, long short-term memory, fully connected deep neural networks," Acoustics, Speech and Signal Processing (ICASSP), 2015 IEEE International Conference on. IEEE, 2015.
Chung, Junyoung, et al., "Empirical evaluation of gated recurrent neural networks on sequence modeling," arXiv preprint arXiv:1412.3555 (2014).
Xiong, Wayne, et al., "The Microsoft 2016 conversational speech recognition system," Acoustics, Speech and Signal Processing (ICASSP), 2017 IEEE International Conference on. IEEE, 2017.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.