AI논문리뷰-음성인식TTS

[AI논문리뷰] VALL-E - 3초 음성 프롬프트로 누구의 목소리도 흉내내는 언어 모델 TTS

Qcoding 2026. 5. 1. 09:53
반응형
논문  Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers 저자  Chengyi Wang et al. (Microsoft Research) 학회/연도  arXiv 2023 arXiv  2301.02111 데모  VALL-E Demo Page

📄 한 문단 요약

VALL-E는 TTS를 "언어 모델링 문제"로 재정의한 논문이다. EnCodec으로 오디오를 이산 코덱 토큰으로 변환한 뒤, 텍스트와 3초짜리 화자 음성 프롬프트를 조건으로 오디오 토큰 시퀀스를 자동회귀적으로 생성한다. 60,000시간 LibriLight 데이터로 사전학습해, 학습에서 한 번도 보지 못한 화자의 목소리를 3초 프롬프트만으로 재현하는 zero-shot TTS를 달성한다. 화자 유사도(SECS 0.93)와 자연스러움(WER 5.9%)에서 기존 SOTA를 대폭 상회하며, 프롬프트가 담긴 감정·음향 환경까지 보존한다.

이 논문은 무엇을 해결하려고 했나?

기존 TTS 시스템은 특정 화자의 데이터로 학습된 뒤, 그 화자의 목소리만 잘 낸다. 새로운 화자를 추가하려면 수십 분~수 시간의 녹음 데이터가 필요하다. Zero-shot TTS라는 개념이 있지만, 기존 방법(YourTTS, Meta Voice 등)은 화자 임베딩을 별도로 추출해 모델에 주입하는 방식이라 음성의 세밀한 특징(억양, 감정, 환경)을 재현하기 어렵다.

VALL-E의 핵심 질문은 단순하다: "GPT가 텍스트를 생성하듯, 오디오 토큰을 언어 모델로 생성하면 어떨까?" 텍스트 언어 모델이 Few-shot 프롬프트로 새로운 태스크를 해결하듯, VALL-E는 3초짜리 음성 프롬프트를 "오디오 few-shot 예시"로 활용해 해당 화자의 목소리 패턴을 즉석에서 학습한다.

이를 위해 두 가지 핵심 전환이 필요했다. 첫째, 연속 오디오 신호를 언어 모델이 다룰 수 있는 이산 토큰으로 변환해야 한다(EnCodec 활용). 둘째, 60,000시간이라는 대규모 데이터로 언어 모델을 사전학습해야 한다—기존 TTS 데이터셋(LJSpeech 24시간, VCTK 44시간)과는 규모가 다르다.

배경지식과 핵심 키워드

EnCodec (Neural Audio Codec)
Meta에서 2022년 발표한 신경망 기반 오디오 코덱이다. 오디오를 RVQ(Residual Vector Quantization)를 거쳐 이산 토큰(코드) 시퀀스로 압축하고, 이 코드를 디코더에 통과시켜 원래 오디오를 복원한다. VALL-E에서는 EnCodec의 8개 코드북을 사용하며, 각 코드북은 1024개 코드를 갖는다. 24kHz 오디오 1초가 75프레임 × 8코드 = 600개 정수로 표현된다. 이 정수 시퀀스를 언어 모델이 다음 토큰 예측 방식으로 생성하는 것이 VALL-E의 핵심이다.
RVQ (Residual Vector Quantization)
연속 벡터를 이산 코드로 변환하는 방법. VQ(Vector Quantization)가 codebook에서 가장 가까운 하나의 코드를 찾는다면, RVQ는 잔차(residual)를 반복적으로 양자화해 여러 계층의 코드를 만든다. 첫 번째 코드북이 전체 신호를 대략적으로 표현하고, 두 번째~여덟 번째 코드북이 점점 세밀한 세부 정보를 보충한다. VALL-E에서 첫 번째 코드북(coarse codes)은 자동회귀 모델(AR)이, 나머지 7개 코드북(fine codes)은 비자동회귀 모델(NAR)이 예측한다.
자동회귀 언어 모델 (AR: Autoregressive LM)
GPT 계열의 언어 모델처럼, 이전 토큰들을 조건으로 다음 토큰을 순차적으로 예측하는 방식이다. p(t_1, t_2, ..., t_n) = ∏ p(t_i | t_1, ..., t_{i-1}). VALL-E의 AR 모델은 텍스트 토큰 + 음성 프롬프트의 첫 번째 코드북 토큰을 입력으로, 나머지 첫 번째 코드북 토큰들을 자동회귀적으로 생성한다. 생성 품질이 높지만 순차 생성이라 느리고, 긴 시퀀스에서 에러가 누적될 수 있다.
비자동회귀 모델 (NAR: Non-Autoregressive)
모든 토큰을 동시에(병렬로) 생성하는 방식. AR보다 빠르지만 토큰 간 의존성을 완전히 모델링하기 어렵다. VALL-E에서 NAR 모델은 AR이 생성한 첫 번째 코드북을 조건으로, 나머지 2~8번째 코드북을 순서대로 채워 넣는다. 코드북 1→2→3→...→8 순서로 각 코드북을 한 번에 병렬 생성하므로, 8개 코드북을 7번의 NAR 패스로 완성한다. 전체 시스템에서 AR이 음성의 전체적 구조를, NAR이 세밀한 음질을 담당한다.
Zero-Shot TTS
학습 단계에서 한 번도 보지 못한 화자의 목소리를 추론 시 짧은 오디오 샘플만으로 재현하는 TTS다. 기존 방법(d-vector, x-vector 등)은 화자의 평균적 특성을 임베딩으로 압축해 모델에 주입하는데, 이는 화자 정체성(identity)은 잡되 발화 스타일의 세밀한 변동(감정, 리듬, 환경 노이즈)을 놓치는 경향이 있다. VALL-E는 음성 프롬프트 전체를 오디오 토큰으로 언어 모델에 직접 넣기 때문에, 프롬프트에 담긴 모든 맥락(감정·환경·리듬)을 In-Context Learning으로 활용한다.
In-Context Learning (ICL)
GPT-3가 보여준 능력으로, 모델 파라미터를 업데이트(fine-tune)하지 않고 입력 프롬프트만으로 새로운 태스크를 수행한다. Few-shot 예시를 프롬프트에 넣으면 모델이 패턴을 파악해 나머지를 완성하는 원리다. VALL-E는 이 개념을 오디오에 적용한다. (텍스트, 프롬프트 오디오 토큰) 쌍을 모델에 넣으면, 모델이 프롬프트 화자의 패턴을 "즉석에서" 학습해 동일 화자 스타일의 오디오를 생성한다. 파라미터 업데이트 없이 화자 적응이 일어나는 것이 핵심이다.
LibriLight (60K시간 데이터셋)
Facebook(Meta)이 공개한 대규모 비지도 음성 데이터셋. 60,000시간 분량의 영어 오디오북 녹음으로 구성된다. 기존 TTS 학습 데이터(LJSpeech 24시간, LibriTTS 585시간)와 비교하면 압도적인 규모다. VALL-E는 이 데이터를 전사(transcription) 없이 사용하지 않고, LibriLight에서 전사가 있는 부분(LibriTTS에서 파생된 960시간)과 LibriSpeech 960시간을 합쳐 약 60K시간 데이터를 구성한다. 이 스케일이 zero-shot 일반화의 핵심 요인이다.
SECS (Speaker Embedding Cosine Similarity)
화자 유사도를 측정하는 객관적 지표. 미리 학습된 화자 임베딩 모델(보통 WavLM Large 또는 resemblyzer)로 생성 음성과 실제 화자 음성의 임베딩 벡터를 추출한 뒤, 코사인 유사도를 계산한다. 값이 1에 가까울수록 두 음성의 화자 특성이 유사하다. VALL-E는 SECS 0.93을 달성했는데, 이는 YourTTS(0.886)보다 높고 Ground Truth 동일 화자 발화(0.946)에 근접한 수치다. SECS가 높다 = "목소리가 프롬프트 화자처럼 들린다"는 의미다.
 

핵심 인사이트

VALL-E의 가장 중요한 전환은 "TTS를 회귀 문제(연속값 예측)에서 분류 문제(이산 토큰 예측)로 바꾼 것"이다. 연속 mel spectrogram을 L1 손실로 예측하던 방식에서 벗어나, 이산 코드를 Cross-Entropy 손실로 예측함으로써 GPT 계열의 대규모 언어 모델 훈련 인프라를 TTS에 그대로 적용할 수 있게 됐다.

기존 방법의 한계

 

화자 임베딩 기반 Zero-shot의 정보 손실: YourTTS, Meta Voice Box 이전 세대 시스템들은 화자 음성을 d-vector나 x-vector로 압축해 조건으로 사용한다. 이 임베딩은 화자의 평균적 특성만 담으며, 특정 발화의 감정·음향 환경·리듬 같은 세부 정보는 버려진다. 반면 VALL-E는 프롬프트 오디오를 토큰 시퀀스 그대로 모델에 넣기 때문에 이 정보가 보존된다.

데이터 규모의 한계: 기존 TTS는 스튜디오 녹음 데이터(LJSpeech 24h, VCTK 44h)로 학습한다. 화자 다양성과 노이즈 강건성에 한계가 있다. VALL-E는 60,000시간 규모로 스케일을 2자릿수 이상 늘려 이 문제를 정면 돌파한다.

파이프라인 복잡성: 기존 TTS는 텍스트 → phoneme → mel spectrogram → waveform의 다단계 파이프라인이다. 각 단계가 오류를 누적하고 별도 학습이 필요하다. VALL-E는 텍스트 → 오디오 코덱 토큰의 단순한 언어 모델링 프레임으로 통합한다.

제안 방법의 핵심 아이디어

오디오 토크나이저로서의 EnCodec: 24kHz 오디오를 75Hz(1초=75프레임)로 다운샘플링한 뒤, RVQ 8계층으로 각 프레임을 8개 정수 코드로 표현한다. 코드 범위는 0~1023(각 코드북 크기 1024). 이 이산 토큰이 언어 모델의 어휘(vocabulary)가 된다.

AR + NAR 2단계 생성: 첫 번째 코드북(coarse acoustic tokens)은 AR 모델로 생성한다—텍스트와 프롬프트의 coarse token 시퀀스를 조건으로, 다음 coarse token을 순차 예측. 나머지 7개 코드북(fine acoustic tokens)은 NAR 모델로 생성한다—이전 코드북을 조건으로 다음 코드북을 한꺼번에 병렬 생성. AR이 음성의 전체 구조(리듬, 화자 특성)를, NAR이 음질 세부사항을 담당하는 분업이다.

프롬프트 기반 In-Context Learning: 3초짜리 화자 음성의 EnCodec 토큰을 시퀀스 앞에 붙이면, 모델이 해당 화자 패턴으로 나머지 토큰을 생성한다. 파라미터 업데이트 없는 화자 적응이다.

모델 구조/알고리즘 흐름

AR 모델 (Coarse Codec Language Model):

  1. 텍스트를 phoneme 시퀀스로 변환 → phoneme embedding
  2. 음성 프롬프트의 첫 번째 코드북 토큰 → prompt embedding
  3. Transformer Decoder (GPT 구조, 12L, 16H, 1024d)가 다음 coarse token 예측
  4. 출력: coarse acoustic token 시퀀스 c_1

NAR 모델 (Fine Codec Language Model):

  1. 입력: 텍스트 + 음성 프롬프트 (8개 코드북 모두) + AR이 생성한 c_1
  2. 코드북 k=2부터 8까지, 각 단계에서 k번째 코드북 토큰 전체를 병렬 예측
  3. 코드북 인덱스 k를 임베딩으로 주입해 모델이 현재 어느 코드북을 채우는지 인식
  4. 출력: fine acoustic tokens c_2, ..., c_8

최종 합성: EnCodec 디코더가 8개 코드북의 토큰 시퀀스를 받아 24kHz waveform 복원

핵심 인사이트

AR/NAR 분리는 속도와 품질의 트레이드오프를 명시적으로 설계한 것이다. AR은 느리지만 전역 일관성이 높고, NAR은 빠르지만 국소적 의존성만 모델링한다. Coarse token이 전체 구조를 잡으면 Fine token은 세부 음질만 채우면 되므로, NAR의 독립 가정이 큰 문제가 되지 않는다.

논문 그림/표로 이해하기

VALL-E 아키텍처 개요 

아래는 VALL-E 논문 Figure 1의 흐름을 재구성한 표다.

단계 입력 모듈 출력
전처리 텍스트 + 3초 음성 G2P + EnCodec phoneme + 8층 코드 토큰
AR 모델 phoneme + 프롬프트 c₁ Transformer Decoder (GPT) 생성 c₁ (coarse tokens)
NAR 모델 (×7) c₁ + 프롬프트 c₁~c₈ + k Transformer Decoder (NAR) c₂, ..., c₈ (fine tokens)
디코딩 c₁~c₈ 전체 EnCodec Decoder 24kHz waveform
VALL-E 파이프라인 재구성. 원문 Figure 1 기반. 출처: Wang et al., arXiv 2301.02111.

실험 설정과 결과 해석

평가 데이터: VCTK 2.2시간 (108화자, 각 3초 프롬프트 사용), LibriSpeech test-clean.

주요 지표:

  • WER (Word Error Rate): ASR 모델로 생성 음성을 전사해 원본 텍스트와 비교. 낮을수록 발음이 정확.
  • SECS: 화자 유사도 코사인 유사도. 높을수록 프롬프트 화자와 목소리가 비슷.
  • DNSMOS: 오디오 품질 자동 평가 점수(MOS 대체).
모델 WER ↓ SECS ↑
Ground Truth 2.2% 0.946
YourTTS (SOTA 기존) 7.7% 0.886
✦ VALL-E (proposed) 5.9% 0.930
논문 Table 1 (일부) 재구성. LibriSpeech test-clean 기준.

WER이 YourTTS(7.7%) → VALL-E(5.9%)로 하락한 것은 발음 정확도가 올랐다는 뜻이다. SECS 0.930은 Ground Truth 화자 간 유사도(0.946)에 거의 근접한 수치로, 프롬프트 화자의 목소리를 높은 정확도로 재현함을 의미한다.

감정 보존 실험: 프롬프트로 분노한 목소리를 주면, VALL-E가 합성한 음성도 분노 감정이 보존된다. 이는 기존 화자 임베딩 기반 시스템에서는 불가능한 특성이다.

음향 환경 보존: 전화 품질(8kHz 대역)의 프롬프트를 주면 합성 음성도 전화 품질로 나온다. 프롬프트의 배경 노이즈도 일부 재현된다.

한계와 비판적 관점

생성 강건성 문제: AR 모델이 간혹 발음을 건너뛰거나 반복하는 오류를 낸다. 언어 모델의 hallucination 문제가 TTS에도 그대로 나타난다. 논문 자체도 이를 인정하며, WER 5.9%는 Ground Truth 2.2%보다 여전히 높다.

속도: AR 모델이 자동회귀 방식이라 실시간보다 느릴 수 있다. 논문에서 구체적 속도(RTF)를 보고하지 않아 실용성 평가가 어렵다.

영어 단일 언어: 60K시간 데이터가 영어 위주라 다국어 적용에는 별도 데이터 구축이 필요하다.

윤리 문제: 3초 프롬프트로 누구의 목소리도 복제할 수 있다는 점에서 딥페이크 오남용 가능성이 크다. 논문도 이 점을 명시적으로 경고하며, 화자 검증(speaker verification) 시스템과의 병행 필요성을 언급한다.

비공개 모델: 코드와 모델 가중치가 공개되지 않아 재현이 불가능하다. 커뮤니티에서 구현한 vallE-x, bark 등이 있지만 논문의 성능을 완전히 재현하지는 못한다.

구현하거나 응용한다면 무엇을 봐야 하나?

오픈소스 대안들:

  • Bark (suno-ai/bark): VALL-E 스타일 코덱 언어 모델. 다국어 지원, 허밍·웃음 등 비언어 소리도 생성.
  • VALL-E X: 커뮤니티 구현, 크로스-링귀얼(영→중 등) TTS 지원.
  • VoiceCraft: 실시간 편집 가능한 코덱 언어 모델.

EnCodec 사용 방법:

from encodec import EncodecModel
model = EncodecModel.encodec_model_24khz()
model.set_target_bandwidth(6.0)  # 6kbps, 8 codebooks
# audio: [B, 1, T] tensor (24kHz)
encoded_frames = model.encode(audio)
codes = torch.cat([e[0] for e in encoded_frames], dim=-1)  # [B, 8, T']

핵심 구현 포인트: AR 모델은 코드북 1만 예측하고 EOS 토큰으로 종료 조건을 처리한다. NAR 모델은 동일한 Transformer 구조를 쓰되, 코드북 인덱스 k를 학습 가능한 임베딩으로 추가해 단일 모델이 k=2~8 모든 코드북을 커버한다.

한 줄 결론과 다음에 읽을 논문

VALL-E는 오디오를 언어 모델링 문제로 전환해 "3초 프롬프트로 누구의 목소리든 재현"이라는 zero-shot TTS 새 패러다임을 열었으며, 이후 대규모 코덱 언어 모델 TTS 연구의 시발점이 됐다.

다음에 읽을 논문:

  • VALL-E 2 (2024, arXiv:2406.05370): 연속 반복 인코딩과 그룹화된 코드 예측으로 원본 VALL-E의 강건성 문제를 해결.
  • VoiceBox (Meta, 2023, arXiv:2306.15687): 흐름 기반(Flow Matching) 접근으로 VALL-E의 속도 문제를 개선한 Meta의 연구.
  • SoundStorm (Google, 2023, arXiv:2305.09636): NAR 마스크 예측으로 실시간 오디오 생성을 달성한 Google DeepMind 연구.
  • VITS (2021, arXiv:2106.06103): VALL-E 이전 TTS SOTA. VAE+Flow+GAN 통합 아키텍처로 사람 수준 MOS 달성. VALL-E와 접근 방식 대비가 흥미롭다.

출처:

반응형