KR102304197B1 - 오디오 에너지 특성에 기초한 오디오 핑거프린팅 - Google Patents

오디오 에너지 특성에 기초한 오디오 핑거프린팅 Download PDF

Info

Publication number
KR102304197B1
KR102304197B1 KR1020187032366A KR20187032366A KR102304197B1 KR 102304197 B1 KR102304197 B1 KR 102304197B1 KR 1020187032366 A KR1020187032366 A KR 1020187032366A KR 20187032366 A KR20187032366 A KR 20187032366A KR 102304197 B1 KR102304197 B1 KR 102304197B1
Authority
KR
South Korea
Prior art keywords
energy
time
audio
window
hash
Prior art date
Application number
KR1020187032366A
Other languages
English (en)
Other versions
KR20180135464A (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 소스 디지털, 인코포레이티드
Publication of KR20180135464A publication Critical patent/KR20180135464A/ko
Application granted granted Critical
Publication of KR102304197B1 publication Critical patent/KR102304197B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43079Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on multiple devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G7/00Volume compression or expansion in amplifiers
    • H03G7/002Volume compression or expansion in amplifiers in untuned or low-frequency amplifiers, e.g. audio amplifiers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03GCONTROL OF AMPLIFICATION
    • H03G7/00Volume compression or expansion in amplifiers
    • H03G7/007Volume compression or expansion in amplifiers of digital or coded signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42203Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] sound input device, e.g. microphone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43074Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data

Abstract

오디오 핑거프린팅은 오디오로부터 오디오 샘플들을 획득하는 단계, 상기 오디오 샘플들의 주파수 표현들을 생성하는 단계, 상기 주파수 표현들의 주파수 대역들의 증가하고 감소하는 에너지 영역을 식별하는 단계, 및 상기 오디오의 피처들의 해시들을 생성하는 단계를 포함한다. 피처들의 각각의 해시는 각각의 시간 윈도우에 나타나는 상기 식별된 에너지 영역의 부분에 대응한다. 각각의 피처는, 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 증가하는 에너지 영역인지 또는 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 감소하는 에너지 영역인지 여부에 관한 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 주파수 대역, 및 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 배치를 나타내는 정보를 인코딩하는 수치값으로 정의된다.

Description

오디오 에너지 특성에 기초한 오디오 핑거프린팅
본 개시는 일반적으로 오디오 컨텐츠 인식(audio content recognition, ACR)에 관한 것이며, 보다 구체적으로는 오디오 에너지 특성에 기초한 오디오 핑거프린트(fingerprint)를 생성하는 것에 관한 것이다.
오디오 컨텐츠의 실시간 인식은 다양한 애플리케이션에서 점점 더 많이 사용되고 있다. 예를 들면, 알려지지 않은 노래의 제목, 가수, 및/또는 앨범을 식별하거나, 사운드 트랙으로부터 특정 영화를 식별할 수 있다. ACR 알고리즘은 오디오(음악, 영화 등)의 세그먼트를 분석하고, 오디오의 특성으로부터 핑거프린팅으로 알려진 것을 생성함으로써 작동하는 음향 핑거프린팅을 포함한다. 오디오 컨텐츠를 인식하기 위해, 그 오디오로부터 생성된 오디오 핑거프린트는 기준 오디오 핑거프린트의 데이터베이스와 비교된다.
오늘날 널리 사용되는 여러 가지 음향 핑거프린팅 알고리즘이 있다. 일반적인 예는 음향 핑거프린팅을 사용하여 사용자가 듣고 있는 노래를 식별하는 Shazaam 앱이다. 다른 예는 Gracenote와 MusicBrainz를 포함한다.
그러나, 종래에는 적어도 종래의 방식이 컨텐츠의 타이밍, 즉 컨텐츠의 전체 시간에 대한 현재 시간의 위치를 검출하거나 정렬하는 능력이 제공되지 않았다는 점에서, 오디오 컨텐츠 인식은 제한되어 왔다. 종래의 오디오 컨텐츠 인식의 다른 한계는 핑거프린트의 상대적으로 큰 크기, 컨텐츠 인식 프로세스의 상대적 복잡성, 및 컨텐츠 인식의 결과 지연을 포함한다.
본 개시는 이러한 문제들을 해결하기 위한 방법, 장치 및 시스템을 제공한다. 본 개시는 오디오 컨텐츠 인식 알고리즘, 특히 컨텐츠의 전체 시간에 대한 오디오 컨텐츠의 위치를 검출할 수 있게 하는 핑거프린트를 생성하는 알고리즘을 기술한다. 예를 들면, 본 명세서에 개시된 발명은 하나의 컨텐츠의 아이덴티티(즉, 시청중인 영화가 Goodfellas임) 뿐 아니라, 영화가 현재 3:30 부분에 있다는 것을 식별할 수 있다. 또한, 개시된 발명은 종래기술과 비교할 때 컨텐츠 인식의 지연을 감소시키는 상대적으로 간단한 컨텐츠 인식 프로세스와 상대적으로 작은 크기의 핑거프린트를 제공함으로써 종래의 오디오 컨텐츠 인식의 한계를 해결한다.
본 명세서에 포함되어 그 일부를 구성하는 첨부 도면은 본 발명의 양상들에 따른 다양한 예시적인 실시예들을 나타내는 다양한 예시적인 시스템, 방법 등을 도시한다. 도면에서 도시된 요소 경계들(예를 들면, 박스들, 박스 그룹들, 또는 다른 형태들)은 경계의 하나의 예시를 나타내는 것으로 이해될 것이다. 통상의 기술자는 하나의 요소가 다수의 요소로 설계될 수 있거나, 다수의 요소가 하나의 요소로 설계될 수 있다는 것을 이해할 것이다. 다른 요소의 내부 구성요소로 표시된 요소는 외부 구성요소로서 구현될 수 있고, 그 반대의 경우도 가능하다. 또한, 요소는 크기에 맞게 그려지지 않을 수 있다.
도 1은 오디오 핑거프린팅을 위한 예시적인 시스템의 블록도를 나타낸다.
도 2는 도 1의 오디오 핑거프린팅을 위한 시스템의 상세한 블록도를 나타낸다.
도 2a는 예시적인 샘플링 프로세스를 나타낸다.
도 2b는 영화의 일부에 대한 예시적인 에너지 영역의 그래픽 표현을 나타낸다.
도 2c는 예시적인 에너지 해셔의 그래픽 표현을 나타낸다.
도 2d는 예시적인 해시, 샤드 민해시 및 핑거프린트 해시의 그래픽 표현을 나타낸다.
도 3은 오디오 컨텐츠 인식의 맥락에서 도 1의 오디오 핑거프린팅을 위한 시스템을 나타낸다.
도 4는 오디오 핑거프린팅을 위한 예시적인 방법에 대한 흐름도를 나타낸다.
도 5는 오디오 핑거프린팅을 위한 예시적인 기계 또는 장치의 블록도를 나타낸다.
도 1은 오디오 컨텐츠 인식을 위한 예시적인 시스템(1)의 블록도를 나타낸다. 일반적으로, 시스템(1)은 오디오의 세그먼트(예를 들면, 노래, 영화의 사운드 트랙 등)를 분석하고, 오디오의 음향 특성으로부터 핑거프린트를 생성함으로써 동작한다. 시스템(1)은, 예를 들면, 사용자가 시청할 수 있는 TV 쇼, 영화, 유튜브(YouTube) 영상과 같은 컨텐츠를 식별하고, 부가적으로 컨텐츠의 전체 시간에 대한 위치를 검출하는데 유용하다. 따라서, 예를 들면, 시스템(1)은 하나의 컨텐츠의 아이덴티티 뿐 아니라, 영화가 현재 3:30 부분에 있다는 것을 식별할 수 있다.
시스템(1)은 텔레비전, 컴퓨터, 태블릿 등과 같은 표준 장치(15) 상에서 재생될 수 있는 컨텐츠로부터 오디오(10)를 수신하는 마이크로폰(5)을 포함할 수 있다. 시스템(1)은 마이크로폰(5)을 사용하여 오디오(10)를 "청취"하며, 오디오(10')의 버전을 오디오(10')를 프로세스 하여 핑거프린트를 생성하고 핑거프린트를 저장 매체 또는 데이터베이스(25)에 이전에 저장된 핑거프린트와 비교하는 프로세서(20)에 제공한다. 프로세서(20)가 컨텐츠 매치(match)를 검출하면(즉, 새로 수신된 오디오(10')의 핑거프린트가 이전에 저장된 핑거프린트와 매칭되면), 프로세서(20)는 상기 Goodfellas 예시와 같은 컨텐츠 내의 시간 및 컨텐츠 ID(예를 들면, 노래 또는 영화)를 포함할 수 있는 매치(30)를 출력한다. 따라서, 시스템(1)은 오디오(10')를 프로세스하여, 컨텐츠의 시작에 대한 시간 오프셋과 컨텐츠 ID를 포함할 수 있는 매치(30)를 출력한다.
임의의 음향 핑거프린팅 알고리즘에는, 인코딩 프로세스와 인식 프로세스의 2가지 주요 구성요소가 있다.
인코딩 프로세스는 일반적으로 마스터 핑거프린트(master fingerprint, MFP)를 생성하기 위해 소스 또는 마스터 컨텐츠를 사용하여 미리 수행된다. MFP는 저장 매체 또는 데이터베이스(25)에 저장되고, 예를 들면, 이후에 실시간 오디오와 비교되어, 인식 프로세스 동안 매치를 얻기 위해 시도할 핑거프린트이다.
인식 프로세스는 일반적으로 실시간 또는 실시간에 근접하게 수행된다. 시스템(1)은 마이크로폰(5)을 사용하여 시스템(1)의 환경으로부터 오디오(10)를 수신한다. 프로세서(20)는 수신된 오디오(10')를 프로세스 하여 수신된 핑거 프린트(RFP)를 생성하며, 그러고 나서 프로세서(25)는 매치가 있는지 알기 위해 MFP에 대해 비교할 것이다. 인식 프로세스는 2개의 주요 구성요소로 더 나눌 수 있다: 1) (MFP를 생성시 사용된 것과 동일한 알고리즘을 포함하는) RFP 생성 및 2) 데이터베이스 룩업(lookup). 오디오에 있는 방대한 양의 데이터로 인해, 생성된 핑거프린트는 데이터베이스 룩업 중에 신속한 검색을 지원하는데 충분할 정도로 작아야 한다.
핑거프린트 생성은 (마이크로폰(5)으로부터 또는 MP4 파일과 같은 기록된 형태로 수신되는) 오디오(10')의 들어오는 스트림을 취하여 핑거프린트를 얻기 위해 처리하는 프로세스이다. 동일한 알고리즘이 MFP 또는 RFP 생성 여부에 관계없이 핑거프린트 생성을 위해 사용된다.
도 2는 도 1의 시스템(1)의 상세한 블록도를 나타낸다. 전술한 바와 같이, 시스템(1)은 환경으로부터 오디오(10)를 수신하고, 오디오 신호(10')를 출력하는 마이크로폰(5)을 포함할 수 있다. 대안적으로, 시스템(1)은 기록된 오디오와 같은 다른 방법을 통해 오디오 신호(10')를 수신할 수 있다.
시스템(1)은 또한, 오디오 신호(10')를 샘플링하는 샘플러(30)를 포함할 수 있다. 도 2a는 샘플러(30)의 예시적인 샘플링 프로세스를 나타낸다. 도 2a의 실시예에서, 샘플러(30)는 4096 샘플들의 윈도우 크기와 31/32의 윈도우 오버랩으로, 8 kHz의 샘플 레이트(rate)로 오디오 신호(10')를 샘플링한다. 다른 실시예에서, 샘플러(30)는 8 kHz의 샘플 레이트, 4096 샘플들의 윈도우 크기 및 31/32의 윈도우 오버랩과는 상이한 샘플 레이트, 윈도우 크기 및 윈도우 오버랩들로 오디오 신호(10')를 샘플링한다. 샘플러(30)의 출력(35)은 일련의 오디오 샘플들의 청크(chunk)들(즉, 도 2a의 청크 1, 청크 2 등)이며, 각각의 청크는 윈도우 크기이다.
도 2의 시스템(1)은 또한, 샘플러(30)의 출력(35)을 수신하는 FFT(40)를 포함할 수 있다. 각각의 오디오 샘플들의 청크는 FFT(40)를 사용하여 프로세스되어, 오디오 샘플들의 주파수/빈(bin) 표현을 생성한다. 때로는, 이를 스펙트로그램(spectrogram)이라고 한다. FFT(40)의 출력(45)은 이러한 스펙트로그램들과 각 스펙트로그램에 대응하는 시간 오프셋(즉, 각각이 발생한 시간)을 포함한다.
시스템(1)은 또한, 스펙트로그램의 주파수 빈 또는 대역의 에너지 영역들을 식별하는 에너지 스트리머(50)를 포함할 수 있다. 예를 들면, 오디오 신호(10)가 200 Hz의 사인파라고 가정해보자. 이 사인파가 진행중이고, 플레이어의 볼륨을 계속 증가시킨다고 상상해보자. 200 Hz에서의 FFT 빈의 크기는 시간에 따라 증가할 것이다. 에너지 스트리머(50)는 증가하는 에너지의 기간들과 감소하는 에너지의 기간들을 식별하기 위해 FFT 출력(45) 내의 주파수들의 특정 범위들을 모니터링 한다. 증가하거나 감소하는 에너지의 이러한 기간들은 여기서 에너지 영역으로 지칭된다. 위의 200 Hz 예시에서, 에너지 영역(즉, 증가하는 에너지 영역)은 볼륨이 증가함에 따라 그 에너지가 증가하기 때문에 200 Hz에 대해 식별될 것이다. 볼륨을 줄이면, 에너지 영역은 또한, 감소하는 에너지 영역이 생성될 것이다.
그러나, 위의 예시에서, 오디오 신호(10)의 볼륨이 높은 볼륨과 낮은 볼륨 사이에서 계속적으로 변동하면, 에너지 스트리머(50)가 증가하는 에너지의 기간과 감소하는 에너지의 기간을 찾기 때문에, 에너지 영역이 생성되지 않을 것이다. 이러한 변동하는 에너지 기간은 시작부터 종료까지 평균적으로 증가 또는 감소하지 않는, 0에 가까운 순 에너지 변화를 가질 수 있다. 에너지 기간들의 이러한 변동은 에너지 영역들을 생성하지 않으며, 무시된다.
일 실시예에서, 에너지 스트리머(50)가 모니터링하는 주파수 범위는 200 Hz와 3,300 Hz 사이이다. 샘플러(30)가 8,000 Hz에서 오디오(10')를 샘플링하는 위 실시예에서, 샘플링이 항상 적어도 절반의 정확도의 손실을 가져오기 때문에, FFT(40)의 출력(45)에서의 FFT 청크는 0 Hz와 4,000 Hz 사이의 주파수 빈을 포함한다. 오디오(10)는 8,000 Hz에서 샘플링 되더라도, 그 샘플 레이트의 절반의 주파수(또는 4,000 Hz)들만 정확하게 얻을 수 있다. 이는 Nyquist-Shannon 샘플링 정리라고 한다. 다른 실시예에서, 에너지 스트리머(50)가 모니터링하는 주파수 범위들은 200 Hz와 3,300 Hz 사이 이외의 값이다.
FFT(40)의 출력(45)에서의 스펙트로그램들 또는 주파수 표현들은 주파수 대역들로 나누어질 수 있다. 예를 들면, 대역 1은 200 Hz와 350 Hz 사이의 주파수들을 나타내고, 대역 2는 350 Hz - 450 Hz 등을 나타낼 수 있다. 주목해야 할 점은 인간의 귀는 선형적인 방식으로 주파수들을 듣지 않고, 대수적(logarithmic)인 방식으로 듣는다는 것이다. 이러한 이유로, 일 실시예에서, (본 예시에서 200 Hz에서 시작하는) 낮은 주파수 대역들은 가장 큰 대역을 갖고, (본 예시에서 최대 3,300 Hz의) 높은 주파수 대역들은 가장 작은 대역을 갖도록, 각 대역의 크기 또는 대역폭이 대수적으로 감소할 수 있다.
일 실시예에서, 에너지 스트리머(50)는 200 Hz - 3,300 Hz 범위의 44 에너지 대역들을 사용하며, 그 크기가 대수적으로 감소한다. 에너지 스트리머(50)가 식별하는 각각의 에너지 영역은 대역 번호를 가지며, 예를 들면 첫번째 대역(즉, 대역 1)은 200 Hz에서 시작하고; 마지막 대역(즉, 대역 44)은 3,300 Hz에서 끝난다. 다른 실시예에서, 에너지 스트리머(50)는 44보다 많거나 적은 에너지 대역을 사용하며, 에너지 대역들은 200 Hz - 3,300 Hz 이외의 범위일 수 있다.
도 2b는 영화의 일부분에 대한 예시적인 에너지 영역들(55)의 그래픽 표현을 나타낸다. 각각의 에너지 영역은 주파수 대역, 오디오의 전체 시퀀스에 대한 영역의 시작/종료 시간, 및 에너지가 증가 또는 감소하는지 여부를 추적한다. 도 2b의 예시에서, 각각의 영역은 영역이 증가하는 에너지 영역임을 나타내는 상향 화살표 또는 영역이 감소하는 에너지 영역임을 나타내는 하향 화살표를 포함한다. 예를 들면, 좌측에 나타난 제1 영역은 주파수 대역 20 상에 있고, 시간 0.02초에서 시작하여 시간 0.46초에서 종료되며, 증가하는 에너지 영역이다.
요약하면, 에너지 스트리머(50)는 FFT(40)의 출력(45)에서의 FFT 청크를 프로세스하여, 각각의 주파수 대역 내의 증가하는 에너지 기간들과 감소하는 에너지 기간들을 식별한다. 식별된 증가 및 감소하는 에너지 영역들(55)은 더 큰 오디오 스트림 내의 시작/종료 시간(즉, 시간 오프셋)과 주파수 대역 번호를 갖는다.
도 2로 돌아가서, 시스템(1)은 또한, 에너지 스트리머(50)에 의해 식별된 에너지 영역들(55)에 기초하여 오디오 샘플들의 피처들의 해시들을 생성하는 에너지 해셔(60)를 포함할 수 있다. 에너지 해셔(60)는 샘플러(30)가 오디오 신호(10') 상에서 동작하는 것과 동일한 방식으로 에너지 영역들의 스트림(55) 상에서 동작한다. 에너지 해셔(60)는 윈도우 크기 특성과 윈도우 오버랩 특성도 가지지만, 이제 오디오 신호(10')의 인코딩된 형태인 에너지 영역들을 프로세스 하고 있다. 일 실시예에서, 에너지 해셔(60)는 1000 밀리초의 윈도우 크기와 950 밀리초의 윈도우 오버랩을 가지며, 이는 에너지 해셔의 윈도우가 패스(pass)당 50 밀리초의 시간으로 전방으로 이동한다는 것을 의미한다. 다른 실시예에서, 에너지 해셔(60)는 1000 밀리초와 상이한 윈도우 크기 또는 950 밀리초와 상이한 윈도우 오버랩을 갖는다.
에너지 해셔(60)는 오디오의 피처들의 해시들(수치 데이터)을 생성하기 위해 시간 윈도우들 내에 나타나는 식별된 에너지 영역들의 부분들을 분석한다. 해시들(즉, 해셔(60)의 출력(64))은 장래의 식별(MFP)을 위해 데이터베이스에 저장될 수 있으며, 이미 데이터베이스에 있는 해시들(RFP)과 비교될 수 있다.
도 2c는 예시적인 에너지 해셔(60)의 그래픽 표현을 나타낸다. 에너지 해셔(60)는 슬라이딩 윈도우(62)를 사용한다. 에너지 해셔(60)는 (예를 들면, 62a로부터 62b까지) 윈도우(62)를 이동시키며, 윈도우 내에 있는 에너지 영역들의 부분들을 분석한다. 에너지 해셔(60)는 현재 윈도우 내에 있는 에너지 영역들에 기초하여 피처들(고유한 수치 데이터들)을 생성한다.
각각의 에너지 영역에 대해 생성될 수 있는 8개 유형의 피처들이 있다. 생성된 각 피처들은 다음을 나타내는 정보를 인코딩하는 수치값이다: a) 각각의 시간 윈도우에 나타나는 에너지 영역의 주파수 대역, b) 각각의 시간 윈도우에 나타나는 에너지 영역이 증가하는 에너지 영역인지 또는 각각의 시간 윈도우에 나타나는 에너지 영역이 감소하는 에너지 영역인지 여부, 및 c) 각각의 시간 윈도우에 대한 에너지 영역의 배치.
각각의 시간 윈도우(62)에 나타나는 에너지 영역의 배치는 다음 중 하나에 대응된다:
· 윈도우 이전 시작/윈도우 이후 종료 - 이는 윈도우(62)에 대해 이러한 에너지 영역이 윈도우의 시작 이전에 시작하고, 윈도우의 종료 이후에 종료되는 것을 의미한다. 또는 다시 말해, 이러한 에너지 영역이 현재 윈도우(62)를 완전히 포함한다;
· 윈도우 이전 시작/ 윈도우 내에 종료 - 이는 현재 윈도우(62)에 대해 에너지 영역이 윈도우 시작 이전에 시작되나, 윈도우 종료 이전에 종료되는 것을 의미한다.
· 윈도우 내에 시작/ 윈도우 이후 종료 - 이는 에너지 영역이 윈도우 시간 프레임 내에 시작되고, 윈도우 종료 이후에 종료되는 것을 의미한다; 및
· 윈도우 내에 시작/ 윈도우 내에 종료 - 이는 에너지 영역이 윈도우 시간 프레임 내에 완전히 포함되는 것을 의미한다.
각각의 윈도우(62)는 일반적으로 많은 피처들을 가져온다. 각각의 피처는 현재 윈도우(62)에 대한 에너지 영역의 배치, 대역 번호, 및 에너지 방향(즉, 증가 또는 감소)을 나타내는 숫자이다.
각각의 윈도우(62)는 일련의 시간 윈도우 내의 에너지 영역들로부터의 시간 정보(0:05초 및 1:35초)와 피처 번호들인 (각각이 윈도우(62a 및 62b)에 대응하는 64a 및 64b로 나타낸) 해시(64)를 가져온다. 공통된 주제는 샘플링 레벨로부터 해싱 레벨까지 타이밍 정보를 일관되게 전달하는 것이다.
해시들(64)은 장래의 식별(MFP)을 위해 데이터베이스에 저장될 수 있으며, 데이터베이스에 이미 있는 해시들(RFP)과 비교될 수 있다.
그러나, 도 2의 실시예에서, 에너지 피처들의 이러한 해시들(64)은 최종 데이터베이스 표현이 아니다. 시스템(1)은 또한, 민해시(MinHash)(70)를 포함할 수 있다. 민해시는 원래 적은 공간에서 많은 양의 텍스트 데이터를 표현하기 위해 검색 엔진용으로 개발되었다(각각이 전체가 본 명세서에 참조로서 포함된, Broder, Andrei Z. (1997), "On the resemblance and containment of documents", Compression and Complexity of Sequences: Proceedings, Positano, Amalfitan Coast, Salerno, Italy, June 11-13, 1997 (PDF), IEEE, pp. 21-29, doi:10.1109/SEQUEN.1997.666900, 및 Broder, Andrei Z.; Charikar, Moses; Frieze, Alan M.; Mitzenmacher, Michael (1998), "Min-wise independent permutations", Proc. 30th ACM Symposium on Theory of Computing (STOC '98), New York, NY, USA: Association for Computing Machinery, pp. 327-336 참조). 그러나, 본 발명자는 실험을 통해 민해시를 이용하여 방대한 양의 오디오 피처들을 감소시킬 수 있음을 발견하였다.
민해시(70)는 해시(64)의 방대한 양의 피처들을 더 적은 수의 세트로 압축한다. 해시(64)에 민해시(70)를 적용하는 것은 다른 일련의 숫자들 또는 민해시 값들(72)을 가져온다. 예를 들면, 해시(64)는 250 피처들을 포함할 수 있는데, 이는 대응하는 윈도우(62) 내에 나타난 피처들의 수이기 때문이다. 그러나, 민해시(70)를 해시(64)에 적용한 이후에는 언제나 고정된 수(예를 들면, 100)의 민해시 값들(72)이 있을 것이다.
민해시 값들(72)은 장래의 식별(MFP)을 위해 데이터베이스에 저장될 수 있으며, 데이터베이스에 이미 있는 민해시 값들(RFP)과 비교될 수 있다.
그러나, 도 2의 실시예에서, 민해시 값들(72)은 최종 데이터베이스 표현이 아니다. 시스템(1)은 또한, 샤더(sharder)(75)를 포함할 수 있다. 샤딩은 민해시 값들(72)을 로우와 컬럼들로 그룹화하는 것이다. 도 2d의 예시에 나타낸 바와 같이, 샤더(75)는, 예를 들면, 각 그룹이 5개의 값들을 갖는 20개의 그룹들을 포함하는 샤드 해시(77)를 생성하는 5의 샤드 크기를 사용하여 민해시 값들(72)을 샤딩할 수 있다. 샤드 해시(77)의 제1 그룹은 민해시 값 1-5를 가지며, 제2 그룹은 민해시 값 6-10 등을 갖는다.
샤드 해시들(77)은 장래의 식별을 위해 데이터베이스에 저장될 수 있으며(MFP), 데이터베이스에 이미 있는 샤드 해시들과 비교될 수 있다(RFP).
그러나, 도 2의 실시예에서, 샤드 해시들(77)은 최종 데이터베이스 표현이 아니다. 시스템(1)은 또한, 샤드 해시(77)의 임의의 주어진 그룹에 대한 5개의 샤드 값들을 단일 64 비트 숫자인 싱글(shingle)로 결합하는 결합기(80)를 포함할 수 있다. 도 2d의 예시에 나타낸 바와 같이, 샤드 해시(77)의 제1 샤드 그룹은 100, 101, 102, 105, 106의 값들을 갖는다. 결합기(80)는 데이터의 손실 없이 이러한 숫자들을 단일 64 비트 정수 100102105106으로 결합할 수 있다. 그 결과는 시간 윈도우 내의 에너지 영역들로부터의 타이밍 정보와 64 비트의 20개의 싱글들을 포함하는 핑거프린트 해시(85)이다.
따라서, 핑거프린트 해시(85)는 컨텐츠 ID(원래 컨텐츠에 할당된 값), 20개의 숫자들(싱글들) 및 (컨텐츠의 샘플링된 부분 또는 해시가 원래 컨텐츠에서 위치했던 곳을 식별하는) 시간 오프셋을 포함한다. 핑거프린트 해시(85)는 장래의 식별을 위해 데이터베이스에 저장될 수 있다(MFP). 대부분의 데이터베이스 시스템은 수치 값들의 검색을 위해 고도로 최적화되어 있으며, 여기서는 비교 횟수를 크게 감소시킴으로써, 종래 기술과 비교할 때 컨텐츠 인식의 지연을 감소시키는 상대적으로 작은 크기의 핑거프린트를 제공한다.
도 2의 실시예는 MFP 생성의 맥락에서의 시스템(1)을 나타낸다. 도 3은 비교 또는 매칭을 위한 RFP 생성의 맥락에서의 시스템(1)을 나타낸다. 이러한 맥락에서, 시스템(1)은 무선 전화, 태블릿, 컴퓨터 등과 같은 장치 내에 포함될 수 있다. 도 3은 도 2와 동일한 요소들을 나타나며, 추가로 비교기(100)를 포함한다.
비교 또는 매칭을 위한 RFP 생성의 맥락에서 동작시, 시스템(1)은 장치 상의 마이크로폰(5)을 시작시키고, 전술한 바와 같은 설정(8,000 kHz 등)을 사용하여 오디오 판독을 시작할 것이다. 시스템(1)은 MFP를 생성할 때 핑거프린트들(85)을 생성한 것과 정확히 동일한 방식으로 이러한 오디오로부터 핑거프린트들(95)을 생성할 것이다. 유일한 차이점은 핑거프린트들(95)의 시간이 마이크로폰 시작의 개시로부터의 상대적인 시간 오프셋이라는 것이다. 이러한 맥락에서, 시스템(1)은, 예를 들면, MFP 맥락에서와 같이, 노래 또는 영화의 시작에 대해 현재 타이밍을 알 수 있는 방법이 없다. 따라서, 생성된 제1 핑거프린트(95)는 0:00의 시간 오프셋을 가질 것이며, 1분 후 오디오가 현재 프로그램에 13분인 경우에도, 오프셋은 1:00일 것이다. 시스템(1)은 프로그램이 시작된 시점에 대한 개념이 없으며, 단지 기록이 시작된 시점만 알기 때문에, RFP 생성시 오프셋 시간은 생성된 핑거프린트들(95)에 대해 항상 상대적이다.
오디오는 장치의 마이크로폰(5)으로부터 연속적으로 기록되며, 핑거프린트들(95)이 생성된다. 이러한 수신된 핑거프린트들(RFP)(95)은 식별이 일어나는 비교기(100)로 보내진다. 식별의 첫번째 단계는 데이터베이스 룩업이다. 예를 들면, SQL 쿼리(query)는 다음과 같을 수 있다.
select * from Hashes where ShardValue1 = <UploadedShardValue1> OR ShardValue2 = <UploadedShardValue2> ... OR ShardValue20 = <UploadedShardValue20>
비교기(100)는 샤드 로우 int64 값들 중 하나가 매칭되는 데이터베이스 내의 임의의 해시들을 찾는다. 샤드의 실제 로우 번호가 중요할 수 있다는 것에 주목해야 한다. 예를 들면, 비교기(100)는 소스 해시의 샤드 로우 1을 기록된 해시의 샤드 로우 1 값과 비교할 수 있다. 그러나, 이는 큰 데이터베이스에서 500개의 매치들을 발생시킬 수 있기 때문에, 충분하지 않을 수 있다. 대신, 비교기(100)는 각각 업로드된 핑거프린트(95)로부터 발생하는 매치들을 계속 추적할 수 있다.
따라서, 예를 들면, 데이터베이스는 다음과 같다고 할 수 있다(매우 단순화된 예):
컨텐츠 ID 오프셋 시간 샤드 값
Goodfellas 0:10
Goodfellas 0:11
Walking Dead 0:30
Walking Dead 0:35
Mad Men 0:45
Mad Men 0:48
또한, 2개의 핑거프린트들(95)이 업로드 되는데, 첫 번째 핑거프린트는 시간 0:00에 업로드 되고, 두 번째 핑거프린트는 시간 0:01에 업로드 된다고 가정해보자. 첫 번째 핑거프린트는 0:10에서 Goodfellas에 매칭되고, 0:48에서 Mad Men에 매칭된다. 비교기(100)는 이러한 추적을 계속한다. 이제, 두번째 핑거프린트는 0:11에서 Goodfellas에 매칭되고, 0:45에서 Mad Men에 매칭된다고 하자. 업로드 된 핑거프린트들(95) 사이의 시간 차는 1초(0:00 및 0:01)이다. Goodfellas에 대해 2개의 매치들을 갖고, 각각의 매치 사이의 시간 차는 1초(0:10 및 0:11)이다. 또한, Mad Men에 대해 2개의 매치들(0:48 및 0:45)을 갖지만, 시간 차는 -3초이다(시간에 대해 두번째 매치는 첫번째 매치 이전에 나타남). 이제, Goodfellas에 대한 2개의 매치들의 시간 차와 업로드된 2개의 핑거프린트들이 시간에 정렬되기 때문에, 진정한 매치를 갖는다. 비교기(100)는 정확한 식별을 보장하기 위해 이러한 유형의 시간 정렬 매칭을 사용한다. 업로드된 핑거프린트들에 대한 데이터베이스 매치들은 매치가 유효한 것으로 간주되는 시간에 맞게 정렬해야 한다.
비교기(100)는 이제 매치가 이루어졌다는 것을 보고할 수 있다. 매치(30)는, 예를 들면, Goodfellas에 대한 컨텐츠 ID와, 예를 들면, 0:11의 시간(최신의 정확한 시간 매치)을 포함한다. 이러한 점에서, 시스템(1)을 포함하는 장치는 그 컨텐츠 ID를 사용하여 어떤 유형의 사용자 경험을 제공할 것이다. 이러한 에시는 0:11에서 Goodfellas에 관한 메타데이터에 대해 웹 서비스를 쿼리하고, 예를 들면, 화면에 있는 배우 또는 캐릭터들의 이름을 표시할 것이다.
예시적 방법은 도 4의 흐름도를 참조하면 보다 잘 이해될 수 있다. 설명의 단순화를 목적으로, 도시된 방법론이 일련의 블록으로서 도시되고 설명되지만, 일부 블록들이 도시되고 설명된 것과는 다른 순서로 발생할 수 있고 또는 다른 블록들과 동시에 발생할 수 있기 때문에, 이 방법론은 블록들의 순서에 의해 제한되지 않는 것이 이해되어야 한다. 이에 더하여, 모든 도시된 블록보다 적은 수의 블록이 예시적인 방법론을 구현하는데 요구될 수 있다. 또한, 추가적 방법론, 대체적 방법론 또는 두 가지 모두는 도시되지 않은 추가 블록을 이용할 수 있다.
흐름도에서, 블록은 로직으로 구현될 수 있는 "프로세싱 블록"을 나타낸다. 프로세싱 블록은 방법 단계 또는 그 방법 단계를 수행하기 위한 장치 요소를 나타낼 수 있다. 흐름도는 임의의 특정 프로그래밍 언어, 방법론 또는 스타일(예를 들어, 절차-지향적, 객체-지향적)을 위한 구문(syntax)을 묘사하지 않는다. 오히려, 흐름도는 당업자가 도시된 프로세싱을 수행하기 위한 로직을 개발하는데 이용할 수 있는 기능적 정보를 도시한다. 일부 예에서, 일시적 변수(temporary variables), 루틴 루프(routine loops) 등과 같은 프로그램 요소가 도시되지 않았다는 것이 이해될 것이다. 또한, 전자 및 소프트웨어 애플리케이션이 동적 및 유연한 프로세서를 포함하여, 도시된 블록이 나타내진 것과는 상이한 다른 시퀀스로 수행되거나, 또는 그 블록들이 결합되거나 또는 복수의 구성요소로 분할된 시퀀스로 수행될 수 있다는 것이 추가로 이해될 것이다. 프로세스는 기계 언어, 절차 지향적, 객체 지향적 또는 인공 지능 기술과 같은 다양한 프로그래밍 접근법을 사용하여 구현될 수 있다는 것이 이해될 것이다.
도 4는 오디오 핑거프린팅을 위한 예시적인 방법(400)에 대한 흐름도를 나타낸다.
방법(400)은 410에서 오디오의 오디오 샘플들을 획득하는 단계를 포함하며, 일부 실시예들에서 오디오를 샘플링하는 것을 포함할 수 있다. 각각의 오디오 샘플들은 특정 시간에 대응된다. 420에서, 방법(400)은 오디오 샘플들의 주파수 표현들을 생성하는 단계를 포함한다. 430에서, 방법(400)은 주파수 표현들의 주파수 대역들에서 에너지 영역들을 식별하는 단계를 포함한다. 에너지 영역은 증가하는 에너지 영역 또는 감소하는 에너지 영역일 수 있으나, 둘 모두는 아니다. 증가하는 에너지 영역은 시간 영역의 시작 시간부터 종료 시간까지 오디오 에너지가 증가하는 시간 영역으로 정의되며, 감소하는 에너지 영역은 시간 영역의 시작 시간부터 종료 시간까지 오디오 에너지가 감소하는 시간 영역으로 정의된다.
방법(400)은 440에서 그 오디오의 피처들의 해시들을 생성하기 위해 시간 윈도우들 내에 나타나는 식별된 에너지 영역들의 부분들을 분석하는 단계를 포함한다. 피처들의 각 해시는 각각의 시간 윈도우에 나타나는 식별된 에너지 영역들의 부분들에 대응된다. 각각의 피처는 다음을 나타내는 정보를 인코딩하는 수치 값으로 정의된다: 각각의 시간 윈도우에 나타나는 에너지 영역의 주파수 대역, 각각의 시간 윈도우에 나타나는 에너지 영역이 증가하는 에너지 영역인지 또는 각각의 시간 윈도우에 나타나는 에너지 영역이 감소하는 에너지 영역인지 여부, 및 각각의 시간 윈도우에 나타나는 에너지 영역의 배치, 여기서 각각의 시간 윈도우에 나타나는 에너지 영역의 배치는 다음 중 하나에 대응함:
· 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부,
· 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부,
· 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부, 및
· 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부.
450에서, 방법(400)은 피처들의 각 해시를 피처들의 민해시 표현 또는 민해시 값들로 변환하는 단계를 포함한다. 460에서, 방법(400)은 민해시 샤드 값들을 얻기 위해 민해시 값들을 샤딩하는 단계를 포함할 수 있다. 470에서, 방법(400)은 20개의 64 비트 수들을 갖는 핑거프린트 해시를 얻기 위해 샤드 로우 또는 그룹 내의 민해시 샤드 값들을 64 비트의 수로 결합하는 단계를 포함할 수 있다. 480에서, 방법(400)은 핑거프린트 해시를 특정 시간과 함께 저장한다.
도면들이 연속적으로 발생하는 다양한 동작들을 도시하지만, 도시된 다양한 동작들이 실질적으로 병렬로 발생할 수 있다는 것이 이해되어야 하며, 동작들이 병렬로 발생하는 것으로 도시될 수 있지만, 이들 동작이 실질적으로 연속적으로 발생할 수 있다는 것이 이해되어야 한다. 다수의 프로세스가 도시된 방법과 관련하여 설명되지만, 보다 많거나 또는 더 적은 수의 프로세스가 이용될 수 있고, 경량 프로세스, 정규 프로세스, 스레드 및 다른 접근법이 이용될 수 있다는 것이 이해되어야 한다. 다른 예시적인 방법들이, 어떤 경우에는, 또한 실질적으로 병렬로 발생하는 동작들을 포함할 수 있다는 것이 이해되어야 한다. 도시된 예시적인 방법들 및 다른 실시예들은 실시간으로, 소프트웨어 또는 하드웨어 또는 하이브리드 소프트웨어/하드웨어 구현물에서 실시간보다 빠르게, 또는 소프트웨어 또는 하드웨어 또는 하이브리드 소프트웨어/하드웨어 구현물에서 실시간보다 느리게 동작할 수 있다.
도 5는 오디오 핑거프린팅을 위한 예시적인 장치(500) 또는 기계의 블록도를 나타낸다. 장치(500)는 버스(508)에 의해 동작 가능하게 연결된 프로세서(20), 메모리(504) 및 I/O 포트(510)를 포함한다.
하나의 예시에서, 장치(500)는, 예를 들면, I/O 포트들(510) 또는 I/O 인터페이스들(518)을 경유하여, 오디오(10 또는 10'), 샘플링된 오디오(35), 주파수 표현들(45), 에너지 영역들(55), 해시들(64), 민해시 값들(72), 샤드 민해시 값들(77), 핑거프린트 해시들(85 및 95) 등을 포함하는 입력 신호들을 수신할 수 있다. 장치(500)는 또한, 샘플러(30), FFT(40), 에너지 스트리머(50), 에너지 해셔(60), 민해시(70), 샤더(75), 결합기(80) 및 데이터베이스(25)를 포함할 수 있다. 따라서, 샘플러(30), FFT(40), 에너지 스트리머(50), 에너지 해셔(60), 민해시(70), 샤더(75), 결합기(80) 및 데이터베이스(25)는 장치(500)에서 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있으며, 이에 따라, 장치(500)와 그 구성요소들은 본 명세서에서 샘플러(30), FFT(40), 에너지 스트리머(50), 에너지 해셔(60), 민해시(70), 샤더(75), 결합기(80) 및 데이터베이스(25)에 의해 각각 수행되는 것으로 설명된 바와 같은 기능들을 수행하는 수단들을 제공할 수 있다.
프로세서(20)는 듀얼 마이크로프로세서 및 다른 멀티-프로세서 아키텍처를 포함하는 다양한 종류의 프로세서일 수 있다. 메모리(504)는 휘발성 메모리 또는 비-휘발성 메모리를 포함할 수 있다. 비-휘발성 메모리는 ROM, PROM, EPROM, EEPROM 등을 포함할 수 있지만, 이로 한정되지 않는다. 휘발성 메모리는 예를 들어 RAM, 동기식 RAM(SRAM), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 더블 데이터레이트 SDRAM(DDR SDRAM) 및 다이렉트 RAM 버스 RAM(DRRAM)을 포함할 수 있다.
디스크(506)는 예를 들어, I/O 인터페이스들(예컨대, 카드, 디바이스)(518) 및 I/O 포트들(510)을 경유하여 장치(500)에 동작 가능하게 연결될 수 있다. 디스크(506)는 자기 디스크 드라이브, 고체 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, Zip 드라이브, 플래시 메모리 카드, 또는 메모리 스틱과 같은 장치를 포함할 수 있지만, 이로 한정되지 않는다. 또한, 디스크(506)는 CD-ROM, CD 기록가능 드라이브(CD-R 드라이브), CD 재기록 가능 드라이브(CD-RW 드라이브), 또는 디지털 비디오 ROM 드라이브(DVD ROM)와 같은 광학식 드라이브를 포함할 수 있다. 메모리(504)는 예를 들어, 프로세스(814) 또는 데이터(516)를 저장할 수 있다. 디스크(506) 또는 메모리(504)는 장치(500)의 리소스를 제어 및 할당하는 운영 체제를 저장할 수 있다. 디스크(506) 또는 메모리(504)는 데이터베이스(25)를 내부에 저장할 수 있고, 또는 데이터베이스(25)는 다수의 로컬 또는 원격 스토리지(storage) 사이에 분산될 수 있다.
버스(508)는 단일 내부 버스 상호연결 아키텍처 또는 다른 버스 또는 메쉬 아키텍처일 수 있다. 단일 버스가 도시되지만, 장치(500)는 도시되지 않은 다른 버스들(예를 들어, PCIE, SATA, Infiniband, 1394, USB, 이더넷)를 사용하여 다양한 디바이스, 로직 및 주변 장치와 통신할 수 있음이 이해되어야 한다. 버스(508)는 메모리 버스 또는 메모리 제어기, 주변장치 버스 또는 외부 버스, 크로스바 스위치 또는 로컬 버스를 포함하는 다양한 타입일 수 있지만, 이로 한정되지 않는다. 로컬 버스는 산업 표준 아키텍처(ISA) 버스, 마이크로채널 아키텍처(MCA) 버스, 확장 ISA(EISA) 버스, 주변장치 구성요소 상호연결(PCI) 버스, 범용 직렬 버스(USB) 및 소형 컴퓨터 시스템 인터페이스(SCSI) 버스를 포함하는 종류들일 수 있으며, 이로 한정되지 않는다.
장치(500)는 I/O 인터페이스들(518) 및 I/O 포트들(510)을 경유하여 입력/출력 디바이스들과 상호작용할 수 있다. 입력/출력 디바이스들은 키보드, 마이크로폰, 포인팅 및 셀렉션 디바이스, 카메라, 비디오 카드, 디스플레이, 디스크(506), 네트워크 장치(520) 등을 포함할 수 있지만, 이로 한정되지 않는다. I/O 포트(510)들은 직렬 포트, 병렬 포트 및 USB 포트들을 포함하지만, 이로 한정되지 않는다.
장치(500)는 네트워크 환경에서 동작할 수 있으므로 I/O 인터페이스들(518) 또는 I/O 포트들(510)을 경유하여 네트워크 장치들(520)에 연결될 수 있다. 네트워크 디바이스들(520)을 통해, 장치(500)는 네트워크와 상호작용할 수 있다. 네트워크를 통해, 장치(500)는 원격 컴퓨터에 논리적으로 연결될 수 있다. 장치(500)가 상호작용할 수 있는 네트워크는, 로컬 영역 네트워크(LAN), 광역 네트워크(WAN) 및 다른 네트워크를 포함하지만, 이로 한정되지 않는다. 네트워크 디바이스들(520)은 FDDI(fiber distributed data interface), CDDI(copper distributed data interface), 이더넷(IEEE 802.3), 토큰 링(IEEE 802.5), 무선 컴퓨터 통신(IEEE 802.11), 블루투스(IEEE 802.15.1), 지그비(Zigbee, IEEE 802.15.4) 등을 포함하는 LAN 기술에 연결할 수 있지만, 이로 한정되지 않는다. 마찬가지로, 네트워크 디바이스들(520)은 포인트 투 포인트 링크, ISDN(Integrated Services Digital Network)과 같은 회로 스위칭 네트워크, 패킷 스위칭 네트워크 및 DSL(digital subscriber line)을 포함하는 WAN 기술에 연결할 수 있지만, 이로 한정되지 않는다. 개별적 네트워크 타입이 설명되지만, 네트워크를 경유(via)하거나, 거치거나(over), 또는 통하는(through) 통신은 통신들의 조합 및 혼합을 포함할 수 있음이 이해되어야 한다.
정의
다음은 본 명세서에서 이용된 선택된 용어의 정의를 포함한다. 정의는 용어의 범위에 속하며 구현을 위해 사용될 수 있는 구성요소의 다양한 예시 또는 형태를 포함한다. 이 예시들은 제한하려는 의도는 아니다. 용어의 단수형과 복수형 모두는 정의에 속할 수 있다.
"PCM"은 대부분의 디지털 오디오가 프로세스되는 포맷인 펄스 코드 변조(Pulse Code Modulation)를 나타낸다. PCM은 스피커에서 재생되는 오디오 임펄스(impuse)를 인코딩하는 방법이며, 이러한 펄스들의 결과는 우리가 컨텐츠로 식별하는 사운드이다. 일정 시간에서의 PCM은 숫자들의 스트림에 기초한다(일반적으로, 바이트 또는 부동 소수점 숫자로 프로세스 됨).
"샘플 레이트(Sample Rate)"는 초당 캡처되는 샘플들의 수를 지칭한다. 우리가 듣는 오디오는 연속적인 스트림이며, 이산적이지 않다. 컴퓨터들은 이산 간격으로 동작하므로, 오디오를 녹음하는 컴퓨터는 특정 샘플 레이트로 샘플들(숫자들)을 가져와야 한다. 전통적으로, PCM과 같은 고 충실도(fidelity) 오디오는 44100 Hz의 샘플 레이트로 캡처되었다. 그러나, 샘플 레이트는 설계자가 원하는 모든 것일 수 있다. 따라서, 예를 들면, 샘플 레이트는 8,000 Hz일 수 있다. 이는 오디오의 8,000 샘플들(숫자들)이 매초마다 캡처된다는 것을 의미한다.
"윈도우 크기(Window Size)"는 윈도우 내에서 프로세스되는 오디오의 개별 청크의 크기를 지칭한다. 예를 들면, 윈도우 크기가 4,000이면, 8,000 Hz 오디오의 1초당 2개의 윈도우들이 있다.
"윈도우 오버랩(Window Overlap)"은 오디오의 윈도우와 오디오의 다음 윈도우 사이에 (샘플들에) 얼마나 많은 오버랩이 있는지를 나타낸다. 위의 윈도우 크기에 대한 예시에서는, 0 윈도우 오버랩이라고 가정하였다. 그러나, 윈도우 오버랩이 1,000으로 설정되고, 윈도우 크기가 4,000으로 설정되면, 8,000 Hz의 오디오의 1초당 8개의 윈도우들이 있을 것이다. 제1 윈도우는 0-4,000 ms이고, 제2 윈도우는 1000 ms-5000 ms이며, 제3 윈도우는 2000ms-6000ms 등 일 것이다. 보다시피, 윈도우 오버랩은 오디오의 동일한 샘플들이 여러 차례 프로세스 되는 결과를 가져온다. 샘플링 된 오디오에서 윈도우 오버랩의 결과는 오디오의 보다 정확한 표현이다.
"시간 도메인(Time Domain)"은 PCM 포맷에서의 오디오를 지칭하는데 사용되는 용어이다. PCM은 시간에 따라 인코딩된 오디오 임펄스이다. 따라서, 각각의 새로운 임펄스는 후속 시간을 지칭한다. 8,000 Hz의 인코딩된 오디오의 8,000번째 임펄스는 1초 부분에 있다. 일반적으로, 오디오는 시간 도메인이 아닌, 주파수 도메인에서 프로세스 된다.
"주파수 도메인(Frequency Domain)"은 오디오의 주어진 세그먼트의 주파수 구성요소를 분석하는 것을 지칭한다. 오디오를 시간 도메인(PCM)에서 주파수 도메인으로 변환하기 위해, 푸리에 변환이 일반적으로 사용된다.
"FFT" 또는 "고속 푸리에 변환(Fast Fourier Transform)"은 시간 도메인에서 주파수 도메인으로 세그먼트 오디오를 변환하는 알고리즘이다. 푸리에 변환은 적분을 사용하는 이론적인 알고리즘이지만, 이산적이지는 않다. (때로는 이산 푸리에 변환(Discrete Fourier transform) 또는 DFT로 지칭되는) FFT는 오디오를 시간 도메인에서 주파수 도메인으로 변환하는 DSP에서 일반적으로 사용되는 컴퓨터 알고리즘이다. FFT의 결과는 주파수 "빈"으로 구성되는 데이터 구조이다. 각각의 주파수 빈은 주파수 범위에서 크기로의 매핑이다. 예를 들면, 4,000 Hz에서 재생되는 사인파의 1초 FFT는 4,000 Hz에서 단일 빈을 높은 값으로 가질 것이다. 2,000 Hz와 4,000 Hz에서 재생되는 2개의 사인파들은 이론적으로 2,000 Hz에서 하나와 4,000 Hz에서 하나의 각각 대략 동일한 크기를 갖는 2개의 빈들을 갖는다. 실생활의 오디오는 많은 주파수들로 구성되어 있기 때문에, 일반적으로 주어진 오디오 샘플의 FFT에 대한 많은 주파수 빈들이 있다.
"컨텐츠(content)"는 스틸 이미지, 오디오 미디어의 세그먼트, 비디오 미디어, 또는 시청각(audio/visual, AV) 미디어에 상응하고, 구현(embody)되거나, 저장되거나, 전송되거나, 수신되거나, 처리되거나, 또는 그 외에 적어도 하나의 매체로 사용된 정보를 포함한다. 공통 미디어 컨텐츠 포맷은 FLV 포맷(플래시 비디오), 윈도우 미디어 비디오, RealMedia, Quicktime, MPEG, MP3, DivX, JPEGs 및 비트맵을 포함한다. 본 명세서에서 사용된 바와 같이, 용어 "미디어 클립", "미디어 컨텐츠", "정보 컨텐츠" 및 "컨텐츠"는 대체가능하게 사용될 수 있다.
본 명세서에서 사용된 것처럼, "데이터 저장소(data store)" 또는 "데이터베이스"는 데이터를 저장할 수 있는 물리적 또는 논리적 엔티티(entity)를 지칭한다. 데이터 저장소는 예를 들어 데이터베이스, 테이블, 파일, 목록(list), 큐(queue), 힙(heap), 메모리, 레지스터 등일 수 있다. 데이터 저장소는 하나의 논리적 또는 물리적 엔티티에 상주하거나 또는 둘 이상의 논리적 또는 물리적 엔티티 사이에 분산될 수 있다.
본 명세서에서 사용된 "로직(logic)"은 기능(들) 또는 동작(들)을 실행하거나, 또는 다른 로직, 방법, 또는 시스템으로부터 기능 또는 동작이 수행되게 하기 위한 하드웨어, 펌웨어, 소프트웨어 또는 각각의 조합을 포함하지만, 이로 한정되지 않는다. 예를 들어, 원하는 애플리케이션 또는 필요에 기초하여, 로직은 소프트웨어 제어형 마이크로프로세서, ASIC(application specific integrated circuit)와 같은 이산 로직(discrete logic), 프로그램된 로직 디바이스, 명령을 포함하는 메모리 디바이스 등을 포함할 수 있다. 로직은 하나 이상의 게이트(gate), 게이트 조합, 또는 다른 회로 구성요소를 포함할 수 있다. 또한, 로직은 소프트웨어로서 완전하게 구현될 수도 있다. 다중 논리적 로직(multiple logical logic)이 설명되는 경우, 다중 논리적 로직을 하나의 물리적 로직에 통합하는 것이 가능할 수 있다. 마찬가지로, 하나의 논리적 로직이 기술되는 경우, 다중 물리적 로직 사이에 하나의 논리적 로직을 분산시키는 것이 가능할 수 있다.
"동작 가능한 연결(operable connection)" 또는 엔티티들이 "동작 가능하게 연결되는" 연결은, 신호, 물리적인 통신 또는 논리적 통신이 송신되거나 수신될 수 있는 것이다. 일반적으로, 동작 가능한 연결은 물리적 인터페이스, 전기적 인터페이스 또는 데이터 인터페이스를 포함하지만, 동작 가능한 연결이 동작 가능한 제어를 허용하기에 충분한 이들 또는 다른 타입의 연결의 상이한 조합(differing combination)을 포함할 수 있음에 유의해야 한다. 예를 들어, 2개의 엔티티는 신호를 서로 직접적으로, 또는 프로세서, 운영 체제, 로직, 소프트웨어 또는 다른 엔티티와 같은 하나 이상의 중간 엔티티(intermediate entity)를 통해 통신 가능하게 함으로써 동작 가능하게 연결될 수 있다. 논리적 또는 물리적 통신 채널이 동작 가능한 연결을 생성하기 위해 사용될 수 있다.
방송에서, "재생출력(playout)"은 브로드캐스터로부터 라디오 또는 TV 채널이 방송 네트워크로 전송되어 그 컨텐츠를 시청자에게 전달하는 것에 대한 용어이다.
본 명세서에서 사용되는 "신호"는 하나 이상의 전기적 또는 광학적 신호, 아날로그 또는 디지털 신호, 데이터, 하나 이상의 컴퓨터 또는 프로세서 명령, 메시지, 비트 또는 비트 스트림, 또는 수신, 전송 또는 검출될 수 있는 기타 수단들을 포함하지만, 이로 한정되지 않는다.
본 명세서에서 사용된 "소프트웨어"는 읽기, 해석, 컴파일 또는 실행될 수 있고, 컴퓨터, 프로세서 또는 다른 전자 디바이스로 하여금 원하는 방식으로 기능, 동작, 또는 행동(behave)을 수행하도록 하는 하나 이상의 컴퓨터 또는 프로세서 명령을 포함하지만, 이로 한정되지 않는다. 이 명령들은 루틴, 알고리즘, 모듈, 메소드(method), 스레드(thread), 또는 동적 또는 정적으로 링크된 라이브러리로부터의 개별 애플리케이션 또는 코드를 포함하는 프로그램과 같은 다양한 형태로 구체화될 수 있다. 또한, 소프트웨어는 독립 실행형 프로그램(stand-alone program), 함수 호출(로컬 또는 원격), 서블릿(servlet), 애플릿(applet), 메모리에 저장된 명령, 운영 체계의 일부 또는 실행가능한 명령들의 다른 타입을 포함하는 다양한 실행가능 또는 로딩가능한 형태로 구현될 수 있지만, 이로 한정되지 않는다. 당업자는 소프트웨어의 형태가 예를 들어 원하는 애플리케이션의 요구 사항, 소프트웨어가 실행되는 환경, 또는 설계자/프로그래머 등의 요구사항 등에 의존할 수 있음을 이해할 것이다. 또한, 컴퓨터-판독가능 또는 실행가능 명령들은 하나의 로직에 위치하거나 또는 둘 이상의 통신, 협동(co-operating) 또는 병렬 처리 로직들 사이에 분산될 수 있고, 따라서 직렬, 병렬, 대용량 병렬 및 기타 방식으로 로딩되거나 또는 실행될 수 있음이 이해될 것이다.
여기에 기술된 예시적인 시스템 및 방법의 다양한 구성요소를 구현하기에 적합한 소프트웨어는 자바, 파스칼, C#, C++, C, CGI, Perl, SQL, APIs, SDKs, 어셈블리, 펌웨어, 마이크로코드, 또는 다른 언어와 도구와 같은 프로그래밍 언어와 도구를 사용하여 제작될 수 있다. 소프트웨어는 전체 시스템 또는 시스템의 구성요소 여부에 상관없이, 제조물품으로서 구체화될 수 있고 또는 이전에 정의된 것처럼, 컴퓨터-판독가능 매체의 일부로서 유지관리 또는 제공될 수 있다. 소프트웨어의 다른 형태는 네트워크 또는 다른 통신 매체를 거쳐서 소프트웨어의 프로그램 코드를 수신자에게 전송하는 신호를 포함할 수 있다. 따라서, 일례에서, 컴퓨터-판독가능 매체는 웹 서버로부터 사용자에게 다운로드되는 소프트웨어/펌웨어를 나타내는 신호의 형태를 가진다. 다른 예에서, 컴퓨터-판독가능 매체는 웹 서버상에서 유지관리되는 소프트웨어/펌웨어의 형태를 갖는다. 다른 형태도 사용될 수 있다.
본 명세서에서 사용되는 "사용자" 또는 "소비자"는 한 명 이상의 사람, 소프트웨어, 컴퓨터 또는 다른 디바이스, 또는 이들의 조합을 포함하지만, 이로 한정되지 않는다.
이어지는 상세한 설명의 일 부분은 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 심볼적 표현의 관점에서 제시된다. 이러한 알고리즘적 설명 및 표현은 당업자가 그들의 작업 내용을 다른 사람들에게 전달하는데 사용되는 수단이다. 여기에서 알고리즘은 일반적으로 결과를 생산하는 일련의 연산으로 인식된다. 연산은 물리적 양의 물리적 조작을 포함할 수 있다. 일반적으로, 반드시 필요한 것은 아니지만, 물리적 양은 로직 등으로 저장, 전송, 결합, 비교 및 그 외에 조작될 수 있는 전기적 또는 자기적 신호의 형태를 취한다.
주로 공통 사용의 이유로 인해, 이들 신호를 비트, 값, 요소, 기호, 문자, 용어, 수 등으로 지칭할 때가 편리하다는 것이 때때로 입증되었다. 그러나 이런 것들 및 유사한 용어들이 적절한 물리적 량과 연관될 수 있으며 이러한 양에 적용되는 편리한 레이블에 불과하다는 것을 명심해야 한다. 특별한 언급이 없는 한, 상세한 설명을 통해, 프로세싱, 컴퓨팅, 계산, 결정, 표시 등과 같은 용어는 물리적(전자적) 양으로 표현된 데이터를 조작하고 변형시키는 컴퓨터 시스템, 로직, 프로세서, 또는 유사한 전자 디바이스의 동작 및 프로세스를 지칭한다는 것을 알 수 있다.
용어 "포함한다(includes)" 또는 "포함하는(including)"이 상세한 설명 또는 청구 범위에서 이용되는 한, 용어 "구비하는(comprising)" 이 청구 범위에서 전환 어휘(transitional word)로 이용될 때 해석되는 것과 유사한 방식으로 포괄적인 것으로 의도된다. 또한, 용어 "또는(or)"이 발명의 상세한 설명 또는 청구 범위에서 이용(예를 들어, "A 또는 B")되는 한, "A 또는 B 또는 둘 모두" 의미하려는 것으로 의도된다. 출원인이 "둘 모두가 아니라, A 또는 B만"을 나타내려고 의도할 때는 용어 "둘 모두가 아니라, A 또는 B만"이 이용될 것이다. 따라서 본 명세서에서 용어 "또는"의 사용은 배타적인 사용이 아니라 포괄적 사용이다. 브라이언 A. 가너(Bryan A. Garner)의 현대 법적 용법 사전(Modern Legal Usage) 624(2d, Ed. 1995년) 참조.
예시적인 시스템, 방법 등이 예시들을 설명함으로써 도시되어 있고, 예시들이 상당히 자세하게 기술되어 있지만, 출원인이 이러한 세부 사항으로 범위를 제한하거나 어떤 방식으로든 범위를 한정하려는 의도는 아니다. 물론, 여기에서 설명된 시스템, 방법 등을 설명할 목적으로 구성요소 또는 방법론의 모든 가능한 조합을 설명하는 것은 불가능하다. 추가적인 장점들 및 수정예들은 당업자에게 쉽게 출현될 것이다. 따라서, 본 발명은 도시되고 설명된 특정 세부 사항, 대표적 장치, 및 예시적인 예들로 한정되지 않는다. 따라서, 본 출원은 첨부된 청구항의 범위 내에 있는 대안물, 수정물, 및 변형물을 포괄하도록 의도된다. 또한, 상술한 설명은 본 발명의 범위를 한정하는 것을 의미하지 않는다. 오히려, 본 발명의 범위는 첨부된 청구항 및 그것의 균등물에 의해 결정된다.

Claims (23)

  1. 오디오 핑거프린팅 방법으로서,
    오디오로부터 오디오 샘플들을 획득하는 단계 - 각각의 상기 오디오 샘플들은 특정 시간에 대응됨 -;
    상기 오디오 샘플들의 주파수 표현들을 생성하는 단계 - 상기 주파수 표현들은 주파수 대역으로 분할됨 -;
    상기 주파수 대역들의 에너지 영역을 식별하는 단계 - 상기 에너지 영역들 각각은 증가하는 에너지 영역 및 감소하는 에너지 영역 중 하나이며, 증가하는 에너지 영역은 오디오 에너지가 시간 영역의 시작 시간부터 종료 시간까지 증가하는 상기 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역으로 정의되고, 감소하는 에너지 영역은 오디오 에너지가 시간 영역의 시작 시간부터 종료 시간까지 감소하는 상기 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역으로 정의됨 -;
    상기 오디오의 피처(feature)들의 해시(hash)들을 생성하기 위해 시간 윈도우 내에 나타나는 상기 식별된 에너지 영역들의 부분을 분석하는 단계 - 피처들의 각각의 해시는 각각의 시간 윈도우에 나타나는 상기 식별된 에너지 영역의 부분에 대응하며, 각각의 피처는 다음을 나타내는 정보를 인코딩하는 수치값으로 정의됨: 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 주파수 대역, 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 증가하는 에너지 영역인지 또는 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 감소하는 에너지 영역인지 여부, 및 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 배치, 여기서 상기 각각의 시간 윈도우에 나타나는 상기 에너지 영역의 배치는 다음 중 하나에 대응함:
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부,
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부,
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부, 및
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부 -; 및
    피처들의 각각의 해시를 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보와 함께 저장하는 단계를 포함하는 오디오 핑거프린팅 방법.
  2. 청구항 1에 있어서,
    피처들의 각각의 해시를 상기 피처들의 민해시(MinHash) 표현 또는 민해시 값들로 변환하는 단계; 및
    상기 민해시값들을 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보와 함께 저장하는 단계를 포함하는 오디오 핑거프린팅 방법.
  3. 청구항 1에 있어서,
    피처들의 각각의 해시를 100개의 민해시 값들을 갖는 상기 피처들의 민해시 표현으로 변환하는 단계;
    상기 100개의 민해시 값들을 5개의 샤드 크기로 샤딩하여 5개의 민해시 샤드(shard) 값들의 20개의 로우 또는 그룹들을 얻는 단계;
    로우 또는 그룹 내의 상기 5개의 민해시 샤드 값들을 64 비트수로 결합하여 20개의 64 비트수를 갖는 핑거프린트 해시를 얻는 단계; 및
    상기 핑거프린트 해시를 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보와 함께 저장하는 단계를 포함하는 오디오 핑거프린팅 방법.
  4. 청구항 1에 있어서,
    상기 오디오의 오디오 샘플들을 획득하는 단계는,
    4096 샘플들의 샘플링 윈도우 크기 및 31/32의 윈도우 오버랩을 사용하여 8 kHz에서 상기 오디오를 샘플링 하는 단계를 포함하는 오디오 핑거프린팅 방법.
  5. 청구항 1에 있어서,
    상기 주파수 대역들은 200 Hz에서 시작하는 제1 주파수 대역으로부터 3300 Hz에서 종료되는 제44 주파수 대역까지 범위를 갖는 44개의 주파수 대역들을 포함하는 오디오 핑거프린팅 방법.
  6. 청구항 1에 있어서,
    상기 주파수 대역들은 200 Hz에서 시작하는 제1 주파수 대역으로부터 3300 Hz에서 종료되는 제44 주파수 대역까지 대역폭이 대수적으로(logarithmically) 감소하는 44개의 주파수 대역들을 포함하는 오디오 핑거프린팅 방법.
  7. 청구항 1에 있어서,
    상기 시간 윈도우 각각은 1000 밀리초의 윈도우 크기 및 950 밀리초의 윈도우 오버랩을 갖는 오디오 핑거프린팅 방법.
  8. 오디오 핑거프린팅을 위한 시스템으로서,
    오디오로부터 오디오 샘플들을 획득하도록 구성되는 샘플러(sampler) - 각각의 상기 오디오 샘플들은 특정 시간에 대응됨 -;
    상기 오디오 샘플들을 상기 오디오 샘플들의 주파수 표현들로 변환하도록 구성되는 트랜스포머(transformer) - 상기 주파수 표현들은 주파수 대역으로 분할됨 -;
    상기 주파수 대역들의 에너지 영역을 식별하는 에너지 스트리머(streamer) - 상기 에너지 영역들 각각은 증가하는 에너지 영역 및 감소하는 에너지 영역 중 하나이며, 증가하는 에너지 영역은 오디오 에너지가 시간 영역의 시작 시간부터 종료 시간까지 증가하는 상기 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역으로 정의되고, 감소하는 에너지 영역은 오디오 에너지가 시간 영역의 시작 시간부터 종료 시간까지 감소하는 상기 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역으로 정의됨 -;
    상기 오디오의 피처들의 해시들을 생성하기 위해 시간 윈도우 내에 나타나는 상기 식별된 에너지 영역들의 부분을 분석하는 에너지 해셔(hasher) - 피처들의 각각의 해시는 각각의 시간 윈도우에 나타나는 상기 식별된 에너지 영역의 부분에 대응하며, 각각의 피처는 다음을 나타내는 정보를 인코딩하는 수치값으로 정의됨: 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 주파수 대역, 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 증가하는 에너지 영역인지 또는 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 감소하는 에너지 영역인지 여부, 및 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 배치, 여기서 상기 각각의 시간 윈도우에 나타나는 상기 에너지 영역의 배치는 다음 중 하나에 대응함:
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부,
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부,
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부, 및
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부 -; 및
    피처들의 각각의 해시를 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보와 함께 저장하도록 구성되는 비일시적 저장 매체를 포함하는 시스템.
  9. 청구항 8에 있어서,
    피처들의 각각의 해시를 상기 피처들의 민해시 표현 또는 민해시 값들로 변환하도록 구성되는 민해시 해셔; 및
    상기 민해시값들을 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보와 함께 저장하도록 구성되는 상기 비일시적 저장 매체 또는 다른 비일시적 저장 매체를 포함하는 시스템.
  10. 청구항 8에 있어서,
    피처들의 각각의 해시를 100개의 민해시 값들을 갖는 상기 피처들의 민해시 표현으로 변환하도록 구성되는 민해시 해셔;
    상기 100개의 민해시 값들을 5개의 샤드 크기로 샤딩하여 5개의 민해시 샤드 값들의 20개의 로우 또는 그룹들을 얻도록 구성되는 샤더(sharder);
    로우 또는 그룹 내의 상기 5개의 민해시 샤드 값들을 64 비트수로 결합하여 20개의 64 비트수를 갖는 핑거프린트 해시를 얻도록 구성되는 결합기(combiner); 및
    상기 핑거프린트 해시를 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보와 함께 저장하도록 구성되는 상기 비일시적 저장 매체 또는 다른 비일시적 저장 매체를 포함하는 시스템.
  11. 청구항 8에 있어서,
    4096 샘플들의 샘플링 윈도우 크기 및 31/32의 윈도우 오버랩을 사용하여 8 kHz에서 상기 오디오를 샘플링 함으로써 상기 오디오의 오디오 샘플들을 획득하도록 구성되는 샘플러를 포함하는 시스템.
  12. 청구항 8에 있어서,
    상기 주파수 대역들은 200 Hz에서 시작하는 제1 주파수 대역으로부터 3300 Hz에서 종료되는 제44 주파수 대역까지 범위를 갖는 44개의 주파수 대역들을 포함하는 시스템.
  13. 청구항 8에 있어서,
    상기 주파수 대역들은 200 Hz에서 시작하는 제1 주파수 대역으로부터 3300 Hz에서 종료되는 제44 주파수 대역까지 대역폭이 대수적으로 감소하는 44개의 주파수 대역들을 포함하는 시스템.
  14. 청구항 8에 있어서,
    상기 시간 윈도우 각각은 1000 밀리초의 윈도우 크기 및 950 밀리초의 윈도우 오버랩을 갖는 시스템.
  15. 오디오 핑거프린팅을 위한 장치로서,
    프로세서; 및
    비일시적 컴퓨터-판독 가능 매체를 포함하고,
    상기 프로세서는 오디오의 오디오 샘플들을 수신하고 - 상기 오디오 샘플들 각각은 특정 시간에 대응됨 - 상기 오디오 샘플들을 프로세스하며, 상기 프로세스 된 오디오 샘플들을 상기 비일시적 컴퓨터-판독 가능 매체에 저장된 프로세스 된 오디오 샘플들과 비교하여 상기 오디오를 식별 또는 동기화하는 것 중 적어도 하나를 수행하도록 구성되며,
    상기 프로세서는,
    상기 오디오 샘플들을 상기 오디오 샘플들의 주파수 표현들로 변환하는 단계 - 상기 주파수 표현들은 주파수 대역으로 분할됨 -;
    상기 주파수 대역들의 에너지 영역을 식별하는 단계 - 상기 에너지 영역들 각각은 증가하는 에너지 영역 및 감소하는 에너지 영역 중 하나이며, 증가하는 에너지 영역은 오디오 에너지가 시간 영역의 시작 시간부터 종료 시간까지 증가하는 상기 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역으로 정의되고, 감소하는 에너지 영역은 오디오 에너지가 시간 영역의 시작 시간부터 종료 시간까지 감소하는 상기 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역으로 정의됨 -;
    상기 오디오의 피처들의 해시들을 생성하기 위해 시간 윈도우 내에 나타나는 상기 식별된 에너지 영역들의 부분을 분석하는 단계 - 피처들의 각각의 해시는 각각의 시간 윈도우에 나타나는 상기 식별된 에너지 영역의 부분에 대응하며, 각각의 피처는 다음을 나타내는 정보를 인코딩하는 수치값으로 정의됨: 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 주파수 대역, 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 증가하는 에너지 영역인지 또는 상기 각각의 시간 윈도우에 나타나는 에너지 영역이 감소하는 에너지 영역인지 여부, 및 상기 각각의 시간 윈도우에 나타나는 에너지 영역의 배치, 여기서 상기 각각의 시간 윈도우에 나타나는 상기 에너지 영역의 배치는 다음 중 하나에 대응함:
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부,
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 이전에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부,
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 이후에 종료되는지 여부, 및
    상기 각각의 시간 윈도우에 나타나는 에너지 영역이 상기 각각의 시간 윈도우 내에 시작하고, 상기 각각의 시간 윈도우 내에 종료되는지 여부 - 에 의해 상기 오디오 샘플들을 프로세스 하도록 구성되는 장치.
  16. 청구항 15에 있어서,
    상기 프로세서는 피처들의 각각의 해시를 민해시 값들을 갖는 상기 피처들의 민해시 표현으로 변환하도록 구성되며; 그리고
    상기 비일시적 컴퓨터-판독 가능 매체 또는 다른 비일시적 저장 매체는 상기 민해시 값들 및 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보를 저장하도록 구성되는 장치.
  17. 청구항 15에 있어서,
    상기 프로세서는,
    피처들의 각각의 해시를 100개의 민해시 값들을 갖는 상기 피처들의 민해시 표현으로 변환하고;
    상기 100개의 민해시 값들을 5개의 샤드 크기로 샤딩하여 5개의 민해시 샤드 값들의 20개의 로우 또는 그룹들을 얻으며;
    로우 또는 그룹 내의 상기 5개의 민해시 샤드 값들을 64 비트수로 결합하여 20개의 64 비트수를 갖는 핑거프린트 해시를 얻고; 그리고
    상기 비일시적 컴퓨터-판독 가능 매체 또는 다른 비일시적 저장 매체는 상기 핑거프린트 해시 및 상기 각각의 시간 윈도우 내의 상기 에너지 영역의 시간 정보를저장하도록 구성되는 장치.
  18. 청구항 15에 있어서,
    4096 샘플들의 샘플링 윈도우 크기 및 31/32의 윈도우 오버랩을 사용하여 8 kHz에서 상기 오디오를 샘플링함으로써 상기 오디오의 오디오 샘플들을 획득하도록 구성되는 장치.
  19. 청구항 15에 있어서,
    상기 주파수 대역들은 200 Hz에서 시작하는 제1 주파수 대역으로부터 3300 Hz에서 종료되는 제44 주파수 대역까지 대역폭이 대수적으로 감소하는 44개의 주파수 대역들을 포함하는 장치.
  20. 청구항 15에 있어서,
    상기 프로세서는 시간 윈도우 각각은 1000 밀리초의 윈도우 크기 및 950 밀리초의 윈도우 오버랩을 갖는 장치.
  21. 청구항 1에 있어서,
    상기 에너지 영역을 식별하는 단계는, 상기 시간 영역 동안의 순 에너지 변화가 상기 시간 영역의 시작 시간부터 종료 시간까지 0이 되도록, 오디오 에너지가 변동하는 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역을 무시하는 단계를 포함하는 오디오 핑거프린팅 방법.
  22. 청구항 8에 있어서,
    상기 에너지 스트리머는 상기 시간 영역 동안의 순 에너지 변화가 상기 시간 영역의 시작 시간부터 종료 시간까지 0이 되도록, 오디오 에너지가 변동하는 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역을 무시하도록 구성되는 시스템.
  23. 청구항 15에 있어서,
    상기 에너지 영역을 식별하는 단계는, 오디오 에너지의 평균이 상기 시간 영역의 시작 시간부터 종료 시간까지 증가하거나 감소하지 않는 주파수 대역들 중 하나의 주파수 대역 내의 시간 영역을 무시하는 단계를 포함하는 장치.
KR1020187032366A 2016-04-08 2017-04-07 오디오 에너지 특성에 기초한 오디오 핑거프린팅 KR102304197B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/094,538 2016-04-08
US15/094,538 US10397663B2 (en) 2016-04-08 2016-04-08 Synchronizing ancillary data to content including audio
PCT/IB2017/052031 WO2017175197A1 (en) 2016-04-08 2017-04-07 Audio fingerprinting based on audio energy characteristics

Publications (2)

Publication Number Publication Date
KR20180135464A KR20180135464A (ko) 2018-12-20
KR102304197B1 true KR102304197B1 (ko) 2021-09-24

Family

ID=58632628

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217032756A KR102390142B1 (ko) 2016-04-08 2017-04-07 오디오를 포함하는 콘텐츠에 대한 보조 데이터의 동기화
KR1020187032366A KR102304197B1 (ko) 2016-04-08 2017-04-07 오디오 에너지 특성에 기초한 오디오 핑거프린팅
KR1020187032323A KR102313991B1 (ko) 2016-04-08 2017-04-07 오디오를 포함하는 콘텐츠에 대한 보조 데이터의 동기화
KR1020187032322A KR102308651B1 (ko) 2016-04-08 2017-04-10 매체 환경 중심 콘텐츠 배포 플랫폼

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217032756A KR102390142B1 (ko) 2016-04-08 2017-04-07 오디오를 포함하는 콘텐츠에 대한 보조 데이터의 동기화

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020187032323A KR102313991B1 (ko) 2016-04-08 2017-04-07 오디오를 포함하는 콘텐츠에 대한 보조 데이터의 동기화
KR1020187032322A KR102308651B1 (ko) 2016-04-08 2017-04-10 매체 환경 중심 콘텐츠 배포 플랫폼

Country Status (9)

Country Link
US (3) US10397663B2 (ko)
EP (5) EP3440841A1 (ko)
JP (5) JP2019518248A (ko)
KR (4) KR102390142B1 (ko)
CN (4) CN109644283B (ko)
AU (6) AU2017247046B2 (ko)
CA (3) CA3020065A1 (ko)
ES (1) ES2856123T3 (ko)
WO (3) WO2017175197A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032580B2 (en) 2017-12-18 2021-06-08 Dish Network L.L.C. Systems and methods for facilitating a personalized viewing experience
US20190208236A1 (en) * 2018-01-02 2019-07-04 Source Digital, Inc. Coordinates as ancillary data
EP3735742A4 (en) 2018-01-07 2021-09-22 Gracenote, Inc. METHOD AND DEVICE FOR ADJUSTING THE VOLUME
US10365885B1 (en) * 2018-02-21 2019-07-30 Sling Media Pvt. Ltd. Systems and methods for composition of audio content from multi-object audio
KR20200142787A (ko) * 2019-06-13 2020-12-23 네이버 주식회사 멀티미디어 신호 인식을 위한 전자 장치 및 그의 동작 방법
US11798577B2 (en) * 2021-03-04 2023-10-24 Gracenote, Inc. Methods and apparatus to fingerprint an audio signal

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528144A (ja) 2003-07-11 2007-10-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチメディア信号おいてトリガーマーカとして機能するフィンガープリントを生成及び検出する方法及び装置
US20110063503A1 (en) 2009-07-06 2011-03-17 Brand Steven M Synchronizing secondary content to a multimedia presentation
US20120209612A1 (en) 2011-02-10 2012-08-16 Intonow Extraction and Matching of Characteristic Fingerprints from Audio Signals
US20140310006A1 (en) 2011-08-29 2014-10-16 Telefonica, S.A. Method to generate audio fingerprints

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2837815B2 (ja) 1994-02-03 1998-12-16 インターナショナル・ビジネス・マシーンズ・コーポレイション 対話型ルール・ベース・コンピュータ・システム
US20020056136A1 (en) 1995-09-29 2002-05-09 Wistendahl Douglass A. System for converting existing TV content to interactive TV programs operated with a standard remote control and TV set-top box
JP2002504787A (ja) * 1998-02-20 2002-02-12 トムソン ライセンシング ソシエテ アノニム プログラムガイドを形成し、区分し、処理するためのシステム
US20010003212A1 (en) * 1999-10-29 2001-06-07 Jerilyn L. Marler Identifying ancillary information associated with an audio/video program
DE60323086D1 (de) 2002-04-25 2008-10-02 Landmark Digital Services Llc Robuster und invarianter audiomustervergleich
DE102004036154B3 (de) * 2004-07-26 2005-12-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur robusten Klassifizierung von Audiosignalen sowie Verfahren zu Einrichtung und Betrieb einer Audiosignal-Datenbank sowie Computer-Programm
US9635312B2 (en) * 2004-09-27 2017-04-25 Soundstreak, Llc Method and apparatus for remote voice-over or music production and management
US7516074B2 (en) * 2005-09-01 2009-04-07 Auditude, Inc. Extraction and matching of characteristic fingerprints from audio signals
KR101348521B1 (ko) * 2005-09-16 2014-01-06 플릭서, 인크. 비디오의 개인화
CN101438526B (zh) 2006-05-05 2013-03-13 美国索尼电脑娱乐公司 广告旋转
JP2008005265A (ja) * 2006-06-23 2008-01-10 Matsushita Electric Ind Co Ltd メタデータ生成装置
US10580459B2 (en) * 2007-08-23 2020-03-03 Sony Interactive Entertainment America Llc Dynamic media interaction using time-based metadata
WO2009036435A1 (en) * 2007-09-14 2009-03-19 Auditude.Com, Inc. Restoring program information for clips of broadcast programs shared online
EP2272065A1 (en) * 2008-04-14 2011-01-12 Thomson Licensing Method and apparatus for associating metadata with content for live production
RU2536679C2 (ru) * 2008-07-11 2014-12-27 Фраунхофер-Гезелльшафт цур Фёрдерунг дер ангевандтен Передатчик сигнала активации с деформацией по времени, кодер звукового сигнала, способ преобразования сигнала активации с деформацией по времени, способ кодирования звукового сигнала и компьютерные программы
US20100205628A1 (en) * 2009-02-12 2010-08-12 Davis Bruce L Media processing methods and arrangements
AU2010242814B2 (en) * 2009-05-01 2014-07-31 The Nielsen Company (Us), Llc Methods, apparatus and articles of manufacture to provide secondary content in association with primary broadcast media content
US8489774B2 (en) 2009-05-27 2013-07-16 Spot411 Technologies, Inc. Synchronized delivery of interactive content
CN101594527B (zh) * 2009-06-30 2011-01-05 成都艾索语音技术有限公司 从音频视频流中高精度检测模板的两阶段方法
US20160182971A1 (en) * 2009-12-31 2016-06-23 Flickintel, Llc Method, system and computer program product for obtaining and displaying supplemental data about a displayed movie, show, event or video game
CN102137332B (zh) * 2010-01-26 2016-03-02 中兴通讯股份有限公司 一种广播下发辅助定位数据的方法及系统
US8713604B2 (en) 2010-06-23 2014-04-29 Echostar Technologies L.L.C. Systems and methods for processing supplemental information associated with media programming
US8380334B2 (en) 2010-09-07 2013-02-19 Linear Acoustic, Inc. Carrying auxiliary data within audio signals
US9075806B2 (en) 2011-02-22 2015-07-07 Dolby Laboratories Licensing Corporation Alignment and re-association of metadata for media streams within a computing device
JP5544395B2 (ja) 2011-05-19 2014-07-09 日本放送協会 受信機
US20130151970A1 (en) 2011-06-03 2013-06-13 Maha Achour System and Methods for Distributed Multimedia Production
CN102214219B (zh) * 2011-06-07 2013-04-17 盛乐信息技术(上海)有限公司 音视频内容检索系统及其方法
US9762967B2 (en) * 2011-06-14 2017-09-12 Comcast Cable Communications, Llc System and method for presenting content with time based metadata
US8949872B2 (en) 2011-12-20 2015-02-03 Yahoo! Inc. Audio fingerprint for content identification
US20130178966A1 (en) 2012-01-09 2013-07-11 Function(x), Inc. Method and System for Identifying a Media Program From an Audio Signal Associated With the Media Program
JP2013183327A (ja) 2012-03-02 2013-09-12 Yamaha Corp コンテンツ提供システム、コンテンツ提供方法、および、コンテンツ編集装置
US9258380B2 (en) * 2012-03-02 2016-02-09 Realtek Semiconductor Corp. Cross-platform multimedia interaction system with multiple displays and dynamically-configured hierarchical servers and related method, electronic device and computer program product
WO2013138203A1 (en) * 2012-03-10 2013-09-19 Headwater Partners Ii Llc Content broker assisting distribution of content
US9583147B2 (en) 2012-03-26 2017-02-28 Max Abecassis Second screen shopping function
US8681950B2 (en) 2012-03-28 2014-03-25 Interactive Intelligence, Inc. System and method for fingerprinting datasets
US9374374B2 (en) 2012-06-19 2016-06-21 SecureMySocial, Inc. Systems and methods for securing social media for users and businesses and rewarding for enhancing security
DK2765787T3 (da) * 2013-02-07 2020-03-09 Oticon As Fremgangsmåde til reduktion af ikke-korreleret støj i en audiobehandlingsenhed
US20150348538A1 (en) * 2013-03-14 2015-12-03 Aliphcom Speech summary and action item generation
US10212490B2 (en) * 2013-03-15 2019-02-19 DISH Technologies L.L.C. Pre-distribution identification of broadcast television content using audio fingerprints
FR3006525B1 (fr) 2013-06-04 2016-10-14 Visiware Synchronisation de contenus multimedia sur deuxieme ecran
CN104347068B (zh) 2013-08-08 2020-05-22 索尼公司 音频信号处理装置和方法以及监控系统
US9275427B1 (en) 2013-09-05 2016-03-01 Google Inc. Multi-channel audio video fingerprinting
US9286902B2 (en) * 2013-12-16 2016-03-15 Gracenote, Inc. Audio fingerprinting
US9456237B2 (en) 2013-12-31 2016-09-27 Google Inc. Methods, systems, and media for presenting supplemental information corresponding to on-demand media content
US10074374B2 (en) 2014-04-07 2018-09-11 Barco N.V. Ad hoc one-time pairing of remote devices using online audio fingerprinting
KR20150116191A (ko) * 2014-04-07 2015-10-15 이현무 핑거프린트 데이터를 기반으로 자막데이터를 출력하는 방송용 자막 송출 장치
US20150319506A1 (en) * 2014-04-30 2015-11-05 Netflix, Inc. Displaying data associated with a program based on automatic recognition
US9641892B2 (en) * 2014-07-15 2017-05-02 The Nielsen Company (Us), Llc Frequency band selection and processing techniques for media source detection
MX367005B (es) 2014-07-18 2019-08-02 Sony Corp Dispositivo de transmision, metodo de transmision, dispositivo de recepcion, y metodo de recepcion.
US9948997B2 (en) 2015-02-25 2018-04-17 Excalibur Ip, Llc Providing interactivity options for television broadcast content
CN106558318B (zh) * 2015-09-24 2020-04-28 阿里巴巴集团控股有限公司 音频识别方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528144A (ja) 2003-07-11 2007-10-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マルチメディア信号おいてトリガーマーカとして機能するフィンガープリントを生成及び検出する方法及び装置
US20110063503A1 (en) 2009-07-06 2011-03-17 Brand Steven M Synchronizing secondary content to a multimedia presentation
US20120209612A1 (en) 2011-02-10 2012-08-16 Intonow Extraction and Matching of Characteristic Fingerprints from Audio Signals
US20140310006A1 (en) 2011-08-29 2014-10-16 Telefonica, S.A. Method to generate audio fingerprints

Also Published As

Publication number Publication date
KR102390142B1 (ko) 2022-04-25
AU2017248397A1 (en) 2018-11-22
CN109644283A (zh) 2019-04-16
EP4009647A1 (en) 2022-06-08
WO2017177232A1 (en) 2017-10-12
JP2019519869A (ja) 2019-07-11
WO2017175198A1 (en) 2017-10-12
JP2019520011A (ja) 2019-07-11
US10397663B2 (en) 2019-08-27
KR20180133893A (ko) 2018-12-17
AU2023278105A1 (en) 2024-01-04
EP3440841A1 (en) 2019-02-13
KR102313991B1 (ko) 2021-10-18
AU2017247045B2 (en) 2021-10-07
CN109644283B (zh) 2021-07-30
JP6901798B2 (ja) 2021-07-14
CA3020064A1 (en) 2017-10-12
JP2022095945A (ja) 2022-06-28
CN109644291B (zh) 2023-02-28
US20170295394A1 (en) 2017-10-12
KR20180135464A (ko) 2018-12-20
AU2022200821A1 (en) 2022-02-24
EP4016528A3 (en) 2022-10-12
AU2017247045A1 (en) 2018-11-22
AU2022200820A1 (en) 2022-02-24
CA3020065A1 (en) 2017-10-12
CA3020176C (en) 2024-04-02
CN109565618B (zh) 2022-05-31
JP2019518248A (ja) 2019-06-27
CN109644291A (zh) 2019-04-16
EP3440564B1 (en) 2021-01-13
EP3440840A1 (en) 2019-02-13
KR20180133894A (ko) 2018-12-17
JP7442211B2 (ja) 2024-03-04
AU2017248397B2 (en) 2022-02-24
US10715879B2 (en) 2020-07-14
ES2856123T3 (es) 2021-09-27
CN114979722A (zh) 2022-08-30
WO2017175197A1 (en) 2017-10-12
AU2017247046B2 (en) 2022-03-03
CN109565618A (zh) 2019-04-02
KR20210128501A (ko) 2021-10-26
AU2017247046A1 (en) 2018-11-22
EP4016528A2 (en) 2022-06-22
US20170295412A1 (en) 2017-10-12
CA3020176A1 (en) 2017-10-12
EP3440564A1 (en) 2019-02-13
US20230071225A1 (en) 2023-03-09
KR102308651B1 (ko) 2021-10-05
JP2022160519A (ja) 2022-10-19

Similar Documents

Publication Publication Date Title
US10540993B2 (en) Audio fingerprinting based on audio energy characteristics
KR102304197B1 (ko) 오디오 에너지 특성에 기초한 오디오 핑거프린팅
EP1550297B1 (en) Fingerprint extraction
IL282781A (en) Adaptive processing with multiple media processor nodes
US20140161263A1 (en) Facilitating recognition of real-time content
KR20050061594A (ko) 개선된 오디오 데이터 지문 검색
US20140280304A1 (en) Matching versions of a known song to an unknown song
KR20040086350A (ko) 핑거프린트의 효율적 저장
KR20120064582A (ko) 멀티미디어 컨텐츠 검색 방법 및 장치
CN108307250B (zh) 一种生成视频摘要的方法及装置
JP2013534645A (ja) オーディオメディア認識のためのシステム及び方法
US10141010B1 (en) Automatic censoring of objectionable song lyrics in audio
KR20170140188A (ko) 오디오 컨텐츠 인식 방법 및 장치
JP2018522288A (ja) オーディオ処理の方法、装置及び端末
Schreiber et al. Accelerating index-based audio identification
You et al. Music identification system using MPEG-7 audio signature descriptors
Wang et al. Audio fingerprint based on spectral flux for audio retrieval
KR102447554B1 (ko) 오디오 핑거프린트 매칭을 기반으로하는 음원 인식 방법 및 장치
Qian et al. A novel algorithm for audio information retrieval based on audio fingerprint
GB2515481A (en) Programme control
Vajpayee et al. A simple and efficient method for dubbed audio sync detection using compressive sensing
Khemiri et al. A generic audio identification system for radio broadcast monitoring based on data-driven segmentation
AU2022311496A1 (en) Apparatus, method and computer program code for processing audio stream
Shi et al. Noise reduction based on nearest neighbor estimation for audio feature extraction
KR20230071253A (ko) 콘텐츠 내 음악 식별 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant