상기와 같은 목적을 달성하기 위한 본 발명의 인덱스 정보를 이용한 오디오 핑거프린트 검색 시스템은, 오디오 파일에 대한 오디오 핑거프린트의 통계적 특성에 기반하여 인덱스를 생성하고, 상기 인덱스, 오디오 핑거프린트 및 노래정보를 연속적으로 매칭시키는 위치정보를 저장하는 DB 그룹; 및 입력되는 새로운 오디오 파일에 대한 오디오 핑거프린트의 통계적 특성에 기반하여 새로운 인덱스를 생성하고, 상기 새로운 인덱스를 상기 DB 그룹에서 검색하여 상기 새로운 오디오 파일에 대한 해당 노래정보를 검색하는 오디오 핑거프린트 검색 장치를 포함하여 이루어진 것을 특징으로 한다.
한편, 본 발명의 인덱스 정보를 이용한 오디오 핑거프린트 검색 방법은, (a) 오디오 파일에 대한 오디오 핑거프린트의 통계적 특성에 기반하여 인덱스를 생성하고, 상기 인덱스, 오디오 핑거프린트 및 노래정보를 연속적으로 매칭시키는 위치정보를 저장하는 DB 그룹을 마련하는 단계; (b) 입력되는 새로운 오디오 파일에 대한 오디오 핑거프린트의 통계적 특성에 기반하여 인덱스를 생성하는 단계; 및 (c) 상기 (b) 단계에서 생성된 인덱스를 DB 그룹에서 검색하여 상기 새로운 오디오 파일에 대한 해당 노래정보를 검색하는 단계를 포함하여 이루어진 것을 특징으로 한다.
이하, 본 발명의 인덱스 정보를 이용한 오디오 핑거프린트 검색 시스템 및 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 의한 오디오 핑거프린트 검색 시스템의 전체 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 오디오 핑거프린트 검색 시스템은 오디오 핑거프린트 검색 장치(1)를 포함하여, 이 오디오 핑거프린트 검색 장치(1)는 입력되는 오디오 파일에 대한 오디오 핑거프린트를 추출하는 핑거프린트 추출부(11)와, 인덱스를 생성할 때 사용된 평균값과의 차의 절대값 순으로 정렬하여 변화 가능한 위치를 고려하여 후보인덱스를 생성하는 후보인덱스 검색부(12)와, 후보인덱스에 대응하는 오디오 핑거프린트를 추출된 오디오 핑거프린트에 매칭시키는 핑거프린트 매칭부(13)와, 오디오 핑거프린트들간의 거리를 측정하여 미리 설정된 값 이내에 있을 경우에 해당 노래정보임을 검증하는 결과 검증부(14)로 구성되어 있 다.
여기서, 본 발명은 인덱스를 통한 검색이 이루어지므로 오디오 핑거프린트와 인덱스를 매칭시켜 저장한 DB 그룹(2)이 더 마련되어야 한다. 즉, 본 발명의 오디오 핑거프린트 검색 장치(1)가 운용되어지기 위한 데이스베이스화가 선행되어야 하며, 이 DB 그룹(2)은 핑거프린트 DB(21), 노래정보 DB(22) 및 핑거프린트 인덱스 DB(23)로 구성되는 것이 바람직하다. 또한, 오디오 핑거프린트와 인덱스를 매칭시켜 저장하기 위해서는 오디오 파일의 전처리가 이루어져야 하는데, 이 처리를 위해 오디오 파일들 및 Music ID 정보 등을 입력받아 오디오 핑거프린트와 인덱스를 매칭을 수행하는 인덱스 처리부(3)를 더 마련하는 것이 바람직하다.
이와 같이, 본 발명은 핑거프린트 인덱스가 생성되어 데이터베이스화되는 DB 생성 영역과, 데이터베이스화된 인덱스를 이용하여 검색하는 DB 검색 영역으로 구성되게 된다. 즉, 인덱스가 생성되는 단계에서는 핑거프린트 DB(21), 노래정보 DB(22) 및 핑거프린트 인덱스 DB(23)에 해당 정보가 각각 저장되며, 인덱스를 이용하여 검색하는 단계에서는 핑거프린트 추출, 인덱스를 통한 후보 검색, 매칭, 결과 검증의 과정이 진행된다. 본 실시예에서는 2개 영역을 구분하고 있으나, 이 영역은 하나의 영역에서 이루어질 수 있음은 당연할 것이다.
도 2는 본 발명의 일실시예에 의한 인덱스 처리부의 구성도이다.
도 2에 도시된 바와 같이, 본 발명의 인덱스 처리부(3)는 핑거프린트 추출부(31), 핑거프린트 통계분석부(32), 핑거프린트 이진화부(33) 및 핑거프린트 인덱 싱부(34)로 구성되어 있다.
이와 같이 구성되어, 입력되는 오디오 파일에 대해 핑거프린트 추출부(31)는 핑거프린트 추출 알고리즘을 이용하여 오디오 핑거프린트를 추출하고, 추출된 오디오 핑거프린트에 대해 핑거프린트 통계분석부(32)는 오디오 핑거프린트의 통계적 특성을 분석하여 확률적으로 동일한 분포를 갖는 확률 분포를 구한다. 즉, 오디오 핑거프린트의 평균과 분산을 구하여 핑거프린트를 확률 모델로 근사화한다. 이어서, 핑거프린트 이진화부(33)에서 오디오 핑거프린트의 통계적 특성을 분석하여 확률적으로 동일한 분포를 가지도록 이진화하고, 핑거프린트 인덱싱부(34)에서 인덱스를 생성한다.
여기서, 상기 핑거프린트 추출 알고리즘은 ZCR(Zero Crossing Rate), 에너지 차(Energy Difference), 주파수 평편도(Spectral flatness), MFCC(Mel Frequency Cepstral Coefficients), 주파수 무게중심(Frequency Centroids) 중에서 어느 하나를 이용하게 된다.
도 3은 본 발명의 오디오 핑거프린트 검색 시스템에서 이용되는 DB 파일의 구조 및 관계를 나타낸 도면이다.
도 3을 참조하면, 상기한 바와 같이 본 실시예에서 DB 그룹(2)은 핑거프린트 DB(21), 노래정보 DB(22) 및 핑거프린트 인덱스 DB(23)로 구성되어 있다.
핑거프린트 DB(21)는 각 오디오에 따른 핑거프린트 값과 노래에서의 위치정보를 저장하고 있다. 노래정보 DB(22)는 노래 고유의 ID(Music ID)와 핑거프린트의 개수 등 정보를 저장하고 있다. 핑거프린트 인덱스 DB(23)는 이진화된 핑거프린트 값에 따른 핑거프린트 DB(21) 상에서의 위치정보를 저장한다.
이와 같이, 각 DB에 해당 정보를 저장하고 있는 상태에서, 임의의 오디오 파일에 대한 검색 요청이 있을 경우에 먼저 오디오 파일의 도 2에서와 같은 인덱싱 과정을 거쳐 후보인덱스를 생성하고, 이 후보인덱스를 핑거프린트 인덱스 DB(23)에서 검색하여 후보인덱스에 대한 핑거프린트 위치정보를 파악한다. 이어서, 핑거프린트 위치정보에 대응하여 핑거프린트 DB(21)에 저장된 핑거프린트 정보와 노래의 위치정보를 파악하여, 노래의 위치정보에 대응하는 노래정보 DB(22)에 저장된 노래정보를 출력시키게 되는 것이다.
도 4는 핑거프린트 인덱스 생성시 사용되는 확률 분포의 일례를 나타낸 도면이다.
도 4에 도시된 바와 같이, 정규화된 주파수 무게중심 값들의 히스토그램 분포로 평균이 '0' 근처에 있음을 확인할 수 있다.
도 5는 오디오 검색 과정에서 추출된 핑거프린트를 이용하여 핑거프린트 인덱스를 생성하고 검색하는 과정을 나타낸 도면이다.
도 3과 같이 오디오 파일로부터 3개의 DB 파일이 준비되면, 이 파일을 이용하여 오디오 핑거프린트 검색 장치(1)는 검색 서비스를 실시한다.
도 5를 참조하면, 검색 과정은 임의의 오디오 파일이 입력되면, 이 오디오 파일로부터 DB 생성에 사용된 동일한 방법으로 오디오 핑거프린트를 추출하는 단계, 추출된 핑거프린트로부터 인덱스를 구해 후보 핑거프린트를 구하는 단계, 후보 핑거프린트로부터 매칭하는 단계, 매칭된 결과를 이용해 검증하는 단계로 순차적으로 진행되며 구체적으로 설명하면 다음과 같다.
오디오 파일이 입력되며 오디오 핑거프린트 추출 방법을 동일한 방법으로 오디오 핑거프린트를 추출하여 인덱스를 생성하게 된다. 즉, 입력되는 오디오 파일에 대해 핑거프린트 추출부(11)는 핑거프린트 추출 알고리즘을 이용하여 오디오 핑거프린트를 추출하고, 추출된 오디오 핑거프린트에 대해 핑거프린트 통계분석부(32)는 오디오 핑거프린트의 통계적 특성을 분석하여 확률적으로 동일한 분포를 갖는 확률 분포를 구한다. 즉, 오디오 핑거프린트의 평균과 분산을 구하여 핑거프린트를 확률 모델로 근사화한다. 이어서, 핑거프린트 이진화부(33)에서 오디오 핑거프린트의 통계적 특성을 분석하여 확률적으로 동일한 분포를 가지도록 이진화하고, 핑거프린트 인덱싱부(34)에서 인덱스를 생성한다.
다음으로, 오디오 검색을 위해 후보 핑거프린트 값을 얻기 위해서, 핑거프린트 인덱싱부(34)에서 생성된 인덱스 값에 대응하여 핑거프린트 인덱스 DB(23)에서 해당 인덱스 값을 가지는 핑거프린트 DB(21)에서의 위치정보를 얻는다. 한편, 과정에서 오디오가 왜곡되었을 경우, 임의의 오디오에서 추출한 핑거프린트 값은 왜곡에 따라 변형되었을 가능성이 존재하고 이에 따라 핑거프린트의 인덱스 값 또한 변할 수 있다. 인덱스 값의 변화는 노이즈 첨가, 이퀄러이제이션(Equalization), 압축(Compression), A/D 변환, D/A 변환 등에서도 발생할 수 있다. 이러한 경우를 대 비해서 후보인덱스를 생성하게 되는 것이다.
이와 같이, 후보인덱스를 생성한 후에, 이들 후보인덱스에 대응하여 핑거프린트 인덱스 DB(23)에서 해당 후보인덱스 값을 가지는 핑거프린트 DB(21)에서의 위치정보도 얻는다. 이후, 핑거프린트의 매칭 및 검증 과정을 거쳐 해당 노래정보에 대한 검색결과가 출력된다.
도 6은 오디오 검색 과정에서 후보인덱스를 생성하는 과정을 나타낸 도면이다.
도 6에 도시된 바와 같이, N차원의 핑거프린트 값이 존재할 경우에, 우선 인덱스를 생성할 때 사용된 평균값과의 차의 절대값 순으로 오름차순 정렬한다. 확률 분포 모양에 따라 문턱값(th)를 정하여 변화 가능한 위치를 결정하고, 이 위치의 변화를 고려하여 후보인덱스를 생성한다.
도 7은 오디오 검색 과정에서 생성된 후보인덱스를 이용하여 최종 결과를 검색하는 과정을 나타낸 도면이다.
도 7에 도시된 바와 같이, 생성된 후보인덱스의 값과 일치하는 핑거프린트 값을 호출하고, 이 값의 위치에서 검색하고자 하는 오디오 핑거프린트간의 거리를 측정한다. 미리 결정한 문턱값과 비교하여 최소값이 문턱값 내에 있을 경우에 하나의 결과를 저장한다. 신뢰도 높은 결과를 위해 이 과정을 다른 위치의 핑거프린트에서 반복하고, 결과 검증을 통해 최종 결과를 출력한다.
실시예
본 실시예에서는 추출된 오디오 핑거프린트는 부동소수형의 실수값을 갖는 것으로 하며, 핑거프린트의 확률 모델을 추정하면 도 4와 같이 평균이 '0'인 종모양의 본포를 지닌다고 가정한다. 이때, 평균 '0'을 이용하여 [수식 1]과 같이 비트(Bit) '0'과 비트(Bit) '1'을 할당하면 N차원의 핑거프린트를 다음 N개의 이진수로 표현할 수 있다.
[수식 1]
이진수로 표현된 핑거프린트는 다시 [수식 2]를 통해 십진수로 표현되고, 이를 이용하여 데이터베이스 저장을 위한 인덱스로 사용한다.
[수식 2]
예를 들어 N이 16인 경우, 16차원의 오디오 핑거프린트는 0부터 65535사이의 값중 하나로 표현되고, 이값을 데이터베이스에서 인덱스로 사용한다.
본 발명의 오디오 핑거프린트 시스템에서는 오디오 검색을 위해서 3개의 데이터베이스용 파일이 생성된다. 이는 도 3과 같이 핑거프린트 DB(21), 노래정보 DB(22), 핑거프린트 인덱스 DB(23)로 구성된다.
핑거프린트 DB(21)는 추출된 핑거프린트 값을 저장하고 있는 것으로 추출된 핑거프린트 값 그대로를 저장한다. 노래정보 DB(22)는 핑거프린트 생성시에 제공된 정보를 바탕으로 핑거프린트를 추출한 노래에 대한 정보를 저장한다. 예를 들어, 노래의 고유 번호(Music ID), 저작권 정보, 핑거프린트의 길이 등 다양한 정보가 저장될 수 있다. 핑거프린트 인덱스 DB(23)는 핑거프린트를 [수식 1]과 [수식 2]를 통해 인덱스로 변형한 후, 인덱스에 해당하는 핑거프린트값들을 핑거프린트 DB(21)에서의 위치정보에 따라 저장한다.
예를 들어 16차원 핑거프린트의 경우, 도 3와 같이 핑거프린트가 순차적으로 위치정보와 함께 저장된다. 이와 함께 노래정보와 핑거프린트에 대한 정보가 저장된다. 핑거프린트 인덱스는 도 3에서와 같이 해당 인덱스 값을 가지는 핑거프린트의 위치정보가 저장되어 검색에 이용된다.
이와 같이, 오디오 파일로부터 3개의 DB 파일이 준비되면, 이 파일을 이용하여 오디오 핑거프린트 시스템은 검색 서비스를 실시한다. 즉, 검색 과정은 임의의 오디오 파일이 입력되면, 이 오디오 파일로부터 DB 생성에 사용된 동일한 방법으로 오디오 핑거프린트를 추출하는 단계, 추출된 핑거프린트로부터 인덱스를 구해 후보 핑거프린트를 구하는 단계, 후보 핑거프린트로부터 매칭하는 단계, 매칭된 결과를 이용해 검증하는 단계로 순차적으로 진행되며 구체적으로 설명하면 다음과 같다.
오디오 파일이 입력되며 오디오 핑거프린트 추출 방법을 동일한 방법으로 오 디오 핑거프린트를 추출하여 인덱스를 생성하게 된다.
다음으로, 오디오 검색을 위해 후보 핑거프린트 값을 얻기 위해서, 핑거프린트 인덱싱부(34)에서 생성된 인덱스 값에 대응하여 핑거프린트 인덱스 DB(23)에서 해당 인덱스 값을 가지는 핑거프린트 DB(21)에서의 위치정보를 얻는다. 한편, 과정에서 오디오가 왜곡되었을 경우, 임의의 오디오에서 추출한 핑거프린트 값은 왜곡에 따라 변형되었을 가능성이 존재하고 이에 따라 핑거프린트의 인덱스 값 또한 변할 수 있다. 인덱스 값의 변화는 노이즈 첨가, 이퀄러이제이션(Equalization), 압축(Compression), A/D 변환, D/A 변환 등에서도 발생할 수 있다. 이러한 경우를 대비해서 후보인덱스를 생성하게 되는 것이다.
이와 같이, 후보인덱스를 생성한 후에, 이들 후보인덱스에 대응하여 핑거프린트 인덱스 DB(23)에서 해당 후보인덱스 값을 가지는 핑거프린트 DB(21)에서의 위치정보도 얻는다. 이후, 핑거프린트의 매칭 및 검증 과정을 거쳐 해당 노래정보에 대한 검색결과가 출력된다.
한편, 후보인덱스를 생성하는 과정에 대해 더욱 상세히 설명하면 다음과 같다. N차원의 핑거프린트가 존재하는 경우, 인덱스를 생성하기 위해 사용한 확률 분포의 평균(실시의 예에서는 평균 '0')을 중심으로 가까운 거리 순으로 N차원의 값을 정렬한다. 이때, 확률 분포에 따라 변화 가능성이 큰 위치를 순차적으로 구할 수 있다. 확률 분포를 통해 특정 거리 범위 내에 있는 경우를 선택할 수도 있고, 개수를 정하여 무조건 몇 개의 위치를 선정할 수도 있다.
[수식 3]
앞서 사용한 오디오 핑거프린트에서는 확률 분포가 도 6처럼 종모양의 분포를 가지고 문턱값을 상수로 결정하면, 핑거프린트에 따라 변화 가능한 위치정보를 얻을 수 있다. 이 위치가 결정되면 핑거프린트를 추출하는 과정에서 사용했던 인덱스 생성 방법대로 인덱스를 생성하고, 추가적으로 변화가 가능한 위치에서의 가능한 모든 조합의 인덱스를 생성한다.
예를 들어, 4차원 오디오 핑거프린트 값이(-0.2, 0.1, 0.4, 0.2)이고 인덱스를 결정하는 값이 '0'이며, 2번째 위치가 변할 확률이 크다고 하면 구해지는 인덱스는 0111이고, 2번째 위치가 변할 확률이 존재하므로 0011 또한 후보인덱스가 된다.
이처럼 후보인덱스를 구한 후 해당 인덱스에서 핑거프린트 DB(21)에서의 위치정보를 참조하여 후보 핑거프린트를 얻어 위치정보에 따라 검색을 원하는 오디오 핑거프린트와 거리 비교를 위해 정렬한다. 이때, 기준이 되는 위치에 해당되는 값들을 기준으로 중복을 제거하고 특정길이 K개의 임의의 오디오 핑거프린트와 오디오 핑거프린트 DB(21)의 핑거프린트 값과의 거리를 측정한다. 일례로 Euclidian Distance를 측정하고 문턱값과의 비교를 통해 거리가 문턱값 내외에 있으면 노래정보 DB(22)에서 노래정보를 검색하여 결과로 가져오고, 그렇지 않은 경우에 대해서 는 노래가 검색되지 않았음을 나타내는 기본 정보 값을 결과로 출력한다. 이 과정은 도 7에 자세히 표현되어 있다. 결과값은 아래의 [수식 4]처럼 데이터베이스 상에서 노래정보를 나타내는 MusicID와, 시간적 위치를 나타내는 Position, 거리차이 즉 신뢰도를 나타내는 Distance로 이루어진다.
[수식 4]
MusicID는 특정 위치에서 문턱값 내일 경우, 그때의 핑거프린트 인덱스 DB(23)에서의 position정보를 이용하여 구한다. 노래정보 DB(22)에는 각 노래의 핑거프린트 개수가 저장되어 있으므로 m번째 MusicID가 결과라면, m-1번째 노래까지의 핑거프린트 개수의 합보다 position의 값이 크고, m+1번째 노래 합보다는 작을 것이므로 이 사실을 이용하여 MusicID의 값을 구한다.
[수식 5]
일반적인 시스템은 검색의 신뢰도를 위해 검색 과정을 여러 번에 걸쳐 진행할 수 있다. 후보 핑거프린트를 검색한 위치가 아닌 다른 위치에서 다시 후보인덱스를 검색하고 후보 핑거프린트를 검색하는 과정을 반복하여 결과를 얻을 수 있다.
이러한 결과는 시스템에 정하는 파라미터 값에 의해 결정되며, 반복된 회수 만큼의 검색 결과가 저장된다. 이 저장된 결과는 검증과정을 통해 최종 검색 결과로 출력된다.
검증의 과정에서는 검색하고자 하는 임의의 오디오 신호에서 추출된 핑거프린트들은 시간상 연속적인 값들이다. 즉 시간 순서대로 핑거프린트가 추출된다. 마찬가지로 생성된 핑거프린트 DB(21)도 시간 순서대로 핑거프린트가 추출되고 저장되어 있다.
즉, 특정 위치에서 핑거프린트를 이용하여 검색한 결과와 다음 위치의 핑거프린트를 이용하여 검색한 결과는 시간적으로 동일한 거리차를 가지게 된다. 이를 이용하여 다음의 [수식 6]으로 결과를 검증한다.
[수식 6]
즉, 임의의 오디오 파일 검색에 있어 서로 p만큼 위치에서 검색한 결과의 값이 같다면, 결과의 위치정보의 차는 p-1보다 크거나 p+1보다 작은 범위에 존재해야 한다. 이러한 사실을 바탕으로 반복적으로 얻은 결과의 값에 대해 각각 위의 검증을 실행하고 이상이 없는 경우 최종결과값을 출력한다.
검증을 위해서 40초 분량의 2만 7천곡의 오디오 파일에 대해서 테스트 데이터베이스를 생성하고, 이를 기반으로 DB에 존재하는 100개, 20초분량의 MP3 32kbps 로 압축된 오디오에 대해 검색을 실시하였다. 사용된 핑거프린트로는 앞서 실시예로 제시한 핑거프린트를 16차원에 대해서 추출하여 사용하였다. 거리 비교를 위해서는 52개의 핑거프린트를 이용하였고, 검증을 위해서 5번의 검색을 실시하였다. 성능의 비교를 위해서 동일한 조건에서 순차적인 검색도 실시하였다. 순차적 검색은 DB 상의 모든 핑거프린트를 검색하여 거리비교를 통해 최소값을 가지는 결과를 최종 결과로 한다.
[표 1]
구 분 |
인식률(%) |
100개의 총 검색시간(sec) (추출시간 및 검색 시간 포함) |
순차적 검색 |
99% |
368 초 |
인덱스를 이용한 검색 (후보인덱스 문턱값: 1) |
87% |
31 초 |
인덱스를 이용한 검색 (후보인덱스 문턱값: 5) |
96% |
41 초 |
[표 1]에서 알 수 있듯이, 본 발명에서 제시한 인덱스에 의한 검색을 수행할 경우 순차적인 검색 방법보다 검색 속도가 현저히 줄어드는 것을 확인할 수 있다. 또한, 앞서 설명했던 비트화된 인덱스 값에 의한 인식률 저하는 후보인덱스를 결정하는 파라미터 값을 조정하여 검색 시간의 희생을 통해 신뢰할 수 있을 정도임을 확인할 수 있다.
10초 정도의 총 검색 시간 지연이 발생하나 인식률은 87%에서 96%로 높일수 있으며, 검색 시간은 순차적 검색에 걸린 시간의 1/9 수준으로 줄일 수 있다.
이러한 빠른 검색 시간과 높은 인식률을 바탕으로 대용량 데이터베이스를 대상으로 하는 파일 필터링, 모니터링에 응용될 수 있다. 특히, 최근 문제가 되고 있 는 UCC(User Created Content)에서의 저작권 문제, P2P 공유상에서 저작권 문제의 해결을 위한 파일 필터링에 적용될 수 있다.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.