티스토리 뷰
Paper/Vocoder
[Paper 리뷰] MISRNet: Lightweight Neural Vocoder Using Multi-Input Single Shared Residual Blocks
feVeRin 2024. 2. 2. 11:29반응형
MISRNet: Lightweight Neural Vocoder Using Multi-Input Single Shared Residual Blocks
- HiFi-GAN의 Multi-Receptive field Fusion (MRF)은 branch 수에 따라 모델 size가 증가하는 단점이 있음
- MISRNet
- MRF의 대안으로 Multi-Input Single Shared Residual block을 도입하여 residual block을 mutiple에서 single 단위로 변형
- Residual block의 input convolution size를 줄임으로써 전체적인 모델을 경량화하고, tensor reshaping을 도입하여 처리 속도를 향상
- 논문 (INTERSPEECH 2022) : Paper Link
1. Introduction
- Text-to-Speech (TTS)는 일반적으로 two-stage 방식으로 구성됨
- Text/source representation에서 mel-spectrogram과 같은 intermediate representation을 예측
- 예측된 intermediate representation에서 waveform을 합성
- Neural vocoder는 이 2번째 단계에서 활용됨
- 초기 neural vocoder는 autoregressive 모델을 활용했지만, frame-by-frame 추론으로 느린 속도를 보임
- 따라서 추론 속도 향상을 위해 non-autregressive 모델이 고려되고 있음
- WaveGlow는 affine coupling layer와 Glow를 활용
- WaveGrad, DiffWave는 gradient-based sampler를 활용 - 그중에서도 Generative Adversarial Network (GAN)는 가장 효율적이면서도 성공적인 성능을 보임
- GAN은 architectural flexibility를 가지고 상대적으로 작은 크기로도 high-fidelity의 합성이 가능 - 특히 HiFi-GAN은 Multi-Receptive filed Fusion (MRF)를 활용하여 우수한 성능을 달성함
- MRF는 여러 branch를 가지는 residual block을 활용해 few-channel convolution 만으로도 description capacity를 확장할 수 있음
- BUT, MRF는 branch 수가 늘어남에 따라 모델 size가 증가한다는 단점이 있음
- 따라서 추론 속도 향상을 위해 non-autregressive 모델이 고려되고 있음
-> 그래서 MRF를 경량화한 Multi-Input Single Shared Residual (MISR) block을 사용하는 MISRNet을 제안
- MISRNet
- Kernel size가 1인 경량 convolution을 사용하여 description capacity를 늘리고 residual block의 variation을 multiple에서 single로 줄임
- 이때 MISR block의 추론 속도를 향상하기 위해,
- Residual block 적용 전에 tensor reshaping을 적용하고
- Residual block의 각 branch를 batch dimension으로 arrange 하면,
- Fast batch-wise operation으로 residual block을 동시에 처리할 수 있음
< Overall of MISRNet >
- MRF를 대체하는 MISR block을 도입하여 residual block의 variation을 mutiple에서 single 단위로 변형
- Residual block의 input convolution size를 줄이고, tensor reshaping을 도입하여 처리 속도를 향상
- 결과적으로 HiFi-GAN, iSTFTNet 등에서 채택된 MRF를 MISR block으로 대체했을 때, 음성 품질은 유지하면서 추론 속도를 크게 개선함
2. Method
- Previous : Multi-Receptive field Fusion
- HiFi-GAN에서 채택된 MRF는,
- 다양한 receptive field pattern을 represent 하기 위해 서로 다른 kernel size를 사용하는 여러 개의 residual branch를 가짐
- 각 residual branch의 output은 summation을 통해 최종적으로 통합됨 - 이러한 multiple branch 구조는 few-channel convolution 만으로도 high-fidelity 합성을 가능하게 함
- 특히 HiFi-GAN은 512 channel을 사용하는 MelGAN과 유사한 음성 품질을 달성하기 위해 단지 128 channel 만을 필요로 함 - For example,
- MRF의 branch 별 kernel size를 각각 3,7,11로 설정하고 dilation rate를 1,3,5라고 했을 때 MRF의 parameter 수는:
$C_{in} \times C_{out} \times k \times D = C \times C \times (3+7+11) \times 6 = 126C^{2}$
- $C_{in}, C_{out}$ : in/out channel 수, $k$ : kernel size, $D$ : layer 수
- 이때 HiFi-GAN에서 $C$는 128로 설정됨
- 다양한 receptive field pattern을 represent 하기 위해 서로 다른 kernel size를 사용하는 여러 개의 residual branch를 가짐
- Proposal : Multi-Input Single Shared Residual Block
- MRF는 branch의 개수를 늘려서 description capacity를 확보할 수 있지만, 모델 size가 크게 증가함
- 따라서 제안하는 MISR은,
- Kernel size가 1인 경량 convolution을 사용하여 input variation을 증가시켜 description capcity를 확장함
- 추가적으로 residual block을 multiple에서 single로 줄이고 각 branch에 대해 shared-weight residual block을 사용
- 이때 MISR의 simplification을 compensate 하기 위해 residual branch의 output은 summation이 아닌 convolution을 사용하여 통합됨
- Input/output convolution의 모델 size가 residual block의 모델 size보다 상당히 작기 때문에 MISR은 MRF 보다 더 적은 모델 size를 가짐
- For example,
- Receptive filed size를 MRF와 동일하게 맞추기 위해 MISR은 11의 kernel size를 사용함
- 이때 MISR의 parameter 수는:
$C \times 3C \times 1 \times 1 + C \times C \times 11 \times 6 + 3C \times C \times 1 \times 1 = 72C^{2}$
- 첫 번째 항은 input convolution, 두 번째 항은 residual block, 세 번째 항은 output convolution의 parameter 수 - 결과적으로 $126C^{2}$의 parameter 수를 가지는 MRF에 비해 MISR은 $72C^{2}$을 가지므로 모델 size를 43% 줄임
- For example,
- 따라서 제안하는 MISR은,
- Implementation Technique for Accelerating MISR
- Naive Implementation
- MISR을 naive 하게 구현하는 경우, input/output convolution이 추가로 사용되므로 MRF 보다 처리 속도가 느려짐
- (Algorithm 1)의 naive MISR 구현에서:
- $N$ : batch size, $C$ : channel 수, $L$ : sequence length, $b$ : branch 수, $(N,C,L)$ : tensor shape
- Naive MISR에서 residual block은 for loop를 통해 $b$번 적용되므로 계산량이 증가됨 (Line 4)
- Fast Implementation
- MISR의 residual block을 single type으로 통합하면, 각 residual branch를 batch dimension으로 arrange 하여 batch-wise operation을 통해 처리 속도를 향상할 수 있음
- (Algorithm 2)의 fast MISR 구현에서:
- Residual block 이전에 tensor reshape를 수행
- Branch $b$에 대한 element를 channel dimension에서 batch dimension으로 이동 (Line 2) - 이후 fast batch-wise operation를 통해 residual block을 모든 branch에 대해 동시에 적용하여 처리 (Line 3)
- Residual block 이전에 tensor reshape를 수행
- 따라서 batch-wise operation을 사용하는 fast implementation은 MISR을 가속화하는데 유용함
3. Experiments
- Settings
- Results
- Comparison between MRF and MISR
- MRF를 MISR로 대체한 HiFi-MISR/iSTFT-MISR을 사용하더라도 기존의 HiFi-GAN/iSTFTNet의 합성 품질과 비교했을 때 품질 저하가 발생하지 않음
- 그에 비해 추론 속도 측면에서는 HiFi-MISR/iSTFT-MISR을 사용했을 때 상당한 개선이 이루어짐
- 추가적으로 naive / fast implementation에 대한 MISR 성능을 비교해 보면, 당연하게도 fast implementation을 사용했을 때 더 빠른 추론 속도 개선이 가능함
- Importance of Multi-Input
- MISR의 3개 branch를 single branch로 변형시킨 Single-Input Single Residual Block (SISR)과 MISR의 성능을 비교해 보면,
- SISR을 사용했을 때 추론 속도는 MISR에 비해 빨라졌지만 합성 품질 측면에서 상당한 저하가 발생함
- 결과적으로 합성 품질을 유지하면서 모델을 경량화하는데 MISR이 더 유리함
- Importance of Output Convolutions
- MISR은 residual block의 variation 단순화를 compensate 하기 위해 summation 대신 convolution을 사용하여 residual block의 output을 결합함
- 이 성능을 알아보기 위해 convolution을 사용한 MISR과 summation을 사용한 MISR$^{\dagger}$을 비교해 보면, convolution을 사용한 MISR의 성능이 더 우수한 것으로 나타남
- 추론 속도는 MISR$^{\dagger}$가 좀 더 빠르지만 그 차이는 미미함
- Comparison with Other Lightweight Modules
- 모델 size 감소를 위해 일반적으로 사용되는 Depthwise Separable Convolution (DSC)와 MISR을 비교
- 결과적으로 DSC를 적용했을 때 합성 품질은 크게 저하되었고, parameter 수와 CPU에서의 추론 속도 역시 MISR과 유의미한 차이를 보이지 못함
- Application to Multi-Speaker and Japanese Datasets
- VCTK, JSUT dataset에 대한 MISRNet의 generality를 확인해 보면,
- MISR을 적용하더라도 기존의 HiFi-GAN/iSTFTNet의 합성 품질을 크게 저하시키지 않는 것으로 나타남
반응형
'Paper > Vocoder' 카테고리의 다른 글
댓글