[VALL-E] Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers 리뷰 - (8~12/12 Page.)
에서 이어집니다.
Experiment 관련해서는 좀 가볍게 적을까한다. 실제로 해보면 한글과 영어의 차이도 분명이 존재하고, 이 부분은 분명이 학습을 진행할 것이라면, 나중에 면밀하게 봐야하니까...ㅎㅎ
5. Experiment
5.1 Experiment Setup
- Dataset: LibriLight. 60K 시간, 7000명의 유일화자. unlabeld되어있어서, LibriSpeech 960 hours DNN-HMM ASR model로 labeling함. EnCodec은 이거로 학습했다.
- Model: AR model과 NAR model은 transformer architecture 이며, 12 layers, 16 attention heads, embedding dimension 1024, feed-forward layer dimension 4096, dropout 0.1, LibriLight의 평균길이는 60초, 학습동안 waveform은 10~20초로 잘랐음. 그것은 phoneme prompt로 사용되는 phoneme alignments에 상응함. 발화의 반복은 phoneme sequence를 찾아서 제거함. NAR acoustic prompt tokens을 위해, 같은 화자의 3초짜리 waveform segment를 랜덤으로 선택했다. model은 16 V100 32GB 로 6K acoustic token batch로 800K step을 학습했다. AdamW optimizer, warm up learning rate 32k updates peak of 5X10^-4, linear decay 시킴.
- Baseline: zero-shot SOTA YourTTS를 VCTK, LibriTTS, TTS-Portuguese로 학습한 것 (공개된 checkpoint 사용)
- Automatic metrics: WavLM-TDNN으로 화자 prompt와의 유사도를 비교함. 합성의 robustness를 평가하기 위해서, ASR 모델로써 나온 WER을 평가하고, HuBERT-Large LibriSpeech 960h CTC based STT로 비교 (not-lm)
- Human evaluation: comparative mean opinion score(CMOS), similarity mean opinion score(SMOS)
5.2 LibriSpeech Evaluation
화자가 겹치지 않는 LibriLight의 training data와 LibriSpeech의 test-clean data를 사용. LibriSpeech test-clean에서 4~10초 사이의 길이 샘플링 2.2 hours 중에서. 각각 샘플의 합성은 VALL-E 3초의 음성 segment를 잘라서 같은 화자로 사용함. 각각의 실험은 3번의 run을 everage score해서 보고함. VALL-E-continual은 처음의 3초로 전체 발화의 ground-truth와 비교.
음성을 이어서 생성하는 Task의 경우 제일 잘됨. 그리고 표에는 없지만 다양한 실험세팅에 대한 설명과 비교가 있는데, 전반적으로 앞서 introduce에서 소개된 한계와 일맥상통하며, 음향쪽에 관심이 많은 사람이라면 다 들어봤을법한 모델에 대한 설명들이라 생략하도록 하겠다.
Human metrics도 압도적으로 잘됨.
Abalation study: NAR-no prompt; 프롬프트 없음, NAR-phn prompt; phoneme sequence로만 학습함, NAR-2 prompts; acoustic token과 phoneme prompt를 전부 주어줌 (NAR-no prompt는 causal lm 학습시키듯이 학습시켰을까?)
NAR-2 prompts가 화자의 정보를 학습할 수 있으므로 더 잘된다고 한다.
AR model에서 acoustic prompt를 주고 안주고는 어떤 차이가 있을까?
확실히 화자정보를 학습할 기회를 주는게 더 자연스럽게 들리는가보다.
5.3 VCTK Evaluation
VCTK를 가지고 seen 화자와 unseen화자에 대한 모델별 성능검증을 진행한다.
seen이던 unseen이던 몇초라고 하더라도 YourTTS보다는 높은 성능을 기록한다. 그리고 unseen의 경우 3초와 5초의 차이가 크지 않아, 3초만으로도 가능은 하다. 조금 길게 넣어줄 수록 유사도는 많이 증가되는 모습.
Humen evaluation을 위해 60명 화자를 샘플링하고, YourTTS는 11명은 unseen, 49명은 seen으로 설정한다. VALL-E는 60명 전부 unseen이다.
3초나 5초나 unseen에서 어느정도 잘됐으니 3초로 그냥 아쌀하게 조져본 실험결과로 보인다. 그럼에도 불구하고 VALL-E가 seen이 섞여있는 YourTTS보다 잘된다.
LibriSpeech에서의 차이가 있는 이유는(확 낮아진 이유), 소음이 섞여있고, VCTK음성이 평균 sentence length가 더 짧기 때문이라고 한다.
5.4 Qualitative Analysis
Diversity: 이전 TTS 기술들은, input text와 output waveform에 대한 강력한 mapping이 있었다. 왜냐하면 mel 스펙트럼 생성은 임의성이 없는 각 단계의 재구성을 기반으로 하기 때문이다. VALL-E는 sampling-based 방식을 discrete tokens을 생성할때 사용하므로, 출력물의 다양성이 같은 input text에서도 더 랜덤하게 나타날 수 있다. 예측 프로세스를 두번 진행하여 waveform을 비교한 그림을 참고하자.
다른 길이를 갖게 되는 것을 확인할 수 있다.
Amplitude도 다양하게 나오는 모습
이전에 TTS는 같은 output만을 생성하므로, STT의 학습데이터로 사용할 수 없었는데, 이제 STT의 학습 데이터로 사용할 수 있다.
Acoustic environment maintenance: 반향이 존재하는 음성의 경우, 기존의 TTS 음성은 깨끗한 음성을 출력하지만, VALL-E는 음성의 반향 특성까지 학습되는 것으로 보아, VALL-E는 음향 일관성을 학습할 수 있다. (예를 들면 전화통화를 진짜 전화통화하듯이 들려줄 수 있다는 장점....이라고 봐야하나...?)
Speaker's emotion maintenance: 기존 방법론들은, 감정을 합성하려면 emotion 정보를 요구한다. VALL-E는 감정 정보를 추가학습할 필요 없이, 감정에 해당하는 음성 prompt를 주어주는 것 만으로도 수행 가능하다.
6. Conclusion, Limitations, and Future Work
Synthesis robustness: 흔히 경험할 수 있는 transformer decoder 기반의 생성모델의 단점을 이야기한다. max_length와 같은 이야기로, 같은 단어가 반복되서 출력될 수 있는 문제를 이야기한다. VALL-E는 NAR을 적용하고, 어텐션 메커니즘을 수정하여 해결하였는데, 이러한 기술을 적극적으로 활용해볼만 하겠다.
Data coverage: 60K의 데이터를 사용하더라도, 여전히 모든 사람의 음성을 표현할 수는 없었다. VCTK는 악센트가 다양한 화자가 있다면 더 잘되었을 것이며, LibriSpeech는 Audio Book Reading이다보니까, 발화의 다양성이 부족했다는 평가다. 이런 데이터들을 확장해서 구축하는 것으로 대부분의 zero-shot model의 한계를 타파 가능하다고 생각한단다.
Model Structure: 이러니 저러니 해도, AR과 NAR model 2개를 돌려야한다는 점이 존재한다. 전체의 큰 모델 1개로 할 수 있으면 더 편리할 것이고, NAR models로만 조지는 것도 고려해볼만 하겠다.
Broader impacts: 모델이 특정 화자의 음성만 가지고 매우 유사하게 모사되므로, 불법적으로 사용될 여지가 존재한다. VALL-E를 통해 합성되었는지 확인할 수 있는 모델을 구축중에 있으며, 모델은 MicrosoftAI 원칙을 적용할 예정이다.
이렇게 신기한 VALL-E의 논문 리뷰가 끝이났다. 정말 잘되는 것 같은데, 모델 아키텍쳐가 어떻게 생겨먹었을지 어서 빨리 보고싶은 마음 뿐이다...