본문 바로가기

인공지능/Toy Projects

가수의 목소리 변경_1 (Singing Voice Conversion)

목차

    Introduction

    Voice Conversion is a technology that modifies the speech of a source speaker and makes their speech sound like that of another target speaker without changing the linguistic information.
    Singing voice conversion is to convert a singer's voice to another one's voice without changing singing content.

    음성 변환은 언어 정보를 변경하지 않고 원본 화자의 음성을 수정하여 다른 대상 화자의 음성처럼 들리게 하는 기술이다. 그 중에서도 노래소리변환은 노래의 내용을 변경하지 않고 가수의 음성을 다른 사람의 음성으로 변환하는 것이다. 보통 encoder-decoder의 형태를 가진 모델이 대부분으로, encoder에서 음성의 내용과 톤을 추출하고, decoder에서 target화자의 음색을 추가하게 된다. 

    처음은 간단하게 2명의 목소리(아이유, 비챤(이세계아이돌))를 변경하는 실험을 진행했다. 아이유의 노래 데이터는 유튜브에 공식으로 업로드된 영상을 다운받았고, 비챤의 노래 데이터는 트위치(twitch)생방송에서 불렀던 영상을 다운받아서 준비했다. 준비된 노래 데이터는 앞서 작성했던 demixing model을 이용해 목소리만 분리하여 데이터셋으로 사용했다.

     

    Method

    본 실험에서 사용한 모델은 PitchNet이고, 참고한 github사이트는 다음과 같다.

     

    PitchNet: Unsupervised Singing Voice Conversion with Pitch Adversarial Network

    Singing voice conversion is to convert a singer's voice to another one's voice without changing singing content. Recent work shows that unsupervised singing voice conversion can be achieved with an autoencoder-based approach [1]. However, the converted sin

    arxiv.org

     

     

    GitHub - SongRongLee/mir-svc: Unsupervised WaveNet-based Singing Voice Conversion Using Pitch Augmentation and Two-phase Approac

    Unsupervised WaveNet-based Singing Voice Conversion Using Pitch Augmentation and Two-phase Approach - GitHub - SongRongLee/mir-svc: Unsupervised WaveNet-based Singing Voice Conversion Using Pitch A...

    github.com

     

    본 실험의 모델구조는 다음과 같고, pitch regression network만 적용해서 음성 변경을 시도했다. LUT는 Look Up Table의 약자로 변경 대상이 되는 음성의 임베딩 벡터가 된다. 

     

    본 실험에서 사용한 노래는 어푸, 느낌이 오잖아, 금요일에 만나요, 스물셋으로 총 4개이다. 아이유 노래의 경우 믹싱이 굉장히 많이 되어있어서 본연의 목소리만 나오는 경우가 상대적으로 적어서 데이터셋을 만들기 힘들었고, 비챤 노래의 경우 에코만 조금 있는 정도라서 노래의 거의 대부분을 데이터셋으로 사용할 수 있었다.

     

    Result

    실험은 총 3회 진행되었다.

    첫번째 실험은 2개 노래(어푸, 느낌이오잖아)만 이용해 실험을 진행했고, 두번째, 세번째 실험은 4개 노래를 전부 이용했다. 두번째와 세번째 실험의 차이는 학습셋을 구성할 때 window 사이즈를 각각 0.5초, 1초로 다르게 설정하여 진행했다.

    설정 1차 실험 2차 실험 3차 실험
    그래프 색상 파랑 분홍 초록
    노래 개수 2 4 4
    학습셋 window size 1.0 0.5 1.0

    모델의 output 결과는 다음과 같다.

     

    original.wav

    1_test.wav

    2_test.wav

    3_test.wav

     

    전체적으로 매우 좋지 않은것을 확인할 수 있다. 첫번째 실험은 loss가 1까지 내려갔지만, 거의 대부분이 노이즈에 노래 음이 전혀 맞지 않았고, 두번째와 세번째 실험은 loss가 2근처에서 머물렀지만, 결과물의 노이즈가 상당해서 써먹을 수 없을 정도인것을 확인했다.

     

    Conclusion

    본 실험이 잘 되지 않은 이유를 생각해봤을때 다양한 원인이 있을 수 있다.

    우선 사용한 모델이 2019년에 나온 논문을 기반으로 구현되어 있어서 그럴 수 있을 것 같다. 현재 인공지능 분야는 하루가 다르게 새로운모델이 나와 sota 알고리즘이 빠르게 바뀌는 추세로, 3년전에 나온 모델보다 성능이 좋은 모델이 이미 존재하고 있을 수 있다.

    두번째로 데이터셋이 학습하기에 좋지 않았거나, 데이터 자체가 별로였을 수 있다. 아이유 노래의 경우 목소리자체에 너무 많은 처리가 되어있어(음원이라) voice conversion 입장에서는 노이즈가 많다고 볼 수 있다. 혹은 비챤 노래의 에코가 노이즈일 수 있다.

     

    Future work

    다음 실험은 최근에 나온 논문을 기반으로 구현된 모델을 찾거나, 직접 구현을 시도해 볼 예정이다. 다른 가수의 음성으로 실험을 해보는 것도 방법이 될 수 있겠다.

    추가로 다음 실험은 가능하면 multi-GPU training을 적용해 보고 싶다.

     

    다른 분야(비전, 자연어)보다 연구의 양이 생각보다 적어서 신기했다.