논문: Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions
저자: Jonathan Shen, Ruoming Pang, Ron J. Weiss, Mike Schuster, Navdeep Jaitly, Zongheng Yang, Zhifeng Chen, Yu Zhang, Yuxuan Wang, RJ Skerry-Ryan, Rif A. Saurous, Yannis Agiomyrgiannakis, Yonghui Wu
소속: Google, University of California, Berkeley
발표: ICASSP 2018
논문: https://arxiv.org/abs/1712.05884
오디오샘플: https://google.github.io/tacotron/publications/tacotron2/
- Tacotron 2, 즉 Tacotron[Wang17]의 두번째 버전
- recurrent seq2seq + attention을 사용하는 것은 Tacotron과 유사하지만 세부적인 모델이 제법 달라짐. 어쩌면 좀 더 간단하게 변한 듯.
- 마지막 보코더로 WaveNet을 사용(아마 예정된 운명).
- 그랬더니 MOS가 거의 Ground Truth와 비슷한 수준으로 나와버림.
Story
WaveNet[Oord16]이 좋은 품질의 오디오를 생성하긴 하지만, TTS시스템에서 사용하기 위해서는 별도의 입력(liguistic features, F0등)이 필요함. 이런 입력을 만들어내는 사실 쉬운 일이 아님. Tacotron[Wang17]에서는 이러한 입력이 필요하지 않고 캐릭터를 입력으로 주어 스펙트로그램을 만들어내는 시스템을 소개하였음(즉 end-to-end 모델). 그리고 오디오를 생성하기 위하여 Griffin-Lim 알고리즘[Griffin84]을 이용하였음. 이제 버전업을 시킬 단계임. WaveNet 보코더를 이용하고 완전 통째로 스피치 합성을 할 수 있는 모델을 제안함.
사실 Deep Voice 3[Ping18]에서도 비슷한 접근법을 사용함. 하지만 제안하는 모델의 결과가 더 좋음. Char2Wav[Sotelo17]도 비슷한 end-to-end TTS 시스템을 제안했지만 모델 아키텍쳐는 완전히 다름.
Model Architecture
크게 두 컴퍼넌트로 나눌 수 있음. 먼저 recurrent seq2seq feature prediction network + attention 에서는 캐릭터 시퀀스를 입력으로 받아 멜 스펙트로그램 프레임을 만드는 부분이고, 다음으로 이 멜 스펙트로그램을 조건으로 받아 웨이브폼 오디오 샘플들을 만드는 WaveNet 부분이 있음. 전체 구조는 아래와 같음.
Intermediate Feature Representation
이 모델에서 low-level acoustic representation으로 멜스펙트로그램을 사용함. 그리고 중간 표현법으로 멜을 사용함으로써 두 컴퍼넌트를 별도로 훈련할 수 있음. 웨이브폼에서 쉽게 계산할 수도 있고, 웨이브폼보다 더 부드러워서 squared error loss로도 더 쉽게 훈련할 수 있음. 멜스케일 자체가 사람 청각 시스템을 고려해서 만든 모델이기 때문에 스피치 관련된 연구에서 사용하기에 적절함. 또한 오디오를 스펙트로그램으로 바꾸는 것 자체가 데이터 손실이 있을 수 밖에 없지만 그럼에도 좋은 품질의 오디오를 생성할 수 있음.
Spectrogram Prediction Network
인코더와 디코더로 구성된(+어텐션) 네트워크임. 인코더는 캐릭터 시퀀스를 hidden feature representation으로 바꾸고 디코더는 이를 스펙트로그램으로 바꿈. 인풋 캐릭터들은 학습된 512차원 케릭터 임베딩 공간 벡터로 변하고 3개의 convolution 레이어를 지남(512필터, 5개의 캐릭터 길이). 이 레이어들은 더 긴 context를 모델링하는 역할을 함. 결과 값들은 Bidirectional LSTM을 통과하여 encoded feature로 변경됨.
인코딩된 값은 이제 어텐션 네트워크에 들어가는데, 여기에서는 location-sensitive attention [Chorowski15]을 사용함. 이 어텐션 모델은 이전 디코더 타임 스텝의 어텐션 웨이트가 계속 cumulative되는 방식. 이러면 보다 일관되게 진행시킬 수 있음. 인풋과 location feature를 128차원 hidden representation으로 프로젝션시킨다음 어텐션 확률이 계산됨.
디코더는 autoregressive 방식의 RNN으로 구성됨. 이전 타임 스텝에서 얻어진 예측은 작은 pre-net(2 FC)을 통과함. 이런 pre-net은 information bottleneck으로 작용하여 어텐션을 배우는데 효과적임. pre-net의 결과와 어텐션의 context vector는 서로 연결되어 2개의 LSTM 레이어를 통과함. LSTM 레이어의 결과와 어텐션의 context vector는 linear projection되어 타겟 스펙트로그램 프레임을 예측하게 됨. 마지막으로 예측된 멜스펙트로그램은 post-net(5 레이어 convolution)을 통과하여 residual을 예측하게 함.
스펙트로그램을 예측하는 것과 별도로 디코더 LSTM 결과와 attention context는 스칼라 값으로 프로젝션되어 아웃풋 시퀀스가 완료가 되었는지를 예측하게 함. 이 'stop token'은 인퍼런스할 때 모델이 언제 생성을 끝내야 할지를 알려주게 됨. 참고로 원래 Tacotron에서는 CBHG라는 좀 복잡한 모듈을 사용했는데 여기에서는 더 간단한 바닐라 LSTM과 convolutional 레이어를 사용함.
WaveNet Vocoder
원래 WaveNet을 약간 변형하여 사용함. 먼저 스펙트로그램 프레임의 hop사이즈가 12.5ms 여서 업샘플링 레이어는 2개만 사용함. 그리고 Parallel WaveNet[Oord18]처럼 10개의 컴포넌트로 구성된 mixture of logistic distributions (MoL)을 사용함.
Experiments & Results
Training Setup: feature prediction network을 먼저 훈련하고 그 다음에 WaveNet을 별도로 훈련시킴. 데이터는 내부 데이터(24.6시간 여성 스피커의 영어 데이터)를 사용. 타겟 웨이브폼을 127.5배 스케일링 하는 등 이런저런 훈련 방법이 동원됨.
Evaluation
비교를 위해서 구글에서 사용중이던 두 모델 concatenative[Gonzalvo16]과 parametric[Zen16]을 이용함. 또한 원래 Tacotron(Griffin-Lim 버전)과 WaveNet에 linguistic features를 넣어서 만든 결과도 비교함. MOS 점수는 아래와 같음.
결과적으로 Tacotron 2이 다른 모델들을 다 이겼고, 거의 Ground Truth와 큰 차이가 안나는 점수를 받음.
또한 Ground Truth와 모델이 만든 오디오를 side-by-side로 비교도 해봄.
거의 동일하다는 응답이 가장 많았음. 전체 점수는 -0.270 +- 0.155 정도였음. 즉 Ground Truth보다는 품질이 떨어지는 결과를 얻었는데 가끔씩 발생하는 발음의 부정확함이 주된 원인이라고 생각됨.
Ablaton Studies
Predicted Features vs Ground Truth: WaveNet이 훈련할 때는 (이미 훈련된) feature prediction network이 예측한 스펙트로그램으로 훈련함. 만일 그렇게 하지 않고 Ground Truth 스펙트로그램으로 완전히 별도로 훈련을 시키면 어떻게 될까?
(당연한 결과이긴 하지만) 예측된 스펙트로그램으로 훈련을 시킨 후, 인퍼런스할 때도 예측된 스펙트로그램을 이용하는 것이 결과가 더 좋음. 만일 GT스펙트로그램으로 훈련을 시키면, 인퍼런스할 때도 GT스펙트로그램을 이용하는 것이 좋음. 보다 재미있는 결과는 GT로 훈련을 시킨 후, 인퍼런스할 때 예측된 스펙트로그램을 쓰면, 그 반대의 경우보다 결과가 더 떨어짐. 이는 예측된 스펙트로그램이 oversmooth되어 디테일이 떨어지는 경향이 있기 때문임.
Linear Spectrogram: 멜을 안쓰고 그냥 linear-frequency 스펙트로그램을 사용하면 어떻게 될까?
Griffin-Lim보다는 WaveNet이 확실히 더 좋은데, Linear와 Mel은 크게 차이는 안남. 그런데 멜이 약간 결과가 더 좋고, 차원의 수도 80 vs 1025이므로 멜을 사용하는 것이 확실히 더 좋은 선택임.
Post-Processing Network: 디코딩후에 과거와 미래 프레임들을 모두 고려해서 예측을 하기 위하여 convolutional Post-Processing 네트워크를 사용함. 그런데 사실 WaveNet에서도 convolutional layer를 쓰잖아. 그런데 구지 Post-Processing 네트워크가 필요함? 그래서 이를 빼고 해보니 MOS가 4.526에서 4.429로 떨어졌음. post-net은 필요한 걸로.
Simplifying WaveNet: 원본 웨이브넷에서는 linguistic feature를 이용하는데 반해 여기서는 멜을 이용하는데, 사실 멜은 기본적으로 long-term dependency도 어느정도 가지고 있는지라 receptive field를 좀 더 작게해도 되지 않을까 생각이 듬. 그래서 레이어수를 다르게 하여 receptive field를 다르게 만들어봤음.
결과적으로 레이어를 12개만 쓰더라도(그러면 10.5 ms의 receptive field를 가짐) 퀄리티의 저하가 별로 없었음. 레이어 수는 30개보다는 24개가 더 좋았음. 사실 [Arik17]에서도 오디오 퀄리티에 큰 receptive field가 그리 필수적이지는 않다고 하긴 했음. 하지만 dilation을 사용하지 않으면 레이어를 높게 쌓아도 오디오 품질이 많이 떨어졌음.
Tacotron 2에서는 Ground Truth에 거의 근접해지는 수준까지 왔음.
정말 몇 년 사이에 TTS의 발전속도는 ㅎㄷㄷ
- [Griffin84] D. W. Griffin and J. S. Lim, “Signal estimation from modified short-time Fourier transform,” IEEE Transactions on Acoustics, Speech and Signal Processing, pp. 236–243, 1984.
- [Chorowski15] J. K. Chorowski, D. Bahdanau, D. Serdyuk, K. Cho, Y.Bengio, “Attention-based models for speech recognition,” in Proc. NIPS, 2015, pp. 577–585.
- [Gonzalvo16] X. Gonzalvo, S. Tazari, C.-a. Chan, M.Becker,A .Gutkin, H. Silen, “Recent advances in Google real-time HMM-driven unit selection synthesizer,” in Proc. Interspeech, 2016.
- [Oord16] A. van den Oord, S. Dieleman, H. Zen, K. Simonyan, O. Vinyals, A. Graves, N. Kalchbrenner, A. W. Senior, and K. Kavukcuoglu, “WaveNet: A generative model for raw audio,” CoRR, vol. abs/1609.03499, 2016. [논문리뷰]
- [Zen16] H. Zen, Y. Agiomyrgiannakis, N. Egberts, F. Henderson, and P. Szczepaniak, “Fast, compact, and high quality LSTM-RNN based statistical parametric speech synthesizers for mobile devices,” in Proc. Interspeech, 2016.
- [Arik17] S. O. Arik, M. Chrzanowski, A. Coates, G. Diamos, A. Gibiansky, Y. Kang, X. Li, J. Miller, J. Raiman, S. Sengupta, and M. Shoeybi, “Deep voice: Real-time neural text-to-speech,” CoRR, vol. abs/1702.07825, 2017. [논문리뷰]
- [Sotelo17] J. Sotelo, S. Mehri, K. Kumar, J. F. Santos, K. Kastner, A. Courville, and Y. Bengio, “Char2Wav: End-to-end speech synthesis,” in Proc. ICLR, 2017. [논문리뷰]
- [Wang17] Y. Wang, R. Skerry-Ryan, D. Stanton, Y. Wu, R. J. Weiss, N. Jaitly, Z. Yang, Y. Xiao, Z. Chen, S. Bengio, Q. Le, Y. Agiomyrgiannakis, R. Clark, and R. A. Saurous, “Tacotron: Towards end-to-end speech synthesis,” in Proc. Interspeech, Aug. 2017, pp. 4006–4010. [논문리뷰]
- [Oord18] A.van den Oord, Y.Li, I.Babuschkin, K.Simonyan, O.Vinyals, K.Kavukcuoglu, G.van den Driessche, E.Lockhart, L.C.Cobo, F.Stimberg et al., Parallel WaveNet: Fast high-fidelity speech synthesis. ICML 2018. [논문리뷰]
- [Ping18] W.Ping, K.Peng, A.Gibiansky, S.O.Arık, A.Kannan, S.Narang, J.Raiman, J.Miller. Deep Voice 3: Scaling Text-to-Speech with Convolutional Sequence Learning. ICLR 2018. [논문리뷰]