티스토리 뷰
Paper/Vocoder
[Paper 리뷰] SiD-WaveFlow: A Low-Resource Vocoder Independent of Prior Knowledge
feVeRin 2024. 6. 10. 10:03반응형
SiD-WaveFlow: A Low-Resource Vocoder Independent of Prior Knowledge
- Flow-based nerual vocoder는 high-fidelity의 음성을 합성할 수 있지만, training에 많은 speech data가 필요하고 computationally heavy 함
- SiD-WaveFlow
- Low-resource 합성을 위한 flow-based neural vocoder
- WaveGlow의 Affine Coupling Layer의 계산 효율성을 개선하기 위해 Semi-inverse Dynamic Transformation module을 도입
- 논문 (INTERSPEECH 2022) : Paper Link
1. Introduction
- Vocoder는 mel-spectrogram과 같은 acoustic feature로부터 waveform을 합성하는 것을 목표로 함
- 최근에는 generative network를 활용하는 neural vocoder가 뛰어난 합성 성능을 보이고 있고, 크게 autoregressive, non-autoregressive 방식으로 나누어짐
- 특히 non-autoregressive 방식은 autoregressive 모델보다 빠른 추론 속도를 달성할 수 있다는 장점이 있음
- BUT, 여전히 structural complexity로 인해 training을 위한 많은 data와 computation resource가 요구됨 - WaveGlow, WaveFlow와 같은 flow-based vocoder는 대표적인 non-autoregressive 방식으로 probability density를 invertible mapping의 sequence로 변환함
- 여기서 flow-based vocoder는 크게 autoregressive flow 또는 bipartite transform을 주로 활용함
- Bipartite transform은 autoregressive flow 보다 간단한 training pipeline을 가짐
- BUT, structural complexity로 인해 학습에 여전히 많은 data가 필요하고, 본질적으로 computationally-intensive 하기 때문에 resource-limited 환경에서 사용하기 어려움
-> 그래서 low-resource 환경에서 동작 가능한 효율적인 flow-based vocoder인 SiD-WaveFlow를 제안
- SiD-WaveFlow
- Low-resource condition에서 합성을 수행하기 위해, external knowledge 없이 5분 분량의 speech 만을 사용하여 training 되는 flow-based vocoder
- Bipartite transform에서 사용되는 Affine Coupling Layer (ACL)을 대체하는 Semi-inverse Dynamic Transform (SiDT) layer를 도입
- 기존 ACL과 비교하여 SiDT는 더 computationally efficient 하고 빠른 수렴을 지원함 - Pre-emphasis와 squeeze operation을 포함하는 Prenet module을 추가하여 합성 품질을 추가적으로 개선
< Overall of SiD-WaveFlow >
- Additional information 없이 5분 분량의 speech 만으로 training이 가능하고, 기존 flow-based vocoder에 비해 더 적은 parameter와 computational cost를 가짐
- 결과적으로 빠른 수렴/추론 속도를 달성하면서 Raspberry Pi와 같은 edge-device에서 효과적으로 동작 가능
2. Method
- Preliminaries
- Normalizing flow는 invertible bijective transformation function의 sequence를 통해 normalized density distribution을 target density distribution으로 변환함
- 즉, flow-based vocoder는 transformation
에 기반해 input mel-spectroramy=g1∘g2∘...gk(x) 에 invertible deep neural networkx 의 series를 적용하는 방식으로 speechgi 를 생성함y - 여기서
는 variable rule에 따라 invertible 하므로, 다음의 negative log-likelihood를 최소화하여 모델을 training 함:gi
(Eq. 1)logp(y)=logp(x)+∑Ki=1log|det
- : invertible mapping 수, : 의 Jacobian determinant - 여기서
가 invertible 하면 는 와 같이 추론되므로, 는 와 동일함 - 대표적으로 WaveGlow는 위의 invertible transform을 구현하기 위해, squeeze operation, invertible
convolution module, ACL module로 구성된 structure를 채택함- Invertible
convolution module과 ACL module은 모델 training과 speech generation 중에 repeat 되어 flow step을 형성 - 결과적으로 해당 module을 통해 순차적으로 mel-spectrogram을 speech waveform으로 변환
- Invertible
- 즉, flow-based vocoder는 transformation
- Overview of SiD-WaveFlow
- SiD-WaveFlow는 아래 그림과 같이 Prenet module,
번 repeat 되는 flow step, split operation으로 구성됨- 특히
step의 flow와 split operation은 training 속도를 가속하기 위해, -scale architecture를 활용 - Training stage에서
- 먼저 speech sample은 Prenet module에 input 됨
- 이후 preprocessed speech sample은
번 repeat 되는 flow step으로 전달됨
- 해당 flow step은 invertible convolution layer, SiDT layer의 두 invertible transformation으로 구성됨 - 최종적으로
step의 flow를 split 하여 loss를 계산함
- 특히

- Prenet
- Prenet module에서는 input speech에 대해 pre-emphasis와 squeeze operation을 적용함
- 먼저, original speech는 high-frequency resolution을 강조하기 위해 pre-emphasis 됨:
(Eq. 2)
- : 각각 pre-emphasis 전후의 -th sampling point, : coefficient value (0.9~1) - 다음으로 WaveGlow의 squeeze operation을 적용하여 parallel computing을 위한 channel 수를 늘림
- 즉, pre-emphasized speech sampling vector는 에서 로 reshape 됨
- : sampling point 수
- 먼저, original speech는 high-frequency resolution을 강조하기 위해 pre-emphasis 됨:
- Semi-inverse Dynamic Transformation
- Affine Coupling Layer (ACL)은 invertible neural network의 series로 normalizing flow를 구현하기 위해 채택되었지만, computational complexity의 한계가 있음
- 따라서 SiD-WaveFlow는 inverse Dynamic Linear Transformation (iDLT)에 기반한 Semi-inverse Dynamic Transformation (SiDT)로 ACL을 대체함
- 해당 SiDT는 아래와 같이 정의되어 flow step을 구현하고, 보다 효율적으로 동작 가능함:
(Eq. 3)
(Eq. 4)
(Eq. 5)
(Eq. 6)
(Eq. 7)
(Eq. 8)
- : input vector, : vector 를 equally dividing 하여 얻은 vector
- : zero-vector, : SiDT의 ouptut을 adjust 하는 데 사용되는 input speech의 upsampled mel-spectrogram
- : addition/multiplication과 같은 transformation, : modified gated convolution layer
- : 에 의해 계산된 affine factor vector - 여기서 vector
는 (Eq. 5), (Eq. 7)을 사용하여 로부터 계산되고, 최종적으로 output vector 는 를 horizontally concatenate 하여 얻어짐 는 iDLT와 달리 의도적으로 extra input으로 추가되므로 possible noise interference를 회피하기 위해 zero-vector로 initialize 됨- 특히
의 intermediate channel 수가 줄어드므로 information bottleneck의 영향을 완화할 수 있음 - 이때
는 parameter 수를 줄이고 계산을 가속화하기 위해, 와 같이 정의됨 - 결과적으로 SiDT의 training loss는:
(Eq. 9)
- 특히
- Invertible Convolution Layer
- Flow-based generative network는 invertible
convolutio을 통해 channel order를 reorganize 함- 따라서 논문은
convolution layer를 SiDT layer 앞에 추가하여 SiD-WaveFlow의 intermediate variable의 order를 reorganize 함
- 여기서 network의 invertibility를 보장하기 위해 convolution weight 는 random orthogonal matrix로 initialize 됨 - Training 시에 invertible
convolution layer의 data transformation은 로 정의할 수 있음
- : Prenet module의 output / 이전 flow step의 SiDT output vector - 결과적으로 invertible
convolution의 training loss는:
(Eq. 10)
- : invertible convolution의 Jacobina determinant
- 따라서 논문은
- Multi-Scale Architecture
- Multi-scale architecture는 다양한 time scale에서 information을 추출하고, flow-based model의 학습 속도를 가속할 수 있음
- 특히 SiD-WaveFlow architecture에는
-scale이 포함되어 있고, 각 scale에는 step flow가 포함되어 있음 - Training stage에서 vector의 처음 두 dimension은 split 되어 각 scale의 마지막에서 loss를 계산하고, 나머지 dimension은 다음 scale에 input 됨
- 최종적으로 -scale 이후, 모든 dimension이 concatenate 되어 SiD-WaveFlow의 output을 생성함 - 이때 multi-scale structure의 operation은 다음과 같이 정의됨:
(Eq. 11)
(Eq. 12)
(Eq. 13)
- : Prenet module의 output vector, : step의 flow transformation
- : step의 flow에서 를 추출하는 split operation
- : SiD-WaveFlow의 intermediate vector, : training 이후의 output mel-spectrogram
- 추가적으로 는 로 initialize 됨
- 특히 SiD-WaveFlow architecture에는
3. Experiments
- Settings
- Dataset : CSMSC, LJSpeech
- Comparisons : WaveGlow, Wave-IDLT

- Results
- 먼저 MOS 측면에서 SiD-WaveFlow는 가장 뛰어난 성능을 보임

- SiD-WaveFlow는 기존 방식보다 더 빠르게 수렴함


- 추론 측면에서도, SiD-WaveFlow는 workstation, Raspberry Pi 모두에서 적은 parameter로 동작 가능하면서 가장 빠른 속도를 달성함

- Ablation study 측면에서, pre-emphasis를 사용하는 것이 MOS를 더 향상할 수 있는 것으로 나타남

반응형