자동 음악 반주 시스템: 병렬 HMM 기반 실시간 스코어 추적 및 동시 반주

본 논문은 인간 연주자를 실시간으로 추적하고, 그에 맞춰 자동으로 반주를 생성하는 시스템을 제안한다. 스코어 추적은 비음성 데이터에 기반한 은닉 마코프 모델(HMM)로 구현하고, 오류(잘못된 음, 누락, 추가)와 템포 변동을 처리한다. 또한 두 손을 각각 담당하는 병렬 HMM과 O(N·W) 복잡도의 빠른 Viterbi 알고리즘을 도입해 실시간 성능을 확보하였다.

저자: Anyi Rao, Francis Lau

자동 음악 반주 시스템: 병렬 HMM 기반 실시간 스코어 추적 및 동시 반주
본 논문은 인간 연주자를 실시간으로 따라가면서 자동으로 반주를 제공하는 시스템을 설계하고 구현한다. 서론에서는 기존 정적 반주 방식의 한계와 실시간 스코어 팔로워의 필요성을 제시하고, 자동 반주 시스템이 실시간으로 연주자의 진행 상황을 파악하고 즉각적인 반주를 생성해야 함을 강조한다. 연구 목표는 HMM 기반의 스코어 추적기와 반주 생성기를 통합한 완전한 파이프라인을 구축하는 것이다. 배경에서는 연주 중 발생할 수 있는 오류를 세 가지 클래스로 구분한다. ‘WRONG’는 잘못된 음을 연주하는 경우, ‘SKIP’은 악보상의 음을 놓치는 경우, ‘EXTRA’는 악보에 없는 추가 음을 연주하는 경우이다. 이러한 오류는 실제 연주에서 빈번히 나타나며, 시스템이 이를 견고하게 처리해야 실용성이 확보된다. 2절에서는 HMM의 구조를 상세히 설명한다. 관찰 공간은 12음계(옥타브 차이 무시)로 정의하고, 은닉 상태는 박자 기반으로 설계한다. 동일한 박자 내에서 여러 음을 동시에 연주하는 다성 입력을 처리하기 위해 각 손을 별도의 HMM으로 모델링한다. 박자 기반 상태 표현은 두 가지 방법을 논의한다. 첫 번째는 자기 전이를 이용해 음표가 지속되는 동안 같은 상태에 머무르는 방식이며, 두 번째는 음표 길이에 비례해 연속적인 상태를 배치하는 방식이다. 저자는 두 번째 방식을 채택해 음표 길이 정보를 보다 명시적으로 모델에 반영한다. 오류 모델링에서는 정상 상태와 ‘ghost’ 상태(오류 발생 시 전이되는 보조 상태)를 도입하고, 각 오류 유형에 대응하는 전이 경로를 그림 2에 제시한다. 이를 통해 연주자가 오류를 범했을 때도 HMM이 합리적인 경로를 따라 현재 위치를 추정할 수 있다. 학습 단계는 Baum‑Welch 알고리즘을 기반으로 한다. 전방 변수 α, 후방 변수 β, 상태 점유 확률 γ, 전이 점유 확률 ξ를 정의하고, 이들을 이용해 파라미터 π, A, B를 반복적으로 업데이트한다. 알고리즘 1은 초기화부터 수렴 조건까지의 전체 흐름을 제시한다. 디코딩은 실시간 스코어 팔로잉의 핵심이다. 전통적인 Viterbi 알고리즘은 O(N²) 복잡도로 실시간 적용이 어려우므로, 저자는 전이 행렬을 대역 행렬(밴드 매트릭스)과 전역 스킵 확률 μ로 분해한다. 슬라이딩 윈도우 W(=W₁+W₂+1)를 설정해 현재 상태와 인접 상태만 고려하고, 전역 스킵 확률은 모든 상태에 대해 동일하게 적용한다. 식 (14)는 최종 복잡도가 O(W·N)임을 보여준다. 알고리즘 2는 초기화, 슬라이딩 윈도우 적용, 전방 재귀, 최종 상태 선택 과정을 단계별로 설명한다. 2.4절에서는 두 손 병렬 HMM을 제안한다. 좌·우 손 각각에 독립적인 HMM을 두고, 손 교차가 없다는 전제 하에 전체 상태를 (η, f_L, f_R) 형태의 삼중 튜플로 결합한다. 이를 통해 두 손의 진행 상황을 동시에 추적하면서도 전이 복잡도를 크게 증가시키지 않는다. 3절에서는 실제 반주 시스템 구현을 다룬다. 3.1절은 박자 추적 모듈로, 최근 몇 박의 인터노트 간격을 평균화해 현재 템포를 추정하고, 이를 기반으로 반주의 재생 속도를 동적으로 조절한다. 연주자가 ‘ghost’ 상태에 있을 경우 해당 입력은 템포 추정에 사용되지 않는다. 3.2절은 다이내믹 제어로, MIDI 볼륨 정보를 실시간으로 수집해 반주의 볼륨을 연주자보다 약간 낮게 설정함으로써 연주 라인이 돋보이도록 한다. 3.3절은 규칙 기반 반주 생성기로, 현재 스코어 상태에 맞는 화음(코드)을 선택하고, 미리 정의된 화성 진행 규칙에 따라 반주를 출력한다. 인간 반주자가 약간의 지연 후에 반응하는 것을 모방해, 오류가 감지된 다음 상태에서 반주를 조정한다. 마지막으로 논문은 본 시스템이 Windows 기반의 첫 번째 오픈소스 자동 반주 프로그램임을 강조하고, 학습·디코딩 복잡도를 O(N²)에서 O(W·N)으로 감소시킨 점, 두 손 병렬 HMM을 도입해 정확도와 속도를 동시에 개선한 점을 주요 공헌으로 제시한다. 향후 연구로는 다양한 악기와 장르에 대한 일반화, 청중 평가를 통한 사용자 경험 측정, 그리고 다중 음성(예: 합주) 상황에 대한 확장성을 제안한다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기