-
AI 챔피언쉽 - Naver Clovacall 데이터를 활용해 STT(Speech to Text) 문제 해결Tech 2021. 7. 23. 15:38
AI 챔피언쉽 - Naver Clovacall 데이터를 활용해 STT(Speech to Text) 문제 해결
0. STT 문제란 무엇인가
2020년의 필수 어플리케이션, 하면 떠오르는게 무엇인가요? 네, 그렇죠. 바로 화상회의 플랫폼인 줌(Zoom)이죠. 코로나19 바이러스가 전세계를 휩쓸며 비대면으로 소통하는 상황이 크게 늘어났습니다. 바이러스가 우리의 일상 생활의 모습 자체를 뒤흔들어 놓은 것인데요. 변화된 일상은 일시적인 현상으로 머물지 않고 한동안 유지되며 새로운 일상의 모습, 뉴노멀(New Normal)을 형성할 전망입니다.
뉴노멀에서 새롭게 일상속으로 들어온 것이 한두가지가 아닌데요. 그중에서도 비대면 영상 커뮤니케이션은 근무환경과 교육 현장에서 필수적인 소통 방식으로 떠올랐습니다.
자료 = 대한상공회의소
자료 = 2020 교육 기본 통계
먼 미래에 있을 일인 줄 알았던 원격 근무와 원격 수업은 이제 낯설지 않은 단어가 되었습니다. 대한상공회의소가 국내기업 300여개 인사담당자를 대상으로 ‘코로나19 이후 업무방식 변화 실태'를 조사한 결과, 코로나 19 이후 원격근무를 시행한 기업이 34.3%로 이전의 4배 이상 증가한 것으로 나타났습니다. 또한, 교육현장에서는 올해 4월부터 전국 초중고교생 540만명이 원격수업을 받고 있습니다.
이렇게 급격히 늘어난 사용량에 비해 원격 화상회의의 질은 제자리걸음하고 있습니다. 한국산업기술진흥협회가 올해 4월 발표한 조사결과에 따르면 1,035개의 응답기업 중 68%가 화상회의를 적극적으로 사용하고 있지 않으며, 36.9%가 국내외 제품을 막론하고 시스템 사용에 불만이 있다고 응답했습니다. 끊김 현상 등 네트워크의 불안정, 영상 및 음성의 품질상태의 불량이 주 원인이었는데요. 알고리마가 이번 AI 챔피언쉽에서 AI Board를 제안하게 된 이유도 바로 거기에 있었습니다.
AI Board는 화상회의에 실시간 캡셔닝 기술을 도입해 화상회의를 보다 효과적으로 진행할 수 있게 하는 솔루션입니다. 영상과 음성만 사용하는 화상회의는 인터넷 속도, 기기의 성능 등에 따라 정보 전달의 격차가 심합니다. 키보드를 이용해 채팅에 이를 다 받아쓰기는 불가능한 일이며, 간단한 정보만 전달할 수 있죠. 이를 보완하는 실시간 캡셔닝은 적은 리소스를 활용하여 정보를 효율적으로 전달함으로써 소통을 효과적으로 만들어줍니다.
이때 반드시 필요한 기술인 음성을 텍스트 데이터로 변환하는 처리기술을 STT(Speech to Text), 즉 음성인식이라고 하는데요. 알고리마는 네이버에서 공개한 대용량 한국어 음성 데이터를 딥러닝 모델에 학습시켜 STT 문제를 해결하고, AI Board에 필요한 기술을 구축하였습니다. 이번 글에서는 2020 AI 챔피언쉽에서 네이버 과제 부문 대상을 수상한 AI Board에 필요한 모델을 구축하기까지의 상세한 과정을 다뤄보려고 합니다.
1. 네이버에서 공개된 대용량 한국어 음성데이터의 특징
지금까지 공개된 대규모 음성 데이터를 바탕으로 딥러닝은 음성인식 분야에서 눈부신 성과를 이뤄낼 수 있었습니다. 그러나 현재까지 공개된 음성 데이터에는 한계가 존재했는데, 이를 정리하면 다음과 같았습니다.
- 대부분의 데이터가 1990년 초반에 만들어진 오래된 데이터라는 점
- 최근 공개된 대량 음성 코퍼스는 주로 영어나 중국어 등의 데이터로 구성되어 있고 특히 한국어로 된 음성 코퍼스의 공개는 극히 드물다는 점
- 대부분의 음성 데이터는 일상생활 속 대화나 오디오북의 형태를 띠고 있어 실제 AI 수요가 많은 목적지향형 대화(Task-Oriented dialogue)의 데이터가 부족한 점
이에 네이버에서 약 6만쌍, 51시간 분량의 대용량 한국어 음성데이터를 공개하였습니다. 네이버가 공개한 음성 데이터를 분석하며 클로바 콜 데이터의 가치를 다룬 논문 (https://arxiv.org/pdf/2004.09367.pdf)을 참고했습니다. 그 결과 네이버의 데이터가 다른 데이터들과 뚜렷하게 다른 점으로 1) 2000명의 화자가 특정 도메인의 주제로 대화하였으며 2) 대게 10초 이내의 길이로 구성된 데이터라는 것을 들 수 있었습니다.
AIHUB등 기존의 대용량 음성 데이터는 일상 대화를 주제로 한 것과 비교해 이번에 공개된 네이버의 데이터는 특정 도메인의 대화를 가져와 AI 서비스에 매칭하기가 용이하였습니다. 특히, 음식점 예약 및 클레임을 주 화제로 하는 목적지향형 대화라는 점에서 기존의 한계를 보완하는 데이터라는 점을 알 수 있었습니다.
<그림 1>
또한 논문은 최근에 AIHub를 통해 공개된 한국어 일상대화 음성 코퍼스인 ETRI와 공개된 네이버 클로바 콜 데이터의 단어, 문자, 음소, 길이를 비교하였습니다. <그림 1>를 참고하면 Clovacall 데이터가 비교적 짧은 문장과 단어로 생성되어 있다는것을 알 수 있습니다. 따라서 문장의 끝점을 추적해 처리하고 정렬하는 것이 쉬워 모델 학습에 용이했습니다.
2. 딥러닝 모델 구축 : ASR Model LAS vs Transfomer Decoder seq2seq model
<그림 2> 과제에 사용한 모델의 구조 정보
<그림 3> 음성 인식에 사용한 시퀀스-to-시퀀스 구조의 개요
딥러닝 모델을 구축하기 위해 위의 두가지 모델을 사용해 보았습니다. ‘ASR Model LAS’와 ‘Transfomer Decoder seq2seq model’인데요. 두 모델을 완성한 결과 성능과 효과에서 각각의 장단점을 발견할 수 있었습니다.
<그림 4> CER 계산식
평가지표로는 네이버가 지정한 CER(Character Error Rate)을 사용하였습니다. CER은 음성 인식 확률을 판단하는 측정 기준 중 하나인데요. 글자 또는 단어 단위의 삭제, 삽입, 대체 개수를 계산하여 인식률을 산출합니다. 이렇게 단어를 얼마나 정확하게 인식했는지 측정하고 오류를 판정하는 기준은 대상이 되는 언어마다 다릅니다. 한국어의 경우 조사를 사용하기 때문에 단어를 기준으로 하는 ‘단어 오류율'(WER: Word Error Rate)이 아닌 ‘글자 오류율'(CER: Character Error Rate)로 인식률을 측정합니다.
알고리마 팀이 사용한 간단한 데이터 전처리 방식은 다음과 같습니다.
1. STFT(Short Time Fourier Transfrom)
음성을 일정한 길이 단위로 자릅니다. 각각의 자른 단위를 의미있게 분석하기 위해서는 주파수 기준으로 데이터가 변환되어야 합니다. 이 과정을 STFT라고 합니다.
2. mel filter bank
mel filter bank는 사람의 청력은 1000Hz 이상의 주파수에 대해 덜 민감하다는 가정을 바탕으로 하는 전처리 방식입니다. 우리 귀의 특성상 1000Hz 까지는 주파수에 일정한 자극을 받지만 그 이후부터는 덜 민감하게 반응하죠. 이를 바탕으로 음성 데이터를 주파수 단위로 끊어 재정의할 때 1000Hz까지는 일정한 범위로 끊고 그 이상은 Log 스케일로 끊어서 재정의합니다.
이렇게 전처리를 마친 데이터를 위에서 언급했던 두 모델에 훈련시켰습니다.
1번 모델의 경우는 대표적인 음성인식 시퀀스-to-시퀀스 모델 중 하나인 DeepSpeech2를 참고와여 전체적으로 이와 유사한 방식으로 구성했습니다. 음성데이터를 벡터 정보로 변환하는 인코더 부분은 Convolution layer와 각 방향당 512개의 unit을 가진 3층의 Bidirectional LSTM layer로 구성하였으며, 해석된 벡터 정보를 자연어 정보로 재 해석하는 디코더 부분은 512개의 unit 을 가진 2층의 Unidirectional LSTM layer로 구성하였습니다. 또한 문장이 길어지면 디코더의 해석 성능이 떨어지는 것을 방지하기 위해 Location Aware 어텐션 메커니즘을 사용했습니다.
1번 모델의 제한적인 성능을 극복하기 위해 2번 모델의 경우 먼저 data augmentation을 통해 데이터의 수를 늘리는 방향을 우선적으로 선택했습니다. time-frequency masking과 dynamic time warping 기법을 활용하여 학습에 사용하는 데이터를 2배로 증가했습니다. 늘어난 데이터 만큼 훈련시간이 늘어나는 것을 고려하여 decoder부분을 transfomer decoder로 변형해 훈련시간을 단축했습니다. (이 방법은 multi-head self-attention을 이용해 sequential computation 을 줄여 더 많은 부분에서 병렬 처리가 가능하게 만들면서, 동시에 더 많은 단어들 간 dependency를 모델링할 수 있다는 장점이 있습니다.)
두 모델의 성능은 100번 학습(100에폭) 기준으로 모델1의 경우 CER이 17.6%, 모델2는 22.0%이었습니다. 모델1은 70에폭이후 과적합 되어 성능 향상이 더 이상 이루어지지 않았습니다. 이러한 한계점을 개선하기 위해 선택한 모델2의 경우 한정적인 학습시간 상 100번 학습(100에폭) 후 멈춰야 했지만 성능이 계속 향상되는 것을 볼 수 있었습니다.
<표 1> 모델1과 모델2의 실제 인식 결과(GT: 원 문장)
성능 외에도 두 모델에는 차이가 존재했습니다. 두 모델에 주입한 문장의 길이에 따라 효과가 달리 나타났는데요. 그 예시를 <표 1>에서 볼 수 있습니다. 모델1의 경우 긴 문장, 2의 경우 짧은 문장에서 보다 좋은 효과를 보였습니다.
3. 글을 마치며
음성 인식 분야는 학습 데이터가 어떤 분야의 데이터인가에 따라 정확도가 크게 달라집니다. AI 서비스가 쓰일 분야의 전문용어나 해당 분야에서 많이 사용하는 단어를 위주로 학습하면 정확도가 향상되죠. 따라서 음식점 예약과 클레임을 주제로 한 네이버 클로바콜의 데이터는 일상 대화나 줄글을 기록한 기존의 데이터에 비해 화상회의 서비스에 더 적합하였습니다.
알고리마 팀은 클로바콜의 데이터를 두 개의 모델에 학습시켜 흥미로운 결과를 얻었는데요. 두 모델은 성능과 효과 면에서 뚜렷한 차이를 보였습니다.
성능 면에서는 모델 1인 ‘ASR Model LAS’의 CER(인식률을 나타내는 지표)이 17.6%, 모델 2인 ‘Transfomer Decoder seq2seq model’의 CER이 22.0%로, 모델 2가 더 우수하였습니다. 모델 2는 학습 시간이 부족함에도 지속적인 성능 향상을 보여주었습니다.
그러나 모델 2가 모든 면에서 월등하진 않았습니다. 문장의 길이가 서로 다른 음성을 인식시켰을 때, 길이가 긴 문장은 모델 1이 더 효과적으로 인식하여 받아적었습니다. 모델 2는 상대적으로 길이가 짧은 문장에 효과가 좋았죠. 두 모델의 음성 인식 장단점이 서로 다르다는 것을 알 수 있었습니다.
이 프로젝트를 진행한 알고리마는 AI 전문 교육 서비스를 개발하고 제공하는 회사입니다. 이번 2020 AI 챔피언쉽에서 알고리마는 그간 AI 교육 전문회사로서 그간 쌓아온 노하우를 발휘하여 교육 도메인에 특화된 화상회의 서비스를 제안해 1위라는 영예를 획득했습니다.
음성 인식 분야는 특정한 도메인의 데이터가 많을수록 성능이 향상되므로 AI 교육 사업과 원격 수업 서비스를 접목하는 것은 어쩌면 아주 자연스러운 아이디어일 수 있습니다. 하지만 실제로 교육용 음성인식 모델을 구현하는 것은 상당히 까다로운 일이죠. 알고리마에는 AI를 전공한 우수한 엔지니어들이 있었기에 짧은 시간에 이루어진 프로젝트임에도 좋은 성과를 낼 수 있었습니다.
'Tech' 카테고리의 다른 글
[1급 기밀] 2021 인공지능 그랜드 챌린지 도전기 (0) 2021.08.13 Django Database Migration Conflict 해결하기 (1) 2021.08.13 스윗한 GCP IAM 입문 도우미 (0) 2021.08.11 NLP Transformer에 XL 끼얹기 : Transformer-XL(2019) 논문 리뷰 (0) 2021.08.06 아이들의 그림이 나타내는 것을 인공지능과 결합한다면 (0) 2021.07.23