TTS #딥러닝
FastSpeech1, 2
[5]Non-Autoregressive TTS Models [FastSpeech] 기존 모델의 한계: (1)Attention 불안정성 문제들이 그 전에 해결이 되지 않았었다. (2)느리고, 에러가 누적된다. 해결법: Non-autoregressive model을 사용하는 것이다. 그 결과 270배가 빨라 졌다. Phoneme duration predictor 가 매우 중요한다. 이 개념이 attention의 필요를 없앴다. TTS는 phoeneme이 embedding이 된다. 그리고 positional embedding이 더해져서, 위의 레이어로 쭉 올라가서 맨 마지막에 spectrogram이 나온다. 출력되는 mel의 길이는 매우 길지만, phoneme의 길이는 캐릭터의 길이는 매우 짧다. 그렇기 때문..
Transformer TTS
[4]Transformer TTS [Transformer 전체 구조] 1)CNN이나 RNN없이 어텐션 만으로 모든게 다능하다. 2)input과 output의 디펜던시가 글로벌하다. *** CNN은 지역적, RNN은 멀수록 흐려진다. 3)병렬화가 잘된다. 4)reduced effective resolution(단점): 보안책: 어텐션을 하나가 아니라 여러개를 쓰려고 한다. 트랜스포머 공부 사이트: illustrated-transformer(설명), annotated transformer(소스코드) [Transformer의 동작 방식] Encoder로 여러 블럭을 쌓는다. 최상위 인코더에서 나오는 임베딩이 디코더의 모든 레이어로 가고, 그 값을 받아서 위로 propogate하게 된다. autoregressi..
[3]Encoder-Decoder TTS_2
[3]Encoder-Decoder TTS Models2 [DeepVoice1] 1)text가 들어오면, grapheme 이라고 볼 수 있는데 이걸 phoneme으로 바꾼다. 이 과정에는 phoneme dictionary라는 것이 필요하다. 2)Phoneme의 sequence로 부터, 각 phoneme의 길이가 얼마나 되어야 하는가 그 부분을 수정한다. 3)또 한가지는 그 phoneme을 발음 하기 위한 F0(pitch)를 설정한다. 4)이렇게 세가지를 받아서, 이제 오디오를 합성한다. 학습은 과정: 1)text가 우선 들어온다. text는 phoneme으로 바꾸고 이 과정은 neural net을 사용하지 않고, phoneme dictionary를 이용해서 진행이 된다. 2)오디오와 phoneme간에 ma..
[2]Encoder-Decoder TTS_1
[2]Encoder-Decoder TTS Models1 [Deep Learning Architectures] 음성쪽에서 주로 많이 사용하는 툴: (시퀀스라 병렬처리x) RNN이 처음에는 많이 사용되었었다. 2017년도에 처음으로 CNN이 사용되었고, 병렬처리가 되어서 훨씬 빠르다. Attention models - Transformer로 요즘은 자연어 처리 모델이 이루어져 있다. [RNN]: 시간 순서대로 들어오는 정보를 처리하기 위해서 설계된 네트워크. 주로 앞뒤의 상호 관계를 같이 봐야하는 그런 문제들에 이용된다. RNN에는 recurrent connection이 있고, 이것은 과거에 히든 정보를 다음 스테이트로 전달해준다. 확률값을 만들기 위해서 softmax를 씌워준다. [LSTM]: RNN은 l..