본문 바로가기

연구실 공부

[논문] MaskCycleGAN-VC: Learning Non-parallel Voice Conversion with Filling in Frames

728x90

https://arxiv.org/abs/2102.12841

 

Mask CycleGAN: Unpaired Multi-modal Domain Translation with Interpretable Latent Variable

We propose Mask CycleGAN, a novel architecture for unpaired image domain translation built based on CycleGAN, with an aim to address two issues: 1) unimodality in image translation and 2) lack of interpretability of latent variables. Our innovation in the

arxiv.org

해당 논문을 보고 작성했습니다.

 

Abstract

non-parallel voice conversion (VC)는 parallel corpus 없이 voice conversion을 학습하는 기술입니다. Cycle-consistent adversarial network-based VCs (CycleGAN-VC and CycleGAN-VC2)는 benchmark method로 많이 사용되었습니다. 하지만 time-frequency structure를 충분히 포착하지 못해, mel-spectrogram vocoder의 발전에도 불구하고 mel-spectrogram conversion이 아닌 mel-cepstrum conversion에서만 사용되고 있습니다. 이러한 단점을 극복하기 위해, time-frequency adaptive normalization (TFAN)이라 불리는 추가적인 module을 CycleGAN-VC2에 추가한 CycleGAN-VC3가 제안되었습니다. 이렇게 되면 학습해야 할 parameter 수가 늘어나게 된다는 단점이 존재하게 됩니다. 그래서 대안으로 저자들은 filling in frames (FIF)라는 새로운 auxiliary task로 학습되는 MaskCycleGAN-VC를 제안합니다. FIF에서는 input mel-spectrogram에 temporal mask를 적용하고 converter가 주변 frame을 기반으로 missing frame을 채우도록 도와줍니다. 이 task는 converter가 self-supervised 방식으로 time-frequency 구조를 학습하고 TFAN과 같이 추가적인 module의 필요성을 제거해 줍니다.

 

Introduction

기존 CycleGAN voice conversion method들은 완벽히 time-frequency structure를 capture 하지 못하는 모습을 보이며, mel-spectrogram based vocoder들이 많이 등장했음에도 불구하고 mel-cepstrum conversion만 수행하는 단점이 존재합니다.

이를 해결하기 위해 CycleGAN-VC2의 variation인 CycleGAN-VC3가 제안되었습니다. 이는 time-frequency adaptive normalization (TFAN)이라 불리는 추가적인 module을 사용합니다. 성능이 뛰어나지만, converter의 parameter 수가 증가된다는 문제가 발생합니다(16M to 27M).

그래서 저자들은 CycleGAN-VC2의 variation으로 MaskCycleGAN-VC를 제안합니다. 이는 filling in frames (FIF)라 불리는 새로운 auxiliary task를 이용해 학습됩니다. FIF를 이용해 저자들은 input mel-spectrogram에 temporal mask를 추가하고 converter가 가려진 frame을 주변 frame을 이용해 채우도록 만듭니다. FIF는 image inpainting, text infilling과 같은 다른 분야들에서 사용하는 complementation-based self-supervised learning의 성공에서 영감을 받았습니다. 이를 통해 converter가 time-frequency feature를 학습하도록 만들어줍니다. 이러한 특성 덕분에 TFAN과 같은 추가적인 module의 필요성을 제거하였으며 CycleGAN-VC2의 network 수정을 거의 진행하지 않은 채로 mel-spectrogram conversion에서도 동작할 수 있게 만들어줍니다.

 

Conventional CycleGAN-VC2

CycleGAN-VC2는 parllel supervision 없이도 converter $G_{X\rightarrow Y}$가 source acoustic feature $x \in X$를 target acoustic feature $y \in Y$로 변환하도록 학습됩니다. unpaired image-to-image translation을 위해 제안된 CycleGAN에 따라, CycleGAN-VC2는 adversarial loss, cycle-consistency loss, identity-mapping loss를 사용해 문제를 해결합니다. 추가적으로 CycleGAN-VC2는 second adversarial loss를 사용해 cyclically reconstructed feature의 quality를 향상시킵니다.

 

Adversarial loss

adversarial loss $L_{adv}^{X \rightarrow Y}$는 converted feature $G_{X \rightarrow Y}(x)$가 target처럼 되도록 만들어 줍니다.

 

위 식에서 discriminator $D_Y$는 generated $G_{X \rightarrow Y}(x)$와 real $y$를 구분하여 loss를 maximize 하지만, $G_{X \rightarrow Y}$는 $D_Y$를 속여 loss를 minimize 하도록 $G_{x \rightarrow Y}(x)$를 생성합니다. 비슷하게 inverse converter $G_{Y \rightarrow X}$는 $L_{adv}^{Y \rightarrow X}$와 discriminator $D_X$를 가지고 학습됩니다.

 

Cycle-consistency loss

cycle-consistency loss $L_{cyc}^{X \rightarrow Y \rightarrow X}$는 변환된 feature를 다시 soruce feature로 inverse conversion을 수행했을 때, 둘이 유사해지도록 만들어줍니다.

 

유사하게 inverse-forward mapping (i.e., $G_{X \rightarrow Y}(G_{Y \rightarrow X}(y))$)도 $L_{cyc}^{Y \rightarrow X \rightarrow Y}$로 학습됩니다.

 

Identity-mapping loss

identity-mapping loss $L_{id}^{X \rightarrow Y}$는 input preservation 향상을 위해 사용됩니다.

 

비슷하게 inverse converter $G_{Y \rightarrow X}$도 $L_{id}^{Y \rightarrow X}$를 이용해 학습됩니다.

 

Second adversarial loss

second adversarial loss $L_{adv2}^{X \rightarrow Y \rightarrow X}$는 위 식(2)의 L1 loss에 의해 생기는 statistical averaging을 완화시켜 줍니다.

 

discriminator $D_X'$는 reconstructed $G_{Y \rightarrow X}(G_{X \rightarrow Y}(x))$와 real $x$를 구분합니다. 위 식과 유사하게 inverse-forward mapping with additional discriminator $D_Y'$는 $L_{adv2}^{Y \rightarrow X \rightarrow Y}$로 학습됩니다.

 

Full objective

full objective $L_{full}$은 다음과 같습니다.

 

위 식에서 $\lambda_{cyc}$과 $\lambda_{id}$는 weight parameter입니다. $G_{X \rightarrow Y}$와 $G_{Y \rightarrow X}$는 loss를 minimize 하도록 학습되며, $D_X, D_Y, D_X', D_Y'$는 loss를 maximize 하도록 학습됩니다.

 

MaskCycleGAN-VC

 

Training with Filling in Frames (FIF)

CycleGAN-VC2는 mel-cepstrum conversion을 수행하도록 개발되었으며, mel-spectrogram conversion의 time-frequencyh structure를 capture 할 수 없습니다. 결과적으로 harmonic structure가 손상되게 됩니다. 이를 완화하기 위해, 저자들은 MaskCycleGAN-VC를 제안합니다. 이는 auxiliary FIF task를 사용하여 학습됩니다. 저자들의 overall framework는 다음과 같습니다.

 

source mel-spectrogram $x$가 주어졌을 때, $x$와 동일한 크기의 temporal mask $m \in M$을 생성합니다. 이는 masking 하는 영역(위 그림에서 까만 영역)을 0으로 채우고 나머지 영역을 1로 채웁니다. masked region (i.e., zero region)은 사전에 정의된 rule에 따라 random 하게 결정됩니다.

생성한 mask $m$을 $x$에 적용하여 $\hat{x}$를 만듭니다.

 

위 식에서 $\cdot$은 element-wise product를 의미합니다. 이 연산을 통해, 저자들은 missing frame을 생성합니다. 위 그림에서 red box 영역입니다.

그다음 MaskCycleGAN-VC converter $G_{X \rightarrow Y}^{mask}$는 $\hat{x}, m$으로 $y'$을 합성합니다.

 

위 식에서 concat은 channel-wise concatenation을 의미합니다. $m$을 conditional information으로 사용함으로써, $G_{X \rightarrow Y}^{mask}$는 어느 frame을 채워야 하는지 아는 상태로 frame을 채웁니다.

CycleGAN-VC2와 비슷하게 저자들은 adversarial loss를 이용해 $y'$가 target $Y$에 존재하도록 학습되지만, parallel supervision이 없기 때문에 ground-truth와 $y'$을 바로 비교할 수 없습니다. 그래서 저자들은 cyclic conversion process를 이용해 frame을 채우는 것을 학습시킵니다. 이를 위해, 저자들은 inverse converter $G_{Y \rightarrow X}^{mask}$를 이용해 $x''$를 reconstruct 합니다.

 

위 식에서 $m'$은 모든 영역이 1로 채워진 matrix를 의미하며, missing frame이 이전 forward를 통해 채워진 상태를 의미합니다. 그다음 original and reconstructed mel-spectrogram에 cycle-consistency loss를 사용합니다.

 

동시에 저자들은 $x''$에 second adversarial loss를 적용합니다.

$L_{mcyc}^{X \rightarrow Y \rightarrow X}$를 최적화하기 위해, $G_{X \rightarrow Y}^{mask}$는 주변 frame에서 missing frame을 채우기 위한 유용한 정보를 얻어야 합니다. 이러한 induction은 self-supervised 방식으로 mel-spectrogram의 time-frequency structure를 학습하기 유용합니다. 이는 다른 분야에서 유사한 task를 수행할 때 사용했던 방식입니다. 최종적으로 TFAN을 사용하는 CycleGAN-VC3와 다르게, MaskCycleGAN-VC는 converter parameter 수의 큰 증가는 없으며($m$을 받기 때문에 input channel 수가 2배로 증가되기만 함), FIF는 추가적인 data와 pretrained model을 필요로 하지 않습니다.

 

Conversion with all-ones mask

저자들은 conversion process (i.e., test phase)에서 all-one mask를 사용하였습니다. 그래서 저자들은 frame missing 없다는 가정 하에서 변환을 진행합니다.

 

Experiments

 

Conversion and synthesis process

CycleGAN-VC3와 비교하기 위해, 저자들은 CycleGAN-VC3와 동일한 conversion and synthesis를 수행했습니다. 저자들은 mel-spectrogram conversion을 수행할 때는 MaskCycleGAN-VC를 사용했으며 waveform을 합성할 때는 pretrained MelGAN vocoder를 사용했습니다. 공평한 비교를 위해 저자들은 vocoder의 parameter를 바꾸지 않았지만, 각 speaker 마다 fine-tuning을 수행했습니다.

 

Objective evaluation

저자들은 objective evaluation을 수행해 성능을 평가했습니다. mel-cepstral distortion (MCD)와 Kernel DeepSpeech Distance (KDSD)를 사용하였습니다. MCD의 경우, WORLD analyzer를 이용해 mel-cepstrum을 추출했습니다. KDSD는 DeepSpeech2 feature space에서 maximum mean discrepancy를 계산합니다. 실험 결과는 아래와 같습니다.

 

FIF mask size에 따른 결과를 보겠습니다. FIF X의 경우, X%를 masking 했다는 것을 의미합니다. FIF 0-X는 0에서 X% 사이 random 하게 mask size를 선택한다는 것을 의미합니다. No 2~5를 통해 non-zero-sized-mask가 zero-sized mask보다 뛰어난 성능을 보인다는 것을 알 수 있습니다. 그리고 No 4를 통해 mask size를 최대 50 정도로 설정하는 것이 가장 좋다는 것을 볼 수 있습니다. 그리고 constant-sized mask보다 random-sized mask가 더 나은 모습을 보인다는 것도 알 수 있습니다.

FIF는 subsequent frame을 masking 하는 것을 의미하고, $FIF_{NS}$는 각 frame들을 독립적이고 random하게 선택해 masking하는 non-subsequent frame masking을 의미합니다. FIS는 subsequent spectrum band를 masking하는 것을 의미합니다. FIP는 mel-spectrogram을 point-wise masking 방식으로 masking하는 것을 의미합니다. 전부 0-50 masking size를 사용했으며, No 6을 통해 FIF가 가장 좋은 성능을 보인다는 것을 알 수 있습니다.

 

Conclusion

mel-spectrogram vocoder의 최근 발전에 영감을 받아, 저자들은 CycleGAN-VC2를 mel-spectrogram conversion에 적용할 수 있도록 발전시킨 MaskCycleGAN-VC를 제안합니다. TFAN과 같은 추가적인 module 없이도 mel-spectrogram의 time-frequency structure를 학습하기 위해, FIF를 도입했습니다. 이는 converter가 self-supervised manner로 time-frequency structure를 학습할 수 있도록 도와줍니다. 실험을 통해 MaskCycleGAN-VC가 CylceGAN-VC2와 비슷한 크기지만, 다른 CycleGAN model보다 뛰어난 성능을 보인다는 것을 입증했습니다.

728x90