티스토리 뷰
Paper/TTS
[Paper 리뷰] AILTTS: Adversarial Learning of Intermediate Acoustic Feature for End-to-End Lightweight Text-to-Speech
feVeRin 2024. 7. 29. 09:13반응형
AILTTS: Adversarial Learning of Intermediate Acoustic Feature for End-to-End Lightweight Text-to-Speech
- 기존의 text-to-speech는 mel-spectrogram과 같은 pre-defined feature에 의존하여 intermediate latent representation을 학습하므로 생성 품질의 한계가 있음
- AILTTS
- Latent representation에 prosody embedding을 추가하여 합성 품질을 향상
- Training 중에 mel-spectrogram에서 reference prosody embedding을 추출하고, 추론 시에는 Generative Adversarial Network를 사용하여 text에서 해당 embedding을 추정
- 논문 (INTERSPEECH 2023) : Paper Link
1. Introduction
- Text-to-Speech (TTS)는 크게 autoregressive (AR), non-autoregressive (non-AR) 방식으로 나눌 수 있음
- AR 방식은 고품질 합성이 가능하지만 parallel manner로 동작하기 어렵기 때문에 추론 속도가 느림
- 반면 non-AR 방식은 parallel 합성이 가능하므로 빠른 추론 속도를 가짐
- 대표적으로 FastSpeech2는 mel-spectrogram과 같은 intermediate feature를 활용하여 acoustic information을 학습함
- BUT, mel-spectrogram에 충분한 speech variance information을 반영하기 어려우므로 합성 품질의 한계가 있음
-> 그래서 text-to-waveform mapping에 필요한 variance information을 제공할 수 있는 lightweight TTS 모델인 AILTTS를 제안
- AILTTS
- Speech variance를 represent 하는 prosody-related acoustic feature를 추출하기 위해 prosody encoder를 도입
- Prosody encoder의 output을 text-to-waveform conversion process를 위해 condition 되는 reference prosody embedding으로 구성함 - 추론 시에는 text input에서 reference prosody embedding을 추정하는 prosody predictor를 채택
- 이때 estimation power를 향상하기 위해 Generative Adversarial Network (GAN)을 prosody predictor에 적용함
- Speech variance를 represent 하는 prosody-related acoustic feature를 추출하기 위해 prosody encoder를 도입
< Overall of AILTTS >
- Prosody-related acoustic embedding을 conditioning 하여 single-stage TTS에 speech variance를 효과적으로 반영
- Text에서 reference prosody embedding을 효과적으로 추정할 수 있도록 adversarial training을 도입
- 결과적으로 prosody embedding을 통해 빠른 수렴 뛰어난 합성 품질을 달성
2. Method
- Overview
- AILTTS는 LiteTTS를 baseline으로 하여 phoneme encoder, prosody encoder (posterior), prosody predictor (prior), internal aligner, auxiliary predictor, vocoder로 구성됨
- Training process에서는 prosody encoder output (key, value)와 phoneme encoder output (query)에 attention을 적용하여 phoneme-scale prosody embedding $h_{pr}$을 얻음
- 이후 internal aligner를 사용하여 joint embedding $h_{ph}+h_{pr}$을 mel-spectrogram으로 time-align 함
- 최종적으로 얻어진 aligned embedding $I$를 conditioning 한 다음, vocoder를 통해 waveform을 생성함
- Prosody Predictor with Conditional Discriminator
- Prosody predictor는 input phonetic embedding $h_{ph}$로부터 target prosody embedding $h_{pr}$을 예측하는 것을 목표로 함
- 이때 논문은 prosody embedding의 dynamic nature를 반영하기 위해 discriminator를 활용함
- 해당 discriminator는 prosody predictor를 generator로 하여 phonetic information을 condition으로 target prosody embedding $h_{pr}$과 predicted embedding $\tilde{h}_{pr}$을 distinguish 함
- Phonetic embbeding $h_{ph}$를 condition으로 하는 projection-based conditional discriminator를 사용 - 생성된 feature map과 target 간에 feature matching loss를 적용하여 GAN-based training을 stabilize 함
- 여기서 feature map은 PostConv1D layer 이전의 모든 1D convolution layer의 output으로 정의됨
- 1개의 PreConv1D layer와 나머지 6개 1D convolution block으로부터 총 7개의 feature map을 추출함
- 해당 discriminator는 prosody predictor를 generator로 하여 phonetic information을 condition으로 target prosody embedding $h_{pr}$과 predicted embedding $\tilde{h}_{pr}$을 distinguish 함
- 논문은 discriminator를 설계하기 위해 2가지의 additional trick을 적용함
- 먼저 phoneme domain 대신 aligned domain에서 2개의 prosody embedding을 distinguish 하는 discriminator를 사용
- Mel-spectrogram의 timing information으로 align 된 $I$가 vocoder의 input으로 사용되기 때문
- 이때 internal aligner에서 추정된 duration을 활용하여 phoneme-wise embedding의 time scale을 mel-spectrogram의 time scale에 align 함 - GPU memory constraint로 인해 vocoder와 동일한 receptive field를 가지도록 discriminator를 구축
- 먼저 phoneme domain 대신 aligned domain에서 2개의 prosody embedding을 distinguish 하는 discriminator를 사용
- 최종적으로 Least-Squares GAN의 loss를 기반으로 reconstruction loss $\mathcal{L}_{recon}$, feature matching loss $\mathcal{L}_{fm}$을 포함한 prosody predictor loss를 정의:
(Eq. 1) $\mathcal{L}_{G}=\mathbb{E}_{(\tilde{H}_{pr},H_{pr})}[(D(\tilde{H}_{pr},H_{pr})-1)^{2}]+ \mathcal{L}_{recon}+\mathcal{L}_{fm}$
(Eq. 2) $\mathcal{L}_{D}=\mathbb{E}_{(H_{pr},\tilde{H}_{pr},H_{ph})}[(D(H_{pr},H_{ph})-1)^{2}+( D(\tilde{H}_{ph},H_{ph}))^{2}]$
- $\mathcal{L}_{recon}=||\tilde{H}_{pr}-H_{pr}||_{1}, \,\,\, \mathcal{L}_{fm}=\sum_{i=1}^{7}|| \tilde{F}_{pr}^{i}-F^{i}_{pr}||_{1}$
- $H_{(\cdot)}$ : mel-spectrogram의 time-scale에 mapping 된 embedding
- $F^{i}$ : discriminator의 $i$-th feature map
- 이때 논문은 prosody embedding의 dynamic nature를 반영하기 위해 discriminator를 활용함
- Prosody-Conditioned Internal Aligner
- External aligner를 사용하지 않고 phoneme, mel-spectrogram 간의 time-alignment를 학습하기 위해 likelihood-based internal aligner를 채택함
- 이때 encoded feature 간의 $L2$ distance로 계산된 probability matrix에 대해 monotonic alignment의 likelihood를 최대화함
- 이후 probability matrix에서 most probable path를 select 하고, phoneme duration (binary matrix)를 얻음
- 두 matrix 간의 gap은 KL-divergence를 최소화하여 reduce 됨
- AILTTS의 aligner는 joint embedding $h_{ph}+h_{pr}$을 phonetic feature로, mel-spectrogram을 acoustic feature로 사용함
- $h_{pr}$에는 attention module에 의해 phoneme-level로 mapping 된 local acoustic information이 포함되어 있으므로 $h_{ph}$만 사용하는 것보다 alignment를 학습하는 것이 쉬워짐 - 논문에서는 FastSpeech2를 따라 stop-gradient를 적용하여 phonetic embedding $h_{ph}$를 accept 하는 duration predictor를 joint training 함
- 결과적으로 해당 aligner를 통해 alignment accuracy를 향상하여 duration predictor가 duration을 정확하게 추정하도록 함
- 이때 encoded feature 간의 $L2$ distance로 계산된 probability matrix에 대해 monotonic alignment의 likelihood를 최대화함
- Final Training Loss
- 전체적인 training loss는:
(Eq. 3) $\mathcal{L}_{total}=\mathcal{L}_{var}+\mathcal{L}_{align}+\mathcal{L}_{pred}+\mathcal{L}_{voc}+\mathcal{L}_{aux}$
- $\mathcal{L}_{var}$ : prosody encoder의 output에 적용되는 pitch/energy prediction loss
- $\mathcal{L}_{align}$ : duration predictor를 포함한 internal aligner에 대한 loss
- $\mathcal{L}_{pred}, \mathcal{L}_{voc}$ : 각각 prosody predictor, vocoder에 대한 loss
- $\mathcal{L}_{aux}$ : target mel-spectrogram과 auxiliary predictor의 output으로 얻어지는 predicted mel-spectrogram 간의 $L1$ loss - Auxiliary Predictor
- Aligned embedding $I$에 acoustic information을 추가적으로 제공하기 위해, input이 $I$인 auxiliary predictor를 도입함
- 해당 architecture는:
- PostConv1D layer의 output channel 수는 mel-spectrogram dimension으로 설정
- 모든 residual 1D convolutional block의 마지막 stage에 layer normalization을 적용
- 이때 receptive field는 vocoder의 receptive field와 동일하므로 auxiliary predictor는 vocoder input $I$에 acoustic information을 효율적으로 제공할 수 있음
- 특히 auxiliary predictor는 training stage에서만 사용되므로 parameter 수와 complexity는 증가하지 않음
3. Experiments
- Settings
- Results
- 전체적으로 AILTTS는 LiteTTS 수준의 적은 parameter 수와 빠른 추론 속도를 가지면서 가장 높은 MOS를 달성함
- Ablation study 측면에서 discriminator와 aligner를 제거하면 성능 저하가 발생함
- 특히 $h_{ph}+h_{pr}$을 aligner input으로 사용하는 경우 early stage 동안 기존보다 빠르게 수렴함
반응형
'Paper > TTS' 카테고리의 다른 글
댓글