개요

2008년에 발표한 SEGMENTATION-BASED LYRICS-AUDIO ALIGNMENT USING DYNAMIC
PROGRAMMING
라는 논문을 분석후 간략히 내용을 정리한다.


Abstract

  • 자동화된 가사 Text Sync를 보여줌
  • 주어진 오디오 시그널에서 구조적 segmentation을 첫째로 수행하고 유사한 세그먼트를 세그먼트 pair간 거리를 구해 label한다.
  • Dynamic Programming을 통해 2개의 문자열간 최적의 alignment를 찾고 문단간의 세그먼트 sync를 얻는다.
  • 제안한 알고리즘이 다양한 음원에서 수행되는것을 보여줌

Introduction #1

  • 몇몇 디바이스는 이미 가사를 보여주는 것이 가능함
  • 음절단위 가사 sync가 되면 좋겠지만 문단이나 line으로 싱크를 맞추는 것만으로도 모바일 환경에서는 충분함
  • 이 문제가 최근 MIR 커뮤니티에서 관심을 얻기 시작함

Introduction #2

  • Want et al.이 쓴 논문을 보면 구조적 접근으로 문제해결을 시도하였음
    • 문제를 2가지는 세부 task로 나눔
    • 오디오에서 high level structual information(Measure, Chorus, Singing Voice Section)을 획득함
    • 동시에 가사는 분석되어 미리 정의된 section type중 하나로 label됨
    • 프로세싱 단계에서 각 섹션과 line의 길이를 예측함
    • 한계점은 song structure 및 rhythmic structre에 대한 fix된 assumption

Introduction #3

  • Chen et al.은 low level acoustic feature만을 사용하여 문제 해결을 시도함
    • 그들의 알고리즘은 2개의 컴포넌트로 구성됨
    • vocal/non-vocal detector
    • multi level acoustic model을 통해 sync를 시도
    • 각 컴포넌트는 아래의 일을 수행함
    • vocal detector는 Singing Voice Section 후보군을 발견함
    • lyrics로 부터 grammar net을 생성하여 미리 만들어놓은 acoustic model과의 MLE linear regression을 시도함
    • small Chinese Song에서 phrase level로 81.5%의 정확도를 기록함
    • 내가 생각하는 한계점은 데이터셋 자체가 너무 국소적이다는 점이다. 즉, 모델의 일반화가 어려울수 있을듯 하다.

Introduction #4

  • Fujihara et al.은 sub-problem으로 문제를 나누었다.
    • sub-problem
    • Singing Voice Separation
    • Singing Voice Detection
    • Viterbi-based matching technique을 이용한 분리된 보컬 시그널과 가사의 sync
    • 마지막 alignment 단계에서 오직 모음과 단어간 short puase, sentence/phrase boundary를 이용하여 language model을 만듦
    • 특정 가수에대한 phone model을 도입하여 performance를 향상시킴
    • 10곡의 J-POP곡에 8곡에 대해 90% 이상의 정확도를 기록함
    • 내 생각에 이 또한 데이터 양이 너무 작고 특정 가수에 치중된 모델이라 일반화가 어려울듯 하다.

Introduction #5

  • 이 논문에서는 좀 더 단순하고 기본적인 문제를 다룬다: segment-to-paragraph level에서의 가사 sync문제를 다룬다.
  • segment level alignment는 low level alignment를 위한 intial solution이 될수 있고 line/word level alignment에 도움이 될것으로 기대한다.
  • 필자의 생각에는 segment levle alignment의 접근 방법이 꼭 line/word alignment에 도움이 되리라고 생각치는 않는다. 왜냐면 performance를 올리기 위해 전제할수 있는 사항이 달라서 쓸수 있는 Trick이나 방법론이 달라질수 있다고 생각하기 때문이다.

Method

  • 논문의 시스템은 paragraph-to-segment level sync를 구현하는것이다.
  • segment structure를 audio와 가사에서 찾는다.
    (예를 들어 verse/chorus 섹션을 각각 서로의 정보없이 찾는다)
  • 만약 전체곡을 적절한 segment로 나눌수 있으면 가사에서도 적절한 paragraph를 찾을수 있을것을 가정한다.
  • paragraph-to-segment level alignment가 word/syllable level alignment보다 훨씬 쉽기 때문에 이부분에 집중한다.

필자가 생각하는 한계점은 Audio를 Segment 단위로만 나눠 해결하려는 점이다.


Method: Structural Segmentation #1

  • Structural Segmentation은 MIR 분야의 주요 주제중 하나로 이 논문에서는 이 문제를 풀려고 하지 않음
  • 대부분의 클래식 음악은 의미적 변화나 반복에 의해 구조가 정형화 되어있음
    • 예를들어 {intro-verse-chrous-verse-chorus-bridge-solo-chorus-outro} 같은 식임
  • 논문에서는 음원으로부터 얻어진 low level feature의 self-similarity matrix를 통해 segment를 구성
  • 음원은 spectral analysis 를통해 2차원 feature frame을 뽑아낸 뒤 similarity matrix S를 구성해 feature frame pair의 cosine 유사도를 얻어낸다.

Method: Structural Segmentation #2

  • 이 유사도를 다시 kernel correlation을 통해 1차원 novelty score로 만든다. 이 점수의 peak 들은 음원이 크게 변화하는것을 의미한다.
  • 마지막 segment 경계는 휴리스틱한 임계치값 이상의 peak으로 정한다. 이후 비슷한 segment끼리 클러스터링 한다.
  • 필자 생각엔 이 방법에 휴리스탁 임계치를 쓰는것은 한계점일듯 하다.
  • 또한 클러스터링 이후 labeling도 사람이 직접 해줘야 한다.

Method: Paragraph-to-Segment Alignment

  • 이미 수작업한 가사 paragraph가 있다고 가정한다.
    (paragraph의 종류 포함)
  • 논문에서는 하나 혹은 그이상의 chorus section이 음원의 어느 위치에 존재하는지 알고 있으니 이를 통해 가사를 sync할 수 있다고 말한다.
  • 음원에서 얻어진 chorus 갯수와 lyrics의 chorus 갯수가 다를 수 있는데 lyrics에서의 연속된 chorus를 grouping하는 것으로 해결한다.
  • 다만 chorus간의 sync를 맞추더라도 다양한 경우의 수로 세부 segment는 sync가 안맞을 여지가 있다.
  • 필자생각엔 chorus만 우선 sync를 맞춘다는것 자체가 음원의 근원적 구조상 좋은 시도이지만 세부 sync 맞추는게 경우의수가 많을듯 하다.

Method: Dynamic Programming #1

  • DP 알고리즘에서 최적화 문제를 작은 문제로 나눔
    • 논문에서는 2개의 문자열을 가지고 있음
    • 음원에서 얻어낸 문자열
    • 가사의 구조로 추측한 문자열
  • DP를 이용하여 Error Matrix를 정의해 distance가 최소화 되게끔 DP를 돌림

Method: Dynamic Programming #2

  • Error Matrix는 아래와 같이 정의함


Method: Dynamic Programming #3

  • Error Matrix에 의해 DP로 최소 Distance를 찾음


Experiments

  • 성능을 더 끌어올리기 위해 다른 논문을 참조하여 Audio Segment의 Vocal/Non Vocal Detection을 수행하여 Non Vocal Seg를 제거
  • 이를 통해 성능을 향상시킴


Conclusion

  • 다양한 어플레케이션에서 이 기술이 의미가 있을것으로 확신함
  • audio seg를 찾아내고 여기서 non vocal seg를 제거하여 alignment를 수행함
  • 실험은 다양한 장르의 노래에서 sync를 시도해 성공적인 성능을 보여줌
  • 이 논문을 divide and conquer 방법으로 Hierarchal 하게 이용하면 word level sync에도 도움이 될것으로 논문에서는 예상함
  • vocal detection classifier 성능이 향상되면 sync 성능도 향상될것임

비평

Pros

  • 이 분야에 대한 Context를 잘설명해주어 좋았음
  • DP로 Alignment를 시도한 것이 재밌었음
  • Vocal/Non Detection을 통한 Vocal Seg 제거가 인상적임

Cons

  • segment 기반 alignment라는 한계점
  • segment 선정에 휴리스틱한 임계치가 존재
  • 가사도 hand labeled임
  • 생각보다 수작업이 많음
  • 실험 데이터가 15곡에 불과함