티스토리 뷰

반응형

Blow: A Single-Scale Hyperconditioned Flow for Non-Parallel Raw-Audio Voice Conversion


  • Many-to-Many voice conversion을 위해서는 non-parallel data를 활용할 수 있어야 함
  • Blow
    • Hypernetwork conditioning과 single-scale normalizing flow를 활용
    • Single speaker identifier를 사용하여 frame-by-frame으로 end-to-end training 됨
  • 논문 (NeurIPS 2019) : Paper Link

1. Introduction

  • Raw audio는 intermediate representation을 사용하는 것보다 더 많은 model capacity와 큰 receptive field를 요구함
    • 특히 Voice Conversion (VC)은 spoken content를 preserve 하면서 source speaker identity를 targeted identity로 변환하는 것을 목표로 함
    • 이때 대부분의 VC system은 parallel data를 활용하여 supervised 방식으로 training 됨
      - 즉, source/target speaker가 accurately temporal align 된 input/output pair가 필요함
    • BUT, parallel data는 non-scalable 하고 수집하기 까다로우므로, 다양한 non-parallel data를 활용할 수 있어야 함

-> 그래서 non-parallel, many-to-many, raw-audio voice conversion을 지원하는 Blow를 제안

 

  • Blow
    • Mimimal supervision으로 end-to-end training 되는 normalizing flow architecture를 채택
      - Individual audio frame과 해당 frame에서 speaker identity를 나타내는 identifier를 활용
    • VC를 위한 더 나은 likelihood를 얻기 위해, forward-backward conversion mechanism, hypernetwork conditioning, shared speaker embedding, data augmentation을 도입

< Overall of Blow >

  • Hyperconditioning과 normalizing flow architecture를 활용한 VC model
  • 결과적으로 기존보다 뛰어난 conversion 성능을 달성

2. Flow-based Generative Models

  • Flow-based generative model은 input sample xX에서 latent representation zZ으로의 bijective mapping z=f(x),x=f1(z)를 학습함
    • 이때 mapping f를  normalizing flow라고 하고, neural network로 parameterize 된 k개의 invertible transformation sequence f=f1...fk로 구성됨
    • 따라서 동일한 dimensionality를 가지는 x,z간의 relationship은:
      x
    • 이때 realistic sample을 생성하기 위해서는 probability density p(X)를 모델링해야 함
      1. 일반적으로 해당 과정은 intractable 하지만, f를 사용하면 exact log-likelihood를 통해 모델링할 수 있음:
        (Eq. 1) L(X)=1|X|i=1|X|log(p(xi))
      2. Single sample x에 대한 variable change, inverse function theorem, compositionality를 적용하면:
        log(p(x))=log(p(z))+i=1klog|det(fi(hi1)hi1)|
        - fi(hi1)hi1 : hi1에서 fi의 Jacobian matrix, Log-determinant는 fi에 의해 발생한 log-dentisty의 변화를 나타냄
        - 실적용에서는 determinant를 빠르게 계산하고 invertibility를 보장하기 위해 fi로 triangular Jacobian matrix를 사용하고, 빠른 sampling을 위해 p(z)에 대해 isotropic unit Gaussian을 채택
    • ffi의 parameterization을 위한 structure로써 RealNVP와 Glow를 고려할 수 있음
      1. RealNVP는 batch normalization, masked convolution, affine coupling layer로 구성된 block structure를 활용
        - 이때 2×2 squeezing operation과 alterning checkerboard, channel-wise mask를 combine 함
      2. Glow는 batch normalization을 activation normalization (ActNorm)으로 대체하고, invertible 1×1 convolution을 통한 channel-wise mixing을 도입
        - 구조적으로는 2×2 squeezing operation과 32~64 flow step으로 구성된 3~6개의 block을 활용함
        - 해당 block은 ActNorm, 1×1 invertible convolution, affine coupling layer로 구성됨
    • Glow, RealNVP 모두 다양한 resoultion에서 z의 component를 factor out 하는 multi-scale structure를 가짐
      - 이를 통해 다양한 granularity에서 representation의 intermediary level을 정의할 수 있음

3. Blow

  • Blow는 Glow를 기반으로 VC를 위한 추가적인 modification을 적용함 
    • 이때 single-scale structure, 각각 더 적은 flow를 가지는 many block, forward-backward conversion mechanism, hyperconditioning module, shared speaker embedding, data agumentation의 방법을 활용 
    • 구조적으로는 alternate pattern과 flow step을 가지는 1D 2× squeeze operation을 사용함
      1. Flow step은 channel mixer로 사용되는 linear invertible layer와 ActNorm, affine coupling network로 구성됨
      2. Coupling network는 ReLU activation을 포함한 1D convolution과 hyperconvolution으로 구성됨
        - 여기서 512×512 channel에 대해 last convolution, hyperconvolution은 3의 kernel width를 가지고, intermediate convolution은 1의 kernel width를 사용
      3. Same speaker embedding은 모든 coupling network에 전달되고 각 hyperconvolution에 대해 independently adapt 됨
    • 결과적으로 Blow는 output z를 unit isotropic Gaussian과 비교하고 z의 dimensionality로 normalize 된 (Eq. 1)의 log-likelihood L를 최적화함 

Overall of Blow

- Single-Scale Structure

  • Multi-scale structure는 intermediary level representation을 효과적으로 처리하고 gradient flow를 encourage 해 normalizing flow의 training을 용이하게 함
    • BUT, VC task에서 speaker identity trait는 대부분 coarser level representation에 존재함 
    • 추가적으로, mutli-scale structure 대신 block 전체에 대해 same input dimensionality를 적용해도 gradient flow에는 문제가 없고, 오히려 더 나은 log-likelihood를 얻을 수 있음 
      - 즉, log-determinant term이 모든 flow step에서 factor out 되기 때문에 gradient가 block activation을 factoring out 하지 않고도 flow 할 수 있음
    • 결과적으로 block activation이 subsequent block에서 further processing 되므로, Blow는 single-scale structure 만으로도 더 나은 log-likelihood를 얻게 됨

- Many Blocks

  • 기존의 flow-based image generation model은 32×32256×256 pixel 사이의 image를 처리함
    • Raw audio에서 16kHz의 256 sample은 16ms에 해당하므로, speech construct를 capture 하기에 불충분함
      - 특히 phoneme duration은 50~180ms 사이에 위치하므로 phoneme transition을 모델링하기 위해서는 더 긴 length가 필요
    • 따라서 raw audio 모델링을 위해서는 input/receptive field를 늘려야 함 
      1. 이때 WaveGlow와 같은 flow-based audio model은 최대 28 dilation을 지원하는 WaveNet-style coupling network를 활용함
      2. Blow에서는 상대적으로 적은 flow step을 가지는 대신 더 많은 block을 사용하도록 구성함
        - 특히 12개의 flow를 가지는 8개의 block을 사용 (8×12 structure)
        - 이때 모든 block에 대해 2× squeeze operation이 있으므로, 28 sample의 total squeezing이 필요
    • Kernel width 3의 2개의 convolution이 있다고 하면, 해당 8×12 structure는 12500개 sample의 receptive field를 생성함 (16kHz에서 781ms에 해당)
    • 한편으로 논문에서는 더 큰 batch size를 위해 4096 sample의 input frame를 사용함 (16kHz에서 256ms에 해당)
      - 기존 WaveNet의 receptive field와 비슷하고 phoneme transition을 accommodate 하기에 충분하기 때문
    • 결과적으로 Blow는 context 없이 frame-by-frame으로 동작하게 됨

- Forward-Backward Conversion

  • Glow-based model에서 manipulation이나 conditioning을 수행하기 위해서는 z space를 활용해야 하지만, VC task에서는 해당 strategy가 효과적이지 않음 
    • 따라서 Blow에서는 z에 대한 identity manipulation 대신 z를 identity-agnostic representation으로 고려함 
      1. 이는 x의 real input characteristic을 specifying 하는 supplied condition이 maximum likelihood objective를 고려할 때, xz로 변환하는데 유용해야 한다는 것을 의미
        - 즉, input condition/characteristic을 알면 해당 condition/characteristic을 통해 hidden similarity를 쉽게 찾을 수 있어야 함
      2. x에서 z로의 flow에서 multiple level conditioning이 condition-free z space로 얻어진다면, 다른 condition으로 zx로 변환할 때 해당 characteristic도 output x에 imprint 되어야 함
    • 결과적으로 Blow는 source speaker identifier yS를 사용하여 x(S)z로 변환하고, target speaker identifier yT를 사용하여 z를 converted audio frame x(T)로 변환함 

- Hyperconditioning

  • Flow-based model에서 coupling network를 도입하면 Jacobian matrix를 계산할 필요가 없고 invertibility constraint가 적용되지 않는다는 장점이 있음
    • 특히 affine channel-wise coupling은 coupling network가 대부분의 transformation을 수행하므로 conditioning information으로 boost 될 수 있는 representation power를 가져야 함
    • 이때 coupling network를 conditioning 하기 위해 input layer에 representation을 add/concatenate 할 수 있음
      - BUT, addition이나 concatenation은 powerful 하지 않으므로, convolution kernel weight로 직접 conditioning을 수행하는 것이 좋음
    • 따라서 논문에서는 coupling network의 first layer에서 hyepernetwork와 같이 convolution operator의 weight를 결정하도록 함
      1. 먼저 1D convolution과 i-th convolutional filter에 대한 input activation matrix H가 주어진다고 하면:
        (Eq. 2) h(i)=Wy(i)H+by(i)
        - : 1D convolution operation, Wy(i),by(i) : y로 condition 된 i-th kernel weight, bias
      2. 그러면 n condition-dependent kernel과 bias에 대한 set Ky:
        (Eq. 3) Ky={(Wy(1),by(1))...(Wy(n),by(n))}=g(ey)
        - g : conditioning representation ey를 input으로하는 adapter network로써 condition identifier y에 따라 달라짐
        - ey : speaker의 pre-calculated feature representation에서 fix 되거나 initialize 되는 embedding

- Structure-wise Shared Embeddings

  • Coupling network 당 하나의 ey를 학습하면 sub-optimal result가 발생할 수 있음
    • BUT, 많은 수의 flow step이 주어지더라도 independent conditioning representation은 speaker identity와 같은 condition essence에 focus 할 필요가 없음
      - 따라서 model은 condition과 관계없이 negative log-likelihood를 최소화하는 combination을 학습해야 함
    • 결과적으로 model의 freedom을 reduce 하기 위해, 논문에서는 해당 reprsentation을 constraint 함 
      1. 이때 StyleGAN과 같이 flow의 모든 step에서 각 coupling network가 share 하는 single learnable embedding ey를 도입
        - 이를 통해 model freedom과 parameter 수를 줄여 더 나은 생성이 가능해짐
      2. 추가적으로 smallest possible adaptor network g도 적용
        - Dimensionality adjustment 만을 수행하는 bias를 가진 single linear layer

- Data Augmentation

  • Blow의 training을 위해 silent frame을 discard 한 다음, 나머지 frame에 대해 4가지의 data augmentation을 적용함
    1. Temporal Jitter
      • 각 frame x의 start jj=j+U(ξ,xi)로 shift
      • U : uniform random number generator, ξ : frame size의 절반
    2. Random Pre-/De-emphasis Filter
      • Speaker identity는 simple filtering으로 변화하지 않음
      • 따라서 coefficient α=U(0.25,0.25)의 emphasis filter를 적용
    3. Random Amplitude Scaling
      • Speaker identity는 scailing을 통해 preserve 되고 model이 [1,1] 사이의 모든 amplitude를 처리하도록 함
      • 이를 위해 x=U(0,1)x/max(|x|)를 사용
    4. Frame Value Random Flip
      • Auditory perception은 average pressure level과 관계되어 있으므로, x의 부호를 flip 하여 동일한 perceputal quality를 가지는 다른 input을 얻을 수 있음
      • 즉, x=sgn(U(1,1))x

- Implementation Details

  • General
    • 104의 learning rate, 114 batch size를 사용하여 Adam을 통해 Blow를 training 함
    • 구조적으로는 2× alternate-pattern squeezing operation이 있는 8×12 structure를 사용
      1. Coupling network는 channel을 두 부분으로 split 하고, 512 filter와 [3,1,3] kernel width를 가지는 1D convolution을 사용
        - Embedding dimension은 128
      2. Overlap이 없는 16kHz에서 4096의 frame rate로 training 하고, 하나의 data-augmented batch로 ActNorm weight를 initialize 함
    • 추가적으로 Hann window와 50% overlap을 통해 합성을 수행한 다음, [1,1] range로 utterance를 normalize 함
  • Coupling
    • Glow와 같이 coupling network의 scaling factor를 constraining 하면 training stability가 향상됨
    • 이때 channel-wise concatenation이 있는 affine coupling layer는:
      H=[H1:c,s(H1:c)(Hc+1:2c+t(H1:c))]
    • 여기서 2c는 total channel 수 이므로:
      s(H1:c)=σ(s(H1:c)+2)+ϵ
      - σ : Sigmoid function, ϵ : infinite log-determinant를 방지하기 위한 small constant
  • Hyperconditioning
    • (Eq. 2), (Eq. 3)에 따라 hyperconditioning operation은 large GPU memory footprint와 time-consuming calculation이 요구됨
    • 이때 kernel Wy(i)의 dimensionality를 restricting 하여 모든 channel이 자체적인 kenel set와 convolve 되도록 하면 GPU footprint를 줄일 수 있음
      - 이는 depthwise separable convolution이나 grouped convolution으로 구현됨

4. Experiments

- Settings

  • Dataset : VCTK
  • Comparisons : Glow, Glow-WaveNet, StarGAN-VC, VQ-VAE

- Results

  • 전체적으로 Blow가 가장 우수한 성능을 보임

모델 성능 비교

  • Ablation study 측면에서 각 configuration을 대체하는 경우 성능 저하가 발생함

Ablation Study

  • 100 epoch에서 18h의 training set을 활용하는 것과 전체 37h의 training set을 사용하는 것은 거의 동일한 likelihood를 보임
    - Normalizing flow가 single input, identifier에 대해서만 likelihood를 최대화하고, target speaker로의 actual conversion을 수행하지 않기 때문

Training Data에 따른 Likelihood

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Total
Today
Yesterday