티스토리 뷰

반응형

Wav2Vec: Unsupervised Pre-Training for Speech Recognition


  • Raw audio representation을 학습하여 speech recognition에 unsupervised pre-training을 도입할 수 있음
  • Wav2Vec
    • Unlabled audio data를 기반으로 training 하고, resulting representation을 acoustic model training을 개선하는 데 사용
    • Noise contrastive binary classification을 통해 simple multi-layer convolutional neural network를 optimize
  • 논문 (INTERSPEECH 2019) : Paper Link

1. Introduction

  • Speech recognition model은 large transcribed audio data를 요구함
    • 한편으로 pre-training을 활용하면 labled data가 scarce 한 경우 general representation을 학습해 downstream task의 성능을 개선할 수 있음
    • 특히 speech processing에서 pre-training은 emotion recognition, speaker identification, phoneme discrimination 등에 사용됨
      - BUT, supervised speech recognition task에 대해서는 unsupervised representation이 사용되지 않음

-> 그래서 unsupervised pre-training을 활용해 speech recognition task를 개선한 Wav2Vec을 제안

 

  • Wav2Vec
    • Raw audio를 input으로 하여 speech recognition system에 input 되는 general representation을 compute 하는 convolutional neural network
    • True future audio sample과 negatives를 distinguish 하는 contrastive loss를 활용
    • Frame-wise phoneme classification을 뛰어넘는 learned representation을 적용하여 speech recognition system을 개선

< Overall of Wav2Vec >

  • Fully convolutional architecture와 unsupervised pre-training method에 기반하여 speech recognition을 개선
  • 결과적으로 기존보다 뛰어난 recognition 성능을 달성

2. Method

  • Input으로 audio signal이 주어지면 Wav2Vec은 주어진 signal context로부터 future sample을 predict 함
    • 이를 위해서는 data distribution p(x)를 accurately modeling 해야 함
    • 따라서 논문은 raw speech sample x를 lower temporal frequency에서 feature representation z로 encoding 한 다음, density ratio p(zi+k|zi...zir)/p(zi+k)를 implicitly modeling 함

- Model

  • Wav2Vec은 raw audio signal을 input으로 사용하는 2개의 network를 활용함
    • Encoder network는 audio signal을 latent space에 embed 하고 context network는 encoder의 multiple time step을 combine 하여 contextualized representation을 얻음
    • 먼저 raw audio sample xiX가 주어지면, 5-layer convolutional network로 parameterize 된 encoder network f:XZ를 적용함
      1. 여기서 encoder layer는 (10,8,4,4,4)의 kernel size와 (5,4,2,2,2)의 stride를 가짐
      2. Encoder output은 low frequency feature representation ziZ로써, 16kHz audio의 30ms를 encode 하고 striding result는 10ms마다 representation zi를 생성함
    • 다음으로 context network g:ZC를 encoder network output에 적용하여 multiple latent representation zi...ziv를 receptive field size v에 대한 single contextualized tensor ci=g(zi...ziv)로 mix 함
      - Context network는 kernel size 3, stride 1의 9-layer로 구성되고, total receptive field는 210ms
    • Encoder/Context network layer는 512 channel의 causal convolution, group normalization layer, ReLU nonlinearity로 구성됨
      - 이때 각 sample에 대해 feature/temporal dimension을 모두 normalize 하고, input scaling과 offset에 invariant 한 normalization scheme을 선택해야 generalized representation을 얻을 수 있음
    • 추가적으로 larger dataset training을 위해 12-layer로 구성된 larger context network를 사용하는 Wav2Vec-large model을 고려할 수 있음
      - 이 경우 aggregator에 skip connection을 도입하여 사용하고, total receptive field는 810ms를 가짐

Wav2Vec

- Objective

  • 논문은 propsal distribution pn에서 추출한 distractor sample ˜zk-step future의 sample zi+k를 distinguish 하기 위해 model을 training 함
    • 즉, 각 step k=1,...,K에 대한 contrastive loss를 minimize 함:
      (Eq. 1) Lk=Tki=1(logσ(zi+khk(ci))+λE˜zpn[logσ(˜zhk(ci))])
      - σ(x)=1/(1+exp(x)) : sigmoid function, λ : negatives 수
      - σ(zi+khk(ci)) : zi+k가 true sample이 될 probability
    • 여기서 각 step k에 대해 ci에 적용되는 step-specific affine transformation hk(ci)=Wkci+bk을 고려할 수 있음
    • 결과적으로 논문은 loss L=Kk=1Lk를 optimize 하여 서로 다른 step size에 걸쳐 (Eq. 1)을 summation 함
      1. 이때 각 audio sequence에서 distractor를 uniformly choosing 하여 10-negative examples를 sampling 한 다음, expectation을 approximate 함
      2. 즉, T를 sequence length라고 할 때, pn(z)=1T
    • Training 이후 log-mel filterbank 대신 context network에서 생성된 representation ci를 acoustic model에 input 함

- Decoding

  • Acoustic model output을 decoding 하기 위해 WSJ dataset에서만 train 된 language model을 고려할 수 있음
    • 이를 위해 논문은 beam search decoder를 채택하여 (Eq. 2)를 maximize 하는 방식으로 context network c나 log-mel filter bank output으로부터 word sequence를 decode 함:
      (Eq. 2) maxyfAM(y|c)+αlogpLM(y)+β|y|γTi=1[πi='|']
      - fAM : acoustic model, pLM : language model
      - π=π1,...,πL : y의 character
      - α,β,γ : 각각 language model weights, word penality, silence penalty
    • WSJ를 decoding 하기 위해 hyperparameter를 tuning 하고 random search를 적용함
      - Word-based language model의 경우 4000 beam size, 250 score threshold를 사용하고, character-based language model의 경우 1500 beam size, 40 score threshold를 사용함

3. Experiments

- Settings

  • Dataset : TIMIT, WSJ
  • Comparisons : DeepSpeech2

- Results

  • Pre-Training for the WSJ Benchmark
    • 전체적으로 Wav2Vec이 가장 우수한 성능을 보임

WSJ Dataset에 대한 성능

  • 특히 더 많은 data에 대해 pre-training 하는 경우 더 나은 성능을 얻을 수 있음

Training Data Size 별 성능

  • Pre-Training for TIMIT
    • TIMIT dataset에 대해서도 Wav2Vec의 성능이 가장 우수함

TIMIT Dataset에 대한 성능

  • Ablations
    • Negative sample 수는 최대 10 sample까지만 유용하고 그 이상은 성능 향상에 큰 영향을 주지 못함

Pre-Training 중 Negative Sample의 효과

  • 150k frame의 crop size를 사용할 때 최적의 성능을 달성함

Crop Size 별 성능

  • 최대 12-step을 predicting ahead 하는 경우 최적의 성능을 달성할 수 있음

Task 수 K별 성능

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Total
Today
Yesterday