일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 에비스 맥주 기념관
- DeepLearning
- Azure Linux VM
- cinder-volume
- 편의점 당고
- offscreen-rendering
- c-vol.service
- scratchapixel
- 일본 혼자 여행
- 시부야 여행
- vogl
- 학부생
- lvmdriver-1
- 군입대 전 여행
- 논문리뷰
- cloudvm
- graphics programming
- frame stack
- OpenStack
- Azure Ubuntu VM
- headless server
- 도쿄여행
- 에비스 맥주
- GoogleCloud
- 혼자여행
- OpenGL
- devstack
- Azure Linux
- OSMesa
- 도쿄 혼자 여행
- Today
- Total
사월의눈의 DevBlog
컴공학부생이 읽어보는 논문감상 - Tacotron : Toward End-To-End Speech Synthesis (2) 본문
컴공학부생이 읽어보는 논문감상 - Tacotron : Toward End-To-End Speech Synthesis (2)
Snowapril 2017. 10. 25. 17:13 Tacotron : Toward End-To-End Speech Synthesis을 읽고 쓰는 리뷰 아닌 감상문.
※주의사항. 필자는 논문을 많이 읽어본 적이 없으며 전문지식 또한 그렇게 많지 않은 편인 1학년 학부생입니다. 흥미위주로
읽고 그에 대한 감상문을 쓰는 정도임을 알아주었으면 합니다.
이전 게시물에서는 제가 이 논문을 읽게된 배경과 이 논문의 소개 및 장단점을 소개하고 Model이 어떤 Network들로 구성되어 있는지를 보여드리고 마쳤습니다.
이번 게시물에서는 각각의 Network에 대한 Detail을 기록하고자 합니다.
1) Encoder CBHG Module.
(Figure 1. Encoder CBHG Module)
Encoder란?
한글 또는 영어로 구성된 문장의 정보를 가장 잘 나타내는 숫자의 배열로 나타내어 주는것을 Encoding이라 합니다.
그 일련의 과정을 하는 장치를 Encoder라 하죠.
위의 모듈은 주어진 텍스트를 Encoding하기 위한 장치인데 먼저 문장이 주어지면 아래의 Character embedding 단계에서
각각의 글자가 그 글자를 나타내는 숫자의 배열로 변환됩니다.
그리고 변환된 인풋이 Pre-net과 CBHG network를 거치면 주어진 Input 텍스트를 가장 잘 나타내는 Text Embedding을 얻을 수 있습니다.
Pre-net 구성은 FC(Dense) - ReLU - Dropout - FC - ReLU - Dropout
CBHG network구성은 Conv1D bank - Max Pooling - Conv1D projection - Conv1D Layer,
Conv1D Layer + First Input -> Highway Net(4 layers of FC-ReLU) - Bidirectional RNN
이로써 주어진 Input 텍스트를 잘 나타내어주는 Text Embedding을 얻었습니다.
3) Decoder
(Figure2. Decoder)
크게보면 RNN과 비슷해보입니다.
(Figure3. 참고용 RNN)
먼저 왼쪽의 Attention은 건너뛰고 처음 Input으로 <GO> frame은 Input에 상관없이 똑같은 값이며 Output 스펙트로그램의 마지막 frame이 다음의 Input으로 들어갑니다. 그리고 각각의 RNN에 대한 결과가 다음 Layer의 RNN의 Input으로 들어갑니다.
이렇게 기존의 RNN과 달리 각각의 decoder layer input에 대해 겹치지 않는 input을 사용하는것이 model size, training time 그리고 inference time의 속도를 향상 시켜줄 뿐만 아니라, 모델의 수렴 속도(convergence time)를 향상 시켜준다고 합니다.
이렇게 주어진 Text의 Text Embedding에 대한 스펙트로그램을 얻어냈습니다.
3) Post-Processing Net and Waveform Synthesis (Vocoder)
(Figure4. Post-Processing Net and Waveform Synthesis)
Decoder를 거친 Spectrogram들을 Voice로 만들어내는 과정입니다.
Spectrogram들을 다시 CBHG 모듈(param만 바뀌고 똑같은 네트워크)을 거쳐 Spectrogram으로 Voice를 만들어내는 알고리즘인 Giffin-Lim을 거쳐 음성을 만듭니다.
논문에서는 모델의 simplicity를 위해서 택했지만 성능 또한 괜찮게 나온다고 합니다.
4) Attention , Tacotron에서 가장 중요한 부분.
(Figure5. Attention RNN)
Attention, 주어진 텍스트에서 어느 부분에 집중을 할것인가
Attention RNN을 넣은것이 모델의 Generalization(일반화)에 도움이 된다고 합니다.
모델의 일반화란, "학습되지않은 문장에 대해 얼마나 좋은 성능을 보여줄수 있는가" 를 뜻합니다.
Attention RNN의 구성 1-layer GRU(256 cells)
참고문헌.
1.Tacotron : Toward End-To-End Speech Synthesis
2.책 읽어주는 딥러닝 : 배우 유인나가 해리포터를 읽어준다면 DEVIEW 2017
'DeepLearning > Paper Review' 카테고리의 다른 글
컴공학부생이 읽어보는 논문감상 - Comicolorization : Semi-automatic manga colorization (0) | 2019.05.17 |
---|---|
컴공학부생이 읽어보는 논문감상 - Tacotron : Toward End-To-End Speech Synthesis (1) (0) | 2017.10.23 |