[AI X Music] AI pianist

Date:     Updated:

카테고리:

태그:

AI Pianist

AI Pianist

인공지능 피아니스트, 사람처럼 연주할 수 있을까?

AI Pianist

인공지능 피아니스트, 사람처럼 연주할 수 있을까?

네이버 웹툰: AI가 세상을지배한다면<인간 VS AI쇼팽>

재미있게 보았던 웹툰 중 인간피아니스트 ‘주영재’와 AI 피아니스트 ‘쇼팽’이 피아노 대결을 벌이는 장면이 있다. AI는 모차르트, 베토벤, 쇼팽 등 다양한 연주를 학습했을 뿐만 아니라, 대결상대인 ‘주영재’의 피아노 연주까지 학습한 상태로 피아노 배틀에 참여한다. 과연 웹툰이 아닌 현실에서는 어떤 방식으로, 어디서 AI피아니스트들이 활동하고 있을까?

KAIST에서, 피아니스트 박종화 & AI Pianist

Motivation

몇달 전, 뮤자인(Musain)이라는 프로젝트를 진행했었다. 사람의 허밍을 멜로디화하고(humming detection), 이를 장르별 편곡(accompaniment)해주는 서비스를 만들었었다. 어떤 특정 리듬이 머릿속에 떠오를 때, 콧노래를 부르듯 흥얼거리면 그 음들이 바로 멜로디화되고, 이를 장르별 자동편곡하여 내가 떠올린 멜로디에 맞는 반주가 들어와 원하는 장르로 음악을 만들어 주는 서비스였다.

루바톤팀, 뮤자인 데모데이에서 장르별 AI편곡 서비스를 설명중인 어느 미소년

하지만 AI가 편곡을 하든, 사람이 편곡을 하든, 노래가 잘 만들어졌든, 우리가 실제로 결과물을 볼 때, 너무나도 정확하고 일정한 세기로 정직하게 악보를 연주하자 듣기 좋지 않았다. 컴퓨터가 만든 음악이든, 사람이 만든 음악이든 생성된 악보를 컴퓨터로 재생을 하면 동일한 velocity(음을 연주하는 세기)와 Quantized(한치의 오차도 없는(?) 정확한 박자)된 노트들로 인해 결과물이 이질적으로 느껴졌다.

사람이 연주한 것처럼 악보를 연주할 수는 없을까?

문제점을 극복하고자 AI Pianist에 대해 조사를 해보았고, 적용했던 방법을 공유해볼까 한다.

본문 시작

AI pianist라는 키워드로 검색을 하고 관련 연구결과들을 찾아보았다. 통상 연구들은 Expressive timing and dynamics, Expressive Piano performance, expressive control of tempo 등 “Expressive”라는 키워드가 핵심이었다.

Expressive…. 살면서 이 단어를 얼마나 많이 쓰게될까? expressive… expressive… 익…스..프….처음 이 단어를 보았을 때는 바보처럼 웅얼거렸다.

지금 돌이켜 생각해보면, expressive 라는 단어가 이 연구주제를 너무나도 잘 표현해주는 단어였기 때문인 것 같다. 사람이 연주하는 듯한 속도, 세기, 모두 expressive한 연주를 위해서였기 때문이다. 그렇다면, 내가 연주하는 음악보다 훈련된 피아니스트들이 연주하는 음악이 훨씬 expressive할텐데 이 기준을 무엇으로 두어야할까?

누가 더 Expressive한 연주를 하였나요?

‘사람이 연주한 음악이다’를 넘어 감동을 주는 음악들이 있다. 어떤 차이점이 있을까? 이에대한 연구의 흐름을 보고, 컴퓨터로 사람이 연주하는 듯 하게 만드는 법에 대해 후술하도록 하겠다.

재미없을만한 역사

19세기후반~20세기 초 녹음 기술이 등장하고, 연주에 대한 과학적인 연구들이 시작되었다고 한다.

20세기 후반, 음악을 심리학과 인지학적인 관점으로 바라보는 관심이 증가했다고 한다. 그렇다고 한다고 한다.

그리고 1950년대 후반, 컴퓨터와 전자기기의 발달로 더 많은 관심을 끌게 되었고, 더욱 정밀한 데이터 캡쳐할 수 있었다. 삐리비릿

얼마나 expressive한지에 대해서는 phrasing(Todd, 1992), meter(Sloboda, 1983), inteded emotions (Juslin, 2001)이 영향을 준다고 하는 연구들이 나왔다.

그리고

KTH모델이라는게 나왔다. Stockholm에서(Sundberg 1983, Friberg 2006) 나왔는데, 이 이름에 berg가 들어간 이분들이 KTH모델을 발전시켜나가면서 데이터기반 음악분석의 틀을 다진 것 같다.

KTH는 무슨뜻일까? 그냥 자기네 학교 이름..OMG

논문을 읽어보았는데 이 때, 연주의 타이밍, 연주속도와 감정 등등에 대해 연구를 하신 것 같다. 이게 인기가 좋았는지(?) 이 KTH모델을 이용하여 Director Musices(a.k.a DM)라는 프로그램을 만들었다.

Director Musices 프로그램

중간정리

무튼 정리를 해보자면, 사람이 연주 한 것 느끼려면, 얼마나 expressive한 연주인지를 알아야한다. 그런데 누가 더 expressive한 연주인지에 대한 기준이 없고, KTH가 자기네들만의 rule을 만들고 관련 프로그램도 만들었다.

그래서 AI PIANIST는 어디에 있나요

처음에는 음악 관련 연구이므로, 바로 google의 magenta에서 검색을 해 보았다. performance-rnn이라는 모델이 있었는데,

Generating expressive timing이라 적힌 부분만 보고, ‘magenta에는 없는게 없군~’ 이라고 생각을 했었지만, 이는 작곡 모델이었다. 글의 서두 Motivation에서 적었듯이, 이미 존재하는 악보를 사람이 연주하듯이 만들 수 있는 법을 찾고 있었으므로 performance-rnn은 후보군에서 제외하였고, 다른 Magenta의 인공지능 모델들을 둘러보았지만 딱히 나의 목적에 맞는 모델들을 찾을 수 없었다.

마젠타에서 사용 가능한 음악관련 인공지능 모델들https://github.com/magenta/magenta/tree/main/magenta/models

연구는 이루어지고 있지만, 당장 사용 할 수 있는 모델이 없다? 구글링이 아닌 유튜브에서 검색하다보니, 답은 생각보다 가까운곳에 있었다. (이유는 잘 모르겠는데, 구글에 검색했을 때 나오는 동영상 상위목록과, 유튜브에서 검색 할 때, 동영상 상위 목록이 조금씩 다른 것 같다)

발견!!

최근 국내에서 연구하고 이로 공연까지 끝낸 모델이 있었고, 해외에서 몇년 전에 만든 BM(basis mixer)이라는 모델도 찾을 수 있었다. 국산(?) 논문에서(학술지는 해외) 자신들의 모델과 BM의 결과물을 비교한 부분이 있었는데, 이를 보고 일단 국내 연구 결과를 활용해보고자 하였다.

KAIST 행사, AI piano performance(collaborated with human(피아니스트 박종화))

KAIST의 mac lab에서 관련 연구를 진행하였는데, 유튜브에 ‘VirtuosoNet’으로 검색하면 관련 데모영상을 좀 더 볼 수 있다. 연구를 메인으로 진행한것으로 추측되는 분은(정다샘 박사님) 현재 서강대 Art&technology학과에서 교수직을 맡고 계신걸로 보인다. 사용 코드는 아래의 깃헙 링크를 참조하면 된다.

GitHub - jdasam/virtuosoNet
Our research project is developing a system for generating expressive piano perfomrance, or simply 'AI Pianist'. The…github.com
<a href="https://github.com/jdasam/virtuosoNet" class="js-mixtapeImage mixtapeImage u-ignoreBlock" data-media-id="e49e1fbf1a7059f6e4669b0daaa3ca52

</a> </div>

VirtuosoNet?

h3"> virtuoso, 처음듣는 단어였다. 거장, 명연주자 라는 뜻이라고 한다. 이름에 걸맞게 위의 VirtuosoNet은

옵션으로 바흐, 베토벤, 브람스, 쇼팽, 드뷔시, 하이든 등 유명 (거장)작곡가들의 연주 스타일을 따라할 수 있었다. 누가보아도 Virtuoso라고 불릴만한 분들인 것 같다. 생각보다 쉽게 발견한, 목적에 잘 부합하는 프로젝트였기에 설레는 마음으로 바로 사용을 해 보았다.

결과

일단 악보를 하나 다운받아서 VirtuosoNet에 집어넣어보았다. Xml형식의 악보를 받을 수 있었는데,

모차르트 피아노소나타16번을 AI모델에 넣은 후의 모습(미디)

위의 사진을 보면, 작은 점들은 각 음표들(노트)이고, 아래의 그래프는 각 노트별 velocity(세기)이다. 그래프가 요동치는 모습을 보아, 다양한 velocity로 위에서 언급해왔던 Expressive한 음악을 연주하고있지 않나 싶다.

들어보기: https://url.kr/2gxlwi

하지만 우리의 서비스에서는 사람이 흥얼거림으로 만들어지는 단순한 멜로디일뿐, 사람의 흥얼거림으로 만들어지는 멜로디가 통상적으로, 클래식 피아노 연주만큼의 복잡한 연주는 아닐것이다. 따라서, Quantized된 일정한 velocity의 단순 멜로디를 Virtuoso Net에 넣어보았다.

사용자의 흥얼거림으로 만들어진 미디
VirtuosoNet을 통과한 미디

기존의 미디는 Quantized되어있지만, VirtuosoNet을 통과하자 Velocity도 조금씩 다르고, 노트의 길이 들도 미세하게 바뀌었다. 이런 변화가 건반의 터치와, 타이밍을 바꾸고 Expressive한 연주를 만들어내지 않을까 라는 설레는 마음으로 음악을 들어보았다.

하지만 차이가 없었다. 직접 마우스로 찍어낸 음악, 동요, 가요, Humming detection으로 만들어진 멜로디들을 넣었으나 큰 차이가 없었다. 여러 실험과 사용자 측면을 고려한 끝에 사용하지 않고, Quantized된 멜로디를 그대로 쓰기로 하였다. AI pianist기술은 넣지 않기로 한 것이다.

Why?

왜 생각만큼 잘 나오지 않았을까? 추측한 결과를 먼저 말하자면, ‘소잡는칼로 닭을 잡아서’이다. VirtuosoNet에 대해 깊은 이해가 있지는 않지만, 논문의 내용과 코드를 보며 추측한 바로는 그렇다.

먼저 논문에서 가장 먼저 눈에 들어오는 이미지이다

논문 링크: https://archives.ismir.net/ismir2019/paper/000112.pdf

그림을 보면 알겠지만, 높은음자리표끼리 따로 처리하고, 낮은음자리표끼리 따로 처리한다. 그리고 탑멜로디와 화음을 이루는 노트들도 따로 처리시킨다. 일단 이 그림만 보고서 애초에 Monophony한 입력값을 받도록 설계된 모델이 아니겠구나? 라는 생각이 먼저 들었다. 사람의 목소리 피치(pitch)로 detect된 멜로디는 monophonic하므로, 거장들의 아름답고 복잡하고 수많은 화음과 때로는 두개이상의 선율이 공존하는 음악을 분석하기 위해 만든 모델과는 어울리지 않겠구나 라는 생각이 들었다.

논문 겉핥기

HAN

일단 논문에서는 HAN을 쓴다고 했다. Hierarchical Attention Network의 약자인데, 어텐션을 Hierarchical하게? 쓴다는건데, 어떤 위계질서가 있는지 설명이 잘 나와있었다. 위의 인코더아키텍쳐 그림의 오른쪽 부분에 나와있는것처럼, Beat와 Measure Encoder을 Hierarchical하게 두었다는데, 가장 낮은 레벨에서부터 인코더를 돌리며 필요한 특징을 뽑아 올리나보다~ 라고 생각하면서 모델을 찬찬히 둘러보았다. HAN이라는 아이디어는 VirtuosoNet에서 최초로 쓰인건 아니지만, HAN을 그대로 쓰지않고 multihead-attention과 함께 썼다고 한다.

NLP쪽 모델을 음악쪽으로 가져올때는 보통 이렇게 어텐션만 샥 바꿔도 결과가 좋은 경우가 많은 것 같다. HAN에 대해 찾아보니 이도 역시 NLP쪽에서 처음 사용된 아이디어로, 문서안에 문장, 문장 안에 단어가 있다 라는 아이디어에서 출발했다고 한다. 음악속에 비트가 있고, 비트 속에 노트가 있다 라고 생각하고 유사성을 가지고 잘 만들어낸 모델인 것 같다. 다양한 상황과 다양한 연주스타일을 위해 Conditonal VAE를 쓴 내용과, Measure level에서는 악보와, 실제의 연주의 차이에 대해 어떻게 평가하고 훈련을 시키는지 좀 더 자세히 나오지만 메인 아이디어로 보이는 HAN을 잘 음미하며 겉핥기를 마쳤다.

느낀점

프로젝트에 적용할 수 없겠다라는 생각과 빠른 포기를 했지만 아쉬움이 남았다.

‘좀 더… 없나?’

사람처럼 연주하는 AI Pianist라니… 멋있을 것 같은데, 생각보다는 자료가 적어서 놀라웠다. 만약 AI Pianist가 좀 더 연구된다면 어디에 쓰이게 될까? 아무래도 고퀄리티의 연주를 대중들이 쉽게 접할 수 있겠다라는 생각이 먼저 떠올랐다.

그렇다면 거장들(Virtuoso)의 음악으로 학습시킨 AI가 만든 음악이 있어야 할테고, 그 음악을 사람들이 들을 수 있게 연주해줄 자동연주 피아노가 있어야 할 터이다.

자동연주피아노 가격대

조금 검색을 해 본 결과, 야마하사의 가장 저렴한 제품도 1000만원 이상이였다. 또한 거장들의 연주를 그대로 녹음한(자동연주피아노에서 재생할 수 있는) 파일을 12곡에 30달러정도에 판매한다고 한다.

거장들의 음악이 이미 12곡에 30달러인데, AI가 이 음악들을 뛰어넘는 연주를 해낼 수 있을까? 기술이 발달하여 서로 다른 스타일의 거장들의 연주로 학습시킨 AI가 거장들을 뛰어넘는 연주를 만들어 낸다고 하더라도, 12곡에 30달러 이상의 가치를 가지는 음원을 만들어 낸다고 하더라도 이를 구매하는 헤비리스너들의 수요가 얼마나 될지 모르겠다. 이분들도 이미 거장의 녹음된 음원에 만족을 하지 않을까 라는 생각도 든다. 이와 연관된 분야의 연구를 하나 소개하고자 한다.

연관분야

이 분야의 연구는 오늘 글의 내용과 밀접한 관련이 있다. 바로 이미 있는 연주를 악보화하는 연구이다. 유튜브에서 아주 아름다운 피아노 연주를 들었는데, 이를 집에있는 피아노에서 연주시킬수는 없을까? 오늘 글에서 종일 말했던 주제가 음악을 어떻게 ‘표현’할지라면, 이 연구는 어떻게 ‘듣는’지에 대한 연구이다. 어떻게 Play할지가 아닌, Listening이라고 생각하면 된다.

이미 있는 음악을 컴퓨터가 ‘듣고’ 그대로 받아쓰기를 하는것이다.

1955년의 음악을 듣고 re-performance

1955년에 녹음된 노래가있다고 하자, 만약 이 음원을 현대기술로 고치고 고쳐서 조금 더 깔끔하게 만들었다면, remastering이다. 하지만 이 음원을 그대로 다시 ‘연주’한다는 의미로 Zenph사에서 re-performance라는 이름을 붙여 예전 음악을 다시 연주하여 음원을 발매하였다.

음악감상에 AI가 쓰이게 된다면, 이와같은 기술이 사용되는게 더욱 현실성 있지 않을까 싶다. AI가 바흐를 뛰어넘는 연주를 만들어 그 음원을 재생하기보다는, 오래되었거나 최근에 화제가 되었던 음악을 위의 Machine Listening(AI가 음악을 듣고 받아쓰기)기술을 통해 채보(악보를 얻어냄)하고, 이를 연주하는게 더욱 현실성 있게 쓰이지 않을까 싶다.

유튜브에서 프로 연주자의 아주 멋있는 연주, 혹은 아마추어의 재미있는 연주를 듣고 살짝 흥분이 되었을 때, 집에 있는 피아노에서 이 음악을 똑같이 연주하게된다면?? 음… AI가 만들어낸 음악을 집에서 듣고있는것 보다는 꽤 현실성 있는 시나리오가 되지 않을까 한다.

따라서

오늘은 AI피아니스트에 대해 알아보고 어떻게 ‘사람처럼’ expressive하게 연주하는지에 대하여 알아보았다. 위에서 말했듯, 이쪽 연구를 이용하여 AI가 ‘사람처럼’연주한 음악을 집에서 듣기보다는, 이미 있는 음악을 AI를 이용해 집에서 다시 연주시키는 방법이 더 현실성이 있지 않을까 싶다. 물론 어떤기술이 어떻게 상업화될지는 아무도 모른다.

그렇다면, 얼마나 Expressive하게 연주하는지, 사람처럼 연주하는 AI pianist기술은 쓸모가 없는가? 당연하게도 전혀 아니다.

이 연구의 핵심은 결국 사람의 연주를 어떻게 평가할지가 관건이라고 생각한다. 나의 연주는 76점, 친구의 연주는 82점짜리 연주! 이렇게 평가하는게 의미가 있을까? 그것보다는 다른방법으로, 교육용으로 쓰기게 되지 않을까 한다.

특정 연주자의 음악을 카피하며 연습을 할때, 그 연주자의 연주적 특색을 이해하고, 거장의 연주스타일적 특성에서 어떤 감정을 배울수 있는지 스스로 피드백하면서 음악연주 연습을 할 수 있지 않을까 싶다.

방금 연주는 이루마의 연주와 77% 가까웠습니다. OO부분의 아르페지오 연주는 99% 동일했습니다.
웹툰 AI가 세상을 지배한다면(AI피아니스트가 분석한 인간피아니스트의 습관)

결국 AI는 그 자체가 예술을 하여 많은 사람들이 즐기게 되기보다는 이와같이 사람들을 도와주고, 예술적 영감을 주는 도구로써 활용되지 않을까 싶다.

오늘 이야기한 키워드들로 다시 이야기하자면,

결국 AI가 virtuoso들의 expressive한 timing을 분석해서 만든 음악 자체가 훌륭한 음악을 만들어 사람들에게 감상용으로 쓰이기보다는, Machine Listening기술로 채보를 하여 음악감상을 도와주는데에 쓰이거나, Expressive performance에 대한 분석을 토대로 사람들의 연주 연습을 도와주는 도구로 쓰이지 않을까 싶다.

</article> </body>
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄 [맨 위로 이동하기](#){: .btn .btn--primary }{: .align-right}

medium 카테고리 내 다른 글 보러가기

댓글 남기기