본문 바로가기

전체 글

(133)
Flow Matching 설명 Introduction 디퓨전 계열이 생성 모델에서 엄청난 성능을 보여주며 주류가 되어 버린지는 한참 되었다. 그러나 여러 번에 걸친 샘플링이 디퓨전 모델의 좋은 성능을 만들어 주는 것처럼 보이지만 이는 동시에 추론 속도가 느려진다는 뜻이다. 그래서 디퓨전 모델보다 더 빠르고, 더 좋은 모델을 만들어 보려는 연구는 꾸준히 존재했고 Flow Matching은 그런 연구 중 하나다. Flow Matching을 제안하는 논문은 동 시기에 여러개가 등장했으며 Flow Matching for Generative Modeling 논문은 그 중의 하나이다. 추가로, 최근 Stable Diffusion3가 Flow Matching 기반의 모델이라고 해서 좀 더 관심을 한번 더 모으고 있는 것 같다. 이 글은 Flow ..
so-vits-svc 구조 정리 2023년 7월 1일의 svc-develop-team/so-vits-svc v4.1 기준으로 쓴 글입니다. https://github.com/svc-develop-team/so-vits-svc/tree/76128e95ec09a5adcf4d6b233bc5c8ef78cce377 GitHub - svc-develop-team/so-vits-svc: SoftVC VITS Singing Voice Conversion SoftVC VITS Singing Voice Conversion. Contribute to svc-develop-team/so-vits-svc development by creating an account on GitHub. github.com 소개 중국 쪽 커뮤니티에서 시작된 프로젝트로 Singi..
WSL에서 GPU를 쓰면 우분투보다 느려질까? WSL 2랑 우분투에서 https://github.com/pytorch/benchmark 이 곳의 코드를 돌린 결과 비교글입니다. 환경 통제를 정확히 한게 아니라 성능 차이가 있긴 하구나 정도로 봐주세요. 결과만 보려면 바로 스크롤 내리시면 됩니다. 잡설 GPU를 사용해서 딥러닝 학습 환경을 구축 한다면 기본은 리눅스를 사용한다. 그것도 보통 ubuntu에서 진행할 것이다. 이게 마음에 안들어도 어쩔 수 없다. CUDA와 cuDNN 버전에 쳐맞고 드라이버 버전에 쳐맞고 하다보면 도커를 찾게 되며, GPU와 도커를 같이 쓰려면 리눅스 네이티브를 써야했다. 이런 상황에 WSL 2에서 GPU를 지원하고 심지어 도커랑 물려서 사용이 가능해졌다. 지원을 시작한지 아직 2년도 안됐던거 같다. 윈도우에서 이 세팅을 ..
fastapi에서 mongo db 사용할 때 _id 처리하기 fastapi는 pydantic을 사용하여 데이터 모델을 정의한다. mongo db의 경우 object id가 _id로 정의된다. 그래서 정수 a, b, c를 가지는 mongo db의 모델을 pydantic으로 정의한뒤 fastapi에서 쓴다고 치면 아래와 같이 정의를 해볼 수 있을 것이다. from pydantic import BaseModel class DataModel(BaseModel): _id: str a: int b: int c: int 아마 _id를 str이 아닌 objectID 같은 타입으로 선언할 거 같긴 한데 일단 str이라고 하자. 여기서 문제가 발생하는데 pydantic의 데이터 모델은 언더스코어(_)로 시작하는 변수를 private으로 간주하고 접근할 수 없게 해놓는다. 그래서 데..
연구프로젝트 샘플 데이터셋은 카이스트오디오북데이터셋(링크)을 사용했습니다. 모델의 학습은 ESPNet(링크)와 ParallelWaveGAN(링크)을 사용했습니다. 학습이 제대로 되진 않았지만 학습이 완료된 모델을 다운 받으시려면 여기서 확인해주세요. Tacotron2와 HiFiGAN, Finetuned HiFiGAN입니다. Ground Truth, baseline, augment 순입니다. 생성된 음성은 15 db씩 볼륨을 키운 상태입니다. Seen Speaker Same Utterance Text : 혼자 노래하면서 언덕에 올라서서 땀을 닦고 있을 바로 그때였어요. Text : 더 생동감 있는 표현이 됩니다. Text : 위태로운 상태에 있었다. Text : 해당 시민단체 측이 폭행을 가한 이들을 경찰에 고소한 사실이 ..
파이썬 f-string 템플릿으로 쓰기 파이썬에서 f-string 쓰는법 파이썬에서 f-string은 바로 evaluation이 이루어지기 때문에 템플릿처럼 사용이 불가능하다. 정 사용하려면 아래처럼 람다로 사용해야 한다. f-string을 raw text로 저장해두고 이를 사용해서 포매팅을 하는 것은 불가능해보인다. template = lambda name, handle : f'Current name is {name}, handle is {handle}' DB 서버가 죽었는지 체크하는 방법 지금 하고 있는 프로젝트에서 파이썬에서 MySQLdb를 이용해서 Mysql 서버에 요청을 보내는데 연결이 살아있는지, 쿼리가 이상한지를 체크해야 한다. 일단 쿼리가 이상한가를 체크하는 데에는 서버에 쿼리 날린 다음에 MySQLdb.ProgrammingEr..
Transfer Learning from Speaker Verfication to Multispeaker Text-To-Speech Synthesis 리뷰 1. Introduction 본 논문은 2018년 NIPS에서 발표된 Transfer Learning from Speaker Verfication to Multispeaker Text-To-Speech Synthesis입니다. 공식은 아니지만 유명한 구현체는 여기에 있습니다. 본 논문의 목표는 데이터를 적게 사용하며 많은 화자의 자연스러운 목소리를 만들 수 있는 TTS 시스템입니다. 특히, 훈련 도중에 모델이 보지 못했던 화자의 목소리를 추가적인 파라미터의 변경 없이 만들어 내는 것이 목표입니다. (Zero-shot Setting) 이를 위해 제안하는 방법은 Speaker Modeling을 담당하는 모듈을 분리하여 훈련시킨 뒤에 대상 화자의 목소리를 해당 모듈에 입력으로 넣어 출력으로 Speaker Em..
도커 스크립트에서 MySQL root 패스워드 없애기 mysql 컨테이너를 도커로 실행할 때 "-e MYSQL_ROOT_PASSWORD="처럼 루트 비밀번호를 그대로 쓰는 경우가 있다. Docker-Compose에서는 아마 저걸 그대로 쓰게 될텐데 비밀번호가 공개되는게 마음에 안들어서 저걸 안넣을 방법을 고민했다. 떠오른 방법은 호스트의 환경변수를 실행스크립트에 넣자는 거였다. 그래서 호스트 머신의 global 환경변수로 MYSQL_ROOT_PASSWORD를 넣어주기로 했다 환경변수를 global하게 추가하려면 /etc/profile.d/ 디렉토리에 스크립트를 넣어주면 된다. 설명을 보면 리눅스에서 부팅을 할 때 /etc/profile.d/*에 해당하는 스크립트를 한 번 실행한다고 한다. 링크 그래서 아래처럼 추가를 해줬다. mysql_passwd.sh에 ..