We propose a non-parallel voice-conversion (VC) method that can learn a mapping from source to target speech without relying on parallel data. The proposed method is particularly noteworthy in that it is general purpose and high quality and works without any extra data, modules, or alignment procedure.

Our method, called CycleGAN-VC, uses a cycle-consistent adversarial network (CycleGAN) [1] (i.e., DiscoGAN [2] or DualGAN [3]) with gated convolutional neural networks (CNNs) [4] and an identity-mapping loss [5]. We show the training procedure in Figure 1. In a CycleGAN, forward and inverse mappings are simultaneously learned using an adversarial loss and cycle-consistency loss (Figure 1 (a)(b)). This makes it possible to find an optimal pseudo pair from non-parallel data. Furthermore, the adversarial loss can bring the converted speech close to the target one on the basis of indistinguishability without explicit density estimation. This allows to avoid over-smoothing caused by statistical averaging, which occurs in many conventional statistical model-based VC methods that represent data distribution explicitly.

The cycle-consistency loss imposes constraints on the structure of the mapping; however, it would not suffice to guarantee that the mappings always preserve linguistic information. To encourage linguistic-information preservation without relying on extra modules, we incorporate an identity-mapping loss, which encourages the generator to find the mapping that preserves composition between the input and output (Figure 1 (c)(d)).

Figure 1. Training procedure of CycleGAN-VC. G X→Y is forward generator that transforms X to Y. G Y→X is inverse generator that transforms Y to X. D X and D Y are discriminators in X and Y domains, respectively. (a)(b) We use adversarial losses and cycle-consistency losses to find optimal pseudo pair from unpaired data. (c)(d) Furthermore, we use identity-mapping losses to preserve linguistic information.

One of the important characteristics of speech is that it has sequential and hierarchical structures, e.g., voiced or unvoiced segments and phonemes or morphemes. An effective way to represent such structures would be to use an RNN, but it is computationally demanding due to the difficulty of parallel implementations. Instead, we configure a CycleGAN using gated CNNs that not only allow parallelization over sequential data but also achieve state-of-the-art in language modeling [4] and speech modeling [6]. In a gated CNN, gated linear units (GLUs) are used as an activation function. A GLU is a data-driven activation function, and the gated mechanism allows the information to be selectively propagated depending on the previous layer states. We illustrate the network architectures of the generator and discriminator in Figure 2.

Figure 2. Network architectures of generator and discriminator. In input or output layer, h, w, and c represent height, width, and number of channels, respectively. In each convolutional layer, k, c, and s denote kernel size, number of channels, and stride size, respectively. Since generator is fully convolutional, it can take input of arbitrary length T.

We evaluated our method on a non-parallel VC task. An objective evaluation showed that the converted feature sequence was near natural in terms of global variance and modulation spectra, which are structural indicators highly correlated with subjective evaluation. A subjective evaluation showed that the quality of the converted speech was comparable to that obtained with a Gaussian mixture model-based parallel VC method even though CycleGAN-VC is trained under disadvantageous conditions (non-parallel and half the amount of data). We provide speech samples below.