[AI Song Cover] Part1. Preview
[AI Song Cover] Part1. Preview
요즘은 좀 잠잠해진 것 같기도 하지만 노래를 다른 가수의 목소리로 부를 수 있는 AI를 만들어보고 싶었다. 한번쯤 좋아하는 가수가 이 노래도 불러주면 좋을텐데! 생각해 본 적 있지 않나? ㅎㅎ 이것저것 시도해보다 그냥 접어두고 있었는데 교환학생을 가기 전에 한번 완성을 시켜보려고 한다. 그닥 효율적인 코드는 아니겠지만 뭐라도 직접 완성하는 것에 의미가 있지 않을까.
어떤 방식을 사용하냐에 따라 다르겠지만, 나는 다음과 같은 느낌으로 구성하려고 한다.
베이스가 될 음원 파일 A, 목소리를 학습할 음원 파일 B 준비
A와 B에서 목소리와 MR 분리
B의 목소리 학습 - Train
학습을 바탕으로 A의 목소리 변환 - Inference
바뀐 목소리와 MR 합성
1, 2, 5번은 그리 어렵지 않고 중요한 과정은 3번과 4번이다. 여기서 쓰이는게 Singing Voice Coversion(SVC)이다. 소리도 벡터로 변환하는 것이 가능하기 때문에 어쩌구저쩌구... SVC의 원리에 대해서는 다음에 알아보기로 하고, so-vits-svc, DiffSVC 등등 여러 친구들이 있는데 뭘 사용할지는 좀 더 알아보고 차차 정하는 것으로 하자.
일차적인 목표는 저대로 잘 돌아가는거고.. 좀 더 여유가 있으면 간단한 프론트를 만들고, 직접 AI 모델도 만들어보고, 자동화도 시켜보고.. 하려고 한다. 뒤에 두개는 금방 하기는 어려울 것 같긴 하다만.
일단 옛날에 간단하게 좀 돌려본 결과, 음원 파일에 화음이 있거나, 에코가 심하거나 여러 이유로 깔끔하게 목소리가 추출되지 않는 경우에는 결과물이 신통치 않다. 화음이나 에코가 낀 목소리를 원래 목소리라고 판단하여 모든 부분에 에코나 화음이 묻어서 output이 기괴해진다. 그리고 코랩 자꾸 연결이 자동으로 끊긴다. 이건 검색하니 해결 방법이 있는 것 같다.
본격적으로 시작하기에 앞서서 colab_ssh 모듈을 사용해서 구글 코랩을 vs code와 연결해보려 했는데 최근 코랩이 금지한 모양이다 ㅠㅠ 혹시 변동사항이 생길지도 모르니 아래 링크를 한번 확인해 보시고..
https://github.com/WassimBenzarti/colab-ssh
오늘은 여기까지.