본문 바로가기

연구실 공부

Voice Conversion 간단 설명

728x90

Voice Conversion (VC)

VC는 linguistic content information은 유지한 채로 utterance의 speaker를 target speaker로 변환하는 기술입니다. VC를 하기 위해 과거에는 paired data가 필요했습니다. 최근 몇 년 동안 non-parallel data를 이용하는 다양한 model들이 등장했습니다. DGAN-VC는 adversarial training 방식으로 content information과 speaker information을 분리하도록 학습합니다. StarGAN-VC는 many-to-many voice conversion을 진행하기 위해 conditional input을 사용합니다. 하지만, 두 model다 training 중에 봤던 speaker에 대한 VC만 가능하다는 제약이 존재합니다. Zero-shot 방식들이 고려되기 시작했으며, 어떠한 fine-tuning 없이 model이 모든 speaker에 대한 VC를 수행할 수 있도록 연구되기 시작했습니다. AdaIN-VC는 instance normalization을 이용하여 문제를 해결했습니다. AUTOVC는 pr-trained d-vector와 information bottleneck을 사용하여 이 문제를 해결했습니다.

VC 기술이 최근에 더 발전했지만, 대부분의 논문들은 VC model을 동일한 corpora를 사용하거나 비슷한 recording condition을 사용하는 corpora로 train과 evaluate를 진행했습니다. 하지만 실생활에서는 utterance들의 recording condition들은 매우 다를 수 있습니다. 그래서 좀 더 강건한 VC model들에 대한 요구가 늘어나고 있으며, 연구가 진행되고 있습니다. sampling rate가 다르거나 unseen language에 대한 VC 성능을 향상시키거나 robust한 speaker embedding을 만드는 등 robust에 대한 연구가 진행되고 있습니다.

 

 

위 구조는 일반적인 voice conversion framework입니다. 위 model과 같이 speaker timbre와 content information을 분리하여 model을 구현하는 것이 일반적입니다. 이러한 model들은 범용성이 좋으며 다시 사용하기도 좋습니다. speaker embedding으로 i-vector, d-vector 등 speaekr verification에서 잘 동작하는 embedding을 사용합니다. 

Voice Conversion (VC)는 deep learning을 통해 최근 몇 년동안 빠르게 발전되었지만, 여전히 서로 다른 condition에서의 자연스럽게 들리는 utterance를 만드는 능력은 부족합니다. 이를 해결하기 위해 speaker embedding을 대체하는 방식과 같이 다양한 연구들이 진행되고 있습니다.

 AdaIN-VC의 경우, KL divergence loss, instance normalization layer를 사용하여 content encoder가 linguistic information만 학습하도록 만들었으며, adaptive instance normalization를 이용하여 zero-shot VC를 성공적으로 수행하게 되었습니다. 

 

실험을 진행하는 방식은 매우 다양합니다. 크게 objective metric과 subjective metric으로 나눌 수 있습니다. subjective metric은 preference를 scoring 하거나, similarity 또는 naturalness 관점에서 scoring test를 진행하는 등 청자가 직접 평가하는 방식입니다.

objective metric으로 global variance, character error rate, speaker verification accept rate 등 다양한 방식이 존재합니다. 저자들은 연구 방향과 목표에 따라 적합한 metric을 사용합니다.