AI4NLP

IEEE ICASSP 2021 SELF-ATTENTIVE VAD: CONTEXT-AWARE DETECTION OF VOICE FROM NOISE 후기 및 간단설명 본문

Speech Recognition

IEEE ICASSP 2021 SELF-ATTENTIVE VAD: CONTEXT-AWARE DETECTION OF VOICE FROM NOISE 후기 및 간단설명

nlp user 2021. 1. 30. 21:47

https://2021.ieeeicassp.org/

  이번에 IEEE ICASSP 2021에 제출하였던 논문이 accept되어서 논문에 대한 포스팅을 올리게 되었다.

돌이켜보면 2020년, 팀장님과 둘이서 딥러닝 연구 개발을 하면서 힘든 일이 많았는데, 개발에 대한 부분들은 대회 입상(이전 포스트 참고 (1), (2) ), 연구에 대한 부분들은 이번 논문으로 어느정도 해소된 것 같아 기쁘다.

 

  우선 논문을 소개하기에 앞서 Voice Activity Detection 통칭 VAD라고 하는 task에 대해 짚고 가야할 필요가 있다. VAD란 Voice Activity Detection의 약자로서 오디오 파일 내에서 음성이 있는 영역을 찾아주는 task이다. 음성인식의 예를 들어보자면, 음성인식은 상대적으로 짧으면서, 노이즈가 적은 오디오 파일에 대해서 학습하게 된다. 하지만 이러한 알고리즘이 가령 유튜브 영상의 음성과 같은 부분에 적용했을 때에는 노이즈가 있는 부분들도 음성으로 인식하는 문제가 발생하게된다. 이러한 문제를 해결하기 위해 여러 음성 작업들에서 전처리단에 VAD가 위치하게 되었다. 

  회사(보이스루)에서 VAD를 연구하게 된 이유는 간단하다. 회사에서 제공하는 JAMAKE(링크)라는 서비스가 있는데  유튜버들의 의뢰를 받아 해당 유튜버의 영상을 다국어 자막으로 번역하는 서비스를 제공하고 있다. 회사에서 제공하는 서비스의 파이프라인중에서 싱크작업 이라고 하는 것이 있었는데, 영상 안에서 음성이 있는 부분, 즉 번역을 해야하는 영역을 찾아아주는 작업이 있었다. 싱크작업이 하는 역할이 기존에 VAD task(길이가 길고, noise가 섞인 오디오 파일에서 음성 영역 검출)에서 하는 것과 같았고, 결과적으로는 싱크작업의 반자동화를 위해서 VAD를 연구, 개발하게 되었다. 

  기존의 딥러닝 기반의 VAD 모델(bDNN, ACAM)등이 있는데, 각 acoustic frame에 대해서 각각의 frame이 음성인지 아닌지를 맞추는 이진분류 task였다. 하지만 이러한 모델들은 우리가 해결하고자한 싱크작업에서 사용하는 유튜브 영상 (복잡하고 다양한 노이즈를 갖고 있음)에 서는 잘 작동하지 않는 아쉬움이 있었고, 이러한 문제를 해결하기 위해 제출 논문에서 제안하는 VAD 모델 구조를 개발하게 되었다.

 

  이번 논문  SELF-ATTENTIVE VAD: CONTEXT-AWARE DETECTION OF VOICE FROM NOISE에서 제안하는 것은 셀프 어텐션 기반의 VAD이다. 이전의 논문들에서 제안하였던 bDNN, ACAM 등의 아키텍쳐는 모두 acoustic frame 레벨에서 contextual information을 모델링하는 것에 초점을 두고 있었다. contextual information이란 한국어로 번역하면 문맥 정보인데, 각 음성 파일 안에서 어떤 특정 프레임이 음성인지 아닌지를 판단할 때에 사용하는 다른 frame의 정보 정도로 이해될 수 있다. 제출 논문에서는 self attention 아키텍쳐가 다른 아키텍쳐보다 contextual information을 토대로 특정 frame이 음성인지 아닌지를 판단하는데에 효율적이라는 것을  입증하는 데에 초점을 맞췄다. 논문에서 제안하는 self attention 기반의 VAD는 기존 transformer의 encoder와 형태가 같다. 구조적으로 한가지 다른 점이라면 출력단의 결과물을 가지고 바로 분류하는 것이 아니라 bDNN에서 사용하였던 boosted classifier라는 구조를 이용하여, 다양한 contextual information에서 추출된 frame의 결과물의 평균값을 토대로 음성/비음성을 분류한다. 그 결과 n개의 음성 frame을 입력으로 받아 n개의 출력을 얻고, 다시 슬라이딩하여 n개의 음성 frame을 입력으로 받고, n개의 출력을 얻은 후, 최종적으로는 특정 frame의 평균값을 이용하여 그 frame이 음성인지 아닌지를 분류하게 된다. 

 

 

Boosted Classifier 수식
Boosted Classifier 구조

 

  논문을 쓸 때에 실험에 굉장히 많은 신경을 썼다. 기존의 VAD 논문들은 TIMIT과 같은 speech corpus에 noisex-92와 같은 noise corpus를 합성하여 학습 데이터를 만들었다. 제출 논문에서는 크게 2가지 차별점을 갖고 있다. 1) 난이도가 다른 학습 데이터 2개의 시나리오(TIMIT+MUSAN ; 단일 시나리오, TIMIT+ MR, Sound effect library, YoutubeSoundEffect, YoutubeEditorSoundEffect ; 복합 시나리오)를 사용하였단 점 2) 테스트 데이터로는 학습데이터와는 완전 다른 4개(Noisex92, 생활소음 데이터, 영화, 유튜브)의 데이터를 사용하였다는 점. 이러한 환경에서 실험을 하였을 때에 아래와 같은 결과를 얻을 수 있었다. 

 

* MUSAN은 MUSAN corpus만 noise로 사용한 단일 시나리오 학습의 결과이며, MIX는 위에 언급한 4개의 noise corpus를 사용한 복합 시나리오 학습의 결과이다.

 

Noisex-92 test 결과

 

  Noisex-92의 경우는 기존 VAD 논문에서 자주 사용하던 포맷이었고, 제출 논문에서는 추가로 ENVIRONMENT(생활소음), MOVIE, YOUTUBE 에서 테스트를 진행하였다. 생활소음 데이터의 경우는 ACAM 논문에서 제작한 데이터를 사용하였고, MOVIE는 The mediaeval 2014에서 사용한 데이터를 참조하였고, YOUTUBE는 Youtube-8M을 참조하였다. 

그외 test결과

 

  위의 결과로 토대로 제출 논문에서 제안하는 self attention 기반의 VAD 구조가 다른 구조들보다 좋은 성능을 보여줌을 입증할 수 있엇다.

  논문에는 제대로 적지는 못했지만, 학습 데이터가 많고, 다양한 형태의 noise를 띌수록 제출 논문의 VAD 구조와 다른 VAD 구조의 성능 차이는 현격했다. 실제로, 회사에서 제공하는 서비스에서는 제출 논문의 VAD 구조를 사용하고 있고, 실제 프로덕트 레벨에서도 좋은 성능을 보여주고 있다. 

  결과적으로는 2020년 한해동안 연구한 결과물들은 LREC, EMNLP, ICASSP로 출판되었다. 나름 고무적이라면 고무적인거고, 아쉽다면 아쉬운 결과라고 생각한다. 

  2020년 한해동안 부족한 저라는 팀월을 리드해가며 연구, 개발, 논문작성, 대회 참여등을 성공적으로 견인해주신 보이스루 R&D팀, 조용래 팀장님에게 무한한 감사를 보냅니다. 또한, 언제나 부족한 저를 물심양면으로 도와주시는 조원익님, 저희 지도교수님 두 분 모두 감사합니다.

 

(중요) 해당 포스팅에서는 논문에 대한 개략적인 정보들과 내부 맥락에 대한 개요들만 적혀있습니다. 기타 세부적인 정보들은 논문 참고 부탁드립니다!

Comments