Tacotron 1
-
Tacotron 무지성 구현 - 8/NTacotron 1 2021. 11. 5. 00:29
오랜만에 포스팅하네요. tacotron1과 끝장을 보고 왔습니다. 이런저런 수정을 많이 거치면서 그동안 포스팅했던 코드를 다시 살펴봤습니다. 정말 가관이더라고요 천천히 수정할 예정이지만 그래도 나름 완성해본 코드를 github에 올려두었습니다. https://github.com/choiHkk/Tacotron/ GitHub - choiHkk/Tacotron Contribute to choiHkk/Tacotron development by creating an account on GitHub. github.com 제가 아직 git 사용을 잘 못해서 pre-trained 모델 업로드를 못 했는데 나중에 올릴 수 있으면 올려두겠습니다. 일단 spectrogram 생성은 아래와 같습니다. 원래 teacher fo..
-
-
Tacotron 무지성 구현 - 6/NTacotron 1 2021. 8. 2. 13:24
저번 포스팅에서 간단한 Tacotron 모델 구성을 끝냈습니다. 이번 포스팅에서는 학습과 관련된 코드를 구현해서 하나의 클래스로 관리할 수 있게끔 하는 것이 목표입니다. 필수적인 코드만 먼저 업로드하고, 부분적으로 설명한 뒤에 다음 포스팅에서 로깅과 관련된 코드도 추가해보도록 하겠습니다. Hyper Parameters import os, torch class Hparams(): # speaker name speaker = 'KSS' # Audio Pre-processing origin_sample_rate = 44100 sample_rate = 22050 n_fft = 1024 hop_length = 256 win_length = 1024 n_mels = 80 reduction = 5 n_specs = ..
-
Tacotron 무지성 구현 - 5/NTacotron 1 2021. 7. 30. 13:41
Decoder와 Post CBHG를 구현하다가 골머리 썩히고 왔습니다. 논문에서 Teacher Forcing을 사용하지 않은 줄 알았는데, 알고보니 사용했더라구요 :( Teacher Forcing을 사용하려면 Reduction Factor의 배수에 맞게 Pre-processing 부분에서 알맞게 패딩을 해줘야하는데 저는 이 부분에 대해서 진행하지 않았기 때문에 많은 에러를 접하고 왔습니다. 따라서 앞서 작성한 포스팅에는 일부 수정해두었으니, 참고 바랍니다. Hyper Parameters Encoder 포스팅에서 다뤘던 Hyper Parameters와 차이점은 decoder_rnn_dim 하나밖에 없습니다. 각 모듈마다 많은 인자를 다루면 그만큼 복잡해질뿐더러, 하나의 인자를 변경했을 때 많은 부분을 수정..
-
Tacotron 무지성 구현 - 4/NTacotron 1 2021. 7. 29. 01:03
이번 포스팅에서는 Encoder를 구현해보려고 합니다. Encoder의 Embedding, PreNet, CBHG 각 Layer들의 차원을 맞추는 과정에서 조금 어려운 부분이 있었습니다. 제가 헤맸던 부분은, Embeding Layer의 인자 중 하나인 embedding_dim을 고정된 값으로 생각해서 구현하다가 잘못된 것을 깨닫고 처음부터 다시 코드를 작성했습니다 :( 이 부분은 Decoder와 연관이 있을 것이므로 잘 생각해보고 구현해야 할 듯합니다. 전처리 부분은 그럭저럭 말로 설명이 잘 됐는데, Encoder를 포함한 앞으로 구현할 Decoder, Post CBHG 포스팅에서는 조금 난해한 설명이 있을 수도 있으니 양해 부탁드립니다. 작성되고 나서도 설명 부분은 제가 수정할 수 있으니 양해 바랍니..
-
Tacotron 무지성 구현 - 3/NTacotron 1 2021. 7. 27. 22:03
이전 두 개의 포스팅에서 오디오와 텍스트 전처리하는 코드를 살펴봤습니다. 이번 포스팅에서는 두 종류의 데이터를 전처리하면서 원하는 경로에 저장하는 코드를 추가해 불필요한 시간을 줄이고 학습에 바로 사용가능한 형태로 만들어보겠습니다. Hyper parameters 지금까지 사용한 인자들을 모두 다음과 같이 Hparams 클래스에 입력합니다. 이렇게 묶어두면 흔히 볼 수 있는 hparams.py 파일처럼 만들었을 때 불러오기도 편할 것 같습니다. 모델 구성이나 학습 과정을 설계할 때 필요한 인자들도 여기에 입력하면 됩니다. import os class Hparams(): # Audio Pre-processing origin_sample_rate = 22050 sample_rate = 22050 n_fft =..
-
Tacotron 무지성 구현 - 2/NTacotron 1 2021. 7. 27. 13:33
이전 포스팅에서 오디오 데이터를 Spectrogram과 Mel-Spectrogram으로 변환하는 방법까지 살펴보았습니다. 제가 포스팅하면서 모니터 한켠에 주피터 노트북을 띄어두고 코드를 작성했는데, 작성하다보니 좀 이상한 부분이 있었네요. 다음 코드 블럭에서 수정한 부분을 짚고 넘어갈테니 참고 바랍니다. Hyper Parameters class Hparams(): # speaker name speaker = 'KSS' # Audio Pre-processing origin_sample_rate = 44100 sample_rate = 22050 n_fft = 1024 hop_length = 256 win_length = 1024 n_mels = 80 reduction = 5 n_specs = n_fft //..
-
Tacotron 무지성 구현 - 1/NTacotron 1 2021. 7. 27. 00:12
저는 전공자가 아닙니다. 현업에서 사용되는 알고리즘과 전처리 방법 등은 이해하기 어려울 정도로 복잡하기 때문에 최대한 가볍게 시작해서 이해하고 기록하고자 시작했습니다. 저는 음악, 소리에 대해서 잘 모르기도 하고, 어디서 주워들은 걸 토대로 구글링 해서 논문을 보며 혼자 공부하고 있습니다. 따라서 제가 작성한 포스팅은 정확하지 않을 수 있습니다. 코드에서 틀린 부분이나 오개념 지적은 언제든지 환영입니다 :) Tacotron 논문 https://arxiv.org/abs/1703.10135 Tacotron: Towards End-to-End Speech Synthesis A text-to-speech synthesis system typically consists of multiple stages, such..