논문 링크: https://arxiv.org/abs/1909.06805
ABSTRACT
- Many-to-many 음성 변환의 가장 큰 문제점은 parallel training data가 필요하다는 점이다.
- Parallel training data는 같은 linguistic content를 다른 화자가 말한 pair data를 포함한다.
- Parallel data 수집은 비용이 많이 들기 때문에 많은 연구가 non-parallel training data를 many-to-many VC의 training data로 사용하는 것을 시도했다.
- 그 중 하나는 VAE를 이용한 방법이다.
- VAE based VC는 many-to-many를 parallel 없이 학습할 수 있지만, 결과의 음질이 낮다.
- 이는 VAE가 오직 self-reconstruction path로만 학습되었기 때문이며, Conversion path는 전혀 학습되지 않았기 때문이다.
- 이 논문에서는 explicitly한 conversion path 학습을 위해 VAE에 cycle consistency loss를 적용하는 방법을 제안한다.
- 또한, 높은 음질의 데이터 생성을 위해 multiple decoders의 사용을 제안한다.
- 제안된 방법은 객관적이고 주관적인 평가로 검증되었다.
INTRODUCTION
- VC는 linguistic information을 유지하면서 speaker-related voice characteristics를 변환하는 task다.
- 기존의 VC 모델들은 model training에 parallel speech data가 필요했다.
- Parallel speech data는 다른 speaker가 말한 같은 linguistic contents의 utterances의 pair이며, 이런 parallel data는 VC에만 쓰이지만 너무 expensive하다.
- 따라서 많은 VC 접근법이 non-parallel training data 사용을 시도했다.
- 이전 연구들은 Gaussian mixture models를 사용하여 non-parallel training data를 활용했다.
- 최근에는 주로 CycleGAN, VAE, VAE with generative adversarial network를 사용한다.
- CycleGAN based VC에서는 GAN을 사용하여 source speaker의 speech features가 target speaker의 characteristics로 매치되도록 변환된다.
- 그리고 converted speech features는 또 다른 GAN을 통해 original speech features와 매치되도록 다시 converted된다.
- Cycle-consistency loss를 이용하여 linguistic contents는 converted speech에 유지된다.
- 그러나 CycleGAN은 오직 one-to-one mapping이 가능하다. N speakers를 위해서는 n(n-1)/2의 CycleGAN model이 필요하다.
- CycleGAN을 many-to-many로 확장하는 것들이 있지만, speaker의 수가 증가하면 그만큼 잘 scale되지 않는다. (최대가 4)
- 반면 VAE 기반 VC 접근법은 non-parallel data를 사용하면서 수백 명의 화자에 대해 many-to-many를 수행할 수 있다.
- VAE는 encoder와 decoder로 구성되어 있다. Encoder는 input speech features를 linguistic information을 포함한 latent vectors로 변환한다.
- 그리고 latent vectors는 target speaker identity vector(원핫벡터)와 함께 target speaker의 converted speech features를 생성하는 decoder에 입력된다.
- Decoder가 target speaker identity vector를 조건으로 사용되기 때문에 conditional VAE라고도 불린다.
- VAE 모델은 빠르게 학습되지만 변환된 speech의 음질은 보통 낮다.
- 음질을 높이기 위해 VAE와 WGAN이 사용된다.
- 이 방법에서는 VAE의 decoder가 WGAN의 generator로 간주된다.
- VAEWGAN based VC는 muffled sound를 줄였음에도 불구하고 변환된 음성의 품질은 여전히 불만족스러웠다.
- VAE based VC의 주요 문제점은 VAE 모델들이 source speaker에서 target speaker로 명시적으로 학습되지 않는다는 것이다.
- 또한, 이들은 latent vectors와 source speaker identity vector를 사용하여 source speaker로부터의 input speech와 동일하게 복원되도록 학습된다.
- 이 논문에서는 VAE가 명시적으로 source to target 매핑을 학습할 수 있도록 cycle consistency loss를 이용한다.
- 그리고, 음질을 더 향상시키기 위해 각 target speaker에 대해 분리된 decoder를 가진 multi-decoder VAE를 제안한다.
- Cycle consistency loss와 multiple decoders는 VAEWGAN에도 포함될 수 있다.
CYCLE-CONSISTENT VAE AND VAEWGAN
Variational Autoencoder
- VAE의 Loss function은 아래와 같다.
- 𝔻_KL은 Kullback-Leibler divergence를 의미한다.
- 𝑞_𝜙(𝑧|𝑥)는 input speech x를 받아 그 안의 linguistic information을 추론하는 것이다.
- 𝜙를 파라미터로 가지는 인코더 모델
- p(z)는 latent vector z를 위한 prior distribution이다.
- 𝑝_𝜃(𝑥|𝑧, 𝑋)는 파라미터 𝜃를 가지는 디코더 모델이다.
- z와 source speaker identity vector X를 사용해서 reconstructed speech를 생성한다.
- 위 수식을 minimizing하면서 VAE는 input speech를 z와 X로부터 reconstruct하도록 학습된다.
- Source speaker와 target speaker 사이의 명시적인 model training이 없기 때문에 VAE based VC 방법은 일반적으로 저음질을 생성한다
Variational Autoencoder with Wasserstein Generative Adversarial Network
- VAEWGAN은 VAE만 사용한 것의 음질을 향상시키기 위해 제안되었다.
- 이 접근법에서는 VAE의 decoder가 WGAN의 generator이다.
- WGAN loss function은 아래와 같다.
- 𝐺_theta는 theta를 파라미터로 가지는 generator이다.
- D_psi는 psi를 파라미터로 가지는 discriminator이다.
- y는 speaker identity vector Y로 표현된 target speaker로부터의 speech이다.
- VAE의 decoder가 WGAN의 generator이므로 G_theta는 p_theta이다.
- 따라서 VAEWGAN의 Loss function은 아래와 같이 다시 정리할 수 있다.
- 𝜆_1은 WGAN loss의 weight이다.
- 3은 VAE와 generator를 위해 minimize되고, discriminator를 위해 최대화된다.
- 먼저 VAE는 기존 VAE와 같은 방식으로 학습된다.
- 그리고 VAE가 WGAN의 discriminator로부터 추가적인 error signal을 얻으면서, VAE와 WGAN은 jointly trained된다.
- VAEWGAN이 VAE보다 고음질을 생성하지만, 오직 one-to-one만 할 수 있다.
- 따라서 다음 부분에서는 VAE와 VAEWGAN의 확장을 제안한다.
- Cycle-consistent VAE
- Cycle-consistent VAEWGAN
- 각각은 multiple decoders를 사용하고 many-to-many mapping function을 explicitly하게 학습하면서 many-to-many VC 기능을 향상시킬 수 있다.
Cycle-Consistent Variational Autoencoder (CycleVAE)
- 고품질 음성을 위해 모든 speaker에 하나의 decoder만 사용한 것이 아니라, 각 speaker마다 분리된 decoder 사용을 제안한다.
- 또한 explicit conversion path training을 위해 cycle consistency loss 사용을 제안한다.
- Multi-decoder VAE에서는 각 speaker가 독립된 decoder를 가지고 있어서 speaker identity vector가 필요 없다.
- Conventional VAE는 다수의 화자를 하나의 decoder로 self-reconstruction training만 했던 반면, 각 decoder가 해당하는 speaker의 voice characteristics를 학습함으로써 음질이 향상될 것으로 기대된다.
- Fig. 1은 두 명의 화자에 대한 CycleVAE의 개념을 보여준다.
- Speaker X로부터의 input speech x가 network에 입력되면, 이는 encoder를 통해 latent vector z로 압축된다.
- Reconstruction error는 speaker X의 decoder model p_theta_x에서 재구성된 speech x’_X→X를 통해 계산된다.
- 이때 loss function은 speaker identity vectors를 요구하지 않는다는 점을 제외하고는 vanilla VAE와 유사하다.
- 같은 input speech x가 encoder를 통과하고, speaker Y의 decoder model p_theta_y를 통해서도 Y의 목소리로 linguistic contents를 가진 x’_X→Y가 생성된다.
- 그리고 x’_X→Y는 다시 encoder와 p_theta_x를 통해 x’’_X→Y→X로 변환되어 원본 x를 복원해야 한다.
- 이러한 cycle conversion은 X에서 Y로 그리고 Y에서 X로의 explicit training을 가능하게 한다.
- Multi-decoder VAE의 cycle consistency loss는 다음과 같다.
- 따라서, CycleVAE의 전체 loss는 아래와 같다.
- 𝜆_2는 cycle consistency loss의 weight이다.
- 모든 training speaker의 쌍을 합하면서 두 명 이상의 화자로 쉽게 확장될 수 있다.
- 두 명보다 많은 speakers의 CycleVAE의 loss function은 speaker X로부터의 input speech x에 대해 다음과 같이 계산된다.
Cycle-Consistent Variational Autoencoder with Wasserstein Generative Adversarial Network (CycleVAEWGAN)
- CycleVAE는 WGAN을 사용한 VAEWGAN으로 확장될 수 있다.
- CycleVAEWGAN에서는 CycleVAE의 decoders가 WGANs의 generators로 사용된다.
- 각 decoder는 자신만의 WGAN을 가진다.
- Fig. 2는 두 명의 화자에 대한 CycleVAEWGAN의 개념을 보여준다.
- G_theta_Y는 speaker Y를 위한 theta_Y 파라미터를 가진 generator이다.
- D_psi_Y는 speaker Y를 위한 psi_Y 파라미터를 가진 discriminator이다.
- y는 target speaker Y로부터의 speech이다.
- CycleVAE의 decoders가 WGANs의 generators이므로, G_theta_Y는 p_theta_Y이다.
- 따라서 CycleVAEWGAN의 Loss function은 아래와 같다.
- L’_WGAN은 self-reconstruction path와 conversion path에 걸쳐 두 번 사용됨을 유의하자._WGAN은 2번 사용됨을 유의하자.
- Equation 9는 CycleVAE와 generators를 위해 minimize되고, discriminators를 위해 maximize된다.
- CycleVAEWGAN 학습의 첫 단계는 CycleVAE와 동일하다.
- 두 번째 단계에서는 CycleVAE와 WGANs가 jointly optimized되면서 CycleVAE가 WGANs로부터 추가적인 error signals을 받는다.
- Training speakers의 모든 쌍을 더하면서 화자의 수를 확장할 수 있다.
- Speaker X의 speech x에 대한 CycleVAEWGAN의 loss function은 다음과 같다.
- 제안된 CycleVAEWGAN은 multiple decoders와 WGANs를 사용한다는 점에서 이전연구( “Non-parallel voice conversion with cyclic variational autoencoder” ) 와 다르다.
EXPERIMENTS
- VCC2018 dataset의 각각 SF1, SF2, TM1, TM2로 명명된 남자 화자 2명과 여자 화자 2명이 사용되었다.
- Training과 test를 위해 사용된 utterances의 개수는 화자당 81개와 35개이다.
- Speech는 22.05kHz로 downsample됐다.
- 36-dimensional Mel-frequency cepstral coefficients (MFCC), aperiodicities (AP), 그리고 fundamental frequency (F0)은 WORLD speech analyzer를 사용하여 추출되었다.
- Encoder, decoder, 그리고 discriminators는 gated linear units(GLU)를 사용하였다.
- Batch normalization이 각 CNN 층에 적용되었다.
- Fig3이 detail한 모델 구조를 보여준다.
- Adam optimizer를 batch size 8로 사용했다.
- CycleVAE를 훈련시킬 때, 𝜆1와 𝜆2는 0 and 1로 설정했다.
- CycleVAEWGAN을 훈련시킬 때, 𝜆1와 𝜆2는 1로 설정했다.
- 모든 실험은 랜덤하게 초기화된 weight로부터 5번 반복되었다.
Obejctive Evaluations
- VAE 방식의 문제점 중 하나는 generated data의 over-smoothing이다.
- 높은 GV값은 spectra의 sharpness와 관련있다.
- MFCCs의 global variance(GV)는 over-smoothing의 정도를 측정하기 위해 사용될 수 있다.
- 각 MFCC indices의 GV값을 계산했다.
- Fig4는 기존의 VAEWGAN과 제안된 CycleVAE에 의한 real speech와 converted speech에 대한 모든 evaluation utterances의 평균 GV값을 나타낸다.
- Real과 VAEWGAN, CycleVAE의 평균 GV는 0.247, 0.200, 0.210이다.
- Original과 converted speech 발화가 같은 linguistic information을 가지는 경우에, 두 speech의 MFCC간 차이는 작다.
- 이 차이를 계산하기 위해 Mel-cepstral distortion (MCD)와 Modulation Spectral Distance (MSD)를 metric으로 사용한다.
- Table1과 Table2는 다양한 VAE 방법들의 MCD와 MSD를 나타낸다.
- 첫째로, baseline VAE와 VAEWGAN열을 비교하면 VAEWGAN이 VAE보다 뛰어남을 알 수 있다.
- 둘째로, cycle consistency loss 자체의 효과를 평가하기 위해, 하나의 공통 decoder를 가지는 CycleVAE와 CycleVAEWGAN를 만들었다.
- 4,5번째 열이 이 결과를 나타낸다.
- 2와4 또는 3과5번째 열을 비교하면서 cycle consistency loss의 효과성을 볼 수 있다.
- 마지막으로, 제안된 multi-decoder approaches with cycle consistency loss의 효과는 마지막 2열에서 확인할 수 있다.
- 하나의 decoder를 가진 VAE나 CycleVAE와 다르게, 여러개의 decoder를 가지고 CycleVAE에 WGANs를 추가한 것은 효과가 더 향상되지 않았다.
- 이는 multi-docoder cycle consistency loss가 conversion path를 명시적으로 학습하는데 있어서 충분히 효과적이기 때문에 conversion path learning을 위한 추가적인 WGANs는 필요하지 않을 것같다.
Subjective Evaluations
- naturalness와 similarity test에 대해 2가지 주관적 평가도 진행하였다.
- 16개의 utterances가 랜덤하게 선택되었고, 4개의 utterances가 F to F, M to F, F to M, M to M 변환으로 할당되었다.
- 총 48개(16개의 target speaker’s utterances, 16개의 converted utterances by the conventional VAEWGAN, 16개의 converted utterances by the proposed CycleVAE with multiple decoders)의 utterances들이 10명의 청취자에게 주어졌다.
- mean opinion score (MOS)는 naturalness test에 사용됐다. → 1~5로 평가
- Table3은 제안된 CycleVAE based VC가 기존의 VAEWGAN보다 일반적으로 높은 naturalness score를 가짐을 보여준다.
- similarity test에서는 targe speaker’s utterance가 먼저 들려지고, 두 방법으로 변환된 두 utterances가 랜덤한 순서로 들려진다.
- listener들은 더 비슷한 utterance를 선택하거나 차이가 없으면 fair를 한다.
- Table4는 제안된 CycleVAE가 conventional VAEWGAN보다 확실히 좋다는 것을 보여준다.
CONCLUSION
- 이 논문에서는 VAE 기반의 새로운 many-to-many VC 방법을 제안한다.
- 제안된 방법은 multiple decoders를 사용하고 many-to-many에 대해 conversion path를 명시적으로 학습한다.
- 제안된 방법의 효과는 객관적 주관적 평가로 검증되었다.
- 제안된 방법은 multiple encoder를 이용하여 확장될 수 있다.
- 예를 들면 하나의 source speaker에 하나의 encoder를 할당
- 또한, WaveNet과 WaveRNN과 같은 더 강력한 neural vocoders로 vocoder를 대체하는 것은 또 다른 연구 방향이 될 수 있다.