티스토리 뷰

반응형

Puffin: Pitch-Synchronous Neural Waveform Generation for Fullband Speech on Modest Devices


  • Low-powered device에서 사용할 수 있는 neural vocoder가 필요함
  • Puffin
    • Differentiable pitch synchronous overlap-add를 사용하여 adversarially training 하고,
    • Speech sample을 생성하기 위해 pitch synchronous inverse STFT를 채택
  • 논문 (ICASSP 2023) : Paper Link

1. Introduction

  • Neural vocoder는 data-driven 방식으로 human speech 수준의 합성 품질을 달성하고 있음
    • 이러한 음성 합성 모델은 language impairment가 있는 사람들을 위한 Alterantive and Augmentative Communication (AAC)에서 유용하게 사용될 수 있음
    • 여기서 AAC device는 스마트폰 등의 hardware에 비해 clock speed가 낮고 SMID register가 작은 low-powered CPU를 기반으로 함
      - BUT, 기존의 neural vocoder는 해당 low-powered device에서 feasible 하지 않음
    • 특히 일반적인 autoregressive vocoder는 previous sample에 대해 각 sample들을 conditioning 해야 하므로 상당히 느린 속도를 가짐
      1. 따라서 parallel generation이 가능한 non-autoregressive 방식을 고려해야 함
        - 이를 위해 대표적인 non-autoregressive vocoder인 HiFi-GAN은 adversarial training을 활용
        - LPCNet은 signal processing을 결합하여 합성 속도를 더욱 향상함
      2. BUT, neural vocoder는 여전히 frame-level conditioning, gradual upsampling과 같이 output sampling rate를 align 하는 추가적인 작업을 요구함
        - 이때 iSTFTNet과 같이 해당 과정을 deterministic operation인 inverse STFT (iSTFT)로 대체하여 upsampling 속도를 개선할 수 있음

-> 그래서 AAC device와 같은 low-powered device에서도 효과적으로 동작가능한 neural vocoder인 Puffin을 제안

 

  • Puffin
    • Adversarial training과 pitch synchronous processing을 결합하여 low-powered device에서 동작가능하면서 고품질의 합성 성능을 달성
    • 특히 48kHz의 고품질 생성을 위해 differentiable overlap-add와 pitch synchronous inverse STFT를 채택

< Overall of Puffin >

  • Differentiable pitch synchronous overlap-add를 사용하여 adversarially training 하고, speech sample을 생성하기 위해 pitch synchronous inverse STFT를 채택
  • 결과적으로 low-powered device에서 동작 가능하고, 고품질의 합성 성능을 달성

2. Method

  • Puffin은 각 sub-module이 fixed input frame rate (100Hz), $F_{0}$, voicing에 따라 variable 한 pulse rate (평균 131Hz, 최대 400Hz), output audio sample rate (48000Hz)의 서로 다른 3가지 rate에서 동작하도록 구성함 
    • Neural network operation은 처음 2개의 slower rate에서만 수행되므로 perceive 한 모든 frequency를 covering 하는 wideband audio를 효율적으로 생성할 수 있음
    • 한편으로 output에서 desired sample rate는 iSTFTNet과 같이 iSTFT를 통해 얻어짐
      - 이때 논문은 iSTFT가 pitch synchronously 하게 동작하도록 구성하여, 더 큰 FFT window length와 shift를 사용해 높은 sampling rate의 음성을 생성하는데 필요한 computation을 크게 줄임
    • 먼저 $T$를 모델에서 처리할 fixed rate timestep 수, $P$를 glottal pulse의 수, $F$를 FFT length라고 하자
      1. 이때 $T$는 training에서 example당 512로 fix 되고, $P$는 example에서 speech의 $F_{0}$에 따라 달라짐
      2. 구조적으로, frame-rate part는 4개의 simple 1D convolution layer를 통해 10ms interval로 32-dimensional input을 전달함
        - 이때 각 layer의 kernel width $k$는 3이고, Leaky ReLU activation을 사용함
      3. 이후 32-input feature는 unvoiced region을 통해 linearly interpolate 된 $F_{0}$, voicing과 함께 30-mel frequency cepstral coefficient를 구성함
        - Feature는 global constant를 사용해 적절한 magnitude로 scale 됨
      4. 결과적으로 $T\times H$ size의 hidden activation array를 얻음
        - Standard setting의 경우 $H=256$, large setting의 경우 $H=1024$

Overall of Puffin

  • $F_{0}$-related data는 matrix multiplicatio을 통해 3가지의 서로 다른 rate를 mapping 하는 데 사용됨
    • 이때 $F_{0}$ track과 training의 pitchmark track, resampling matrix $\mathbf{R}$, overlap-add matrix $\mathbf{O}$를 기반으로 합성을 수행
    • Fixed rate data를 $\mathbf{R}$과 mulitplication 하면 linear interpolation을 통해 pulse rate로 resample 되므로, timestep은 glottal closure location을 중심으로 align 됨
      1. 해당 operation은 channel 전체에 걸쳐 broadcast 되므로 channel은 서로 independent 하게 interpolate 됨
      2. 여기서 resampled hidden activation은 width 3의 convolution layer와 Leaky ReLU로 처리됨
      3. Learned parameter를 가지는 final layer는 kernel width 1의 convolution인 time-distributed feedforward layer로 구성됨
        - Data가 pitch-synchronized complex spectrogram의 실수/허수부로 처리될 수 있도록 2개의 $F+1$ portion으로 split 하기 전에 channel 수를 늘리는 역할
      4. 이후 inverse Fast Fourier Transform (iFFT)는 해당 spectrogram의 각 slice를 speech waveform의 $F$-dimensional fragment로 변환하고, $PF\times 1$ dimensional array에서 end-to-end로 concatenate 됨
        - 각 fragment는 sample이 $F/2$만큼 shift forward 되는 circular buffer로 처리됨
      5. $\mathbf{O}$는 $TS\times PF$ matrix로, concatenated data 사이의 matrix product가 correct duration의 speech waveform에 대한 overlap-add로 assemble 된 waveform fragment를 생성하도록 함
        - 여기서 $S=480$의 fixed-rate frame 수  
    • 앞선 overlap-add operation은 아래 그림과 같이 수행됨
      - 이때 window는 output waveform에서 glottal closure의 중앙에 위치하고, 두 neighbouring glottal closure position까지 extend 되는 assymetric Hann window를 사용
    • Matrix multiplication을 사용하여 resampling과 overlap-add를 구현하려면 setence나 batch를 covering 하는 matrix를 사용해야 하지만, 논문에서는 optimziation 용으로만 사용함
      - 특히 배포를 위해 해당 operation은 minimal lookahead로 incremental streaming synthesis를 허용
      - 한편으로 $\mathbf{R}, \mathbf{O}$는 매우 크고 sparse 한 matrix이므로, training은 sparse matrix operation을 통해 가능함

Overlap-Add

- Network Training

  • HiFi-GAN과 마찬가지로 Puffin은 least sqaures GAN loss와 $L_{1}$ loss를 조합해 generator를 adversarially training 함
    • 이때 discriminator는 모두 frequency domain에서 동작하고, generator의 time domain signal을 가져와 실수/허수 component의 두 channel을 가지는 complex spectrogram으로 변환 
    • 각 sub-discriminator는 5개의 2D convolution layer stack으로 구성되고, Leaky ReLu와 time, frequency axis를 따라 width가 3인 kernel를 포함함 
      1. 즉, sub-discriminator는 9 timestep과 11 frequency bin을 covering 하는 receptive field를 가짐
      2. 여기서 논문은 $128\text{~}4096$ range의 window length와 $256\text{~}1024$ range의 shift에 대한 sub-discriminator ensemble을 활용
        - 이를 위해 48kHz sampling rate로 capture 된 24kHz bandwidth를 구성하는 3개의 8kHz frequency band 각각에 $[3,3,2]$개의 sub-discriminator를 할당하여 다양한 spectral band에 대한 ensemble을 구성 
    • $L_{1}$ loss는 original magnitude spectrogram과 생성된 magnitude spectrogram을 통해 계산됨 
      1. 여기서 $L_{1}$ loss는 0.5로 weight 된 다음 adversarial loss term과 결합됨
      2. 한편으로 $L_{1}$ loss만 사용하면 generator는 phase artifact에 의해 marred 된 음성을 생성할 수 있음
        - 따라서 논문은 GAN loss와 discriminator를 결합한 adversarial training을 통해 해당 artifact를 줄임

3. Experiments

- Settings

실험 설정

- Results

  • 먼저 Puffin은 가장 낮은 complexity를 달성함

Complexity 비교

  • MUSHRA test 측면에서도 Puffin은 ground-truth 수준의 성능을 달성했음

MUSHRA test 결과

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
«   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