고품질 음성 합성을 위한 Flow 기반 네트워크 WaveGlow

WaveGlow는 mel‑spectrogram을 입력으로 받아, Glow와 WaveNet의 아이디어를 결합한 단일 흐름 기반 모델이다. 역전파 가능한 1×1 컨볼루션과 어핀 커플링 레이어만으로 구성되며, 단일 로그우도 손실만으로 학습한다. 실험 결과, 500 kHz 이상의 합성 속도와 WaveNet 수준의 MOS를 달성한다.

저자: Ryan Prenger, Rafael Valle, Bryan Catanzaro

**1. 서론** 음성 합성은 텍스트‑투‑스피치 파이프라인에서 두 번째 단계, 즉 멜‑스펙트로그램을 실제 파형으로 변환하는 vocoder 역할을 담당한다. 기존의 고품질 vocoder는 대부분 auto‑regressive 구조를 사용해 이전 샘플에 조건을 두고 순차적으로 생성한다. 이러한 방식은 구현이 간단하지만 GPU·TPU와 같은 병렬 하드웨어를 충분히 활용하지 못해 실시간 합성에 한계가 있다. Parallel WaveNet, ClariNet, MCNN 등 비‑autoregressive 접근법이 제안됐지만, 복합 손실 함수, 두 개의 네트워크(teacher‑student) 구조, 모드 붕괴 등 학습 복잡도가 크게 증가한다. **2. WaveGlow 설계** WaveGlow는 흐름 기반(normalizing flow) 모델을 채택해, 입력 멜‑스펙트로그램을 조건으로 하는 확률 모델 p(x|mel)을 직접 최대우도 추정한다. 전체 변환은 다음과 같이 정의된다. 1) **Squeeze**: 8개의 연속 샘플을 하나의 벡터로 묶어 차원을 축소한다. 2) **Flow Step**: 각 단계는 (a) invertible 1×1 convolution, (b) affine coupling layer 로 구성된다. - **Affine Coupling Layer**: 입력 채널을 절반(x_a, x_b)으로 나누고, x_a를 고정한 채로 x_b에 대해 스케일(s)와 시프트(t)를 계산한다. 여기서 s와 t는 멜‑스펙트로그램을 upsample한 뒤 WaveNet‑style 네트워크(WN)로부터 얻는다. 변환은 x_b' = s ⊙ x_b + t 로 수행되며, Jacobian determinant는 log|s| 로 간단히 계산된다. - **1×1 Convolution**: 채널 간 혼합을 위해 가역적인 1×1 컨볼루션을 적용한다. 가중치 행렬 W는 초기 정규 직교화 후 학습 중에도 determinant 로그값을 손실에 포함시켜 가역성을 유지한다. - **Early Output**: 매 4개의 coupling 레이어마다 2개의 채널을 바로 손실에 연결한다. 이는 멀티스케일 구조와 유사하게 다양한 시간 스케일 정보를 학습하도록 돕고, 그래디언트 흐름을 개선한다. 전체 로그우도는 (1) 가우시안 prior의 로그우도, (2) 모든 coupling 레이어의 log|s|, (3) 모든 1×1 convolution의 log|det W| 를 합산한 형태가 된다. **3. 학습 및 추론** 학습은 LJ Speech(13,100개, 약 24 h) 데이터셋을 사용해 22.05 kHz 샘플링 레이트로 진행한다. 멜‑스펙트로그램은 80개의 필터(FFT 1024, hop 256)로 추출한다. 모델은 12개의 flow step(12개의 coupling + 12개의 1×1 conv)으로 구성되며, 각 coupling 내부 WN은 8개의 dilated convolution 레이어(Residual 512, Skip 256)로 이루어진다. 배치 크기 24, Adam optimizer(learning rate 1e‑4 → 5e‑5)로 580 k iterations 학습한다. 추론 시에는 prior의 표준편차 σ를 0.6으로 약간 늘려 샘플링한다(학습 시 σ=√0.5). 1×1 conv와 coupling 레이어는 역전파된 형태로 그대로 적용되며, 멜‑스펙트로그램은 각 레이어에 조건으로 삽입된다. **4. 실험 결과** - **음질 (MOS)**: Ground Truth 4.27, WaveGlow 3.96±0.13, WaveNet 3.88±0.12, Griffin‑Lim 3.82±0.13. WaveGlow가 가장 높은 MOS를 기록했으며, 차이는 통계적으로 유의미하지 않을 정도다. - **속도**: V100 GPU에서 10 초 길이 음성을 520 kHz(실시간 대비 25배)로 합성. Griffin‑Lim(전체 스펙트로그램 사용)도 507 kHz, Parallel WaveNet은 500 kHz 수준이지만 오래된 GPU 기준이며, 기존 WaveNet은 0.11 kHz에 불과해 실시간에 크게 못 미친다. 이론적 최적화 시 2 MHz까지 가능할 것으로 추정된다. **5. 논의** WaveGlow는 흐름 기반 모델이 음성 합성에 충분히 적용 가능함을 실증한다. 기존 비‑autoregressive 모델이 복잡한 손실과 두 개의 네트워크 구조를 필요로 했던 반면, WaveGlow는 단일 네트워크·단일 로그우도 손실만으로도 고품질·고속 합성을 달성한다. 이는 연구·산업 현장에서 모델 배포와 유지보수를 크게 단순화한다. 향후 연구 방향으로는 더 깊은 흐름 스택, 다중 화자·다중 언어 데이터셋 적용, 하드웨어‑특화 커널 최적화 등을 통해 품질·속도 모두를 더욱 향상시킬 수 있다. **6. 결론** WaveGlow는 Glow와 WaveNet의 장점을 결합한 흐름 기반 vocoder로, 단일 손실·단일 네트워크 구조에도 불구하고 WaveNet 수준의 음질과 500 kHz 이상의 초고속 합성을 제공한다. 이는 실시간 TTS 서비스, 대규모 음성 합성 클라우드, 그리고 임베디드 디바이스까지 폭넓은 적용 가능성을 열어준다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기