KR20160100224A - 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치 - Google Patents

오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치 Download PDF

Info

Publication number
KR20160100224A
KR20160100224A KR1020160001876A KR20160001876A KR20160100224A KR 20160100224 A KR20160100224 A KR 20160100224A KR 1020160001876 A KR1020160001876 A KR 1020160001876A KR 20160001876 A KR20160001876 A KR 20160001876A KR 20160100224 A KR20160100224 A KR 20160100224A
Authority
KR
South Korea
Prior art keywords
audio
key
audio fingerprints
key value
server
Prior art date
Application number
KR1020160001876A
Other languages
English (en)
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 레이 왕
Publication of KR20160100224A publication Critical patent/KR20160100224A/ko

Links

Images

Classifications

    • G06F17/30743
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/56Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54
    • H04H60/58Arrangements characterised by components specially adapted for monitoring, identification or recognition covered by groups H04H60/29-H04H60/54 of audio
    • G06F17/30755
    • G06F17/30778
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/35Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
    • H04H60/37Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H2201/00Aspects of broadcast communication
    • H04H2201/90Aspects of broadcast communication characterised by the use of signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)

Abstract

본 발명은 오디오 핑거프린트들 및 상기 오디오 핑거프린트들의 키 값들을 추출하는 단계; 상기 오디오 핑거프린트들 중 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값 사이의 대응 관계를 수립하는 단계; 상기 키 값 및 상기 키 값에 대응되는 상기 오디오 핑거프린트들을 서버로 할당하는 단계; 및 상기 키 값과 상기 서버 사이의 대응 관계를 수립하여 오디오 핑거프린트 데이터베이스를 구축하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법을 개시한다. 본 발명은 오디오 핑거프린트들 및 상기 오디오 핑거프린트들과 연관된 키 값들을 서버들로 고르게 할당함으로써, 매번 질의 요구(inquiry requirement)에서 오디오 핑거프린트들 및 상기 오디오 핑거프린트들에 연관된 키 값들을, 계산을 위해 배치된 서버로 정확하게 제공하며, 상기 계산은 최대 범위의 자원 이용률을 보장하고, 시스템의 동작 기간 동안 각 서버 내 키 각각에 대한 접근 빈도의 통계를 냄으로써 부하 밸런싱을 최적화여 시스템의 처리 능력을 개선시킨다.

Description

오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치{METHOD AND DEVICE FOR CONSTRUCTING AUDIO FINGERPRINT DATABASE AND SEARCHING AUDIO FINGERPRINT}
본 발명은 정보 기술 분야에 관한 것으로, 상세하게는 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치에 관한 것이다.
오디오 핑거프린트 인식은 데이터 집약적이며 연산 집약적인 어플리케이션이다: 어플리케이션의 인식을 보장하기 위해, 방대한 오디오 핑거프린트 데이터베이스는 충분한 수의 오디오 파일들의 특성들을 구비하여야 하고, 이 스케일은 보통 천만 개 수준에 달하며; 검색 알고리즘은 막대한 계산량을 가지며, 검색 속도를 보장하기 위해, 일반적으로 메모리를 최대로 사용하여 방대한 양의 오디오 핑거프린트 데이터베이스를 저장하고 계산을 수행한다.
오디오 핑거프린트 인식은, 현재로서 단일 서버로는 충족될 수 없는, 높은 메모리 용량(TB 수준)을 요구하는 것으로 알려져 있다. 종래 기술에 따르면, 일반적으로 음악 라이브러리를 쪼개고, 많은 수의 서버들을 사용하여 오디오 핑거프린트 데이터베이스들을 각각 구축하도록 하며, 모든 서버들을 검색하는 동안, 이러한 기술은 불필요한 검색, 및 자원들의 낭비를 초래할 것이다. 그러므로, 최적의 자원 이용이 수반되는 방대한 오디오 핑거프린트 데이터베이스 시스템을 어떻게 구축할지가 본 산업 분야의 문제로 대두되었다.
본 발명의 실시예들은 최적의 자원 이용이 수반되는 방대한 오디오 핑거프린트 데이터베이스 시스템을 구축하기 위한 것이다.
본 발명의 일 측면에 따르면, 오디오 핑거프린트들 및 상기 오디오 핑거프린트들의 키 값들을 추출하는 단계; 상기 오디오 핑거프린트들 중 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값 사이의 대응 관계를 수립하는 단계; 상기 키 값 및 상기 키 값에 대응되는 상기 오디오 핑거프린트들을 서버로 할당하는 단계; 및 상기 키 값과 상기 서버 사이의 대응 관계를 수립하여 오디오 핑거프린트 데이터베이스를 구축하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법이 제공된다.
본 발명의 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치는 오디오 핑거프린트들 및 상기 오디오 핑거프린트들과 연관된 키 값들을 서버들로 고르게 할당함으로써, 매번 질의 요구(inquiry requirement)에서 오디오 핑거프린트들 및 상기 오디오 핑거프린트들에 연관된 키 값들을, 계산을 위해 배치된 서버로 정확하게 제공하며, 상기 계산은 최대 범위의 자원 이용률을 보장하고, 시스템의 동작 기간 동안 각 서버 내 키 각각에 대한 접근 빈도의 통계를 냄으로써 부하 밸런싱을 최적화하여 시스템의 처리 능력을 개선시킨다.
도 1은 본 발명의 오디오 핑거프린트 데이터베이스 구축 방법을 설명하기 위한 흐름도
도 2는 본 발명의 서버 내 오디오 핑거프린트 검색 방법을 설명하기 위한 흐름도
도 3은 키 값들 및 키 값들에 연관된 오디오 핑거프린트들의 할당을 나타낸 블록도
도 4는 해쉬 테이블(hash table)의 구조도
도 5는 서버 내 키 값들이 분배된 구조도
도 6은 본 발명의 오디오 핑거프린트 데이터베이스 구축 장치를 나타낸 블록도
도 7은 본 발명의 서버 내 오디오 핑거프린트 검색 장치를 나타낸 블록도
도 1은 본 발명의 오디오 핑거프린트(fingerprint) 데이터베이스 구축 방법을 나타낸 흐름도이다. 도 1에 도시된 흐름도는 오로지 설명을 위한 것이며, 여기에 기재된 단계들은 다른 순서에 따라 수행될 수 있고, 병렬적으로 수행될 수 있으며, 생략 및/또는 다른 단계들이 추가될 수 있음을 이해하여야 한다. 도 1에 도시된 바와 같이, 오디오 핑거프린트 데이터베이스 구축 방법은 오디오 핑거프린트들 및 상기 오디오 핑거프린트들의 키 값들을 추출하는 단계(102); 상기 오디오 핑거프린트들 중 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값 사이의 대응 관계를 수립하는 단계(104); 상기 키 값 및 상기 키 값에 대응되는 상기 오디오 핑거프린트들을 서버로 할당하는 단계(106); 및 키 값과 상기 서버 사이의 대응 관계를 수립하여 오디오 핑거프린트 데이터베이스를 구축하는 단계(108)를 포함한다.
단계 102는 오디오 핑거프린트들 및 상기 오디오 핑거프린트들의 키 값들을 추출하는 단계로서, 즉 먼저 다량의 오디오들을 검색하여 획득하는 단계, 다음으로 다량의 오디오들로부터 오디오 핑거프린트들을 추출하는 단계, 및 오디오 핑거프린트 각각의 키 값을 설정하는 단계이다.
단계 104는 상기 오디오 핑거프린트들 중 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값 사이의 대응 관계를 수립하고, 각 키 값 및 상기 키 값에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계이다. 동일한 키 값을 가지는 오디오 핑거프린트들을 상기 동일한 키 값에 따라 리스팅(listing)하고, 오디오 핑거프린트들과 키 값 사이에 일정한 대응 관계가 존재하도록 하며, 이에 따라 각 키 값 및 상기 키 값에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하고, 오디오 핑거프린트의 키 값은 오디오 핑거프린트를 검색함으로써 획득될 수 있다.
단계 106은 상기 키 값 및 상기 키 값에 대응되는 상기 오디오 핑거프린트들을 서버로 할당하는 단계이며, 단계 108은 상기 키 값과 상기 서버 사이의 대응 관계를 수립하여 오디오 핑거프린트 데이터베이스를 구축하는 단계이다. 키 값들은 무수히 많기 때문에, 상기 키 값들을 서버들로 할당하는 단계가 요구되며, 서버들 각각은 상이한 수의 키 값들을 포함한다.
본 발명의 오디오 핑거프린트 저장 방법에 있어서, 동일한 키 값을 가지는 오디오 핑거프린트들과 키 값 사이의 대응 관계를 수립하는 단계는, 동일한 키 값을 가지는 오디오 핑거프린트들을 동일한 어레이(array)로 분류하는 단계를 포함한다. 동일한 키 값을 가지는 오디오 핑거프린트들을 동일한 어레이로 분류함으로써, 동일한 키 값을 가지는 오디오 핑거프린트들과 키 값 사이의 대응 관계를 수립할 수 있으며, 키 값은 오디오 핑거프린트를 통해 획득될 수 있다. 상기 어레이는 두 개의 엘리먼트들, 즉 키 값 및 오디오 핑거프린트들을 포함한다.
도 1에 도시된 바와 같이, 오디오 핑거프린트 저장 방법은, 상기 어레이의 검색 횟수를 계산하는 단계(110); 상기 검색 횟수에 따라 상기 어레이들을 상기 서버들로 할당하여 상기 서버들 사이의 부하(load) 차이를 최소화하는 단계(112)를 더 포함한다.
단계 110은 어레이의 검색 횟수를 계산하는 단계로서, 상기 어레이의 검색 횟수를 계산하는 단계는, 상기 어레이의 키 값의 검색 빈도를 계산하는 단계; 상기 어레이의 오디오 핑거프린트들의 개수를 판단하는 단계; 상기 검색 빈도와 상기 오디오 핑거프린트들의 개수의 곱을 계산하여 상기 어레이의 검색 횟수를 획득하는 단계를 포함한다. 어레이가 두 개의 엘리먼트들, 즉 키 값 및 오디오 핑거프린트들을 포함함에 따라, 어레이 내 키 값의 검색 빈도를 계산하고 어레이 내 오디오 핑거프린트들의 개수를 판단하여 두 개의 수치들을 획득하며, 검색 빈도와 오디오 핑거프린트들의 개수의 곱을 계산하여 어레이의 검색 횟수를 획득할 수 있다.
단계 112는 상기 검색 횟수에 따라 상기 어레이들을 상기 서버들로 할당하여 상기 서버들 사이의 부하 차이를 최소화하는 단계이다. 어레이들을 서버들로 할당하기 위한 많은 방법들이 존재하며, 이러한 방법들은 랜덤으로 할당될 수 있고, 또한 인위적 및 정적으로 할당될 수 있으며, 또한 특정 알고리즘을 통해 할당될 수 있다. 예를 들어, 먼저 계산을 수행하고 각각의 어레이에서 요구되는 부하를 요청할 수 있고, 다음으로 복수의 어레이들을 특정 시간 간격으로 동일한 서버로 할당할 수 있으며, 이에 따라 상대적으로 균등한 부하가 실현될 수 있다.
본 발명의 일 실시예에 따르면, 바람직하게는, 그리디 알고리즘(greedy algorithm)에 의해 어레이들이 서버들로 할당되어 서버들 사이의 부하 차이를 최소화하며, 다시 말해, 서버들 사이의 부하 밸런싱이 이루어지도록 한다. 그리디 알고리즘은 그리드 알고리즘으로도 불려지며, 그리드 알고리즘은 문제를 해결하는 동안 현재로서 최선으로 보여지는 선택을 항상 수행하며, 즉 그리드 알고리즘은, 전체적인 최적화를 고려하기 보다는, 어느 정도 국소적인 최적화된 해결 방안이다.
이하, 그리디 알고리즘을 이용하여 어레이들을 서버들로 할당하여 서버들 사이의 부하 차이를 최소화하는 단계가 상세한 예를 통해 설명된다. 키1, 키2, 키3, 키4, 키5 및 키6인 여섯 개의 키 값들이 존재하며, 이때 키1의 검색 빈도는 10회, 키2의 검색 빈도는 20회, 키3의 검색 빈도는 30회, 키4의 검색 빈도는 40회, 키5의 검색 빈도는 50회, 키6의 검색 빈도는 60회인 것으로 가정하며; 키1에 제공된 오디오 핑거프린트의 개수는 10, 키2에 제공된 오디오 핑거프린트의 개수는 20, 키3에 제공된 오디오 핑거프린트의 개수는 30, 키4에 제공된 오디오 핑거프린트의 개수는 40, 키5에 제공된 오디오 핑거프린트의 개수는 50, 그리고 키6에 제공된 오디오 핑거프린트의 개수는 60이다. 그러므로 검색 빈도와 오디오 핑거프린트의 수의 곱이 계산되어 어레이의 검색 횟수를 획득할 수 있으며, 키1 및 키1과 연관된 오디오 핑거프린트들이 제1 어레이에 배치되며, 키2 및 키2과 연관된 오디오 핑거프린트들이 제2 어레이에 배치되며, 키3 및 키3과 연관된 오디오 핑거프린트들이 제3 어레이에 배치되며, 키4 및 키4와 연관된 오디오 핑거프린트들이 제4 어레이에 배치되며, 키5 및 키5와 연관된 오디오 핑거프린트들이 제5 어레이에 배치되며, 키6 및 키6과 연관된 오디오 핑거프린트들이 제6 어레이에 배치된다. 그리고 제1 어레이의 검색 횟수가 100, 제2 어레이의 검색 횟수가 400, 제3 어레이의 검색 횟수가 900, 제4 어레이의 검색 횟수가 1600, 제5 어레이의 검색 횟수가 2500, 제6 어레이의 검색 횟수가 3600으로 획득된다. 만약 오직 세 개의 서버가 존재하는 경우, 그리디 알고리즘에 의해, 가장 적은 검색 횟수를 가지는 제1 어레이 및 가장 많은 검색 횟수를 가지는 제6 어레이가 제1 서버로 할당되고, 두 번째로 적은 검색 횟수를 가지는 제2 어레이 및 두 번째로 많은 검색 횟수를 가지는 제5 어레이가 제2 서버로 할당되며, 중간 정도의 검색 횟수를 가지는 제3 어레이 및 제4 어레이가 제3 서버로 할당된다.
만약 오직 두 개의 서버가 존재하는 경우, 그리디 알고리즘에 의해, 제1 어레이, 제5 어레이 및 제6 어레이가 제1 서버로 할당되고, 제2 어레이, 제3 어레이 및 제4 어레이가 제2 서버로 할당된다. 이에 따라, 그리디 알고리즘에 의해, 서버들 사이의 부하 차이가 최소화된다. 본 발명이 구체적인 실시예와 함께 설명되었으나, 이것은 발명을 한정하기 보다는 설명하기 위한 목적이며, 본 발명의 범위에서 벗어나지 않는 한, 실시예들이 변경 및 부가 및/또는 생략될 수 있다. 예를 들어, 실제 적용에 있어서, 검색 횟수는 천만번에서 1억번이 될 수 있으며, 상술한 실시예는 오직 본 발명의 전체적인 개념을 설명하기 위한 목적이며, 특정 수량에 한정되는 것은 아니다.
앞에서 부하 밸런싱 방법이 설명되었으나, 본 발명은 몇몇 특정 알고리즘에 한정되지 않음을 유의한다. 서버의 부하 밸런싱을 성취할 수 있는, 이미 존재하거나 학습되어야 하는 방법 또한 본 발명의 청구된 보호 범위에 포함될 것이다.
부하 밸런싱은 정적(static)일 수 있고, 또한 동적(dynamic)일 수 있다. 정적 밸런싱은 우선 어레이 각각의 부하를 식별하고 서버들의 부하 밸런싱을 수행한 후에 각 서버와 어레이 사이의 대응 관계를 유지하는 것이다. 동적 평형(equilibrium)은 특정 시간 간격으로, 어레이의 모든 부하를 재계산하고 적절한 서버로 재할당하는 것을 의미한다. 동적 부하 밸런싱은 서버로 하여금 장기간 높은 효율을 유지할 수 있도록 할 것이다. 동적 밸런싱은 특정 시간 간격으로 모든 어레이의 부하를 재계산하고 대응되는 서버를 할당하는 것을 의미한다. 동적 부하 밸런싱은 서버들이 장시간 동안 높은 효율을 유지할 수 있도록 한다.
본 발명의 오디오 핑거프린트 저장 방법의 기술적 해결 방안에 따르면, 이하 구체적인 실시예가 개시된다:
(1) 오디오 핑거프린트 인덱스 데이터베이스를 구축하기 위해 오디오 핑거프린트 데이터를 이용하여 오디오 데이터를 가능한 한 많이 수집하고, 도 3에 도시된 바와 같이, 키 값에 따라, 하나의 파일에 저장된 각각의 키 값으로 분류하여 총 n 어레이를 획득하고 하드디스크에 저장한다.
(2) 노드1, 노드2, …, 노드k(node1 , node2 , ,nodek)를 가지는 k개의 서버들 및 초기 데이터, 즉 서버 각각의 오디오 핑거프린트의 개수(numi=0)가 존재하는 것으로 가정한다. n개의 키 및 키i(keyi)의 데이터, 즉 키i에 대한 오디오 핑거프린트의 개수인, 값개수i(valueNumi)가 존재하는 것으로 가정한다. 노드1, 노드2, …, 노드k에 키1, 키2, …, 키k의 데이터 수량을 각각 입력하고, 개수i=값개수i를 만족하도록 서버 각각의 데이터 수량을 업데이트 하며; 키j(j=k+1, …, n)에 대하여, 매번 가장 작은 개수i를 선택하여 노드i에 입력하고, 개수i=개수i+값개수j를 만족하도록 업데이트하며; 마지막으로, 도 4에 도시된 바와 같이, 키 값으로서 키i를, 데이터 값으로서 입력되는 서버 노드j를 획득함으로써 해쉬(hash) 테이블을 구축하고, 키 값에 기초하여 신속하게 오디오 핑거프린트가 위치한 서버를 찾을 수 있도록 한다.
(3) 키i의 빈도를 초기화하여 키빈도i(keyfi)=0(i=1, …, n)를 획득하며; 검색 조건을 수신한 뒤, 오디오 핑거프린트들 및 오디오 핑거프린트들에 대응되는 키 값을 추출하고, 총 m개의 어레이가 존재하는 경우 특징i(featurei)(i=1, …, m)를 저장하고; 먼저 단계 (2)의 해쉬 테이블에서 특징i(키i로 저장된) 각각의 키 값의 서버 노드인 노드k를 찾고, 검색을 위해 특징i를 노드k에 송신하며, 모든 특징i의 중간 결과들을 수신한 후에 요약하고, 검색 알고리즘을 이용하여 최종 분석을 수행하며, 최종 결과를 반환하며, 키i 값의 검색 횟수에 따라 키i의 빈도 키빈도i를 업데이트한다.
(4) 각 어레이 내 키i 값의 검색 빈도를 계산하고, 각 어레이 내 오디오 핑거프린트들의 개수를 판단하며, 검색 빈도와 오디오 핑거프린트들의 개수의 곱을 계산하여 각 어레이의 검색 횟수를 획득한다. 시스템은 설정된 기간 동안, 키i 값에 대응되는 어레이들에 대해, 총계i(totali)= 값개수i* 키빈도i가 되도록 동작한 후에, 이에 따라 어레이 각각의 검색 횟수가 계산되고, 키i 값에 대응되는 어레이들이 그리디 알고리즘과 총계i에 의해 대응되는 서버들로 할당되어 서버들 사이의 부하 차이를 최소화할 수 있다.
도 2는 본 발명의 서버 내 오디오 핑거프린트의 검색 방법을 나타낸 흐름도이다. 도 2에 도시된 흐름도는 오로지 설명을 위한 것이며, 여기에 기재된 단계들은 다른 순서에 따라 수행될 수 있고, 병렬적으로 수행될 수 있으며, 생략 및/또는 다른 단계들이 추가될 수 있음을 이해하여야 한다. 도 2에 도시된 바와 같이, 서버 내 오디오 핑거프린트의 검색 방법은, 검색 대상 오디오 핑거프린트 및 검색 대상 오디오 핑거프린트의 검색 대상 키 값을 추출하는 단계(202); 검색 대상 키 값에 대응되는 서버를 검색하는 단계(204); 및 서버 내 검색 대상 오디오 핑거프린트에 대응되는 오디오 핑거프린트를 검색하는 단계(206)을 포함한다. 서버에는 오디오 핑거프린트들 및 오디오 핑거프린트들에 대응되는 키 값이 저장되며, 키 값은 서버에 대응된다.
단계 202는 검색 대상 오디오 핑거프린트 및 검색 대상 오디오 핑거프린트의 검색 대상 키 값을 추출하는 단계이다. 만약 오디오의 정보가 검색되어야 하는 경우, 검색 대상 오디오 핑거프린트 및 검색 대상 오디오 핑거프린트의 검색 대상 키 값이 우선적으로 획득될 필요가 있다. 검색 대상 오디오 핑거프린트 및 검색 대상 오디오 핑거프린트의 검색 대상 키 값은 하나가 아니며, 복수의 검색 대상 오디오 핑거프린트 및 검색 대상 오디오 핑거프린트의 검색 대상 키 값이 오디오의 정보에 따라 획득될 수 있다.
단계 204는 검색 대상 키 값에 대응되는 서버를 검색하는 단계이다 오디오 핑거프린트들 및 오디오 핑거프린트들에 대응되는 키 값이 서버에 저장되어 있으므로, 대응되는 키 값은 검색 대상 키 값에 따라 검색될 수 있다. 검색하는 동안, 오직 키 값에 대응되는 서버만이 검색된다.
단계 206은 서버 내 검색 대상 오디오 핑거프린트들에 대응되는 오디오 핑거프린트들을 검색하는 단계이다. 상기 단계는, 단계 204의 서버 내 검색 대상 키 값에 대응되는 키 값을 검색하고, 상기 서버 내 키 값에 기초하여 검색 대상 오디오 핑거프린트에 대응되는 오디오 핑거프린트들을 검색한다.
도 2에 도시된 바와 같이, 서버 내 오디오 핑거프린트의 검색 방법은, 검색된 오디오 핑거프린트들을 이용하여 오디오 정보를 생성하는 단계(208)를 더 포함한다. 오디오 정보는 이름, 제작자, 및 이와 같은 오디오에 관한 정보를 포함한다. 검색된 오디오는 복수의 검색 대상 오디오 핑거프린트들 및 검색 대상 오디오 핑거프린트들의 검색 대상 키 값들을 포함하고, 서버 내 대응되는 오디오 핑거프린트들이 검색되며, 검색된 오디오 핑거프린트들은 검색 결과를 생성하기 위해 요약 및 분석되고, 이로써 오디오 정보를 획득할 수 있다.
본 발명의 오디오 핑거프린트 검색 방법의 기술적 해결 방안에 따르면, 이하 구체적인 실시예가 개시된다:
(5) 오디오가 검색되어야 하는 경우, 검색 수요가 수신된 후, 검색 대상 오디오들의 검색 대상 오디오 핑거프린트들 및 상기 검색 대상 오디오 핑거프린트들의 검색 대상 키 값들을 추출하고, 검색 대상 오디오 핑거프린트들 및 상기 검색 대상 오디오 핑거프린트들의 검색 대상 키 값들에 기초하여 서버 내 대응되는 오디오 핑거프린트들 및 키 값들을 검색하고, m개의 어레이들이 존재하는 경우, 즉 m개의 키 값들 및 상기 키 값들에 대응되는 오디오 핑거프린트들이 존재하는 경우 특징i(i=1, …, m)를 저장한다.
(6) 단계 (2)의 작은-사이즈인 해쉬 테이블에서 특징i(키i로 저장된) 각각의 키 값의 서버 노드인 노드k를 찾고, 검색을 위해 특징i를 노드k에 송신하며, 모든 특징i의 중간 결과들을 수신한 후에 요약하고, 검색 알고리즘을 이용하여 최종 분석을 수행하며, 최종 결과를 반환하며, 검색된 오디오들의 오디오 정보를 획득한다.
도 6은 본 발명의 오디오 핑거프린트 데이터베이스 구축 장치를 도시한 구조도이다. 도 6에 도시된 바와 같이, 오디오 핑거프린트 데이터베이스 구축 장치는 추출부(10), 분석부(11), 할당부(12) 및 저장부(13)를 포함하고, 추출부(10)는 오디오 핑거프린트들 및 오디오 핑거프린트들의 키 값을 추출하는 데 사용되고; 분석부(11)는 동일한 키 값을 가지는 오디오 핑거프린트들과 키 값 사이의 대응 관계를 수립하는 데 사용되며; 할당부(12)는 키 값 및 대응되는 오디오 핑거프린트들을 서버로 할당하는 데 사용되고; 저장부(13)는 키 값과 서버 사이의 대응 관계를 수립하여 오디오 핑거프린트 데이터베이스를 구축하는 데 사용된다.
본 발명의 오디오 핑거프린트 데이터베이스 구축 장치는 계산부(14) 및 재할당부(15)를 더 포함하며, 계산부(14)는 어레이들의 검색 횟수를 계산하는 데 사용되고, 재할당부(15)는 검색 횟수에 기초하여 어레이들을 서버들로 할당하여 서버들 사이의 부하 차이를 최소화하는 데 사용된다.
도 7은 본 발명의 서버 내 오디오 핑거프린트 검색 장치를 도시한 구조도이다. 도 7에 도시된 바와 같이, 오디오 핑거프린트 저장 장치는 획득부(20), 검색부(21) 및 매칭부(22)를 포함하며, 획득부(20)는 검색 대상 오디오 핑거프린트들 및 검색 대상 오디오 핑거프린트들의 검색 대상 키 값들을 추출하는 데 사용되며, 검색부(21)는 검색 대상 키 값에 대응되는 서버를 검색하는 데 사용되고, 매칭부(22)는 서버 내 검색 대상 오디오 핑거프린트들에 대응되는 오디오 핑거프린트들을 검색하는 데 사용된다.
도 7에 도시된 바와 같이, 서버 내 오디오 핑거프린드 검색 장치는 생성부(23)를 더 포함하며, 생성부(23)는 검색된 오디오 핑거프린트들을 이용하여 오디오 정보를 생성하는 데 사용된다.
10: 추출부
11: 분석부
12: 할당부
13: 저장부
14: 계산부
15: 재할당부
20: 획득부
21: 검색부
22: 매칭부
23: 생성부

Claims (5)

  1. 오디오 핑거프린트들 및 상기 오디오 핑거프린트들의 키 값들을 추출하는 단계;
    상기 오디오 핑거프린트들 중 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값 사이의 대응 관계를 수립하는 단계;
    상기 키 값 및 상기 키 값에 대응되는 상기 오디오 핑거프린트들을 서버로 할당하는 단계; 및
    상기 키 값과 상기 서버 사이의 대응 관계를 수립하여 오디오 핑거프린트 데이터베이스를 구축하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법.
  2. 청구항 1에 있어서,
    상기 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값 사이의 대응 관계를 수립하는 단계는, 상기 동일한 키 값을 가지는 오디오 핑거프린트들을 동일한 어레이(array)로 분류하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법.
  3. 청구항 2에 있어서,
    상기 어레이들의 검색 횟수를 계산하는 단계; 및
    상기 검색 횟수에 따라 상기 어레이들을 상기 서버들로 할당하여 상기 서버들 사이의 부하(load) 차이를 최소화하는 단계를 더 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법.
  4. 청구항 3에 있어서,
    상기 어레이의 상기 검색 횟수를 계산하는 단계는,
    상기 어레이 내 상기 키 값의 검색 빈도를 계산하는 단계;
    상기 어레이 내 오디오 핑거프린트들의 수를 판단하는 단계;
    상기 검색 빈도와 상기 오디오 핑거프린트들의 수의 곱을 계산하여 상기 어레이의 상기 검색 횟수를 획득하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법.
  5. 청구항 3에 있어서,
    상기 서버들 사이의 부하 차이를 최소화하는 단계는,
    그리디 알고리즘(greedy algorithm)을 이용하여 상기 어레이들을 상기 서버들로 할당하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법.
KR1020160001876A 2015-02-13 2016-01-07 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치 KR20160100224A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510079596.3 2015-02-13
CN201510079596.3A CN104636474A (zh) 2015-02-13 2015-02-13 构建音频指纹库及检索音频指纹的方法和设备

Publications (1)

Publication Number Publication Date
KR20160100224A true KR20160100224A (ko) 2016-08-23

Family

ID=53215220

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020150180948A KR20160100218A (ko) 2015-02-13 2015-12-17 오디오 지문인식 데이터베이스를 구축하고 오디오 지문인식을 검색하기 위한 방법 및 장치
KR1020160001876A KR20160100224A (ko) 2015-02-13 2016-01-07 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020150180948A KR20160100218A (ko) 2015-02-13 2015-12-17 오디오 지문인식 데이터베이스를 구축하고 오디오 지문인식을 검색하기 위한 방법 및 장치

Country Status (3)

Country Link
KR (2) KR20160100218A (ko)
CN (1) CN104636474A (ko)
DE (1) DE102015015827A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138541B (zh) * 2015-07-08 2018-02-06 广州酷狗计算机科技有限公司 音频指纹匹配查询的方法和装置
CN105184610A (zh) * 2015-09-02 2015-12-23 王磊 基于音频指纹的实时移动广告同步投放方法及设备
CN105933761B (zh) * 2016-06-24 2019-02-26 中译语通科技股份有限公司 一种新型视听节目广告投播方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777075B (zh) * 2010-02-05 2015-02-11 上海全土豆网络科技有限公司 并行音频指纹检索方法
US9992745B2 (en) * 2011-11-01 2018-06-05 Qualcomm Incorporated Extraction and analysis of buffered audio data using multiple codec rates each greater than a low-power processor rate
CN103324577B (zh) * 2013-06-08 2016-04-06 北京航空航天大学 基于最小化io访问冲突和文件分条的大规模分条文件分配***

Also Published As

Publication number Publication date
KR20160100218A (ko) 2016-08-23
DE102015015827A1 (de) 2016-08-18
CN104636474A (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
Yagoubi et al. Massively distributed time series indexing and querying
US11423082B2 (en) Methods and apparatus for subgraph matching in big data analysis
US9235651B2 (en) Data retrieval apparatus, data storage method and data retrieval method
US10268716B2 (en) Enhanced hadoop framework for big-data applications
Yagoubi et al. Dpisax: Massively distributed partitioned isax
US8271523B2 (en) Coordination server, data allocating method, and computer program product
US11100073B2 (en) Method and system for data assignment in a distributed system
JP2021500649A (ja) シャード・データベースのシャード・テーブルにレコードを記憶するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、シャード・データベースのシャード・テーブルからレコードを検索するためのコンピュータ実装方法、コンピュータ・プログラム製品、およびシステム、ならびにシャード・データベースを記憶するためのシステム
WO2012030411A1 (en) Method for classification of objects in a graph data stream
US9619501B2 (en) Index scan device and index scan method
JP5427640B2 (ja) 決定木生成装置、決定木生成方法、及びプログラム
KR20100072777A (ko) 다중 길이 시그니처 파일 기반 분산 색인 시스템 및 방법
WO2017118335A1 (zh) 一种映射方法和设备
US10944645B2 (en) Node of a network and a method of operating the same for resource distribution
US11221890B2 (en) Systems and methods for dynamic partitioning in distributed environments
US10162830B2 (en) Systems and methods for dynamic partitioning in distributed environments
Moise et al. Terabyte-scale image similarity search: experience and best practice
CN111026709A (zh) 基于集群访问的数据处理方法及装置
KR20160100224A (ko) 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치
CN106844553B (zh) 基于样本数据的数据探测和扩充方法及装置
CN111400301B (zh) 一种数据查询方法、装置及设备
US10698955B1 (en) Weighted abstract path graph database partitioning
KR20130047042A (ko) 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법
CN111767287A (zh) 数据导入方法、装置、设备及计算机存储介质
US10083121B2 (en) Storage system and storage method