티스토리 뷰

반응형

MaskCycleGAN-VC: Learning Non-Parallel Voice Conversion with Filling in Frames


  • Non-parallel voice conversion을 위한 Cycle-Consistent Adversarial Network-based 방식은 time-frequency structure를 capture 하는 능력이 부족함
  • MaskCycleGAN-VC
    • CycleGAN-VC2의 확장으로써 Filling in Frames를 통해 training 하여 얻어짐
    • Filling in Frames를 사용하여 input mel-spectrogram에 temporal mask를 적용하고 converter가 surrounding frame을 기반으로 missing frame을 filling 하도록 함
  • 논문 (ICASSP 2021) : Paper Link

1. Introduction

  • Voice Conversion (VC)는 linguistic content를 변경하지 않고 target speaker의 voice로 변환하는 것을 목표로 함
    • 일반적으로 VC task는 parallel data를 활용하여 source speaker와 target speaker 간의 conversion을 학습하는 방식으로 수행됨
      - BUT, parallel corpus는 수집하기 어렵다는 한계가 있으므로 non-parallel data도 활용할 수 있어야 함
    • 이를 위해 StarGAN-VC와 같은 Generative Adversarial Network (GAN) 기반의 방식들이 주로 활용됨
      1. BUT, 기존의 GAN-based VC는 time-frequency structure를 capture하지 못하므로 성능의 한계가 있음
      2. 한편으로 CycleGAN-VC3는 time-frequency adaptive normalization (TFAN)을 도입하여 성능을 크게 개선했지만, parameter efficiency가 크게 저하되는 문제가 있음

-> 그래서 효과적인 mel-spectrogram conversion과 적은 network modification을 지원하는 MaskCycleGAN-VC를 제안

 

  • MaskCycleGAN-VC
    • CycleGAN-VC2를 기반으로 auxiliary task인 Filling in Frame (FIF)를 도입해 training함
    • FIF는 input mel-spectrogram에 temporal mask를 적용하고 converter가 surrounding frame을 기반으로 missing framer을 filling 하도록 함
      - 이를 통해 self-supervised manner로 time-frequency feature를 학습함으로써 TFAN과 같은 additional module에 대한 의존성을 제거

< Overall of MaskCycleGAN-VC >

  • CycleGAN-VC2를 기반으로 FIF task를 도입
  • 결과적으로 기존보다 적은 parameter 수를 가지면서 뛰어난 conversion 성능을 달성

2. Conventional CycleGAN-VC2

  • CycleGAN-VC2는 parallel supervision 없이 source acoustic feature xX를 target acoustic feature yY로 변환하는 converter GXY를 training 함
    • 이를 위해 adversarial loss, cycle-consistency loss, identity-mapping loss를 활용
    • 추가적으로 second adversarial loss를 도입해 cyclically reconstructed feature의 품질을 개선
  • Adversarial Loss
    • Adversarial loss LXYadv는 converted feature GXY(x)가 target과 같아지도록 함:
      (Eq. 1) LXYadv=EyPY[logDY(y)]+ExPX[log(1DY(GXY(x)))]
    • Discriminator DY는 해당 loss를 최대화하여 생성된 GXY(x)와 real y를 distinguish 함
      - 반대로 GXY는 해당 loss를 최소화하여 DY를 deceive 하는 GXY(x)를 생성함
    • Inverse converter GYX는 discriminator DX를 사용하여 LYXadv를 통해 학습됨 
  • Cycle-Consistency Loss
    • Cycle-consistency loss LXYXcyc는 parallel supervision 없이 cycle-consistency constraint 내에서 pseudo pair를 결정하는데 사용됨:
      (Eq. 2) LXYXcyc=ExPX[||GYX(GXY(x))x||1]
    • Inverse-forward mapping GXY(GYX(y))에서는 LYXYcyc를 사용
  • Identity-Mapping Loss
    • Identity-mapping loss LXYid는 input preservation을 위해 사용됨:
      (Eq. 3) LXYid=EyPY[||GXY(y)y||1]
    • Inverse converter GYX에는 LYXid가 사용됨
  • Second Adversarial Loss
    • Second adversarial loss LXYXadv2(Eq. 2)L1 loss로 발생하는 statistical averaging을 완화하기 위해 사용됨:
      (Eq. 4) LXYXadv2=ExPX[logDX(x)]+ExPX[log(1DX(GYX(GXY(x))))]
      - Discriminator DX는 reconstructed GYX(GXY(x))와 real x를 distinguish 함
    • Inverse-forward mapping에는 discriminator DY와 함께 LYXYadv2가 사용됨
  • Full Objectives
    • 최종적으로 얻어지는 full objective Lfull:
      (Eq. 5) Lfull=LXYadv+LYXadv+λcyc(LXYXcyc+LYXYcyc)+λid(LXYid+LYXid)+LXYXadv2+LYXYadv2
      - λcyc,λid : weighing parameter
    • GXY,GYX는 해당 loss를 최대화하여 최적화되고 DX,DY,DX,DY는 해당 loss를 최소화하여 최적화됨

3. MaskCycleGAN-VC

- Training with Filling in Frames (FIF)

  • 기존의 CycleGAN-VC2는 time-frequency structure를 capture 하는 능력이 부족해 harmonic structure가 compromise되므로, MaskCycleGAN-VC는 아래 그림과 같은 auxiliary FIF task를 도입함 
    • 먼저 source mel-spectrogram x가 주어지면, temporal mask mM을 생성함
      1. 해당 mask는 x와 size가 동일하고, 값이 0인 부분과 값이 1인 부분으로 나누어짐
        - Masked region (0 region)은 predetermined rule에 따라 random 하게 결정됨
      2. 여기서 mask mx에 적용하면:
        (Eq. 6) ˆx=xm 
        - : element-wise product
      3. (Eq. 6)을 통해 아래 그림의 red box 부분과 같은 artificially missing frame을 얻을 수 있음
    • 다음으로 MaskCycleGAN-VC converter GmaskXYˆx,m으로부터 y을 합성함:
      (Eq. 7) y=GmaskXY(concat(ˆx,m))

      - concat : channel-wise concatentation
      - Conditional information으로 m을 사용하면 GmaskXY는 어떤 frame을 filling 해야 하는지를 알 수 있음
    • CycleGAN-VC2와 유사하게 (Eq. 1)의 adversarial loss를 사용하여 y이 target Y에 속하는지 확인할 수 있지만, parallel supervision이 부족하므로 y를 ground-truth와 직접 비교하는 것은 어려움
      1. 따라서 논문에서는 cyclic conversion process를 통해 frame을 filling 하도록 함
      2. 즉, inverse converter GmaskYX를 사용하여 x를 reconstruct 함:
        (Eq. 8) x=GYXmask(concat(y,m))
        - m : missing frame이 모두 filling 되었다는 가정 하에, all-ones matrix를 사용하여 represent 됨
      3. 다음으로 original, reconstructed mel-spectrogram에 대해 다음의 cycle-consistency loss를 적용:
        (Eq. 9) LmcycXYX=ExPX,mPM[||xx||1]
        - (Eq. 4)의 second adversarial loss를 x에 대해 적용한 것과 같음
    • LmcycXYX를 최적화하기 위해 GXYmask는 surrounding frame에서 missing frame을 filling 하는데 유용한 information을 얻어야 함 
      • 해당 방식은 self-supervision manner로 mel-spectrogram에서 time-frequency structure를 학습하도록 지원할 수 있음
      • 결과적으로 MaskCycleGAN-VC는 TFAN에 의존하는 CycleGAN-VC3와 달리 converter parameter 수가 증가되지 않고, FIF는 self-supervised learning과 비슷하게 동작하므로 추가적인 data나 pretrain이 필요하지 않음

FIF Pipeline

- Conversion with All-Ones Mask

  • Conversion process에서는 all-ones mask를 사용함
    • 따라서 missing frame이 없다는 가정하에 speech conversion을 수행할 수 있음
    • 해당 가정은 일반적인 VC task와 동일

4. Experiments

- Settings

  • Dataset : VCC2018 
  • Comparisons : CycleGAN-VC3, CycleGAN-CV2

- Results

  • 전체적으로 MaskCycleGAN-VC가 가장 우수한 성능을 보임

모델 성능 비교

  • Naturalness 측면에서도 높은 선호도를 보임

Naturalness 비교

  • Speaker similarity 측면에서도 MaskCycleGAN-VC가 가장 선호됨

Speaker Similarity 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   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