본문 바로가기

전체 글

(23)
Expressive TTS and prosody transfer 중립적 발화(감정 표현이나 개성 표현이 없는 발화)에 대한 합성기의 자연성이 확보된 이후, 감정, 억양 등의 요소를 컨트롤해 좀더 몰입도 있는 합성음을 만들어 오디오북이나 모바일 어플리케이션, 유튜브 컨텐츠 제작 등에 활용하고자 하는 수요가 발생하였다. 본 보고서에서는 이 중 5가지 접근에 대해 비교 분석을 하고자 한다. 이 보고서와 여타 논문에서는 개성표현을 위한 특성으로 프로소디(prosody)와 스타일( style)이라는 단어를 혼용해서 사용한다. 연구에서 사용하는 프로소디 또는 스타일이라는 표현은 주관적 판단의 영역이니만큼 연구자마다 조금씩 편차가 있으므로 논의를 시작하기에 앞서, 프로소디 또는 스타일의 의미를 표명하겠다. 앞으로 이 보고서에서 사용될 프로소디 또는 스타일이라는 용어는 첫번째 소개..
torch mm, bmm, matmul 차이 위의 세가지 함수들은 모두 사용법이 다르고 사람들마다 자기 편한대로 맞게만 쓰면 되지만, 내가 위의 세가지 함수들을 쓰는 경우는 다음과 같다. 우선, 나는 matmul은 잘 쓰지 않는다. 왜냐면 matmul은 너무 많은 것을 내부적으로 구현해놨고, 이에 따라 내가 헷갈릴 수도 있다. 최대한 explicit하게 코드를 쓰는것을 지향하기 때문에 matmul은 불가피한 경우가 아니면 쓰지 않는다. mm은 matrix multiplication으로, [n, m] x [m,p] = [n,p] 를 구현한다. bmm은 batch matrix multiplication으로, 두 operand가 모두 batch일 때 사용한다. [B, n, m] x [B, m, p] = [B, n, p] matrix가 아니고 벡터는? m..
Tensorboard와 OSError: [Errno 12] Cannot allocate memory 에러 Project를 하면서 여러 변수를 바꿔보고 모델도 바꿔보고 꽤 많은 것을 시각화 하고 있다. 그랬더니 Tensorboard가 memory를 85% 잡아먹으면서 swap memory까지 꽉차서 모델 inference 시에 "OSError: [Errno 12] Cannot allocate memory" 에러가 났다. Swap memory를 늘릴까도 했지만 이미 59G인데 그렇게까지 해야하나 싶어서 tensorboard를 잠시 중단하고 inference함으로써 문제를 해결했다. 이 문제로 성가신 일이 또 발생하면 swap memory를 늘려야지. 아래는 swap memory 늘리는 방법을 자세히 적은 블로그 글이다. https://www.digitalocean.com/community/tutorials/ho..
shutil 패키지를 이용해서 python에서 파일 복사/이동/삭제하기 Shell command Python method cp src dst shutil.copy(src, dst) mv src dst shutil.move(src, dst) cp -r src dst shutil.copytree(src, dst) rm -r src shutil.rmtree(src) rm src os.remove(src) shutil에 rm은 없어서 os.remove()를 써야 함. src나 dst가 상대경로이거나 dir이거나 file이거나 등등의 상황들은 shell command에서 사용하는 방법과 동일해서 적지 않았음. 이 글은 shell command에 익숙한 사람(나)을 위해 썼음.
E2E TTS에서 postnet이 필요한 이유 처음에 Tacotron에서는 griffin-Lim vocoder를 사용했으니, postnet을 써서 mel spectrogram을 linear spectrogram으로 바꿨지만, 그 이후에 Grifiin-Lim vocoder를 안쓰는 시스템에서도 대부분 postnet을 쓴다. 그 이유는! decoder가 프레임 예측을 causal하게 했기 때문에! non-causal하게 convnet을 사용해 backward context까지 반영하려고 postnet이 필요한 것이다.
Japanese/Korean/Vietnamese Corpus http://www.hieuthi.com/blog/2018/04/22/speech-japanese-korean-vietnamese.html 불러오는 중입니다...
특정 git branch만 clone하기 git clone -b {branch_name} --single-branch {저장소 URL} 예시. git clone -b relative_f0 --single-branch http://github.com/hash2430/mellotron
git rest을 이용해 unstage하거나 unroll하기 1. Stage되지 않은 변경 사항들을 날리기 git checkout -- . 2. Unstaging git reset HEAD {file_name} 3. Unroll soft git reset HEAD~1 --soft 방금 전 커밋을 unroll하되 그 커밋에 해당하는 변경 사항은 local directory에 남겨 둔다. HEAD~1의 자리에 특정 리비전을 명시하면 그 커밋으로 돌아감. 4. Unroll hard git reset HEAD~1 --hard 방금 전 커밋을 unroll하고 그 커밋에 해당하는 변경 사항도 local directory에서 날려 버린다. HEAD~1의 자리에 특정 리비전을 명시하면 그 커밋으로 돌아감.