Voicebox
in Seminar on Text-to-Speech
Matthew Le, Apoorv Vyas, Bowen Shi, Brian Karrer, Leda Sari, Rashel Moritz, Mary Williamson, Vimal Manohar, Yossi Adi, Jay Mahadeokar and Wei-Ning Hsu
"Voicebox: Text-Guided Multilingual Universal Speech Generation at Scale"
Accepted by NeurIPS 2023
[Paper] [Demo] [Unofficial Code]
Goal
- Masking strategy 를 통해 In-context learning 을 활용하여, 학습 때 마주하지 않은 Task에 대해서도 우수한 성능을 보이는 TTS 모델 제안
- Mono-lingual zero-shot TTS
- Cross-lingual zero-shot TTS
- Speech denoising
- Speech editing
- Style conversion
- Diverse speech sampling
Motivation
- 비전, 언어모델 분야에서 대규모 생성모델들이 큰 성과를 이룸
- [GPT, 2020] : In-context learning 능력 보유
- [DALL-E, 2021]
- 반면, 스피치 분야는 데이터 셋의 분포에 따라 아웃풋이 편향되는 경향이 있음
- Curated 데이터 셋 : 너무 깔끔해서 다양한 감정, 노이즈, 목소리 변화등을 표현하지 못함
- In the wild 데이터 셋 : 일반적으로 성능이 낮음
Contribution
- Voicebox는 대규모 데이터 셋으로 Text-guided speech infilling task 을 학습하여 in-context learning 능력을 가져 학습 때 마주하지 않은 Task에 대해서도 우수한 성능을 보임
- 기존 SOTA 모델들과 비교하였을 때 상대적으로 더욱 우수한 성능을 보임
- 어떠한 길이에도 Speech infilling 이 가능
Promblem formulation
- Notation
- $x = ( x^ 1, x ^ 2 , …, x ^N)$ : $N$ 프레임으로 구성된 오디오 샘플
- $y = ( y^ 1,y ^ 2 , …, y ^ M)$ : $M$ 개의 음소로 구성된 텍스트 시퀀스
- $m$ : Binary temporal mask
- $x_{mis} = m \odot x$ : Missing data
- $x_{ctx} = (1-m) \odot x$ : Context data
- $l = ( l ^ 1, l ^ 2 , …, l ^M)$ : 각 음소마다의 Duration
- $z = \text{rep} (y, l ) =( z^ 1, z ^ 2 , …,z ^N)$ : 프레임 별 음소 Transcript
- 목표
- In-context learning 을 통해 여러개의 Text-guided speech generation task 를 수행할 수 있는 Single model 만들기
- Text-guided speech infilling task
- 주변 오디오 샘플과 텍스트를 통해 Speech segment 예측하기
- 모델이 학습 하는 것 : $p(x_{mis} | y, x _{ctx})$
Method
- Audio model & Duration model
- Flow-matching with an optimal transport path
- Classifier-free guidance
Audio model
- Context 를 담당하는 텍스트 $z$ 와 길이가 $N$ 인 $x_{ctx}$ 가 주어졌을 때, $x _ {mix}$ 의 분포는 매우 Stochastic 합니다. 또한 $x _ {mis}$ 의 Temporal span 이 크다면 이를 예측하는 것은 더욱 어렵습니다.
- 저자들은 Conditional normalizing flow 를 활용해 $x_{mis}$의 분포를 Parametrizing 하고자 하였고, Flow-matching objective with optimal-transport 로 학습하였습니다.
- Context 에 해당하는 $z$ 와 $x _ {ctx}$ 는 Figure 2와 같이 모델의 입력으로 사용됩니다.
Flow-matching
- [Flow-matching, 2023] 에서 제안한 Optimal Transport path 인 Conditional flow 를 학습합니다.
- $p _ t ( x | x _ 1) = \mathcal{N} ( x | t x _ 1, (1-(1-\sigma _ {\text{min}}) t )^ 2 I )$
- $u _ t (x | x _ 1) = \frac{x _ 1 - (1- \sigma _ {\text{min}})x}{1- ( 1- \sigma _ {\text{min}})t}$
- $x _ t = ( 1- (1-\sigma _ {\text{min}} ) t ) x _ 0 + tx$
학습 동안 Loss는 모든 프레임에서 계산됩니다. 비록 마스킹 되지 않은 부분은 Inference 때 필요없을 수 있지만, 이렇게 계산하여 모델을 학습 시켰습니다. 이는 [P-Flow, 2023]과 상반되는 모습입니다. 물론 마스킹 된 프레임만 Loss를 계산하여 학습한 버전과 비교해보았을 때, 모든 프레임에서 Loss를 계산한 버전이 더욱 좋은 성능을 보였다고 말하고 있습니다.
- 인퍼런스 시, 학습된 오디오 분포 $p _ 1 ( x | z , x _ {ctx})$ 에서 샘플링 하기 위해 아래의 단계를 따릅니다.
- $p _ 0$ 에서 노이즈 $x _ 0 \sim N ( 0,1)$ 를 샘플링합니다.
- $\frac{d \phi _ t ( x _ 0 )}{dt} = v _ t ( \phi _ t ( x _ 0 ), x _ {ctx}, z; \theta )$ 와 초기 조건 $\phi _ 0 ( x _ 0 ) = x _ 0$ 가 주어졌을때 $\phi _ 1 ( x _ 0 )$ 를 평가하기 위해 ODE solver를 이용합니다.
- ODE solver는 초기조건 $\phi _ 0 (x_0) = x_0$ 가 주어진 상태에서 $t= 0$ 부터 $t= 1$ 까지의 다양한 $t$ 에서 $v _ t$를 평가함으로써, 최종적으로 $\phi _ 1 ( x _ 0 )$ 를 계산합니다.
- Number of function evaluation (NFE) 는 $\frac{d \phi _ t ( x _ 0 )}{dt}$ 가 몇 번 계산되는지를 나타냅니다.
- Voicebox의 경우, 10 NFE 이하에서도 고품질의 음성을 생성할 수 있었습니다.
Duration model
- 저자들은 Duration model 과 관련하여 2가지 방식을 생각했습니다.
- Audio model 처럼 Conditional flow matching 으로 Duration 분포 $q(l | y, l _ {ctx})$ 모델링하기
- $l _ {ctx}$ 와 $y$ 를 기반으로 Masked duration $l _ {mis}$ 를 Regression 하기
- 저자들은 2번 방식을 채택하였습니다. 모델은 마스킹된 Phoneme 에 대해 아래의 $L_1$ regression loss 로 학습하게 됩니다.
- [FastSpeech2, 2021]에서 사용된 Duration 모델과 비슷하지만, 추가적인 입력으로 Duration context $l_{ctx}$ 가 사용됩니다.
Classifier-free guidance
- [Classifier-free guidance, 2022] 의 방법론을 Flow-matching 에 적용하여 확장시켰습니다.
- 기존의 Conditioner $c$ 는, Audio 모델에서는 $(z, x _ {ctx})$ 이고, Duration 모델에서는 $(y, l _ {ctx})$ 입니다.
- 인퍼런스 시, Audio model에 대해 변경된 Vector field는 아래와 같습니다.
여기서 $\alpha$ 는 Guidance의 강도를 나타내고, $v_t ( w; \theta)$ 는 $x_{ctx}$와 $z$를 제거함으로써 얻을 수 있습니다. $\alpha$ 와 $\alpha_{dur}$ 의 값은 실험을 통해 결정하였습니다.
Q. Classifier-free guidance를 같이 채택한 이유가 무엇일까?
Application
- Q. 특정 Application에서 Speech prompt (reference speech)의 Transcriptioin을 필요로하는 것은 단점인가?
Experiment
Data
Voicebox-En (영어모델) : 60,000 ASR-transcribed 영어 오디오북
Voicebox-Multi (다국어 모델) : 50,000 시간 Multi-lingual 오디오북 + 6개 국어
Metrics
- Correctness and intelligibility
- Word Error Rate (WER) : Public automatic speech recognition (ASR) 모델을 사용
- Multi-lingual setup : Whisper large-v2 모델 사용
- Similarity
- WavLM-TCDNN 을 사용하여 임베딩 추출 후, 임베딩 사이의 유사도 비교 (VALL-E에서 제안한 측정 방식)
- Diversity
- Frechet Speech Distance (FSD) : wav2vec 2.0 피쳐를 활용하여 FID에 적용
- 낮을수록 실제 데이터와 유사한 샘플을 생성
- 낮을수록 더 다양한 샘플을 생성(?)
- Frechet Speech Distance (FSD) : wav2vec 2.0 피쳐를 활용하여 FID에 적용
- 그 외 객관적 지표
- QMOS, SMOS
Mono-lingual zero-shot TTS
- Cross-sensentence 방식과 Continuation 방식에서 우수한 성능을 거두었습니다.
Cross-lingual zero-shot TTS
- 발음 정확도, 화자 유사도 모두 우수한 성능을 거두었습니다.
- 발음 정확도, 화자 유사도 그래프