음성 데이터에서 각각의 악기 소리를 분리하는 기술에 대해 관심이 생겨 해당 기술에 대해 조사해 보았습니다.
이번 포스트는 조사한 두 가지에 대해 정리해 봅니다.
소리를 분리하는 프로그램을 검색해보았을 때, Spleeter와 Pixel Player라는 것을 찾을 수 있었습니다.
각각에 대한 내용은 다음과 같습니다.
- Spleeter
URL : https://splitter.ai/
GitHub : https://github.com/deezer/spleeter
Deezer(= 프랑스 온라인 음악 스트리밍)에서 공개한 라이브러리입니다.
Tensorflow(Python)으로 작성되어 있으며 현재 음악 파일에서 Vocal, Drums, Bass, Piano, Other로 분리하여 파일로 나눠 저장되는 대표적인 라이브러리입니다. musdb Dataset을 기반으로 학습되어 있으며, GPU 환경에서는 Real-Time보다 100배 빠르다고 합니다.
기본적으로는 Drums, Bass, Piano, Vocals, Others로 분리됩니다.
샘플로 국악 음원을 넣어 확인해보니 다음과 같습니다.
분리된 파일들은 각각 다음과 같습니다.
- Bass
- Drums
- Piano
- Vocals
- Others
애당초 분리 기준 악기가 현저히 다르기도 하지만, 분리된 것들이 대부분 Others에 속해있어 분리의 의미가 없는 결과를 얻었습니다. 다만, 어찌 보면 피아노, 베이스 등이 아니긴 하니까 정확하게 분리한 것은 맞네요..ㅎ
- Pixel Player
URL : http://sound-of-pixels.csail.mit.edu/
Github : https://github.com/hangzhaomit/Sound-of-Pixels
음악을 연주하는 동영상에서 특정 악기의 소리를 분리하는 AI 시스템입니다.
영화에 비쳐있는 악기를 픽셀 수준으로 식별하고 그 악기에 연결된 소리를 추출할 수 있습니다. 특별한 조작 없이, 영상과 음악을 동시에 분석, 동기화하고 연주하고 있는 사람과 음성을 연계시켜 동영상을 클릭하는 것만으로 특정 악기의 소리만을 Play 하거나 악기마다 음량을 조절할 수 있게 하는 기술입니다. PyTorch(Python)을 기반으로 개발되어 있습니다.
영상에서 마우스로 Point를 클릭하면 해당 Point에서의 소리를 추출합니다. 각 악기를 선택하면 해당 악기만의 소리가 나옵니다. 특이한 점은 머리를 선택하였을 때는 소리가 나오지 않으며, 악기 주변을 선택할 경우는 악기 소리가 희미하게 들리거나 하는 등의 결과물도 얻을 수 있습니다.
다만, 현재는 Single 또는 Dual만 가능한 것 같으며, Video가 Input이기 때문에 대규모 연주 등에서는 적합하지 않은 것 같다. 그러나 앞서 보았던 Spleeter보다 다양한 악기를 다루고 있습니다.
이와 같이 두 가지 음성 분리 프로그램에 대해 알아보았습니다.
이보다 더 많은 기술들이 실생활에서 사용되고는 있지만, 생각보다 음성 분리 기술이 그리 많이 발전한 것 같진 않아 보였습니다. (2021년 기준) 그렇지만 아이디어가 돋보이는 Sound of Pixels와 같은 개발물이 있다는 것을 알게 되었습니다.
이번 포스트는 여기서 마무리하도록 하겠습니다.
기회가 된다면 앞서 수행해보았던 국악 음원을 분리해보는 것도 좋을 것 같습니다!
'Technology > Research' 카테고리의 다른 글
[AI] Google Bard 사용 (1) | 2023.05.19 |
---|---|
[AI] ChatGPT 사용 및 원리 (0) | 2023.02.10 |
[AI] Multi Modal에 대한 정의 및 예시 (0) | 2023.01.10 |
댓글