티스토리 뷰
Paper/Conversion
[Paper 리뷰] CycleGAN-VC3: Examining and Improving CycleGAN-VCs for Mel-Spectrogram Conversion
feVeRin 2024. 8. 21. 09:15반응형
CycleGAN-VC3: Examining and Improving CycleGAN-VCs for Mel-Spectrogram Conversion
- Non-parallel voice conversion에서 CycleGAN-VC가 우수한 성능을 보임
- BUT, mel-spectrogram conversion에 대한 ambiguity로 인해 time-frequency structure가 손상됨 - CycleGAN-VC3
- Time-Frequency Adaptive Normalization을 도입하여 time-frequency structure를 반영
- 기존 CycleGAN의 mel-spectrogram conversion 성능을 향상
- 논문 (INTERSPEECH 2020) : Paper Link
1. Introduction
- Voice Conversion (VC)은 linguistic information을 retaining 하면서 non/para-linguistic information을 변환함
- 대부분의 VC method는 parallel corpus를 사용하여 source에서 target speech로의 mapping을 학습함
- BUT, parallel data는 수집하기 어렵다는 한계가 있음 - 한편으로 non-parallel VC는 data 수집 측면에서는 유용하지만, explicit supervision이 존재하지 않으므로 학습이 어렵다는 문제가 있음
- 이를 위해 CycleGAN-VC, StarGAN-VC와 같은 Generative Adversarial Network (GAN)-based 방식을 고려 가능
- BUT, mel-spectrogram conversion 과정에서 ambiguity로 인한 성능의 한계가 존재
- 대부분의 VC method는 parallel corpus를 사용하여 source에서 target speech로의 mapping을 학습함
-> 그래서 기존 CycleGAN-VC/VC2의 한계를 개선한 CycleGAN-VC3를 제안
- CycleGAN-VC3
- Mel-spectrogram의 time-frequency structure를 preserve 하기 위해 Time-Frequency Adaptive Normalization (TFAN)을 도입
- TFAN을 통해 source mel-spectrogram의 time-frequency structure를 반영하면서 converted feature의 scale/bias를 adjust
< Overall of CycleGAN-VC3 >
- CycleGAN-VC2를 기반으로 TFAN을 도입
- 결과적으로 기존 보다 뛰어난 conversion 성능을 달성
2. Conventional CycleGAN-VC/VC2
- Training Objectives
- CycleGAN-VC/VC2는 parallel corpus를 사용하지 않고, source acoustic feature
를 target acoustic featurex∈X 로 변환하는 mappingy∈Y 를 학습하는 것을 목표로 함GX→Y - CycleGAN-VC는 adversarial loss, cycle-consistency loss, identity-mapping loss를 사용하여 해당 mapping을 학습하고, CycleGAN-VC2에서는 second adversarial loss를 통해 reconstructed feature의 detail을 개선함
- Adversarial Loss
- Adversarial loss
는 converted featureLX→Yadv 가 targetGX→Y(x) 에 속하도록 함:Y
(Eq. 1)LX→Yadv=Ey∼PY[logDY(y)]+Ex∼PX[log(1−DY(GX→Y(x)))] - Discriminator
는 loss를 최대화하여 합성된DY 와 realGX→Y(x) 를 distinguish 하고,y 는 loss를 최소화하여GX→Y 를 deceive 하는DY 를 합성함GX→Y(x)
- 마찬가지로 inverse mapping 와 discriminatorGY→X 는DX 를 통해 adversarially training 됨LY→Xadv
- Adversarial loss
- Cycle-Consistency Loss
- Conversion 과정에서 composition을 preserve 하기 위해 cycle-consistency loss
가 사용됨:Lcyc
(Eq. 2)Lcyc=Ex∼PX[||GY→X(GX→Y(x))−x||1]+Ey∼PY[||GX→Y(GY→X(y))−y||1]
- 해당 loss의 relative importance를 control 하기 위해 hyperparameter 가 추가됨λcyc - 해당 loss는
가 cycle-consistency constraint 하에서 pseudo pair를 identify 하도록 함GX→Y,GY→X
- Conversion 과정에서 composition을 preserve 하기 위해 cycle-consistency loss
- Identity-Mapping Loss
- Input preservation을 위해, identity-mapping loss $\mathcal{L}_{id}가 사용됨:
(Eq. 3)Lid=Ey∼PY[||GX→Y(y)−y||1]+Ex∼PX[||GY→X(x)−x||1]
- 여기서 importance를 control 하기 위해 hyperparameter 를 사용λid
- Input preservation을 위해, identity-mapping loss $\mathcal{L}_{id}가 사용됨:
- Second Adversarial Loss
- CycleGAN-VC2에서는 (Eq. 2)의
loss로 발생하는 statistical averaging을 완화하기 위해 additional discriminatorL1 를 도입함D′X - 이때 second adversarial loss
는 circularly converted feature에 impose 됨:LX→Y→Xadv2
(Eq. 4)LX→Y→Xadv2=Ex∼PX[logD′X(x)]+Ex∼PX[log(1−D′X(GY→X(GX→Y(x))))]
- 마찬가지로 discriminator 를 도입하여 inverse-forwrd mapping을 위한D′Y 를 적용할 수 있음LY→X→Yadv2
- CycleGAN-VC2에서는 (Eq. 2)의
- Generator Architectures
- CycleGAN-VC는 1D CNN generator를 사용하여 temporal structure를 preserve 하면서 feature direction에 대한 relationship을 capture 함
- 구조적으로는 downsampling, residual, upsampling block으로 구성되어 wide-range temporal relationship을 반영
- Activation으로는 Gated Linear Unit (GLU)를 사용해 sequential, hierarchical structure를 학습 - 한편으로 CycleGAN-VC2에서는 down/upsampling block에서 2D CNN을 사용하고 residual block에서 1D CNN을 사용하는 2-1-2D CNN을 도입
- 여기서 2D CNN은 original structure를 preserve 하면서 time-frequency structure를 추출하고 1D CNN은 dynamic change를 수행
- 구조적으로는 downsampling, residual, upsampling block으로 구성되어 wide-range temporal relationship을 반영
- Discriminator Architectures
- CycleGAN-VC는 2D CNN disciminator를 사용하여 2D spectral texture를 discriminate 함
- 이때 last layer에 fully-connected layer를 적용한 FullGAN을 활용
- BUT, FullGAN은 많은 parameter가 필요하므로 training이 학습에 어려움이 있음 - 한편으로 CycleGAN-VC2는 last layer에 convolution을 적용한 PatchGAN을 사용해 parameter 수를 줄이고 GAN training을 stabilize 함
- 이때 last layer에 fully-connected layer를 적용한 FullGAN을 활용
3. CycleGAN-VC3
- TFAN: Time-Frequency Adaptive Normalization
- CycleGAN-VC/VC2는 conversion 과정에서 preserve 되어야 하는 time-frequency structure를 손상시킬 수 있음
- 따라서 CycleGAN-VC3에서는 time-frequency-wise로 source information
를 반영하면서 converted feature의 scale/bias를 adjust 하기 위해, Instance Normalization (IN)을 확장한 TFAN을 도입x
- 특히 2-1-2D CNN의 1D/2D time-frequency feature에 대한 TFAN을 설계함 - 먼저 feature
가 주어지면 TFAN은 IN과 같이 channel-wise normalization을 수행하고, CNN을 통해f 에서 계산된 scalex 와 biasγ(x) 를 사용하여 normalized feature를 element-wise로 modulate 함:β(x)
(Eq. 5)f′=γ(x)f−μ(f)σ(f)+β(x)
- : output feature,f′ : 각각μ(f),σ(f) 의 channel-wise 평균/표준편차f - IN에서
-independent scalex 와 biasβ 는 channel-wise로 적용되지만, TFAN에서 계산된γ 는 element-wise로 적용됨β(x),γ(x)
- 이를 통해 TFAN은 time-/frequency-wise로 를 반영할 수 있고,x 의 scale/bias를 adjust 할 수 있음f - 구조적으로 TFAN은 image synthesis에서 활용되는 SPADE와 유사하지만 다음의 차이점을 가짐:
- 이때 SPADE는 2D image feature에 특화되어 있지만 TFAN은 1D, 2D time-frequency feature를 대상으로 함
- SPADE는 one-layer CNN을 사용하지만 TFAN은 dynamic change를 보장하기 위해 multi-layer CNN을 사용
- SPADE는 batch normalization을 사용하지만, TFAN은 IN을 기반으로 함
- 따라서 CycleGAN-VC3에서는 time-frequency-wise로 source information

- Implementation
- CycleGAN-VC3는 TFAN을 CycleGAN-VC2 generator에 결합하여 구성됨
- 이때 아래 그림과 같이 1D
2D block의 IN과 upsampling block의 IN을 각각 1D TFAN, 2D TFAN으로 대체함→
- Channel size 와 kernel sizeCh 를 각각 128, 5로 설정h - Discriminator는 CycleGAN-VC2의 PatchGAN을 활용
- 이때 아래 그림과 같이 1D

3. Experiments
- Settings
- Dataset : VCC2018
- Comparisons : CycleGAN-VC, CycleGAN-VC2
- Results
- Naturalness, Similarity 측면에서 CycleGAN-VC3의 성능이 가장 뛰어남

- TFAN depth가 3이고 1D
2D/upsampling에 모두 사용할 때 가장 우수한 성능을 보임→

- Mel-spectrogram 측면에서도 CycleGAN-VC3는 ground-truth와 비슷한 결과를 합성함

반응형