KR20150095957A - 미디어 스트림의 샘플을 처리하는 방법 및 시스템 - Google Patents

미디어 스트림의 샘플을 처리하는 방법 및 시스템 Download PDF

Info

Publication number
KR20150095957A
KR20150095957A KR1020157021560A KR20157021560A KR20150095957A KR 20150095957 A KR20150095957 A KR 20150095957A KR 1020157021560 A KR1020157021560 A KR 1020157021560A KR 20157021560 A KR20157021560 A KR 20157021560A KR 20150095957 A KR20150095957 A KR 20150095957A
Authority
KR
South Korea
Prior art keywords
media
stream
signature
features
recording
Prior art date
Application number
KR1020157021560A
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 KR20150095957A publication Critical patent/KR20150095957A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • 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
    • 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
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/30861
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • 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/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/854Content authoring
    • H04N21/8549Creating video summaries, e.g. movie trailer
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Algebra (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

미디어 스트림의 샘플을 처리하는 방법 및 시스템이 제공된다. 일 실시예에서, 방법은 미디어 렌더링 소스에 의해 렌더링 된 미디어 스트림의 샘플을 수신하는 것을 포함하고, 및 샘플이 얻어진 매칭 미디어 레코딩들에 대해, 상기 방법은 또한 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처들을 포함하는 시그너처 파일을 수신하는 것을 포함한다. 각각의 수신된 시그너처 파일은 메모리에 저장될 수 있다. 또한, 미디어 스트림으로부터 추툴된 피처들을 포함하는 시그너처 스트림이 수신될 수 있고, 미디어 스트림의 시그너처 스트림과 하나 이상의 매칭 미디어 레코딩에 대한 시그너처 파일 사이의 매칭 피처들의 수가 결정될 수 있다. 일 실시예에서, 미디어 스트림의 시그너처 스트림과 매칭 미디어 레코딩에 대한 시그너처 파일 사이의 실질적으로 매칭하는 피처들의 발생이 중지할 때, 불연속이 식별될 수 있다.

Description

미디어 스트림의 샘플을 처리하는 방법 및 시스템{METHODS AND SYSTEMS FOR PROCESSING A SAMPLE OF MEDIA STREAM}
본 발명은 미디어 정보 검색, 미디어 동기화, 및 미디어 식별의 검증을 포함하는 미디어 처리에 관한 것이다. 또한, 본 발명은 허위 긍정 검출(false positive detection), 복수 버젼의 명확화(multiple version disambiguations), 매칭 세그먼트(matching segment) 길이의 결정, 및 미디어 스트림의 재동기화에 관한 것이다.
오디오 또는 비디오와 같은 다양한 미디어 타입을 위한 콘텐츠 식별 시스템은 다수의 상이한 방법을 사용한다. 클라이언트 디바이스는 미디어 스트림(예컨대, 라디오)의 미디어 샘플 레코딩을 캡처하고, 그 다음 미디어 레코딩(미디어 트랙(media tracks)이라고도 함) DB에서 미디어 스트림을 식별하기 위한 매치(match)의 검색을 수행한다. 상기 샘플 레코딩은 콘텐츠 식별을 위한 관련 피처를 추출하기 위해 클라이언트 디바이스에서 처리될 수 있다. 샘플 레코딩은, 샘플의 콘텐츠 식별을 수행하고 식별 결과를 클라이언트 디바이스에 반환하는 콘텐츠 식별 모듈에 전달될 수도 있다. 그 다음에 인식 결과가 클라이언트 디바이스의 사용자에게 표시되거나 관련 정보의 구매 또는 참조와 같은 다양한 후속 서비스를 위해 사용된다. 콘텐츠 식별을 위한 다른 응용들은 예를 들면 방송 모니터링 또는 콘텐츠-민감형 광고를 포함한다.
실시예 콘텐츠 식별 시스템에서, 콘텐츠 식별은 클라이언트 디바이스에 결과가 반환된 후 종결된다. 그러나 어떤 콘텐츠 식별 시스템들은 낮은 식별력(discriminability)을 가질 수 있고, 이것으로 인해 다수의 허위 긍정 매치를 제공한다. 또한, 어떤 콘텐츠 식별 시스템들은 DB 내 복수의 가능한 매칭 레코딩들 사이의 모호함을 명확히 하지 못할 수 있다. 예를 들면, 만일 샘플 레코딩이 데이터 베이스 내 복수의 대상 레코딩들에 의해 공유된 세그먼트에 걸치는 경우, 콘텐츠 식별 시스템은 이들 복수의 레코딩들 중 어느 것을 매치라고 판정할 것이다. 이 상황은, 동일한 원시 레코딩으로부터의 세그먼트들이 상이한 저작물 내에 샘플링되는 예를 들면, 라디오 믹스(radio mix), 익스텐디드 댄스 믹스(extended dance mix), 또는 매시-업(mash-up)과 같은 한 미디어 레코딩의 복수 버젼들이 있는 경우에 일어날 수 있다. 이들 사례에 있어서, 콘텐츠 식별의 결과는 정확하지 않을 수 있다.
일 예에서, 본 발명은 미디어 렌더링 소스(media rendering source)에 의해 렌더링된 미디어 스트림(stream)의 샘플을 수신하는 것을 포함한다. 상기 방법은 또한 샘플이 획득된 매칭 미디어 레코딩((matching media recording)들에 대해 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처(temporally mapped features)들의 집합을 포함하는 시그너처 파일(signature file)을 수신하는 것을 포함한다. 상기 방법은 추가로 각각의 수신된 시그너처 파일을 메모리에 저장하는 것을 포함한다.
일 예에서, 상기 방법은 추가로 미디어 렌더링 소스에 의해 렌더링된 미디어 스트림의 샘플을 포함하는 콘텐츠 식별 조회를 수신하는 것, 및 샘플이 획득된 매칭 미디어 레코딩들의 신분확인을 판정하는 것을 포함한다.
일 예에서, 상기 방법은 추가로 미디어 스트림으로부터 추출된 피처를 포함하는 시그너처 스트림을 수신하고, 적어도 하나의 매칭 미디어 레코딩에 대해 시그너처 파일과 미디어 스트림의 시그너처 스트림 사이의 매칭 피처들의 수를 판정하고, 및 매칭 피처들의 수에 기초하여 매칭 미디어 레코딩을 식별하는 것을 포함한다.
일 예에서, 상기 방법은 추가로 미디어 스트림으로부터 추출된 피처들을 포함하는 시그너처 스트림을 수신하고, 미디어 스트림의 시그너처 스트림과 시그너처 파일 사이의 피처들이 시간에 따라 실질적으로 매칭하는지 판정하는 것을 포함한다. 상기 방법은 추가로 매칭 미디어 레코딩에 대해 미디어 스트림의 시그너처 스트림과 시그너처 파일 사이의 실질적인 매칭 피처들의 발생이 멈출 때, 불연속을 식별하는 것을 포함한다.
상기 방법은 예를 들면 클라이언트 디바이스 또는 서버에 의해 수행될 수 있다.
여기서 설명된 방법들 중 어느 것이라도 일시적이지 않은 컴퓨터 판독 가능한 매체에 저장된 명령의 형태로 제공될 수 있으며, 컴퓨터 장치에 의해 실행될 때 상기 방법의 기능들을 수행한다. 추가의 실시예들은 또한 컴퓨터-판독 가능한 부호화된 명령들을 구비하는 컴퓨터-판독 가능한 유형의 매체를 포함하는 제품을 포함할 수도 있으며, 상기 명령들은 본 명세서에서 기술된 방법들의 기능을 수행하는 명령을 포함할 수 있다.
컴퓨터 판독 가능한 매체는 일시적이지 않은 컴퓨터 판독 가능한 매체, 예를 들면 레지스터 메모리, 프로세서 캐시 및 RAM(random access memory)과 같은 짧은 시간 동안 데이터를 저장하는 컴퓨터-판독 가능한 매체를 포함할 수 있다. 컴퓨터-판독 가능한 매체는 또한 예컨대, ROM(read only memory), 광학 또는 자기 디스크, CD-ROM과 같은 보조적인 또는 영속적인 장시간 저장매체와 같은 일시적이지 않은 매체를 포함할 수 있다. 컴퓨터-판독 가능한 매체는 임의의 다른 휘발성 또는 비휘발성 저장 시스템일 수 있다. 컴퓨터 판독 가능한 매체는 예를 들면 컴퓨터 판독 가능한 저장 매체이거나 유형의 저장 매체를 생각할 수 있다.
또한, 본 명세서에서 기술된 프로세스 또는 방법의 논리적 기능들을 수행하기 위한 회로가 제공될 수도 있다.
또 다른 예에서, 미디어 렌더링 소스에 의해 렌더링된 미디어 스트림의 샘플을 수신하도록 구성된 입력 인터페이스, 및 샘플이 획득된 매칭 미디어 레코딩들에 대해, 매칭 미디어 레코딩들의 콘텐츠를 기술하는 피처들의 시간적으로 매핑된 집합을 포함하는 시그너처 파일을 수신하도록 구성된 연속성 추적기(continuity tracker)를 포함하는 시스템이 기술된다.
전술한 요약은 단지 설명을 위한 것이고 어떤 식으로든 한정하려는 것은 아니다. 전술한 측면들, 실시예들, 및 피처들 외에도, 추가적인 측면들, 실시예들, 및 피처들은 첨부된 도면과 이하의 상세한 설명을 참조함으로써 명백해질 것이다.
도 1은 미디어 콘텐츠를 식별하고 식별의 검증을 수행하는 시스템의 실시예를 도시하고,
도 2는 시그너처 DB를 준비하는 시스템의 실시예를 도시하고,
도 3은 본 명세서에서 설명되는 적어도 몇몇 실시예에 있어서, 미디어의 샘플들을 처리하는 방법의 일 실시예의 블럭도이고,
도 4는 본 명세서에서 설명되는 적어도 몇몇 실시예에 있어서, 미디어의 샘플들을 처리하는 방법의 또 다른 실시예의 블럭도이고,
도 5는 타이밍도의 예를 도시하고,
도 6은 본 명세서에서 설명되는 적어도 몇몇 실시예에 있어서, 허위 긍정 검출을 수행하는 것을 포함하는 미디어의 샘플들을 처리하는 일 실시예 방법의 블럭도이고,
도 7은 본 명세서에서 설명되는 적어도 몇몇 실시예에 있어서, 복수의 매칭 미디어 레코딩들 사이의 모호함을 명확히 하는 것을 포함하는 미디어의 샘플들을 처리하는 일 실시예 방법의 블럭도이고,
도 8은 타이밍도의 예를 도시하고,
도 9는 미디어 스트림을 식별하고, 및 식별된 미디어 스트림과 데이터를 동기화시키는 시스템의 예를 도시하고,
도 10은 본 명세서에서 설명되는 적어도 몇몇 실시예에 있어서, 복수의 매칭 슬레이브(slave) 미디어 레코딩들 사이의 모호함 명확히 하는 것을 포함하는 미디어의 샘플들을 처리하는 일 실시예 방법의 블럭도이고,
도 11은 본 명세서에서 설명되는 적어도 몇몇 실시예에 있어서, 복수의 매칭 슬레이브 미디어 레코딩들 사이의 모호함을 명확히 하는 것을 포함하는 미디어의 샘플들을 처리하는 일 실시예 방법의 블럭도이다.
이하의 상세한 설명에서, 본 명세서의 일부를 구성하는 첨부 도면들을 참조한다. 도면에서, 유사한 부호들은 문맥이 달리 지시하지 않는 한 통상 유사한 구성요소를 식별한다. 상세한 설명, 도면 및 청구항들에서 기술된 실시예는 한정하는 것을 의도하지 않는다. 다른 실시예들이 이용될 수 있으며, 본 명세서에서 제시된 주제의 범위 또는 사상을 벗어나지 않으면서 다른 변경이 이루어질 수 있다. 본 명세서와 도면에서 일반적으로 기술되는 본 발명의 측면들은 본 명세서에서 명시적으로 고려된 다양한 상이한 구성들로 배열, 치환, 결합, 분리 및 설계될 수 있다.
본 명세서는, 특히, 미디어 스트림의 샘플을 처리하는 방법 및 시스템을 설명한다. 일 실시예에서, 방법은 미디어 렌더링 소스에 의해 렌더링된 미디어 스트림의 샘플을 수신하는 것을 포함하고, 상기 샘플이 획득된 매칭 미디어 레코딩들에 대해, 상기 방법은 또한 상기 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일(signature file)을 수신하는 것을 포함한다. 각각의 수신된 시그너처 파일은 메모리에 저장된다. 또한, 미디어 스트림으로부터 추출된 피처들을 포함하는 시그너처 스트림이 수신되고, 적어도 하나의 매칭 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림 사이에 매칭 피처들의 수가 결정된다. 일 예에서, 매칭 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림 사이의 실질적인 매칭 피처들의 발생이 중단될 때, 불연속이 식별될 수 있다.
이하에서 기술되는 실시예들에서, 방법 및 시스템은, 허위 긍정을 정정하기 위해 콘텐츠 식별로부터 반환된 매칭 결과의 검증을 가능하게 하고, 및 미디어 스트림으로부터 캡처된 미디어 샘플들의 추가 증분(increments)에 대해 연산상 고비용의 콘텐츠 식별을 추가 수행할 필요를 제거한다. 실시예 방법들 및 시스템들은 또한 한 미디어 레코딩의 복수의 버젼들 사이의 모호함을 명확히 하고, 및 슬레이브 미디어 스트림들의 그룹과 마스터 미디어 스트림 사이의 동기(synchrony)를 관리하는 것을 가능하게 한다.
방법 및 시스템의 예들은, 미디어 스트림으로부터의 미디어 샘플의 콘텐츠 식별을 제공하고, 각각의 식별된 미디어 레코딩에 대해 상기 미디어 레코딩으로부터 도출된 대응하는 피처-추출된 시그너처 파일을 제공함으로써, 수행될 수 있을 것이다. 원시 미디어 샘플 근처의 미디어 스트림의 부분들로부터 시작하는 대응하는 피처-추출된 시그너처 스트림이 미디어 스트림으로부터 추출되는 것이 가능하다. 각각의 식별된 미디어 레코딩 내의 시간 오프셋 위치들이 결정될 수 있으며, 각각의 식별된 미디어 레코딩에 대한 대응하는 시그너처 파일 내의 대응하는 시간 위치가 상기 미디어 스트림 내의 대응하는 시간 오프셋에 초기에 정렬되는 것이 가능하다. 각각의 식별된 미디어 레코딩의 시그너처 파일과 미디어 스트림 사이의 피처들의 정렬 덕분에, 미디어 스트림 내의 매칭 피처들은 각각의 식별된 미디어 스트림 내의 대응하는 시간들에서 예상될 수 있다. 예상된 위치들에서 피처 대응(feature correspondences)의 발생이 멈출 때, 불연속이 표시될 수 있다. 불연속은 예를 들면 허위 긍정을 표시하는(flagging) 것과 같은 동작이 일어나도록 할 수 있다.
연속성의 검증(verification)은 예상된 위치에서 비교를 위해 적은 수의 피처들이 사용될 수 있기 때문에 연산상으로 저렴할 수 있다. 전체 길이 음악 레코딩을 확인하기 위해 사용되는 시그너처 파일은 예를 들면 약 5 KB 이하일 수 있다. 따라서, 검증 라이브러리는 클라이언트 디바이스에 저장되거나 네트워크를 통해 전송될 수 있다.
본 명세서에서 기술된 예들에 있어서, 콘텐츠 식별을 검증하기 위한 시스템 및 방법들은 콘텐츠 식별 서버에 별도의 조회를 수행함으로써 완료될 수 있다. 그러나 (식별 서버 모듈에 추가 부담을 줄 수 있는) 추가 조회를 피하기 위해, 연속성 검증이 시그너처 파일을 사용하여 수행될 수 있다.
I. 시스템 예의 개관
이제 도면을 참조하면, 도 1은 미디어 콘텐츠를 식별하고 그 식별의 검증을 수행하는 시스템의 일 예를 도시한다. 시스템은 미디어 렌더링 소스(102), 클라이언트 디바이스(104), 및 서버(106)를 포함한다. 도 1의 시스템의 기술된 기능 또는 구성요소들의 하나 이상은 추가의 기능적 또는 물리적 구성요소들로 분할되거나, 더 적은 기능적 또는 물리적 구성요소들로 결합될 수 있다. 예를 들면, 시스템이 인식(recognition)을 위한 검증 메커니즘으로 사용될 때 클라이언트(104)와 서버(106)가 분리되지 않을 수 있고, 통합 휴대형 이용자 장치 내에 완전히 내장될 수 있다. 몇몇 추가 실시예에서, 추가의 기능적 및/또는 물리적 구성요소들이 도 1에 도시된 예에 추가될 수 있다.
미디어 렌더링 소스(102)는 임의의 알려진 방식으로 실시간으로 미디어 스트림으로부터 미디어 콘텐츠를 렌더링 및 제시한다. 미디어 스트림은 미디어 렌더링 소스(102)에 레코딩으로서 저장되거나, 예컨대 아날로그 또는 디지털 방송과 같은 외부 소스로부터 수신될 수 있다. 일 예에서, 미디어 렌더링 소스(102)는 라디오 방속국 또는 미디어 스트림(예컨대, 오디오 및/또는 비디오) 및/또는 다른 정보를 방송하는 TV 콘텐츠 공급자일 수 있다. 미디어 렌더링 소스(102)는 또한 오디오 미디어를 재생하거나, 녹화된 또는 실시간 형식으로 비디오 미디어를 디스플레이하는 임의의 타입의 장치일 수 있다. 대안적인 실시예에서, 미디어 렌더링 소스(102)는 예를 들면 오디오 소스 및/또는 비디오 소스로서 라이브 공연을 포함할 수 있다. 미디어 렌더링 소스(102)는, 예를 들면 그래픽 디스플레이, 오디오 스피커, MIDI 악기, 애니마트로닉 인형(animatronic puppet) 등, 또는 예를 들면 미디어 렌더링 소스(102)에 의해 렌더링되는 임의의 다른 종류의 제시물을 통해 미디어 스트림을 렌더링 또는 제시할 수 있다.
클라이언트 디바이스(104)는 미디어 수신기(108)를 포함하는 샘플 캡처 모듈을 통해서 미디어 렌더링 소스(102)로부터의 미디어 스트림의 렌더링을 수신한다. 도 1에서, 미디어 수신기(108)는 안테나로 도시되어 있고, 미디어 렌더링 소스(102)는 미디어 스트림을 무선으로 클라이언트 디바이스(104)에 브로드캐스팅한다. 그러나 미디어 스트림의 형태에 따라, 미디어 렌더링 소스(102)는 무선 또는 유선 통신 기술을 사용하여 미디어를 렌더링할 수 있다. 다른 예에서, 클라이언트 디바이스(104)는 미디어 렌더링 소스(102)로부터 미디어 스트림 또는 레코딩을 수신하기 위해 마이크로폰(1110)을 포함한다. 클라이언트 디바이스(104)는 또한 미디어 스트림을 수신하기 위해 비디오 카메라, 진동 센서, 라디오 수신기, 네트워크 인터페이스 등 어느 것을 포함하는 것도 가능하다.
클라이언트 디바이스(104)는 미디어 스트림의 렌더링을 수신하기 위한 것 외에는, 미디어 렌더링 소스(102)에 동작상 접속되지 않을 수 있다. 이 방식에서, 클라이언트 디바이스(104)는 미디어 렌더링 소스(102)에 의해 제어되지 않으며, 클라이언트 디바이스(104)는 미디어 렌더링 소스(102)의 일체 부분이 아닐 수 있다. 도 1에 도시된 예에서, 클라이언트 디바이스(104)는 미디어 렌더링 소스(102)와 별개의 개체이다.
클라이언트 디바이스(104)는 휴대 전화, 무선 휴대 전화, PDA(personal data assistane), PMP(personal media player) 장치, 무선 웹-워치(web-watch) 장치, 개인용 헤드셋 장치, 전용장치, 또는 전술한 기능들 중 하나 이상을 포함하는 하이브리드 장치와 같은 소형 폼 팩터 휴대형(또는 모바일) 전자장치의 일부로서 구현될 수 있다. 클라리언트 디바이스(104)는 또한 랩탑 컴퓨터와 랩탑이 아닌 컴퓨터 구성 모두를 포함하는 개인용 컴퓨터로서 구현될 수 있다. 클라이언트 디바이스(104)는 또한 더 큰 장치 또는 시스템의 구성요소일 수도 있다.
클라이언트 디바이스(104)는 렌더링된 미디어 스트림의 미디어 샘플을 캡처하도록 동작될 수 있다. 이것은 이용자 개입 없이 자동으로 일어나거나 사용자가 버튼 또는 다른 애플리케이션을 작동시켜 샘플 캡처를 개시함으로써 실행될 수 있다. 예를 들면, 클라이언트 장치(104)의 사용자는 버튼을 눌러 마이크로폰을 통한 오디오의 디지털 샘플을 10초 동안 기록하거나, 또는 카메라를 사용하여 정지 이미지 또는 비디오 시퀀스를 캡처한다. 다른 예들과 같이, 클라이언트 디바이스(104)는 미디어 샘플을 캡처하는 명령을 갖는 신호를 수신하거나, 클라이언트 디바이스(104)는 (예컨대, 음성 활동 또는 음악 활동(activity) 검출 모듈을 통해) 주위 활동을 자율적으로 검출하고 반응하여 미디어 샘플을 캡처할 수 있다.
연속적 미디어 스트림의 미디어 샘플들은 안테나(108) 또는 마이크로폰(110)에 의해 캡처되고, A/D 컨버터(112)를 통해 전달되어 롤링 미디어 샘플 버퍼(114)(예컨대, 환형 또는 링 버퍼 또는 큐)에 저장된다. 임의의 길이의 시간 전의 이력이 분석을 위해 이용될 수 있도록 새로운 샘플들이 캡처될 때 오래된 미디어 샘플들은 퇴장한다. 대안으로, 미디어 샘플들은 디지털 공급장치(feed)로부터 직접 캡처되거나, 도시된 것처럼, A/D 컨버터(112)로부터 샘플링될 수 있다. 미디어 스트림은 주변의 자유필드 오디오일 수 있고, 미디어 샘플들은 예를 들면 8 kHz 샘플링 레이트로 마이크로폰(11)으로부터 캡처된 디지털 PCM(pulse code modulation) 샘플들일 수 있다. (본 명세서에서 "샘플(sample)"은 PCM 오디오 샘플 값들과 같은 개별 샘플들일 수도 있고, 예를 들면 하나의 시간 세그먼트 동안 그와 같은 샘플들의 집합일 수도 있다.)
미디어 샘플의 샘플링 시간에 대응하는 타임 스탬프(time stamp)는 T0로 레코딩되고 동기화 포인트(synchronization point)로서 지칭된다. 샘플링 시간은 바람직하게는 미디어 샘플의 시작이지만, 종료, 중간 또는 임의의 다른 미리 결정된 시간일 수도 있다. 따라서, 미디어 샘플들은, 고정된 임의의 기준 시점으로부터 미디어 스트림 내의 대응하는 시간 오프셋이 알려지도록, 타임 스탬프 된다. 타임 스탬프는 명시적이거나(즉, 각각의 미디어 샘플이 관련된 시간 값을 가짐) 또는 암시적일 수 있다(즉, 시간이 샘플 버퍼(114) 내의 샘플의 위치로부터 또는 예를 들면 기준 시점 이후 경과된 샘플 주기들의 수로부터 결정됨). 기준 시간은, 예를 들면, 클라이언트 디바이스(104)가 기동되고 첫 번째 미디어 샘플이 캡처되는 순간으로서 정의될 수 있다.
미디어 샘플들은 미디어 샘플 버퍼(114)로부터 획득되고 콘텐츠 식별을 위해 서버(106)에 전달된다. 또 다른 예에서, 미디어 샘플들은 서버(106)에 보내기 전에 선처리되고 피처-추출될 수도 있다. 예를 들면, 미디어 샘플들은 추출된 피처들의 시그너처 스트림을 생성하기 위해 시그너처 추출기(116)에 보내질 수 있으며, 각각의 피처는 미디어 스트림 내의 대응하는 시간 위치를 가질 수 있다. 추출된 피처들의 시그너처 스트림은 연속성 추적기(118)에 제공되고 추적기(118)는 대응하는 미디어 레코딩에 대한 수신된 시그너처 파일과 피처들의 시그너처 스트림을 비교하여 수신된 시그너처 파일과 비교하여 수신된 콘텐트 식별의 유효성/연속성을 판정한다.
시그너처 파일은 미디어 레코딩의 타임라인(timeline)에 대응하는 시간적 차원(temporal dimension)을 갖는, 미디어 레코딩의 콘텐츠를 기술하는 시간 매핑된 피처들의 집합일 수 있으며, 각각의 피처는 각각의 매핑된 시점 근처의 콘텐츠의 기술(description)일 수 있다. 시그너처 파일은 미디어 레코딩들에 기초하여 미리 결정되어 저장되고, 시그너처 스트림은 예를 들면 감지된 미디어 스트림에 기초하여 실시간으로 결정되고 생성된다. 일반적으로, 피처들은 예를 들면 노이즈 및 왜곡의 존재 시에 재생 가능하도록 선택될 수 있다. 상기 피처들은 불연속 시간 위치에서 희박하게(sparsely) 추출될 수 있으며, 각각의 피처는 관심있는 피처에 대응한다. 희박한 피처들의 예는 Lp 기준 파워 피크(norm power peaks), 스펙트로그램 에너지 피크, 연결 각점(linked salient points) 등을 포함한다. 추가 예로서, 참조에 의해 전체적으로 본 명세서에 포함되는 Wang 및 Smith의 미국 특허 제6,990,453호를 참조할 수 있다.
대안으로, 연속 시간 축이 조밀하게 표현될 수 있으며, 이 경우 모든 시간 값은 대응하는 피처 값을 갖는다. 그와 같은 조밀한 피처들의 예는 피처 파형들(참조에 의해 본 명세서에 포함되는 Kenyon의 미국 특허 제7,174,293호에 기재됨), 스펙트로그램 비트맵 래스터(spectrogram bitmap raster)(참조에 의해 본 명세서에 포함되는 미국 특허 제5,437,050호에 기재됨), 활동 매트릭스(참조에 의해 본 명세서에 포함되는 미국 특허출원 공개 제2010/0145708호에 기재됨), 및 에너지 플럭스 비트맵 래스터(참조에 의해 본 명세서에 포함되는 미국 특허 제7,549,052호에 기재됨)를 포함한다.
일 예에서, 시그너처 파일은 희박한 피처 표현을 포함한다. 피처들은 중첩된 단기 고속 푸리에 변환(FFT: Fast Fourier Transforms)을 사용하여 추출된 스펙트로그램으로부터 획득될 수 있다. 스펙트로그램에서 피크들은 대응하는 에너지 값이 극대(local maximum)인 시간-주파수 위치에서 선택될 수 있다. 예를 들면, 피크들은 각각의 후보 위치를 둘러싸는 영역에서 극대점들을 식별함으로써 선택될 수 있다. 불가청 에너지 피크들을 억제하기 위해 음향심리학적 마스킹 기준이 사용될 수도 있다. 각각의 피크는 한 쌍의 시간 및 주파수 값들로서 부호화될 수 있다. 또한, 피크들의 에너지 진폭이 기록될 수 있다. 일 실시예에서, 오디오 샘플링 레이트는 8 kHz이고, FFT 프레임 사이즈는 약 64 - 1024 빈(bins) 사이에서 변할 수 있으며, 이때 이전 프레임과 약 25-75% 중첩하는 프레임들 사이의 홉 사이즈(hop size)를 갖는다. 주파수 분해능을 증가시키면 시간 정밀도가 감소된다. 또한, 주파수 축은, 멜-주파수(mel-frequency)와 같이, 휘어져 대수 눈금으로 보정될 수 있다.
다수의 피처들 또는 피처들과 관련된 정보가 시그너처 파일에 결합될 수 있다. 시그너처 파일은 시간의 증가에 따라 정렬된 리스트로서 피처들을 정리할 것이다. 각각의 피처(Fj)는 데이터 구성체에서 시간 값(tj)와 연관될 수 있으며, 상기 리스트는 그와 같은 구성체들의 어레이가 될 수 있다. 이때 j는 예를 들면 j번째 구성체의 인덱스이다. 연속 시간 표현, 예를 들면 스펙트로그램의 연속 프레임들을 사용하는 실시예에서, 시간 축은 리스트 어레이로의 인덱스에 내포될 수 있다. 편의상, 각 미디어 레코딩 내의 시간 축은 레코딩의 시작으로부터 오프셋으로서 획득 가능하므로, 시간 0는 상기 레코딩의 시작을 지칭한다.
생성된 시그너처 파일의 크기는 사용된 피처 추출 방법에 따라 변할 수 있다. 일 예에서, 선택된 스펙트로그램 피크(예컨대 피처들)의 밀도는 초당 약 10-50 포인트들 사이에 있도록 선택될 수 있다. 피크들은 단위 시간당 상위 N개의 가장 활동적인 피크들, 예를 들면 1초 프레임에서 상위 10개 피크들로서 선택될 수 있다. 초당 10개의 피크들을 사용하는 예에서, 각 피크 주파수를 부호화하기 위해 32비트를 사용하면(예컨대, 주파수 값을 위해 8 비트, 시간 오프셋의 부호화를 위해 24 비트), 상기 피처들을 부호화하기 위해 초당 40 바이트가 필요하다. 평균 약 3분길이의 노래에서, 약 7.2 KB의 시그처 파일 크기가 한 곡의 노래에 대해 생성된다. 다른 시그너처 부호화 방법들, 예를 들면, 100 ms의 홉 사이즈를 갖는 스펙트로그램의 모든 오프셋에서 32 비트 피처에 대해, 유사한 크기의 지문(fingerprint)이 생성된다.
또 다른 예에서, 시그너처 파일은 약 5-10 KB의 크기를 갖고, 캡처된 샘플의 종료 후 미디어 레코딩의 일부를 참조하고 약 20초의 길이를 갖는, 샘플이 미디어 레코딩의 일부로부터 획득된 미디어 레코딩의 일부에 대응할 수 있다.
따라서, 시그너처 추출기(116)는 임의의 전술한 방법들을 사용하여 미디어 샘플로부터 피처들을 추출하여 추출된 피처들의 시그너처 스트림을 생성한다. 연속성 추적기(118)는 해당 미디어 레코딩에 대한 미리 결정된 시그너처 파일을 수신하고, 연속성 추적기(118)는 추출된 피처들의 추출된 시그너처 스트림을 아래 설명과 같이 시그너처 파일과 비교한다.
클라이언트 디바이스(104)는 식별을 위해 미디어 렌더링 소스(102)에 의해 렌더링된 미디어 샘플의 부분들을 캡처하고, 캡처된 부분을 식별을 위해 서버(106)에 보내도록 동작된다. 클라이언트 디바이스(104)는 유선 또는 무선 인터페이스를 통해 서버(106)에 동작 가능하게 접속된다.
서버(106)는 위치 식별 모듈(120)과 콘텐츠 식별 모듈(122)을 포함할 수 있다. 도 1은 서버(106)가 위치 식별 모듈(120)과 콘텐츠 식별 모듈(122) 모두를 포함하는 것으로 도시하고 있지만, 예를 들면 적어도 하나는 서버(106)로부터 분리된 별도의 개체가 될 수도 있다. 대안으로, 위치 식별 모듈(120)과 콘텐츠 식별 모듈(122) 모두 동일한 개체이거나, 두 모듈의 기능들이 동일한 개체에 의해 수행될 수도 있다. 또한, 위치 식별 모듈(120)과 콘텐츠 식별 모듈(122)은 클라이언트 디바이스(104)에 위치되거나, 도 1에 도시된 것과 같이, 네트워크를 통해 클라이언트 디바이스(104)에 연결된 원격 서버에 있을 수도 있다.
서버(106)는 클라이언트 디바이스(104)로부터 (유선 또는 무선 접속을 통해) 미디어 샘플을 수신하며, 위치 식별 모듈(120)은 그 순간에 캡처되는 미디어 샘플에 기초하여 미디어 스트림(또는 미디어 레코딩) 내 미디어 샘플의 시간 오프셋을 지시하는 대응하는 추정된 시간 위치(Ts)를 식별한다. Ts는 또한, 어떤 예에서는, 미디어 스트림의 시작부터 경과된 시간의 양일 수 있다.
콘텐츠 식별 모듈(122)은 또한 수신된 미디어 샘플에 대해 콘텐츠 식별을 선택적으로 수행할 수도 있다. 콘텐츠 식별은, 정체가 아직 알려지지 않은 경우, 미디어 스트림, 예컨대 음악 사운드트랙에서 콘텐츠를 식별한다. 콘텐츠 식별 모듈(122)은 예를 들면, 영국 런던의 샤잠 엔터테인먼트(Shazam Entertainment), 미국 캘리포니아주 에머리빌의 그레이스노트(Gracenote), 또는 미국 캘리포니아주 새너제이의 멜로디스(Melodis)에 의해 제공된 것과 같은 미디어 샘플 정보 검색시스템들에 사용되거나 또는 포함될 수 있다. 이 서비스들은 환경 오디오의 샘플들을 수신하고, 오디오 샘플의 음악 콘텐츠를 식별하고, 및 트랙 이름, 아티스트(artist), 앨범, 아트워크(artwork), 바이오그래피(biography), 디스코그래피(discography), 콘서트 티켓 등을 포함하는 음악에 대한 정보를 이용자에게 제공한다.
이 점에서, 콘텐츠 식별 모듈(122)은 미디어 서치 엔진(124)을 포함하고 또한 상기 수신된 미디어 샘플 내의 미디어 콘텐츠를 식별하기 위해 상기 수신된 미디어 샘플과 저장된 정보를 비교하기 위해 기준 미디어 콘텐츠 오브젝트들 및 레코딩들, 예를 들면, 음악 사운드트랙, 비디오 클립, 영화, 및 TV 쇼에 색인을 다는 미디어 레코딩 DB(126)를 포함하거나 액세스한다. 미디어 스트림 내의 미디어 오브젝트가 일단 식별되면, 정체 정보(identity information)와 다른 메타데이터(metadata)가 클라이언트 디바이스(104)에 통지된다.
메타데이터는 또한, 월드 와이드 웹상의 관련 콘텐츠의 열람(browsing), 탐색(exploring), 발견(discovering)을 촉진하는 외에, 음악 레코딩물, 비디오, 콘서트 티켓, 및 보너스 콘텐츠의 구입, 프리뷰 및 북마크의 제안, 추천, 광고를 포함하는 다른 관련 콘텐츠 및 서비스에 대한 하이퍼링크 및 데이터를 포함할 수 있다.
대안으로, 클라이언트 디바이스(104)는 미디어 렌더링 소스(102)로부터 미디어 스트림의 샘플을 캡처하고, 상기 미디어 샘플의 지문을 생성하기 위해 샘플에 대한 초기 피처 추출 처리를 수행한다. 클라이언트 디바이스(104)는 그 다음에 지문 정보를 위치 식별 모듈(120)과 콘텐츠 식별 모듈(122) 중 적어도 하나에 보낼 수 있을 것이며, 상기 모듈들은 지분 정보만을 기초로 상기 샘플에 관한 정보를 식별한다. 이 방식에서, 더 많은 연산 또는 식별 처리가, 예를 들면 위치 식별 모듈(120) 또는 콘텐츠 식별 모듈(122)이 아니라 클라이언트 디바이스(104)에서 수행되는 것이 가능하다.
전술한 것처럼, 미디어 레코딩 DB(126)는 많은 미디어 콘텐츠 오브젝트들을 포함하고, 그 각각은 고유 식별자(예컨대, sound)ID)에 의해 식별될 수 있다. 미디어 레코딩 DB(126)은 각각의 레코딩을 위해 오디오 또는 비디오 파일들과 같은 실제 미디어 콘텐츠를 반드시 저장하지 않을 수도 있는데, 이는 다른 곳으로부터 상기 파일들을 검색하는데 sound_ID가 사용될 수 있기 때문이다. 그러나, DB(126)는 어떤 실시예에서는 미디어 콘텐츠 파일을 저장할 수 있다. 미디어 콘텐츠 DB 인덱스는 아주 클 수도 있으며, 예를 들면 수백만 또는 심지어 수십억의 파일들에 대한 인덱스를 포함한다. 새로운 콘텐츠는 DB 인덱스에 점점 추가될 수 있다.
미디어 레코딩 DB(126)는 또한 각각의 저장된 비디오, 오디오, 또는 미디어 파일에 대한 정보, 또는 각각의 저장된 미디어 인덱스에 대한 정보를 포함할 수 있다. 예를 들면, 아티스트 이름, 노래의 길이, 노래의 가사, 가사의 라인 또는 단어들에 대한 시간 인덱스, 앨범 아트워크, 또는 파일 대한 다른 식별 또는 관련 정보와 같은 파일에 대한 정보를 표시하는 메타데이터가 각 파일에 저장될 수 있다.
도 1의 시스템은 캡처된 미디어 샘플들의 시간 오프셋들이 식별되는 것을 가능하게 하고 또한 저장된 정보에 기초하여 미디어 샘플들이 식별되도록 한다. 도 1은 주어진 구성을 갖는 시스템을 도시하고 있지만, 시스템 내의 구성요소들은 다른 방식으로 정렬될 수도 있다. 예를 들면, 미디어 서치 엔진(124)이 콘텐츠 식별 모듈(122)과 분리되거나, 미디어 샘플 처리가 클라이언트 디바이스(104) 또는 서버(106)에서 일어날 수도 있다. 따라서, 여기서 설명된 구성들은 단지 예시적인 것이며, 다수의 대안적인 구성들이 사용될 수 있다.
도 1의 시스템과 특히 위치 식별 모듈(120)은 미디어 스트림 내의 미디어 샘플들의 시간 오프셋들을 식별할 수 있다. 선택사항으로서, 상기 시스템은 콘텐츠 식별 모듈(122)을 사용하여 미디어 스트림 내의 미디어의 샘플들을 사용하여 미디어 스트림의 콘텐츠를 식별하기 위해 사용될 수 있다.
미디어 콘텐츠 오브젝트의 DB를 사용하여 미디어 샘플들의 피처들과 미디어 샘플들의 전자계산 콘텐츠 식별을 수행하는 다양한 미디어 샘플 식별 기법들이 당해 기술분야에서 알려져 있다. 다음 미국 특허 및 공개는 미디어 인식 기법을 위한 가능한 예를 설명하며, 각각은 참조에 의해 본 명세서에 포함된다: 미국 특허 제4,843,562호 (발명의 명칭: Broadcast Information Classification System and Method"; 미국 특허 제4,450,531호 (발명의 명칭: Broadcast Signal Recognition System and Method"; 미국 특허출원 공개 제2008/0263360호 (발명의 명칭: Generating and Matching Hashes of Multimedia Content"; 미국 특허 제7,627,477호 (발명의 명칭: Robust and Invariant Audio Pattern Matching); 미국 특허출원 공개 제2007/0143777호 (발명의 명칭: Method and Apparatus for Identification of Broadcast Source"; 미국 특허 제6,990,453호 (발명의 명칭: System and Methods for Recognizing Sound and Music Signals in High Noise and Distortion"; 미국 특허 제5,918,223호 (발명의 명칭: Method and Article of Manufacturing for Content-Based Analysis, Storage, Retrieval, and Segmentation of Audio Information".
요약하면, 미디어 레코딩을 식별하는 것은 미디어 레코딩을 수신하고 그 미디어 레코딩을 샘플링함으로써 시작한다. 상기 레코딩은 각각의 합성 상관 세그먼트에 대해 상관 함수 피크를 획득하기 위해 디지털화 정규화 기준 신호 세그먼트와 서로 관련되어, 상관 함수 피크들 사이의 간격이 미리 결정된 한계 내에 있을 때 인식 신호를 제공하며, 상관 함수 피크들과 일치하는 RMS 파워 값들의 패턴이, 예를 들면 미국 특허 제4,450,531호에 언급된 것과 같이, 디지털화된 기준 신호 세그먼트들로부터의 RMS 파워 값들의 패턴의 미리 결정된 한계 내에 부합한다. 이와 같이 매칭 미디어 콘텐츠가 식별된다. 또한, 미디어 콘텐츠에서 미디어 레코딩의 매칭 위치는, 예를 들면 상관 피크들의 오프셋 외에 매칭 상관 세그먼트의 위치에 의해 주어진다.
또 다른 예에서, 일반적으로, 미디어 콘텐츠는 미디어 샘플의 특성 또는 지문을 식별하거나 연산하고 상기 지문들을 미리 식별된 지문들과 비교함으로써 식별 가능하다. 지문이 연산되는 샘플 내 특정 위치들은 샘플의 재생 가능한 포인트들에 종속한다. 그와 같은 재생 가능하게 계산할 수 있는 위치들은 "랜드마크(landmarks)"로 지칭된다. 랜드마크의 샘플 내 위치는 샘플 자체에 의해 결정 가능하다. 즉, 샘플 품질에 좌우되고 재생 가능하다. 다시 말해서, 동일하거나 유사한 랜드마크들이 프로세스가 반복될 때마다 동일한 신호에 대해 계산될 수 있다. 랜드마킹 스킴은 초당 약 5 내지 10개의 사운드 레코딩의 랜드마크를 표시할 수 있다; 그러나 랜드마킹 밀도는 미디어 레코딩 내 활동 양에 좌우된다. 파워 기준(Power Norm)으로 알려진 하나의 랜드마킹 기법은 레코딩 내 다수의 시점에서 순간 파를을 계산하고 극대점을 선택하는 것이다. 이것을 행하는 한 방법은 파형을 직접적으로 정류하고 여과함으로써 엔벨로프(envelope)를 계산하는 것이다. 또 다른 방법은 신호의 힐버트(Hilbert) 변환 (구적(quadrature))을 계산하고 원래 신호와 힐버트 변환의 제곱 크기들의 합을 사용하는 것이다. 랜드마크를 계산하는 다른 방법들 역시 사용될 수 있다.
일단 랜드마크들이 계산되면, 레코딩의 각 랜드마크 시점에서 또는 부근에서 지문이 계산된다. 랜드마크에 대한 피처의 근접은 사용된 지문채취 방법에 의해 정해진다. 어떤 경우에 있어서는, 피처가 랜드마크에 명확히 대응하고 이전의 또는 후속의 랜드마크에 대응하지 않는 경우 피처가 랜드마크에 근접한 것으로 간주된다. 다른 경우에 있어서, 피처들은 다수의 인접한 랜드마크들에 대응한다. 지문은 일반적으로 상기 시점에서 또는 시점 부근에서 레코딩의 피처들의 세트를 요약하는 값 또는 값들의 세트이다. 일 실시예에서, 각 지문은 다수 피처들의 해시함수인 단일 수치이다. 지문의 다른 예는 스펙트럼 슬라이스(spectral slice) 지문, 멀티-슬라이스 지문, LPC 계수, 셉스트럴(cepstral) 계수, 및 스펙트로그램 피크의 주파수 성분들을 포함한다.
지문은 신호에 대한 임의의 타입의 디지털 신호 처리 또는 주파수 해석에 의해 연산될 수 있다. 일 실시예에서, 스펙트럼 슬라이스(slice) 지문을 생성하기 위해, 주파수 해석이 각각의 랜드마크 시점의 주위에서 수행되어 상위 몇 개의 스펙트럼 피크들을 추출한다. 그러면 지문 값은 가장 강한 스펙트럼 피크의 단일 주파수 값이 될 것이다. 오디오 샘플의 특성 또는 지문을 연산하는 것에 대한 더 많은 정보를 위해, 미국 특허 제6,990,453호(발명의 명칭: System and Methods for Recognizing Sound and Music Signals in High Noise and Distortion)을 참조할 수 있으며, 이 특허문헌의 전체 내용은 참조를 위해 본 명세서에 포함된다.
이와 같이, 콘텐츠 식별 모듈(122)은 샘플을 수신하고 그 샘플의 지문을 연산할 수 있다. 콘텐츠 식별 모듈(122)은 추가의 인식 엔진들과 통신함으로써 지문을 계산할 수 있다. 레코딩을 식별하기 위해, 콘텐츠 식별 모듈(122)은 그 다음, 가장 큰 수의 선형적으로 관련된 대응을 갖는 또는 특성 지문들의 상대적 위치가 샘플의 동일한 지문들의 상대적인 위치와 가장 밀접하게 매칭하는 파일을 찾기(locate) 위해 미디어 레코딩 DB(126) 내 파일들과 대등한 지문들 사이의 대응을 생성함으로써 샘플의 지문들과 알려진 오디오 트랙들의 지문을 매칭하기 위해 미디어 레코딩 DB(126)에 액세스하는 것이 가능하다. 즉, 랜드마크 쌍들 사이의 선형적 대응이 식별되고, 세트들은 선형적으로 관련되는 쌍들의 수에 따라 스코어를 얻는다. 선형적 대응은, 통계적으로 유의미한 수의 대응하는 샘플 위치들 및 파일 위치들이 실질적으로 동일한 선형 방정식으로 예를 들면 허용된 공차(tolerance) 내에서 기술될 수 있는 경우, 일어날 수 있다. 통계적으로 가장 높은 유의미한 스코어(score)를 갖는, 즉 가장 큰 수의 선형적으로 관련된 대응들을 갖는 세트의 파일은 승리 파일이고, 매칭 미디어 파일로 간주된다.
미디어 스트림 내의 콘텐츠를 식별하는 기법의 또 다른 예로서, 국지화된(localized) 매칭 기법을 사용하여 그 콘텐츠를 식별하기 위해 미디어 샘플이 분석될 수 있다. 예를 들면, 일반적으로, 2개의 미디어 샘플들 사이의 관계는 각각의 샘플들로부터 도출된 최초의 어떤 매칭 지문 오브젝트에 의해 특징지어질 수 있다. 각각의 특정 위치에서 발생하는 한 세트의 지문 오브젝트들은 각각의 미디어 샘플에 대해 생성된다. 각각의 위치는 각각의 미디어 샘플의 콘텐츠에 따라 결정되고 각각의 지문 오브젝트는 각각의 특정 위치에서 또는 그 근처에서 하나 이상의 로컬 피처들을 규정한다. 그 다음 각 쌍의 매칭된 지문 오브젝트들에 대해 상대 값이 결정된다. 그 다음 상대 값의 히스토그램이 생성된다. 만일 통계적으로 유의미한 피크가 발견되면, 2개의 미디어 샘플들은 실질적으로 매칭하는 것으로 규정될 수 있다. 또한, 원시 오디오 트랙과 비교하여 오디오 샘플이 얼마나 고속화 또는 저속화되었는지를 나타내는 시간 스트레치 비율(time stretch ratio)이 결정될 수 있다. 이 방법의 더욱 상세한 설명에 대해, 미국 특허 제7,627,477호(발명의 명칭: Robust and Invariant Audio Pattern Matching)를 참조할 수 있으며, 이 특허문헌의 전체 내용은 참조를 위해 본 명세서에 포함된다.
또한, 전술한 공개문헌에서 설명된 시스템 및 방법들은 미디어 샘플의 정체보다 많은 것을 반환할 수 있다. 예를 들면, 미국 특허 제6,990,453호에 기재된 방법을 사용하는 것은 식별된 오디오 트랙과 관련된 메타데이터에 추가하여, 식별된 미디어 스트림의 추정 위치(Ts)라고 지칭되는, 식별된 샘플의 시작으로부터 미디어 샘플의 상대 시간 오프셋(RTO: relative time offset)을 반환할 수 있다. 레코딩의 상대 시간 오프셋을 결정하기 위해, 샘플들의 지문은 지문들이 매칭되는 원시 파일들의 지문들과 비교될 수 있다. 각각의 지문은 주어진 시간에 일어나며, 따라서 샘플을 식별하기 위해 지문을 매칭한 후, 제1 지문(샘플 내 매칭 지문의)과 저장된 원시 파일의 제1 지문과의 사이의 시간 차이가 샘플의 시간 오프셋, 예를 들면 노래에서 시간 양이 될 것이다. 따라서, 샘플이 취해지는 상대 시간 오프셋(예컨대, 노래에서 67초)이 결정될 수 있다. RTO를 결정하기 위해 다른 정보가 사용될 수도 있다. 예를 들면, 히스토르램 피크의 위치는 기준 레코딩의 시작으로부터 샘플 레코딩의 시작까지의 시간 오프셋으로 간주될 수 있다.
다른 형태의 콘텐츠 식별 역시 미디어 샘플의 타입에 따라 수행될 수 있다. 예를 들면, 비디오 스트림(예컨대, 영화) 내 위치를 식별하기 위해 비디오 식별 알고리즘이 사용될 수 있다. 비디오 식별 알고리즘의 예는 Oostveen, J.등의 Lecture Notes in Computer Science, 2314 (2002, 3. 11)의 117-128 페이지에 기재된 "Feature Extraction and a Database Strategy for Video Fingerprinting"을 참조할 수 있으며, 그 전체 내용은 참조를 위해 본 명세서에 포함된다. 예를 들면, 비디오에서 비디오 샘플의 위치는 어느 비디오 프레임이 식별되었는지 결정함으로써 도출될 수 있다. 비디오 스트림을 식별하기 위해, 미디어 샘플의 프레임들은 행과 열의 그리드(grid)로 분할될 수 있으며, 그리드의 각 블록에 대해서, 픽셀들의 휘도 값들의 평균이 계산된다. 그리드의 각 블록에 대해 지문 비트들을 도출하기 위해 공간 필터가 상기 계산된 평균 휘도 값들에 적용될 수 있다. 지문 비트들은 프레임을 유일하게 식별하기 위해 사용될 수 있으며, 알려진 미디어를 포함하는 DB의 지문 비트들에 비교 또는 매칭될 수 있다. 프레임으로부터 추출된 지문 비트들은 서브-지문으로 지칭될 것이며, 지문 블록은 연속 프레임들로부터의 고정된 수의 서브-지문들이다. 서브-지문들과 지문 블록들을 사용하여, 비디오 샘플들의 식별이 수행될 수 있다. 미디어 샘플이 어떤 프레임을 포함했는지에 기초하여, 비디오에서의 위치(예컨대, 시간 오프셋)가 결정될 수 있다.
또한, 예컨대 워터마킹(watermarking) 방법을 사용하여, 다른 형태의 콘텐츠 및/또는 위치 식별이 역시 수행될 수 있다. 미디어 스트림이 임베디드 워터마크들을 가끔(at intervals) 갖고, 각각의 워터마크가 워터마크의 시간 또는 위치를 직접 또는 예를 들면 DB를 통해 간접으로 지정하도록하는 워터마킹 방법이 시간 오프셋을 결정하기 위해 위치 식별 모듈(120)에 의해 사용될 수 있다. 대안으로, 만일 미디어 스트림이 시간 또는 위치 오프셋 값을 직접 또는 간접으로 표시하는 임베디드 워터마크들을 포함한다면, 클라이언트 디바이스(104)는 위치 식별 모듈(120)과의 통신 없이 렌더링 되고 있는 미디어의 샘플의 시간 오프셋을 결정할 수 있다.
콘텐츠 식별 모듈(122)의 기능들을 구현하기 위한 전술한 콘텐츠 식별 방법 예들 각각에서, 식별 프로세스의 부산물이 미디어 스트림 내 미디어 샘플의 시간 오프셋일 수 있다(예컨대, 식별된 미디어 스트림의 추정 위치(Ts)). 따라서, 이 경우들에 있어서, 위치 식별 모듈(120)이 콘텐츠 식별 모듈(122)과 동일하거나, 위치 식별 모듈(120)의 기능들이 콘텐츠 식별 모듈(122)에 의해 수행될 수 있다.
따라서, 사용자는 클라이언트 디바이스(104)로부터의 위치 식별 조회를 위치 식별 모듈(120)에 보낼 수 있고, 이것은 본 명세서에서 설명된 기법들 중 어느 것을 사용하여 콘텐츠에 관련된 정보를 클라이언트 디바이스(104)에 반환하고, 선택사항으로, 콘텐츠 식별 모듈(122)은 콘텐츠를 식별하기 위해 액세스 될 수 있다. 본 명세서에서 설명된 실시예들은 임의의 타입의 미디어 스트림, 예를 들면 미리-기록된 또는 라이브 음악, 오디오, 비디오, 오디오 및 비디오의 조합, 또는 미디어 스트림 내 위치들의 타임라인을 추종하는 임의의 다른 종류의 미디어 또는 이벤트 시퀀스에 적용된다. 실시예들은 또한 예를 들면, CD, DVD, 압축 디지털 미디어, MIDI 파일, 애니메이션 시퀀스, 제어 시퀀스, 스크립트, 슬라이드 쇼 등과 같은 임의의 포맷의 미디어 스트림에 적용된다.
다른 실시예들에서, 클라이언트 디바이스(104) 또는 서버(106)는, 그 다음에 미디어 스트림 라이브러리 DB(128)를 추가로 액세스하여 상기 샘플링된 미디어에 대응하는 미디어 스트림을 선택하고 클라이언트 디바이스(104)에 의해 렌더링 되도록 클라이언트 디바이스(104)에 반환한다. 미디어 스트림 라이브러리 DB(128)는 클라이언트 디바이스(104) 또는 서버(106)에 위치되거나, 대안으로 클라이언트 디바이스(104)와 서버(106) 중 적어도 하나가 네트워크를 통해 미디어 스트림 라이브러리 DB(128)에 접속될 수 있다. 도 1에서, 미디어 스트림 라이브러이 DB(128)는 예를 들어 서버(106)에 연결되는 것으로 도시되어 있다. 또한, 미디어 스트림 라이브러리 DB(128) 내의 정보, 또는 미디어 스트림 라이브러리 DB(128) 자체는 미디어 레코딩 DB(126)에 포함될 수 있다.
미디어 샘플에 대응하는 미디어 스트림 라이브러리 DB(128) 내의 미디어 스트림은 클라이언트 디바이스(104)의 사용자에 의해 수동으로 선택되거나, 클라이언트 디바이스(104)에 의해 프로그램적으로 선택되거나, 예컨대 콘텐츠 식별 모듈(122)에 의해 결정된 미디어 샘플의 정체를 기초로 서버(106)에 의해 선택될 수 있다. 선택된 미디어 스트림은 미디어 샘플과 상이한 종류의 미디어일 수 있고, 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어에 동기화될 수 있다. 예를 들면, 미디어 샘플는 음악일 수 있고, 선택된 미디어 스트림은 음악에 동기화될 수 있는, 가사, 음악 스코어, 기타 태블러처(guitar tablature), 음악 반주, 비디오, 애니마트로닉 인형 댄스(animatronic puppet dance), 애니메이션 시퀀스 등일 수 있다. 선택된 미디어 스트림은 예를 들면 미디어 샘플의 콘텐츠 식별에 기초하여 결정될 수 있다.
어떤 예에서는, 선택된 미디어 스트림은 식별된 미디어 스트림에 대응하는 가사일 수 있다. 선택된 미디어 스트림은 대안으로 임의의 타입의 미디어 스트림, 예를 들면 영화, 사운드트랙, 가사, 텍스트, 비디오 클립, 사진, 슬라이드쇼, 문서 등이 될 수 있다. 추가의 실시예로서, 미디어 스트림은 비디오 스트림일 수 있고, 선택된 미디어 스트림은 비디오 스트림의 사운드트랙일 수 있다. 추가로, 또는 대안으로, 미디어 스트림은 사운드트랙일 수 있고, 선택된 미디어 스트림은 영화일 수 있다. 또 다른 실시예에서, 선택된 미디어 스트림은 제1 미디어 스트림의 대안 버젼, 예를 들면 다른 언어의 버젼일 수 있다. 또는 선택된 미디어 스트림은, 선택된 미디어 스트림을 동기화함으로써 제1 미디어 스트림의 더욱 고품질 버젼이 제공될 수 있도록, 제1 미디어 스트림과 다른 해상도, 예를 들면 HD(high definition) 또는 7.1-채널 서라운드 사운드일 수 있다.
클라이언트 디바이스(104)는 미디어 샘플에 대응하는 선택된 미디어 스트림을 수신하고, 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어에 동기하여 선택된 미디어 스트림을 렌더링할 수 있다.
미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어의 추정 시간 위치는 위치 식별 모듈(120)에 의해 결정될 수 있고 선택된 미디어 스트림을 렌더링할 선택된 미디어 스트림 내의 대응하는 위치를 결정하기 위해 사용될 수 있다. 클라이언트 디바이스(104)는 그 다음에 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어에 동기하여 선택된 미디어 스트림을 렌더링 및 제시한다.
클라이언트 디바이스(104)는 2개의 미디어 스트림들 사이에 정확한 동기화를 보장하기 위해 위치 추적 모듈(130)을 포함할 수 있다. 클라이언트 디바이스(104)가 미디어 샘플을 캡처하도록 기동되는 때, 클라이언트 디바이스(104)의 기준 클럭으로부터 타임스탬프(T0)가 기록된다. 임의의 시간 t에서, 추정된 실시간 미디어 스트림 위치(Tr(t))는 서버(106)로부터 수신된 식별된 미디어 스트림의 추정 위치(Ts)와 타임스탬프의 시간 이후 경과시간의 합으로부터 결정된다. 즉,
Figure pat00001
Tr(t)는 기준점, 예를 들면 미디어 스트림의 시작부터 현재 렌더링 되고 있는 미디어 스트림의 실시간 위치까지의 경과된 시간의 양이다. 따라서, Ts(즉, 미디어 스트림의 시작부터 상기 기록된 샘플에 기초한 미디어 스트림의 위치까지의 추정 경과 시간의 양)을 사용하면, Tr(t)는 계산될 수 있다. Tr(t)는 그 다음에 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어에 동기하여(실질적으로 동기하여) 상기 선택된 미디어 스트림을 렌더링하기 위해 클라이언트 디바이스(104)에 의해 사용될 수 있다. 예를 들면, 클라이언트 디바이스(104)는 시간 위치(Tr(t))에서, 또는 Tr(t) 시간 양이 경과한 위치에서 상기 선택된 미디어 스트림을 렌더링하기 시작할 수 있다.
상기 위치 추적은 여러 가지 이유로 동기가 깨질 수 있다. 일 실시예에서, 미디어 스트림은 예기치 않은 속도로 미디어 렌더링 소스(102)에 의해 렌더링될 수 있다. 예를 들면, 만일 음악 레코딩이 조정되지 않은 턴테이블 또는 CD 플레이어에서 재생되었다, 음악 레코딩은 기대되는 기준 속도보다 더 빠르게 또는 더 느리게, 또는 저장된 기준 미디어 스트림과 상이한 방식으로 재생될 수 있다. 또는, 때로는 DJ가 예를 들면 다수의 트랙에 걸쳐 템포를 매칭하는 것과 같이 특정 효과를 달성하기 위해 의도적으로 음악 레코딩의 속도를 변경할 수 있다. 그와 같은 경우에, 추정된 위치 Tr(t)는 t가 증가함에 따라 부정확하게 될 수 있고, 결과적으로, 선택된 미디어 스트림은 동기를 상실할 수 있다. 기준 속도의 예로서, CD 플레이어는 초당 44100 샘플들이 렌더링되는 것이 기대되고; 45 RPM 비닐 레코드는 턴테이블에서 분당 45 회전으로 재생하는 것이 기대되며; NTSC 비디오 스트림은 초당 60 프레임으로 재생하는 것이 예상된다.
어떤 실시예에서는, 선택된 미디어 스트림이 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어와 동기를 상실하는 것을 완화 또는 방지하기 위해, 추정된 위치 Tr(t)가 속도 조정 비율(R)에 따라 조정될 수 있다. 예를 들면, 미국 특허 제7,627,477호(발명의 명칭: Robust and invariant audio pattern matching)에 기재된 방법들은 미디어 샘플, 식별된 미디어 스트림의 추정 위치(Ts), 및 속도 비율(R)을 식별하기 위해 수행될 수 있으며, 상기 문헌의 전체 내용은 참조를 위해 본 명세서에 포함된다.
속도 비율(R)을 추정하기 위해, 매칭 지문들의 가변 부분들의 크로스-주파수(cross-frequency) 비율이 계산되며, 주파수는 시간에 반비례하므로, 크로스-시간 비율은 크로스-주파수 비율의 역수이다. 크로스-속도 비율(R)은 크로스-주파수 비율이다(예컨대, 크로스-시간 비율의 역수).
더욱 구체적으로, 전술한 방법들을 사용하면, 2개의 오디오 샘플들간의 관계는, 샘플들의 시간-주파수 스펙트로그램을 생성하고(예컨대, 각 프레임 내 주파수 빈(bins)을 생성하기 위해 푸리에 변환을 연산함), 상기 스펙트로그램의 로컬 에너지 피크들을 식별함으로써, 규정될 수 있다. 상기 로컬 에너지 피크들과 관련된 정보가 추출되고 지문 오브젝트들의 목록에 요약되며, 그 각각은 선택적으로 위치 필드, 가변 성분, 및 비가변 성분을 포함할 수 있다. 각각의 오디오 샘플들의 스펙트로그램으로부터 도출된 어떤 지문 오브젝트들은 그 다음에 매칭될 수 있다. 매칭된 지문 오브젝트들의 각 쌍에 대해 상대 값이 결정되며, 이것은 예를 들면, 각 오디오 샘플들의 파라미터 값들의 대수의 몫(quotient) 또는 차이가 될 수 있다.
일 실시예에서, 스펙트럼 피크들의 로컬 쌍들이 미디어 샘플의 스펙트로그램으로부터 선택되고, 각각의 로컬 쌍은 지문을 포함한다. 마찬가지로, 스펙트럼 피크들의 로컬 쌍들이 알려진 미디어 스트림의 스펙트로그램으로부터 선택되고, 각 로컬 쌍은 지문을 포함한다. 샘플과 알려진 미디어 스트림 사이의 매칭 지문들이 결정되고, 샘플과 미디어 스트림 각각에 대한 스펙트럼 피크들 사이의 시간 차이가 계산된다. 예를 들면, 샘플의 2개의 피크 사이의 시간 차이가 결정되고 알려진 미디어 스트림의 2개의 피크 사이의 시간 차이와 비교된다. 이들 2개 시간 차이의 비율이 결정되고 그와 같은 비율(예컨대, 지문들의 매칭 쌍들로부터 추출된)을 포함하는 히스토그램이 생성될 수 있다. 히스토그램의 피크는 실제 속도 비율(예컨대, 기준 미디어 파일이 렌더링되는 기준 속도와 비교한 미디어 렌더링 소스(102)가 미디어를 재생하는 속도 사이의 비율)로 결정될 수 있다. 따라서, 속도 비율(R)의 추정은, 예를 들면, 히스토그램에서 피크를 발견함으로써 얻어질 수 있으며, 히스토그램의 피크는 2개의 오디오 샘플들 사이의 관계를 상대 피치(pitch)로서, 또는 선형적 스트레치의 경우에 상대적 재생(playback) 속도로서 규정한다.
대안으로, 상대 값은 샘플과 알려진 미디어 스트림으로부터 매칭 지문들의 주파수 값들로부터 결정될 수 있다. 예를 들면, 한 쌍의 샘플들의 스펙트로그램의 피크의 앵커 포인트(anchor point)의 주파수 값이 결정되고 미디어 스트림의 한 쌍의 스펙트로그램 피크들의 앵커 포인트의 주파수 값과 비교된다. 이 2개의 주파수 값들의 비율이 결정될 수 있고 (예컨대, 지문들 매칭 쌍들로부터 추출된) 그와 같은 비율들을 포함하는 히스토그램이 생성될 수 있다. 히스토그램의 피크는 실제 속도 비율(R)로서 결정될 수 있다.
Figure pat00002
상기 식에서, fsample 및 fstream은, 미국 특허 제7,627,477호에서 기재된 것과 같이 매칭 지문들의 가변 주파수 값이며, 이 특허문헌의 전체 내용은 참조를 위해 본 명세서에에 포함된다.
따라서, 전역 상대 값(예컨대, 속도 비율(R))은 2개의 오디오 샘플들로부터 대응하는 가변 성분들을 사용하여 매칭 지문 오브젝트들로부터 추정될 수 있다. 가변 성분은 각각의 지문 오브젝트의 위치에 가까운 로컬 피처로부터 결정된 주파수 값일 수 있다. 속도 비율(R)은 주파수 또는 델타 시간들의 비율이거나, 또는 2개의 오디오 샘플들 사이의 매핑을 기술하기 위해 사용된 전역 파라미터의 추정치를 제공하는 어떤 다른 함수일 수 있다. 속도 비율(R)은 예를 들면 상대적 재생 속도이 추정치로 간주될 수 있다.
속도 비율(R)은 또한 다른 방법들을 사용하여 추정될 수 있다. 예를 들면, 미디어의 복수의 샘플들이 캡처될 수 있고, k번째 샘플에 대해 기준 클럭 시간 T0(k)에서 복수의 추정된 미디어 스트림 위치들 Ts(k)를 획득하기 위해 각 샘플에 대해 콘텐츠 식별이 수행될 수 있다. 그러면, R은 다음식으로 추정될 수 있다:
Figure pat00003
R을 시변하는 것으로 나타내기 위해, 다음 식이 사용될 수 있다:
Figure pat00004
따라서, 속도 비율(R)은 미디어가 미디어 렌더링 소스(102)에 의해 렌더링되는 속도를 결정하기 위해 일정 시간(a span of time)에 대해 추정된 시간 위치(Ts)들을 사용하여 계산될 수 있다.
속도 비율(R)을 사용하여, 실시간 미디어 스트림 위치의 추정치가 다음식에 의해 계산될 수 있다:
Figure pat00005
실시간 미디어 스트림 위치는 미디어 샘플의 시간 위치를 표시한다. 예를 들어, 만일 미디어 샘플이 4분의 길이를 갖는 노래의 것이라면, 그리고 Tr(t)가 1분이라면, 상기 노래의 1분이 경과된 것을 표시한다.
다른 실시예에서, 클라이언트 디바이스(104) 또는 서버(106)는 시그너처 파일 또는 미디어 레코딩(예컨대, 노래)을 획득하기 위해 미디어 시그너처 DB(132)를 추가로 액세스할 수 있다. 설명한 바와 같이, 시그너처 파일은 미디어 레코딩의 타임라인에 대응하는 시간적 차원을 갖는 상기 미디어 레코딩의 콘텐츠를 설명하는 시간적으로 매핑된 피처들의 집합을 포함할 수 있고, 각각의 피처는 각가의 매핑된 시점의 근처에서 콘텐츠의 설명일 수 있다. 노래들의 시그너처 파일들의 예는 크기가 약 5 KB 내지 약 10 KB이다. 미디어 시그너처 DB(132)는 다수의 미디어 레코딩들에 대한 시그너처 파일을 포함할 수 있고, 새로운 미디어 레코딩들에 대한 시그너처 파일들을 포함하도록 계속해서 갱신될 수 있다. 일 실시예에서, 미디어 시그너처 DB(132)는 예를 들면 미디어 레코딩 DB(126) 내에서 또는 미디어 스트림 라이브러리 DB(128) 내에서 식별된 미디어 레코딩들의 각각에 대한 시그너처 파일을 포함할 수 있다.
클라이언트 디바이스(104)로부터 수신된 콘텐츠 식별 조회에 응답하여, 서버(106)는 미디어 샘플이 획득된 미디어 레코딩을 식별하기 위해 미디어 레코딩 DB(126)를 액세스하고, 미디어 샘플에 대응하는 미디어 스트림을 선택하기 위해 미디어 스트림 라이브러리 DB(128)을 액세스하고, 식별된 미디어 레코딩에 대응하는 시그너처 파일을 수신하기 위해 미디어 시그너처 DB(132)를 액세스하는 것의 적어도 하나를 수행할 수 있다. 서버(106)는 그 다음 그와 같은 정보의 어느 것을 클라이언트 디바이스(104)에 반환할 수 있다.
식별된 미디어 레코딩의 시그너처 파일이 클라이언트 디바이스(104)에 반환되는 실시예에서, 클라이언트 디바이스(104)의 연속성 추적기(118)는 캡처된 미디어 샘플의 식별을 미래에 검증하기 위해 상기 시그너처 파일을 사용할 수 있다. 예를 들면, 연속성 추적기(118)는 대응하는 시간들에서 미디어 샘플 내 매칭 피처들을 식별하기 위해 미디어 샘플과 시그너처 파일 내의 피처들의 정렬을 비교한다. 기대된 위치에서 피처 대응의 발생이 중단되는 경우, 불연속이 표시될 수 있다. 불연속은 이하에서 설명된 것처럼 작동을 발생시킨다.
클라이언트 디바이스는 미디어 스트림의 샘플들을 샘플 버퍼(114)에 저장할 수 있다. 미디어 샘플의 피처들과 시그너처 파일의 비교가 수행되는 동안, 시간이 흐르면서 새로운 샘플들이 수신되고 버퍼(114)에 저장될 수 있다.
도 1의 시스템은 예를 들면, 무선 또는 유선 통신 기술을 사용하여 클라이언트 디바이스(104) 및/또는 서버(106)와 통신하는 클라이언트 디바이스(104) 및/또는 서버(106)로부터 분리된 불연속 검출 모듈(134)를 추가로 포함할 수 있다. 또 다른 예에서, 불연속 검출 모듈(134)의 기능들은 예를 들면, 클라이언트 디바이스(104)의 구성요소들(예컨대, 연속성 추적기(118)) 및/또는 서버(106)의 구성요소들에 의해 선택적으로 수행될 수 있다.
불연속 검출 모듈(134)는 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어 스트림이 예기치 않게 인터럽트되는 지를 검출한다. 이것은 예를 들면, 미디어 렌더링 소스(102)에서 채널이 변경되거나, 또는 누군가 미디어 스트림의 재생(playout)을 중지하거나 미디어 스트림의 다른 위치로 건너뛰는 경우에 발생할 수 있다. 만일 미디어 스트림 라이브러리 DB(128)로부터 선택된 미디어 스트림이 계속해서 재생되는 경우라면, 두 미디어 스트림들은 동기를 상실하거나 연결 해지될 수 있다. 불연속 검출 모듈(134)은 선택된 미디어 스트림을 중지하거나 두 미디어 스트림의 재동기화를 시도한다. 이와 같이, 불연속 검출 모듈(134)은 선택된 미디어 스트림이 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어 스트림과 동기하여 렌더링 되고 있는지 여부를 검증한다.
불연속 검출 모듈(134) 기능은 속도 비율(R)을 계산하기 위해 예시적인 방법으로서 전술한 주기적인 위치 및/또는 콘텐츠 식별 샘플링을 수행함으로써 구현될 수 있고, 따라서 불연속 검출 모듈(134)은 서버(106)와 통신한다. 대안으로, 불연속 검출 모듈(134)은 서버(106)와 통신하거나 미디어 시그너처 DB(1132)를 액세스하고 식별된 미디어 레코딩들의 시그너처 파일들을 검색하여 미디어 렌더링 소스(102)에 의해 렌더링된 미디어 스트림의 검증을 수행한. 어떤 시점에서, 콘텐츠 식별이 더 이상 성공적이지 않거나 시그너처 파일들이 미디어 스트림과 매칭 피처들을 포함하지 않으면, 미디어 렌더링 소스(102)에 의해 렌더링되는 미디어 스트림은 중지되었거나 인터럽트 되었다. 또는, 만일 상이한 미디어 스트림이 식별되면 아마도 채널의 변경이나, 새로운 트랙의 재생 등이 있을 수 있다.
미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어 스트림 내 불연속을 판정하기 위해, 불연속 검출 모듈(134)은 클라이언트 디바이스(104)로부터 주기적으로 미디어 샘플들을 수신하고 미디어 샘플들에 대해 지문 추출을 수행하는 것이 가능하다. 불연속 검출 모듈(134)은 또한 미디어 스트림 전체에 걸쳐 기준 미디어 스트림의 다수의 지문들을 포함하는 시그너처 파일을 포함하는 정보를 위치 식별 모듈(120)로부터 수신할 수 있다. 불연속 검출 모듈(134)은 그 다음 상기 주기적으로 수신된 미디어 샘플들로부터 추출된 상기 지문들을 시그너처 파일 내 지문들과 비교하여 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어 스트림이 인터럽트되었는지 여부를 판정한다. 불연속 검출 모듈(134)은 미리 결정된 시간들에서 어떤 지문들이 샘플들에서 나타나기를 예상하고, 예상된 지문이 보이지 않으면, 불연속이 판정된다. 예를 들어, 만일 미리 결정된 지문 매치(matches) 없이 어떤 시간이 경과한 경우, 불연속이 판정될 수 있다. 눈에 띄는 지문 매치가 발견되지 않는 경우, 불연속 검출 모듈(134)은 미디어 스트림이 인터럽트되었거나 종료된 것으로 판정할 수 있다.
지문 매칭은 또한, 예를 들면 전술한 또는 미국 특허 제6,990,453호에 기재된 방법들을 사용하여 수행될 수 있다.
*불연속 타입을 판정하는 즉시, 불연속 검출 모듈(134)은 여러 가지 중 하나를 수행할 수 있다. 일 실시예에서, 속도 드리프트(speed drift)의 검출에 기초하여, 불연속 검출 모듈(134)은 미디어 스트림의 재동기화를 수행하기 위해 속도 비율(R)을 조정하는 것이 가능하다. 또 다른 실시예에서, 큰 불연속의 검출에 기초하여, 불연속 검출 모듈(134)은 위치 식별 모듈(120)을 사용하여 미디어 스트림을 재정렬함으로써 미디어 스트림의 재동기화를 수행하는 것이 가능하다. 또 다른 실시예에서, 불연속 검출 모듈(134)은 동기화를 위해 새로운 미디어 스트림을 검출하고 상기 새로운 스트림 내 새로운 위치 및 상이한 매칭된 미디어 스트림을 선택하기 위해 콘텐츠 식별 모듈(122)을 사용하는 것이 가능하다. 또 다른 실시예에서, 위치 및/또는 콘텐츠 식별이 실패하는 경우, 불연속 검출 모듈(134)은 상기 선택된 미디어의 렌더링을 중지하도록 클라이언트 디바이스(104)에 지시할 수 있다.
클라이언트 디바이스(104)는 예를 들면, 불연속 검출 모듈(134)로부터 통지를 수신한 후 상기 선택된 미디어 스트림의 디스플레이를 중지하거나 미디어 렌더링 소스(102)로부터 렌더링 되고 있는 새로운 미디어 스트림에 동기화된 미디어 스트림 라이브러리 DB(128)로부터 선택된 새로운 미디어 스트림을 변경하여 디스플레이한다.
이와 같이 대안으로, 불연속 검출 모듈(134)은 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어와 미디어 스트림 라이브러리 DB(128)로부터 선택된 미디어 스트림의 정렬에 대한 갱신을 수행하거나 또는 갱신을 수행하도록 클라이언트 디바이스(104)에 지시할 수 있다. 불연속 검출 모듈(134)은, 상기 선택된 미디어가 미디어 렌더링 소스(102)에 의한 상기 미디어 스트림의 렌더링과 재정렬 및 동기화되도록 클라이언트 디바이스(104)에서 상기 선택된 미디어의 렌더링을 조정할 오프셋 값을, 시그너처 파일과 지문 매치들의 오정렬에 기초하여 결정한다.
대안으로, 만일 불연속 검출 모듈(134)이 시그너처 파일 내 지문들에 대한 매칭 지문들을 주기적으로 수신된 미디어 샘플들로부터 더 이상 식별하지 못하면, 불연속 검출 모듈(134)은 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 미디어와 미디어 스트림 라이브러리 DB(128)로부터 선택된 미디어의 재동기화를 수행하도록 클라이언트 디바이스(104)에 통지한다. 이를 위해서, 클라이언트 디바이스(104)는, 상기 미디어의 새로운 샘플을 캡처하고 그 새로운 샘플을 위치 식별 모듈(120)에 보내 시간 오프셋을 결정하는 방법을 재수행할 수 있다.
또한, 대안으로, 지문 매치들의 계속된 부존재에 기초하여, 불연속 검출 모듈(134)은, 예를 들어 만일 위치 식별 모듈(120)이 매칭하는 시간 오프셋을 검출하지 못하면, 미디어 스트림이 더 이상 렌더링되고 있지 않은 것으로 판정하고, 따라서 예를 들면, 상기 선택된 미디어의 렌더링을 중지하거나 새로운 콘텐츠 식별을 수행하도록 클라이언트 디바이스(104)에 지시한다. 클라이언트 디바이스(104)는 미디어 렌더링 소스(102)에 의해 렌더링 되고 있는 새로운 미디어 스트림을 식별하기 위해 콘텐츠 식별 모듈(122)에 상기 새로운 샘플을 보낼 수 있다. 만일 식별된 미디어 스트림이 변경된 경우라면 클라이언트 디바이스(104)는 클라이언트 디바이스(104)에 동기하여 렌더링될 미디어 샘플에 대응하여 새로운 미디어 스트림을 미디어 스트림 라이브러리 DB(128)로부터 선택할 수 있다.
Ⅱ. 시그너처 DB(SIGNATURE DATABASE)
도 2는 시그너처 DB를 준비하기 위한 실시예 시스템을 도시한다. 상기 시스템은 미디어 레코딩 DB(202), 피처 추출 모듈(204), 및 미디어 시그너처 DB(206)를 포함한다.
미디어 레코딩 DB(202)는 미디어 레코딩들(노래 또는 비디오)의 다수의 사본들, 또는 미디어 레코딩들의 다수의 사본들에 대한 레퍼런스(reference)를 포함할 수 있다. 피처 추출 모듈(204)은 미디어 레코딩 DB(202)에 접속되고 처리를 위해 미디어 레코딩들을 수신할 수 있다. 도 2는 미디어 레코딩 DB(202)로부터 오디오 트랙을 수신하는 피처 추출 모듈을 개념적으로 도시한다.
미디어 추출 모듈(204)은 미디어 레코딩에 대한 시그너처 파일(208)을 생성하기 위해 전술한 실시예 방법들 중 어느 것을 사용하여 미디어 레코딩으로부터 피처들을 추출한다. 피처 추출 모듈(204)은 시그너처 파일(208)을 미디어 시그너처 DB(206)에 저장한다. 미디어 시그너처 DB(206)는, 예를 들면 도 2에 도시된 것과 같은, 관련된 식별자를 가진 시그너처 파일들을 저장한다.
시그너처 파일들의 생성은 예를 들면 일괄 모드로 수행될 수 있고, 기준 미디어 레코딩들의 라이브러리가 대응하는 피처-추출된 기준 시그너처 파일들의 라이브러리 내로 미리 처리되는 것도 가능하다. 피처 추출 모듈(204)에 입력된 미디어 레코딩들은 (예컨대, 오래된 레코딩들은 롤링 버퍼(rolling buffer) 밖으로 보내지고 새로운 레코딩들이 수신되는) 버퍼 내에 저장될 수 있다. 시간상 갭이 없는 것을 나타내기 위해 미디어 레코딩들의 롤링 버퍼의 연속 동작으로부터 연속해서 또는 필요에 따라 요청 시에 피처들이 추출되고 시그너처 파일이 생성될 수 있다. 요청 시의 실시예에서, 피처 추출 모듈(204)은 대응하는 피처들에 대한 요청에 응답하여 피처들을 추출하기 위해 미디어 레코딩 DB(202)로부터 필요한 미디어 레코딩들을 검색할 수 있다.
일 실시예에서, 콘텐츠 식별 및 인식을 위해 도 1의 서버(106)에 의해 사용된 피처들은 시그너처 파일을 위해 피처 추출 모듈(204)에 의해 추출된 피처들과 동일하거나 상이할 수 있다. 일 실시예에서, 피처 추출 모듈(204)에 의해 추출된 피처들과 콘텐츠 식별을 위해 도 1의 서버(106)에 의해 사용된 피처들은 동일할 수 있고, 서버(106)는 콘텐츠 식별을 수행하기 위해 피처 추출 모듈(204)에 의해 추출된 피처들을 액세스할 수 있다.
일 실시예에서, 생성된 기준 시그너처 파일 라이브러리는 그 다음에 콘텐츠 식별 조회에 대한 반환 결과 패킷의 일부로서 검색되도록 미디어 시그너처 DB(206) 내에 저장되는 것이 가능하다.
Ⅲ. 실시예 방법들의 개관
도 3은 본 명세서에서 설명된 적어도 몇몇 실시예들에 있어서, 미디어의 샘플들을 처리하는 한 실시예 방법의 블록도이다. 도 3에 도시된 방법(300)은, 예를 들어 도 1 또는 도 2에 도시된 시스템에서 사용될 수 있고, 클라이언트 또는 서버와 같은 컴퓨팅 디바이스(또는 컴퓨팅 디바이스의 구성요소)에 의해 수행될 수 있는 방법의 실시예를 제시한다. 방법(300)은 블록(302-308)들 중 하나 이상에 의해 예시된 것과 같은 하나 이상의 동작들, 기능들, 작용들을 포함할 수 있다. 상기 블록들은 순서대로 도시되고 있지만, 이 블록들은 병렬로, 및/또는 여기서 설명된 것과 다른 순서로 수행될 수도 있다. 또한, 다양한 블록들이 더 적은 블록들로 결합될 수 있고, 추가 블록들로 분할될 수 있고, 및/또는 원하는 실행에 기초하여 제거될 수 있다.
또한, 방법(300)과 여기서 설명된 다른 프로세스들 및 방법들에 있어서, 흐름도는 본 실시예의 하나의 가능한 실행의 기능 및 동작을 보여준다. 이와 관련하여, 각 블록은, 프로세스의 특정한 논리 기능들 또는 절차들을 실행하기 위해 프로세서에 의해 실행 가능한 하나 이상의 명령들을 포함하는 프로그램 코드의 일부, 모듈, 또는 세그먼트를 나타낼 수 있다. 프로그램 코드는 유형의 컴퓨터-판독 가능한 매체, 예를 들면 디스크 또는 하드 드라이브를 포함하는 저장장치를 포함하는 임의의 타입의 제품에 저장될 수 있다. 컴퓨터 판독 가능한 매체는 예를 들면 레지스터 메모리, 프로세서 캐시 및 RAM(random access memory)와 같이 단기간 동안 데이터를 저장하는 일시적이지 않은(non-transitory) 컴퓨터 판독 가능한 매체를 포함할 수 있다. 컴퓨터 판독 가능한 매체는 또한 ROM(read only memory), 광 또는 자기 디스크, CD-ROM과 같은 보조 또는 영구 저장장치와 같은 일시적이지 않은 매체를 포함할 수 있다. 컴퓨터 판독 가능한 매체는 예를 들면 컴퓨터 판독 가능한 저장 매체이거나 유형의 저장 장치로서 간주될 수 있다.
또한, 방법(300)과 여기서 설명된 다른 프로세스들 및 방법들에 있어서, 도 3의 각 블록은 프로세스의 특정한 논리 기능들을 수행하도록 배선된 회로를 나타낼 수 있다.
블록 302에서, 방법(300)은 미디어 렌더링 소스에 의해 렌더링되는 미디어 스트림의 미디어 샘플을 수신하는 것을 포함한다. 예를 들면, 클라이언트 디바이스는 마크로폰과 같은 입력 인터페이스를 사용하여 주위 환경의 미디어 샘플을 수신할 수 있다.
또 다른 실시예로서, 서버는 클라이언트 디바이스로부터 미디어 샘플을 수신할 수 있다. 이 실시예에서, 클라이언트 디바이스는 주위 환경에서 렌더링 되고 있는 미디어로부터 미디어 샘플을 캡처하고 그 샘플을 서버로 보낸다. 상기 샘플이 캡처된 미디어의 식별을 요청하기 위해 샘플은 콘텐츠 식별 조회 내에서 서버로 보내질 수 있다.
블록 304에서, 방법(300)은 상기 샘플이 얻어진 미디어 레코딩과 관련된 정보를 결정하기 위해 샘플의 콘텐츠 식별을 수행하는 것을 포함한다. 예를 들면, 클라이언트 디바이스 또는 서버는 전술한 방법들 중 어느 것을 사용하여 콘텐츠 식별을 수행할 수 있다. 또한, 클라이언트 디바이스는 서버에 콘텐츠 식별 조회를 전송함으로써 콘텐츠 식별을 수행할 수 있다.
블록 306에서, 방법(300)은 샘플이 얻어진 매칭 미디어 레코딩들에 대해, 상기 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하는 것을 포함한다. 예를 들면, 클라이언트 디바이스는 (다수의 시그너처 파일들을 저장하는) 상기 클라이언트 디바이스의 메모리, 미디어 시그너처 DB(예컨대, 도 2에 도시된 것과 같은), 및/또는 서버로부터 시그너처 파일을 검색하거나 수신할 수 있다. 구체적인 실시예에서, 클라이언트 디바이스는 콘텐츠 식별 조회에서 상기 샘플을 서버에 보내고, 서버는 샘플이 얻어진 미디어 레코딩과 관련된 정보와 식별된 미디어 레코딩의 시그너처 파일을 반환한다. 또 다른 실시예에서, 서버는 미디어 시그너처 DB로부터 시그너처 파일을 수신할 수 있다.
상기 매칭 미디어 레코딩들은 블록 304에서 수행된 콘텐츠 식별의 결과에 기초하여 결정될 수 있다. 예를 들어, 상기 샘플이 미디어 스트림의 일부이고 상기 일부가 대응하는 미디어 레코딩의 다양한 버젼들(예컨대, 노래의 리믹스, 노래의 원본 등)과 매칭하는 경우에 있어서 둘 이상의 미디어 레코딩이 상기 샘플과 매칭하는 것으로 발견될 수 있다. 상기 매칭 미디어 레코딩들의 각각에 대한 시그너처 파일이 클라이언트 디바이스 및/또는 서버에 제공될 수 있다.
일 실시예에서, 서버는 상기 샘플과 매칭하는 후보 식별 결과들의 그룹을 결정하고, 각각의 식별 결과에 대한 기준 식별자, 기준 레코딩 내 상기 샘플의 샘플링 시간(예컨대, 시작)의 오프셋에 대응하는 시간 오프셋(Ts,k), 및 선택사항으로 속도 오차 비율(speed skew ratio)(Rk)을 클라이언트 디바이스에 회신할 수 있다. 여기서 k는 k번째 후보 결과이다. 상기 그룹에서 식별된 각각의 후보 기준 레코딩에 대해, 대응하는 기준 시그너처 파일이 상기 기준 식별자를 사용하여 시그너처 DB로부터 검색되어 클라이언트 디바이스에 회신될 수 있다.
블록 308에서, 방법(300)은 각각의 수신된 시그너처 파일을 메모리에 저장하는 것을 포함한다. 예를 들면, 클라이언트 디바이스와 서버 중 적어도 하나는 수신된 시그너처 파일을 나중 사용을 위해 메모리에 저장할 수 있다.
도 4는 여기서 설명된 적어도 몇 개의 실시예들에 있어서, 미디어 샘플들을 처리하는 또 다른 실시예 방법의 블록도이다. 도 4에 도시된 방법(400)은, 예를 들면 도 1 또는 도 2에 도시된 시스템에 사용될 수 있고 또한 디바이스(또는 디바이스의 구성요소들) 또는 서버에 의해 수행될 수 있는 방법의 실시예를 제시한다. 방법(400)은 블록(402-412)들 중 하나 이상에 의해 도시된 하나 이상의 동작들, 기능들, 또는 절차들을 포함할 수 있다. 상기 블록들은 순서대로 도시되어 있지만, 이들 블록들은 병행하여, 및/또는 여기서 설명된 것과 다른 순서로 수행될 수 있다. 또한, 다양한 블록들이 더 적은 블록들에 결합될 수 있고, 추가의 블록들로 분할될 수 있고, 및/또는 원하는 실행에 기초하여 제거될 수도 있다.
블록 402에서, 방법(400)은 미디어 렌더링 소스에 의해 렌더링되는 미디어 스트림의 미디어 샘플을 수신하는 것을 포함한다. 예를 들면, 클라이언트 디바이스 또는 서버는 도 3에 도시된 것처럼 미디어 스트림의 샘플을 수신할 수 있다.
블록 404에서, 방법(400)은 상기 샘플이 얻어진 매칭 미디어 레코딩들에 대해, 상기 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하는 것을 포함한다.
블록 406에서, 방법(400)은 미디어 스트림으로부터 추출된 피처들을 포함하는 시그너처 스트림을 수신하는 것을 포함한다. 예를 들면, 클라이언트 디바이스는 입력 인터페이스(예컨대, 마이크로폰)를 통해 미디어 스트림의 증분 샘플들을 수신하고, 이들 샘플의 피처들을 추출하여 대응하는 시그너처 스트림 증분들을 생성할 수 있다. 미디어 렌더링 소스에 의해 렌더링된 미디어 스트림이 진행중이었기 때문에, 각각의 증분 샘플은 이전 샘플 이후의 시간에 콘텐츠를 포함할 수 있다. 클라이언트 디바이스는 예를 들면 서버가 시그너처 스트림을 수신할 수 있도록 시그너처 스트림의 대응하는 증분을 서버에 송신할 수 있다. 대안으로, 클라이언트 디바이스는, 예를 들면 연속성 추적기 모듈(118)이 시그너처 스트림을 수신할 수 있도록, 시그너처 스트림의 대응하는 증분을 연속성 추적기 모듈(118)에 송신할 수 있다.
시그너처 스트림은 예를 들면 샘플의 피처들을 추출하는 전술한 방법들 중 어느 것을 사용하여 미디어 스트림의 샘플들에 기초하여 생성될 수 있다.
시그너처 스트림은 미디어 스트림이 진행중인 미디어 스트림일 때 실시간으로 진행 기준으로 생성될 수 있다. 이렇게 하여, 시그너처 스트림 내 피처들은 시간에 따라 수가 증가할 수 있다.
블록 408에서, 방법(400)은 미디어 스트림의 시그너처 스트림과 적어도 하나의 매칭하는 미디어 레코딩에 대한 시그너처 파일 사이의 피처들이 시간에 따라 실질적으로 매칭하는지를 판정하는 것을 포함한다. 예를 들면, 클라이언트 디바이스 또는 서버는 시그너처 스트림 내의 피처들과 상기 수신된 시그너처 파일들 각각의 피처들을 비교할 수 있다. 상기 피처들은 각각의 매칭 미디어 레코딩에 대한 시그너처 파일 내의 시간 위치를 k번째 매칭 미디어 레코딩 내의 샘플의 샘플링 시간(예컨대, 시작)의 오프셋에 대응하는 시간 오프셋(Ts,k)에 정렬하고, 그 다음 각각의 매칭 미디어 레코딩에 대한 정렬된 시그너처 파일을, 상기 샘플의 근처의 미디어 스트림의 증분 부분들로부터 생성되는 시그너처 스트림과 비교함으로써 비교 가능하다. 이런 식으로, 시그너처 스트림 내 피처들에 대응할 것으로 기대되는 시그너처 파일의 피처들은, 미디어 스트림이 실시간으로 수신될 때, 비교될 수 있다.
도 5는 실시예 타이밍도를 도시한다. 일 실시예에서, 진행중인 미디어 스트림은 시간에 따라 미디어 렌더링 소스에 의해 렌더링될 수 있다. 미디어 스트림의 샘플은 클라이언트 디바이스 또는 서버에 의해 시간 T0에서 캡처 또는 얻어질 수 있다. 상기 샘플은 예를 들면 약 5-10 초와 같은 임의의 길이가 될 수 있다. 상기 샘플이 얻어진 미디어 레코딩을 식별하기 위해(예컨대, 미디어 스트림 내에서 렌더링되는 미디어 레코딩을 식별하기 위해) 샘플에 대해 콘텐츠 식별이 수행될 수 있다. 미디어 레코딩은 도 1에 도시된 것과 같이 DB에 저장될 수 있고, 상기 샘플은 저장된 레코딩의 매칭 부분을 식별하기 위해 저장된 레코딩들과 비교될 수 있다. 시그너처 스트림은 상기 클라이언트 디바이스 또는 서버에 의해 캡처될 수 있다. 시그너처 스트림은 시간에 따라 미디어 스트림으로부터 추출된 피처들을 포함할 수 있고, 따라서 시그너처 스트림은 시간 세그먼트(T1, T2) 내에 추출된 피처들을 포함할 수 있다. 시간 T1은 샘플이 얻어진 시간 T0에 대응할 수 있다. 시그너처 스트림은 시간 T2가 현재 시간(t)에 근접하거나 동등하도록 연속해서 생성될 수 있다. 시그너처 스트림은, 오래된 피처들이 미리 결정된 시간(예컨대, 약 5-10 분) 후에 제거되는 FIFO(first in first out) 버퍼와 같은 버퍼 내에 저장될 수 있다.
일 실시예에서, 시그너처 스트림은 샘플이 얻어진 시간 To에서 시작하는 미디어 스트림의 일부로부터 생성될 수 있다. 비교 목적을 위한 영역을 확장하기 위해, 시간 세그먼트(T1, T2)가 선택될 수 있고 이 시간 세그먼트 내 시그너처 스트림의 부분들이 대응하는 시간 세그먼트에서 시그너처 파일 내 피처들에 비교될 수 있다. 시간 세그먼트(T1, T2)는 동기화 포인트(To)와 (예컨대, 미디어 스트림의 진행중인 렌더링에 기초하여) 가용한 시그너처 스트림의 최대 범위까지의 사이의 세그먼트의 부분들을 포함할 수 있다. 예를 들어, 만일 미디어 스트림이 마이크로폰 또는 디지털 방송 수신기로부터 실시간으로 캡처된다면, T2의 상한은 현재의 실시간일 수 있다. T1의 하한은 시그너처 스트림이 버퍼링된 시간상 가장 오래된 소급일 수 있다. 가용한 버퍼링된 시간 범위의 임의의 서브셋(subset)이 예를 들면 주사되는(scanning) 시간 세그먼트(T1, T2)로서 취해질 수 있다.
k번째 후보 기준 시그너처 파일에 대해,
Figure pat00006
또는 만일 속도 보상이 사용된다면,
Figure pat00007
여기서 T0는 샘플이 기록된 시간을 표시하는 타임스탬프이고, Tr,k(t)는 시간 t에서 미디어 스트림의 콘텐츠에 대응하는 k-번째 매칭하는 미디어 레코딩 내 콘텐츠의 상대적인 시간 오프셋이고, Ts,k는 k-번째 매칭 미디어 레코딩 내 샘플의 샘플링 시간(예컨대, 시작)의 시간 오프셋이고, Rk는 미디어 스트림이 미디어 렌더링 소스에 의해 렌더링되는 속도를 미디어 레코딩들의 기준 속도에 기초하여 표시하는 시간척도 비율(timescale ratio)이다. 어떤 실시예에서, 그와 같은 값이 제공되지 않거나 속도 보상이 필요하지 않다면 Rk = 1이다. t=T0일 때, 동기화 포인트(T0)에서 Tr,k(T0) = Ts,k이고, 시간 t=T0에서 동기화로부터의 이 결과는 콘텐츠 식별의 결과로서 알려질 수 있다.
주어진 시간 세그먼트(T1, T2)에 대해, 대응하는 시간(tj)(T1<tj<T2)을 갖는 피처들의 세트 Fj가 시그너처 스트림으로부터 검색될 수 있다. 클라이언트 디바이스 또는 서버는, 정렬된 시그너처 파일 내에서, Fj와 실질적으로 유사한 피처(F'j,k)가 Tr,k(tj) = Ts,k + Rk*(tj-To)와 실질적으로 유사한 시간(t'j,k)에 일어나는지 여부를 판정한다. 클라이언트 디바이스 또는 서버는 F'j,k가 Fj로부터 소정의 편차 내에 있고 t'j,k가 Tr,k(tj)로부터 소정의 편차 내에 있을 때 매치를 판정한다.
따라서, 주사되는 것으로 선택된 각각의 세그먼트(T1, T2)에 대해, 대응하는 시간(tj)(T1<tj<T2)을 갖는 피처들의 세트 Fj가 시그너처 스트림으로부터 검색된다. 만일 피처(Fj)가 시그너처 스트림 내 시간(tj)에 일어나고, 만일 k-번째 후보 기준 시그너처 파일이 시간(tj)에 시그너처 스트림과 매칭하면, 대응하는 기준 시그너처 파일 내에서 실질적으로 유사한 피처(F'j,k)가 Tr,k(tj) = Ts,k + Rk*(tj-To)에 실질적으로 유사한 시간(t'j,k)에 발생할 것으로 예상될 수 있다. F'j,k가 Fj로부터 소정의 편차 내에 있고 t'j,k가 Tr,k(tj)로부터 소정의 편차 내에 있을 때 매치가 발생하는 것으로 간주된다. 일 실시예에서, 시간 차원에 대해
Figure pat00008
여기서 δt는 시간 공차 값이다(예컨대, 시간 심볼들 t, tj, To, T1, T2는 미디어 스트림의 시간 좌표에서 발생하는 반면, 심볼들 Tr,k, Ts,k, 및 t'm,k는 k-번째 후보 기준 시그너처 파일의 시간 좌표에서 발생한다). 시간 공차 δt의 값은 예를 들면 약 10ms 내지 100 ms일 수 있다.
일 실시예에서, 만일 피처(Fj)들이 스칼라 값이라면,
Figure pat00009
여기서 δF는 피처 공차 값이다. 스칼라 피처의 예는 스펙트로그램 피크의 주파수이고, 피처 공차 값(δF )의 예는 약 5Hz 내지 약 20 Hz를 포함한다.
일 실시예에서, 만일 피처들이 비-스칼라 오브젝트(non-scalar object)라면 적당한 거리 척도(distance metric)는 다음과 같이 평가될 수 있다.
Figure pat00010
비-스칼라 피처의 예는, 미국 특허 제6,990,453호(참조에 의해 본 명세서에 포함됨)에 개시된 것과 같이, 2개 또는 3개의 주파수 값들을 갖는 연결된 스펙트로그램 피크 좌표들의 벡터를 포함할 수 있다. 그와 같은 경우에, 거리 척도는 주파수 좌표에서 결정된 유클리드(Euclidean) 거리 척도일 수 있다. 이 경우들에 있어서, 다수의 공통 비트들이 계산될 수 있고 피처들은 소정의 임계 수의 매칭 비트들이 얻어지는 경우 매칭하는 것으로 간주될 수 있으며, 이 경우에 거리 척도 D(Fj, F'j,k)는 최소화가 아니라 최대화될 수 있다.
다시 도 4를 참조하면, 블록 410에서, 방법(400)은 상기 매칭 피처들의 수에 기초하여 매칭 미디어 레코딩을 식별하는 것을 포함한다. 예를 들면, 클라이언트 디바이스 또는 서버는 미디어 스트림의 시그너처 스트림과 적어도 하나의 매칭 미디어 레코딩에 대한 시그너처 파일 사이의 매칭 피처들의 수를 결정하고, 각각의 시그너처 파일에 대해 매칭 피처들의 수에 순위부여(rank)를 하도록 구성된다. 가장 높은 수의 매칭 피처들을 갖는 시그너처 파일이 매치로서 간주되고, 시그너처 파일에 의해 식별되거나 참조되는 미디어 레코딩이 샘플이 얻어진 매칭 레코딩으로서 식별될 수 있다.
일 실시예에서, 블록 408은 시그너처 스트림과 시그너처 파일들 사이의 피처들이 반복적으로 비교될 수 있도록 블록 410 이후에 선택적으로 반복될 수 있다. k-번째 후보 기준 시그너처 파일 내 예상된 위치에서 매칭 F'j,k 및 t'j,k가 발견될 때, 성공적인 매칭 미디어 레코딩의 연속된 동기화를 지지하는 증거가 누적된다. 세그먼트(T1, T2) 동안 각각의 매치의 위치는 저장될 수 있다. 증거의 누적은 세그먼트(T1, T2) 내에서 처리되거나 선행 세그먼트들의 처리로부터의 결과와 합계하여 처리될 수 있다.
세그먼트(T1, T2) 내에서 처리하기 위해, 예를 들면 발견된 각각의 매치에 대해 세그먼트에 대한 스코어가 증가되고, 전체 매치의 수가 결정될 수 있다. 이 방법은 세그먼트의 입상도(granularity)가 동기화 결정의 원하는 입상도에 유사한 크기를 갖는 경우 사용될 수 있다. 예를 들어, 만일 동기화의 원하는 시간 해상도가 약 500 ms라면 버퍼들은 약 500 ms 마다 미디어 스트림의 부분들을 캡처하고 그 다음 매칭 피처들의 수를 카운트하기 위해 분석된다. 총 스코어는 모든 세그먼트로부터의 카운트로부터 결정될 수 있다.
세그먼트(T1, T2)에서 또는 종합 결과에서 증거를 누적하는 방법의 또 다른 예는 밀도 맵(density map)을 준비하는 것이다. 예를 들면, 매치들의 위치는 밀도 맵에 도달하기 위해 밀도 커널(density kernel)에 관련될 수 있다(convolved). 증거를 누적하는 또 다른 방법은 (T1, T2)에서 또는 종합 결과에서 최근 피처 매치 시간의 위치를 관측하는 것이다. 피처 카운트, 매칭 길이, 또는 밀도는 스코어로서 번역될 수 있다. 매치의 품질이 또한 고려될 수 있다. 만일 시간 또는 피처 공간에서 거리 척도가 높은 값을 갖는다면 스코어에 대한 기여가 거리에 따라서 역비례하여 가중치가 부여될 수 있다. 즉, 더 불량한 매치가 더 낮은 스코어 기여를 가져올 수 있다. 매칭 피처들의 패턴을 평가하는 다수의 다른 방법들도 있을 수 있다.
일반적으로, 시그너처 스트림의 시간 세그먼트들의 임의의 패턴, 서브셋, 또는 시퀀스는 기준 시그너처 파일에 대하여 알려진 정도의 동기화 연속을 테스트, 추적, 및 연장하기 위해 사용될 수 있다. 주사되는 각각의 세그먼트는 시그너처 스트림 내 피처들(및 미디어 스트림 내 피처들)이 k-번째 기준 시그너처 파일 내 피처들과 얼마나 잘 매치하는지의 지식을 증가시킬 수 있다. 세그먼트 검증의 종합 결과는 미디어 스트림 또는 기준 시그너처 파일의 시간 좌표에 대응하는 타임라인 상의 동기 범위의 맵을 제공하기 위해 사용될 수 있다.
일 실시예에서, 각각의 후보 시그너처 파일에 대해, 소정 양의 시간만큼 전방으로 및/또는 후방으로 확대하기 위해 선택된 시그너처 스트림에 대해 (T1, T2)을 가지고 검증이 수행될 수 있다. 만일 시그너처 스트림 버퍼가 시간 상 후방으로 충분히 멀리 확대되면, T1은 시그너처 파일의 샘플링 시간(예컨대, 시작)에 대응하도록 선택되거나, 아니면 시그너처 스트림 버퍼 내 가장 빠른 가용한 시간이 선택될 수 있다. 마찬가지로, T2는 기준 시그너처 파일의 종료에 또는 최근의 가용한 시간(예컨대, 현재 시간)에 대응하도록 선택될 수 있다. 일 실시예에서, 샘플의 종료 이후 그리고 콘텐츠 식별이 결과를 반환하기 전에 얼마의 시간이 경과했을 수 있으며, 따라서 T2가 후보 기준 시그너처 파일의 대응한 종료까지 상기 샘플 세그먼트의 종료를 지나도록 추가의 샘플들이 캡처되고 추가의 피처들이 추출되어 시그너처 스트림 버퍼 내로 저장될 수 있다.
또 다른 실시예에서, 추가 샘플들이 검증을 위해 수집되는 것을 허용하기 위해 상기 샘플 세그먼트의 종료 이후 소정 양의 시간 동안 평가가 지연될 수 있다. 예를 들면, 콘텐츠 식별을 위한 샘플 세그먼트의 길이는 약 5초가 될 수 있다. 시간 T2는 상기 샘플 세그먼트의 종료 후 추가 5초로 설정될 수 있다. 또한, 시간 T1은 약 20초의 총 시간 세그먼트를 위해 To 이전에 약 10초로 설정될 수 있다. 따라서, 20초의 시그너처 스트림은 각각의 것과의 매치를 검증하기 위해 최대 약 20초의 각각의 후보 기준 시그너처 파일에 대하여 비교될 수 있다.
또 다른 실시예에서, 대응하는 기준 시그너처 파일의 예상된 범위에 이르도록 선택된 시간 세그먼트(T1, T2)를 가지고 검증이 수행될 수 있다. 상기 k-번째 후보 기준 시그너처 파일은 대응하는 기준 미디어 레코딩의 길이(Lk)를 표시할 수 있다. 길이(Lk) 및 시간 오프셋(Ts,k)은 세그먼트(T1, T2)에 대해 결정을 가능하게 한다:
Figure pat00011
Figure pat00012
여기서 T1은 미디어 스트림 내 기준 미디어 레코딩의 예상된 시작에 대응하고, T2는 예상된 종료 시간에 대응한다. 이런 식으로, 예를 들면 기준 미디어 레코딩의 전체 길이는 검증될 수 있다. T1 및 T2 값들은 말단의 한계일 수 있고 시그너처 스트림의 가용한 버퍼링된 부분에 따라서 조정될 수 있다. (T1, T2)의 임의의 서브셋이 사용될 수 있다. 길이를 고려하는 것은 매칭이 전체 길이를 따라 예상되는 피처에서 더욱 정밀한 샘플 세그먼트가 선택되는 것을 가능하게 한다.
또 다른 실시예에서, 시간 세그먼트가 가용하게 될 때 시그너처 스트림을 반복해서 주사하기 위해 인접한 증분 시간 세그먼트들을 사용하여 연속성을 위해 실시간으로 식별된 미디어 스트림의 검증이 수행될 수 있다. 예를 들면, 1초 시간 증분이 To부터 시작하여 현재 실시간까지 선택될 수 있고, 시그너처 스트림의 추가의 풀 버퍼 주기가 수집될 때마다 시그너처 스트림에 대해 반복함으로써 검증이 수행될 수 있다. 대안이 실시예에서, 만일 제1 반복이 To 이후 어느 시간에 개시된다면, 시작점부터 가용한 현재 시간까지 캐치업(catch-up) 주사단계가 수행될 수 있고, 그 다음 1초 반복 시간 증분이 상기 캐치업 이후에 사용될 수 있다. 예를 들면, 주어진 시작점은 To일 수 있다. 또 다른 가능한 시작점은 미디어 스트림 내 기준 미디어 레코딩(시그너처 파일이 참조하는)의 예측된 시작점일 수 있다. 이것은 Tr,k(t) = 0, 즉 t = To - Ts,k/R 일 때 발생할 수 있다. 따라서, 검증을 위한 시간 세그먼트는 동기화 포인트(To)로부터 시간상 후방으로 걸칠 수 있다.
다시 도 4를 참조하면, 블록 412에서, 방법(400)은, 미디어 스트림의 시그너처 스트림과 매칭 미디어 레코딩에 대한 시그너처 파일 사이의 실질적으로 매칭 피처들의 발생이 중지할 때 불연속을 식별하는 것을 포함한다. 일 실시예에서, 클라이언트 디바이스 또는 서버는 시그너처 파일들을 갱신되는 시그너처 스트림에 지속적으로 비교하고, 피처들 사이의 매치의 발생이 중지할 때, 식별된 미디어 레코딩과 미디어 스트림 사이의 불연속이 표시될 수 있다. 일 실시예에서, 실질적으로 매칭 피처들은, 매칭 피처들의 밀도가 시간에 따라 소정의 임계치 이하로 떨어지거나 또는 매칭 피처들이 더 이상 발견되지 않는 경우, 발생을 중지한다. 시간 지연의 임계 양, 예를 들면 최종 알려진 동기 포인트(매칭 피처에서)를 지나서 약 2-5초가, 시간적으로 신호를 압도하는 노이즈에 의해 매칭 미디어 레코딩이 모호해질 수 있는 가능성을 고려하기 위해, 사용될 수 있다. 최종 알려진 동기 포인트는 매칭 부분의 종료점으로서 간주될 수 있다. k-번째 후보 기준 미디어 레코딩을 위한 동기화(대응하는 시그너처 파일에 기준한)는 k-번째 기준 시그너처 파일의 종료에 대응하는 시그너처 스트림 내 포인트에 도달될 때 종료하는 것으로 간주될 수 있다. k-번째 후보 시그너처 파일에 대해 동기가 상실된 것으로 간주될 때, k-번째 후보 시그너처 파일이 표시되고 매칭을 위한 추가적인 고려로부터 제거될 수 있다.
일 실시예에서, 블록 408은, 실질적으로 매칭 피처들의 발생이 중지하는지 여부 또는 언제 중지하는지를 판정하기 위해 시그너처 스트림과 시그너처 파일 사이의 피처들이 반복해서 비교될 수 있도록, 블록 412 이후에 선택적으로 반복될 수 있다.
전술한 (클라이언트 디바이스들 및 서버들을 포함하는) 모듈들의 예와 방법들의 예는 다양한 응용에서 사용될 수 있으며, 그것들의 일부는 이하에서 더욱 상세히 설명된다.
Ⅳ. 허위 긍정 검출(FALSE POSITIVE DETECTION)
도 6은 본 명세서에서 설명된 적어도 몇몇 실시예에 있어서 허위 긍정 검출을 수행하는 것을 포함하는 미디어 샘플을 수행하는 실시예 방법의 블록도이다. 도 6에 도시된 방법(600)은 도 1 또는 도 2에 도시된 시스템에서 사용될 수 있고 또한 디바이스(또는 디바이스의 구성요소들)에 의해 또는 서버에 의해 수행될 수 있는 방법의 실시예를 제시한다. 방법(600)은 블록(602-612)의 하나 이상에 의해 도시된 것과 같은 하나 이상의 동작들, 기능들, 작용들을 포함할 수 있다. 블록들은 순서대로 도시되어 있지만, 이들 블록은 병렬로, 및/또는 설명된 것과 다른 순서로 수행될 수도 있다. 또한, 다양한 블록들이 더 적은 블록에 결합되거나, 추가의 블록들로 분할되거나, 원하는 실행에 기초하여 제거될 수 있다.
블록 602에서, 방법(600)은 미디어 렌더링 소스에 의해 렌더링되는 미디어 스트림의 샘플을 포함하는 콘텐츠 식별 조회를 송신하는 것을 포함한다. 예를 들면, 클라이언트 디바이스는 미디어 스트림의 샘플을 캡처하고 상기 샘플을 서버에 송신할 수 있다.
블록 604에서, 방법(600)은 상기 샘플이 얻어진 미디어 레코딩과 관련된 정보를 수신하는 것을 포함한다. 예를 들면, 서버는 상기 샘플의 콘텐츠 식별을 수행하고 상기 콘텐츠 식별과 관련된 정보를 클라이언트 디바이스에 반환한다. 대안의 실시예에서, 클라이언트 디바이스는 상기 샘플의 콘텐츠 식별을 수행할 수 있다(이 경우에 블록 602는 방법(600)으로부터 생략될 수 있다).
블록 606 및 608에서, 방법(600)은 상기 샘플이 얻어진 매칭 미디어 레코딩들에 대해 상기 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하고, 미디어 스트림으로부터 추출된 피처들을 포함하는 시그너처 스트림을 수신하는 것을 포함한다. 블록 606 및 608은 도 4에 도시된 블록 404 및 406과 유사할 수 있다.
블록 610에서, 방법(600)은 시그너처 스트림과 시그너처 파일 사이의 피처들이 실질적으로 매칭하는지 여부를 판정하는 것을 포함한다. 블록 610은 도 4에 도시된 블록 408과 유사할 수 있다.
블록 612에서, 시그너처 스트림과 시그너처 파일 사이의 피처들이 실질적으로 매칭한다면, 방법(600)은 기준 미디어 레코딩이 정확하다는 통지를 제공하는 것을 포함한다. 예를 들면, 상기 기준 미디어 레코딩은, 샘플이 얻어진 미디어 레코딩을 식별하기 위해 블록 604에서 수신된 미디어 레코딩과 관련된 정보 내에, 표시될 수 있다. 따라서, 만일 (샘플이 수집되기 전, 수집되는 동안, 수집된 후를 포함하여 때때로 미디어 스트림으로부터 수집되는) 시그너처 스트림 사이의 피처들이 기준 미디어 레코딩에 대한 시그너처 파일 내 피처들과 시그너처 파일의 길이를 따라 매칭하는 경우, 상기 기준 미디어 레코딩은 미디어 스트림 내에 렌더링 되고 있다. 따라서 클라이언트 디바이스는 미디어 스트림에 의해 렌더링 되고 있는 미디어 레코딩의 식별을 표시하는 통지를 제공할 수 있다.
블록 614에서, 만일 시그너처 스트림과 시그너처 파일 사이의 피처가 실질적으로 매칭하지 않는다면, 방법(600)은 기준 미디어 레코딩이 더 이상 유효하지 않다는 통지를 제공하는 것을 포함한다. 예를 들면, 초기에, 블록 604에서, 클라이언트 디바이스는 상기 샘플이 얻어진 미디어 레코딩, 즉 미디어 렌더링 소스에 의해 렌더링되는 미디어 레코딩을 식별하는 정보를 수신할 수 있다. 그 후, 미디어 스트림에 대한 추가 정보가 시그너처 스트림 내에 얻어지고, 추후 시점에서, 시그너처 스트림 내 피처들은, 기준 미디어 레코딩이 미디어 렌더링 소스에 의해 더 이상 렌더링되지 않거나 잘못된 버젼이 초기에 식별될 때, 상기 시그너처 파일과 매칭하지 않을 수 있다. 따라서, 클라이언트 디바이스는 기준 미디어가 더 이상 유효하지 않을 때 통지를 제공하는 것이 가능하다.
방법(600)은 콘텐츠 식별 후 후보 매칭 결과의 정확성을 검증하고 허위 긍정을 검출하기 위해 수행될 수 있다. 일 실시예에서, 콘텐츠 식별 시스템은 스코어가 가장 높은 후보를 선정하고 후속적으로 얻어진 샘플들을 사용하여 나중에 추가의 전자계산(computational) 콘텐츠 식별을 수행함으로써 선정된 후보를 검증할 수 있다. 그러나 도 6의 방법(600)을 사용하는 또 다른 실시예에서, 콘텐츠 식별은 추가의 전자계산 콘텐츠 식별을 수행하지 않고 검증 가능하다.
일 실시예에서, 콘텐츠 식별 시스템에는(즉, 전술한 실시예 시스템들 중 어느 것에는) 더 낮은 인지 레이트를 갖는 것과 더 높은 허위 긍정 레이트를 갖는 것 사이의 스코어 임계치 부근에서 트레이드오프가 존재할 수 있다. 만일 임계치가 더 낮다면 인지 레이트와 허위 긍정 레이트 모두 증가할 수 있지만; 반면에 임계치가 더 높으면 인지 레이트는 더 낮아지고 허위 긍정은 더 적어진다. 허위 긍정 콘텐츠 식별은 샘플 레코딩 시간을 증가시킴으로써(예컨대, 샘플의 크기를 증가시킴으로써) 더 낮아진다. 실시예 콘텐츠 식별 시스템은 콘텐츠 식별을 위해 더 낮은 임계치 또는 더 짧은 샘플링 시간을 갖는 기법을 사용할 수 있으며, 이것으로 인해 허위 긍정은 더 높아지지만, 상기 실시예 콘텐츠 식별 시스템은 도 6의 방법(600)을 수행함으로써 인지를 검증하고 정정할 수 있다.
방법(600)은 원시 샘플 둘레의 확대된 영역에서 (예컨대, 시그너처 스트림을 사용하여) 콘텐츠 식별의 보고된 결과의 기준 시그너처 파일 내 예상된 위치에서 나타나는 충분한 밀도의 매칭 피처들이 존재하는지 검증하기 위해 사용될 수 있다. 만일 확대된 영역에서 연속성의 손실이 발생하면, 허위 긍정이 표시될 수 있고 식별 결과의 철회와 같은 적절한 조치가 클라이언트 디바이스에서 취해질 수 있다. 콘텐츠 식별 후, 만일 양호한 연속성이 확대된 영역에서 초기에 검출된 후 어떤 임계 양의 시간 동안 연속성 손실이 이어진다면, 식별된 콘텐츠가 종료되었거나 아니면 미디어 스트림 내에 더 이상 존재하지 않는 것으로 해석될 수 있다. 이것은, 예를 들면 라디오에서 재생되는 음악의 콘텐츠 식별을 수행한 후 라디오가 꺼지거나 라디오 채널이 변경되는 경우 발생할 수 있다. 그와 같은 경우에, 콘텐츠 식별은 초기에는 유효한 것으로 간주될 수 있고, 예를 들면 콘텐츠 식별이 더 이상 유효하지 않다는 통지가 뒤따른다.
Ⅴ. 복수의 미디어 레코딩 버젼 명확화
일 실시예에서, 허위 긍정 검출을 위한 도 6의 방법(600)은 또한 미디어 레코딩의 복수의 버젼들 사이의 차이를 명확히 하는 방법을 제공할 수 있다. 예를 들면, 복수의 후보 결과들은 가용한 레코딩의 상이한 수정된 버젼들로 인해 콘텐츠 식별에 기초하여 샘플에 정당한 매치일 수 있다. 일 실시예에서, 미디어 스트림 콘텐츠는 노래의 라디오 믹스, 댄스 믹스, 또는 매시업 버젼과 같은 미디어 레코딩들을 포함할 수 있고 (시간 또는 길이가 짧을 수 있는) 상기 샘플은 상기 미디어 레코딩의 이들 버젼들의 각각에 매치할 수 있다.
*복수의 후보 콘텐츠 식별 결과들을 고려하고 검증을 위해 시그너처 스트림 내에서 연장된 시간 범위 안팎으로 주사함으로써, 매칭 피처들을 시그너처 스트림 내로 더욱 확대하는 또 다른 서브셋에 대하여 기준 시그너처 파일들의 서브셋이 매칭 피처들을 제시하는 것을 중단한다면 매칭 미디어 레코딩들의 버젼들의 분기가 검출될 수 있다. 각각의 후보 기준 시그너처 파일은 가장 높은 밀도의 매칭 피처들뿐만 아니라 가장 긴 범위의 연속성을 탐색하는 시그너처 스트림의 가용한 범위에 대하여 그 길이를 따라 검증될 수 있다. 가장 긴 연속성 길이를 갖거나 가장 높은 밀도 스코어의 매칭 피처들을 갖는 버젼은 승리자로 간주될 수 있고 클리언트 디바이스에 표시된 이전의 콘텐츠 식별 승리자를 대체할 수 있다.
일 실시예에서, 복수의 미디어 레코딩 버젼들의 모호함을 명확히 함에 있어서, 기준 미디어 레코딩이 반복적인 콘텐츠, 예컨대 반복되는 코러스를 갖는다면 복수의 지점에서 기준 미디어 레코딩과 매치할 수 있다. 그와 같은 경우에, 콘텐츠 식별 모듈로 하여금 각각의 매칭 오프셋에 대해 후보 매치를 반환하도록 함으로써, 예를 들면 복수의 교차-상관 피크들을 탐색하거나, 높은 비트맵 래스터 매칭 스코어를 갖는 포인트들을 탐색하거나, 복수의 시간-차이 히스토그램 피크들을 탐색함으로써, 복수의 동기화 포인트들이 검출될 수 있다. 더 많은 미디어 스트림 콘텍스트가 주사됨에 따라, 정확하지 않은 오프셋의 후보들이 결국 트래킹으로부터 분기될 수 있고 또한 표시되고 고려에서 제거될 수 있다.
도 7은 본 명세서에서 설명된 적어도 몇몇 실시예에 있어서, 복수의 매칭 미디어 레코딩들 사이의 차이를 명확히 하는 것을 포함하는 미디어 샘플을 처리하는 실시예 방법의 블록도이다. 도 7의 방법(700)은 도 1 또는 도 2에 도시된 시스템에서 사용될 수 있고 또한 디바이스(또는 디바이스의 구성요소들)에 의해 또는 서버에 의해 수행될 수 있는 방법의 실시예를 제시한다. 방법(700)은 블록(672-712)의 하나 이상에 의해 도시된 것과 같은 하나 이상의 동작들, 기능들, 또는 작용들을 포함할 수 있다. 블록들은 순서대로 도시되어 있지만, 이들 블록은 병렬로, 및/또는 설명된 것과 다른 순서로 수행될 수도 있다. 또한, 다양한 블록들이 더 적은 블록에 결합되거나, 추가의 블록들로 분할되거나, 원하는 실행에 기초하여 제거될 수 있다.
블록 702 및 704에서, 방법(700)은 상기 샘플이 얻어진 있을 수 있는 미디어 레코딩들에 대응하는 다수의 시그너처 파일들을 수신하는 것과, 상기 미디어 스트림으로부터 추출된 피처들을 포함하는 시그너처 스트림을 수신하는 것을 포함한다. 블록 702 및 704은 도 4에 도시된 블록 404 및 406과 각각 유사할 수 있다.
블록 706에서, 방법(700)은 시그너처 스트림과 시그너처 파일 사이의 피처들이 시간에 따라 실질적으로 매칭하는지 여부를 판정하는 것을 포함한다. 블록 706은 도 4에 도시된 블록 408과 유사할 수 있다. 시그너처 스트림과 시그너처 파일 사이에 매칭 피처들이 존재하지 않으면, 방법(700)은 종료한다.
블록 708에서, 시그너처 스트림과 시그너처 파일 사이의 피처들이 실질적으로 매칭한다면, 방법(700)은 복수의 시그너처 파일들이 매칭하는지 여부를 판정한다. 예를 들면, 한 노래의 복수의 버젼들이 샘플에 대해 매칭하는 부분을 갖는 경우에, 복수의 시그너처 파일들이 상기 시그너처 스트림과 매치할 수 있다. 블록 710에서, 만일 복수의 시그너처 파일들이 매칭하지 않는다면, 방법(700)은 주어진 시그너처 파일에 대응하는 미디어 레코딩의 정체를 식별하는 것을 포함한다.
블록 712에서, 만일 복수의 시그너처 파일들이 매칭한다면, 방법(700)은 매치를 이루는 가장 높은 수의 매칭 피처들이나 가장 긴 연속성 길이의 매칭 피처들을 포함하는 주어진 시그너처 파일을 식별하는 것을 포함한다. 이어서, 상기 주어진 시그너처 파일에 대응하는 미디어 레코딩의 식별이 판정될 수 있다.
일 실시예에서, 방법(700)을 사용하여, 가장 높은 수의 매칭 피처들이나 가장 긴 연속성 길이의 매칭 피처들을 갖는 시그너처 파일을 찾기 위해 시그너처 파일은 시그너처 스트림과 비교될 수 있다. 이것은 예를 들면 전체 트랙이 시그너처 파일과 매칭하는지 판정하기 위해 사용될 수 있다. 가능한 매치들로서 수신된 나머지 수의 시그너처 파일들은 버려질 수 있다.
일 실시예에서, 서버는 미디어 레코딩들의 DB를 포함하거나 액세스할 수 있다. 상기 DB는 레코딩들의 사본을 포함할 수 있고, 방법(700)은 DB 내 사본들을 식별하기 위해 사용될 수 있으며, 그 다음 그것들은 DB로부터 삭제될 수 있다.
도 8은 타이밍도의 예를 도시한다. 미디어 스트림은 미디어 렌더링 소스에 의해 지속적인 방식으로 제공될 수 있다. 도 8은 수신된 시그너처 파일들과 비교되기 위해 생성될 수 있는 시그너처 스트림들의 실시예를 도시한다. 초기에, 제1 시그너처 스트림 증분이 시간 세그먼트(T1, T2) 내에서 발생된다. 시그너처 파일들과 비교를 위해 미디어 스트림으로부터 추가의 피처들을 얻도록 시그너처 스트림의 후속 증분들이 상기 미디어 스트림의 렌더링 동안에 주기적으로(예컨대, 1초마다) 얻어질 수 있다. 일 실시예에서, 상기 시그너처 파일은 버퍼 내에 저장되고, 후속 증분들은 시그너처 스트림이 도 8에 도시된 것처럼 시간에 따라 성장하도록 버퍼에 추가된다. 상기 버퍼는 예를 들면 약 3-60분 길이의 전체 미디어 레코딩을 포함하는 소정 양의 시그너처 스트림을 저장한다.
미디어 스트림으로부터 더 큰 시그너처 스트림들을 생성함으로써, 시그너처 파일의 알려진 연속성 영역은 연속성 손실의 시작점 및 종료점이 발견될 때까지 동기화 포인트(T0)(예컨대, 샘플이 얻어진 시간)로부터 시간상 전후로 검증될 수 있다.
일 실시예에서, 만일 콘텐츠 식별 결과로부터 복수의 후보 매치들이 존재한다면, 각 후보 시그너처 파일은, 한 방향 또는 양 방향에서 연속성이 손실될 때까지 시간상 전후로 저장된 시그너처 스트림과 비교될 수 있다. 각각의 후보 시그너처 파일에 대해, 상기 매칭 부분의 연속성 길이는 연속 종료점들 사이의 시간 차이로부터, 가능하게는 속도 비율(Rk) 또한 고려하여 결정될 수 있다. 가장 긴 연속 길이를 갖는 후보 시그너처 파일은 가장 매칭하는 파일로 간주된다.
Ⅵ. 복수의 슬레이브 미디어 스트림들의 동적 명확화
또 다른 실시예에서, 여기서 설명된 방법들과 시스템들은 콘텐츠 식별을 통해 선택되는 후보 슬레이브 미디어 스트림들의 그룹과 마스터 미디어 스트림 사이의 동기 차이를 명확히 하는 방법을 제공하며 적어도 최선의 매칭 슬레이브 미디어 스트림은 마스터 미디어 스트림에 동기하여 렌더링된다.
일 실시예에서, 클라이언트 디바이스는 슬레이브 미디어 스트림을 수신하고 미디어 렌더링 소스에 의해 렌더링 되고 있는 마스터 미디어 스트림과 동기하여 상기 슬레이브 미디어 스트림을 렌더링한다. 클라이언트 디바이스는 샘플의 샘플링 시간에 대응하는 미디어 스트림 내 시간 위치를 표시하는, 미디어 스트림으로부터 얻어진 상기 샘플의 시간 오프셋을 수신하거나 결정하도록 구성된다. 클라이언트 디바이스는 또한, 미디어 스트림의 기준 속도에 기초하여 상기 미디어 스트림이 미디어 렌더링 소스에 의해 렌더링 되고 있는 속도를 표시하는 시간척도 비율을 수신하거나 또는 결정하도록 구성된다. 그 다음 현재 시간을 표시하는 실시간 오프셋이 실시간 타임스탬프, 미디어 샘플의 타임스탬프, 타임 오프셋, 및 선택사항으로 시간척도 비율을 사용하여 결정된다. 실시간 오프셋은 전술한 수학식 1 또는 수학식 5를 사용하여 계산된다. 그 다음 클라이언트 디바이스는 실시간 오프셋에 대응하는 위치의 제2 미디어 스트림(예컨대, 슬레이브 미디어 스트림)이 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림(예컨대, 마스터 미디어 스트림)과 동기를 이루게 한다. 클라이언트 디바이스는 제2 미디어 스트림을 수신하거나, 예컨대 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림의 정체에 기초하여 메모리 또는 DB로부터 제2 미디어 스트림을 선택할 수 있다. 제2 미디어 스트림은 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림과 관련될 수 있다.
실시예 마스터 미디어 스트림은 노래를 포함할 수 있고 실시예 슬레이브 미디어 스트림은 상기 노래에 동기되어 표시되는 시간-표시된(time-annotated) 가사를 포함할 수 있다. 이렇게 하여, 클라이언트 디바이스는 제2 디바이스 또는 미디어 렌더링 소스에 의해 재생되는 노래에 동기된 노래 가사를 표시할 수 있다. 따라서 제1 디바이스의 사용자는 식별된 배경음악에 대응하는 가사를 실시간으로 볼 수 있다. 상기 가사 텍스트는 배경 음악과 동기를 이루는 시간상 위치에서 표시될 수 있다.
도 9는 미디어 스트림을 식별하고, 식별된 미디어 스트림과 데이터를 동기화시키는 시스템의 예를 도시한다. 도 9의 시스템에서, 미디어 스트림은 노래일 수 있고, 상기 시스템은 클라이언트 디바이스(904)를 사용하여 랜덤 미디어 렌더링 소스(902)에 의해 렌더링 되고 있는 상기 노래의 샘플을 캡처하고, 상기 샘플의 시간 오프셋을 식별한 후 상기 노래의 동기된 가사의 표시를 클라이언트 디바이스(904)에 제공한다.
클라이언트 디바이스(904)는 미디어 렌더링 소스(902)로부터 노래의 샘플을 캡처하고 그 다음 상기 샘플을 무선 또는 유선 통신에 의해 서버(906)에 송신하기 위해 사용될 수 있다. 클라이언트 디바이스(904)와 서버(906)의 동작은 도 1에 도시된 클라이언트 디바이스(104) 및 서버(106)와 유사할 수 있다. 서버(906)는 클라이언트 디바이스(904)로부터 샘플을 수신하고 전술한 방법들의 어느 것을 사용하여 콘텐츠 식별을 수행하도록 구성된다. 상기 노래와 상기 노래의 가사를 포함하는 배치 파일에 대한 정보는 도 9에 도시된 것과 같이 클라이언트 디바이스(904)에 송신될 수 있다. 상기 정보의 일부는 식별된 미디어 스트림의 추정 위치(Ts)를 포함할 수 있고, 클라이언트 디바이스(904)는 이것을 사용하여 실시간 미디어 스트림 추정 위치(Tr(t))를 계산하는 것이 가능하다. 상기 식별된 미디어 스트림 추정 위치(Ts)는 상기 오디오 샘플의 샘플링 시간(예컨대, 시작)에 대응하는 식별된 오디오 트랙의 길이 내 시간이다. 상기 가사는 시간-표시된 가사(908)로서 가사의 라인 또는 단어당 미디어 스트림 시간 위치들에 대한 정보를 포함한다. 일 실시예에서, 가사는 주석을 포함하는 시간 필드들을 포함하는 XML 파일에 포함되거나, 타이밍 정보가 가사 내에 다른 방법으로 삽입될 수 있다. 클라이언트 디바이스(904)는 가사의 텍스트가 미디어 렌더링 소스(902)에 의해 렌더링 되고 있는 가사와 동기되어(예컨대, 동일한 시간에 또는 대략 동일한 시간에) 표시되도록 시간 위치(Tr(t)))에서 가사를 제공한다. 대안으로, 서버(906)는 노래의 모든 가사를 파일로 클라이언트 디바이스(304)에 보내지 않고, 오히려, 미디어 렌더링 소스(902)에 의해 렌더링 되고 있는 노래와 동기하여 클라이언트 디바이스(904)에 가사를 보낼 수 있다.
전술한 방법들을 사용하면, 동기화된 후보 슬레이브 미디어 스트림의 버젼 또는 오프셋이 콘텐츠 식별 결과로부터 모호한 실시예들에서, 가장 매칭하는 슬레이브 미디어 스트림이 식별될 수 있다. 정확하지 않은 슬레이브 미디어 스트림들에는 표시가 붙여지고 추적되는 후보 그룹으로부터 제거될 수 있다. k-번째 후보 슬레이브 미디어 스트림에 대해, k-번째 슬레이브 미디어 스트림에 시간-정렬된 대응하는 슬레이브 기준 시그너처 파일이, k-번째 미디어 스트림 내 상기 샘플의 오프셋(Ts,k) 및 옵션인 속도 비율(Rk)에 추가하여, 제공될 수 있다. 만일 k-번째 슬레이브 미디어 스트림이 현재의 최선의 매치인 경우, 상기 슬레이브 미디어 스트림은 수학식 7에 기술된 것과 같이 대응하는 시간 오프셋에서 표시된다.
도 10은 본 명세서에서 설명된 적어도 몇몇 실시예에 있어서, 복수의 매칭 슬레이브 미디어 레코딩들 사이의 차이를 명확히 하는 것을 포함하는 미디어 샘플을 처리하는 실시예 방법의 블록도이다. 도 10의 방법(1000)은 도 1, 도 2, 또는 도 9에 도시된 시스템에서 사용될 수 있고 또한 디바이스(또는 디바이스의 구성요소들)에 의해 또는 서버에 의해 수행될 수 있는 방법의 실시예를 제시한다. 방법(1000)은 블록(1002-1016)의 하나 이상에 의해 도시된 것과 같은 하나 이상의 동작들, 기능들, 또는 작용들을 포함할 수 있다. 블록들은 순서대로 도시되어 있지만, 이들 블록은 병렬로, 및/또는 설명된 것과 다른 순서로 수행될 수도 있다. 또한, 다양한 블록들이 더 적은 블록에 결합되거나, 추가의 블록들로 분할되거나, 원하는 실행에 기초하여 제거될 수 있다.
블록 1002에서, 방법(1000)은 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림의 샘플을 수신하는 것을 포함한다. 블록 1004에서, 방법(1000)은 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림에 관련된 다수의 후보 제2 미디어 레코딩들을 수신하는 것을 포함한다. 예를 들어, 도 1을 참조하면, 미디어 레코딩 DB(126) 내 미디어 레코딩들에 관련시키는 기준 식별자를 갖는 미디어 스트림들을 포함하는 미디어 스트림 라이브러리 DB(128)가 제공된다. 일 실시예에서, 미디어 스트림이 노래인 경우에, 후보 제2 미디어 레코딩들은 상기 노래의 가사일 수 있다. 수신되는 후보 제2 미디어 레코딩들의 수는 변할 수 있고, 각각은 긍정 매치(positive match)로 간주될 수 있다.
블록 1006에서, 방법(1000)은 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림과 실질적으로 동기를 이루는 상기 다수의 후보 제2 미디어 레코딩들의 최선의 후보 매치를 렌더링하는 것을 포함한다. 예를 들면, 클라이언트 디바이스는 상기 후보들 각각의 매칭 스코어를 기초로 상기 다수의 후보들 내에서 최선의 매칭 후보를 결정하고, 그 다음 최선의 후보 가사가 상기 노래와 실질적으로 동기를 이루도록 만들 수 있다.
블록 1008 및 1010에서, 방법(1000)은 각각의 후보에 대해 상기 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하는 것과, 상기 미디어 스트림으로부터 추출된 피처들을 포함하는 시그너처 스트림의 추가의 시간 증분들을 수신하는 것을 포함한다. 블록 1008 및 1010은 도 4에 도시된 블록 404 및 406과 유사할 수 있다.
블록 1012에서, 방법(1000)은 시그너처 스트림과 대응하는 시그너처 파일 사이의 피처들이 시간에 따라 실질적으로 매칭하는지 여부를 판정하는 것을 포함한다. 블록 1012는 도 4에서 도시된 블록 408과 유사할 수 있다. 시그너처 스트림과 시그너처 파일 사이의 피처들이 시간에 따라 실질적으로 매칭하는 경우, 블록 1014에서 방법(1000)은 미디어 스트림과 실질적으로 동기를 이루어 제2 미디어 레코딩을 계속해서 렌더링하는 것을 포함한다.
시그너처 스트림과 시그너처 파일 사이에 피처들이 시간에 따라 실질적으로 매칭하지 않는 경우, 블록 1016에서, 방법(1000)은 미디어 스트림과 실질적으로 동기를 이루어 제2 미디어 레코딩의 렌더링을 중단하는 것을 포함한다. 일 실시예에서, 초기에 콘텐츠 식별 결과를 기초로, 시그너처 파일은 (상기 샘플에 기초하여) 미디어 스트림을 매치하지만; 만일 시그너처 스트림과 시그너처 파일 사이의 피처들이 블록 1012에서 매칭하지 않으면, 미디어 스트림이 종료되었을 수 있다. 이것은 예를 들면 라디오가 꺼지거나 채널이 변경된 경우 발생할 수 있다. 만일 연속성이 뜻밖에 상실되고 슬레이브 미디어 스트림이 클라이언트 디바이스에 의해 렌더링되고 있었다면 슬레이브 미디어 스트림은 부응하여 종료될 수 있다. 이것은 가사 또는 음악 비디오가 배경 음악에 동기를 이루고 있다가 음악이 꺼진 실시예에서 수행될 수 있으며; 그때 가사는 음악이 계속되고 있는 것처럼 계속해서 표시되는 것이 중지될 수 있다.
블록 1018에서, 방법(1000)은 미디어 스트림에 실질적으로 동기를 이루어 차선의 후보 제2 미디어 레코딩들을 렌더링하는 것을 포함한다. 예를 들면, 블록 1010에서 시그너처 스트림의 추가의 시간 증분들을 수신한 후, 시그너처 스트림의 새로운 증분들을 예상된 위치의 예상된 피처들을 탐색하는 시그너처 파일들을 비교하기 위해 사용되는 추가의 증거가 알려진다. 후보 매치들이 (블록 1016에서와 같이) 매칭을 중단하는 경우, 그와 같은 후보 매치들은 미디어 스트림에서의 추후 사용이 실격되거나 무효화된다. 이전에 최선의 매치였던 후보가 시간이 흐르면서 더 이상 실질적으로 매칭하지 않으면, 차선의 후보 매치가 (블록 1016에서와 같이) 선택될 수 있다.
방법(1000)을 사용하면, 예를 들어, (예컨대, 시스템에 의해 콘텐츠 식별을 통해 선택된) 후보 슬레이브 미디어 스트림들의 그룹과 마스터 미디어 스트림 사이의 동기화의 차이를 명확히 하는 방식이 제공된다. 동기화된 후보 슬레이브 미디어 스트림의 버젼 또는 오프셋이 콘텐츠 식별로부터 모호한 경우들에 있어서, 방법(1000)은 어느 슬레이브 미디어 스트림 또는 오프셋이 최선의 매치인지 동적으로 결정하기 위해 사용될 수 있다. 더 이상 동기화되지 않은 것으로 표시된 부정확한 슬레이브 스트림들은 추적되고 있는 후보 그룹으로부터 빠질 수 있다. k-번째 후보에 대해, k-번째 슬레이브 미디어 오브젝트에 시간 정렬되는 대응하는 슬레이브 기준 시그너처가, k-번째 미디어 스트림 내 상기 샘플의 오프셋(Ts,k) 및 옵션인 속도 비율(Rk)에 추가하여, 제공될 수 있다. 만일 k-번째 슬레이브 미디어 스트림이 현재의 최선의 매치이고 표시되는 경우, 마스터 미디어 스트림 시간(t)에서 k-번째 슬레이브 미디어 스트림 오브젝트가 k-번째 슬레이브 미디어 스트림 시간 좌표 내에서 대응하는 시간 오프셋 Tr,k(t) = Ts,k + Rk*(t -T0)에 렌더링 된다. 예를 들어, 만일 새로운 슬레이브 미디어 스트림이 최선의 매칭으로 결정되면 대응하는 새로운 슬레이브 미디어 스트림이 끼어들고 이전의 슬레이브 미디어 스트림 대신에 렌더링 된다.
가사 동기화 시스템의 예에서, 바로 다음 가사 라인들이 시간상 먼저 보이는 복수 라인의 가사가 표시될 수 있다. 복수의 버젼들이나 복수의 오프셋들의 존재 시, 동기에 있어서 임박한 분기가 접근하고 있는 것이 알려지면 룩어헤드(look-ahead) 라인 디스플레이 윈도우는 모호한 버젼 분기점을 지나서 모호하거나 다른 가사를 디스플레이하는 것을 저지하도록 좁아질 수 있다. 일단 상기 분기점에 도달되면, 부정확한 버젼들이나 오프셋들은 무시될 수 있다. 예를 들면, 정확한 버젼이 결정되자마다, 가사 표시 룩어헤드는 명확해진 가사 버젼들에 의해 다시 채워지는 것이 허용될 수 있다.
Ⅶ. 미디어 스트림들의 재동기화
일 실시예에서, 만일 마스터 미디어 스트림과 슬레이브 미디어 레코딩 사이의 동기가 상실되면 동기를 재획득하는 추가적인 단계가 수행될 수 있다. 재동기화는 콘텐츠 식별을 통해서, 또는 후속되고 있었던 미디어 레코딩 내의 위치 식별을 통해 수행될 수 있다. 재동기화는 마스터 미디어 스트림이 재개되는 때 적절한 위치에서 슬레이브 미디어 스트림의 렌더링을 재개하기 위해 마스터 미디어 스트림과 슬레이브 미디어 스트림의 재동기화가 시도될 수 있다. 예를 들면, 재동기화는 수 초마다 수행될 수 있다.
일 실시예에서, 마스터 미디어 스트림이 변경되지 않았지만, 오히려 중지된 경우, 슬레이브 미디어 스트림의 동기를 재획득하기 위해 위치 식별이 수행될 수 있다. 예를 들어, 마스터 미디어 스트림에서 렌더링 되고 있는 레코딩의 정체는 콘텐츠 식별 결과로부터 알려질 수 있지만, 미디어 스트림 내 레코딩의 시간 오프셋은 상실되었을 수 있다. 상기 알려진 레코딩의 미디어 스트림 내 시간 오프셋을 식별하기 위해 매칭 미디어 레코딩의 기준 시그너처 파일을 사용하여 위치 식별이 수행될 수 있다.
도 11은 본 명세서에서 설명된 적어도 몇몇 실시예에 있어서, 복수의 매칭 슬레이브 미디어 레코딩들 사이의 차이를 명확히 하는 것을 포함하는 미디어 샘플을 처리하는 실시예 방법의 블록도이다. 도 11의 방법(1100)은 도 1, 도 2, 또는 도 9에 도시된 시스템에서 사용될 수 있고 또한 디바이스(또는 디바이스의 구성요소들)에 의해 또는 서버에 의해 수행될 수 있는 방법의 실시예를 제시한다. 방법(1100)은 블록(1002-1016)의 하나 이상에 의해 도시된 것과 같은 하나 이상의 동작들, 기능들, 또는 작용들을 포함할 수 있다. 블록들은 순서대로 도시되어 있지만, 이들 블록은 병렬로, 및/또는 설명된 것과 다른 순서로 수행될 수도 있다. 또한, 다양한 블록들이 더 적은 블록에 결합되거나, 추가의 블록들로 분할되거나, 원하는 실행에 기초하여 제거될 수 있다.
블록 1102, 1104 및 1106에서, 방법(1100)은 미디어 렌더링 소스에 의해 렌더링되는 미디어 스트림의 샘플을 수신하는 것과, 상기 샘플이 얻어진 매칭 미디어 레코딩들에 대해 상기 매칭 미디어 레코딩들의 콘텐츠를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하는 것과, 미디어 스트림으로부터 추출된 피처들을 포함하는 시그너처 스트림을 수신하는 것을 포함한다. 블록 1102, 1104, 및 1106은 도 4에 도시된 블록 402, 404 및 406과 각각 유사할 수 있다.
블록 1108에서, 방법(1100)은 시그너처 파일과 시그너처 스트림의 비교의 결과에 기초하여 미디어 스트림의 매칭 미디어 레코딩 내에 시간 오프셋을 식별하는 것을 포함한다. 예를 들면, 개별 매칭 피처들에 기초하여 예상된 위치에서 복수의 매칭 피처들을 탐색하여, 대응 매치들에 대한 시그너처 파일을 주기적으로 주사함으로써 미디어 레코딩과 미디어 스트림의 대응을 확인하기 위해 탐색이 수행될 수 있다. 특정 실시예에서, (참조를 위해 그 전체가 본 명세서에 포함되는 미국 특허 제6,990,453호에 기술된 것과 같은) 선형적 대응이 매칭 피처들에 대해 검증될 수 있다. 상기 속도 비율(Rk)은 예를 들면 예상된 위치들을 계산할 때 고려될 수 있을 것이다.
블록 1110 및 1112에서, 방법(1100)은 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림에 관련되는 제2 미디어 레코딩을 수신하는 것과, 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림에 실질적으로 동기를 이루어 제2 미디어 스트림을 렌더링하는 것을 포함한다. 블록 1110 및 1112는 도 10에 도시된 블록 1004 및 1006과 유사할 수 있다. 제2 미디어 레코딩은 미디어 스트림에서 렌더링 되고 있는 미디어 레코딩과 제2 미디어 레코딩이 동기를 이루도록(또는 실질적으로 동기되도록) 상기 매칭 미디어 레코딩의 식별된 시간 오프셋에 대응하는 위치에서 렌더링될 수 있다.
일 실시예에서, 사용자는 디지털 비디오 레코더(DVR: digital video recorder)를 시청하다가 중지하고 클라이언트 디바이스가 식별하고 DVD와 동기하여 제2 미디어 스트림을 렌더링하는 레코딩을 재개할 수 있다. 일단 DVR이 중지되면, 제2 미디어 레코딩은 동기가 무너진다. 클라이언트 디바이스는 예를 들면 제2 미디어 레코딩과 DVR의 재동기화를 위해 방법(1100)을 수행하도록 구성될 수 있다. 클라이언트 디바이스는 시그너처 파일과 수신된 시그너처 스트림을 사용하여 위치 식별을 수행하여 렌더링된 제2 미디어 레코딩의 동기를 유지함으로써 매칭 미디어 레코딩의 시간 오프셋을 계속해서 모니터하도록 구성될 수 있다.
또 다른 예에서, 만일 새로운 슬레이브 미디어 레코딩이 최선의 매칭으로 판정되면 대응하는 슬레이브 미디어 레코딩이 이전에 렌더링된 슬레이브 미디어 레코딩을 대체하는 것이 가능하다. 예를 들면, 만일 라디오 방송국이 변경되고 새로운 미디어 레코딩이 미디어 렌더링 소스에 의해 렌더링되면, 새로운 콘텐츠 식별이 수행될 것이다. 일 실시예 가사 동기화 시스템에서, 복수 라인의 가사가 표시될 수 있으며, 바로 다음 가사 라인들이 시간상 먼저 보인다. 복수의 버젼들이나 복수의 오프셋들의 존재 시, 동기에 있어서 임박한 분기가 접근하고 있는 것이 알려지면 룩어헤드(look-ahead) 라인 디스플레이 윈도우는 모호한 버젼 분기점을 지나서 모호하거나 다른 가사를 디스플레이하는 것을 저지하도록 좁아질 수 있다. 일단 상기 분기점에 도달되면, 부정확한 버젼들이나 오프셋들은 무시될 수 있다. 예를 들면, 정확한 버젼이 결정되자마다, 가사 표시 룩어헤드는 명확해진 가사 버젼들에 의해 다시 채워지는 것이 허용될 수 있다.
Ⅷ. 동기화 조정
또 다른 실시예에서, 콘텐츠 식별에서, 속도 비율(Rk)의 추정은 짧은 샘플(예컨대, 약 5-10초 길이의 샘플)을 기초하여 결정될 것이다. 속도 비율(Rk)은 기준 레코딩에 대한 마스터 스트림의 상대 속도를 표시한다. 일 실시예에서, 속도 비율(Rk)은 시그너처 파일과 시그너처 스트림의 매칭 피처들의 위치들을 사용하여 결정되고 갱신될 것이다. 예를 들면, 속도 비율(Rk)은 매칭 피처들의 위치들에 대해 최소제곱(least-square) 추정을 적용함으로써 갱신될 수 있다. 일 실시예에서, 미국 뉴저지주 소재의 출판사인 Prentice Hall에 의해 2001년도 출간된 Simon Haykin저 "Adaptive Filter Theory" 제4판에 설명된 것과 같은 오류에 기초한 정렬을 유지하는 피드백 시스템이 적용될 수 있다.
일 실시예에서, 연속 추적을 위한 초기 파라미터들은 작은 크기(예컨대, 약 5-10초 길이)의 샘플로부터 추정될 수 있다. 미디어 스트림의 더 많은 세그먼트가 분석될수록(및 시그너처 스트림 내에서 얻어질수록) 더 많은 데이터가 추적 파리미터들을 조정하기 위해 이용될 수 있다. 시간 정렬을 위해 사용하는 파리미터들의 예는 최초 시간 오프셋(Ts,k)과 속도 경사 비율(speed skew ratio)을 포함한다. 전술한 바와 같이, 대응하는 매칭 위치들 tj 및 t'j,k가 주어지면, 파라미터들의 예는 미세-조정될 수 있다.
예를 들면, 하기 수학식 13의 오류 항을 최소화하기 위해 최소제곱법이 사용될 수 있으며, 이것은 하기 수학식 14와 수학식 15를 만족할 때 최소화될 수 있다.
Figure pat00013
Figure pat00014
Figure pat00015
이것은 하기 수학식 16과 수학식 17을 만족할 때 달성되며, 이 식들에서 N은 j가 반복하는 동안 매칭 피처들의 수이다. 만일 Ts,k가 고정된 경우라면 Rk는 자유 변수이므로 수학식 14를 풀 수 있고, 수학식 18이 얻어진다.
Figure pat00016
Figure pat00017
Figure pat00018
이 방법 예를 사용할 때, 매칭 제약조건은 다음과 같다:
Figure pat00019
Figure pat00020
지금까지 본 발명의 다양한 측면들과 실시예들이 개시되었지만, 다른 측면들과 실시예들이 당업자에게 명백할 것이다. 전술한 다양한 측면들과 실시예들은 단지 설명을 위한 것이고 한정하려는 의도는 없으며 본 발명의 진정한 범위 및 사상은 첨부된 특허청구범위의 청구항들에 의해 표시된다. 다수의 수정 및 변경이 본 발명의 범위와 사상을 벗어나지 않으면서 이루어질 수 있음은 당업자에게 명백할 것이다. 상기 열거한 것들 외에, 본 발명의 범위에 속하는 기능적으로 균등한 방법 및 장치들이 전술한 설명으로부터 당업자에게 명백할 것이다. 그와 같은 수정 및 변경은 첨부된 청구항들의 범위 내에 속하는 것으로 해석되어야 한다.

Claims (41)

  1. 미디어 렌더링 소스에 의해 렌더링되는 미디어 스트림의 콘텐트를 기술하는 피처들의 시간적으로 매핑된(temporally mapped) 집합을 포함하는 시그너처 스트림을 수신하는 단계;
    상기 콘텐트를 포함하는 미디어 레코딩의 식별을 얻기 위한 상기 시그너처 스트림의 제 1 부분내의 콘텐트에 대한 콘텐트 식별을 수행하여, 상기 콘텐트 식별의 인식 결과를 판정하는 단계;
    상기 인식 결과를 클라이언트 디바이스가 수신하는 단계;
    상기 콘텐트 식별로부터 식별된 미디어 레코딩들에 대해, 상기 식별된 미디어 레코딩들의 콘텐트를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하는 단계;
    하나 이상의 식별된 미디어 레코딩에 대해 주어진 시그너처 파일과 상기 시그너처 스트림의 상기 제 1 부분과 상이한 제 2 부분과의 사이에서 피처들을 비교하는 단계; 및
    상기 비교에 기초하여, 상기 인식 결과를 검증하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 식별된 미디어 레코딩들에 대한 시그너처 파일을 수신하는 단계는 상기 식별된 미디어 레코딩들에 대한 상기 시그너처 파일을 서버로부터 수신하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 식별된 미디어 레코딩들에 대한 시그너처 파일을 수신하는 단계는 상기 식별된 미디어 레코딩들에 대한 상기 시그너처 파일을 상기 클라이언트 디바이스의 메모리로부터 검색하는 단계를 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 시그너처 스트림을 수신하는 단계는 상기 시그너처 스트림을 마이크로폰을 사용하여 주위 환경으로부터 수신하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서,
    하나 이상의 식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림의 제 2 부분 사이의 피처들이 시간에 따라 매칭하는지 판정하는 단계를 추가로 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 미디어 스트림내의 상기 시그너처 스트림의 제 2 부분의 샘플링 시간에 대응하는 시간 오프셋(Ts,k)을 수신하는 단계를 추가로 포함하는 방법.
  7. 제 6 항에 있어서,
    각각의 식별된 미디어 레코딩에 대한 상기 시그너처 파일 내의 시간 위치를 상기 시간 오프셋에 정렬하는 단계; 및
    각각의 식별된 미디어 레코딩에 대한 정렬된 시그너처 파일을 상기 시그너처 스트림의 제 2 부분과 비교하는 단계를 추가로 포함하는 방법.
  8. 제 5 항에 있어서,
    하나 이상의 식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림의 제 2 부분 사이의 피처들이 시간에 따라 매칭하는지 판정하는 단계는:
    주어진 시간 세그먼트(T1, T2)에 대해, T1<tj<T2를 만족하는 대응하는 시간(tj)을 갖는 피처들의 세트(Fj)를 시그너처 스트림의 제 2 부분으로부터 검색하는 단계,
    제 k 시그너처 파일 내에서, Fj와 유사한 피처(F'j,k)가 Tr,k(tj) = Ts,k + Rk*(tj-To)와 유사한 시간(t'j,k)에 일어나는지 여부를 판정하는 단계; 및
    F'j,k가 Fj로부터 미리 결정된 편차 내에 있고 t'j,k가 Tr,k(tj)로부터 미리 결정된 편차 내에 있을 때 매칭을 판정하는 단계를 포함하고,
    여기서 To는 상기 샘플이 기록된 시간을 표시하는 타임스탬프이고, Tr,k(t)는 시간 t에서 미디어 스트림의 콘텐츠에 대응하는 제 k 식별된 미디어 레코딩 내 콘텐츠의 상대 시간 오프셋이고, Ts,k는 제 k 식별된 미디어 레코딩 내 상기 샘플의 샘플링 시간의 시간 오프셋이고, Rk는 상기 미디어 스트림이 상기 미디어 렌더링 소스에 의해 렌더링되는 속도를 제 k 식별된 미디어 레코딩의 기준 속도에 기초하여 표시하는 시간척도의 비율인 방법.
  9. 제 5 항에 있어서,
    주어진 시그너처 파일은, 상기 주어진 시그너처 파일이 시간적으로 매핑된 피처들의 집합을 포함하는 대응하는 기준 미디어 레코딩의 길이(Lk)를 표시하고,
    상기 방법은,
    하나 이상의 식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림의 제 2 부분 사이의 피처들이 상기 기준 미디어 레코딩의 시간 세그먼트(T1, T2)에 대해 매칭하는지 판정하는 단계를 포함하고,
    상기 길이(Lk) 동안 지속하는 시간 세그먼트(T1, T2) 및 상기 세그먼트(T1, T2)에 대한 결정을 가능하게 하는 시간 오프셋(Ts,k)이 주어질 때, 상기 시간 세그먼트(T1, T2)는 하기 수학식들로부터 결정될 수 있으며:
    Figure pat00021
    (수학식 11)
    Figure pat00022
    (수학식 12)
    여기서 T1은 미디어 스트림 내 기준 미디어 레코딩의 시작 시간에 대응하고, T2는 미디어 스트림 내 기준 미디어 레코딩의 종료 시간에 대응하고, Ts,k는 제 k 식별된 미디어 레코딩 내 상기 샘플의 샘플링 시간의 시간 오프셋이며, Rk는 상기 미디어 스트림이 상기 미디어 렌더링 소스에 의해 렌더링되는 속도를 제 k 식별된 미디어 레코딩의 기준 속도에 기초하여 표시하는 시간척도 비율인, 방법
  10. 제 5 항에 있어서,
    하나 이상의 식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림의 제 2 부분 사이의 피처들이 시간에 따라 매칭하는지 판정하는 단계는,
    상기 시그너처 스트림의 제 2 부분의 증분 세그먼트들을 상기 시그너처 파일의 대응하는 시간 정렬된 부분들과 반복해서 비교하는 단계를 포함하는 방법.
  11. 제 5 항에 있어서,
    식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림의 제 2 부분 사이의 매칭 피처들이 발생을 중지하는 때, 불연속을 판정하는 단계를 추가로 포함하는 방법.
  12. 제 11 항에 있어서,
    매칭 피처들의 밀도가 시간에 따라 미리 결정된 문턱 아래로 떨어지는 때 매칭 피처들의 발생이 중지되는 방법.
  13. 제 11 항에 있어서,
    상기 불연속에 기초하여, 상기 식별된 미디어 레코딩의 하나 이상의 식별이 더 이상 유효하지 않은 것으로 판정하는 단계를 추가로 포함하는 방법.
  14. 제 11 항에 있어서,
    미디어 렌더링 소스에 의해 렌더링되는 미디어 스트림의 샘플을 포함하는 콘텐츠 식별 조회를 전송하는 단계;
    상기 식별된 미디어 레코딩의 각각에 대한 시그너처 파일과 상기 식별된 미디어 레코딩들의 식별을 수신하는 단계; 및
    상기 불연속에 기초하여, 상기 식별된 미디어 레코딩들의 하나 이상의 식별들이 더 이상 유효하지 않다는 통지를 수신하는 단계를 추가로 포함하는 방법.
  15. 제 5 항에 있어서,
    상기 시그너처 스트림의 피처들에 대해 가장 큰 수의 매칭 피처들을 포함하는 주어진 시그너처 파일을 매칭으로 식별하는 단계; 및
    상기 주어진 시그너처 파일에 대응하는 미디어 레코딩의 식별을 처리하는 단계를 추가로 포함하는 방법.
  16. 제 5 항에 있어서,
    상기 미디어 스트림으로부터 추출된 추가 피처들을 포함하는 시그너처 스트림 증분을 수신하는 단계;
    상기 복수의 시그너처 파일들의 주어진 시그너처 파일이 상기 시그너처 스트림 증분 내 피처들에 대한 매칭 피처들을 포함하는 것으로 판정하는 단계; 및
    상기 주어진 시그너처 파일에 대응하는 미디어 레코딩의 식별을 처리하는 단계를 추가로 포함하는 방법.
  17. 제 5 항에 있어서,
    다수의 시그너처 파일들 각각에 대해, 피처들을 전후 양 방향에서 연속성이 상실될 때까지 시간상 전후로 상기 미디어 스트림으로부터 추출된 피처들과 비교하는 단계;
    상기 시그너처 스트림의 피처들에 대한 매칭 피처들의 가장 긴 연속 길이를 포함하는 주어진 시그너처 파일을 매칭으로 식별하는 단계; 및
    상기 주어진 시그너처 파일에 대응하는 미디어 레코딩의 식별을 판정하는 단계를 추가로 포함하고,
    상기 연속 길이는 매칭 피처들의 2개의 종점 사이의 시간 차이로부터 결정되는 방법.
  18. 제 5 항에 있어서,
    상기 시그너처 스트림의 피처들에 대한 매칭 피처들의 가장 긴 연속 길이를 포함하는 주어진 시그너처 파일을 매칭으로 식별하는 단계; 및
    상기 주어진 시그너처 파일에 대응하는 미디어 레코딩의 식별을 판정하는 단계를 추가로 포함하고,
    상기 연속 길이는 매칭 피처들의 2개의 종점 사이의 시간 차이로부터 결정되는 방법.
  19. 제 5 항에 있어서,
    상기 시그너처 스트림 내 피처들과 매칭 피처들을 갖는 주어진 시그너처 파일을 결정하는 단계; 및
    상기 샘플이 얻어진 상기 식별된 미디어 레코딩에 관련되는 제2 미디어 레코딩을 식별하는 단계를 추가로 포함하는 방법.
  20. 제 19 항에 있어서,
    상기 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림과 상기 제2 미디어 레코딩의 재정렬을 판정하는 단계를 추가로 포함하는 방법.
  21. 제 19 항에 있어서,
    상기 미디어 렌더링 소스에 의해 렌더링 되는 미디어 스트림에 동기하여 상기 제2 미디어 레코딩을 렌더링하기 위한 제2 미디어 레코딩을 수신하는 단계를 추가로 포함하는 방법.
  22. 제 21 항에 있어서,
    상기 미디어 스트림은 음악 레코딩이고 상기 제2 미디어 레코딩은 상기 음악 레코딩의 가사이며,
    미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림에 동기하여 상기 제2 미디어 레코딩을 렌더링하는 단계는 상기 음악 레코딩의 가사를 디스플레이하는 단계를 포함하는 방법.
  23. 제 22 항에 있어서,
    상기 음악 레코딩의 가사를 디스플레이하는 단계는 상기 음악 레코딩의 가사의 다음 라인들을 디스플레이하는 단계를 포함하고,
    식별된 미디어 레코딩에 대한 상기 시그너처 파일과 미디어 스트림의 상기 시그너처 스트림의 제 2 부분 사이의 매칭 피처들이 발생을 중지하는 때, 상기 음악 레코딩의 가사의 다음 라인의 디스플레이를 중단하는 단계를 추가로 포함하는 방법.
  24. 제 21 항에 있어서,
    식별된 미디어 레코딩에 대한 상기 시그너처 파일과 미디어 스트림의 상기 시그너처 스트림의 제 2 부분 사이의 매칭 피처들이 발생을 중지하는 때, 상기 미디어 렌더링 소스에 의해 렌더링 되고 있는 미디어 스트림에 동기하여 상기 제2 미디어 레코딩을 렌더링하는 것을 중단하는 단계를 추가로 포함하는 방법.
  25. 제 24 항에 있어서,
    상기 식별된 미디어 레코딩의 미디어 스트림 내 시간 오프셋을 식별하기 위해 상기 식별된 미디어 레코딩의 시그너처 파일을 사용하여 위치 식별을 수행하는 단계를 추가로 포함하는 방법.
  26. 제 25 항에 있어서,
    상기 미디어 스트림에서 렌더링되는 미디어 레코딩과 상기 제2 미디어 레코딩이 동기화되도록 상기 식별된 미디어 레코딩의 식별된 시간 오프셋에 대응하는 위치에서 상기 제2 미디어 레코딩을 렌더링하는 단계를 추가로 포함하는 방법.
  27. 제 21 항에 있어서,
    상기 제2 미디어 스트림과 상기 미디어 스트림 사이의 동기가 상실된 것을 판정하는 단계;
    상기 시그너처 파일을 사용하여 상기 미디어 스트림 내 식별된 미디어 레코딩의 시간 위치를 결정하는 단계; 및
    상기 결정된 시간 위치에서 상기 제2 미디어 스트림을 렌더링하는 단계를 추가로 포함하는 방법.
  28. 제 27 항에 있어서,
    상기 제2 미디어 스트림과 상기 미디어 스트림 사이의 동기가 상실된 것을 판정하는 단계는 상기 미디어 스트림 내 피처들에 대한 매치를 위해 상기 시그너처 파일을 주기적으로 스캔하는 단계를 포함하는 방법.
  29. 제 21 항에 있어서,
    상기 제2 미디어 스트림과 상기 미디어 스트림 사이의 동기가 상실된 것을 판정하는 단계;
    상기 미디어 스트림상에서 컨텐트 식별을 수행하여 상기 시그너처 스트림의 피처들과 매칭하는 피처들을 갖는 새로운 주어진 시그너처 파일을 얻는 단계;
    상기 새로운 주어진 시그너처 파일과 관련된 제3 미디어 레코딩을 수신하는 단계; 및
    상기 미디어 렌더링 소스에 의해 렌더링되고 있는 미디어 스트림에 동기하여 상기 제3 미디어 레코딩을 렌더링하는 단계를 추가로 포함하는 방법.
  30. 제 1 항에 있어서,
    각각의 수신된 시그너처 파일을 메모리에 저장하는 단계를 추가로 포함하는 방법.
  31. 제 5 항에 있어서,
    하나 이상의 식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림의 제 2 부분 사이의 피처들이 시간에 따라 매칭하는지 여부의 판정에 기초하여, 상기 방법은,
    상기 미디어 스트림과 기준 매칭 미디어 레코딩 사이의 시간척도 비율의 불일치(mismatch)를 판정하는 단계 및
    상기 불일치에 기초하여 조정된 시간척도 비율을 결정하는 단계를 추가로 포함하고,
    상기 시간척도 비율은 주어진 미디어 스트림이 주어진 미디어 렌더링 소스에 의해 렌더링되는 속도를 기준 미디어 레코딩이 기준 속도에 기초하여 표시하는 방법.
  32. 제 31 항에 있어서,
    상기 시그너처 스트림 내 피처들에 매칭하는 피처들을 갖는 주어진 시그너처 파일을 판정하는 단계;
    상기 샘플이 얻어진 상기 식별된 미디어 레코딩에 관련되는 제2 미디어 레코딩을 식별하는 단계;
    상기 제2 미디어 레코딩을 수신하는 단계;
    상기 미디어 렌더링 소스에 의해 렌더링되고 있는 미디어 스트림에 동기하여 상기 제2 미디어 레코딩을 렌더링하는 단계; 및
    상기 제2 미디어 레코딩과 상기 미디어 레코딩의 재동기화를 수행하기 위해 상기 조정된 시간척도 비율을 사용하는 단계를 추가로 포함하는 방법.
  33. 제 1 항에 있어서,
    주어진 매칭 미디어 레코딩에 대해 주어진 시그너처 파일이 상기 미디어 스트림의 시그너처 스트림 내의 피처들에 시간에 따라 매칭하는 것을 식별하는 단계를 추가로 포함하는 방법.
  34. 부호화된 컴퓨터-판독 가능한 명령들을 포함하는 프로그램을 기록한 컴퓨터-판독 가능한 기록매체에 있어서,
    상기 명령들은,
    미디어 렌더링 소스에 의해 렌더링된 미디어 스트림의 콘텐트를 기술하는 피처들의 시간적으로 매핑된 집합을 포함하는 시그너처 스트림을 수신하는 명령;
    콘텐트를 포함하는 미디어 레코딩의 식별을 얻기 위한 상기 시그너처 스트림의 제 1 부분내 콘텐트의 콘텐트 식별을 수행하여, 상기 콘텐트 식별의 인식 결과를 판정하는 명령;
    상기 인식 결과를 클라이언트 디바이스에서 수신하는 명령;
    상기 콘텐트 식별로부터 식별되는 식별된 미디어 레코딩들에 대해, 상기 식별된 미디어 레코딩들의 콘텐트를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하는 명령;
    하나 이상의 식별된 미디어 레코딩에 대해 주어진 시그너처 파일과 상기 시그너처 스트림의 제 2 부분 사이에서 피처들을 비교하는 명령; 및
    상기 비교에 기초하여, 상기 인식 결과를 검증하는 명령을 포함하고,
    상기 시그너처 스트림의 제 2 부분은 상기 제 1 부분과 상이한, 컴퓨터-판독 가능한 기록매체.
  35. 제 34 항에 있어서,
    하나 이상의 식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림의 제 2 부분 사이의 피처들이 시간에 따라 매칭하는지 여부를 판정하는 명령을 추가로 기록한, 컴퓨터-판독 가능한 기록매체.
  36. 제 34 항에 있어서,
    상기 시그너처 스트림 내의 피처들에 매칭하는 피처들을 갖는 주어진 시그너처 파일을 판정하는 명령; 및
    상기 샘플이 얻어진 식별된 미디어 레코딩에 관련 있는 제2 미디어 레코딩을 식별하는 명령을 추가로 기록한, 컴퓨터-판독 가능한 기록매체.
  37. 제 36 항에 있어서,
    상기 제2 미디어 레코딩을 수신하는 명령; 및
    상기 미디어 렌더링 소스에 의해 렌더링되고 있는 미디어 스트림에 동기하여 상기 제2 미디어 레코딩을 렌더링하는 명령을 추가로 기록한, 컴퓨터-판독 가능한 기록매체.
  38. 미디어 렌더링 소스에 의해 렌더링된 미디어 스트림의 콘텐트를 기술하는 피처들의 시간적으로 매핑된 집합을 포함하는 시그너처 스트림을 수신하는 입력 인터페이스;
    콘텐트를 포함하는 미디어 레코딩의 식별을 얻기 위한 시그너처 스트림의 제 1 부분내 콘텐트의 콘텐트 식별을 수행하여, 상기 콘텐트 식별의 인식 결과를 판정하는 모듈; 및
    상기 콘텐트 식별로부터의 식별된 미디어 레코딩들에 대해, 상기 식별된 미디어 레코딩들의 콘텐트를 기술하는 시간적으로 매핑된 피처들의 집합을 포함하는 시그너처 파일을 수신하는 연속성 추적기를 포함하고,
    상기 연속성 추적기는 하나 이상의 식별된 미디어 레코딩에 대해 주어진 시그너처 파일과 상기 시그너처 스트림의 제 1 부분과 상이한 제 2 부분 사이에서 피처들을 비교하고, 상기 비교에 기초하여, 인식 결과를 검증하는, 시스템.
  39. 제 38 항에 있어서,
    상기 연속성 추적기는 하나 이상의 식별된 미디어 레코딩에 대한 시그너처 파일과 미디어 스트림의 시그너처 스트림 사이의 피처들이 시간에 따라 매칭하는지 여부를 판정하는, 시스템
  40. 제 38 항에 있어서,
    상기 연속성 추적기는 상기 시그너처 스트림 내의 피처들에 매칭하는 피처들을 갖는 주어진 시그너처 파일을 결정하고, 또한 상기 샘플이 얻어진 식별된 미디어 레코딩에 관련 있는 제2 미디어 레코딩을 식별하는, 시스템.
  41. 제 40 항에 있어서,
    상기 미디어 렌더링 소스에 의해 렌더링되고 있는 미디어 스트림에 동기하여 상기 제2 미디어 레코딩을 렌더링하는 미디어 플레이어를 추가로 포함하는 시스템.
KR1020157021560A 2010-05-04 2011-05-04 미디어 스트림의 샘플을 처리하는 방법 및 시스템 KR20150095957A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US33101510P 2010-05-04 2010-05-04
US61/331,015 2010-05-04
US201161444458P 2011-02-18 2011-02-18
US61/444,458 2011-02-18
PCT/US2011/035254 WO2011140269A1 (en) 2010-05-04 2011-05-04 Methods and systems for processing a sample of a media stream

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020127031633A Division KR20130029082A (ko) 2010-05-04 2011-05-04 미디어 스트림의 샘플을 처리하는 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20150095957A true KR20150095957A (ko) 2015-08-21

Family

ID=44358105

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157021560A KR20150095957A (ko) 2010-05-04 2011-05-04 미디어 스트림의 샘플을 처리하는 방법 및 시스템
KR1020127031633A KR20130029082A (ko) 2010-05-04 2011-05-04 미디어 스트림의 샘플을 처리하는 방법 및 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020127031633A KR20130029082A (ko) 2010-05-04 2011-05-04 미디어 스트림의 샘플을 처리하는 방법 및 시스템

Country Status (6)

Country Link
US (2) US9275141B2 (ko)
EP (1) EP2567332A1 (ko)
KR (2) KR20150095957A (ko)
CN (1) CN102959543B (ko)
CA (1) CA2798093C (ko)
WO (1) WO2011140269A1 (ko)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102959544B (zh) * 2010-05-04 2016-06-08 沙扎姆娱乐有限公司 用于同步媒体的方法和系统
CA2798093C (en) 2010-05-04 2016-09-13 Avery Li-Chun Wang Methods and systems for processing a sample of a media stream
US8863165B2 (en) * 2010-11-01 2014-10-14 Gracenote, Inc. Method and system for presenting additional content at a media system
JP5833235B2 (ja) 2011-06-10 2015-12-16 シャザム エンターテインメント リミテッドShazam Entertainment Limited データストリームのコンテンツを識別する方法及びシステム
US8639178B2 (en) 2011-08-30 2014-01-28 Clear Channel Management Sevices, Inc. Broadcast source identification based on matching broadcast signal fingerprints
US9461759B2 (en) 2011-08-30 2016-10-04 Iheartmedia Management Services, Inc. Identification of changed broadcast media items
US9374183B2 (en) 2011-08-30 2016-06-21 Iheartmedia Management Services, Inc. Broadcast source identification based on matching via bit count
US8924345B2 (en) * 2011-09-26 2014-12-30 Adobe Systems Incorporated Clustering and synchronizing content
US8966525B2 (en) * 2011-11-08 2015-02-24 Verizon Patent And Licensing Inc. Contextual information between television and user device
US20130124999A1 (en) * 2011-11-14 2013-05-16 Giovanni Agnoli Reference clips in a media-editing application
US9116928B1 (en) * 2011-12-09 2015-08-25 Google Inc. Identifying features for media file comparison
US9268845B1 (en) * 2012-03-08 2016-02-23 Google Inc. Audio matching using time alignment, frequency alignment, and interest point overlap to filter false positives
US9292894B2 (en) 2012-03-14 2016-03-22 Digimarc Corporation Content recognition and synchronization using local caching
JP5896222B2 (ja) * 2012-03-21 2016-03-30 ソニー株式会社 端末装置、中継装置、情報処理方法、プログラム、およびコンテンツ識別システム
US8681950B2 (en) 2012-03-28 2014-03-25 Interactive Intelligence, Inc. System and method for fingerprinting datasets
US20130283143A1 (en) * 2012-04-24 2013-10-24 Eric David Petajan System for Annotating Media Content for Automatic Content Understanding
US9703932B2 (en) * 2012-04-30 2017-07-11 Excalibur Ip, Llc Continuous content identification of broadcast content
WO2014020449A2 (en) * 2012-05-10 2014-02-06 Magiktunes Limited Identifying audio stream content
US9235867B2 (en) * 2012-06-04 2016-01-12 Microsoft Technology Licensing, Llc Concurrent media delivery
CN104396262A (zh) * 2012-06-25 2015-03-04 汤姆森许可贸易公司 同步电影概要
US20140337761A1 (en) * 2012-06-26 2014-11-13 BHG Ventures, LLC Locating and sharing audio/visual content
GB2505654A (en) * 2012-09-05 2014-03-12 Quantel Ltd Method for generating file relationship data
US20140114919A1 (en) * 2012-10-19 2014-04-24 United Video Properties, Inc. Systems and methods for providing synchronized media content
EP2728757B1 (en) * 2012-11-01 2015-01-07 Nxp B.V. Wideband software-defined RF receiver
US10547713B2 (en) 2012-11-20 2020-01-28 Nvidia Corporation Method and system of transmitting state based input over a network
US10339936B2 (en) 2012-11-27 2019-07-02 Roland Storti Method, device and system of encoding a digital interactive response action in an analog broadcasting message
US10366419B2 (en) 2012-11-27 2019-07-30 Roland Storti Enhanced digital media platform with user control of application data thereon
US20140161263A1 (en) * 2012-12-10 2014-06-12 Microsoft Corporation Facilitating recognition of real-time content
US9529907B2 (en) * 2012-12-31 2016-12-27 Google Inc. Hold back and real time ranking of results in a streaming matching system
US20140195594A1 (en) * 2013-01-04 2014-07-10 Nvidia Corporation Method and system for distributed processing, rendering, and displaying of content
US9344759B2 (en) 2013-03-05 2016-05-17 Google Inc. Associating audio tracks of an album with video content
US9542933B2 (en) * 2013-03-08 2017-01-10 Analog Devices Global Microphone circuit assembly and system with speech recognition
US9451048B2 (en) * 2013-03-12 2016-09-20 Shazam Investments Ltd. Methods and systems for identifying information of a broadcast station and information of broadcasted content
US9153239B1 (en) * 2013-03-14 2015-10-06 Google Inc. Differentiating between near identical versions of a song
US9693117B2 (en) * 2013-03-15 2017-06-27 The Nielsen Company (Us), Llc Systems, methods, and apparatus to identify linear and non-linear media presentations
US9679053B2 (en) 2013-05-20 2017-06-13 The Nielsen Company (Us), Llc Detecting media watermarks in magnetic field data
WO2015006933A1 (en) * 2013-07-17 2015-01-22 Telefonaktiebolaget L M Ericsson(Publ) Seamless playback of media content using digital watermarking
US9542488B2 (en) * 2013-08-02 2017-01-10 Google Inc. Associating audio tracks with video content
US9374106B2 (en) 2013-08-28 2016-06-21 International Business Machines Corporation Efficient context save/restore during hardware decompression of DEFLATE encoded data
CA2921995A1 (en) 2013-09-11 2015-03-19 Cinsay, Inc. Dynamic binding of content transactional items
WO2015048377A1 (en) 2013-09-27 2015-04-02 Cinsay, Inc. Apparatus and method for supporting relationships associated with content provisioning
US9697504B2 (en) 2013-09-27 2017-07-04 Cinsay, Inc. N-level replication of supplemental content
US9800640B2 (en) * 2013-10-02 2017-10-24 International Business Machines Corporation Differential encoder with look-ahead synchronization
US9819720B2 (en) * 2013-10-14 2017-11-14 Futurewei Technologies, Inc. System and method to correlate local media URIs between web browsers
US20150301718A1 (en) * 2014-04-18 2015-10-22 Google Inc. Methods, systems, and media for presenting music items relating to media content
CN103944783B (zh) * 2014-04-23 2017-06-09 中国人民解放军信息工程大学 基于后验特征的流识别方法
US20160005410A1 (en) * 2014-07-07 2016-01-07 Serguei Parilov System, apparatus, and method for audio fingerprinting and database searching for audio identification
US9641892B2 (en) * 2014-07-15 2017-05-02 The Nielsen Company (Us), Llc Frequency band selection and processing techniques for media source detection
US10269343B2 (en) 2014-08-28 2019-04-23 Analog Devices, Inc. Audio processing using an intelligent microphone
US9275682B1 (en) * 2014-09-26 2016-03-01 A9.Com, Inc. Video content alignment
GB2531508A (en) * 2014-10-15 2016-04-27 British Broadcasting Corp Subtitling method and system
US10264329B2 (en) * 2014-10-28 2019-04-16 Disney Enterprises, Inc. Descriptive metadata extraction and linkage with editorial content
US10299012B2 (en) * 2014-10-28 2019-05-21 Disney Enterprises, Inc. Descriptive metadata extraction and linkage with editorial content
CN106294331B (zh) * 2015-05-11 2020-01-21 阿里巴巴集团控股有限公司 音频信息检索方法及装置
GB201508963D0 (en) * 2015-05-26 2015-07-01 Geo Track Identifier Gmbh Audio identification method
US10630773B2 (en) 2015-11-12 2020-04-21 Nvidia Corporation System and method for network coupled cloud gaming
US11027199B2 (en) 2015-11-12 2021-06-08 Nvidia Corporation System and method for network coupled gaming
US10089987B2 (en) * 2015-12-21 2018-10-02 Invensense, Inc. Music detection and identification
US9848235B1 (en) 2016-02-22 2017-12-19 Sorenson Media, Inc Video fingerprinting based on fourier transform of histogram
US10437829B2 (en) * 2016-05-09 2019-10-08 Level 3 Communications, Llc Monitoring network traffic to determine similar content
EP3255581A1 (en) * 2016-06-10 2017-12-13 General Electric Company Digital pattern prognostics
US10650241B2 (en) * 2016-06-27 2020-05-12 Facebook, Inc. Systems and methods for identifying matching content
CN106910494B (zh) * 2016-06-28 2020-11-13 创新先进技术有限公司 一种音频识别方法和装置
US10922720B2 (en) 2017-01-11 2021-02-16 Adobe Inc. Managing content delivery via audio cues
US10606548B2 (en) * 2017-06-16 2020-03-31 Krotos Ltd Method of generating an audio signal
US10440413B2 (en) 2017-07-31 2019-10-08 The Nielsen Company (Us), Llc Methods and apparatus to perform media device asset qualification
FR3071994A1 (fr) * 2017-09-29 2019-04-05 Theater Ears, LLC Procede et programme de reconnaissance et synchronisation audio
CN108012173B (zh) * 2017-11-16 2021-01-22 百度在线网络技术(北京)有限公司 一种内容识别方法、装置、设备和计算机存储介质
CN110322886A (zh) * 2018-03-29 2019-10-11 北京字节跳动网络技术有限公司 一种音频指纹提取方法及装置
US11250825B2 (en) 2018-05-21 2022-02-15 Smule, Inc. Audiovisual collaboration system and method with seed/join mechanic
CN112805675A (zh) 2018-05-21 2021-05-14 思妙公司 非线性媒体片段捕获和编辑平台
US10904587B2 (en) 2018-07-19 2021-01-26 Gracenote, Inc. Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision
US11475061B2 (en) * 2018-09-12 2022-10-18 Samsung Electronics Co., Ltd. Method and device for detecting duplicate content
US11395041B2 (en) * 2018-09-26 2022-07-19 Rovi Guides, Inc. Systems and methods for resolving recording conflicts
US11206244B2 (en) * 2018-12-21 2021-12-21 ARRIS Enterprise LLC Method to preserve video data obfuscation for video frames
US11487815B2 (en) * 2019-06-06 2022-11-01 Sony Corporation Audio track determination based on identification of performer-of-interest at live event
US11277461B2 (en) * 2019-12-18 2022-03-15 The Nielsen Company (Us), Llc Methods and apparatus to monitor streaming media
US11616797B2 (en) 2020-04-30 2023-03-28 Mcafee, Llc Large scale malware sample identification
US11803348B1 (en) 2020-09-14 2023-10-31 Apple Inc. Electronic devices for focused listening
US20220303618A1 (en) * 2021-03-17 2022-09-22 Comcast Cable Communications, Llc Systems, methods, and apparatuses for processing viewership information
CN113840162B (zh) * 2021-09-27 2023-07-25 中通服创立信息科技有限责任公司 一种iptv视频文件防篡改方法

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4450531A (en) 1982-09-10 1984-05-22 Ensco, Inc. Broadcast signal recognition system and method
US4843562A (en) 1987-06-24 1989-06-27 Broadcast Data Systems Limited Partnership Broadcast information classification system and method
US5134719A (en) 1991-02-19 1992-07-28 Mankovitz Roy J Apparatus and methods for identifying broadcast audio program selections in an FM stereo broadcast system
US5333275A (en) 1992-06-23 1994-07-26 Wheatley Barbara J System and method for time aligning speech
US5437050A (en) 1992-11-09 1995-07-25 Lamb; Robert G. Method and apparatus for recognizing broadcast information using multi-frequency magnitude detection
US5465240A (en) 1993-01-05 1995-11-07 Mankovitz; Roy J. Apparatus and methods for displaying text in conjunction with recorded audio programs
CA2155186A1 (en) 1993-02-01 1994-08-18 Kevin M. Ulmer Methods and apparatus for dna sequencing
JP2986345B2 (ja) 1993-10-18 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション 音声記録指標化装置及び方法
US5740230A (en) 1996-05-31 1998-04-14 Octel Communications Corporation Directory management system and method
US5918223A (en) 1996-07-22 1999-06-29 Muscle Fish Method and article of manufacture for content-based analysis, storage, retrieval, and segmentation of audio information
US5952597A (en) 1996-10-25 1999-09-14 Timewarp Technologies, Ltd. Method and apparatus for real-time correlation of a performance to a musical score
US6166314A (en) 1997-06-19 2000-12-26 Time Warp Technologies, Ltd. Method and apparatus for real-time correlation of a performance to a musical score
JPH1155201A (ja) 1997-07-29 1999-02-26 Sony Corp 情報処理装置および方法、情報処理システム、並びに伝送媒体
KR100641594B1 (ko) 1998-07-14 2006-11-06 소니 가부시끼 가이샤 데이터 전달 제어 방법, 데이터 전송 방법, 데이터 송신장치, 수신 장치
JP3925586B2 (ja) 1998-07-17 2007-06-06 ソニー株式会社 データ受信装置および方法ならびにデータ送受信システムおよび方法
TW495735B (en) 1999-07-28 2002-07-21 Yamaha Corp Audio controller and the portable terminal and system using the same
US7194752B1 (en) 1999-10-19 2007-03-20 Iceberg Industries, Llc Method and apparatus for automatically recognizing input audio and/or video streams
US7174293B2 (en) 1999-09-21 2007-02-06 Iceberg Industries Llc Audio identification system and method
US7444353B1 (en) * 2000-01-31 2008-10-28 Chen Alexander C Apparatus for delivering music and information
CN100538701C (zh) * 2000-07-31 2009-09-09 兰德马克数字服务公司 用于从媒体样本辨认媒体实体的方法
US6990453B2 (en) 2000-07-31 2006-01-24 Landmark Digital Services Llc System and methods for recognizing sound and music signals in high noise and distortion
FI20002161A (fi) 2000-09-29 2002-03-30 Nokia Mobile Phones Ltd Menetelmä ja järjestelmä melodian tunnistamiseksi
US7277766B1 (en) 2000-10-24 2007-10-02 Moodlogic, Inc. Method and system for analyzing digital audio files
US20020072982A1 (en) 2000-12-12 2002-06-13 Shazam Entertainment Ltd. Method and system for interacting with a user in an experiential environment
DE60228202D1 (de) 2001-02-12 2008-09-25 Gracenote Inc Verfahren zum erzeugen einer identifikations hash vom inhalt einer multimedia datei
EP1504445B1 (en) 2002-04-25 2008-08-20 Landmark Digital Services LLC Robust and invariant audio pattern matching
US6766523B2 (en) * 2002-05-31 2004-07-20 Microsoft Corporation System and method for identifying and segmenting repeating media objects embedded in a stream
US7461392B2 (en) 2002-07-01 2008-12-02 Microsoft Corporation System and method for identifying and segmenting repeating media objects embedded in a stream
US7333864B1 (en) * 2002-06-01 2008-02-19 Microsoft Corporation System and method for automatic segmentation and identification of repeating objects from an audio stream
JP4658598B2 (ja) 2002-07-01 2011-03-23 マイクロソフト コーポレーション ストリームに埋め込まれた反復オブジェクトに対するユーザ制御を提供するシステムおよび方法
US20040266337A1 (en) 2003-06-25 2004-12-30 Microsoft Corporation Method and apparatus for synchronizing lyrics
US7788696B2 (en) * 2003-10-15 2010-08-31 Microsoft Corporation Inferring information about media stream objects
EP1719273A4 (en) 2004-02-19 2009-07-15 Landmark Digital Services Llc METHOD AND DEVICE FOR IDENTIFYING THE RADIATION SOURCE
CA2563370A1 (en) * 2004-04-19 2005-11-03 Landmark Digital Services Llc Method and system for content sampling and identification
US7574451B2 (en) * 2004-11-02 2009-08-11 Microsoft Corporation System and method for speeding up database lookups for multiple synchronized data streams
US20060112812A1 (en) 2004-11-30 2006-06-01 Anand Venkataraman Method and apparatus for adapting original musical tracks for karaoke use
CN1845591A (zh) * 2005-04-06 2006-10-11 上海渐华科技发展有限公司 卡拉ok接收装置
US20070016918A1 (en) * 2005-05-20 2007-01-18 Alcorn Allan E Detecting and tracking advertisements
US20070166683A1 (en) 2006-01-05 2007-07-19 Apple Computer, Inc. Dynamic lyrics display for portable media devices
US8005666B2 (en) 2006-10-24 2011-08-23 National Institute Of Advanced Industrial Science And Technology Automatic system for temporal alignment of music audio signal with lyrics
TWI330795B (en) 2006-11-17 2010-09-21 Via Tech Inc Playing systems and methods with integrated music, lyrics and song information
US20080196575A1 (en) 2007-02-16 2008-08-21 Recordare Llc Process for creating and viewing digital sheet music on a media device
US20090083281A1 (en) 2007-08-22 2009-03-26 Amnon Sarig System and method for real time local music playback and remote server lyric timing synchronization utilizing social networks and wiki technology
US8143508B2 (en) * 2008-08-29 2012-03-27 At&T Intellectual Property I, L.P. System for providing lyrics with streaming music
US8452586B2 (en) 2008-12-02 2013-05-28 Soundhound, Inc. Identifying music from peaks of a reference sound fingerprint
US9390167B2 (en) 2010-07-29 2016-07-12 Soundhound, Inc. System and methods for continuous audio matching
US8291328B2 (en) 2009-03-24 2012-10-16 Disney Enterprises, Inc. System and method for synchronizing a real-time performance with a virtual object
US8548613B2 (en) 2009-04-20 2013-10-01 Disney Enterprises, Inc. System and method for an interactive device for use with a media device
CA2798093C (en) 2010-05-04 2016-09-13 Avery Li-Chun Wang Methods and systems for processing a sample of a media stream
US9280598B2 (en) 2010-05-04 2016-03-08 Soundhound, Inc. Systems and methods for sound recognition
US9047371B2 (en) 2010-07-29 2015-06-02 Soundhound, Inc. System and method for matching a query against a broadcast stream

Also Published As

Publication number Publication date
KR20130029082A (ko) 2013-03-21
US20110276157A1 (en) 2011-11-10
CA2798093A1 (en) 2011-11-10
EP2567332A1 (en) 2013-03-13
US10003664B2 (en) 2018-06-19
US20160156731A1 (en) 2016-06-02
CA2798093C (en) 2016-09-13
CN102959543B (zh) 2016-05-25
US9275141B2 (en) 2016-03-01
WO2011140269A1 (en) 2011-11-10
CN102959543A (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
US10003664B2 (en) Methods and systems for processing a sample of a media stream
KR101582436B1 (ko) 미디어의 동기화 방법 및 시스템
JP5833235B2 (ja) データストリームのコンテンツを識別する方法及びシステム
US9159338B2 (en) Systems and methods of rendering a textual animation
EP1766816A2 (en) Method and system for content sampling and identification
CN118044206A (zh) 事件源内容和远程内容同步

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application