KR101286862B1 - 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법 - Google Patents

블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법 Download PDF

Info

Publication number
KR101286862B1
KR101286862B1 KR1020110120667A KR20110120667A KR101286862B1 KR 101286862 B1 KR101286862 B1 KR 101286862B1 KR 1020110120667 A KR1020110120667 A KR 1020110120667A KR 20110120667 A KR20110120667 A KR 20110120667A KR 101286862 B1 KR101286862 B1 KR 101286862B1
Authority
KR
South Korea
Prior art keywords
music
fingerprint
search
block
sample
Prior art date
Application number
KR1020110120667A
Other languages
English (en)
Other versions
KR20130055115A (ko
Inventor
이선형
Original Assignee
(주)이스트소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)이스트소프트 filed Critical (주)이스트소프트
Priority to KR1020110120667A priority Critical patent/KR101286862B1/ko
Publication of KR20130055115A publication Critical patent/KR20130055115A/ko
Application granted granted Critical
Publication of KR101286862B1 publication Critical patent/KR101286862B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Abstract

본 발명은 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법에 관한 것으로서, 보다 상세하게는 오디오 핑거프린트를 이용하여 음악 검색을 할 때, 검색의 효율성을 높이기 위해 후보 음악을 블록별로 나누고, 각각의 블록의 검색 가중치를 부여한 후, 가중치가 높은 순서대로 검색을 실시함으로써 검색 결과를 신속하게 얻을 확률을 높여주는 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법에 관한 것이다.
본 발명에 따르면 샘플 음악으로부터 원본 음악을 검색하기 위하여 데이터베이스에서 이루어지는 오디오 핑거프린트의 조회수를 줄여서 보다 빠른 시간내에 정확한 검색결과를 얻을 수 있는 효과가 있다.

Description

블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법{AUDIO FINGERPRINT SEARCHING METHOD USING BLOCK WEIGHT FACTOR}
본 발명은 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법에 관한 것으로서, 보다 상세하게는 오디오 핑거프린트를 이용하여 음악 검색을 할 때, 검색의 효율성을 높이기 위해 후보 음악을 블록별로 나누고, 각각의 블록의 검색 가중치를 부여한 후, 가중치가 높은 순서대로 검색을 실시함으로써 검색 결과를 신속하게 얻을 확률을 높여주는 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법에 관한 것이다.
음악 검색을 위한 오디오 핑거프린팅 방법은 스펙트럼(spectrum)의 랜드마크(landmark)를 기반으로 하는 Shazam 방법, 오디오 스펙트럼 이미지에 wavelet 변환을 하여 핑거프린트(fingerprint)를 추출하는 Google 방법, 주파수 밴드의 에너지 차이를 이진화한 필립스 방법 등이 있다. 이 중 많이 사용되는 필립스 방법은 룩업테이블(lookup table) 기반 검색 방법을 사용함으로써 대용량 데이터베이스 음악 검색에 적합하게 설계되어있다.
하지만 데이터베이스를 구성하는 원본 음악과 검색하고자 하는 샘플 음악의 신호가 유사한 경우, 검색 샘플과 원본 음악의 동일 블록 사이에 동일한 핑거프린트를 가지는 프레임(frame)이 증가하게 된다. 동일한 핑거프린트 값을 가지고 검색 샘플과 원본 음악의 유사도를 비교하는 룩업테이블 기반 방법의 특성상 동일한 값의 핑거프린트가 많아지게 되면 검색 횟수가 증가하는 단점이 있다. 검색 횟수가 증가하는 것을 방지하기 위해 오디오 특징 벡터의 차수를 높게 하는 경우에는 유사한 특징 벡터가 발생할 확률이 줄어들기 때문에 검색 횟수는 적어지나, 노이즈 샘플에 대한 검색 정확도가 낮아지고, 검색 정확도를 높이기 위해 특징 벡터의 차수를 낮게 하는 경우에는 반대로 노이즈 샘플에 대한 검색 정확도는 높아지나 검색 횟수가 증가하는 단점을 가지고 있다.
아래에서 필립스 오디오 핑거프린트 추출 방법을 설명한다.
도 1은 오디오 핑거프린트 생성과 검색 시스템의 구성을 나타낸 블럭도이며, 도 2는 핑거프린트 생성부의 구조를 나타낸 블럭도, 도 3은 검색 샘플 음악과 룩업테이블에 저장된 후보 음악의 핑거프린트 구조를 나타낸 블럭도이다.
핑거프린트 생성부(100)는 알려진 음악 데이터로부터 오디오 핑거프린트를 생성하여 핑거프린트 데이터베이스(200)에 저장한다. 오디오 검색부(300)는 검색 대상이 되는 오디오 데이터와 핑거프린트 데이터베이스(200)에 저장된 오디오 핑거프린트를 비교하여 일치하는 음악에 대한 정보를 추출한다.
도 2에는 핑거프린트 생성부(100)의 구성이 도시되어 있는데, 오디오 핑거프린트를 생성하기 위해서 먼저 프레임분할(104) 회로가 오디오 시그널(102)의 입력된 시간 영역의 신호를 일정한 길이의 프레임으로 나눈다. 프레임은 대략 0.5초 안팎의 길이를 갖는 것이 일반적이지만, 그 길이는 달라질 수 있다.
FFT(Fast Fourier Transform; 106) 회로는 분할된 오디오 시그널 프레임을 주파수 영역으로 변환하고, 300 내지 2000㎐ 대역에서 로그 간격을 가지는 33개 주파수 밴드로 나눈다.
각각의 주파수 밴드의 에너지 크기(절대값)는 파워스펙트럼(108) 회로에 의해서 계산되어 밴드 분할단계(110)로 전달된다.
밴드 분할단계(110)에서는 각각의 주파수 스펙트럼을 미리 정해진 수의 밴드로 나누고, 밴드 에너지 계산단계(112)에서는 각 밴드의 파워스펙트럼 값의 제곱을 모두 합하여 밴드 에너지를 계산한다.
비트 계산단계에서는 각 밴드의 에너지 크기가 인접한 밴드의 에너지 크기에 비해서 크면 1로, 작으면 0으로 할당하여 각 에너지 밴드의 비트를 계산한다. 각각의 에너지 밴드의 비트를 계산하는 식은 다음과 같다.
Figure 112011091236995-pat00001
-------------(1)
Figure 112011091236995-pat00002
-------------(2)
수식 (1)에서 E(n,m)은 n번째 프레임의 m번째 주파수 밴드의 에너지 크기를 의미하고, ED(n,m)은 인접한 시간-주파수 변화에 따른 에너지 차이를 의미한다.
이러한 에너지 차이는 수식 (2)를 통해 이진화되어 32차의 서브-핑거프린트(sub-fingerprint)로 변환되고, 이러한 서브-핑거프린트 256개가 모여 하나의 오디오 핑거프린트를 구성하게 된다.
이와 같은 방식으로 오디오 프레임의 각각의 스펙트럼은 32차(32비트)의 핑거프린트로 변환되어 핑거프린트 데이터베이스(200)에 저장된다.
본 발명에서는 프레임 길이와 간격이 각각 350㎳와 10㎳이고, 50 내지 2500㎐ 대역에서 로그 간격을 가지는 28차 서브-핑거프린트를 사용하였다.
한편, 두 개의 원본(Original) 및 대상(Target) 오디오 핑거프린트 사이의 거리는 해밍거리(Hamming distance)를 이용하여 BER(Bit Error Rate)로 표현할 수 있다. 거리를 계산할 때 비교하는 핑거프린트의 프레임 길이를 F라고 할 때 BER은 수식 (3)과 같다.
Figure 112011091236995-pat00003
----------(3)
도 3은 기존의 룩업테이블 기반의 오디오 핑거프린트 검색 데이터베이스 구조를 나타낸다. 룩업테이블은 서브-핑거프린트 값을 key로 하고, 원곡에서 서브-핑거프린트의 위치 정보를 value로 하여 데이터베이스의 인덱스를 구성하게 된다.
먼저, 도 3에서와 같이, 찾고자 하는 대상이 되는 음악의 샘플오디오 핑거프린트를 생성한다. 그리고 검색 대상이 되는 샘플 음악의 서브-핑거프린트 값과 동일한 서브-핑거프린트(도 3에서는 0x00000001)를 가지는 음악의 위치를 룩업테이블에서 찾은 뒤, 데이터베이스에서 그 위치의 오디오 핑거프린트 블록과 샘플 음악의 오디오 핑거프린트 블록 사이의 BER을 계산한다. 후보가 될 수 있는 복수의 음악(음악1, 음악2 등) 중에서 BER이 최소인 음악의 BER이 사전에 정해진 경계값(threshold) 보다 낮으면 검색이 성공한 것으로 간주하여 검색절차를 종료한다.
핑거프린트의 검색에서는 검색하고자 하는 샘플 음악과 원본 음악의 해당 구간에 같은 값을 가지는 서브-핑거프린트가 적어도 1개 존재한다는 가정하에 검색을 하게 되는데, 입력된 샘플 음악의 왜곡이 심한 경우에는 동일한 값을 가지는 서브-핑거프린트가 존재하지 않을 수 있다. 이러한 경우에는 서브-핑거프린트에서 임의의 1 비트를 반전하여 인덱스를 재탐색하게 된다. 일정 횟수 이상 재탐색을 하여도 찾을 수 없는 경우 핑거프린트 데이터베이스(200)에 샘플 음악이 없다고 판단하고 검색을 종료하게 된다.
32차 서브-핑거프린트를 사용하는 경우, 핑거프린트 데이터베이스(200)에 10,000 곡이 있을 때 전체 서브-핑거프린트의 개수는 약 2억 5000만 개 정도가 되는데, 룩업테이블 기반으로 데이터베이스 검색을 하게 되면 데이터베이스의 오디오 핑거프린트 조회 횟수는 쿼리(query) 당 평균 약 300 회가 된다. 이것은 데이터베이스에 있는 음악의 개수에 비례하므로, 대용량 음악 검색의 경우 많은 데이터베이스 조회, 즉 디스크 I/O를 초래하는 문제점이 있다.
또한 검색하고자 하는 샘플 음악이 잡음 등에 의해서 왜곡된 경우, 서브-핑거프린트를 룩업테이블에서 찾지 못할 수 있기 때문에 데이터베이스 조회 횟수는 더욱 늘어날 수 있다. 그리고 서브-핑거프린트 차수에 따라 잡음에 대한 민감도가 달라지게 되는데, 이러한 민감도를 줄이기 위해서 차수를 낮춘다면 이는 곧 데이터베이스 조회 횟수의 증가와 검색 성능의 하락으로 이어지게 되는 문제점이 있다.
전술한 문제점을 해결하기 위한 본 발명은 음악 검색에 있어서 잡음에 강한 대용량 음악을 위해서 낮은 차수의 서브-핑거프린트를 사용하고, 동시에 데이터베이스 조회수를 효율적으로 줄일 수 있도록 하는 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법을 제공하는 것을 목적으로 한다.
또한 본 발명은 룩업테이블 기반의 오디오 핑거프린트 검색 성능을 개선하기 위해 검색 후보음악의 각각의 블록에 가중치를 부여하고, 가중치 순서대로 데이터베이스를 검색함으로써 검색 속도를 개선할 수 있도록 하는 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법을 제공하는 것을 목적으로 한다.
전술한 문제점을 해결하기 위해 안출된 본 발명은 검색 대상이 되는 샘플 음악과 데이터베이스에 저장된 원본 음악의 핑거프린트의 유사도를 비교하여 음악을 검색하는 방법으로서, 상기 원본 음악의 핑거프린트가 저장된 핑거프린트 데이터베이스의 룩업테이블에서 검색 후보 음악을 추출하는 제1단계와; 상기 검색 후보 음악의 핑거프린트를 블록으로 구분하는 제2단계와; 각각의 블록의 가중치를 계산하는 제3단계와; 상기 블록을 가중치가 높은 블록부터 낮은 블록의 순서대로 재정렬하는 제4단계와; 상기 검색 후보 음악의 핑거프린트 블록 중에서 가중치가 높은 핑거프린트 블록부터 순서대로 선택하여 상기 검색 대상이 되는 샘플 음악의 핑거프린트 블록과 BER(Bit Error Rate)을 계산하는 제5단계와; 상기 검색 후보 음악 중에서 어느 한 음악의 핑거프린트 블록에 대해서 상기 제5단계에서 계산한 BER이 경계값보다 낮으면 상기 음악을 검색결과로 표시하는 제6단계;를 포함한다.
상기 제1단계는 상기 원본 음악의 핑거프린트와 동일한 핑거프린트가 발현된 음악을 검색 후보 음악으로 결정하는 것을 특징으로 한다.
상기 제3단계는 상기 블록의 가중치(P)는
Figure 112011091236995-pat00004
의 식으로 계산되며, 상기 UV는 상기 검색 후보 음악의 핑거프린트 블록 안에서 상기 검색 대상이 되는 샘플 음악의 서브-핑거프린트가 고유하게 발생하는 횟수이며, 상기 S는 상기 검색 대상이 되는 샘플 음악의 서브-핑거프린트가 발현한 위치에 대한 표준편차인 것을 특징으로 한다.
본 발명에 따르면 샘플 음악으로부터 원본 음악을 검색하기 위하여 데이터베이스에서 이루어지는 오디오 핑거프린트의 조회수를 줄여서 보다 빠른 시간내에 정확한 검색결과를 얻을 수 있는 효과가 있다.
도 1은 오디오 핑거프린트 생성과 검색 시스템의 구성을 나타낸 블럭도.
도 2는 핑거프린트 생성부의 구조를 나타낸 블럭도.
도 3은 검색 샘플 음악과 룩업테이블에 저장된 후보 음악의 핑거프린트 구조를 나타낸 블럭도.
도 4는 가중치가 부여된 후보 음악 핑거프린트를 검색하여 일치하는 음악을 찾는 과정을 나타낸 순서도.
도 5는 블록 크기에 따른 포지티브 샘플의 검색 정확도를 나타낸 그래프.
도 6은 블록 크기에 따른 네거티브 샘플의 검색 정확도를 나타낸 그래프.
이하에서 도면을 참조하여 본 발명의 실시예에 따른 "블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법"(이하, '검색방법'이라 함)을 설명한다.
도 4는 가중치가 부여된 후보 음악 핑거프린트를 검색하여 일치하는 음악을 찾는 과정을 나타낸 순서도이다.
본 발명에서는 하나의 음악을 일정한 길이를 가지는 블록으로 나누고, 각각의 블록에 검색을 위한 가중치를 부여하고, 가중치가 높은 블록부터 먼저 오디오 핑거프린트를 비교하여 일치하는 음악이 있는지를 검색한다. 이를 위해 먼저 핑거프린트 생성부(100)가 검색 대상이 되는 음악의 샘플오디오 핑거프린트(A)를 생성하여 저장한다.
오디오 검색부(300)는 룩업테이블(B)에서 검색 후보가 될 수 있는 음악을 추출한다.(S102) 즉, 검색하고자 하는 대상이 되는 샘플 음악의 서브-핑거프린트들이 발현된 음악(C, D)을 룩업테이블(B)에서 탐색하여 각 음악별로 서브-핑거프린트가 발현된 위치 순서대로 정렬을 한다.
그리고 검색 후보가 될 음악(C, D)을 일정한 길이의 블록으로 구분한다.(S104) 블록의 길이를 결정하는 방식에 대해서는 후술한다.
그리고 구분된 각각의 블록의 가중치를 계산한다.(S106) 가중치는 검색 우선 순위를 결정하기 위한 것으로서, 가중치를 계산하기 위해서 검색 대상이 되는 샘플 음악의 서브-핑거프린트들이 원본 음악에서 발현된 횟수와 발현된 위치에 대한 표준 편차를 사용한다.
가중치로 결정되는 검색 우선 순위는 곡 단위로 하지 않고 블록 단위로 계산한다. 예를 들면 대중가요 같은 노래에서 반복이 많이 되는 후렴구의 오디오 신호로 음악을 검색하는 경우 음악 안에서 2~3곳 이상 유사한 블록이 발견될 수 있다. 또한 검색 대상이 되는 샘플 음악과 전혀 다른 음악인 경우에도 해당 음악의 전체에 걸쳐 같은 값을 가지는 서브-핑거프린트가 산발적으로 분포할 수 있다. 이러한 경우 곡 단위로 가중치를 계산하게 되면 같은 값을 가지는 서브-핑거프린트의 분포의 표준편차가 커지기 때문에 동일한 노래임에도 불구하고 우선 순위가 하락할 수 있게 된다. 따라서 각각의 블록별로 가중치를 계산함으로써 특정 오디오 패턴이 포함된 블록을 정확하게 구분해낼 수 있게 된다.
후보 블록의 크기를 구하기 위해서 한 개의 후보 음악 전체에서 검색 대상이 되는 샘플 음악의 서브-핑거프린트가 고유하게 발현한 횟수를 사용한다. 후보 음악의 블록 안에서 검색 대상 음악의 서브-핑거프린트가 고유하게 발생하는 횟수를 구하여 UV라 하고, 서브-핑거프린트가 발현한 위치에 대한 표준편차를 S라고 할 때, 후보 음악 블록의 가중치 P는 수식 (4)로 구할 수 있다.
Figure 112011091236995-pat00005
------------------------------------(4)
가중치를 수식 (4)와 같이 구하는 이유는 블록 안에서 중복되지 않은 서브-핑거프린트가 많이 발현되고, 서브-핑거프린트가 발현된 위치의 간격이 좁을수록 유사도가 높기 때문이다. 이렇게 계산된 가중치는 값이 클수록 우선 순위가 높은 블록이 된다.
오디오 검색부(300)는 가중치가 계산된 후보 음악 블록을 가중치 순서대로 재정렬한다.(S108) 바람직하게는 가중치가 높은 블록부터 낮은 블록의 순서로 정렬한다. 그리고 정렬된 후보 음악 블록을 가지고 룩업테이블 인덱스를 탐색하여 검색 대상이 되는 원본 음악의 핑거프린트 블록과 검색 후보 음악의 핑거프린트 블록의 BER을 계산한다.(S110) 만약 계산된 BER이 소정의 경계값보다 낮은 음악을 찾는다면 해당 음악을 결과로서 반환하고, 이를 사용자에게 표시한다.(S112, S114) 만약 BER이 경계값 보다 낮은 음악을 찾지 못하면 기존 검색 방식과 동일하게 샘플 핑거프린트의 서브-핑거프린트에서 임의의 1 비트를 반전하여 검색을 재시도한다.
실험결과
본 발명의 검색방법을 적용하여 무작위의 음악을 검색한 결과에 대해서 설명한다.
음악 검색을 위한 데이터베이스는 192 내지 320kbps의 고음질 MP3 파일 1,000 개로 구성되었으며 검색 샘플은 128kbps 음악에 SNR(Signal to Noise Ratio)이 각각 5dB, 10dB, 15dB, 20dB, 25dB, 30dB 이 되도록 화이트 노이즈(white noise)를 추가하여 각각 1,000 개를 준비하였다. 검색 실험을 진행하기 위하여 포지티브(positive) 샘플 실험의 경우 1,000 개의 원본 MP3 음악을 대상으로 검색하였고, 네거티브(negative) 샘플의 경우 찾고자 하는 음악을 제외한 나머지 999개의 원본 MP3 음악을 대상으로 검색하였다.
검색 대상이 되는 샘플 음악의 핑거프린트 블록의 크기는 필립스 핑거프린트 방법과 유사한 약 3초에 해당하는 길이를 사용하였다.
실험은 룩업테이블 인덱스를 이용하여 검색 샘플 음악의 핑거프린트 블록 전체를 탐색하는 "전체검색(full search)" 방식과, 검색 중 경계값 이내의 음악이 나오면 검색을 종료하는 "First 검색" 방식, 그리고 본 발명에서 제안한 "후보검색(candidate search)" 방식의 세 가지에 대해 진행하였다.
[표 1]은 각각의 방식의 검색에서 도출된 검색결과의 정확성을 나타낸 표이다.
Figure 112011091236995-pat00006
평균 검색 정확도는 네거티브 샘플에 대해서는 모든 케이스에서 비슷하게 나왔지만 포지티브 샘플에서는 전체검색과 후보검색이 유사하게 나왔고, First 검색의 경우에는 다른 두 방식에 비해 낮은 정확도가 나옴을 확인할 수 있다.
한편, 검색 핑거프린트 블록과 원본 음악의 유사도를 비교한 횟수인 "검색횟수"는 포지티브 샘플의 경우 전체검색이 가장 많은 탐색 횟수를 나타냈고, 후보검색이 그 다음, First 검색이 가장 작은 탐색 횟수를 나타냄을 [표 2]를 통해 확인하였다.
Figure 112011091236995-pat00007
네거티브 샘플의 경우에는 세 방식이 비슷한 검색 횟수를 나타내었다.
검색을 위한 데이터베이스는 1,000 곡의 음악으로 이루어져 있는데 음악의 평균 길이를 5 분이라고 할 때, 약 3,000만 개의 서브-핑거프린트가 존재하게 된다. 이 서브-핑거프린트가 인덱스 안에 균등하게 분포하고 있다고 하면 인덱스에 서브-핑거프린트가 평균적으로 위치하는 개수는 약 0.1(= 30×106 / 228)이 된다. 이러한 경우 하나의 서브-핑거프린트가 여러 곡에 중복되어 나타날 확률도 매우 낮아지기 때문에 First 검색의 경우 작은 검색 횟수로 대상 음악을 찾을 수 있게 된다. 그러나 SNR 5dB 샘플과 같이 노이즈가 많은 경우, 추출된 핑거프린트 블록에서 원본 음악과 동일한 값을 가지는 서브-핑거프린트가 적어지게 되므로 높은 검색 횟수가 나타나게 된다.
후보검색과 전체검색의 성능 차이를 좀 더 자세히 비교하기 위해서는 후보검색의 "인덱스 접근횟수(index access count)"를 검색횟수로 환산할 필요가 있다. 검색횟수는 원본 음악과 검색 핑거프린트 블록의 BER을 계산하는 횟수이고, 인덱스 접근횟수는 후보 블록의 가중치를 계산하기 위해 룩업테이블 인덱스가 적재된 메모리에서 데이터를 읽는 횟수를 의미한다. 원본 음악과 검색 대상 음악의 핑거프린트 블록간의 BER 계산은 서브-핑거프린트 별로 해밍거리를 계산하여 누적한 값을 핑거프린트 블록간의 BER로 사용하기 때문에 검색 대상 음악의 핑거프린트 블록의 크기(F)만큼 원본 음악의 핑거프린트가 적재된 메모리를 접근하여 데이터를 읽어오게 된다. 이러한 관계를 이용하여 인덱스 접근횟수와 검색횟수를 메모리 접근 횟수의 관점에서 동일한 단위로 환산하면 수식 (5)와 같다.
Figure 112011091236995-pat00008
----------------------------------------(5)
기서 ST는 검색횟수이며, I는 인덱스 접근횟수를 의미한다.
수식 (5)를 이용하여 인덱스 접근횟수가 가장 많은 SNR 30dB 의 포지티브 샘플에 대해 환산을 해보면 인덱스 접근횟수(I)는 7179 이고 검색 핑거프린트 블록의 크기(F)는 310 개였을 때, 환산된 검색횟수(ST)는 약 23회가 된다. ST를 검색 횟수인 81 과 합하면 검색횟수와 동일한 단위가 된다. 같은 샘플의 결과와 비교해 보면 평균 검색 횟수가 428회인 전체검색 보다 후보검색이 약 4 배 정도 검색 속도에서 성능 향상이 있는 것을 볼 수 있다. 검색 정확도 면에서도 속도가 가장 빠른 전체검색 보다 높고, 정확도가 제일 높은 전체검색에 근접하는 것을 확인하였다. 결과 전체에 대해 환산을 해보면 포지티브 샘플에 대해서는 전체검색의 평균 검색 횟수에 비해 약 1.5 내지 4배 정도의 성능 향상을 보이고, 노이즈가 적은 샘플일수록 성능 향상의 폭이 커지는 것을 확인할 수 있었다.
한편, 원본 노래에 대한 핑거프린트를 메모리에 적재하지 않고 디스크에서 직접 읽는 방식으로 구성되어 있다고 가정할 때의 성능 향상을 계산해보면 다음과 같다.
SATA3 방식의 하드 디스크와 DDR3 SDRAM의 PC3-10600 모듈의 사양(specification) 상의 최대 전송 속도가 각각 약 600MB/s 와 10,666MB/s로 DDR3 SDRAM이 하드디스크에 비해 약 18배 정도 속도가 빠르다.
이러한 속도 차이를 VD라 할 때 가중치 계산을 위해 메모리에 접근하는 횟수를 하드디스크에 접근하는 횟수(S)로 환산을 한 HA는 수식 (6)으로 표현할 수 있다.
Figure 112011091236995-pat00009
------------------------------------(6)
수식 (5)로 환산된 SNR 30dB 의 포지티브 샘플의 S를 수식 (6)으로 재환산하면 HA는 약 1.2가 되고, 이는 가중치 설정을 위한 작업이 원본 음악의 핑거프린트 블록 두 개를 디스크에서 직접 읽는 것보다 빠르다는 것을 알 수 있다.
포지티브 샘플의 후보 리스트 내 위치와 전체 후보 블록수 결과를 보면 후보 블록의 수가 300 개 이내이고 후보 리스트에서 평균적으로 상위 20% 이내에 검색 대상 음악의 블록이 존재하는 것을 확인할 수 있다.(표 3 참조)
Figure 112011091236995-pat00010
노이즈 샘플에 대해 검색 핑거프린트 길이를 1 내지 5초로 변화시키면서 후보검색 방식으로 검색한 포지티브와 네거티브 샘플의 정확도는 도 5 및 6과 같다.
도 5는 블록 크기에 따른 포지티브 샘플의 검색 정확도를 나타낸 그래프이며, 도 6은 블록 크기에 따른 네거티브 샘플의 검색 정확도를 나타낸 그래프이다.
도 5와 6에서 가로축은 핑거프린트 블록의 크기(초)를 나타내며, 세로축은 검색의 정확도를 나타낸다.
포지티브 샘플 검색의 경우에는 블록의 길이가 길어질수록 정확도가 올라가는 경향이 뚜렷하고, 네거티브 샘플 검색의 경우에는 블록이 짧고 SNR이 큰 샘플일수록 오류 포지티브 결과가 다수 나와 낮은 정확도를 보이지만, 3초 이상의 핑거프린트 길이를 사용한 경우에는 높은 정확도를 나타내었다.
네거티브 샘플의 이 같은 결과는 SNR이 낮을수록 다양한 악기와 보컬과 같은 음악적인 신호들이 노이즈에 의한 간섭으로 구별하기가 어려워지기 때문에 일반적인 음악과는 전혀 다른 패턴의 핑거프린트가 추출되어 네거티브 검색 정확도가 높아지게 된다는 것을 의미한다. SNR이 높은 경우에는 핑거프린트 추출시 음악적인 신호의 기여도가 높아지게 되어 원본 음악과 유사한 핑거프린트가 추출되지만, 네거티브 샘플의 검색시 검색 핑거프린트 블록이 1초인 경우에는 2초 이상을 사용한 경우보다 상대적으로 낮은 정확도를 나타냈다. 이는 검색 오디오 샘플의 각각의 블록이 1초 정도로 짧은 경우에는 다른 노래임에도 불구하고 비슷한 노래라고 판단할 수 있는 구간이 존재하는 것을 의미하기 때문에 2초 이상의 오디오 샘플 블록을 사용해야 안정적인 검색 정확도를 확보할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하였지만, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술 분야의 당업자가 본 발명의 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 청구범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 핑거프린트 생성부 200 : 핑거프린트 데이터베이스
300 : 오디오 검색부

Claims (3)

  1. 오디오 검색부(300)가 검색 대상이 되는 샘플 음악과 데이터베이스에 저장된 원본 음악의 핑거프린트의 유사도를 비교하여 음악을 검색하는 방법으로서,
    상기 원본 음악의 핑거프린트가 저장된 핑거프린트 데이터베이스(200)의 룩업테이블을 검색하여 상기 샘플 음악의 핑거프린트와 동일한 핑거프린트가 발현된 음악을 검색 후보 음악으로 결정하여 추출하는 제1단계와;
    상기 검색 후보 음악의 핑거프린트를 3초 내지 5초의 길이를 가지는 블록으로 구분하는 제2단계와;
    각각의 블록의 가중치(P)를
    Figure 112013013269021-pat00018
    의 식으로 계산하는 제3단계와;
    상기 블록을 가중치가 높은 블록부터 낮은 블록의 순서대로 재정렬하는 제4단계와;
    상기 검색 후보 음악의 핑거프린트 블록 중에서 가중치가 높은 핑거프린트 블록부터 순서대로 선택하여 상기 검색 대상이 되는 샘플 음악의 핑거프린트 블록과 BER(Bit Error Rate)을 계산하는 제5단계와;
    상기 검색 후보 음악 중에서 어느 한 음악의 핑거프린트 블록에 대해서 상기 제5단계에서 계산한 BER이 경계값보다 낮으면 상기 음악을 검색결과로 표시하는 제6단계;를 포함하며,
    상기 UV는 상기 검색 후보 음악의 핑거프린트 블록 안에서 상기 검색 대상이 되는 샘플 음악의 서브-핑거프린트가 고유하게 발생하는 횟수이며,
    상기 S는 상기 검색 후보 음악의 핑거프린트 블록 안에서 상기 검색 대상이 되는 샘플 음악의 서브-핑거프린트가 발현한 위치에 대한 표준편차인 것을 특징으로 하는, 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법.
  2. 삭제
  3. 삭제
KR1020110120667A 2011-11-18 2011-11-18 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법 KR101286862B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110120667A KR101286862B1 (ko) 2011-11-18 2011-11-18 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110120667A KR101286862B1 (ko) 2011-11-18 2011-11-18 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법

Publications (2)

Publication Number Publication Date
KR20130055115A KR20130055115A (ko) 2013-05-28
KR101286862B1 true KR101286862B1 (ko) 2013-07-17

Family

ID=48663688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110120667A KR101286862B1 (ko) 2011-11-18 2011-11-18 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법

Country Status (1)

Country Link
KR (1) KR101286862B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436271B2 (en) 2016-02-29 2022-09-06 Gracenote, Inc. Indexing fingerprints

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636467A (zh) * 2015-02-11 2015-05-20 王磊 离线音频库及相应服务器音频库的构建方法及设备
FR3085785B1 (fr) * 2018-09-07 2021-05-14 Gracenote Inc Procedes et appareil pour generer une empreinte numerique d'un signal audio par voie de normalisation
US11798577B2 (en) 2021-03-04 2023-10-24 Gracenote, Inc. Methods and apparatus to fingerprint an audio signal

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Haitsma외2. An Efficient Database Search Strategy For Audio Fingerprinting. Multimedia Signal Processing 2002 IEEE workshop on, 2002, pp.178-181 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436271B2 (en) 2016-02-29 2022-09-06 Gracenote, Inc. Indexing fingerprints

Also Published As

Publication number Publication date
KR20130055115A (ko) 2013-05-28

Similar Documents

Publication Publication Date Title
KR100774585B1 (ko) 변조 스펙트럼을 이용한 음악 정보 검색 방법 및 그 장치
CN102959624B (zh) 用于音频媒体识别的系统和方法
KR100838674B1 (ko) 오디오 핑거프린팅 시스템 및 방법
US20200257722A1 (en) Method and apparatus for retrieving audio file, server, and computer-readable storage medium
CN103971689B (zh) 一种音频识别方法及装置
Bertin-Mahieux et al. Large-scale cover song recognition using hashed chroma landmarks
US9313593B2 (en) Ranking representative segments in media data
US10657175B2 (en) Audio fingerprint extraction and audio recognition using said fingerprints
CN1890665A (zh) 旋律数据库搜索
KR101286862B1 (ko) 블록별 가중치 부여를 이용한 오디오 핑거프린트 검색방법
BRPI0112901B1 (pt) métodos para reconhecer uma amostra de áudio, e, sistema de computador para realizar o mesmo
US9159328B1 (en) Audio fingerprinting for advertisement detection
CN107204183B (zh) 一种音频文件检测方法及装置
US10860647B2 (en) Systems, methods, and apparatus to improve media identification
WO2016189307A1 (en) Audio identification method
US20240086385A1 (en) Methods and Appartus for Efficient Media Indexing
CN106782612A (zh) 一种逆向爆音检测方法及其装置
Wang et al. Contented-based large scale web audio copy detection
Fan et al. Notice of violation of ieee publication principles: A music identification system based on audio fingerprint
US10776420B2 (en) Fingerprint clustering for content-based audio recognition
KR100914518B1 (ko) 장르 분류 택소노미 생성 시스템 및 그 방법, 상기 방법을구현하는 프로그램이 기록된 기록매체
KR102255156B1 (ko) 복수의 음악 파일들을 관리하는 장치 및 방법
Casey Audio tools for music discovery

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee