티스토리 뷰
Paper/TTS
[Paper 리뷰] DualSpeech: Enhancing Speaker-Fidelity and Text-Intelligibility Through Dual Classifier-Free Guidance
feVeRin 2024. 12. 14. 10:20반응형
DualSpeech: Enhancing Speaker-Fidelity and Text-Intelligibility Through Dual Classifier-Free Guidance
- 다양한 control demand 하에서 speaker-fidelity와 text-intelligibility 간의 optimal balance를 달성하는 것은 어려움
- DualSpeech
- Phoneme-level latent diffusion과 Dual classifier-free guidance를 도입
- Sophisticated control을 통해 fidelity와 intelligibility를 향상
- 논문 (INTERSPEECH 2024) : Paper Link
1. Introduction
- Text-to-Speech (TTS)는 human speech의 speaker identity, speech rhythm, tone, language 등의 다양한 characteristic을 emulate 하여 human-like spectrum을 합성할 수 있어야 함
- 따라서 TTS model은 high speaker-fidelity를 위해 timbre, speaking style 등을 효과적으로 caputre하면서 strong text-intelligibility를 유지해야 함
- BUT, speaker-fidelity와 text-intelligibility를 balancing 하는 것은 어려움
- Voice에 focusing 하면 speech clarity (text-intelligibility)가 저하되고, clarity에 focusing하면 characteristic이 부족한 음성이 생성되므로 speaker-fidelity가 저하됨 - 따라서 이를 해결하기 위해서는:
- Generative model 내에서 representation disentanglement를 사용하여 speech의 다양한 aspect를 separate 하고 independently manage 해야 함
- 이와 관련하여 NANSY는 disentangled feature에서 self-supervised reconstruction이 가능
- 대표적으로 linguistic feature, fundamental frequency $f0$, periodic/aperiodic amplitude, timbre 등과 같은 interpretable feature를 제공 - 한편으로 diffusion-based generative model은 Classifier-Free Guidance (CFG)를 적용하여 independent conditioning, control을 지원할 수 있어야 함
- 대표적으로 VoiceBox, VoiceLDM 등은 CFG를 통해 enhanced condition manipulation을 지원
- 특히 VoiceLDM의 CFG mechanism은 environmental, content condition을 independently manipulate 가능
- Generative model 내에서 representation disentanglement를 사용하여 speech의 다양한 aspect를 separate 하고 independently manage 해야 함
-> 그래서 speaker-fidelity와 text-intelligibility를 control 하기 위해 dual CFG를 활용하는 DualSpeech를 제안
- DualSpeech
- 먼저 dual CFG로 high controllability를 달성하기 위해 reference conditioner와 text conditioner를 도입
- 해당 network는 reference와 text에 highly dependent 한 prior latent를 modeling 하는 역할 - 이후 추론 시 dual CFG weight를 selecting 하여 generated speech의 prosody를 manipulate
- 먼저 dual CFG로 high controllability를 달성하기 위해 reference conditioner와 text conditioner를 도입
< Overall of DualSpeech >
- Dual classifier-free guidance를 도입하여 speaker-fidelity, text-intelligibility를 manipulate 하는 TTS model
- 결과적으로 기존보다 뛰어난 합성 성능을 달성
2. Method
- DualSpeech는 NANSY, Variational AutoEncoder (VAE), Latent Diffusion Model (LDM)으로 구성됨
- Mel-spectrogram을 생성하는 기존 TTS model과 달리 DualSpeech는 NANSY feature를 사용함
- 논문은 해당 NANSY feature를 추출하기 위해 pre-trained NANSY를 도입하고, linguistic feature, $f0$, periodic amplitude, aperiodic amplitude를 생성하는 NANSY-TTS와 align 함
- 이때 aligner는 Monotonic Alignment Search (MAS)를 통해 NANSY linguistic feature를 phoneme과 align 하도록 training 됨
- 해당 pre-trained model을 기반으로 DualSpeech는 VAE training, LDM training의 2-stage로 training 됨
- 이때 VAE는 주어진 speech, phoneme으로부터 NANSY feature를 reconstruct 하고
- LDM은 주어진 transcription과 reference speech로부터 VAE latent를 생성함
- Mel-spectrogram을 생성하는 기존 TTS model과 달리 DualSpeech는 NANSY feature를 사용함
- Phoneme-Level Variational AutoEncoder
- DualSpeech의 VAE는 text에서 convert 된 IPA sequence와 speech의 NANSY feature를 포함하는 input을 기반으로 NANSY feature를 reconstruct 함
- 이때 VAE는 DiffVoice와 유사한 phoneme-level bottleneck을 활용함
- 해당 bottleneck은 phoneme encoder output을 query로 사용하고 concatenated NANSY feature를 key, value로 사용하는 Transformer encoder의 cross-attention mechanism을 통해 구현됨
- Phoneme-level bottleneck에서 posterior latent는 추정된 평균, 분산을 통해 sampling 됨 - 해당 방식은 frame-level model에 비해 다음의 강점을 가짐:
- Phoneme-based representation은 speech sound의 symbolic representation이므로 semantic information을 reliably convey 가능함
- Transformer encoder의 computation omplexity는 $\mathcal{O}(L^{2})$로 scale 되므로 frame-level model에 비해 computationally efficient 함
- $L$ : sequence length
- 구조적으로 VAE decoder는 latent decoder, duration predictor, phoneme prosody decoder, upsampler, frame decoder로 구성됨
- 먼저 latent variable이 latent deocder로 전달되고, 해당 network output은 duration predictor, phoneme prosody decoder, upsampler에 parallel 하게 전달됨
- 이때 duration predictor와 phoneme prosody decoder는 각각 phoneme-level에서 duration과 $f0$를 추정함 - Upsampler에서 latent decoder의 phoneme-level output은 pre-trained MAS aligner를 따라 frame-level sequence로 upsampling 됨
- Upsampler architecture는 Parallel Tacotron2의 upsampler와 유사함 - 이후 upsampled frame-level feature는 frame decoder에 input 되어 NANSY feautre를 reconstruct 함
- 먼저 latent variable이 latent deocder로 전달되고, 해당 network output은 duration predictor, phoneme prosody decoder, upsampler에 parallel 하게 전달됨
- 추가적으로 논문은 adversarial training을 통해 VAE의 성능을 개선함
- 여기서 discriminator는 least-square loss, feature-matching loss를 포함한 simple convolution network로 구성됨 - 결과적으로 VAE model은 NANSY feature reconstruction loss, phoneme-level $f0$ reconstruction loss, duration loss, latent에 대한 KL-divergence, adversarial loss로 training 됨
- 이때 VAE는 DiffVoice와 유사한 phoneme-level bottleneck을 활용함
- Phoneme-Level Latent Diffusion Model
- DualSpeech의 LDM은 앞선 pre-trained VAE에 의해 생성된 phoneme-level posterior latent를 추정하도록 train 됨
- 이때 LDM에서 phoneme-level model은 diffusion model의 bottleneck인 iterative denoising에 필요한 computation을 줄여 frame-level model에 비해 computational demand를 크게 절감함
- 결과적으로 LDM을 통해 prior latent를 생성하고, speaker similarity와 naturalness를 달성하기 위해, 논문은 conditioner와 dual CFG를 사용한 conditional diffusion model을 도입함 - 먼저 conditioner는 reference conditioner, text conditioner로 구성되어 reference speaker, text 모두에 대한 conditional information을 inject 하고 phoneme-wise condition을 생성함
- 해당 conditioner는 context encoder의 input을 share 함
- 여기서 conxtext encoder는 phoneme encoder, context embedding output에서 derive 된 context-aware feature를 modeling 하기 위해 cross-attention을 도입한 Transformer encoder - 이때 context embedding을 얻기 위해 pre-trained XLM-RoBERTa를 활용
- 해당 conditioner는 context encoder의 input을 share 함
- Text conditioner는 text input에만 의존하므로 text conditioner output $c_{text}$에 대한 CFG weight인 $\omega_{text}$를 조정하여 fine intelligibility를 control 함
- Reference conditioner는 zero-shot capability를 향상하기 위해 speaker-aware phoneme-wise conditioning을 생성함
- 이때 reference speech에서 speaker style을 capture 하고 zero-shot ability를 지원하기 위해 Retriever를 reference conditioner에 통합함
- 여기서 reference speech는 target speaker subset에서 sampling 되고 noise corrput 된 다음, random length로 cut 하여 training-inference mismatch를 방지함 - Reference speech에서 NANSY feature는 retriever encoder의 cross-attention mechanism에 전달됨
- 해당 cross-attention query는 prototype과 같은 fixed-length token이고 논문에서는 $60$으로 설정함
- 결과적으로 해당 transformer output은 reference speech style을 encapsulating 하는 fixed-length token이 됨 - 추가적으로 reference conditioner는 해당 speaker token을 cross-attention value로 사용하여 speaker-related condition을 encoding 함
- 이때 text conditioner의 $\omega_{text}$와 마찬가지로 speaker similarity는 reference conditioner output $c_{spk}$에 대한 CFG weight인 $\omega_{spk}$를 adjust 하여 modulate 할 수 있음
- 이때 reference speech에서 speaker style을 capture 하고 zero-shot ability를 지원하기 위해 Retriever를 reference conditioner에 통합함
- DualSpeech의 diffusion model은 DiT architecture와 유사한 transformer encoder를 기반으로 함
- 이때 DiT의 adaptive layer norm 대신 DiffWave와 유사하게 2개의 MLP layer 뒤에 condition을 추가하는 방식을 사용함
- 그러면 LDM은 WaveGrad와 같이 $L_{1}$ loss로 training 됨:
(Eq. 1) $\mathcal{L}=\left|\left| \epsilon -\epsilon_{\theta}\left(\sqrt{\bar{\alpha}_{t}}\mu + \sqrt{1-\bar{\alpha}_{t}}\epsilon,t,c_{spk},c_{text} \right)\right|\right|_{1}$
- $\epsilon\sim\mathcal{N}(0,I)$ : noise, $\epsilon_{\theta}$ : diffusion model
- $\mu$ : VAE로 추정된 평균, $t$ : timestep, $\bar{\alpha}_{t}$ : time $t$에서의 noise coefficient - 추론 시에 CFG를 활용하기 위해 $c_{text}, c_{spk}$에 대한 random dropout을 적용함
- $c_{text}$를 $5%$, $c_{spk}$를 $10%$ drop 하고, 둘 모두에 추가로 $10%$의 dropout을 적용하여 null-conditioned scenario의 frequency를 promote 함 - Training에는 discrete integer diffusion timestep과 noise schedule을 사용함
- 여기서 $t$는 $[1,T]$에서 uniformly sample 되고 $T=200$으로 설정됨
- 추가적으로 $\beta_{i}=\beta_{1}+(\beta_{T}-\beta_{1})(i-1)/(T-1)$로 정의되는 linear variance schedule을 사용하고 $\beta_{1}=0.0001, \beta_{T}=0.03$으로 설정함
- Noise coefficient $\bar{\alpha}_{t}$는 $\bar{\alpha}_{t}=\prod_{i=1}^{t}\alpha_{i}=\prod_{i=1}^{t}(1-\beta_{i})$로 계산됨
- 이때 LDM에서 phoneme-level model은 diffusion model의 bottleneck인 iterative denoising에 필요한 computation을 줄여 frame-level model에 비해 computational demand를 크게 절감함
- Dual Classifier-Free Guidance for TTS
- DualSpeech는 text와 reference condition 간의 fine control을 통해 latent를 생성함
- 그러면 DualSpeech는 dual CFG를 사용하여 TTS를 다음과 같이 represent 할 수 있음:
(Eq. 2) $\tilde{\epsilon}_{\theta}(z_{t},t,c_{spk},c_{text})=\epsilon(z_{t},t,c_{spk},c_{text}) + \omega_{spk}\left(\epsilon_{\theta}(z_{t},t,c_{spk},\emptyset)-\epsilon_{\theta}(z_{t},t,\emptyset, \emptyset)\right)$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,+ \omega_{text}\left(\epsilon_{\theta}(z_{t},t,\emptyset,c_{text})-\epsilon_{\theta}(z_{t},t,\emptyset, \emptyset)\right)$
- $\tilde{e}_{\theta}$ : classifier free-guided nosie
- $z_{t}$ : timestep $t$에서의 latent, $z_{t}=\sqrt{\bar{\alpha}_{t}}\mu+\sqrt{1-\bar{\alpha}_{t}}\epsilon$
- $\emptyset$ : null-conditioned state에 대한 zero-tensor - 이때 DualSpeech는 speaker style이 아닌 acoustic environment description에 대해 conditioning을 수행함
- 해당 constraint는 speaker style에 대한 caption 뿐만 아니라 CLAP의 영향을 받기 때문
- 이를 통해 speech synthesis를 granular manipulation 할 수 있으므로 text, speaker similarity 간의 balancing 문제를 해결 가능
- 해당 constraint는 speaker style에 대한 caption 뿐만 아니라 CLAP의 영향을 받기 때문
- Inference
- 추론 시에는 LDM, VAE decoder, NANSY synthesizer 만이 사용됨
- 먼저 LDM은 iterative denoising을 통해 phoneme-level latent를 생성함
- 이때 fast sampling을 채택하여 다음과 같은 variance noise schedule을 사용:
$[1e-4, 5e-4, 1e-3, 5e-3, 0.01, 0.02, 0.05, 0.2, 0.3, 0.5, 0.4, 0.3, 0.3, 0.2, 0.1, 0.1]$ - Generated prior latent는 NANSY frame-level upsampling과 NANSY linguistic, $f0$, amplitude 추정이 포함된 VAE decoder를 통해 처리됨
- 이후 최종적으로 NANSY synthesizer를 통해 raw waveform을 합성함
- 먼저 LDM은 iterative denoising을 통해 phoneme-level latent를 생성함
3. Experiments
- Settings
- Results
- Subjective Evaluation
- MOS 측면에서 DualSpeech가 가장 우수한 성능을 보임
- Objective Evaluation
- WER, CER 측면에서도 DualSpeech의 성능이 가장 우수함
- Inference 속도도 DualSpeech가 가장 빠름
반응형
'Paper > TTS' 카테고리의 다른 글
댓글