티스토리 뷰
Paper/TTS
[Paper 리뷰] Grad-StyleSpeech: Any-Speaker Adaptive Text-to-Speech Synthesis with Diffusion Models
feVeRin 2024. 2. 9. 12:43반응형
Grad-StyleSpeech: Any-Speaker Adaptive Text-to-Speech Synthesis with Diffusion Models
- Any-speaker adaptive Text-to-Speech 작업은 여전히 target speaker의 style을 모방하기에 만족스럽지 못함
- Grad-StyleSpeech
- Diffusion model을 기반으로 하는 any-speaker adaptive Text-to-Speech model
- Few-second reference speech가 주어지면 target speaker와 유사한 음성을 생성하는 것을 목표로 함
- 논문 (ICASSP 2023) : Paper Link
1. Introduction
- Text-to-Speech (TTS)는 single speaker에서 multiple speaker로 확장되고 있음
- 특히 reference 음성이 주어지면 any-speaker의 음성을 합성할 수 있는 any-speaker adaptive TTS에 중점을 둠
- Any-speaker adaptive TTS는 target speaker에 대한 few sample 만을 고려하여 target speaker와 유사한 음성을 합성하는 것을 목표로 함
- Any-speaker adaptive TTS를 위한 이전 연구들을 보면,
- 주로 transcribed (supervised) sample을 활용하여 TTS model을 fine-tuning 하는 방식을 사용
-> BUT, supervised sample을 얻기 어렵고, parameter를 업데이트하는데 많은 비용이 필요함 - 그에 비해 zero-shot 방식은 unseen speaker에 대한 fine-tuning 단계가 굳이 필요하지 않음
-> BUT, generative modeling으로 인해 unseen speaker에 대한 similarity가 낮다는 단점이 있음
- 주로 transcribed (supervised) sample을 활용하여 TTS model을 fine-tuning 하는 방식을 사용
-> 그래서 zero-shot any-speaker TTS를 위해 score-based diffusion model을 활용하는 Grad-StyleSpeech를 제안
- Grad-StyleSpeech
- Target speaker의 style을 고려하기 위해 style-based generative model을 도입
- Hierarchical transformer encoder를 통해 reverse diffusion process에서 활용 가능한 representative prior noise를 생성
- 이를 통해 input phoneme을 embedding할 때 target speaker의 style을 반영 가능
< Overall of Grad-StyleSpeech >
- Zero-shot 방식을 기반으로 any-speaker TTS를 수행
- Score-based diffusion model을 활용하고, any-speaker adaptive setting에 대응하는 hierarchical transformer encoder를 도입
- 결과적으로 기존의 다른 any-speaker TTS 모델들보다 뛰어난 성능을 달성
2. Method
- Speaker adaptive TTS는 target speaker의 text transcription, reference speech를 바탕으로 음성을 생성함
- 이를 위해 mel-spectrogram과 같은 audio feature를 합성해야 함
- Text $\mathbf{x} = [\mathbf{x}_{1}, ..., \mathbf{x}_{n}]$은 phoneme으로 구성되고, reference speech $\mathbf{Y} = [\mathbf{y}_{1}, ..., \mathbf{y}_{m}] \in \mathbb{R}^{m \times 80}$이라 하자
- 이때 TTS model의 목표는 ground-truth speech $\tilde{\mathbf{Y}}$를 생성하는 것 - Grad-StyleSpeech는 3부분으로 구성됨
- Reference speech를 style vector에 반영하는 Mel-Style Encoder
- Text와 style vector로 condition된 representation을 생성하는 Hierarchical Transformer Encoder
- Denoising step에 따라 mel-spectrogram을 생성하는 Diffusion Model
- Mel-Style Encoder
- Mel-style encoder를 사용하여 reference speech를 latent style vector에 embedding 함
- 수식적으로는 $\mathbf{s} = h_{\psi} (\mathbf{Y})$으로 나타낼 수 있음
- $\mathbf{s} \in \mathbb{R}^{d'}$ : style vector
- $h_{\psi}$ : $\psi$에 의해 parameterize 된 mel-style encoder - 구조적으로 mel-style encoder는
- Spectral/temporal processor, Transformer layer, Temporal average pooling으로 구성됨
- 수식적으로는 $\mathbf{s} = h_{\psi} (\mathbf{Y})$으로 나타낼 수 있음
- Score-based Diffusion Model
- Diffusion model은 unit Gaussian 분포 $\mathcal{N}(0,I)$를 따르는 prior noise 분포에서 sampling 된 noise를 점진적으로 denoising 하여 sample을 생성
- 이때 Grad-StyleSpeech는 Markov chain 대신 Grad-TTS가 채택한 SDE 기반의 denoising process를 활용
- Forward Diffusion Process
- Forward diffusion process는 noise 분포 $\mathcal{N}(0,I)$에서 얻어진 noise를, sample 분포 $\mathbf{Y}_{0} \sim p_{0}$에서 가져온 sample에 점진적으로 추가하는 과정
- Forward diffusion process에 대한 differential equation을 다음과 같이 정의하자:
$d\mathbf{Y}_{t} = -\frac{1}{2}\beta(t)\mathbf{Y}_{t}dt + \sqrt{\beta(t)}d\mathbf{W}_{t}$
- $t \in [0,T]$ : continuous time step, $\beta(t)$ : noise scheduling function, $\mathbf{W}_{t}$ : standard Wiener process - 이때 Grad-TTS는 data-driven prior noise 분포 $\mathcal{N}(\mu, I)$에서 denoising을 수행할 것을 권장:
(Eq. 1) $d\mathbf{Y}_{t} = -\frac{1}{2}\beta(t)(\mathbf{Y}_{t}-\mu)dt + \sqrt{\beta(t)}d\mathbf{W}_{t}$
- $\mu$ : neural network의 text/style-conditioned representation - 그러면 Gaussian 분포를 따르는 transition kernel $p_{0t} (\mathbf{Y}_{t}|\mathbf{Y}_{0})$는 tractable 하므로:
(Eq. 2) $p_{0t}(\mathbf{Y}|\mathbf{Y}_{0}) = \mathcal{N}(\mathbf{Y}_{t};\gamma_{t},\sigma^{2}_{t}), \,\, \sigma^{2}_{t} = I- e^{-\int^{t}_{0}\beta(s)ds}\mathbf{Y}_{0}$
$\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, \gamma_{t} = (I - e^{-\frac{1}{2}\int_{0}^{t}\beta(s)ds})\mu + e^{-\frac{1}{2}\int_{0}^{t}\beta(s)ds}\mathbf{Y}_{0}$
- Reverse Diffusion Process
- Reverse diffusion process는 $p_{T}$의 noise를 $p_{0}$의 data sample로 점진적으로 invert 하는 과정
- 따라서 (Eq. 1)에 대한 reverse process는 reverse-time SDE로써:
$d\mathbf{Y}_{t} = \left[ -\frac{1}{2} \beta(t)(\mathbf{Y}_{t}-\mu)-\beta(t)\nabla_{\mathbf{Y}_{t}}\log p_{t}(\mathbf{Y}_{t}) \right]dt + \sqrt{\beta(t)}d\tilde{\mathbf{W}}_{t}$
- $\tilde{\mathbf{W}}_{t}$ : reverse Wiener process, $\nabla_{\mathbf{Y}_{t}} \log p_{t} (\mathbf{Y}_{t})$ : data 분포 $p_{t}(\mathbf{Y}_{t})$의 score function - Reverse SDE를 풀기 위해 numerical SDE solver를 활용하여 noise $\mathbf{Y}_{t}$로부터 sample $\mathbf{Y}_{0}$를 생성할 수 있음
- 이때 exact score를 얻기가 어렵기 때문에 neural network $\epsilon_{\theta} (\mathbf{Y}_{t}, t, \mu, \mathbf{s})$를 이용하여 score를 추정
- Hierarchical Transformer Encoder
- Diffusion model을 활용하는 multi-speaker TTS에서 $\mu$는 중요한 역할을 함
- 따라서 encoder가 3-level hierarchy를 가지도록 구성
- 먼저 text encoder $f_{\lambda}$는 phoneme sequence의 contextual representation을 위해 multiple transformer block을 통해 input text를 hidden representation으로 mapping:
$\mathbf{H} = f_{\lambda}(x) \in \mathbb{R}^{n \times d}$ - 이후 input text $\mathbf{x}$와 target speech $\mathbf{Y}$ 사이의 alignment를 계산하고, text encoder의 output length를 target speech의 length로 regulate 하는 unsupervised alignment learning framework를 적용:
$Align(\mathbf{H}, \mathbf{x}, \mathbf{Y}) = \tilde{\mathbf{H}} \in \mathbb{R}^{m \times d}$
- 추가적으로 각 phoneme의 duration을 예측하기 위해 duration predictor를 도입 - 마지막으로 speaker-adaptive hidden representation을 얻기 위해 style-adaptive transformer block을 통해 length-regulated embedding sequence를 encoding:
$\mu = g_{\phi}(\tilde{\mathbf{H}}, \mathbf{s})$
- $\mathbf{s}$ : style vector
- 먼저 text encoder $f_{\lambda}$는 phoneme sequence의 contextual representation을 위해 multiple transformer block을 통해 input text를 hidden representation으로 mapping:
- 구조적으로는, Style-Adaptive Layer Normalization (SALN)을 통해 style-adaptive encoder의 transformer block에 style information을 반영
- 이를 통해 hierarchical transformer encoder는 input text $\mathbf{x}$의 linguistic content와 style vector $\mathbf{s}$의 style information을 반영한 hidden representation $\mu$를 얻음
- 이렇게 얻어진 $\mu$는 denoising diffusion model의 style-conditioned prior noise 분포를 구성하는데 사용됨 - 이때 Grad-TTS와 마찬가지로 prior loss $\mathcal{L}_{prior} = ||\mu - \mathbf{Y}||_{2}^{2}$를 적용
- $\mu$와 $\mathbf{Y}$ 간의 $L2$ distance를 최소화하는 방식으로 최적화됨
- 따라서 encoder가 3-level hierarchy를 가지도록 구성
- Training
- Score estimation network $\epsilon_{\theta}$를 training 하기 위해
- Tractable transition kernel $p_{0t}(\mathbf{Y}_{t}|\mathbf{Y}_{0})$에 대한 marginalization의 expectation을 계산:
(Eq. 3) $\mathcal{L}_{diff} = \mathbb{E}_{t\sim \mathcal{U}(0,T)}\mathbb{E}_{\mathbf{Y}_{0}\sim p_{0t}(\mathbf{Y}_{t}|\mathbf{Y}_{0})} || \epsilon_{\theta}(\mathbf{Y}_{t},t,\mu,\mathbf{s}) - \nabla_{\mathbf{Y}_{t}} \log p_{0t}(\mathbf{Y}_{t}|\mathbf{Y}_{0})||_{2}^{2} $
- $\mathbf{s}$ : style vector, $\mathbf{Y}_{t}$ : (Eq. 2)의 Gaussian 분포에서 sample 되는 값 - 이후 exact score computation은:
(Eq. 4) $\mathcal{L}_{diff} = \mathbb{E}_{t\sim \mathcal{U}(0,T)}\mathbb{E}_{\mathbf{Y}_{0}\sim p_{0}(\mathbf{Y}_{0})}\mathbb{E}_{\epsilon \sim \mathcal{N}(0,I)}|| \epsilon_{\theta}(\mathbf{Y}_{t},t,\mu,\mathbf{s}) + \sigma_{t}^{-1}\epsilon||_{2}^{2}$
- $\sigma_{t} = \sqrt{1-e^{-\int_{0}^{t}\beta(s)ds}}$ : (Eq. 1) 참고 - 따라서 aligner와 duration predictor training에 대한 $\mathcal{L}_{align}$까지 결합한 최종 training objective는:
$\mathcal{L} = \mathcal{L}_{diff} + \mathcal{L}_{prior} + \mathcal{L}_{align}$
- Tractable transition kernel $p_{0t}(\mathbf{Y}_{t}|\mathbf{Y}_{0})$에 대한 marginalization의 expectation을 계산:
3. Experiments
- Settings
- Dataset : LibriTTS, VCTK
- Comparisons : YourTTS, Grad-TTS, Meta-StyleSpeech, AdaSpeech
- Results
- Unseen speaker에 대한 zero-shot adaptation 성능을 비교해 보면
- SECS, CER 측면에서 Grad-StyleSpeech의 성능이 가장 우수한 것으로 나타남
- 특히 Grad-StyleSpeech는 Grad-TTS 보다 훨씬 뛰어난 성능을 보임
- 이는 any-speaker adaptation 성능이 diffusion model 뿐만 아니라 hierarchical transformer encoder에서도 파생된다는 것을 의미
- MOS 측면의 주관적 합성 품질 비교에서도 Grad-StyleSpeech가 가장 우수한 성능을 보임
- 합성된 음성에 대한 mel-spectrogram을 확인해 보면,
- Grad-StyleSpeech는 diffusion model을 활용함으로써 high-frequency component를 detail 하게 모델링함
- 결과적으로 over-smoothing 문제를 극복 가능
- Grad-StyleSpeech를 unseen speaker에 대해 fine-tuning 했을 때의 결과를 살펴보면,
- Diffusion model과 Style-adaptive encoder를 100 step으로 fine-tuning 했을 때 AdaSpeech 보다 우수한 성능을 달성
- 이러한 fine-tuning은 speaker similarity를 확보하는데 효과적인 것으로 나타남
반응형
'Paper > TTS' 카테고리의 다른 글
댓글