Markdown Preview
음성 합성을 혁신하는 타코트론: 엔드 투 엔드 접근 방식
Frontmatter
Tacotron은 기존 TTS 시스템의 복잡한 파이프라인을 단순화하여 텍스트 입력만으로 음성을 생성하는 end-to-end 음성 합성 모델이다. Tacotron 1은 attention 기반 seq2seq 모델을 사용하고 Griffin-Lim 알고리즘으로 음성을 생성하며, Tacotron 2는 LSTM과 Location-Sensitive Attention을 도입하여 음질을 향상시켰다. Tacotron 2는 MOS 점수 4.526을 기록하며, 자연스러운 음성을 생성하는 데 성공했지만 느린 추론 속도와 attention 불안정성 등의 한계가 있다.
Tacotron: End-to-End Speech Synthesis
기존의 TTS(Text-to-Speech) 시스템은 문장 → 음소 → 발음 → 음성 매칭이라는 복잡한 파이프라인을 거쳐야 했습니다. 각 단계마다 별도의 모델과 전문 지식이 필요했기 때문에, 시스템을 구축하고 유지하는 것이 상당히 번거로웠죠.
기존 TTS 파이프라인:
문장 → 텍스트 정규화 → 음소 변환(G2P) → 운율 예측 → 음향 모델 → 보코더 → 음성하지만 Tacotron은 이 모든 과정을 하나의 신경망으로 통합한 end-to-end 모델입니다. 텍스트를 넣으면 바로 음성이 나오는, 말 그대로 "끝에서 끝까지" 처리하는 구조입니다.
한 줄 요약
Attention 기반 Sequence-to-Sequence 모델로, 문자(character) 입력만으로 멜 스펙트로그램을 직접 생성하여 기존 TTS 파이프라인의 복잡성을 획기적으로 줄인 end-to-end 음성 합성 모델입니다.
논문 정보
- Tacotron: Tacotron: Towards End-to-End Speech Synthesis (Yuxuan Wang et al., Google, 2017)
- Tacotron 2: Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions (Jonathan Shen et al., Google, 2018)
- arXiv: 1703.10135 (Tacotron), 1712.05884 (Tacotron 2)
배경: 기존 TTS의 문제점
기존 TTS 시스템은 여러 모듈이 파이프라인으로 연결된 구조였습니다. 각 모듈은 독립적으로 학습되기 때문에 에러가 누적되고, 전체 시스템을 최적화하기가 매우 어려웠습니다.
방식 | 원리 | 장점 | 단점 |
Concatenative TTS | 녹음된 음성 조각을 이어 붙여 합성 | 자연스러운 음색 | 대규모 음성 DB 필요, 새 화자 추가 어려움 |
Parametric TTS | HMM/DNN으로 음향 파라미터를 예측 후 보코더로 합성 | 유연한 제어 | 기계적인 음질, 복잡한 파이프라인 |
End-to-End (Tacotron) | 텍스트에서 음성을 직접 생성 | 단순한 구조, 전체 최적화 가능 | 학습 데이터 많이 필요, 추론 속도 느림 |
Tacotron은 이런 복잡한 전처리(음소 변환, 운율 예측 등) 없이 문자 시퀀스를 바로 멜 스펙트로그램으로 변환하는 접근 방식을 제안했습니다.
Tacotron 1 아키텍처
Tacotron의 backbone은 attention 기반 seq2seq 모델입니다. 텍스트를 입력하면 멜 스펙트로그램을 출력하고, 이를 Griffin-Lim 알고리즘으로 오디오 파형으로 변환합니다.
Encoder: 문자를 벡터로 변환
Encoder는 입력 문자 시퀀스를 고차원 벡터 표현으로 변환하는 역할을 합니다.
- Character Embedding: 입력 문자를 one-hot encoding으로 변환한 뒤, 학습 가능한 임베딩 벡터로 매핑합니다. 한글의 경우 초성, 중성, 종성을 각각 분리하여 인코딩합니다.
- Pre-net: 임베딩된 벡터를 2개의 Fully Connected Layer(256차원, ReLU + Dropout)를 통해 변환합니다. Dropout이 병목(bottleneck) 역할을 하여 attention 학습을 도와줍니다.
- CBHG 블록: Tacotron 1의 핵심 모듈로, 1D Convolution Bank + Highway Network + Bidirectional GRU로 구성됩니다. 다양한 크기의 n-gram 패턴을 포착하여 텍스트의 장기적 문맥 정보를 인코딩합니다.
CBHG 블록이란?
- Convolution Bank: K개의 서로 다른 크기(1~K)의 1D 합성곱 필터 세트. 다양한 길이의 n-gram을 동시에 포착
- Highway Network: 게이팅 메커니즘으로 정보 흐름을 제어하는 Fully Connected 레이어
- Bidirectional GRU: 양방향 순환 신경망으로 시퀀스의 전후 문맥을 모두 반영
이 세 가지를 결합하여 로컬 패턴(합성곱)과 글로벌 문맥(GRU)을 모두 학습할 수 있습니다.
Attention: 텍스트와 음성의 정렬
Attention 메커니즘은 디코더가 매 타임스텝마다 인코더 출력의 어떤 부분에 집중할지 결정합니다. 사람이 문장을 읽으며 하나씩 발음하는 것처럼, attention이 텍스트의 각 문자와 출력 오디오 프레임 간의 정렬(alignment)을 학습합니다.
Tacotron 1에서는 Bahdanau attention(additive attention)을 사용합니다:
- : 디코더의 이전 hidden state
- : 인코더의 j번째 출력
- : attention weight (텍스트의 j번째 문자에 대한 가중치)
Decoder: 멜 스펙트로그램 생성
Decoder는 attention context와 이전 프레임 정보를 기반으로 멜 스펙트로그램 프레임을 autoregressive하게 생성합니다.
- Pre-net: 이전 타임스텝의 출력 프레임을 Pre-net(2층 FC + Dropout)에 통과
- Attention RNN: GRU 셀을 사용하여 attention context vector를 생성
- Decoder RNN: attention context와 Pre-net 출력을 결합하여 멜 스펙트로그램 프레임을 예측
- Reduction Factor (r): 한 번에 r개의 프레임을 동시에 생성하여 디코딩 속도를 높임 (논문에서는 r=5 사용)
Reduction Factor의 효과
r=5로 설정하면 디코더의 반복 횟수가 1/5로 줄어들어 학습과 추론 속도가 크게 향상됩니다. 동시에 attention 학습도 쉬워지는데, 정렬해야 할 타임스텝 수가 줄어들기 때문입니다.
Vocoder: Griffin-Lim
Tacotron 1의 출력층은 Griffin-Lim 알고리즘을 사용합니다. 멜 스펙트로그램에서 오디오 파형으로 변환해주는 vocoder로, 별도의 학습 없이 사용할 수 있는 고전적인 알고리즘입니다.
Griffin-Lim 알고리즘
- 멜 스펙트로그램 → 리니어 스펙트로그램 (Post-net CBHG로 변환)
- 리니어 스펙트로그램 → 오디오 파형 (반복적 위상 추정)
- 학습이 필요 없는 신호 처리 기반 방식
- 단점: 위상 정보 손실로 인한 음질 저하 ("금속성" 느낌)Tacotron 2 아키텍처
Tacotron 2는 Tacotron 1의 구조를 단순화하면서도 음질을 크게 향상시킨 모델입니다. 핵심적인 변경 사항은 CBHG 블록을 LSTM + Convolution으로 교체하고, Griffin-Lim 대신 WaveNet vocoder를 도입한 것입니다.
주요 구성 요소
Tacotron 2는 크게 두 부분으로 나뉩니다:
- Feature Prediction Network: 입력 문자 시퀀스로부터 멜 스펙트로그램 프레임을 예측하는 attention 기반 seq2seq 네트워크
- Modified WaveNet: 예측된 멜 스펙트로그램을 시간 도메인 파형(time-domain waveform)으로 합성하는 vocoder
이 두 구성 요소를 멜 스펙트로그램으로 연결합니다. 멜 스펙트로그램은 시간 도메인 파형으로부터 쉽게 계산할 수 있고, 더 낮은 차원으로 주파수 내용을 요약하며, WaveNet이 고품질의 오디오를 생성할 수 있도록 합니다.
Encoder (Tacotron 2)
Tacotron 2의 인코더는 Tacotron 1의 CBHG 블록 대신 3층 1D Convolution + Bidirectional LSTM 구조를 사용합니다.
- Character Embedding: 512차원 임베딩 벡터로 변환
- 3개의 Convolution Layer: 각 레이어는 512개의 5×1 필터를 사용하며, Batch Normalization + ReLU 활성화 함수를 적용합니다. N-gram 패턴을 포착하는 역할을 합니다.
- Bidirectional LSTM: 512 유닛(각 방향 256)의 양방향 LSTM으로 시퀀스의 전후 문맥을 모두 반영한 인코딩 특징을 생성합니다.
Attention (Tacotron 2)
Tacotron 2에서는 기존의 additive attention 대신 Location-Sensitive Attention을 사용합니다. 이전 타임스텝의 누적된 attention weight를 추가 입력으로 사용하여, 모델이 텍스트를 순방향으로 일관되게 읽어나가도록 유도합니다.
이 방식은 attention이 앞뒤로 왔다갔다 하거나, 특정 부분을 건너뛰는 문제를 줄여줍니다.
Decoder (Tacotron 2)
- Pre-net: 2층 Fully Connected(256차원) + Dropout. 이전 멜 스펙트로그램 프레임을 bottleneck으로 처리
- 2층 LSTM: 1024 유닛의 uni-directional LSTM 2개를 적층. Tacotron 1의 GRU 대신 LSTM을 사용하여 장기 의존성 학습 능력 향상
- Post-net: 5층 1D Convolution으로 구성된 후처리 네트워크. 멜 스펙트로그램의 전체적인 품질을 향상시키는 잔차(residual)를 예측
- Stop Token Prediction: 시그모이드 출력으로 시퀀스 종료 시점을 예측하여 자동으로 생성을 멈춤
Vocoder: WaveNet
Tacotron 2에서 가장 큰 변화는 vocoder를 WaveNet으로 교체한 것입니다. Griffin-Lim의 "금속성" 음질 문제를 완전히 해소하고, 사람에 가까운 자연스러운 음성을 생성할 수 있게 되었습니다.
WaveNet이 뭔지 궁금하다면?
WaveNet은 DeepMind이 개발한 자기회귀 모델로, 원시 오디오 파형을 샘플 단위로 직접 생성합니다. Dilated Causal Convolution 구조로 넓은 수용 영역을 확보하면서도 효율적으로 동작합니다. Tacotron 2에서는 멜 스펙트로그램을 조건으로 받아 오디오를 생성하는 Modified WaveNet을 사용합니다.
Modified WaveNet의 주요 변경 사항:
- 30개의 Dilated Convolution 레이어 사용 (10개 레이어 × 3 사이클)
- 멜 스펙트로그램을 Local Conditioning으로 주입
- 8-bit µ-law 대신 Mixture of Logistics(MoL) 분포를 사용하여 더 높은 음질 달성
Tacotron 1 vs Tacotron 2 비교
구분 | Tacotron 1 | Tacotron 2 |
Encoder 구조 | CBHG 블록 (Conv Bank + Highway + GRU) | 3층 1D Conv + Bidirectional LSTM |
Decoder 구조 | GRU 기반 RNN + CBHG Post-net | 2층 LSTM + 5층 Conv Post-net |
Attention | Bahdanau (Additive) Attention | Location-Sensitive Attention |
Vocoder | Griffin-Lim (신호 처리 기반) | Modified WaveNet (신경망 기반) |
출력 | 리니어 스펙트로그램 → 오디오 | 멜 스펙트로그램 → WaveNet → 오디오 |
학습 방식 | Tacotron 모델만 학습 | Feature Prediction + WaveNet 두 모델 학습 |
MOS 점수 | 3.82 | 4.526 (사람 음성: 4.582) |
핵심 기여 | End-to-end TTS의 가능성을 입증 | 사람 수준에 근접한 음성 품질 달성 |
학습 방법의 핵심 차이
- Tacotron 1: Griffin-Lim 알고리즘을 출력층으로 사용하여 Tacotron 모델 자체를 학습하는 것이 중점. 내부 인코딩/디코딩에 CBHG 블록(CNN 기반)을 사용
- Tacotron 2: 출력층을 WaveNet으로 교체하여 두 모델(Feature Prediction + WaveNet)을 모두 학습. 내부 인코딩/디코딩에 LSTM을 적용하여 구조를 단순화
성능 평가
Tacotron 2는 MOS(Mean Opinion Score) 테스트에서 4.526점을 달성하여, 전문적으로 녹음된 사람 음성(4.582점)과 거의 동일한 수준의 자연스러움을 보여주었습니다.
모델 | MOS 점수 | 비고 |
Parametric TTS | 3.49 | 기존 통계적 방식 |
Concatenative TTS | 4.09 | 음성 조각 이어 붙이기 |
Tacotron 1 + Griffin-Lim | 3.82 | End-to-end, 신호 처리 vocoder |
Tacotron 2 + WaveNet | 4.526 | End-to-end, 신경망 vocoder |
사람 음성 (Ground Truth) | 4.582 | 전문 녹음 음성 |
Ablation 연구
모델의 다양한 구성 요소를 변경하여 실험한 결과, 다음과 같은 인사이트를 얻었습니다:
- 멜 스펙트로그램을 중간 표현으로 사용하는 것이 리니어 스펙트로그램보다 효과적
- Post-net 추가 시 멜 스펙트로그램 품질이 유의미하게 향상
- WaveNet의 레이어 수를 줄여도(30 → 12) 고품질 오디오 생성 가능
- Location-Sensitive Attention이 기존 attention 대비 안정적인 정렬 학습을 보임
한계점
Tacotron이 TTS 분야에 큰 혁신을 가져왔지만, 몇 가지 명확한 한계점이 존재합니다:
- 느린 추론 속도 🐌: Autoregressive 방식이라 한 프레임씩 순차적으로 생성해야 함. 실시간 서비스에 직접 적용하기 어려움
- Attention 불안정성 ⚠️: 긴 문장이나 반복적인 구절에서 attention이 정렬을 잃어 단어를 건너뛰거나 반복하는 문제 발생
- 대규모 학습 데이터 필요 💰: 자연스러운 음성을 위해 수십 시간 이상의 고품질 단일 화자 데이터 필요
- WaveNet vocoder의 느린 속도: Tacotron 2의 WaveNet도 autoregressive라 생성이 느림
이후 발전
이 한계를 극복하기 위해 다양한 후속 연구가 등장했습니다:
- FastSpeech (2019): Non-autoregressive 구조로 수백 배 빠른 추론 속도 달성
- FastSpeech 2 (2020): Duration Predictor 개선으로 품질과 속도 모두 향상
- VITS (2021): End-to-end로 vocoder까지 통합, Flow 기반 생성
- WaveGlow (2018): Flow 기반 vocoder로 WaveNet 대비 실시간 생성 가능
현재 프로덕션 TTS 시스템에서는 Tacotron 계열보다 FastSpeech 2 + HiFi-GAN 또는 VITS 조합이 더 많이 사용되고 있습니다.
핵심 정리
✅ End-to-End TTS: 텍스트에서 음성을 직접 생성, 복잡한 전처리 파이프라인 제거
✅ Tacotron 1: CBHG 블록 + GRU + Griffin-Lim vocoder로 end-to-end TTS의 가능성을 입증
✅ Tacotron 2: LSTM + Location-Sensitive Attention + WaveNet vocoder로 사람 수준의 음질 달성
✅ Encoder: 문자 임베딩 → Conv 레이어 → Bidirectional RNN으로 텍스트의 문맥 정보 인코딩
✅ Attention: 텍스트와 오디오 프레임 간의 정렬을 학습하여 순차적 생성을 가이드
✅ Decoder: Autoregressive하게 멜 스펙트로그램을 프레임 단위로 생성
✅ MOS 4.526: Tacotron 2는 사람 음성(4.582)과 거의 동일한 자연스러움을 달성
✅ 한계: 느린 추론 속도와 attention 불안정성 → FastSpeech, VITS 등 후속 연구로 극복 중