본문 바로가기

audio/audio transcription

[논문리뷰] Sequence-to-Sequence Piano Transcription with Transformers (ISMIR21)

논문제목: Sequence-to-Sequence Piano Transcription with Transformers
저자: Curtis Hawthorne, Ian Simon, Rigel Swavely, Ethan Manilow, Jesse Engel
소속: Google Research
발표: ISMIR 2021
논문: https://arxiv.org/abs/2107.09142
웹페이지: https://magenta.tensorflow.org/transcription-with-transformers

- music transcription이 최근에 잘되고 있긴 하지만, 여전히 이 문제를 풀려면 음악적인 정보를 사용하여 네트워크를 디자인하고 representation을 만들고 디코딩에도 신경을 써야함. 근데 이런것 신경쓰지 않고도 잘 되는 모델이 있으면 어떨까? 
- 기본적인 인코더-디코더 트랜스포머를 사용하여도 잘된다는 것을 보여주겠음. 만약 이 방식이 정말로 잘 통한다면 우리는 데이터만 잘 만들면 되는 거임.

Story

최근 Automatic piano transcription이 잘 되고 있는 것은 크게 두 가지로 볼 수 있음. 첫번재는 MAESTRO[Hawthorne19]같은 커다란 데이터들이 소개되었고, 다음으로는 Onsets and Frames[Hawthorne18]같은 Neural Network기반 모델들이 개발되었음(알고보니 다 자기논문). 이러한 domain-spectific한 데이터와 모델들은 좋은 성능을 보이고 있지만, 이들이 다른 도메인과 다른 MIR 작업들에도 도움이 될까?
그러는 중 트랜스포머 모델[Vaswani17]이 나왔는데, 이 모델 좀 짱인 것이 한가지 모델 가지고도 여러 도메인에 잘 적용된다는 것임. 그렇다는 것은 도메인에 특화된 요소들을 사용하지 않는다는 것인데, 그러면 이를 한번 piano transcription에도 적용해볼까? 만약 잘 된다면 피아노스러운 domain-specific adaptation을 안해도 잘 된다는 의미임. 

 

Model Architecture

기본적인 인코더-디코더 트랜스포머를 사용함. 인풋은 멜스펙트로그램의 프레임, 아웃풋은 미디스러운 이벤트들. 사용한 모델은 T5의 'small' 모델(T5.1.1 레시피). 인풋이 스펙트로그램이기 때문에 dense 레이어로 이를 트랜스포머의 인풋으로 바꾸고, absolute positional 임베딩을 사용한다는 것, 그리고 float32을 사용한다는 것이 약간의 차이점. 54M정도의 파라미터의 모델로도 충분했음.

 

Inputs and Outputs

트랜스포머 안에 넣기 위해서 인풋에 EOS를 추가함. 아웃풋은 미디스러운 이벤트에 대한 소프트맥스 분포임: 1) Note(128미디 피치에 대한 노트온-오프 이벤트) 2) Velocity(노트 이벤트에 대한 벨로서티) 3) Time(세그멘트 안에서 10ms 단위의 시간 위치) 4) EOS(시퀀스끝). 3번의 경우 세그먼트 안에서 절대 위치를 사용하는 것이 이전 이벤트에 대해서 상대적인 위치를 사용하는 것보다 더 성능이 좋았음. 10ms의 시간 해상도는 사람이 인식할 수 있는 한계를 고려한 수치. 아웃풋을 디코딩하는 것은 단순한 greedy autoregressive 방식, 즉 각 스텝마다 가장 확률이 높은 이벤트를 고르게 됨. 피아노롤 아웃풋을 주로 사용하는 이전 논문들에 비해서 이러한 이벤트 방식 아웃풋은 flexibility를 더욱 늘려줌. 

Sequence Length Considerations

트랜스포머의 $O(n^2)$ 공간 복잡도로 인해 역시나 인풋을 잘라야 함. 훈련시에는 랜덤한 위치에서 다양한 길이로 오디오를 자른 후 해당하는 심볼릭 데이터를 가져오고 이를 인풋으로 사용함. inference시에는 인풋 오디오를 maximum input length로 겹치지 않게 잘라서 사용함. 그 후 노트온/오프를 잘 고려하여 결과들을 다시 연결함.



Experiments

Adafactor 옵티마이저를 사용하고, T5[Raffel20]와 거의 동일한 파라미터를 사용. 인풋은 tf.signal 라이브러리를 써서 멜로 바꿈. 인풋 시퀀스 길이는 512, 아웃풋 시퀀스는 1024. 이러면 최대 세그먼트 길이가 약 4초정도 됨. 이 길이를 늘리면 어떻게 될지는 퓨처웍으로. TPUv3 32개로 2.5일정도 훈련시킴. 데이터는 물론 MAESTRO [Hawthorne19]를 사용(자기들이 만들었으니). 버전은 v3을 사용. 


심볼릭 데이터에서 온셋/오프셋을 사용했을 때, 온셋/오프섹/벨로서티를 사용했을 때 F1 소타를 기록함. 멜대신 STFT를 사용하면 약간의 성능저하가 일어나고 raw sample을 이용하면 성능이 제법 떨어짐. 멜이 좋은 입력. 앞서 언급한대로 세그먼트 안에서 절대위치가 아닌 상대위치를 사용하면 성능이 많이 떨어짐. 아마도 상대위치를 사용하면 에러들이 점점 쌓이기 때문일 것 같음. 모델의 크기도 키워보았는데(213M 파라미터) 이때는 오버피팅이 일어나서 결과가 더 안좋았음. 피아노 트랜스크립션은 복잡한 문제이긴 하지만 알고보니 너무 큰 트랜스포머를 사용할 필요는 없는 문제였음.




트랜스포머는 음악분야에서도 유용하게 사용될 수 있는 모델이었음.
 어쩌면 트랜스포머가 정말 지구를 구할지도? 아니면...

 

  • [Vaswani17] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. Gomez, L. Kaiser, and I. Polosukhin, “At- tention is all you need,” in NeurIPS, 2017.
  • [Hawthorne18] C. Hawthorne, E. Elsen, J. Song, A. Roberts, I. Simon, C. Raffel, J. Engel, S. Oore, and D. Eck, “Onsets and Frames: Dual-objective piano transcription,” in ISMIR, 2018. [논문리뷰]
  • [Hawthorne19] C. Hawthorne, A. Stasyuk, A. Roberts, I. Simon, C. Z. A. Huang, S. Dieleman, E. Elsen, J. Engel, and D. Eck, “Enabling factorized piano music modeling and generation with the MAESTRO dataset,” in International Conference on Learning Representations, 2019. [논문리뷰]
  • [Raffel20] C. Raffel, N. Shazeer, A. Roberts, K. Lee, S. Narang, M. Matena, Y. Zhou, W. Li, and P. J. Liu, “Exploring the limits of transfer learning with a unified text-to-text Transformer,” Journal of Machine Learning Research, vol. 21, no. 140, pp. 1–67, 2020.