티스토리 뷰

반응형

StreamVC: Real-Time Low-Latency Voice Conversion


  • Lightweight, high-quality conversion을 지원하는 streaming voice conversion 모델이 필요함
  • StreamVC
    • SoundStream의 neural audio codec architecture를 활용
    • Soft speech unit을 causal 하게 학습하고 pitch stability를 향상하기 위해 whitened fundamental frequency information을 제공
  • 논문 (ICASSP 2024) : Paper Link

1. Introduction

  • Voice Conversion (VC)는 linguistic content를 preserve 하면서 speech signal의 style을 변경하는 것을 목표로 함
    • 기존에는 CycleGAN-VC, StarGAN-VC와 같은 direct conversion이나 AutoVC, AdaIN-VC와 같은 feature disentanglement에 기반한 auto-encoding 방식이 사용됨
      - BUT, noticeable artifact가 발생하고 tuning 하기 어려운 information bottleneck에 의존한다는 한계가 있음
    • 한편으로 FreeVC와 같이 speech recognition system이나 pretrained feature extraction network를 활용할 수도 있음
      - BUT, non-causal multi-layer transformer network로 인해 computationally expensive 함

-> 그래서 low-latency, lightweight VC를 위한 StreamVC를 제안

 

  • StreamVC
    • Lightweight, causal convolution network를 활용하여 soft speech unit information을 capture
    • SoundStream의 architecture와 training strategy를 채택하여 on-device, low-latency streaming inference를 지원
    • Source speaker timbre를 leaking 하지 않고 pitch consistency를 개선할 수 있는 whitened fundamental frequency $f_{0}$를 도입

< Overall of StreamVC >

  • Soft speech unit과 SoundStream architecture를 활용한 lightweight VC model
  • 결과적으로 Pixel 7 스마트폰에서 동작하면서 합리적인 conversion 성능을 달성

2. Method

- Motivation

  • StreamVC는 SoftVC와 SoundStream을 기반으로 함
    • 먼저 SoftVC는 HuBERT에서 추출된 discrete speech unit을 content encoder network의 prediction target으로 사용함
      - 이때 pretrained HuBERT를 사용하여 frame 당 pseudo-label을 derive 하여 content encoder의 학습을 지원
      - Last layer activation에서는 logistic projection을 통해 speech content를 latent soft speech unit으로 represent 하여 decoder로 전달함
    • Content encoder와 decoder는 SoundStream의 training strategy와 architecture를 따름

- Model Architecture

  • Content Encoder
    • Content encoder는 convolutional arhchitecture로 $C=64$의 scale, $D=64$ embedding dimension을 가지는 SoudnStream encoder를 따름
    • 이때 conditioning을 적용하지 않으므로 Feature-wise Linear Modulation (FiLM) layer는 사용되지 않음
  • Speaker Encoder
    • Speaker enoder는 per-frame encoding part와 global (utterance-level) context aggregator로 구성됨
    • 이때 per-frame encoding part에서는 $C=32$ scale, $D=64$ embedding dimension을 가지는 SoundStream encoder를 reuse함
      - 해당 per-frame context embedding은 learnable pooling을 통해 single global context로 aggregate 됨
    • Learnable pooling은 single learnabel query가 있는 attention mechanism으로부터 weight가 derive 된 average pooling을 의미
  • Fundamental Frequency and Energy Estimation
    • Decoder에 HuBERT의 soft speech unit embedding만 제공하면 flattened pitch envelope를 가지는 음성이 생성됨
      - 특히 tonal, acoustic energy information은 phonetic unit discrimination에 존재하지 않으므로, content encoder output 외에도 해당 signal을 decoder에 제공할 수 있어야 함
    • 따라서 pitch에 해당하는 $f_{0}$ estimation을 위해 논문은 Yin algorithm을 채택함
      1. 이때 $f_{0}$ estimation 외에도, 해당 algorithm으로 얻어지는 cumulative mean normalized difference value와 estimated unvoiced signal predicate를 사용
      2. 이후 $f_{0}$ esitmation에 대한 uncertainty information을 convey 하기 위해 Yin algorithm output을 3가지의 threshold $0.05, 0.1, 0.15$와 concatenate 함
        - 이를 통해 channel dimension에서 content latent와 concatenate 된 20ms 당 9개의 value가 생성됨
    • 한편으로 decoder에 speaker timbre parameter가 제공되지 않도록 utterance-level mean, standard deviation을 기반으로 $f_{0}$ envelope를 normalize 함
      - Streaming inference 중에는 causality를 위해 해당 parameter의 running average를 사용
    • 추가적으로 $f_{0}$ information 외에도 sample variance를 통해 얻어진 20ms audio frame energy를 decoder에 대한 side information으로 제공
  • Decoder
    • SoundStream의 decoder를 따르고 $C=40$의 scale과 $D=64$의 embedding dimensionality를 사용함
    • FiLM layer는 residual unit 사이에서 speaker latent embedding form으로 conditioning signal을 integrate 하기 위해 사용됨
      - 이때 Speaker latent를 input으로 하는 2개의 separate linear layer에서 계산된 scale, bias parameter를 활용하여 neural network feature를 transform 함

Overall of StreamVC

- Training Strategy

  • Soft-Label Creation and Content Encoder Training
    • Content encoder training을 위한 soft speech unit을 얻기 위해 SoftVC를 활용함
      1. 먼저 pretrained HuBERT에서 7-th transformer layer의 activation을 추출하고
      2. Mini-batch $k$-means clustering을 적용하여 nearest-centroid vector quantization에 사용되는 100개의 centroid를 찾음
      3. 이후 50Hz frequency에서 content encoder에 대한 learning target으로 100-class pseudo-label을 정의
    • 추가적으로 decoder에서 content encoder로의 gradient flow를 방지함
      - 이를 통해 content latent embedding을 통해 additional speaker information을 leaking 하지 않도록 함
  • Training Loss
    • HuBERT pseudo-label prediction에서 content encoder latent projection을 위해 adversarial loss, reconstruction loss, cross-entropy loss를 도입 
    • 해당 loss는 SoundStream과 MelGAN을 따름

- Real-Time Inference

  • Streaming Inference
    • 논문은 online inference를 위해 streaming-aware convolution module을 도입함
      - StreamVC의 모든 convolution layer는 causal 하지만, limited lookahead가 있는 strided, transposed convolution으로 인해 architecutral latency가 발생하기 때문
    • 특히 content latent의 temporal resolution이 audio보다 320배 더 coarser 하므로, 최소 inference frame size는 320 sample가 됨
      - 이는 16kHz에서 sample 된 20ms audio에 해당하고, network inference는 50Hz의 rate로 trigger 됨
  • Lookahead and Architectural Latency
    • 아래 그림과 같이 loss computation을 위해 output frame $o_{t}$와 input frame $s_{t-2}$를 pairing 하여 2-frame lookahead를 도입함 
    • 그러면 time step $t$에서 decoder로 전달된 $f_{0}$ information $f_{t}$는 세 frame $(s_{t-1},s_{t},s_{t+1})$에 span 되어 있는 context window로 계산됨
      - 이는 time step $t+1$까지의 input이 time step $t-2$에 대한 output을 계산하는데 필요하다는 것을 의미하므로, 60ms의 architectural latency와 같음
  • Computational Latency
    • 논문은 inference latency를 profile 하기 위해 XNNPACK을 활용함
    • 일반적으로 Pixel 7 스마트폰의 single CPU core에서 content encoder와 decoder를 running 하면 20ms audio chunk 당 10.8ms가 소요됨
      - 전체 pipeline을 streaming 방식으로 continuously running 하면, end-to-end inference latency는 70.8ms로 얻어짐

Streaming Inference

3. Experiments

- Settings

  • Dataset : LibriTTS
  • Comparisons : Diff-VCTK, BNE-PPG-VC, VQMIVC, QuickVC

- Results

  • StreamVC는 Pixel 7 스마트폰에서 70.8ms의 latency를 달성하면서 우수한 합성 성능을 유지함

모델 성능 비교

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
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 31
Total
Today
Yesterday