티스토리 뷰

반응형

FragmentVC: Any-to-Any Voice Conversion by End-to-End Extracting and Fusing Fine-Grained Voice Fragments with Attention


  • Any-to-Any voice conversion은 unseen any speaker에 대해 voice conversion을 수행하는 것을 목표로 함
  • FragmentVC
    • Wav2Vec 2.0을 통해 source speaker의 latent phonetic structure를 얻고 target speaker의 spectral feature를 log mel-spectrogram을 통해 얻음
    • 두 가지의 서로 다른 feature space를 two-stage training process를 통해 align 한 다음, target utterance에서 fine-grained voice fragment를 추출하여 desired utterance로 fuse 함
    • Content/speaker에 대한 disentanglement 없이 reconstruction loss만 training 됨
  • 논문 (ICASSP 2021) : Paper Link

1. Introduction

  • Voice Conversion (VC)는 source speaker의 voice를 target speaker의 voice로 변환하는 것을 목표로 함
    • 기존에는 Gaussian Mixture Model을 활용했지만, CycleGAN-VC, StarGAN-VC와 같은 neural network 기반의 VC model이 좋은 성능을 보이고 있음
      - BUT, pre-defined speaker set에 의존적이라는 한계가 존재
    • 따라서 any-to-any VC는 real world와 같이 unseen speaker에 대한 voice conversion을 수행하는 것을 목표로 함

-> 그래서 any-to-any VC를 위한 encoder-decoder architecture 기반의 FragmentVC를 제안

 

  • FragmentVC
    • Transformer의 attention mechanism을 활용하여 end-to-end 방식으로 동작
    • 이때 Wav2Vec 2.0으로 얻어진 source speaker utterance의 latent phonetic structure를 query로 사용하고, target speaker의 fine-grained voice fragment를 추출해 desired utterance로 fuse함
    • Two-stage training process를 통해 speaker/content disentanglement를 고려하지 않고도 unseen speaker에 대한 generalization이 가능 

< Overall of FragmentVC >

  • Source encoder, target encoder를 통해 각각의 voice fragment를 추출하고, attention을 통해 fuse 하는 방식
  • 결과적으로 기존보다 뛰어난 conversion 성능을 달성

2. Method

  • FragmentVC는 source encoder, target encoder, decoder로 구성됨
    • Source encoder는 Wav2Vec 2.0에 의존하여 source speaker의 latent phonetic structure를 얻음
    • Target encoder는 log mel-spectrogram을 통해 target speaker의 spectral feature를 추출
    • Decoder는 latent phonetic structure를 query로 사용하여 Transformer cross-attention을 통해 target speaker에서 voice fragment를 추출한 다음, converted utterance에 fuse 함

- Source Encoder

  • Wav2Vec 2.0은 pre-trained feature extractor로써, source utterance의 768-dimensional speech representation을 추출함
    • 이때 Wav2Vec 2.0의 model weight는 training 중에 fix 됨
    • 768-dimensional feature는 ReLU activation을 가지는 2개의 linear layer를 통해 512-dimension으로 변환된 다음, decoder input으로 전달됨

Overall of FragmentVC

- Target Encoder

  • Target encoder는 decoder에서 사용할 voice fragment를 추출하는 역할 
    • 이때 target speaker utterance에 대한 log mel-spectrogram은 concatenate 되어 input 됨 
    • 구조적으로는 ReLU activation과 3개의 1D convolution layer로 구성 

- Decoder

  • Decoder는 extractor와 smoother의 stack으로 구성되고, 이후에 linear projection과 Tacotron2-styled PostNet을 통해 non-autoregressive 하게 desired output voice에 대한 log mel-spectrogram을 예측함
    • Extractor, smoother는 2개의 attention head와 512 hidden size를 가지는 Transformer layer를 활용함
      1. Extractor에서는 target encoder output에 attend 하기 위해 self-attention, cross-attention을 모두 사용하지만, Smoother에서는 self-attention만 사용
      2. 추가적으로 speech의 adjacent feature correlation을 고려하기 위해 feed-forward layer는 FastSpeech2와 같은 convolutional network로 대체됨
    • 여기서 extractor는 U-Net-like architecture를 따라 cross-attention을 통해 source speaker의 latent phonetic structure를 기반으로 target speaker의 fine-grained voice fragment를 추출하고 fuse 함
      1. 위 그림에서 $\text{Extractor 1}$은 source representation을 기반으로 highest-level phonetic structure를 구성하는 반면, target encoder의 $\text{Conv1D 3}$는 abstractive spectral information을 생성함
        - 따라서, $\text{Extractor 1}$은 $\text{Conv1D 3}$의 output에 attend 해야 함
      2. $\text{Extractor 3}$은 spectrogram에 대한 slight modification이나 minor adjustment를 제공하므로 target encoder의 $\text{Conv1D 1}$에서 얻어지는 feature에 attend 해야 함
      3. 이후 smoother를 통해 해당 extractor stack output을 further smooth 하여 output utterance를 얻음
    • 한편으로 residual speaker information은 Wav2Vec feature를 통해 inevitably carry 될 수 있음
      - 따라서 논문에서는 아래 그림과 같이 $\text{Extractor 1}$의 cross-attention module에 대한 residual connection을 제거하여 source encoder에서 decoder로의 information flow를 restrict 함

Extractor, Smoother Architecture

- Loss Function

  • FragmentVC는 예측된 log mel-spectrogram과 ground-truth 간의 $L1$ loss 만을 사용하여 end-to-end 방식으로 training 됨 
    • 여기서 pre-trained Wav2Vec model은 fix 되므로 training에서 제외함됨
    • 이를 통해 FragmentVC는 target encoder에서 target speaker characteristic을 추출하는 방법을 학습할 수 있음 

- Two-Stage Training

  • 논문은 two-stage training scheme을 채택함
    • First stage에서는 utterance의 log mel-spectrogram을 reconstruct 하기 위해 training speaker와 동일한 single utterance를 source/target encoder의 input으로 사용함
      1. 이때 target encoder의 spectrogram input이 reconstruction target과 동일하더라도 attention mechanism은 다양한 acoustic event를 나타내는 absolute position information을 얻을 수 없음
      2. 따라서 voice fragment를 추출하고 fusing 하여 source encoder의 Wav2Vec feature space와 target encoder의 spectral feature space 간의 hidden structure를 align 하도록 학습됨
        - BUT, 해당 과정만 적용하면 source utterance와 다른 target utterance가 주어졌을 때, converted result가 discontinuous 할 수 있음
    • 따라서 second stage에서는 10개의 utterance의 spectrogram을 concatenate 하여 target encoder에 전달하고, 동일한 speaker가 생성한 single utterance를 source encoder에 전달함
      1. 결과적으로 초기에는 source utterance가 10개의 target utterance에 포함되지만, training이 진행됨에 따라 traget에 포함될 probability가 0으로 linearly decay 하여 source/target이 달라지는 scenario를 학습하게 됨
      2. 이때 well-trained attention module을 preserve 하기 위해 source encoder, target encoder, extractor의 learning rate는 $100\times$ reduce 됨

3. Experiments

- Settings

- Results

  • FragmentVC는 unseen-to-unseen (u2u) scenario에서 기존보다 우수한 speaker verification 성능을 달성함
    - 특히 utterance가 많을수록 더 나은 voice fragment를 추출할 수 있으므로 성능이 크게 향상됨

Speaker Verification 성능 비교

  • MOS 측면에서도 FragmentVC는 높은 similarity와 naturalness를 달성함

MOS 비교

  • 추가적으로 attention map을 비교해 보면
    • 아래 그림의 (a)와 같이 동일한 content/다른 speaker의 경우, diagonal pattern으로써 두 utterance 간의 alignment가 적절하게 나타나는 것을 확인할 수 있음
    • (b)와 같이 동일한 source speaker/다른 content의 경우, extractor는 acoustically similar voice fragment를 attend 할 수 있음

Attention Map 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
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 31
Total
Today
Yesterday