[Capstone #5] Matcha-TTS: A fast TTS architecture with conditional flow matching

윤하은·2024년 3월 22일
1

Capstone

목록 보기
5/10

Paper : https://arxiv.org/abs/2309.03199
GitHub : https://github.com/shivammehta25/Matcha-TTS

Abstract

Matcha-TTS는 optimal-transport conditional flow matching (OT-CFM)을 사용하여 훈련된 빠른 TTS 음향 모델링을 위한 새로운 encoder-decoder 아키텍처다. 이를 통해 높은 출력 품질을 가진 ordinary differential equation (ODE) 기반 디코더가 만들어지며, score matching을 사용하여 훈련된 모델보다 적은 synthesis 단계에서도 빠르게 synthesis할 수 있다.

이 방법은 확률적이며 non-autoregressive하며, 외부 정렬 없이 처음부터 말하기를 학습한다. 강력한 사전 훈련된 기준 모델과 비교할 때, Matcha-TTS 시스템은 가장 작은 메모리 풋프린트를 가지며, 긴 발화에서 가장 빠른 모델과 속도를 겨루며, 청취 테스트에서 가장 높은 평균 의견 점수를 얻었다.



1. Introduction


Diffusion probabilistic models (DPMs)은 현재 연속값 데이터 생성 작업에서 새로운 기준을 설정하고 있다. 이미지 synthesis, 동작 synthesis, 그리고 음성 synthesis과 같은 작업에서 심층 생성 모델링에 대한 새로운 표준을 정의하고 있다.

  • 데이터(target) 분포를 사전(source) 분포로 변환하는 diffusion 과정 (ex Gaussian)
  • diffusion 과정을 반전시키는 샘플링 과정을 학습한다.

Stochastic Differential Equations

두 과정은 순방향 및 역방향 stochastic differential equations (SDEs)으로 정의할 수 있다. 역방향 SDE 초기 값 문제를 해결하면 학습된 데이터 분포에서 샘플을 생성한다. 각 역방향 SDE에는 probability flow ODE가 있다. 이 ODE는 SDE와 정확히 같은 분포를 설명하고 샘플링한다.

probability flow ODE는 source 샘플을 target 샘플로 변환하는 결정론적 프로세스다. Continuous-Time Normalizing Flows (CNF)와 유사하지만, 비용이 많이 드는 수치 미분 방정식 (ODE) 알고리즘을 통해 ODE를 역전파하거나 adjoint 변수를 사용하여 역 ODE를 근사화할 필요가 없다.

DPMs의 SDE 형식은 데이터 분포의 score 함수(로그 확률 밀도의 그래디언트)를 근사화하여 훈련된다. 훈련 목표는 likelihood에 대한 Evidence Lower Bound (ELBO)에서 유도될 수 있는 평균 제곱 오차 (MSE) 형식을 취한다. 이는 빠르고 간단하며, 일반적인 정규화 플로우 모델과 달리 모델 구조에 어떤 제한도 가하지 않는다.

그러나 수치적인 SDE/ODE 해법을 찾는 알고리즘 없이 효율적인 훈련을 허용하지만, DPMs는 각 샘플이 SDE를 정확하게 해결하기 위해 연속적으로 계산된 여러 번의 iteration을 필요로 하므로 synthesis 속도가 느리다. 이러한 각 단계에서는 전체 신경망을 평가해야 한다. 이러한 느린 synthesis 속도는 DPMs의 주요 실용적인 문제였다.



Matcha-TTS

본 논문에서는 continuous normalising flows를 기반으로 한 확률적이고 non-autoregressive 하면서도 빠르게 샘플링할 수 있는 TTS 음향 모델인 Matcha-TTS를 소개한다.

  1. 개선된 encoder-decoder TTS 아키텍처를 제안한다. 이는 decoder에서 1D CNNs와 트랜스포머의 조합을 사용한다. 메모리 소비를 줄이고 평가 속도를 빠르게 하여 synthesis 속도를 향상시킨다.

  2. Optimal-transport conditional flow matching (OT-CFM)을 사용하여 모델을 훈련한다. 데이터 분포에서 샘플링하는 ODE를 학습하는 새로운 방법이다. 기존 CNF와 score 매칭 probability flow ODE에 비해 OT-CFM은 source에서 target으로의 간단한 경로를 정의하여 DPMs보다 적은 단계에서 정확한 synthesis을 가능하게 한다.

실험 결과는 두가지 제안된 방법 모두 synthesis를 가속화하여 속도와 synthesis 품질 간의 트레이드오프를 줄인다는 것을 보여준다. 빠르고 가벼운 Matcha-TTS는 외부 정렬기를 필요로하지 않고 말하는 것과 정렬을 학습한다. 사전 훈련된 기준 모델과 비교하여 더 자연스럽고 빠른 synthesis을 달성한다.




2. Background


2.1 Recent encoder-decoder TTS architectures

DPMs는 파형 생성 및 end-to-end TTS를 포함한 다양한 음성 synthesis 작업에 적용되어 탁월한 결과를 보였다.

  • Diff-TTS : 음향 모델링에 DPMs를 처음으로 적용
  • Grad-TTS : diffusion 과정을 SDE로 개념화
  • TorToiSe : 양자화된 잠재 변수를 사용하여 autoregressive TTS 모델에서 DPMs를 시연



Encoder

위의 모델들은 현대적인 많은 TTS 음향 모델과 마찬가지로 encoder-decoder 아키텍처를 사용하여 Transformer 블록을 encoder에 사용한다. FastSpeech와 같은 많은 모델은 위치 종속성을 위해 sinusoidal position embeddings을 사용한다. 이는 긴 시퀀스에 일반화하기 어렵다는 것이 밝혀졌다.

sinusoidal position embeddings
참고 : https://velog.io/@gibonki77/DLmathPE

GlowTTS, VITS 및 Grad-TTS는 대신 relative positional embeddings을 사용한다. 그러나 이런 방법들은 짧은 컨텍스트 창 외부의 입력을 "bag of words"로 처리하므로 종종 자연스럽지 않은 운율을 유발한다.

LinearSpeech는 rotational position embeddings (RoPE)을 사용했다. 따라서 Matcha-TTS는 인코더에서 RoPE를 사용하여 Grad-TTS와 비교하여 RAM 사용량을 줄인다. 본 논문은 RoPE를 사용하는 첫 번째 SDE 또는 ODE 기반 TTS 방법이다.



Decoder

현대 TTS 아키텍처는 decoder 네트워크 설계 측면도 다르다. 정규화 플로우 기반의 방법인 Glow-TTS와 OverFlow는 확장된 1D-convolution을 사용한다. DPM 기반의 방법은 mel-spectrograms를 합성하기 위해 1D-convolution을을 사용한다.

반면, Grad-TTS는 2D-convolution을 사용하는 U-Net을 사용한다. 이는 mel-spectrogram을 이미지로 취급하고 시간 및 주파수 모두에 대해 변환 불변성을 가정한다. 그러나 음성 mel-spectrogram은 주파수 축을 따라 완전히 변환 불변이 아니며, 2D 디코더는 텐서에 추가 차원을 도입하여 일반적으로 더 많은 메모리를 필요로 한다.

한편, FastSpeech와 같은 확률적이지 않은 모델은 1D 트랜스포머를 사용한 decoder를 사용하여 장거리 의존성을 학습하고 빠르고 병렬적인 합성을 달성했다. Matcha-TTS도 decoder에서 트랜스포머를 사용하지만, 2D U-Net에서 영감을 받은 1D U-Net 설계를 사용한다.



Alignment

일부 TTS 시스템은 FastSpeech와 같이 외부에서 제공된 정렬에 의존하지만, 대부분의 시스템은 동시에 말하고 정렬하는 것을 학습할 수 있다. 그러나 빠르고 효과적인 훈련을 위해 monotonic alignment를 장려하거나 강제하는 것이 중요하다는 것이 밝혀졌다.

이를 위한 한 가지 메커니즘은 monotonic alignment search(MAS)다. Glow-TTS와 VITS는 MAS를 사용한다. 특히 Grad-TTS는 prior loss라는 MAS 기반의 메커니즘을 사용한다. 이를 통해 입력 심볼을 출력 프레임에 빠르게 정렬하는 것을 배우게 된다. 이러한 정렬은 로그 도메인의 MSE를 최소화하는 deterministic duration predictor를 훈련하는 데 사용된다.

Matcha-TTS는 alignment 및 duration 모델링에 이러한 동일한 방법을 사용한다. 마지막으로, Matcha-TTS는 모든 decoder feedforward 레이어에 BigVGAN의 snake beta activations를 사용하여 차이점을 보여준다.




2.2. Flow matching and TTS

현재 일부 최고 품질의 TTS 시스템은 DPMs 또는 discrete-time normalising flows를 활용하고 있으며, continuous-time flows는 덜 탐구되었다.


Flow Matching for Generative Modeling은 probability flow ODE와 CNF을 통합하고 확장하는 ODE를 사용한 synthesis을 위한 프레임워크를 소개했다.

Conditional flow matching (CFM)이라는 간단한 벡터 필드 회귀 손실을 사용하여 ordinary differential equation (ODE)를 학습하는 효율적인 접근 방식이다. 이 방법은 DPMs를 위한 score 함수를 학습하거나 전통적인 CNF처럼 훈련시에 미분 방정식의 수치적 해법을 찾는 알고리즘을 사용하는 것을 피하기 위한 것이다.

OT-CFM

CFM은 본질적으로 단지 직선을 따라 확률 질량을 전송하기 때문에, optimal transport 아이디어를 활용하여 source 분포로부터 data 분포로 샘플을 매핑하는 과정에서 거의 변하지 않는 간단한 벡터 필드를 갖는 ODE를 생성하도록 설정할 수 있다. 수정된 flow는 유사한 아이디어를 가진 concurrent한 작업을 나타내게 된다.

이러한 간단한 경로는 적은 discretisation 단계로 ODE를 정확하게 해결할 수 있음을 의미한다. 즉, DPMs보다 적은 neural-network evaluation으로 정확한 모델 샘플을 그릴 수 있어 동일한 품질에 대해 훨씬 빠른 합성이 가능하다.

discretisation
: discrete하게 만드는것. Numerical Feature를 일정 기준으로 나누어 그룹화하는 것을 의미한다.
참고 : https://velog.io/@nata0919/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%9D%B4%EC%82%B0%ED%99%94Discretisation-%EC%A0%95%EB%A6%AC


CFM은 SDE/ODE 기반 TTS를 가속화하기 위한 이전 접근 방식과 다른 새로운 기술이다. 이전 방법들은 주로 distillation을 기반으로 했다. Matcha-TTS 이전에는 CFM을 기반으로 한 음향 모델에 관한 유일한 공개 사전인 Meta의 Voicebox 모델이 있었다.

Voicebox(VB)

  • Work : TTS, denoising, text-guided acoustic infilling
  • Train Method : Masking, CFM
  • Text encoder : AliBi self-attention bias, convolutional positional encoding
  • Alignment : 외부 정렬
  • Data : 60,000시간의 소유 데이터
  • Parameter : 330M개

Matcha-TTS

  • Work : TTS
  • Train Method : OT-CFM
  • Text encoder : RoPE
  • Alignment : 외부 정렬 없이 학습
  • Data : 표준 데이터
  • Parameter : 18.2M개




3. Method


3.1. Optimal-transport conditional flow matching


  • Flow matching 개요
  • 벡터 필드에 의해 생성된 probability-density path
  • OT-CFM의 목적

데이터 분포 q에서 샘플을 생성하는 한 가지 방법은 probability density path p_t를 구성하는 것이다.

time t, p_0(x) : p_1(x)가 데이터 분포 q(x)를 근사화도록 하는 사전 분포


Continuous-Time Normalizing Flows는 먼저 벡터 필드 v_t : [0, 1] × R^d → R^d를 정의한다. 이 벡터 필드는 ODE를 통해 flow ϕt : [0, 1] × R^d → R^d를 생성한다.

이렇게 하면 데이터 포인트의 marginal probability distribution으로 경로 p_t를 생성할 수 있다. 본 논문에서는 식 (1)의 초기 값 문제를 해결함으로써 근사 데이터 분포 p_1에서 샘플을 추출할 수 있다.

q(x) : 복잡하고 알려지지 않은 데이터 분포

p_t

  • [0, 1] × R^d → R > 0
  • probability density path
  • 시간에 의존하는 확률 밀도 함수

x

  • x~q(x)
  • Data space R^d의 observation
  • d차원 실수 벡터로 표현된 데이터 포인트



p_0에서 p_1 ≈ q까지의 확률 경로 pt를 생성하는 알려진 벡터 필드 u_t가 존재한다고 가정하면, flow matching loss는 다음과 같이 정의된다:

t : U[0, 1]에서 샘플링된 값
vt(x; θ) : 파라미터 θ를 가진 신경망



그러나 실제로는 플로우 매칭이 복잡하기 때문에 실제로는 벡터 필드 u_t와 대상 확률 p_t에 액세스하는 것이 어렵다. 따라서 conditional flow matching은 대신 다음과 같이 고려된다:

이는 추정하기 어려운 marginal probability densities와 벡터 필드를 conditional probability densities와 conditional 벡터 필드로 대체한다. 중요한 점은 일반적으로 이러한 조건부 항들이 계산 가능하며 닫힌 형태의 해를 가지고 있으며, 또한 L_CFM(θ)와 L_FM(θ)이 모두 θ에 대한 동일한 그래디언트를 가지고 있음을 보일 수 있다.



Matcha-TTS는 특히 간단한 그래디언트를 갖는 CFM 변형인 OT-CFM을 사용하여 훈련된다. OT-CFM 손실 함수는 다음과 같이 작성할 수 있다:

Flow from x0 to x1

  • 각 데이터 x1이 x0~N(0, I)와 일치되도록 임의의 샘플 x0 에 대응되는 플로우를 정의한다.

Gradient vector field

  • 기대 값이 학습을 위한 대상으로, 선형적이고, 시간에 불변하며, 오직 x_0과 x_1에만 의존한다.

이러한 특성들은 더 쉽고 빠른 훈련, 빠른 생성, DPMs에 비해 더 나은 성능을 가능하게 한다.

Matcha-TTS의 경우는 다음과 같다:

  • x_1 : acoustic frames
  • mu : 해당 프레임의 조건부 평균값
    • 다음 섹션에서 설명되는 아키텍처를 사용하여 텍스트로부터 예측된다.
  • sigma_min : 작은 값을 갖는 하이퍼파라미터




3.2. Proposed architecture

Matcha-TTS는 neural TTS를 위한 non-autoregressive 인코더-디코더 아키텍처다.

  • 텍스트 인코더와 duration 예측 아키텍처 : Glow-TTS와 Grad-TTS를 따르지만, 상대적인 위치(embeddings) 대신에 회전 포지션 임베딩(rotational position embeddings)을 사용한다.

  • Alignment and duration 모델 훈련 : MAS와 prior loss Lenc를 사용한다.

예측된 지속시간은 반올림하여 인코더에서 출력된 벡터를 업샘플링(복제)하여 선택된 지속시간에 따른 텍스트 및 평균 음향 특성(예: 멜 스펙트로그램)인 µ을 얻는다. 이 평균은 합성에 사용되는 벡터 필드 v_t(ϕ_t^OT(x0)|µ; θ)를 예측하기 위해 디코더를 조건으로 사용되지만, Grad-TTS와는 달리 초기 노이즈 샘플 x0의 평균으로 사용되지 않는다.


Matcha-TTS 디코더 아키텍처는 1D convolutional residual 블록을 포함하는 U-Net으로 구성되어 입력을 다운샘플링하고 업샘플링한다.

t ∈ [0, 1]의 흐름 매칭 단계는 Grad-TTS와 같이 포함된다. 각 잔차 블록은 Transformer 블록이 뒤따르며, 해당 피드포워드 네트워크는 snake beta activations를 사용한다.

이 Transformer는 위치 임베딩을 사용하지 않는다. phone 사이의 상대적인 위치 정보는 이미 인코더에서 적용되었고, convolution 및 downsampling 연산은 동일한 phone 내의 프레임 사이에서 이를 보간하고, 서로의 상대적인 위치를 구분하기 때문이다.

이 디코더 네트워크는 Grad-TTS에서 사용된 2D convolution만을 사용하는 U-Net보다 훨씬 빠르게 평가되며 메모리를 덜 사용한다.





소감

TTS 모델에서 Duration과 Alignment 성능을 높이기 위해 어떤 식으로 구조를 개선해 나가는지 감을 잡을 수 있었다.
우선 해당 모델로 학습을 시켜 보고, 인코더-디코더 네트워크에 feature를 추가할 방법을 더 찾아봐야겠다.

0개의 댓글