안경잡이개발자

728x90
반응형

  구글 코랩(Google Colab)무료 GPU를 지원하는 구글의 개발환경 서비스다. 개인적으로는 딥러닝 테스트 코드를 돌려보거나 MNIST나 CIFAR-10과 같이 간단한 데이터셋을 학습할 때 효과적으로 사용할 수 있다고 생각한다. (물론 ImageNet과 같은 large-scale 데이터셋을 활용할 정도로 자원이 충분하지는 않다.) 구글 코랩에서는 깃허브(GitHub)와 쉽게 연동할 수 있는데, 깃허브에 저장된 노트북(notebook) 파일을 곧장 불러올 수 있다.

 

  1. 깃허브에 저장된 노트북 파일 불러오기

 

  깃허브에 저장된 노트북 파일을 불러오는 것은 간단하다. [노트 열기]를 누른 뒤에 [GitHub] 탭으로 이동한 뒤에 사용자를 입력한다. 이때 [비공개 저장소 포함] 버튼을 클릭하면 비공개(private) 저장소에 저장된 노트북 파일을 불러와 사용할 수 있다.

 

 

  개인적으로 간단한 소스코드는 노트북을 이용하는 경우가 많아서, 이것은 굉장히 유용하다. 구글 코랩 노트북 파일을 내보내기 할 때에도 비공개(private) 저장소로 한 번에 내보낼 수 있다. 또 다른 방법으로는 .ipynb 파일을 저장한 뒤에 GitHub에 업로드하는 방식을 사용할 수도 있다. 아무튼 Google Colab을 이용하면 GitHub과 하나의 .ipynb 파일을 이용해 연동을 수행하기에는 매우 편리하다고 생각한다.

 

  2. git clone 명령을 이용하여 Google Colab 내부로 소스코드 불러오기

 

  단순히 하나의 주피터 노트북(notebook) 파일만 이용한다면 앞서 언급한 방법을 사용할 수 있다. 하지만 특정한 저장소(repository)에 포함된 모든 소스코드를 Google Colab으로 불러와 사용하고 싶다면, git clone 명령어를 사용하는 것이 효과적이다. 이때 public repository라면 단순히 git clone 명령어를 사용할 수 있다. 하지만 private repository라면 SSH 키를 생성하고 깃허브(GitHub) 사이트에 등록할 필요가 있다.

 

  ▶ SSH를 이용해 깃허브(GitHub) 계정에 접근하는 방법: ndb796.tistory.com/561

 

SSH Key를 이용해 GitHub 계정의 저장소(repository) 코드에 접근하기

기본적으로 외부에 공개되면 안 되는 중요한 코드는 깃허브(GitHub)의 private repository에 저장하는 것이 일반적이다. 당연히 오픈소스 형태로 외부에 공개된 public repository라면 git clone 명령어를 이

ndb796.tistory.com

 

  위 포스트에 적힌 방법에 따라서 SSH 개인키와 공개키를 생성하여, 공개키를 깃허브(GitHub)에 등록하도록 하자. SSH 키가 등록된 이후에는 Google Colab 상에서 다음과 같은 코드를 실행하면 된다.

 

from google.colab import files

# 개인키 업로드
uploaded = files.upload()

# .ssh 폴더 생성 및 개인키 넣기
!mkdir -p ~/.ssh/
!mv id_rsa ~/.ssh/id_rsa
!chmod 400 ~/.ssh/id_rsa

# 알려진 호스트(known hosts)에 GitHub 호스트 주소 넣기
!ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
!ssh -T git@github.com

# private repository에서 소스코드 다운로드
!git clone git@github.com:ndb796/Watermarking-Deepfakes

 

  실제 Google Colab 상에서는 다음과 같이 실행할 수 있다. 매우 간단하게 깃허브(GitHub) 내부의 private repository에서 코드를 가져온 것을 확인할 수 있다.

 

728x90
반응형

728x90
반응형

  기본적으로 외부에 공개되면 안 되는 중요한 코드는 깃허브(GitHub) private repository에 저장하는 것이 일반적이다. 당연히 오픈소스 형태로 외부에 공개된 public repository라면 git clone 명령어를 이용해 전체 소스코드를 가져올 수 있지만, private repository에 저장된 소스코드는 가져오기 어렵다. private repository의 경우 SSH key를 이용해 소스코드를 가져오는 것이 일반적인데, 당연히 깃허브(GitHub) 내에서 SSH 키(key) 설정을 진행해야 한다.

 

  구체적인 과정은 ① SSH 개인키와 공개키를 생성한 뒤에, ② 내 GitHub에 SSH 공개키를 등록하는 것이다. 그러면 나중에 SSH 개인키를 이용해 내 GitHub에 접근할 수 있다. 리눅스에서 SSH 키를 생성하는 방법은 간단하다. ssh-keygen 명령어를 입력하면 된다.

 

 

  이제 리눅스에서 자신의 홈 디렉터리(home directory)에 다음과 같이 개인키와 공개키가 생성된다.

 

 

  여기에서 .pub 확장자가 붙은 것이 공개키이므로, 이 파일의 내용을 복사하여 GitHub에 넣어주면 된다. 이때 개인키가 유출되지 않도록 조심해야 한다.

 

 

  결과적으로 이러한 공개키(public key)의 내용을 그대로 특정한 저장소(repository)의 keys 설정 페이지에 넣어주면 된다. 다음과 같이 [Key] 탭에 붙여넣기 하여 [Add key] 버튼을 누르면 등록된다. 참고로 특정한 private repository의 keys 설정 페이지는 다음의 경로에서 확인할 수 있다.

 

https://github.com/{사용자 이름}/{저장소 이름}/settings/keys

 

 

  그러면 결과적으로 다음과 같이 키가 등록된 것을 알 수 있다.

 

 

  이제 특정 리눅스 컴퓨터에서 GitHub에 접속하여 private repository의 코드를 받아오고자 한다면 환경 설정 목적으로 다음과 같은 명령어를 입력할 수 있다. 다음과 같이 해당 SSH 키를 이용해 접속할 수 있도록 등록하는 것이다.

 

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
ssh -T git@github.com

 

  이후에 다음과 같이 git clone 명령어를 이용하여 소스코드를 받아오면 된다.

 

git clone git@github.com:{사용자 이름}/{저장소 이름}

 

  필자의 경우 private repository인 Watermarking-Deepfakes라는 이름의 저장소에 있는 코드를 받아왔다.

 

728x90
반응형

728x90
반응형

  믹싱(mixing) 과정에서 굉장히 많이 사용되는 도구로는 컴프레서(compressor)가 있다. 일반적으로 압축기라고 불리기도 하는 이 도구는, 보컬 믹싱이나 강의 영상 믹싱 과정에서 매우 많이 사용된다. 흔히 보컬에서는 컴프레서를 이용해 큰 목소리로 내는 소리와 작은 목소리로 내는 소리의 차이가 덜 나도록 만드는 것이 일반적이다. 당연히 듣는 입장에서 편하게 노래를 들을 수 있을 것이다. 더불어 컴프레서를 사용하여 threshold를 조절하면 체감상 단단한 목소리가 나는 것처럼 느껴진다. 그래서 목소리가 더 명료하게 만들어진다.

 

 

  [효과] 탭으로 이동한 뒤에 멀티밴드 압축기(Multi-band Compressor)를 선택한다.

 

 

  이후에 [효과 컨트롤] 탭으로 이동하여 [편집]을 열어 구체적인 설정을 진행할 수 있다.

 

 

  기본적으로 많이 사용되는 설정은 미리 준비되어 있다. 예를 들어 내가 강의 영상을 제작할 때 많이 사용하는 사전 설정으로는 [거친 음 제거], [저음 향상], [팝 마스터]가 있다. 강의 내용이 너무 졸리다 싶으면 고음을 강조하기 위해 [고음 향상]을 선택하는 경우도 있다. 직접 다양한 설정을 선택해 본 뒤에 가장 마음에 드는 적절한 설정을 선택하면 된다.

 

 

  또한 추가적으로 노이즈 제거(Denoiser)를 적용하는 것도 좋다. 강의를 찍다 보면 다양한 노이즈(noise)가 끼게 되는 경우가 많기 때문이다. 다음과 같이 [효과] 탭에서 [노이즈 제거]를 선택한다.

 

 

  이후에 필자의 경우 5%에서 10% 정도의 강도를 적용하는 경우가 많다. 너무 강도를 높이면 많은 양의 노이즈가 목소리와 함께 제거될 수 있기 때문이다.

 

 

  참고로 이러한 오디오 관련 기능을 적용하는 경우 인코딩(encoding) 속도가 현저하게 느려질 수 있다.

 

 

  (+추가) 참고로 영상 내 다수의 클립들의 오디오의 크기가 서로 다를 수 있다. 이럴 때는 여러 개의 클립에 대하여 표준화를 진행할 수 있는데, 영문 버전 어도비 프리미어에서는 Normalization이라는 용어로 번역되어 있다. 방법은 매우 간단하다. 여러 개의 오디오를 묶은 뒤에 [오디오 게인]을 누른다.

 

 

  이후에 [모든 최고점을 다음으로 표준화] 버튼을 눌러 표준화를 진행할 수 있다. 이를 이용하면, 상대적으로 소리가 작은 클립은 소리가 커지고, 상대적으로 소리가 큰 클립은 소리가 작아진다. 다만 길이가 짧은 클립 중에서 과도하게 목소리가 작아지거나 커지는 경우가 있다.

 

  그래서 필자의 경우 Normalization을 이용하는 것보다는 전체적으로 오디오를 확인한 뒤에, 소리가 작은 클립들은 키우는 방식으로 수동으로 조절하는 것이 더 낫다고 판단하고 있다.

 

 

  혹은 영상에서 오디오만 따로 추출(extract)하여, 다른 편집 앱을 이용해 오디오를 처리한 뒤에 다시 삽입할 수도 있다. 이를 위해서는 가장 먼저 [파일] - [내보내기] - [미디어]를 확인한다.

 

 

  이후에 [AAC 오디오]를 선택하고 [오디오 내보내기]에 정상적으로 체크가 되어있는지 확인한다.

 

728x90
반응형