티스토리 뷰
Paper/Vocoder
[Paper 리뷰] Puffin: Pitch-Synchronous Neural Waveform Generation for Fullband Speech on Modest Devices
feVeRin 2024. 6. 14. 10:24반응형
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 해야 하므로 상당히 느린 속도를 가짐
- 따라서 parallel generation이 가능한 non-autoregressive 방식을 고려해야 함
- 이를 위해 대표적인 non-autoregressive vocoder인 HiFi-GAN은 adversarial training을 활용
- LPCNet은 signal processing을 결합하여 합성 속도를 더욱 향상함 - BUT, neural vocoder는 여전히 frame-level conditioning, gradual upsampling과 같이 output sampling rate를 align 하는 추가적인 작업을 요구함
- 이때 iSTFTNet과 같이 해당 과정을 deterministic operation인 inverse STFT (iSTFT)로 대체하여 upsampling 속도를 개선할 수 있음
- 따라서 parallel generation이 가능한 non-autoregressive 방식을 고려해야 함
-> 그래서 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라고 하자
- 이때 $T$는 training에서 example당 512로 fix 되고, $P$는 example에서 speech의 $F_{0}$에 따라 달라짐
- 구조적으로, frame-rate part는 4개의 simple 1D convolution layer를 통해 10ms interval로 32-dimensional input을 전달함
- 이때 각 layer의 kernel width $k$는 3이고, Leaky ReLU activation을 사용함 - 이후 32-input feature는 unvoiced region을 통해 linearly interpolate 된 $F_{0}$, voicing과 함께 30-mel frequency cepstral coefficient를 구성함
- Feature는 global constant를 사용해 적절한 magnitude로 scale 됨 - 결과적으로 $T\times H$ size의 hidden activation array를 얻음
- Standard setting의 경우 $H=256$, large setting의 경우 $H=1024$
- $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 됨
- 해당 operation은 channel 전체에 걸쳐 broadcast 되므로 channel은 서로 independent 하게 interpolate 됨
- 여기서 resampled hidden activation은 width 3의 convolution layer와 Leaky ReLU로 처리됨
- Learned parameter를 가지는 final layer는 kernel width 1의 convolution인 time-distributed feedforward layer로 구성됨
- Data가 pitch-synchronized complex spectrogram의 실수/허수부로 처리될 수 있도록 2개의 $F+1$ portion으로 split 하기 전에 channel 수를 늘리는 역할 - 이후 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로 처리됨 - $\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을 통해 가능함
- 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를 포함함
- 즉, sub-discriminator는 9 timestep과 11 frequency bin을 covering 하는 receptive field를 가짐
- 여기서 논문은 $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을 통해 계산됨
- 여기서 $L_{1}$ loss는 0.5로 weight 된 다음 adversarial loss term과 결합됨
- 한편으로 $L_{1}$ loss만 사용하면 generator는 phase artifact에 의해 marred 된 음성을 생성할 수 있음
- 따라서 논문은 GAN loss와 discriminator를 결합한 adversarial training을 통해 해당 artifact를 줄임
3. Experiments
- Settings
- Dataset : VCTK
- Comparisons : HiFi-GAN
- Results
- 먼저 Puffin은 가장 낮은 complexity를 달성함
- MUSHRA test 측면에서도 Puffin은 ground-truth 수준의 성능을 달성했음
반응형
'Paper > Vocoder' 카테고리의 다른 글
댓글