pytube를 이용한 유튜브 음원 추출과 AI piano Cover 만들어보기.

FreeZeeSun·2024년 5월 11일
0

호기심

목록 보기
1/2

pytube 공식 api 문서


하도 설치 중 삽질을 많이 해서, 설치 후기를 남긴 블로그 포스팅도 찾아보지만, 공식문서를 꼭 찾아보고 설치를 하러감!!

1. 터미널에서 설치 -> 실패

pip install pytube

아주 오랜만에 보는 에러코드! ㅎㅎ 반갑다^^
확인 결과, 설치 환경을 바꿔야할듯..

2. anaconda 가상 환경에서 설치 -> 성공

기존 아나콘다 여러 가상환경 중 내가 선택한 base 환경에서
python 버전은 3.11.5 이다.

base(root) 의 terminal 로 오픈하여, 설치했더니 성공했다.

pytube 의 버전은 15.0.0 이다.

3. 유튜브 영상 다운로드 -> 실패

4. 다시 anaconda 가상 환경에서 설치 -> 성공


이번에는 python 3.9.5 의 koalnlp 환경에서 재설치했다..ㅠㅠ

5. [블로그 참고] 유튜브 영상 다운로드 -> 성공

url 을 그대로 복사해서 넣었을 경우..

공유 > 링크복사 해서 넣었을 경우..

계속 실패..

api 문서에 나와있는대로 해도 잘 안되서, 블로그를 참고했다.
https://giveme-happyending.tistory.com/206

>>> from pytube import YouTube
>>> import os

>>> def downloadYouTube(videourl, path):
...  yt = YouTube(videourl)
...  yt = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first()
...  if not os.path.exists(path):
...     os.makedirs(path)
...  yt.download(path)

>>> video_path = 'https://youtu.be/YxPQa66jC5E?si=hLB_4xeY8qXMOkwJ'
>>> downloadYouTube(video_path, 'videos')

만들어놓으신 함수 코드를 이용했다.

6. 영상 추출 성공!


2분정도 지나니 약 1시간 분량의 영상이 다운로드 되었음을 확인할 수 있었다.
화질도 1080p 로 잘 다운로드 되었다.

7. media.io 에서 보컬 분리하기

https://www.media.io/ko/online-vocal-remover.html

ai 기술을 이용하여, 영상에서 보컬과 BGM을 분리해주는 기술이다!
1시간 분량의 mp4 영상을 분리시켜보았다.

꽤.. 오래 걸린다..


분리 완료!!! (약 20분은 걸린듯하다)

보컬은 에코가 있게 분리가 된 편이다.
배경음악은 음성은 완전히 제외되었는데, 백그라운드에 깔려있던 코러스? 음성이 약간 깔려있는 채로 분리되어 있다. 그래도 굉장히 만족스럽다

8.미디파일 추출하기 (pop2piano)

https://serp.ai/tools/pop2piano/

https://sweetcocoa.github.io/pop2piano_samples/?utm_source=topappsai&utm_medium=marketplace&utm_campaign=topappsai

이런 인공지능 api 를 만든 사람이 있다니 너무 대단하다.. (심지어 한국인.. 서울대이다)
Pop2Piano 의 코드를 colab 에서 실행하여, 내가 원하는 음악을 피아노 버전으로 변환하는 작업을 실행했다.

음.. 음악적 지식이 없어서, 미디파일이 뭔지도 몰랐다..
우선, pop2piano 로 추출한 미디 파일의 내용이 피아노 뚱땅뚱땅 느낌이라서, 이 미디파일을 이용해서 한번 더 무언가를 해줘야함을 알게되었다...

9. 기존 Midi파일을 편곡하기 (AIVA)

https://www.aiva.ai/

ai 만만세다... 정말...^^
못하는게 없네...

튜토리얼은 이걸 보면서 했다.
https://ior.ad/8ug5?iframeHash=trysteps-1

문제는, 내가 원하는 스타일로 편곡하는게 여간 번거로운게 아니다.
그리고 3분정도의 음원밖에 추출을 못하기에... 다른 툴을 사용하러 갔다..ㅠㅠ

10. AI로 음악 장르 변환하기 (HitPaw)

https://www.hitpaw.net/kr/voice-changer.html

매우 기대되는 메인화면...

데스크탑 앱으로 설치했다.
아쉽게도... 무료 사용자는 30초... 유료사용자는 2분까지만 지원한다.ㅠㅠ

하 거기다가... 내가 원하는 클래식과 오케스트라 버전으로 장르 변환하는건... 결국 유료이용을 해야한다...

...ㅠ.ㅠ........ 그래... 솔직히 이 가격은 정말 혜자인듯하다...
하지만,,,, 내가 이 금액만큼 사용할 일이 있을지는 모르겠다...


여튼 컨트리음악 장르로 약 30초가량 변환을 거쳤는데, 꽤나 장르변환이 잘 됐다!!!

11. 곡 하나로 위의 과정 다시 해보기


3분 정도의 '소나기' 곡 하나로 다시 해보려고 한다. 포기하긴... 아까우니.ㅠ.ㅠㅋㅋ
되긴 되지만...

사람이 연주한 피아노곡의 감미로움을 따라잡을수가 없었다..
관련 논문리뷰 블로그포스팅도 봤는데.. AI가 어느 피아노 연주가의 스타일을 학습해서 cover 하는게 훌륭한 실제 피아니스트가 직접 연주하는 것보다는 효율성이 있을지에 대한 의문을 제기했다.
이번에 AI cover 툴을 직접 사용해보며, 아직 시중에 공개된 서비스 중에서는 대중들에게 큰 만족을 주기는 힘들듯하다. 그나마 pop2piano 의 성능이 엄청난듯하고, 조금 더 튜닝을 한다면 더 풍부한 피아노 곡으로 변환도 가능할 듯 하나..! 내가 할 수 있지는 않으니..ㅠㅠ !

profile
개발자 지망생. 지금은 삽질의 연속, 하지만 언젠가는 삽질이 아닐 것이기에!

0개의 댓글