논문제목: Onsets and Frames: Dual-Objective Piano Transcription
저자: Curtis Hawthorne, Erich Elsen, Jialin Song, Adam Roberts, Ian Simon, Colin Raffel, Jesse Engel, Sageev Oore, Douglas Eck
소속: Google Brain
발표: ISMIR 2018
논문: http://ismir2018.ircam.fr/doc/pdfs/19_Paper.pdf
웹페이지: https://magenta.tensorflow.org/onsets-frames
코드: https://github.com/magenta/magenta/tree/main/magenta/models/onsets_frames_transcription
- Transcription은 오디오 시그널로부터 미디 같은 심볼릭 음악 representation을 만들어내는 것.
- 피아노 음악 transcription은 알고보면 사실 쉽지 않음. 기본적으로 동시에 여러 음들이 울려대고(polyphonic), 페달을 밟아 음을 길게 늘릴 수도 있고, 음들도 많음. 그리고 피아노는 타악기 같은 성질도 많이 있어서 음이 시작된 후(onset)에 에너지가 쭉 감소함.
- 하지만 온셋(onset)부분에는 강도도 강하고 percussive하기 때문에 음향학적으로도 잘 찾아지는 편임. 따라서 먼저 온셋을 먼저 찾고, 그 음이 어디까지 이어지는지(frame)을 찾고자 함
- 따라서 두 네트워크가 사용되고, 구조상으로는 CNN과 RNN을 함께 사용
Story
Piano Transcription는 예전에는 NMF등이 사용되곤 했는데, 뉴럴네트워크 시대가 되면서 이 분야도 시대의 흐름을 타고 있음. [Kelz16]에서는 CNN을 사용하고, [Sigtia16]에서는. CNN과 RNN을 함께 사용함. 피아노에서는 온셋(음의 시작, 어택부분)이 중요하기도 하고 계산도 잘되서 예전 연구에서도 자주 사용되었었음[Cheng16][Wang17]. 이 논문에서는 CNN+biLSTM조합에 온셋-프레임 프레임워크를 이용하여 성능을 높이게 됨
Dataset and Metrics
MAPS 데이터셋을 이용. 이 데이터는 Disklavier 피아노를 통해 얻어진 미디/오디오 + 미디에서 합성된 오디오 데이터로 되어있음. 합성된 오디오는 훈련 데이터로 Disklavier 데이터는 테스트셋으로 사용.
메트릭은 표준적인 프레임-레벨 메트릭과 노트-레벨 메트릭을 구함. 노트-레벨에서는 1) 온셋이 50ms 범위에 있으면 오케이 2) 노트길이가 20%안에 있으면 오케이. 그런데 프레임-레벨 메트릭에서는 반복되는 짧은 노트가 계속 있는 꼬진 결과에도 수치적으로 잘나오는 경우가 있음. 따라서 오프셋(음이 끝나는 부분)을 고려한 note-with-offset 메트릭도 제안함. 이러면 온셋과 음길이 모두 잘 잡을 수 있음. 여기에 벨로서티까지 넣으면 금상첨화.
Model Configuration
온셋 디텍터 네트워크와 프레임 디텍터 네트워크로 구성됨. 인풋은 Mel-Spectrogram. 온셋 디텍터는 CNN + bidirectional LSTM (128 unit) + FC layer (88 outpus; 피아노 건반 개수)로 구성됨. 프레임 디텍터은 CNN + FC layer를 통과한 뒤, 온셋 디텍터의 결과와 함께 bidirectional LSTM (128 unit)으로 들어감. 이 결과는 다시 FC 레이어를 통과해서 결과를 냄(88 outputs). 20초 길이정도가 적당한 배치 사이즈.
로스는 온셋 로스 + 프레임 로스. 온셋로스는 정답(I)과 예측(P) 사이의 크로스엔트로피. 프레임로스도 비슷하지만, 여기에 웨이트를 줌. 음이 시작하고(t1) 온셋이 끝나고(t2) 음이 완전히 끝났을 때(t3), 앞부분에 웨이트를 더 줌(5배정도). 온셋이 더 중요하다는 의미.
Velocity Estimation
모델을 확장해서 벨로서티까지 구하고자 함. 구조는 동일함. 로스는 온셋이 있을 때 정답과 예측 벨로서티의 차이. 벨로서티 트랜스크립션은 좀 새롭기 때문에 메트릭을 새로 정의할 필요가 있음. 근데 벨로서티는 음간의 상대적인 크기가 중요하기 때문에 그냥 비교하면 안됨. 따라서 매칭되는 노트가 있을 때 이때 벨로서티를 linear regression을 통하여 최대한 비슷하게 만들고 이 차이가 threshold (0.1) 안에 있을 때만 맞다고 하기로 함.
Experiments
[Kelz16]과 [Sigtia16] 모델을 구현해서 비교함. Melodyne하고도 비교함. 결과 좋음. 속도도 엄청 빠름. Tesla K40c에서 리얼타임보다 70배 빠름.
Ablation Study
이렇게 저렇게 구조를 바꾸고 빼고 실험한 결과, 온셋 정보가 무척 중요하다는 사실을 알게 됨. 온셋 디텍터를 뺴버리면 가장 안좋은 성능이 나옴(하지만 베이스라인보다는 좋음;;). augmentation도 이것저것해봤지만 차이가 없었음. 더 정확한 많은 수의 데이터셋이 필요하다고 생각함(그리고 실제로 그렇게 함).
저자들은 열심히 노력한 결과 소타 모델을 만들었지만, 이제 여기서 더 나아가려면 많고 많은 양질의 데이터가 필요하다는 사실을 느낀 듯. 그 뒤 MAESTRO라는 데이터를 실제로 만들어버림.
- [Cheng16] Tian Cheng, Matthias Mauch, Emmanouil Benetos, Simon Dixon, et al. An attack/decay model for piano transcription. In Proceedings of the 17th International Society for Music Information Retrieval Conference, ISMIR 2016, New York City, United States, August 7- 11, 2016. ISMIR, 2016.
- [Kelz16] Rainer Kelz, Matthias Dorfer, Filip Korzeniowski, Sebastian Bock, Andreas Arzt, and Gerhard Widmer. On the potential of simple framewise approaches to piano transcription. arXiv preprint arXiv:1612.05153, 2016.
- [Sigtia16] Siddharth Sigtia, Emmanouil Benetos, and Simon Dixon. An end-to-end neural network for polyphonic piano music transcription. IEEE/ACM Transactions on Audio, Speech and Language Processing (TASLP), 24(5):927–939, 2016.
- [Wang17] Qi Wang, Ruohua Zhou, and Yonghong Yan. A two-stage approach to note-level transcription of a specific piano. Applied Sciences, 7(9):901, 2017.