KR101071017B1 - 고속 오디오 검색을 위한 방법 및 장치 - Google Patents

고속 오디오 검색을 위한 방법 및 장치 Download PDF

Info

Publication number
KR101071017B1
KR101071017B1 KR1020097000034A KR20097000034A KR101071017B1 KR 101071017 B1 KR101071017 B1 KR 101071017B1 KR 1020097000034 A KR1020097000034 A KR 1020097000034A KR 20097000034 A KR20097000034 A KR 20097000034A KR 101071017 B1 KR101071017 B1 KR 101071017B1
Authority
KR
South Korea
Prior art keywords
segment
target audio
groups
audio clip
audio
Prior art date
Application number
KR1020097000034A
Other languages
English (en)
Other versions
KR20090018197A (ko
Inventor
유롱 첸
Original Assignee
인텔 코오퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Priority to KR1020097000034A priority Critical patent/KR101071017B1/ko
Publication of KR20090018197A publication Critical patent/KR20090018197A/ko
Application granted granted Critical
Publication of KR101071017B1 publication Critical patent/KR101071017B1/ko

Links

Images

Classifications

    • 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

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본원에 개시된 발명의 실시예들에 따르면, 멀티프로세서 시스템의 큰 오디오 데이터베이스는 강건하고 병렬인 검색 방법을 이용하여 타겟 오디오 클립에 대해 검색된다. 큰 오디오 데이터베이스는 다수의 더 작은 그룹들로 파티셔닝되고, 이들은 시스템에서 가용한 프로세서들에 다이나믹하게 스케줄링된다. 프로세서들은 각각의 그룹을 더 작은 세그먼트들로 파티셔닝하고, 세그먼트로부터 음향 특징을 추출하고, 공통 컴포넌트 가우시안 혼합 모델("CCGMM")을 이용하여 세그먼트들을 모델링함으로써 스케줄링된 그룹들을 병렬로 처리한다. 하나의 프로세서는 타겟 오디오 클립으로부터 음향 특징을 추출하고 CCGMM을 이용하여 이를 모델링한다. 타겟 오디오 클립과 각각의 세그먼트 사이의 쿨백-라이블러(KL) 거리가 더 계산될 수 있다. KL 거리에 기초하여, 세그먼트는 타겟 오디오 클립과 매칭하는 것으로 결정되고, 및/또는 다수의 뒤따르는 세그먼트들이 스킵될 수 있다.
오디오, 검색, 멀티프로세서, 병렬 검색, 세그먼트

Description

고속 오디오 검색을 위한 방법 및 장치{METHOD AND APPARATUS FOR FAST AUDIO SEARCH}
본 발명은 일반적으로는 신호 처리 및 멀티미디어 어플리케이션에 관한 것으로, 특히 한정적이지는 않지만, 고속 오디오 검색 및 오디오 핑거프린팅(fingerprinting)을 위한 방법 및 장치에 관한 것이다.
오디오 검색(예를 들면, 큰 오디오 스트림이 오염되고(corrupted)/왜곡된 경우라도 오디오 클립에 대한 큰 오디오 스트림을 검색함)은 방송 음악/광고방송의 분석, 인터넷에서의 저작권 관리, 또는 라벨링되지 않은 오디오 클립들에 대한 메타데이터 찾기 등을 포함하는 다수의 어플리케이션들을 가지고 있다. 전형적인 오디오 검색 시스템은 단일 프로세서 시스템에 대해 직렬로 설계된다. 보통, 그러한 검색 시스템이 큰 오디오 스트림에서 타겟 오디오 클립을 검색하는데 많은 시간이 소요된다. 그러나, 다수의 경우에, 오디오 검색 시스템은 큰 오디오 데이터베이스 상에서 효율적으로 동작하는 것이 요구되고, 예를 들면, 큰 데이터베이스를 매우 짧은 시간에(예를 들면, 거의 실시간으로) 검색하는 것이 요구된다. 추가적으로, 오디오 데이터베이스는 부분적으로 또는 전체적으로 왜곡되고, 오염되거나 압축될 수 있다. 이것은 세그먼트가 왜곡되고, 오염되거나 압축되어 있을지라도, 오디오 검색 시스템이 타겟 오디오 클립과 동일한 오디오 세그먼트들을 식별할 만큼 충분히 강건할(robust) 것이 요구된다. 그러므로, 타겟 오디오 클립에 대해 큰 오디오 데이터베이스를 신속하고 강건하게 검색할 수 있는 오디오 검색 시스템을 갖는 것이 바람직하다.
개시된 발명의 특징 및 장점들은 본 발명의 이하의 상세한 설명으로부터 명백하게 될 것이다.
도 1은 강건하고 병렬인 오디오 검색이 오디오 검색 모듈을 이용하여 수행될 수 있는 하나의 컴퓨팅 시스템 예를 도시하고 있다.
도 2는 강건하고 병렬인 오디오 검색이 오디오 검색 모듈을 이용하여 수행될 수 있는 또 하나의 컴퓨팅 시스템 예를 도시하고 있다.
도 3은 강건하고 병렬인 오디오 검색이 오디오 검색 모듈을 이용하여 수행될 수 있는 또 다른 컴퓨팅 시스템의 예를 예시하고 있다.
도 4는 강건한 오디오 검색을 수행하는 예시적인 오디오 검색 모듈의 블록도이다.
도 5는 도 4에 도시된 강건한 오디오 검색 모듈이 동작하는 방법을 예시하는 예이다.
도 6은 멀티프로세서 시스템에서 강건하고 병렬인 오디오 검색을 수행하는 예시적인 오디오 검색 모듈의 블록도이다.
도 7A, 7B 및 7C는 멀티프로세서 시스템에서 강건하고 병렬인 오디오 검색을 위해 큰 오디오 데이터베이스를 더 작은 그룹으로 파티셔닝하는 방법을 예시하고 있다.
도 8은 멀티프로세서 시스템에서 강건하고 병렬인 오디오 검색을 수행하기 위한 예시적인 프로세스를 예시하는 의사코드(pseudo code)이다.
본원에 기재된 발명의 실시예들에 따르면, 멀티프로세서 시스템에서 큰 오디오 스트림 또는 큰 오디오 데이터베이스는 타겟 오디오 클립에 대해 강건하고 병렬인 검색 방법을 이용하여 검색된다. 큰 오디오 데이터베이스는 다수의 더 작은 그룹들로 파티셔닝된다. 이들 더 작은 그룹들은 멀티프로세서 시스템의 가용한 프로세서들 또는 처리 코어들에 의해 처리되도록 다이나믹하게 스케줄링될 수 있다. 프로세서들 또는 처리 코어들은 각 그룹을 더 작은 세그먼트들로 파티셔닝하고, 세그먼트로부터 음향 특징들을 추출하며, 공통 컴포넌트 가우시안 혼합 모델(common compact Gaussian Mixture model, "CCGMM")을 이용하여 세그먼트를 모델링함으로써 스케줄링된 그룹들을 병렬로 처리할 수 있다. 이들 세그먼트의 길이는 타겟 오디오 클립의 길이와 동일하다. 임의의 그룹을 처리하기 이전에, 하나의 프로세서 또는 처리 코어는 타겟 오디오 클립으로부터 음향 특징을 추출하고 CCGMM을 이용하여 그것을 모델링할 수 있다. 쿨백-라이블러(Kullback-Leibler, KL) 또는 KL-최대 거리는 타겟 오디오 클립의 모델과 그룹의 각 세그먼트 사이에 더 계산될 수 있다. 거리가 사전결정된 값보다 작거나 같은 경우, 대응하는 세그먼트는 타겟 오디오 클립으로서 식별된다.
거리가 사전결정된 값보다 큰 경우, 프로세서 또는 처리 코어는 특정 개수의 세그먼트들을 스킵하고 타겟 오디오 클립을 계속해서 검색한다. 일단 프로세서 또는 처리 코어가 그룹을 검색하는 것을 종료하면, 모든 그룹이 검색될 때까지 타겟 오디오 클립을 검색하는 처리를 새로운 그룹에 제공할 수 있다. 그룹들의 크기는 부하 불균형 및 중첩된 계산을 감소시키는 방식으로 결정된다. 또한, 입력/출력(I/O)은 멀티플 프로세서들 또는 처리 코어들에 의해 오디오 그룹들의 병렬 처리의 효율을 개선하도록 최적화될 수 있다.
개시된 발명의 "하나의 실시예" 또는 "실시예"에 대한 명세서에서의 참조는, 실시예와 관련하여 기재된 특정 특징, 구조 또는 특성이 개시된 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 그러므로, 명세서 전체에 걸쳐 다양한 곳에서 나타나는 "하나의 실시예"라는 구절의 출현은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
도 1은 강건하고 병렬인 오디오 검색이 오디오 검색 모듈(120)을 이용하여 수행되는 예시적인 하나의 컴퓨팅 시스템(100)을 도시하고 있다. 컴퓨팅 시스템(100)은 시스템 상호접속(115)에 결합된 하나 이상의 프로세서들(110)을 포함할 수 있다. 프로세서(100)는 멀티플 또는 다수의 처리 코어들(설명을 간단히 하기 위해, 용어 "멀티플 코어"는 이하에서 멀티플 처리 코어 및 다수의 처리 코어 모두를 포함하는 것으로 이용된다.)을 구비하고 있다. 프로세서(110)는 멀티플 코어들에 의해 강건하고 병렬인 오디오 검색을 수행하는 오디오 검색 모듈(120)을 포함한다. 오디오 검색 모듈은 파티셔닝 메커니즘, 스케줄, 및 멀티플 오디오 검색기들 (더 상세한 설명에 대해서는 이하의 도 4-6을 참조하라)와 같은 수개의 컴포넌트들을 포함할 수 있다. 오디오 검색 모듈의 하나 이상의 컴포넌트들은 또 하나의 코어의 다른 것들과 함께 하나의 코어에 위치될 수 있다.
오디오 검색 모듈은 우선 큰 오디오 데이터베이스를 멀티플의 더 작은 그룹으로 또는 큰 오디오 스트림을 더 작은 부분적으로 중첩되는 서브스트림들로 파티셔닝할 수 있다. 두 번째, 하나의 코어는 검색될 오디오 클립("타겟 오디오 클립")을 처리하여 타겟 오디오 클립에 대한 모델을 확립한다. 그 동안에, 오디오 검색 모듈은 더 작은 오디오 그룹/서브스트림들을 멀티플 코어들에 다이나믹하게 스케줄링하고, 멀티플 코어는 각 그룹/서브스트림을 세그먼트들로 파티셔닝하며 각각의 오디오 세그먼트에 대한 모델을 병렬로 확립한다. 각각의 세그먼트의 크기는 타겟 오디오 클립의 크기와 동일할 수 있다. 타겟 오디오 클립 및 오디오 데이터베이스/스트림 양쪽을 포함하는 모든 오디오 세그먼트들에 공통적인 멀티플 가우시안 컴포넌트를 갖는 가우시안 혼합 모델("GMM")은 각 오디오 세그먼트 및 타겟 오디오 클립을 모델링하는데 이용될 수 있다. 일단 오디오 세그먼트에 대한 모델이 확립되면, 쿨백-라이블러("KL")또는 KL-최대 거리가 세그먼트 모델과 타겟 오디오 클립 모델 사이에 계산될 수 있다. 거리가 사전결정된 값보다 크지 않은 경우, 오디오 세그먼트는 타겟 오디오 클립으로서 식별된다. 검색 프로세스는 모든 오디오 그룹들/서브스트림들이 처리될 때까지 계속될 수 있다.
컴퓨팅 시스템(100)은 시스템 상호접속(115)에 결합된 칩셋(130)을 포함한다. 칩셋(130)은 하나 이상의 집적된 회로 패키지들 또는 칩들을 포함한다. 칩 셋(130)은 예를 들면 BIOS 펌웨어, 키보드, 마우스, 저장 디바이스들, 네트워크 인터페이스들 등과 같은 컴퓨팅 시스템(100)의 다른 컴포넌트들(160)로의 및/또는 다른 컴포넌트들(160)로부터의 데이터 전송들을 지원하는 하나 이상의 디바이스 인터페이스(135)를 포함할 수 있다. 칩셋(130)은 주변 컴포넌트 상호접속(PCI) 버스(170)에 결합될 수 있다. 칩셋(130)은 PCI 버스(170)에 인터페이스를 제공하는 PCI 브리지(145)를 포함할 수 있다. PCI 브리지(145)는 다른 컴포넌트들(160)뿐만 아니라 프로세서(110)와, 예를 들면 오디오 디바이스(180) 및 디스크 드라이브(190)와 같은 주변 디바이스 사이의 데이터 경로를 제공할 수 있다. 도시되어 있지는 않지만, 다른 디바이스들도 PCI 버스(70)에 결합될 수 있다.
추가적으로, 칩셋(130)은 메인 메모리(150)에 결합되는 메모리 컨트롤러(125)를 포함할 수 있다. 메인 메모리(150)는 프로세서(110)의 멀티플 코어들 또는 시스템에 포함되는 임의의 다른 디바이스에 의해 실행되는 명령들의 시퀀스 및 데이터를 저장한다. 메모리 컨트롤러(125)는 프로세서(110)의 멀티플 코어들 및 컴퓨팅 시스템(100)의 다른 디바이스들과 연관된 메모리 트랜잭션(memory transaction)에 응답하여 메인 메모리(150)를 액세스할 수 있다. 하나의 실시예에서, 메모리 컨트롤러(150)는 프로세서(110) 또는 일부 다른 회로들에 위치될 수 있다. 메인 메모리(150)는 메모리 컨트롤러(125)가 데이터를 판독하거나 및/또는 기록할 수 있는 어드레싱가능한 저장 위치들을 제공하는 다양한 메모리 디바이스를 포함할 수 있다. 메인 메모리(150)는 다이나믹 랜덤 액세스 메모리(DRAM) 디바이스들, 동기형 DRAM(SDRAM) 디바이스들, 더블 데이터 레이트(DDR) SDRAM 디바이스 들, 또는 다른 메모리 디바이스들과 같은 하나 이상의 상이한 타입의 메모리 디바이스들을 포함할 수 있다.
도 2는 강건하고 병렬인 오디오 검색이 오디오 검색 모듈(240)을 이용하여 수행될 수 있는 또 하나의 예시적인 컴퓨팅 시스템(200)을 도시하고 있다. 시스템(200)은 프로세서0(220A)과 같은 복수의 프로세서들을 포함할 수 있다. 시스템(200)의 하나 이상의 프로세서들은 다수의 코어를 가질 수 있다. 시스템(200)은 멀티플 코어에 의해 강건하고 병렬인 오디오 검색을 행하는 오디오 검색 모듈(240)을 포함할 수 있다. 오디오 검색 모듈은 파티셔닝 메커니즘, 스케줄, 및 멀티플 오디오 검색기들과 같은 수 개의 컴포넌트들을 포함할 수 있다(이하의 도 4-6에 대한 더 상세한 설명을 참조하라). 오디오 검색 모듈의 하나 이상의 컴포넌트들은 또 하나의 코어에서 다른 것들과 함께 하나의 코어에 위치될 수 있다. 시스템(200)의 프로세서들은 시스템 상호접속(210)을 이용하여 서로에게 접속될 수 있다. 시스템 상호접속(210)은 프론트 사이드 버스(FSB)일 수 있다. 각각의 프로세서는 시스템 상호접속을 통해 메모리(230)뿐만 아니라 입력/출력(IO) 디바이스들에도 접속될 수 있다. 모든 코어들은 메모리(230)로부터 오디오 데이터를 수신할 수 있다.
도 3은 강건하고 병렬인 오디오 검색이 오디오 검색 모듈(340)을 이용하여 수행될 수 있는 또 다른 예시적인 컴퓨팅 시스템(300)을 도시하고 있다. 시스템(300)에서, 멀티플 프로세서들(예를 들면, 320A, 320B, 320C 및 320D)을 접속하는 시스템 상호접속(310)은 링크-기반의 점간(links-based point-to-point) 접속이 다. 각각의 프로세서는 링크 허브(예를 들면, 330A, 330B, 330C 및 330D)를 통해 시스템 상호접속에 접속한다. 일부 실시예들에서, 링크 허브는 시스템 메모리로부터의 트래픽을 조정하는 메모리 컨트롤러와 함께 위치될 수 있다. 하나 이상의 프로세서는 다수의 코어를 가질 수 있다. 시스템(300)은 멀티플 코어들에 의해 강건하고 병렬인 오디오 검색을 수행하는 오디오 검색 모듈(340)을 포함한다. 오디오 검색 모듈은 파티셔닝 메커니즘, 스케줄, 및 멀티플 오디오 검색기들과 같은 수 개의 컴포넌트들을 포함할 수 있다(이하의 도 4-6에 대한 더 상세한 설명을 참조하라). 오디오 검색 모듈의 하나 이상의 컴포넌트들은 또 하나의 코어의 다른 것들과 함께 하나의 코어에 위치될 수 있다. 시스템(300)의 각 프로세서/코어는 시스템 상호접속을 통해 공유 메모리(도면에 도시되지 않음)에 접속될 수 있다. 모든 코어들은 공유 메모리로부터 오디오 데이터를 수신할 수 있다.
도 2 및 3에서, 오디오 검색 모듈(즉, 240 및 340)은 우선 큰 오디오 데이터베이스를 멀티플의 더 작은 그룹들로, 또는 큰 오디오 스트림을 더 작은 부분적으로 중첩된 서브스트림들로 파티셔닝할 수 있다. 두 번째로, 하나의 코어는 검색될 오디오 클립("타겟 오디오 클립")을 처리하여 타겟 오디오 클립에 대한 모델을 확립할 수 있다. 그 동안에, 오디오 검색 모듈은 더 작은 오디오 그룹들/서브스트림들을 멀티플 코어들로 다이나믹하게 스케줄링하고, 멀티플 코어는 각 그룹/서브스트림을 세그먼트들로 파티셔닝하며, 병렬로 각각 오디오 세그먼트에 대한 모델을 확립한다. 각각의 세그먼트의 크기는 타겟 오디오 클립의 크기와 동일할 수 있다. 타겟 오디오 클립 및 오디오 데이터베이스/스트림을 모두 포함하는 모든 오디오 세 그먼트들에 공통인 복수의 가우시안 컴포넌트들을 구비하는 가우시안 혼합 모델("GMM")은 각 오디오 세그먼트 및 타겟 오디오 클립을 모델링하는데 이용될 수 있다. 일단 오디오 세그먼트에 대한 모델이 확립되면, 쿨백-라이블러("KL") 또는 KL-최대 거리는 세그먼트 모델과 타겟 오디오 클립 모델 사이에 계산될 수 있다. 거리가 사전결정된 값보다 크지 않은 경우, 오디오 세그먼트는 타겟 오디오 클립으로서 식별된다. 검색 프로세스는 모든 오디오 그룹/서브스트림들이 처리될 때까지 계속될 수 있다.
도 4는 강건한 오디오 검색을 수행하는 예시적인 오디오 검색 모듈(400)의 블록도이다. 오디오 검색 모듈(400)은 특징 추출기(410), 모델링 메커니즘(420) 및 의사 결정기(430)를 포함할 수 있다. 특징 추출기(410)는 입력 오디오 스트림(예를 들면, 타겟 오디오 클립, 큰 오디오 스트림의 서브 스트림, 등)을 수신하고, 입력 오디오 스트림으로부터 음향 특징을 추출할 수 있다. 입력 오디오 스트림이 타겟 오디오 클립에 대해 검색될 오디오 스트림인 경우, 특징 추출기는 오디오 스트림에 대해 슬라이딩 윈도우를 적용하여 이를 멀티플의 중첩된 세그먼트들로 파티셔닝할 수 있다. 윈도우는 타겟 오디오 클립과 동일한 길이를 가지고 있다. 입력 오디오 스트림의 각 세그먼트(타겟 오디오 스트림은 단지 하나의 세그먼트를 가지고 있다)는 프레임들로 더 분리된다. 각 프레임은 동일한 길이를 가지고 있고 그 이웃하는 프레임들과 중첩될 수 있다. 예를 들면, 하나의 실시예에서, 하나의 프레임은 그 길이가 20밀리초이고 프레임들간 중첩은 10밀리초일 수 있다. 특징 벡터는 각 프레임에 대해 추출될 수 있고, 이는 푸리에 계수, MFCC(Mel-Frequency cepstral coefficient), 스펙트럼 평탄도, 및 평균, 분산, 그 이외 미분과 같은 특징들을 포함한다. 오디오 세그먼트의 모든 프레임으로부터의 특징 벡터들은 특징 벡터 시퀀스를 형성한다.
2개의 인접하는 세그먼트들 간의 중첩은 2개의 인접하는 세그먼트들 사이에서 임의의 타겟 오디오 클립을 누락(missing)시킬 가능성을 감소시키는 것이다. 중첩이 더 길수록, 누락의 가능성이 더 작아진다. 하나의 실시예에서, 중첩은 세그먼트의 길이 - 하나의 프레임의 길이와 동일하므로, 임의의 매치를 누락시키는 것을 방지할 수 있다. 그러나, 더 긴 중첩은 더 많은 계산을 의미한다. 그러므로, 계산 부하와 누락의 가능성의 사이에 균형이 있어야 한다(예를 들면, 중첩은 세그먼트 길이의 1/2 보다 작거나 같다). 어느 경우든, 2개의 세그먼트들 사이에서 중첩되는 프레임들에 대한 특징 벡터들은 단지 한번만 추출되는 것이 필요하다.
모델링 메커니즘(420)은 특징 추출기(410)에 의해 추출된 그 특징 벡터 시퀀스에 기초하여 오디오 세그먼트에 대한 모델을 확립할 수 있다. 어떤 모델이 이용되는지에 따라, 모델링 메커니즘은 그 모델에 대한 파라미터를 추정할 것이다. 하나의 실시예에서, 공통 컴포넌트 가우시안 혼합 모델("CCGMM")은 오디오 세그먼트를 모델링하는데 이용될 수 있다. CCGMM은 모든 세그먼트들에 걸쳐 공통인 멀티플 가우시안 컴포넌트들을 포함한다. 각 세그먼트에 대해, 모델링 메커니즘은 공통 가우시안 컴포넌트들에 대해 특정 세트의 혼합 가중(mixture weights)을 추정한다. 또 하나의 실시에에서, 다른 모델들(예를 들면, 숨겨진 마코브 모델(hidden Markov model))이 오디오 세그먼트를 모델링하는데 이용될 수 있다. 하나의 실시예에서, 단지 타겟 오디오 클립만이 모델링되고, 오디오 세그먼트의 특징 벡터 시퀀스는 오디오 세그먼트가 타겟 오디오 클립과 실질적으로 동일한지 여부를 결정하는데 직접적으로 이용될 수 있다.
의사 결정기(decision maker)(430)는 오디오 세그먼트가 타겟 오디오 클립의 복사본으로서 식별될 수 있도록 입력 오디오 스트림의 오디오 세그먼트가 충분히 유사한지 여부를 결정할 수 있다. 이러한 목적을 달성하기 위해, 의사 결정기는 오디오 세그먼트의 모델과 타겟 오디오 클립의 모델을 비교함으로써 유사성 측정을 도출할 수 있다. 하나의 실시예에서, 유사성 측정은 2개의 모델들 사이에서 계산된 거리일 수 있다. 또 하나의 실시예에서, 유사성 측정은 오디오 세그먼트 모델이 타겟 오디오 클립 모델과 동일할 확률일 수 있다. 또 다른 하나의 실시예에서, 유사성 측정은 오디오 세그먼트의 특징 벡터 시퀀스와 타겟 오디오 클립의 모델을 비교함으로써 도출될 수 있다. 예를 들면, 숨겨진 마코브 모델("HMM")이 타겟 오디오 클립을 모델링하는데 이용되는 경우, 비터비(Viterbi) 기반 알고리즘은 오디오 세그먼트의 특징 벡터 시퀀스 및 타겟 오디오 클립의 HMM에 기초하여, 오디오 세그먼트와 타겟 오디오 클립간의 가능성 스코어(likelihood score)를 계산하는데 이용될 수 있다.
유사성 측정값에 기초하여, 의사 결정기는 오디오 세그먼트가 타겟 오디오 클립으로서 식별될 수 있는지 여부를 결정할 수 있다. 예를 들면, 유사성 측정값이 사전결정된 임계치보다 크지 않은 경우(예를 들면, 유사성 측정은 오디오 세그먼트 모델과 타겟 오디오 클립간의 거리이다), 오디오 세그먼트는 타겟 오디오 클 럽과 실질적으로 동일한 것으로 식별될 수 있다. 유사하게, 오디오 세그먼트는, 유사성 측정값이 사전결정된 임계치보다 작지 않은 경우에 타겟 오디오 클립과 실질적으로 동일한 것으로서 식별될 수 있다(예를 들면, 유사성 측정은 오디오 세그먼트가 타겟 오디오 클립과 실질적으로 동일한 가능성 스코어이다). 반면에, 오디오 세그먼트가 유사성 측정에 기초하여 타겟 오디오 클립과 실질적으로 상이한 것으로 발견되는 경우, 오디오 세그먼트를 바로 뒤따르는 특정 개수의 세그먼트들이 스킵될 수 있다. 스킵될 실제 세그먼트 개수는 유사성 측정값 및/또는 경험적 데이터에 의존할 것이다. 다수의 이어지는 세그먼트들을 스킵함으로써, 입력 오디오 스트림을 세그먼트들로 파티셔닝하는데 이용되는 윈도우는 점진적으로 앞쪽 방향으로 슬라이딩하기 때문에, 유사성 측정은, 현재 세그먼트가 타겟 오디오 클립과 그렇게 상이하다는 것을 나타내는 경우에, 임의의 타겟 오디오 클립을 누락시킬 것 같지 않고, 결과적으로 하나의 세그먼트에서 다음으로의 유사성 측정의 연속성이 있다.
도 5는 도 4에 도시된 강건한 오디오 검색 모듈이 동작하는 방법을 예시하는 예이다. 타겟 오디오 클립(510)은 그것을 프레임들로 세그먼팅하고, 블록 530A에서 프레임당 하나의 특징 벡터로 특징 벡터 시퀀스(540)를 생성하는 특징 추출기에 의해 수신된다. 특징 벡터는 하나 이상의 파라미터들을 포함할 수 있으므로, x 차원 벡터(여기에서, x>=1)일 수 있다. 블록 570A에서, 특징 벡터 시퀀스(540)는 아래에 도시된 바와 같이 GMM을 이용하여 모델링될 수 있다.
Figure 112009000074510-pct00001
GMM, P(k)(x)는 컴포넌트 가중 Wi (k), 평균 μi (k), 및 공분산 Σi (k)를 갖는 M 가우시안 컴포넌트를 포함하고, i =1, 2, ..., M이며, 여기에서 k는 세그먼트 k를 나타내고 N()은 가우시안 분포를 나타낸다. 타겟 오디오 클립에 대해, 단지 하나의 세그먼트가 있고, 따라서 세그먼트를 식별하는데 k를 이용할 필요가 없다. 그러나, 입력 오디오 스트림(520)에 대해, 통상 하나 이상의 세그먼트가 있고, 따라서 상이한 세그먼트에 대해 GMM을 식별하는 것이 바람직하다.
도 5에 도시된 예에서, 쿨백-라이블러(KL) 또는 KL-최대 거리는 유사성 측정으로 이용된다. KL-최대 거리 계산을 단순화시키기 위해, 모든 오디오 세그먼트들에 이용되는 GMM들은 공통 세트의 가우시안 컴포넌트들을 공유한다, 즉 i번째 가우시안 컴포넌트에 대해, 평균(μi) 및 분산(Σi)은 상이한 오디오 세그먼트에 걸쳐 동일하다고 가정된다. 결과적으로, 수학식 1은 이하와 같이 된다.
Figure 112009000074510-pct00002
각 오디오 세그먼트에 대해, 단지 가중 세트 Wi (k)(i=1, 2, ..., M)만이 공통 가우시안 컴포넌트에 대해 추정될 필요가 있다. 세그먼트 k에 대한, 특징 벡터 시퀀스가 T개의 특징 벡터 xi(t=1, 2, ..., T)를 갖는 것으로 주어지는 경우, 가중은 이하와 같이 추정될 수 있다.
Figure 112009000074510-pct00003
wi (u) 또는 wf (u)는 i번째 또는 j번째 세그먼트에 대한 범용 가중(universal weight)이고, 이는 일부 샘플 오디오 파일들에 기초한 실험들에 의해 얻어지거나 랜덤 값으로 초기화될 수 있다.
타겟 오디오 클립(510)에 대해 검색될 입력 오디오 스트림(520)은 특징 추출기에 의해 수신될 수 있다. 블록 530B에서, 특징 추출기는 입력 오디오 스트림을 부분적으로 중첩된 세그먼트로 파티셔닝한다. 각 세그먼트에 대해, 특징 추출기는 세그먼트를 멀티플의 부분적으로 중첩된 프레임들로 더 파티셔닝하고, 각 프레임으로부터 특징 벡터를 추출한다. 블록 560은 입력 오디오 스트림(520)에 대한 특징 벡터 시퀀스를 도시하고 있고, 또한 오디오 스트림이 부분적으로 중첩된 세그먼트들로 파티셔닝되는 방법을 예시하고 있다. 예를 들면, 타겟 오디오 클립의 길이와 동일한 크기를 갖는 윈도우는 입력 오디오 스트림(520)에 적용될 수 있다. 예시의 목적상, 단지 하나의 세그먼트만이 있으므로 통상 윈도우를 타겟 오디오 크립에 적용할 필요가 없지만, 세그먼트 560A를 얻기 위해, 타겟 오디오 클립의 특징 벡터 시퀀스에 대한 윈도우가 도시되어 있다. 시프팅하는 윈도우를 시프팅하는 것이 입 력 오디오 스트림에 적용되어 560B 및 560C와 같은 멀티플의 부분적으로 중첩된 세그먼트를 얻는다. 윈도우는 세그먼트(560B)에서 세그먼트(560C)로 시간 τ만큼 시프팅하고, 여기에서 τ는 윈도우 크기보다는 작다.
각각 오디오 세그먼트는 CCGMM을 이용하여 모델링되고, 예를 들면 세그먼트(560B)는 블록 570B에서 모델링되며 세그먼트(560C)는 블록 570C에서 모델링된다. 입력 오디오 스트림(520)의 각 세그먼트 및 타겟 오디오 클립(510)에 대한 모델들은 상이한 가중 세트를 갖는 공통 가우시안 컴포넌트들을 갖는다. 하나의 실시예에서, 특징 벡터들은 전체 입력 오디오 스트림으로부터 프레임별로 추출되어 전체 입력 오디오 스트림에 대한 긴 특징 벡터 시퀀스를 생성한다. 길이가 N x FL(N은 양의 정수이고 FL은 프레임 길이이다)을 갖는 윈도우는 긴 특징 벡터 시퀀스에 후속적으로 적용된다. 윈도우 내의 특징 벡터들은 CCGMM을 확립하는데 이용되는, 오디오 세그먼트에 대한 특징 벡터로 구성된다. 윈도우는 τ시간만큼 순방향으로 시프팅한다.
하나의 세그먼트가 타겟 오디오 클립과 실질적으로 동일한 지를 결정하기 위해, KL-최대 거리는 이하와 같이 세그먼트의 모델과 타겟 오디오 클립 사이에 계산될 수 있다.
Figure 112009000074510-pct00004
그렇게 계산된 KL-최대 거리가 사젼결정된 임계치 이하인 경우, 오디오 클립은 검 출될 것으로 간주될 수 있다. 입력 오디오 스트림(520)에 적용된 윈도우가 시간상 순방향으로 시프트함에 따라, 거리는 통상 하나의 시간-스텝에서 다음으로 특정 연속성을 보여준다. 다른 말로, 거리가 너무 크면, 현재 세그먼트를 바로 뒤따르는 하나 이상의 세그먼트들이 타겟 오디오 클립과 매칭될 가능성이 낮다. 따라서, 거리 값에 따라, 동일한 오디오 스트림/서브스트림의 바로 뒤따르는 세그먼트들의 특정 개수가 검색으로부터 스킵될 수 있다.
도 6은 멀티프로세서 시스템에서 강건하고 병렬인 오디오 검색을 수행하는 예시적인 오디오 검색 모듈(600)의 블록도이다. 오디오 검색 모듈(600)은 파티셔닝 메커니즘(610), 스케줄러(620), I/O 최적화기(630), 및 복수의 오디오 검색기들(예를 들면, 640A, ..., 640N)을 포함한다. 파티셔닝 메커니즘(610)은 큰 오디오 스트림을 멀티플의 더 작은 서브스트림들로, 및/또는 큰 오디오 데이터베이스를 멀티플의 더 작은 그룹으로 파티셔닝할 수 있다. 도 7A, 7B 및 7C는 멀티프로세서 시스템에서 강건하고 병렬인 오디오 검색을 위해 큰 오디오 데이터베이스를 더 작은 그룹으로 파티셔닝하는 방법을 예시하고 있다. 도 7A는 하나의 큰 오디오 스트림(710)을 포함하는 데이터베이스의 예를 도시하고 있다. 파티셔닝 메커니즘은 오디오 스트림(710)을 712, 714 및 716과 같은 멀티플의 더 작은 서브스트림으로 파티셔닝하고, 각 서브스트림은 그룹을 구성한다. 서브스트림들의 길이는 서로 다를 수 있지만, 간단화를 위해 통상 일정하다. 타겟 오디오 클립의 임의의 정확한 검출을 누락하는 것을 피하기 위해, 각 서브스트림은 그 바로 뒤따르는 서브스트림과 중첩하고, 2개의 인접하는 서브스트림들(예를 들면, 712와 714, 714와 716) 사이의 중첩은 FNClip-1보다 길거나 같아야 한고, FNClip는 타겟 오디오 클립에서 프레임들의 전체 개수이다.
도 7B는 멀티플의 비교적 작은 오디오 스트림들(예를 들면, 720, 725, 730, 735 및 740)을 포함하는 또 하나의 예시적인 데이터베이스를 도시하고 있다. 하나의 실시예에서, 파티셔닝 메커니즘(610)은 데이터베이스를 멀티플의 더 작은 그룹으로 파티셔닝하고 각 그룹은 단지 하나의 오디오 스트림으로 구성된다. 또 하나의 실시예에서, 파티셔닝 메커니즘은 도 7B에 예시된 바와 같이, 데이터베이스를, 각각이 단지 하나의 오디오 스트림으로 구성된 일부 그룹, 및 각각이 하나보다 많은 작은 오디오 스트림으로 구성된 다른 그룹을 구비하는 멀티플의 더 작은 그룹들로 파티셔닝할 수 있다. 도 7C는 일부 큰 오디오 스트림(예를 들면, 770)뿐만 아니라 일부 비교적 작은 오디오 스트림들(예를 들면, 750, 755 및 760)을 포함하는 또 다른 실시예의 데이터베이스를 도시하고 있다. 파티셔닝 메커니즘은 이들 비교적 작은 오디오 스트림을 그룹들에 입력할 수 있고, 각각의 그룹은 단지 하나의 오디오 스트림으로 구성되거나, 또는 일부 그룹은 단지 하나의 오디오 스트림(예를 들면, 750)으로 구성되는 한편, 나머지 그룹들은 하나보다 많은 작은 오디오 스트림들(예를 들어, 755 및 760이 함께 그룹화될 수 있음)로 구성된다. 770과 같은 큰 오디오 스트림에 대해, 파티셔닝 메커니즘은 도 7A에 예시된 방법을 이용하여, 큰 오디오 스트림을, 하나의 그룹을 구성하는 각 서브스트림을 구비하는 복수의 부분적으로 중첩된 더 작은 서브스트림들(예를 들면, 712 및 714)로 파티셔닝할 수 있다.
추가적으로, 파티셔닝 메커니즘은 큰 오디오 데이터베이스를 적절한 크기를 갖는 그룹들로 파티셔닝하여, (큰 오디오 스트림이 복수의 중첩된 더 작은 서브스트림들로 파티셔닝되는 상황에서의) 중첩된 계산, 및 멀티플 프로세서에 의한 병렬 처리에서의 부하 불균형을 감소시킨다. 더 작은 그룹 크기는 결과적으로 큰 중첩된 계산이 되는 한편, 더 큰 그룹 크기는 결과적으로 상당한 부하 불균형이 초래될 수 있다. 하나의 실시예에서, 그룹 크기는 타겟 오디오 클립의 크기의 약 25배일 수 있다.
다시 도 6으로 돌아가면, 스케줄러(620)는 큰 데이터베이스의 멀티플 그룹들을, 각각의 프로세서가 한번에 하나의 그룹을 처리하는, 멀티프로세서 시스템의 멀티플 프로세서로 다이나믹하게 스케줄링한다. 스케줄러는 시스템의 프로세서들의 가용성을 주기적으로 체크하고 각 가용한 프로세서에 대해 오디오 그룹을 할당하여 타겟 오디오 클립을 처리하고 검색한다. 또 하나의 프로세서가 나중에 가용하게 되는 경우, 스케줄러는 하나의 그룹을 이 프로세서에 할당할 수 있다. 스케줄러는 또한 다른 프로세서들이 그 검색을 종료하는지 여부에 관계없이 그 이전에 할당된 그룹을 검색한 것을 종료한 직후에, 미검색된 오디오 그룹을 프로세서에 할당한다. 사실상, 동일한 크기를 갖는 그룹들에 대해서도, 동일한 타겟 오디오 클립을 검색하는 것은, 스킵될 세그먼트의 개수가 세그먼트에 따라 상이하므로, 상이한 프로세서들에 대해 상이한 시간 양이 소요될 수 있다. 상기 설명된 바와 같은 다이나믹 스케줄링을 이용하는 것은 부하 불균형을 효율적으로 더 감소시킬 수 있다.
I/O 최적화기(630)는 시스템 상호접속(예를 들면, 공유 시스템 메모리와 시 스템의 프로세서를 접속시키는 시스템 버스) 상의 I/O 트래픽을 최적화시킬 수 있다. I/O 최적화기는 각 프로세서에 대한 데이터 범위가 정의되고 있는 동안 처음에는 검색될 전체 오디오 데이터베이스를 디스크로부터 메모리에 로딩하지 않도록 결정할 수 있다. 추가적으로, I/O 최적화기는 각 프로세서가 단지 그 할당된 세그먼트의 일부만을 메모리로부터 한번에 판독하도록 할 수 있다. I/O 트래픽을 최적화함으로써, I/O 최적화기는 I/O 경합(contention)을 감소시키고, I/O 동작(operation)의 중첩 및 계산을 구현하며, 계산 효율을 개선한다. 결과적으로, 오디오 검색의 확장성(scalability)이 상당히 개선될 수 있다.
오디오 검색 모듈(600)은 복수의 오디오 검색기들(640A 내지 640N)을 포함하기도 한다. 각각의 오디오 검색기(예를 들면, 640A)는 프로세서 내에 위치되어, 프로세서에 할당된 그룹을 처리하고 타겟 오디오 클립을 검색한다. 도 4에 도시된 오디오 검색 모듈(400)과 유사하게, 오디오 검색기는 특징 추출기(예를 들면, 410), 모델링 메커니즘(예를 들면, 420), 및 의사 결정기(예를 들면, 430)를 포함한다. 각 오디오 검색기는 오디오 그룹의 오디오 스트림들을 타겟 오디오 클립과 동일한 길이를 갖는 부분적으로 중첩된 세그먼트들로 파티셔닝하고, 각각의 세그먼트에 대한 특징 벡터 시퀀스를 추출하며, 수학식 1 내지 4에 예시된 바와 같은 CCGMM을 이용하여 각 세그먼트를 모델링함으로써, 타겟 오디오 클립에 대하여 그것에 할당된 오디오 그룹의 직렬 액티브 검색(serial active search)을 수행한다. 추가적으로, 모든 오디오 검색기들에 의해 이용되는 타겟 오디오 클립에 대한 CCGMM은 오디오 검색기들의 하나에 의해 한번 추정될 필요가 있다. 각 오디오 검 색기는 각 세그먼트에 대한 모델과 타겟 오디오 클립의 모델간의 KL-최대 거리를 계산한다. KL-최대 거리에 기초하여, 오디오 검색기는 타겟 오디오 클립이 검색되는지를 결정할 수 있다. 더구나, 각 오디오 검색기는 현재 세그먼트에 대한 KL-최대 거리가 임계치보다 큰 경우에 현재 세그먼트를 뒤따르는 다수의 세그먼트를 스킵할 수 있다.
도 8은 멀티프로세서 시스템에서 강건하고 병렬인 오디오 검색을 수행하기 위한 예시적인 프로세스(800)를 예시하는 의사코드이다. 라인 802에서, 오디오 검색 모듈이 초기화되고, 예를 들면 타겟 오디오 클립 파일 및 오디오 데이터베이스 파일이 열리고 글로벌 파라미터들이 초기화될 수 있다. 라인 804에서, 큰 오디오 데이터베이스는 도 7A, 7B 및 7C에 예시된 바와 같이 NG 더 작은 그룹들로 파티셔닝될 수 있다. 라인 806에서, 모델(예를 들면, CCGMM)은 타겟 오디오 클립에 대해 확립될 수 있다. 라인 808에서, NG 오디오 그룹들은 가용한 프로세서들에 다이나믹하게 스케줄링될 수 있고, 스케줄링된 그룹의 병렬 처리가 시작될 수 있다. 라인 808은 병렬 구현을 셋업하는 하나의 예시적인 명령을 이용하고, 다른 병렬 구현 명령들도 또한 이용될 수 있다.
라인 810 내지 라인 846은 멀티프로세서 시스템에서 NG 그룹들의 각각이 프로세서에 의해 처리되고 병렬로 타겟에 대해 검색되는 방법을 예시하고 있다. 예시의 목적상, 라인 812 내지 846의 프로세스가 제1 그룹에서 최종 그룹까지의 반복으로 도시되어 있다는 것은 유의할 만하다. 실제적으로, 가용한 수 개의 프로세서들이 있는 경우, 수개의 그룹들은 이들 가용한 프로세서들에 의해 병렬로 처리된 다. 라인 814에서, 그러한 스트림들이 타겟 오디오 클립보다 시간상으로 더 긴 경우에, 각 그룹의 일부 또는 모든 오디오 스트림들은 NS 부분적으로 중첩된 세그먼트들로 더 파티셔닝될 수 있다. 라인 816은 라인 818 내지 832에 도시된, 그룹의 각 세그먼트에 대해 반복적인 프로세스를 시작한다. 라인 820에서, (프레임별) 특징 벡터 시퀀스는 세그먼트로부터 추출될 수 있다. 라인 822에서, 모델(예를 들면, 수학식 1 내지 3에 도시된 바와 같은 CCGMM)은 세그먼트에 대해 확립될 수 있다. 라인 824에서, 세그먼트 모델과 타겟 오디오 클립 모델간의 거리(예를 들면, 수학식 4에 도시된 바와 같은 KL-최대 거리)가 계산될 수 있다. 라인 826에서, 세그먼트가 타겟 오디오 클립과 매칭하는지 여부가 라인 824에서 계산된 거리 및 사전결정된 임계치 #1에 기초하여 결정될 수 있다. 거리가 임계치 #1보다 작은 경우, 세그먼트는 타겟 오디오 클립과 매칭한다. 라인 828에서, 동일한 오디오 스트림/서브스트림의 다수의 뒤따르는 세그먼트들(예를 들면, M 세그먼트들)이 검색으로부터 스킵될 수 있는지 여부는, 라인 824에서 계산된 거리 및 사전결정된 임계치 #2에 기초하여 결정될 수 있다. 거리가 임계치 #2보다 더 큰 경우, M 세그먼트들은 검색으로부터 스킵될 수 있다. 하나의 실시예에서, 스킵될 세그먼트의 개수는 거리의 값에 따라 가변될 수 있다. 라인 830에서, 검색 결과들(예를 들면, 각 그룹에서 매치 세그먼트(match segment)의 인덱스 또는 시작 시간)은 그룹을 처리하는 프로세서에 로컬인 어레이에 저장될 수 있다. 라인 842에서, 모든 프로세서들로부터의 로컬 어레이들로부터의 검색 결과들이 요약되어 사용자에게 출력된다.
I/O 최적화와 같은 다른 기술들과 함께, 도 8에 개략적으로 도시된 강건하고 병렬인 검색 전략을 이용함으로써, 멀티프로세서 시스템에서 큰 오디오 데이터베이스에서의 타겟 오디오 클립에 대한 검색 속도가 상당히 개선될 수 있다. 하나의 실험에 따르면, 27 시간 오디오 스트림에서의 15초 타겟 오디오 클립에 대한 검색 속도는 동일한 타겟 오디오 클립에 대한 동일한 오디오 스트림의 직렬 검색에 비해, 16-웨이 유니시스 시스템(Unisys system)에 대해 11배만큼 증가한다.
하나의 실시예에서, 변형된 검색 전략이 이용될 수 있다. 이러한 전략을 이용하면, 전체 타겟 오디오 클립에 대한 전체 모델(full model)과 함께, 타겟 오디오 클립의 제1 K 프레임(K>=1)에 대한 예비 모델(예를 들면, CCGMM)이 확립될 수 있다. 따라서, 예비 모델(예를 들면, CCGMM)은 처음에 오디오 세그먼트의 제1 K 프레임들(K>=1)에 대해 확립될 수 있다. 액티브 검색 동안에, 각 오디오 세그먼트의 제1 K 프레임의 예비 모델은 우선 타겟 오디오 클립의 제1 K 프레임의 예비 모델과 비교되어 예비 유사성 측정을 생성한다. 예비 유사성 측정은 이들 2개의 예비 모델들이 상당히 유사한 것으로 나타나는 경우, 전체 오디오 세그먼트에 대한 전체 모델이 확립되고 전체 타겟 오디오 클립의 전체 모델과 비교되며, 그렇지 않은 경우, 오디오 세그먼트에 대해 어떠한 전체 모델도 확립되지 않을 것이고, 다음 세그먼트는 그 제1 K 프레임에 대한 예비 모델을 우선 확립하고 이러한 예비 모델과 타겟 오디오 클립의 예비 모델을 비교함으로써 검색될 수 있다. 이러한 변형된 검색 전략은 계산 부하를 더 감소시킬 수 있다.
개시된 발명의 실시예가 도 1-8의 블록도들 및 흐름도들을 참조하여 설명되어 있지만, 본 기술분야의 통상의 기술자라면, 개시된 발명을 구현하는 다수의 다 른 방법들이 대안으로 이용될 수 있다는 것을 잘 알고 있을 것이다. 예를 들면, 흐름도들에서 블록들의 실행 순서는 변경되거나, 및/또는 기재된 블록/흐름도의 일부 블록들이 변경되고, 제거되거나 조합될 수 있다.
상기 설명에서, 개시된 발명의 다양한 양태들이 기재되었다. 설명의 목적상, 특정 개수들, 시스템들 및 구성들이 발명의 완전한 이해를 제공하기 위해 설명되었다. 그러나, 본원에 대해 이익을 갖는 본 기술분야의 기술자에게는, 본 발명은 특정 세부사항들 없이도 실시될 수 있다는 것은 자명하다. 다른 예들에서, 공지된 특징들, 컴포넌트들 또는 모듈들은 개시된 발명을 모호하지 않도록 하기 위해 생략되거나 단순화되거나 조합되거나 분리되었다.
개시된 발명의 다양한 실시예들은 하드웨어, 펌웨어, 소프트웨어 또는 그 조합으로 구현될 수 있고, 명령들, 함수들, 절차들, 데이터 구조들, 로직, 어플리케이션 프로그램들, 시뮬레이션을 위한 디자인 표현들 또는 포맷들, 에뮬레이션, 및 디자인의 제조와 같은 프로그램 코드를 참조하거나 또는 그와 관련하여 기재될 수 있고, 이것은 머신에 의해 액세스되는 경우에, 결과적으로 머신이 태스크를 수행하거나, 추상적인 데이터 타입 또는 저-레벨 하드웨어 컨텍스트들을 정의하거나 결과를 생성하는 것이 초래된다.
시뮬레이션들을 위해, 프로그램 코드는 디자인된 하드웨어가 수행할 것으로 예상되는 방법의 모델을 기본적으로 제공하는 하드웨어 기술 언어(description language) 또는 다른 기능적 기술 언어를 이용하는 하드웨어를 표현할 수 있다. 프로그램 코드는 어셈블리 또는 기계 언어, 또는 컴파일링되거나 해석될 수 있는 데이터일 수 있다. 또한, 본 기술분야에서 소프트웨어를, 액션을 취하거나 결과를 유발하는 하나의 형태 또는 다른 하나의 것으로 말하는 것은 일반적이다. 그러한 표현들은 프로세서가 액션을 수행하거나 결과를 생성하도록 유발하는 처리 시스템에 의한 프로그램 코드의 실행을 언급하는 단지 속기 방식에 불과하다.
프로그램 코드는 예를 들면 저장 디바이스들과 같은 휘발성 및/또는 비휘발성 메모리, 및/또는 머신-액세스가능한 생물학적 상태 보존 저장장치와 같은 더 신형의 매체들뿐만 아니라 고체상태 메모리, 하드 드라이브, 플로피 디스크, 광 저장장치, 테이프, 플래시 메모리, 메모리 스틱, 디지털 비디오 디스크들, DVD들 등을 포함하는 연관된 머신 판독가능한 또는 머신 액세스가능한 매체에 저장될 수 있다. 머신 판독가능한 매체는 머신에 의해 판독가능한 형태로 정보를 저장하고, 송신하거나 수신하기 위한 임의의 메커니즘을 포함할 수 있고, 매체는 안테나들, 광섬유들, 통신 인터페이스들 등과 같이, 전기, 광학, 음향 또는 다른 형태의 전파 신호들 또는 프로그램 코드를 인코딩하는 반송파가 통과할 수 있는 유형의 매체를 포함할 수 있다. 프로그램 코드는 패킷들, 직렬 데이터, 병렬 데이터, 전파 신호들 등의 형태로 송신될 수 있고, 압축되거나 암호화된 포맷으로 이용될 수 있다.
프로그램 코드는 이동형 또는 정지형 컴퓨터들, 개인 휴대 단말기들, 셋탑박스들, 셀룰러 전화기들 및 페이저들 및 다른 전자 디바이스들과 같은 프로그램가능한 머신들을 실행하는 프로그램들로 구현될 수 있고, 각각은 프로세서, 프로세서에 의해 판독가능한 휘발성 및/또는 비휘발성 메모리, 적어도 하나의 입력 디바이스 및/또는 하나 이상의 출력 디바이스를 포함한다. 프로그램 코드는 입력 디바이스 를 이용하여 입력된 데이터에 적용되어, 기재된 실시예들을 수행하고 출력 정보를 생성한다. 출력 정보는 하나 이상의 출력 디바이스에 적용될 수 있다. 본 기술분야의 통상의 기술자라면, 개시된 발명의 실시예들은 멀티프로세서 또는 멀티플-코어 프로세서 시스템들, 미니컴퓨터들, 메인프레임 컴퓨터들 뿐만 아니라 가상의 임의의 디바이스에 내장되는 퍼베이시브 또는 소형 컴퓨터 또는 프로세서들을 포함하는, 다양한 컴퓨터 시스템 구성들로 실시될 수 있다는 것을 잘 알고 있을 것이다. 개시된 발명의 실시예들은, 통신 네트워크를 통해 링크되는 원격 처리 디바이스에 의해 태스크들이 수행되는 분산된 컴퓨팅 환경에서 실시될 수도 있다.
동작들이 순차적인 프로세스로서 기재되어 있지만, 일부 동작들은 실제로 병렬로, 동시에 및/또는 분산된 환경에서 수행될 수 있고, 단일 또는 멀티-프로세서 머신들에 의한 액세스를 위한 프로그램 코드는 로컬로 또는 원격으로 저장된다. 뿐만 아니라, 일부 실시예들에서, 본 개시된 발명의 사상에서 벗어나지 않고서도, 동작들의 순서들이 재배열될 수 있다. 프로그램 코드는 내장된 컨트롤러들에 의해 또는 그와 관련하여 이용될 수 있다.
개시된 발명이 예시된 실시예들을 참조하여 기재되었지만, 이러한 설명은 제한된 의미로 파악되도록 하려는 것이 아니다. 개시된 발명이 관련된 본 기술분야의 기술자에게 명백한, 예시적 실시예들의 다양한 변형들뿐만 아니라 발명의 다른 실시예들도 개시된 발명의 범주 내에 든다고 할 것이다.

Claims (30)

  1. 멀티프로세서 시스템에서 타겟 오디오 클립에 대한 오디오 데이터베이스를 검색하기 위한 방법으로서,
    상기 오디오 데이터베이스를 복수의 그룹들로 파티셔닝하는 단계;
    상기 타겟 오디오 클립에 대한 모델을 확립하는 단계;
    상기 복수의 그룹들을 상기 멀티프로세서 시스템의 복수의 프로세서들에 다이나믹하게 스케줄링하는 단계; 및
    상기 타겟 오디오 클립을 검색하기 위해 상기 복수의 프로세서들에 의해 상기 스케줄링된 그룹들을 병렬로 처리하는 단계
    를 포함하고,
    상기 스케줄링된 그룹들을 병렬로 처리하는 단계는 상기 스케줄링된 그룹들의 각각을 적어도 하나의 세그먼트로 파티셔닝하는 단계를 포함하고, 각각의 세그먼트에 대해,
    (a) 상기 세그먼트에 대해 특징 벡터 시퀀스("FVS")를 추출하는 단계; 및
    (b) 상이한 세그먼트들 및 상기 타겟 오디오 클립에 공통인 복수의 가우시안 컴포넌트를 포함하는 가우시안 혼합 모델(Gaussian Mixture model, "GMM")에 기초하여, 상기 복수의 가우시안 컴포넌트 각각에 대한 혼합 가중들을 추정함으로써 상기 FVS를 모델링하는 단계;
    (c) 상기 세그먼트의 GMM과 상기 타겟 오디오 클립의 GMM간의 쿨백-라이블러(Kullback Leibler, "KL") 거리를 계산하는 단계; 및
    (d) 상기 KL 거리가 사전결정된 임계치보다 작은 경우, 상기 세그먼트가 상기 타겟 오디오 클립과 매칭하는 것으로 결정하고, 상기 KL 거리가 사전결정된 값보다 큰 경우, 다수의 세그먼트들을 처리하는 것을 스킵하는 단계 - 상기 세그먼트들의 개수는 상기 KL 거리의 값에 의존함 -
    를 포함하는 검색 방법.
  2. 제1항에 있어서, 상기 오디오 데이터베이스를 파티셔닝하는 단계는 상기 복수의 그룹들 각각에 대한 크기를 결정하는 단계를 포함하고,
    상기 크기는 상기 복수의 그룹들 간의 중첩된 계산량 및 상기 복수의 그룹들의 병렬 처리에서의 부하 불균형을 감소시키도록 결정되는 검색 방법.
  3. 제1항에 있어서, 상기 타겟 오디오 클립에 대한 모델을 확립하는 단계는 상기 타겟 오디오 클립으로부터 FVS를 추출하는 단계, 및 복수의 가우시안 컴포넌트를 포함하는 GMM에 기초하여 상기 타겟 오디오 클립으로부터 상기 FVS를 모델링하는 단계를 포함하는 검색 방법.
  4. 제3항에 있어서, 상기 타겟 오디오 클립으로부터 상기 FVS를 모델링하는 단계는, 상기 복수의 가우시안 컴포넌트들 각각에 대한 혼합 가중들을 추정하는 단계를 포함하는 검색 방법.
  5. 삭제
  6. 제1항에 있어서, 상기 적어도 하나의 세그먼트 각각은 상기 타겟 오디오 클립과 시간상으로 동일한 길이를 갖는 검색 방법.
  7. 멀티프로세서 시스템에서 타겟 오디오 클립에 대한 오디오 데이터베이스를 검색하기 위한 방법으로서,
    상기 오디오 데이터베이스를 복수의 그룹들로 파티셔닝하는 단계;
    상기 타겟 오디오 클립에 대한 모델을 확립하는 단계;
    상기 복수의 그룹들을 상기 멀티프로세서 시스템의 복수의 프로세서들에 다이나믹하게 스케줄링하는 단계;
    상기 스케줄링된 그룹들의 각각을 적어도 하나의 세그먼트로 파티셔닝하고, 각각의 세그먼트에 대해 (ⅰ) 상기 세그먼트에 대한 특징 벡터 시퀀스를 추출하는 단계, 및 (ⅱ) 복수의 가우시안 컴포넌트들을 포함하는 가우시안 혼합 모델("GMM")에 기초하여 상기 특징 벡터 시퀀스를 모델링하는 단계; 및
    상기 타겟 오디오 클립을 검색하기 위해 상기 복수의 프로세서들에 의해 상기 스케줄링된 그룹들을 병렬로 처리하는 단계
    를 포함하고,
    오디오 스트림에 하나보다 많은 세그먼트들이 있는 경우, 각각의 세그먼트는 그 세그먼트 바로 앞의 세그먼트와 부분적으로 중첩하는 검색 방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제1항에 있어서, 상기 멀티프로세서 시스템은 상기 복수의 프로세서들에 의해 공유된 메모리를 포함하는 검색 방법.
  13. 멀티프로세서 시스템에서 타겟 오디오 클립에 대한 오디오 데이터베이스를 검색하기 위한 장치로서,
    상기 오디오 데이터베이스를 복수의 그룹들로 파티셔닝하는 파티셔닝 모듈;
    상기 복수의 그룹들을 상기 멀티프로세서 시스템의 복수의 프로세서에 다이나믹하게 스케줄링하는 스케줄러; 및
    상기 타겟 오디오 클립을 검색하기 위해 상기 복수의 프로세서들에 의해 상기 스케줄링된 그룹을 병렬로 처리하는, 상기 복수의 프로세서 각각에 대한 오디오 검색 모듈
    을 포함하고,
    (a) 상기 오디오 검색 모듈들 중 하나는, (ⅰ) 입력 오디오 스트림을 적어도 하나의 세그먼트로 파티셔닝하고, 상기 적어도 하나의 세그먼트 각각으로부터 특징 벡터 시퀀스("FVS")를 추출하는 특징 추출기 - 상기 적어도 하나의 세그먼트는 상기 타겟 오디오 클립과 시간상으로 동일한 길이를 가짐 -; 및 (ⅱ) 모든 세그먼트들 사이에서 공통인 복수의 가우시안 컴포넌트를 포함하는 가우시안 혼합 모델("GMM")에 기초하여 각각의 세그먼트에 대한 상기 FVS를 모델링하는 모델링 모듈을 포함하고,
    (b) 상기 오디오 검색 모듈들 중 하나는 상기 타겟 오디오 클립으로부터 클립 FVS를 추출하고 상기 입력 오디오 스트림의 상기 타겟 오디오 클립 및 세그먼트들에 대해 공통인 복수의 가우시안 컴포넌트를 포함하는 상기 GMM을 이용하여 상기 클립 FVS를 모델링함으로써 상기 타겟 오디오 클립을 처리하고,
    (c) 상기 오디오 검색 모듈들 중 하나는 (ⅰ) 상기 입력 오디오 스트림의 세그먼트의 GMM과 상기 타겟 오디오 클립의 GMM간의 쿨백-라이블러("KL") 거리를 계산하고, (ⅱ) 상기 KL 거리에 기초하여 상기 세그먼트가 상기 타겟 오디오 클립과 매칭하는지 여부를 결정하고, (ⅲ) 상기 KL 거리에 기초한 처리로부터 얼마나 많은 세그먼트들이 스킵될 것인지를 결정하는 의사 결정기를 포함하는 검색 장치.
  14. 제13항에 있어서, 상기 파티셔닝 모듈은 상기 복수의 그룹들 각각에 대한 크기를 더 결정하고, 상기 크기는 상기 복수의 그룹들 간의 중첩된 계산량 및 상기 복수의 그룹들의 병렬 처리에서의 부하 불균형을 감소시키도록 결정되는 검색 장치.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 멀티프로세서 플랫폼에 의해 실행될 때, 상기 멀티프로세서 플랫폼이 동작들을 수행하게 하는 명령들을 포함하는 머신-판독가능한 매체를 포함하는 물품으로서,
    상기 동작들은,
    오디오 데이터베이스를 복수의 그룹들로 파티셔닝하는 단계;
    타겟 오디오 클립에 대한 모델을 확립하는 단계;
    상기 복수의 그룹들을 멀티프로세서 시스템의 복수의 프로세서들에 다이나믹하게 스케줄링하는 단계; 및
    상기 타겟 오디오 클립을 검색하기 위해 상기 복수의 프로세서들에 의해 상기 스케줄링된 그룹들을 병렬로 처리하는 단계
    를 포함하고,
    상기 스케줄링된 그룹들을 병렬로 처리하는 단계는 상기 스케줄링된 그룹들의 각각을 적어도 하나의 세그먼트로 파티셔닝하는 단계를 포함하고, 각각의 세그먼트에 대해,
    (a) 상기 세그먼트에 대해 특징 벡터 시퀀스("FVS")를 추출하는 단계;
    (b) 상이한 세그먼트들 및 상기 타겟 오디오 클립에 공통인 복수의 가우시안 컴포넌트를 포함하는 가우시안 혼합 모델("GMM")에 기초하여, 상기 복수의 가우시안 컴포넌트 각각의 혼합 가중들을 추정함으로써 상기 FVS를 모델링하는 단계;
    (c) 상기 세그먼트의 GMM과 상기 타겟 오디오 클립의 GMM간의 쿨백-라이블러(Kullback Leibler, "KL") 거리를 계산하는 단계; 및
    (d) 상기 KL 거리가 사전결정된 임계치보다 작은 경우, 상기 세그먼트가 상기 타겟 오디오 클립과 매칭하는 것으로 결정하고, 상기 KL 거리가 사전결정된 값보다 큰 경우, 다수의 세그먼트들을 처리하는 것을 스킵하는 단계 - 상기 세그먼트들의 개수는 상기 KL 거리의 값에 의존함 -
    를 포함하는 물품.
  20. 제19항에 있어서, 상기 오디오 데이터베이스를 파티셔닝하는 단계는 상기 복수의 그룹들 각각에 대한 크기를 결정하는 단계를 포함하고,
    상기 크기는 상기 복수의 그룹들 간의 중첩된 계산량 및 상기 복수의 그룹들의 병렬 처리에서의 부하 불균형을 감소시키도록 결정되는 물품.
  21. 제19항에 있어서, 상기 타겟 오디오 클립에 대한 모델을 확립하는 단계는 상기 타겟 오디오 클립으로부터 FVS를 추출하는 단계, 및 복수의 가우시안 컴포넌트를 포함하는 GMM에 기초하여 상기 타겟 오디오 클립으로부터 상기 FVS를 모델링하는 단계를 포함하는 물품.
  22. 제21항에 있어서, 상기 타겟 오디오 클립으로부터 상기 FVS를 모델링하는 단계는, 상기 복수의 가우시안 컴포넌트들 각각에 대한 혼합 가중들을 추정하는 단계를 포함하는 물품.
  23. 삭제
  24. 제19항에 있어서, 상기 적어도 하나의 세그먼트 각각은 상기 타겟 오디오 클립과 시간상으로 동일한 길이를 갖는 물품.
  25. 멀티프로세서 플랫폼에 의해 실행될 때, 상기 멀티프로세서 플랫폼이 동작들을 수행하게 하는 명령들을 포함하는 머신-판독가능한 매체를 포함하는 물품으로서,
    상기 동작들은,
    오디오 데이터베이스를 복수의 그룹들로 파티셔닝하는 단계;
    타겟 오디오 클립에 대한 모델을 확립하는 단계;
    상기 복수의 그룹들을 상기 멀티프로세서 시스템의 복수의 프로세서들에 다이나믹하게 스케줄링하는 단계; 및
    상기 타겟 오디오 클립을 검색하기 위해 상기 복수의 프로세서들에 의해 상기 스케줄링된 그룹들을 병렬로 처리하는 단계
    를 포함하며,
    상기 스케줄링된 그룹들을 병렬로 처리하는 단계는 상기 스케줄링된 그룹들의 각각을 적어도 하나의 세그먼트로 파티셔닝하는 단계를 포함하고, 각각의 세그먼트에 대해, (a) 상기 세그먼트에 대한 특징 벡터 시퀀스("FVS")를 추출하는 단계, 및 (b) 복수의 가우시안 컴포넌트들을 포함하는 가우시안 혼합 모델("GMM")에 기초하여 상기 FVS를 모델링하는 단계를 포함하고,
    오디오 스트림에 하나보다 많은 세그먼트들이 있는 경우, 각각의 세그먼트는 그 세그먼트 바로 앞의 세그먼트와 부분적으로 중첩하는 물품.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 제19항에 있어서, 상기 멀티프로세서 시스템은 상기 복수의 프로세서들에 의해 공유된 메모리를 포함하는 물품.
KR1020097000034A 2006-07-03 2006-07-03 고속 오디오 검색을 위한 방법 및 장치 KR101071017B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020097000034A KR101071017B1 (ko) 2006-07-03 2006-07-03 고속 오디오 검색을 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020097000034A KR101071017B1 (ko) 2006-07-03 2006-07-03 고속 오디오 검색을 위한 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020107029141A Division KR101071043B1 (ko) 2006-07-03 2006-07-03 고속 오디오 검색을 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090018197A KR20090018197A (ko) 2009-02-19
KR101071017B1 true KR101071017B1 (ko) 2011-10-06

Family

ID=40686521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097000034A KR101071017B1 (ko) 2006-07-03 2006-07-03 고속 오디오 검색을 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101071017B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101483684B1 (ko) * 2009-12-21 2015-01-16 한국전자통신연구원 오디오 데이터 분석 기반 음란성 콘텐츠 분석 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129038A1 (en) 2000-12-18 2002-09-12 Cunningham Scott Woodroofe Gaussian mixture models in a data mining system
US20040002935A1 (en) 2002-06-27 2004-01-01 Hagai Attias Searching multi-media databases using multi-media queries

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129038A1 (en) 2000-12-18 2002-09-12 Cunningham Scott Woodroofe Gaussian mixture models in a data mining system
US20040002935A1 (en) 2002-06-27 2004-01-01 Hagai Attias Searching multi-media databases using multi-media queries

Also Published As

Publication number Publication date
KR20090018197A (ko) 2009-02-19

Similar Documents

Publication Publication Date Title
KR101071043B1 (ko) 고속 오디오 검색을 위한 방법 및 장치
CN109905772B (zh) 视频片段查询方法、装置、计算机设备及存储介质
US11210470B2 (en) Automatic text segmentation based on relevant context
US7945552B2 (en) System of effectively searching text for keyword, and method thereof
US10909442B1 (en) Neural network-based artificial intelligence system for content-based recommendations using multi-perspective learned descriptors
US20140212106A1 (en) Music soundtrack recommendation engine for videos
Le et al. NII-HITACHI-UIT at TRECVID 2016.
Srikanthan et al. Implementing the dynamic time warping algorithm in multithreaded environments for real time and unsupervised pattern discovery
US11854536B2 (en) Keyword spotting apparatus, method, and computer-readable recording medium thereof
JP2022109867A (ja) 話者識別を結合した話者ダイアライゼーション方法、システム、およびコンピュータプログラム
Xu et al. CHA: A caching framework for home-based voice assistant systems
US20230273828A1 (en) System and method for using sparsity to accelerate deep learning networks
KR101071017B1 (ko) 고속 오디오 검색을 위한 방법 및 장치
Moerchen et al. Personalizing natural language understanding using multi-armed bandits and implicit feedback
Friedland et al. Parallelizing speaker-attributed speech recognition for meeting browsing
CN116524915A (zh) 一种基于语义交互的弱监督语音-视频定位方法和系统
KR20210009903A (ko) 질의 응답 방법 및 이를 수행하는 장치들
CN102456077B (zh) 用于快速音频搜索的方法和设备
JP5210440B2 (ja) 高速音声検索のための方法、プログラムおよび装置
US20220147570A1 (en) Information processing apparatus and information processing method
JP5755603B2 (ja) 言語モデル作成装置、言語モデル作成方法、プログラム
KR102091481B1 (ko) 동적 신경망 학습 방법 및 이를 수행하는 동적 신경망 학습 장치
KR20240072396A (ko) 가명처리기법 추천 인공지능 알고리즘
Liu et al. Speech recognition systems on the Cell Broadband Engine processor
Kothawade et al. Retrieving instructional video content from speech and text information

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140829

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 8