Voice, Acoustic AI/TTS, STT

[논문] wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations (Neurips 2020)

진성01 2024. 9. 5. 16:55

이 글에서는 2020 Neurips에 게재된 "wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations" (Alexei Baevski, et al)논문에 대해 리뷰한다. 제목 그대로 wav 음원을 vector (speech representation)으로 매핑하는 모델을 제안하였다. 이 논문을 TTS, STT에 넣은 이유는 wav2vec의 output에 간단한 predictor만 붙여주면 speech-to-text 모델로 사용할 수 있기 때문이다.

 

※ STT: Speech-To-Text, 음성을 텍스트로 변환해 주는 작업이다.

 

Abstract

  • 이 연구에서는 처음으로 script없이 오디오로만 표현을 학습하고, script로 fine tuning하는 방식 제안
  • latent space에서 input을 masking하고 quantization을 이용해 contrastive learning (quantization도 같이 학습).
  • Librispeech의 clean/other test set에서 각각 1.8/3.3의 WER을 달성. 또한 단 10분의 labeled data와 53000시간의 unlabeded data를 이용했을 때에도 4.8/8.2의 WER을 달성
  • 이는 소량의 라벨링 데이터만으로도 음성 인식이 가능함을 나타냄

간단히 말해서 speech에 대한 대본(텍스트 번역) 없이도 학습/추론이 가능한 self-supervised learning 기법이다. 오디오에서 특정 시간대를 masking하고 이 부분을 예측하는 network로 구성되었으며, 예측 output과 quantized representations가 가까워지도록 contrastive learning을 한 것이다.

 

※ Contrastive learning에 대해서는 아래 링크에서 자세히 알 수 있다.

[논문] Align Representations with Base: A New Approach to Self-Supervised Learning (CVPR 2022) (tistory.com)

 

자세한 내용을 아래서 차근차근 살펴보자.

 

Introduction


Label 데이터 없이 self supervised learning을 사용하는 데는 다음 두 가지 이유가 있다.

  • 모델 학습에 있어서 가장 중요한 것은 데이터이다. 데이터가 많을수록 모델의 일반화 성능 및 충실도가 높아진다. 그러나 실제로 데이터를 구하는 것은 가장 어려운 일 중 하나이며 그 중에서도 label이 있는 데이터를 구하는 것은 더욱 어렵다. STT task에서 label이란 음성의 대본을 뜻한다. 이에 비해 대본이 없는 음성 데이터만을 구하는 것은 상대적으로 쉬운 일이다. 
  • 유아가 음성을 듣고 해석하는 과정을 생각해 보았을 때 음성의 대본을 보고 학습하기 보다는 성인의 말을 들으며 언어를 배우게 된다. 따라서 기계 학습도 대본을 주는 것 보다 오디오만으로 학습하는 것이 인간을 모방하는 길이다.

따라서 이 논문에서는 다음과 같은 process로 모델을 설계하였다.

  1. wav데이터를 Convolution network를 통해 encoding
  2. 랜덤으로 일부 시간대를 masking
  3. masking된 embedding을 transformer network로 전달
  4. transformer output과 quantized latent representation을 이용해 contrastive learning

 

 

Model


모델의 전체 아키텍처

 

그림을 보면서 아키텍처를 좀 더 자세히 이해해 보자.

 

  • Raw waveform X에서 temporal CNN을 이용해 latent speech representation Z를 추출
    • temporal CNN: 1D convolution으로 time축에 따라 이동하는 convolution
    • latent speech representation: neural network를 통과해 잠재 공간(latent space)에 임베딩으로 매핑된 representation. 이 모델에서는 CNN을 사용하였으며 중간 산물 Z이다.
  • Z를 random masking 후 transformer 에 통과시켜 context representation C를 추출
    • random masking: 일부러 Z의 일부분을 지워 transformer 모델이 예측하도록 유도하기 위한 장치이다. 모델은 이 부분을 잘 예측하도록 학습하면서 음성 표현을 자연스럽게 학습한다.
  • Z를 quantization codebook에 통과시켜 quantized representation Q를 추출
    • quantization: 여러 벡터로 구성되어 있는 codebook에서 하나를 뽑아 원래 임베딩과 대체하는 것이다.
    • 이 모델에서는 G개의 코드북, 각각에는 V개의 벡터가 있고, Z의 임베딩은 각 코드북에서 하나씩 벡터를 선택하여 e1, ... , eG를 추출하고 이 모두를 concatenation, 그 후 linear transform하여 Q를 얻는다.
    • 이 때 codebook에서 벡터를 선택하는 방식은 Gumbel softmax방법을 이용한다. 이는 학습 가능하며 그룹 g에 대해 v번째 코드북 벡터를 선택할 확률 p_(g,v)는 다음과 같다.

 

  • 마지막으로 CQ가 postive pair가 되어 서로 유사성이 높아지도록 Loss를 설정하고 학습한다.

Contrastive loss

  • 또한 codebook들이 골고루 선택될 수 있도록 diversity loss도 부여한다.

Diversity loss
Total loss

 

Results


wav2vec 2.0은 wav를 잘 표현할 수 있는 embedding으로 표현하는 것이고 이 embedding을 가지고 text로 변환하기 위해서는 추가적인 downstream fine tuning 작업이 필요하다. 이 작업에는 필수적으로 labeled 데이터를 이용한다. 아래 표는 labeled data를 각각 10min, 1hour, 10hour, 100hour 만큼 사용했을 때의 성능을 비교하고 있다.

labeled data 양에 따른 성능 비교

 

아래 표는 quantization method를 사용했을 경우 더 좋은 성능을 보였다는 ablation study이다.

ablation study