Abstract
본 논문은 2017년 NIPS 학회에 발표된 Emotional Speech Synthesiszer 논문이다.
당시 Tacotron의 단점(exposure bias, attention alignment irregular 등)을 보완하면서, 감정 레이블을 반영하여 감정을 대입한 높은 수준의 완성도를 보이는 음성합성기를 발표했다.
Introduction
제시하는 이 모델은 감정이 추가되고, Tacotron의 end-to-end을 기반으로 한 음성합성 모델이다.
기존 Tacotron에는 exposure bias(노출 편향) 문제와 attention alignment가 불규칙한 문제가 존재한다. 본 논문에서는 문제를 Decoder RNN에서 context vector와 residual connection을 활용하여 해결했다.
(exposure bias: 특정 단계의 잘못된 결과가 전범위적으로 영향을 미치는 경우)
Emotion Synthesizer 개요
기존 Tacotron에 학습된 emotion embedding을 추가 적용함으로써 구현했다.
AttentionRNN과 DecoderRNN에 각각 emotion embedding을 적용하는 것이다.
아래 내용 이외의 경우, 기존 Tacotron과 같은 방향성을 가졌기에 링크를 참고하면 된다.
https://hwrg.github.io/posts/딥러닝-기반의-음성합성-모델-Tacotron/
Attention 기반 Decoder
기존 Tacotron의 RNN 스택은 content기반 tanh attention과 함께 사용된다.
Decoder는 동일하게 Pre-net → Attention RNN → Residual connection RNN 구조를 가진다.모든 미니 배치에 대한 input은 0인 GO frame으로 제공된다.
Pre-net의 과정은 다음과 같다.
1) output과 attention input 크기가 일치하도록 projection 진행
2) 1을 위해 레이어를 하나 추가해 one-hot emotion label vector의 projection을 추가
3) 동일한 injection이 decoder RNN의 첫 번째 레이어에서 수행,
현재 시점에 생성된 spectrogram에 감정 추가기존의 타코트론은 decoder가 train에선 직전의 정보를 바탕으로 한 번에 하나의 출력을 예측할 수 있는데, test에는 이전 정보를 활용할 수 없다는 단점이 있다.
이렇게 될 경우 오류가 빠르게 누적되고 긴 음성을 생성할 경우 엉망으로 생성된다.Exposure biased 문제는 encoder 상태와 decoder 시간 단계에 지저분한 패턴을 만든다.
→ 분리성, attention 정렬 X
(Encoder timestep이 증가할수록 Decoder timestep도 증가하는 것이 정상
But 불일치하여 그림과 같이 대각선으로 가다가 흐릿한 직선으로 변화)이를 해결하기 위해 단조로움을 추가하여 더 깨끗한 패턴을 생성해내어 정렬할 수 있는 Raffel의 알고리즘*을 적용했다.
STFT(Semi-Teacher-Forced-Training)
Seq2Seq 구조에서 t 시간에서 decoder의 input은 이전 단계 yt-1의 spectrogram 프레임이다. 만약 이전 프레임에 노이즈가 발생하면 이를 그대로 사용할 경우, exposure biased 문제가 발생한다.
그래서 본 논문은 y1과 yt-1의 평균을 decoder에 input으로 제공하여 문제를 덜어내고자 했다.
*Online and linear-time attention by enforcing monotonic alignments
Residual Connections in CBHG
Attention의 예측을 개선하기 위해 text input을 Encoding하는 과정에서 살짝 변경한다.
CBHG 모듈에서 마지막 단계의 Bi-direction RNN의 hidden state의 크기 고정 문제가 존재한다.
만약 sequence가 길 경우, hidden state의 긴 정보를 다 감당할 수 없다. (장기 의존성 포함 X)
이런 긴 문장의 불안정한 CBHG의 RNN을 보완하기 위해, 저자는 input과 output을 연결하는 residual Connection을 추가하는 아이디어를 제시했다.
이에 따라 CBHG의 output이 additional term \(x_{t}\) 갖도록 변경했다.
Experiments
텍스트, 오디오, 감정 level 묶음을 포함한 한국 데이터셋에 Emotion Tacotron 학습을 진행한다.
중립, 분노, 두려움, 행복, 슬픔, 놀라움 6가지 감정으로 뉴스 읽기를 하여 21시간 데이터셋을 확보했다. 행복의 경우 다른 스크립트가 영향을 미치지 않아 포함하지 않았으며, Web RTC 음성 활동 검출기를 활용하여 음성이 빈 부분을 제거했다.
끝의 음성을 중요히 훈련하기 위해 문장 끝에 padding된 0에 masking을 하지 않고 진행한다.
아래 링크를 통해 데모를 확인할 수 있다.
Conclusion
문자 sequence와 다양한 emotion을 입력으로 wave 신호를 생성하는 end-to-end 합성 Tacotron을 제안했다.
실험을 통해 음성 품질이 alignment의 정렬과 clearness가 밀접한 관계가 있음을 확인할 수 있다.
https://github.com/AzamRabiee/Emotional-TTS