KR101561755B1 - 데이터 내의 공통 엘리먼트들의 자율적 검출 및 분리를 위한 시스템, 및 그와 연관된 방법 및 디바이스 - Google Patents

데이터 내의 공통 엘리먼트들의 자율적 검출 및 분리를 위한 시스템, 및 그와 연관된 방법 및 디바이스 Download PDF

Info

Publication number
KR101561755B1
KR101561755B1 KR1020137026357A KR20137026357A KR101561755B1 KR 101561755 B1 KR101561755 B1 KR 101561755B1 KR 1020137026357 A KR1020137026357 A KR 1020137026357A KR 20137026357 A KR20137026357 A KR 20137026357A KR 101561755 B1 KR101561755 B1 KR 101561755B1
Authority
KR
South Korea
Prior art keywords
data
fingerprints
data set
fingerprint
elements
Prior art date
Application number
KR1020137026357A
Other languages
English (en)
Other versions
KR20130140851A (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
Priority claimed from US13/039,554 external-priority patent/US8462984B2/en
Application filed by 사이퍼 엘엘씨 filed Critical 사이퍼 엘엘씨
Publication of KR20130140851A publication Critical patent/KR20130140851A/ko
Application granted granted Critical
Publication of KR101561755B1 publication Critical patent/KR101561755B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames

Abstract

공통 피처들을 갖는 데이터 세트 내에서 데이터 엘리먼트들을 식별하고, 이러한 공통 피처들을 공유하지 않는 다른 데이터 엘리먼트들로부터 이들 데이터 엘리먼트들을 분리하기 위한 데이터 해석 및 분리 시스템. 데이터 세트 내의 변화의 방법 및/또는 레이트들에 대한 공통성은 어느 엘리먼트들이 공통 피처들을 공유하는지를 결정하는데 사용될 수도 있다. 공통성들을 결정하는 것은 데이터 세트 내의 데이터 엘리먼트들을 참조함으로써 자동으로 수행될 수도 있고, 알고리즘의 또는 미리결정된 정의들에 대해 매칭될 필요는 없다. 해석 및 분리된 데이터는 단지 분리된 데이터를 포함하는 출력을 재구성하는데 사용될 수도 있다. 해석 및 분리된 데이터는 또한, 특정 소스와 연관된 기존의 엘리먼트 세트들을 소급적으로 구축하는데 사용될 수도 있다.

Description

데이터 내의 공통 엘리먼트들의 자율적 검출 및 분리를 위한 시스템, 및 그와 연관된 방법 및 디바이스 {SYSTEM FOR AUTONOMOUS DETECTION AND SEPARATION OF COMMON ELEMENTS WITHIN DATA, AND METHODS AND DEVICES ASSOCIATED THEREWITH}
관련 출원에 대한 상호 참조
본 출원은 2011년 3월 3일자로 출원된 발명의 명칭이 “DATA PATTERN RECOGNITION AND SEPARATION ENGINE”인 미국 특허 출원 제 13/039,554 호에 대한 우선권, 그의 이익을 주장하고 그의 일부 계속 출원이다. 본 출원은, 2012년 2월 28일자로 출원된 발명의 명칭이 “SYSTEM FOR AUTONOMOUS SEPARATION OF COMMON ELEMENTS WITHIN DATA, AND METHODS AND DEVICES ASSOCIATED THEREWITH” 인 미국 가특허 출원 제 61/604,343 호의 우선권 및 그 이익을 주장하고, 이로써 그 출원들은 전부 이 참조에 의해 본원에 명시적으로 원용된다.
기술 분야
본 개시는 데이터 해석 및 분리에 관한 것이다. 보다 구체적으로, 본 개시의 실시형태들은 데이터 세트 내의 패턴들을 검출하고 그 데이터 세트의 다른 엘리먼트들에 대해 패턴들에 매칭하는 엘리먼트들을 선택적으로 분리하기 위한 소프트웨어, 시스템 및 디바이스들에 관한 것이다. 일부 실시형태들에서, 데이터 세트 내의 엘리먼트들은 공통성을 결정하기 위하여 서로에 대해 평가될 수도 있다. 구조의 변화 레이트 및/또는 방법 면에서 공통 데이터는 같은 데이터로 그룹화될 수도 있다. 해석 및 분리될 수도 있는 데이터는 오디오 데이터, 시각 데이터 이를테면 이미지 또는 비디오 데이터, 또는 다른 유형의 데이터를 포함할 수도 있다.
오디오, 비디오 또는 다른 데이터는 보통, 데이터를 사람 또는 디바이스로 전달하기 위하여 데이터를 전기, 음향, 광학 또는 다른 매체 상에서 전송하는 것에 의해 통신된다. 가령, 마이크로폰은 아날로그 오디오 입력을 수신하고 그 정보를 전기, 디지털 또는 다른 유형의 신호로 변환할 수도 있다. 그 신호는, 추가 프로세싱을 위해 컴퓨팅 디바이스로, 스피커로, 또는 전기 신호를 취하여 오디오 출력을 생성할 수 있는 다른 출력으로 전달될 수 있다. 물론, 유사한 프로세스가 비디오 데이터 또는 다른 데이터에 사용될 수도 있다.
데이터가 수신, 변환, 또는 송신될 때, 데이터의 품질이 손상될 수도 있다. 오디오 정보의 예에서, 원하는 오디오 정보가, 배경 또는 원하지 않는 오디오 데이터와 함께, 수신될 수도 있다. 예시로써, 마이크로폰에서 수신된 오디오 데이터는, 그에 추가된 약간 정도의 스태틱 (static), 크로스토크 (crosstalk), 리버브 (reverb), 에코, 환경, 또는 다른 원치 않거나 또는 비이상적인 노이즈 또는 데이터를 갖거나 또는 포함할 수도 있다. 기술의 개선은 디바이스 성능을 증가시켜 보다 높은 품질의 출력을 생성하지만, 그럼에도 불구하고 그러한 출력들은 약간의 노이즈를 계속 포함한다.
출력 품질에 관계없이, 신호들은 보통, 노이즈가 유효 성분 (significant component) 인 환경들에서 비롯되거나, 또는 신호들은 노이즈 감소를 처리하는 기술적 개선을 포함하지 않는 디바이스들 또는 다른 장비들에 의해 생성될 수도 있다. 가령, 전화와 같은 모바일 디바이스들은 사실상 임의의 환경에서 사용될 수 있다. 전화를 사용할 때, 사용자가 마이크로폰 컴포넌트로 말을 할 수도 있지만; 사무 장비로부터, 붐비는 거리로부터, 컨벤션 센터 또는 공연장의 군중으로부터, 콘서트의 음악 그룹으로부터, 무수히 많은 다른 소스들로부터의 추가적인 사운드들이 마이크로폰으로 전달될 수도 있다. 그러한 사운드들은 사용자의 음성에 추가되고 전화 통화의 상대방 청자가 화자의 말을 이해하는 능력에 지장을 줄 수 있다. 그러한 문제는 모바일 폰이 최고 품질 컴포넌트를 포함하지 않는 경우, 송신 매체가 무선 주파수 (rf) 노이즈 또는 환경 또는 송신 매체 자체와 연관된 다른 간섭을 받는 경우, 또는 하나 이상의 송신 방향으로의 송신 동안 데이터가 손상되는 경우에 더 악화될 수 있다.
배경 노이즈를 감소시키기 위한 현재 시스템들은 위상 반전 (phase inversion) 기법들을 이용할 수도 있다. 실제로, 위상 반전 기술들은 2차 마이크로폰을 사용한다. 2차 마이크로폰은 1차 마이크로폰으로부터 격리된다. 마이크로폰들 간의 격리에 기인하여, 1차 마이크로폰 상에서 수신된 일부 사운드들은 2차 마이크로폰 상에서 수신되지 않는다. 그러면, 양자 모두의 마이크로폰들에 공통되는 정보는 제거 가능하여 원하는 사운드를 격리 (isolate) 할 수도 있다.
위상 반전 기술들은 일부 환경들에서는 노이즈를 효과적으로 감소시킬 수도 있지만, 위상 반전 기술은 어떤 환경들에서는 사용될 수 없다. 추가 마이크로폰 및 그 추가 마이크로폰에서 수신된 신호들을 나르기 위한 데이터 채널의 요건이외에, 2개의 마이크로폰들은 동일한 레이턴시 (latency) 를 가져야 한다. 약간의 변동 (variance) 도, 신호들이 매치되지 않고 감산될 수 없는 문제를 야기한다. 사실상, 변동은 추가 노이즈의 형성을 실제로 야기할 수 있다. 또한, 2개의 마이크로폰들을 이용하여 격리 (isolation) 가 수행되기 때문에, 원격 소스로부터 수신된 착신 오디오로부터 노이즈가 필터링될 수 없다. 그 결과, 위상 반전 기술들을 이용하는 디바이스의 사용자는 감소된 노이즈를 갖는 오디오 신호들을 전송할 수도 있지만, 신호를 수신하고나서 그 후 노이즈를 감소시킬 수 없다.
본 개시물의 양태들에 따르면, 방법들, 시스템들, 소프트웨어, 컴퓨터 프로그램 제품들 등의 실시형태들이 기술되어 이해되어지며 이들은 데이터 해석 및 분리에 관련된다. 데이터 해석 및 분리는 패턴 인식을 이용하여 상이한 정보 소스들을 식별함으로써 수행될 수도 있으며, 이에 의해 다른 원하지 않는 소스들에 대하여 하나 이상의 원하는 소스들의 오디오 분리를 가능하게 한다. 본원에 개시된 실시형태들이 오디오 정보의 환경에서 주로 설명되지만, 이러한 실시형태들은 단지 예시적인 것에 불과하다. 예를 들어, 다른 실시형태들에서는, 패턴 인식이 이미지 또는 비디오 데이터 내에서, 바이너리 또는 디지털 데이터 내에서 또는 또 다른 유형들의 데이터와 결합하여 이용될 수도 있다.
본 개시물의 실시형태들은 데이터 해석 및 분리에 관련된다. 일 실시형태에서, 데이터 세트의 데이터 엘리먼트들을 해석 및 분리하는 컴퓨터 구현 방법은 데이터 세트에 액세스하는 것을 포함할 수도 있다. 데이터는 적어도 데이터 세트 내의 복수의 엘리먼트들 중 각각의 엘리먼트의 변화의 방법 및 레이트들을 데이터 세트 내의 복수의 엘리먼트들 중 다른 하나에 대해 비교함으로써 자동으로 해석될 수도 있다. 데이터 세트는 추가로, 각각이 변화의 방법 및 레이트들에서 유사한 구조들을 갖는 데이터 엘리먼트들을 포함하는 하나 이상의 세트 컴포넌트들로 분리될 수도 있다.
본 개시물의 추가적인 실시형태들에 따르면, 변화의 방법 및/또는 레이트들은 3 이상의 차원들을 갖는 데이터의 핑거프린트들을 생성함으로써 분석될 수도 있다. 그 후, 생성된 핑거프린트들이 비교될 수도 있다. 선택적으로, 핑거프린트들을 비교하는 것은 3 이상의 차원들 중 어느 것 또는 전부에서 핑거프린트를 스케일링하는 것, 및 스케일링된 핑거프린트를 다른 핑거프린트에 비교하는 것을 더 포함할 수 있다. 이러한 비교는 또한 한 핑거프린트를 다른 한 핑거프린트에 대하여 오버레이하는 것을 포함할 수도 있다.
본 개시물의 실시형태들을 이용하여 해석되고/되거나 분리된 데이터 세트들은 여러 유형들의 데이터를 포함할 수 있다. 이러한 데이터는 예를 들어, 실시간 데이터, 스트리밍 데이터, 또는 파일 기반의 저장된 데이터를 포함할 수도 있다. 데이터는 또한 오디오 데이터, 이미지 데이터, 비디오 데이터, 아날로그 데이터, 디지털 데이터, 압축된 데이터, 암호화된 데이터, 또는 임의의 다른 유형의 데이터에 대응할 수도 있다. 데이터는 전화 통화 동안을 포함한 임의의 적절한 소스로부터 획득될 수도 있으며, 엔드 유저 디바이스에서 또는 엔드 유저 디바이스들 간의 서버 또는 컴퓨팅 디바이스에서 수신되고/되거나 프로세싱될 수도 있다.
본 개시물의 일부 실시형태들에서, 데이터 세트를 해석하는 것은 데이터를 변환함으로써 수행될 수도 있다. 데이터는 예시적인 2 차원 표현으로부터 3 이상의 차원의 표현으로 변환될 수도 있다. 데이터의 해석은 또한 3 이상의 차원들 중 어느 것 또는 전부에서의 변화의 방법 및/또는 레이트들을 비교하는 것을 포함할 수도 있다. 데이터를 해석하는 것은 일부 데이터에 지연을 도입시킬 수도 있으며 지연은 종종 약 500 밀리초 미만, 또는 심지어 약 250 밀리초 또는 125 밀리초 미만일 수도 있다.
본 개시물의 일부 실시형태들에 따르면, 데이터 세트를 해석하고/하거나 분리하는 것은 동일한 데이터 엘리먼트들을 식별하는 것을 포함할 수 있다. 이러한 데이터 엘리먼트들은 실제로 동일할 수도 있거나 또는 동일한 것으로 처리되도록 충분히 유사한 것일 수도 있다. 일부 경우에서, 동일한 것으로서 처리된 데이터 엘리먼트들은 단일 데이터 엘리먼트로 감소될 수 있다. 데이터 세트를 해석 및 분리하는 것은 또한 고조파 주파수들에서 반복되는 데이터일 수 있는 고조파 데이터를 식별하는 것을 포함할 수 있다.
고조파 데이터 또는 다른 충분히 유사한 데이터는 동시에, 데이터 엘리먼트를 에일리어싱하는데 추가로 이용될 수도 있다. 제 1 데이터 엘리먼트는 예를 들어, 제 1 데이터 엘리먼트에 포함되지 않지만 제 2 데이터 엘리먼트에 포함된 데이터를 제 1 데이터 엘리먼트 상에서 추정 (infer) 함으로써 제 2 데이터 엘리먼트를 이용하여 에일리어싱될 수 있다. 에일리어싱된 데이터 세트는 클립핑 (clip) 된 데이터 엘리먼트일 수도 있다.
데이터 세트의 데이터 엘리먼트들을 해석 및 분리하는 시스템이 개시되어 있으며, 컴퓨터 실행가능 명령들이 저장된 하나 이상의 컴퓨터 판독가능 저장 매체를 포함하며, 컴퓨터 실행가능 명령들은 하나 이상의 프로세서들에 의해 실행될 때 컴퓨팅 시스템으로 하여금, 데이터 세트에 액세스하고, 미리 정해진 데이터 유형 또는 디스크립션에 선택적으로 의존하지 않고 데이터 세트 내의 엘리먼트들 간의 공통성들을 자율적으로 식별하고, 자율적으로 식별된 공통성들에 기초하여 데이터 세트의 엘리먼트들을 데이터 세트의 다른 엘리먼트들로부터 분리하게 한다. 일부 실시형태들에서, 엘리먼트들 간의 공통성들의 자율적인 식별은 데이터 세트의 엘리먼트들을 평가하는 것 및 변화의 방법 및 레이트들에 관련하여 유사성들을 식별하는 것을 포함할 수 있다.
데이터 엘리먼트들이 분리될 때, 제 1 소스로부터 기원하는 높은 확률을 갖는 것으로 결정된 데이터 엘리먼트들의 세트가 출력되는 한편, 하나 이상의 추가 추가적인 소스들로부터 기원하는 높은 확률을 갖는 것으로 결정된 엘리먼트들은 출력에 포함되지 않을 수도 있다. 이러한 출력은 분리된 데이터의 하나 이상의 세트들만을 포함하도록 데이터를 재구축 (rebuild) 함으로써 제공될 수도 있다.
자동으로 데이터 세트를 해석하고 데이터 세트의 유사 엘리먼트들을 분리하는 시스템은 하나 이상의 프로세서들, 및 컴퓨터 실행가능 명령들이 저장된 하나 이상의 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 하나 이상의 컴퓨터 프로세서들은 시스템으로 하여금 하나 이상의 데이터 세트들에 액세스하고 데이터 세트들을 해석하게 하는 명령들을 실행시킬 수 있다. 데이터를 해석하는 것은 공통 소스를 식별하거나 공통 소스로부터 기원하는 높은 확률을 갖는 데이터 엘리먼트들을 자동으로 식별하는 것을 포함한다. 시스템은 또한 해석된 데이터를 이용하여 데이터 세트들을 가역가능하게 구성할 수도 있다. 가역가능하게 구성된 데이터는 공통 소스를 식별하거나 또는 공통 소스로부터 기원하는 높은 우도를 갖는 것으로 결정된 데이터 엘리먼트들의 제 1 세트를 포함할 수 있다. 가역 구성은 하나 이상의 패턴들을 충족시키는 액세스된 데이터의 일부분을 재구축하는 것을 포함할 수도 있다.
일부 실시형태들에서, 공통 소스를 식별하거나 또는 공통 소스로부터 기원하는 높은 확률을 갖는 것으로 결정된 데이터 엘리먼트들을 식별하는 것은 하나 이상의 데이터 세트들 내의 데이터 엘리먼트들을 다른 엘리먼트들에 대해 비교하는 것 및 공통성들을 갖는 엘리먼트들을 식별하는 것을 포함할 수 있다. 이러한 데이터는 실시간 또는 파일 데이터일 수도 있고, 외부 정의 또는 기준을 참조함이 없이 데이터 세트 자체를 이용하여 해석될 수 있다. 데이터를 출력하는 것은 3 이상의 차원들의 데이터를 2 차원 데이터로 변환함으로써 데이터를 재구성하는 것을 포함할 수도 있다.
데이터를 해석하여 하나 이상의 성분 세트들로 분리하는 방법은 제 1 포맷의 데이터를 액세스하는 것 및 액세스된 데이터를 제 1 포맷을 제 2 포맷으로 변환하는 것을 포함할 수 있다. 제 2 포맷의 데이터를 이용하여, 윈도우 세그먼트들을 생성하도록, 변환된 데이터 내의 연속적 편가가 식별되고 선택적으로 이용된다. 편차들 및/또는 윈도우 세그먼트들에 대한 핑거프린트들이 생성될 수 있다. 생성된 핑거프린트들은 또한 하나 이상의 핑거프린트들 간의 유사성을 결정하기 위해 비교될 수 있다. 유사도 임계 미만인 다른 핑거프린트들에 대해 유사도 임계를 충족 또는 초과하는 핑거프린트들은 공통 세트의 일부로서 분리되어 포함될 수 있다.
변환된 데이터는 데이터를 2 이상의 차원들의 중간 포맷으로 선택적으로 변환함으로써 2 차원 데이터로부터 3 이상의 차원들의 데이터로 변환될 수도 있다. 선택적 윈도우 세그먼트들이 식별되는 경우, 윈도우 세그먼트들은 연속적 편차가 베이스라인에 대해 시작하고 끝나는 경우에 시작하고 끝날 수 있다. 베이스라인은 선택적으로 노이즈 플로어일 수도 있다.
일부 실시형태들에서, 핑거프린트들은 하나 이상의 주파수 진행들을 식별함으로써 생성될 수도 있다. 이러한 주파수 진행들은 윈도우 세그먼트들 내에 있을 수도 있고, 각각의 윈도우 세그먼트는 하나 이상의 주파수 진행들을 포함한다. 주파수 진행들의 수 또는 이들의 핑거프린트들은 감소될 수 있다. 예를 들어, 동일한 또는 거의 동일한 윈도우 세그먼트들은 선택적으로 단일의 주파수 진행 또는 핑거프린트로 감소될 수도 있다. 식별된 주파수 진행들은 기본 주파수에 대하여 고조파 주파수들에서의 진행들을 포함할 수도 있다. 데이터는 그 고조파들의 진행 데이터에 기초하여 기본 주파수에 대해 추정될 수 있다.
핑거프린트들은 유사성을 결정하도록 비교될 수도 있다. 비교된 핑거프린트들은 동일한 윈도우 세그먼트에 있을 수도 있고 또는 상이한 윈도우 세그먼트에 있을 수도 있다. 선택적으로, 핑거프린트는 윈도우 세그먼트의 핑거프린트들을 감소시키는데 있어 동일한 윈도우 세그먼트의 핑거프린트들에 비교되고 감소가 발생한 후의 다른 윈도우 세그먼트들의 핑거프린트들에 비교된다. 핑거프린트 세트는 유사성 임계를 충족시키거나 초과하는 핑거프린트들에 대해 생성될 수 있으며, 이에 의해 공통 소스로부터 기원하는 확률을 나타낼 수 있다. 다른 핑거프린트들은 임계를 충족시키거나 초과하는 경우에 기존의 핑거프린트 세트들에 추가될 수도 있다. 일부 경우들에 대해, 2 개의 임계들 간에 유사성을 갖는 핑거프린트들이 세트 내에 포함될 수 있는 한편, 2 개의 임계들보다 큰 핑거프린트들은 핑거프린트 세트에서의 단일 엔트리로 결합된다. 유사성 임계 위에 있거나 또는 동일 세트의 핑거프린트들이 출력될 수도 있다. 이러한 출력은 핑거프린트를 액세스된 데이터의 포맷으로 변환하는 것을 포함할 수도 있다. 출력 데이터는 액세스된 데이터의 서브세트인 분리된 데이터일 수도 있고, 선택적으로 가역적으로 제공되거나 재구성된/재구축된 데이터이다. 데이터를 해석 및 분리하는데 있어서, 시간 제약이 이용된다. 시간 제약이 초과되면, 액세스된 데이터는 분리되고/되거나 재구성되기보다는 출력된 데이터일 수도 있다.
따라서, 본 개시물의 일부 실시형태들은 오디오 도는 다른 유형의 데이터를 해석 및 분리하는 것에 관련된다. 이러한 데이터는 식별되고 핑거프린트된 고유의 엘리먼트들을 포함할 수도 있다. 핑거프린트들의 선택된 세트에 대응하거나 자율적으로 다른 것과 유사하거나 데이터 자체 내에서의 사용자 선택된 엘리먼트들인 데이터 엘리먼트가 선택될 수도 있다. 그 후, 선택된 데이터는 출력될 수도 있다. 선택적으로 이러한 출력은 출력이 원하지 않는 데이터 엘리먼트들로부터 추출함에 의해서라기 보다는 포함된 데이터 엘리먼트들의 핑거프린트들로부터 재구축될 수도 있다는 점에서 본래 비파괴적이다.
본 개시물의 여러 양태들의 특징 및 이점 뿐만 아니라 다른 양태들이 다음 설명, 첨부한 도면 및 첨부된 청구범위를 고려하여 당해 기술 분야의 숙련된 자에게 명백해질 것이다.
본 개시의 피처 (feature) 및 다른 양태들이 획득될 수 있는 방식을 설명하기 위하여, 개시된 요지의 넓은 범위에 속하는 특정 실시형태들의 보다 구체적인 설명이 첨부 도면들에서 제시될 것이다. 이들 도면들은 예시적인 실시형태들을 도시할 뿐이므로, 범위를 제한하는 것으로 고려되지 않아야 하고, 모든 실시형태들에 대해 스케일대로 그려진 것도 아니라는 것을 이해 하에서, 다양한 실시형태들이 첨부 도면의 사용을 통해 추가적으로 특수하게 그리고 상세하게 기술 및 설명될 것인데, 여기서:
도 1은 데이터 분석, 해석 및/또는 분리 시스템과 관련되어 사용될 수도 있는 통신 시스템의 실시형태의 개략 예시이다.
도 2는 도 1에 도시된 것과 같은 통신 시스템 상에서 정보를 수신 또는 전송할 수도 있는 컴퓨팅 시스템의 실시형태의 개략 예시이다.
도 3은 데이터 신호의 엘리먼트들을 해석 및 분리하고 그 데이터 신호의 적어도 일부 엘리먼트들을 포함하는 출력을 구성하는 방법의 실시형태를 예시한다.
도 4는 데이터를 해석하여 그 데이터 내의 엘리먼트들의 공통성을 검출하고, 그러한 공통 피처를 공유하지 않는 다른 엘리먼트들에 대해 공통 피처들을 갖는 엘리먼트들을 분리하는 방법의 실시형태를 예시한다.
도 5는 2 차원 데이터 신호를 나타내는 파형의 실시형태를 예시한다.
도 6 및 도 7은 도 5의 데이터의 변환에 의해 생성된 데이터의 다른 3 차원 뷰를 예시한다.
도 8은 도 6 및 도 7의 3 차원 플롯의 2 차원 표현이다.
도 9는 도 6 내지 도 8에 나타낸 데이터에서 식별될 수도 있는 단일 윈도우 세그먼트를 예시하고, 그 윈도우 세그먼트는 기초 주파수 진행 (fundamental frequency progression) 및 기초 주파수 진행의 고조파 (harmonic) 를 포함한다.
도 10은 도 5 내지 도 9에 나타낸 데이터 내에서 단일 주파수 진행의 그래프적인 표현을 제공하고, 그 주파수 진행은 도 9의 기초 주파수 진행의 핑거프린트 (fingerprint) 를 형성하거나 또는 형성하기 위하여 사용되는 데이터에 의해 정의될 수도 있다.
도 11은 데이터 신호 내의 데이터의 다양한 윈도우 세그먼트들에 대응하는 데이터를 저장하기 위한 윈도우 테이블의 실시형태를 도시한다.
도 12a는 다양한 윈도우 세그먼트들 및 그 윈도우 세그먼트들 내의 데이터 엘리먼트들의 핑거 프린트에 대응하는 데이터를 저장하기 위한 글로벌 해시 테이블 (global hash table) 의 실시형태를 예시한다.
도 12b는 동일한 윈도우 세그먼트 내의 핑거프린트들의 상대적 유사성을 나타내는 유사성 값들을 포함하는 도 12a의 글로벌 해시 테이블로부터 업데이트된 글로벌 해시 테이블의 실시형태를 예시한다.
도 12c는 상이한 윈도우 세그먼트들의 핑거프린트들의 상대적 유사성을 나타내는 유사성 값들 및 감소된 수의 핑거프린트들을 포함하는 도 12b의 글로벌 해시 테이블로부터 업데이트된 글로벌 해시 테이블의 실시형태를 예시한다.
도 13은 임의의 윈도우 세그먼트의 다른 핑거프린트들에 대한 핑거프린트들의 유사를 나타내는 데이터와 함께, 각 윈도우 세그먼트에 대한 핑거프린트 데이터를 포함하고 복수의 윈도우 세그먼트들을 식별하는 핑거프린트 테이블의 실시형태를 예시한다.
도 14는 핑거프린트들의 세트들을 식별하는 세트 테이블의 실시형태를 예시하고, 세트의 각 핑거프린트는 그 세트의 각 다른 핑거프린트에 유사하거나 또는 그렇지 않으면 그의 패턴에 매칭한다.
도 15는 도 11 내지 도 14의 테이블들간의 상호작용 (interaction) 을 개략적으로 예시한다.
도 16은 데이터를 해석 및 분리시키는 방법을 사용하여 따로 또는 조합하여, 출력을 제공하기 위하여 구성 및/또는 재구축될 수도 있고 도 5에 의해 표현되는 데이터 내의 엘리먼트들의 2개의 세트들의 2 차원 플롯의 실시형태를 예시한다.
도 17은 전자 디바이스 상의 콘택 파일에 (contact file) 저장된 콘택 정보가 콘택 파일에 의해 식별되는 사람에 매칭되는 오디오 데이터 핑거프린트의 세트를 포함하는 본 개시의 실시형태들의 실제 구현을 예시한다.
도 18은 동일한 오디오 소스로부터의 세트들로 사운드 시스템의 상이한 컴포넌트들을 분리시키기 위한 오디오 파일 분석 애플리케이션의 실제 응용을 위한 예시적인 사용자 인터페이스를 예시한다.
본 개시에 따른 시스템들, 방법들, 디바이스들, 소프트웨어들 및 컴퓨터 프로그램 제품들은, 데이터를 분석하고, 데이터 내에서의 패턴들 또는 공통의 피처들을 검출하고, 데이터의 하나 이상의 엘리먼트들을 데이터의 다른 부분들에 대해 격리 또는 분리시키고, 분석된 데이터의 소스를 식별하고, 공통의 엘리먼트들에 기초하여 데이터 세트들을 반복적으로 구축하고 (building), 데이터를 소급적으로 구성 또는 재구축 (rebuilding) 하는데 사용하기 위해, 또는 다른 목적들을 위해, 또는 이들의 임의의 조합을 위해 구성될 수도 있다. 본 개시의 범위를 제한하지 않으면서, 수신된 데이터는 아날로그 또는 디지털 데이터를 포함할 수도 있다. 디지털 데이터가 수신되는 경우, 이러한 데이터는, 선택적으로, 아날로그 데이터의 디지털 표현일 수도 있다. 데이터의 유형이 무엇이든 간에, 데이터는 원하는 데이터 성분과 노이즈 성분을 포함할 수도 있다. 노이즈 성분은 설비 (예를 들면, 마이크), 압축, 송신, 환경, 또는 다른 요인들 또는 이들의 임의의 조합에 의해 도입된 데이터를 나타낼 수도 있다. 본 개시의 실시형태들이 활용될 수도 있는 하나의 애플리케이션에 불과한 전화 통화의 상황에서, 오디오 데이터는 전화 통화의 한 편에서 말을 하고 있는 사람의 목소리를 포함할 수도 있다. 이러한 오디오 데이터는 배경 소스들 (예를 들면, 사람들, 기계류 등) 로부터의 원치 않는 데이터를 또한 포함할 수도 있다. 추가적인 원치 않는 데이터는, 또한, 오디오 성분 또는 노이즈 성분의 일부일 수도 있다. 예를 들면, 상이한 고조파 주파수들에서 공진할 수도 있는 진동들로부터 사운드가 생성될 수도 있다. 따라서, 1차 또는 기본 주파수에서의 사운드는 추가적인 기지의 (known) 주파수들에서 발생하는 고조파들에서 일반적으로 반복 또는 반향될 수도 있다. 이러한 크로스토크, 반향 (reverb), 에코 등과 같은 다른 정보는 데이터의 노이즈 성분 또는 오디오 성분에 또한 포함될 수도 있다.
이제 도 1로 돌아가면, 예시적인 시스템이 도시되는데, 데이터를 분석, 해석 및/또는 분리 또는 격리하기 위한 본 개시의 실시형태들과 관련하여 사용 가능한 분산 시스템 (100) 을 포함한다. 예시된 시스템 (100) 에서, 시스템의 동작은 하나 이상의 엔드 유저 디바이스들 (104a-104f) 간의 통신을 용이하게 하는 네트워크 (102) 를 포함할 수도 있다. 이러한 엔드 유저 디바이스들 (104a-104f) 은 임의의 수의 상이한 유형들의 디바이스들 또는 컴포넌트들을 포함할 수도 있다. 예로서, 이러한 디바이스들은 컴퓨팅 또는 다른 유형들의 전기 디바이스들을 포함할 수도 있다. 비제한적인 예시로서의 적절한 전기 디바이스들의 예들은, 셀폰들, 스마트폰들, PDA들 (personal digital assistants), 일반 유선전화들 (land-line phones), 태블릿 컴퓨팅 디바이스들, 넷북들, e-리더들, 랩탑 컴퓨터들, 데스크탑 컴퓨터들, 미디어 플레이어들, GPS (global positioning system) 디바이스들, 양방향 무선 디바이스들, 네트워크 (102) 를 통해 데이터를 통신할 수 있는 다른 디바이스들, 또는 이들의 임의의 조합을 포함할 수도 있다. 일부 실시형태들에서, 엔드 유저 디바이스들 (104a-104f) 간의 통신은, 서버 컴포넌트들 (106), 데이터 저장소들 (108), 무선 기지국들 (110), 또는 POTS (plain old telephone service; 기존 전화 서비스) 컴포넌트 (112) 를 사용하거나 또는 이들과 관련하여 발생할 수도 있는데, 다수의 다른 유형들의 시스템들 또는 컴포넌트들이 또한 사용되거나 존재할 수도 있다.
적어도 하나의 실시형태에서, 네트워크 (102) 는 전자적 통신들을 전달할 수도 있다. 따라서, 인터넷, 근거리 네트워크들, 광역 네트워크들, 가상의 사설 네트워크들 (virtual private networks; VPN), 전화 네트워크들, 다른 통신 네트워크들 또는 채널들, 또는 이들의 임의의 조합이 네트워크 (102) 에 의해 표현될 수도 있다. 또한, 네트워크 (102), 엔드 유저 디바이스들 (104a-104f), 서버 컴포넌트 (106), 데이터 저장소 (108), 기지국 (110) 및/또는 POTS 컴포넌트들 (112) 이 다수의 상이한 방식들로 각각 동작할 수도 있다는 점을 이해해야만 한다. 상이한 동작 방식들은 네트워크 (102) 의 유형 또는 네트워크 (102) 로의 접속의 유형에 적어도 부분적으로 기초할 수도 있다. 예를 들면, 시스템 (100) 의 다양한 컴포넌트들은 고정배선 (hard-wired) 통신 컴포넌트들 및/또는 무선 통신 컴포넌트들 또는 인터페이스들 (예를 들면, 802.11, 블루투스, CDMA, LTE, GSM 등) 을 포함할 수도 있다. 또한, 단일의 서버 (106) 및 단일의 네트워크 (102) 가 도 1에 예시되었지만, 이러한 컴포넌트들은 시스템 (100) 의 일부로서 총체적으로 동작하는 다수의 디바이스들 또는 컴포넌트들의 예시일 수도 있다. 실제로, 네트워크 (102) 는 하나 이상의 엔드 유저 디바이스들 (104a-104f) 간의 통신을 용이하게 하기 위해 상호 접속된 다수의 네트워크들을 포함할 수도 있다. 마찬가지로, 서버 (106) 는 시스템 (100) 의 하나 이상의 양태들의 동작을 용이하게 하는 방식으로 함께 위치되거나 분산된 다수의 서버 또는 다른 컴퓨팅 엘리먼트들을 나타낼 수도 있다. 추가적으로, 선택적 저장소 (108) 가 서버 (106) 와 엔드 유저 또는 클라이언트 디바이스들 (104a-104f) 로부터 분리된 것으로 도시되었지만, 다른 실시형태들에서, 저장소 (108) 는 임의의 다른 디바이스, 시스템 또는 컴포넌트 내에 전체적으로 또는 부분적으로 포함될 수도 있다.
시스템 (100) 은, 오디오 및/또는 시각적 통신 서비스들을 제공하기 위해 사용될 수도 있는 일 실시형태에 따른 예시적인 시스템을 예시한다. 엔드 유저 시스템들 (104a-104f) 은, 하나의 디바이스의 유저가 다른 디바이스의 유저와 통신하는 것을 가능하게 하기 위해, 예를 들면, 하나 이상의 마이크들 또는 스피커들, 텔레타이프 머신들 등을 포함할 수도 있다. 도 1에서, 예를 들면, 하나 이상의 전화 엔드 유저 디바이스들 (104c, 104d) 은 POTS 시스템 (112) 에 통신적으로 연결될 수도 있다. 하나의 엔드 유저 디바이스 (104c) 에서 시작된 호 (call) 는 POTS 시스템 (112) 에 의해 다른 엔드 유저 디바이스 (104d) 에 접속될 수도 있다. 선택적으로, 이러한 호는, POTS 시스템 (112) 에 추가하여, 또는 POTS 시스템 (112) 을 대신하여, 네트워크 (102), 서버 (106), 또는 다른 컴포넌트들을 사용하여 개시되거나 또는 유지될 수도 있다.
전화 디바이스들 (104c, 104d) 은 다수의 다른 디바이스들과 추가적으로 또는 대안적으로 통신할 수도 있다. 예로써, 셀폰 (104a) 은 전화기 (104c) 에 전화 통화를 할 수도 있다. 호는 하나 이상의 기지국들 (110), 서버들 (예를 들면, 서버 (106)), 또는 다른 컴포넌트들을 통해 중계될 수도 있다. 기지국 (110) 은, 전화기 (104c) 와의 통신을 허용 또는 용이하게 하기 위해, 네트워크 (102), POTS 시스템 (112), 서버 (106), 또는 다른 컴포넌트들과 통신할 수도 있다. 다른 실시형태들에서, 선택적으로 소위 "스마트폰"인 셀폰 (104a) 은 랩탑 (104b), 태블릿 컴퓨팅 디바이스 (104e), 또는 데스크탑 컴퓨터 (104f) 와의 오디오, 시각적 또는 다른 데이터 통신을 통신할 수도 있고, 선택적으로, 기지국 (110) 에 의해 표현되는 하나 이상의 기지국들을 바이패스하는 방식으로 네트워크 (102) 및/또는 서버 (106) 를 통해 그렇게 할 수도 있다. 통신은 임의의 수의 방식들로 제공될 수도 있다. 예를 들면, 교환되는 메시지들은, 인터넷 프로토콜 (Internet Protocol; "IP") 데이터그램들, 송신 제어 프로토콜들 (Transmission Control Protocols; "TCP"), 하이퍼텍스트 전송 프로토콜 (Hypertext Transfer Portocol; "HTTP"), 간이 전자 우편 전송 프로토콜 (Simple Mail Transfer Protocol; "SMTP"), 인터넷 전화 (Voice-Over-IP; "VOIP"), 일반유선 (land-line) 또는 POTS 서비스들, 또는 다른 통신 프로토콜들 또는 시스템들, 또는 이들의 임의의 조합을 사용할 수도 있다.
본 개시의 일부 실시형태들에 따르면, 시스템 (100) 의 컴포넌트들에서 생성되거나 또는 수신되는 정보는 분석되고 해석될 수도 있다. 일 실시형태에서, 데이터 해석 및 분석은, 데이터 내의 엘리먼트들에 대해 데이터를 해석하여 엘리먼트들 내의 공통성들을 결정함으로써 자율적으로 수행된다. 이들 공통성들은 데이터의 다른 엘리먼트들과 매칭될 수 있고 그 후 공통 피처들을 갖는 것들과 공통 피처들을 갖지 않는 것들 사이에서 데이터를 분리하는데 사용될 수 있는 패턴들을 일반적으로 정의할 수도 있다. 공통성들을 검출하는 방식은 변할 수도 있지만, 일 실시형태에서는, 변화의 방법들 및/또는 레이트들에 대해 공통성들을 식별하는 것을 포함할 수 있다.
본원에서 논의된 바와 같이, 본 개시의 실시형태들에 따른, 데이터 해석 및 분리와, 향상된 신호의 재구성은 아주 다양한 산업분야들 및 애플리케이션들에서, 그리고 다수의 유형들의 소스들로부터 기원하는 많은 유형들의 데이터와 관련하여 사용될 수 있다. 본 개시의 방법들 또는 시스템들은, 예를 들면, 엔드 유저 디바이스들에서의 또는 서버, 기지국 등과 같은 중간 디바이스에서의 전화 시스템에 포함될 수도 있다. 그러나, 데이터는 파일을 액세스하는 컴퓨팅 디바이스 상에서의 해석, 분리, 재구성, 등등을 포함하여 다른 산업분야들에서 해석, 분리, 재구성, 등등 될 수도 있고, 오디오, 비디오, 이미지, 또는 다른 유형들의 데이터에 대해 동작할 수도 있다. 따라서, 본 개시의 실시형태들에 따라 해석되고 분리될 수 있는 데이터의 단지 일 예는 오디오 데이터이고, 이것은 그 자체가 파일 기반의 동작을 통해 실시간으로 또는 저장소로부터 수신될 수도 있다. 셀폰 (104) 과 전화기 (104c) 간의 전화 호의 예에 계속하여, 예를 들면, 셀폰 (104a) 에서 수신된 오디오 데이터는 셀폰 (104a) 에 의해, 전화기 (104c) 에 의해, POTS (112) 에 의해, 서버 (106) 에 의해, 기지국 (110) 에 의해, 네트워크 (102) 내에서, 또는 임의의 다른 적절한 컴포넌트에 의해 해석될 수도 있다. 발신자 (caller) 의 목소리는 다른 소스들로부터의 사운드들 또는 데이터에 대해 분리될 수도 있는데, 이러한 분리는 발신자의 음성 패턴들에 기초하여 발생한다. 그 다음 분리된 데이터는 전화기 (104c) 를 사용하고 있는 사람에게 송신되거나 제공될 수도 있다. 예를 들면, 데이터 해석 및 분리가 전화기 (104a) 에서 발생하면, 전화기 (104a) 는 분리된 목소리 데이터를 포함하는 데이터 신호를 구성하고 그 데이터를 기지국 (110) 또는 네트워크 (102) 로 송신할 수도 있다. 이러한 데이터는, 다른 컴포넌트들 중, 서버 (106), POTS (112) 를 통해 전달되어 전화기 (104c) 로 라우팅될 수도 있다.
대안적으로, 데이터 해석 및 분리는 기지국 (110), 네트워크 (102), 서버 (106), 또는 POTS (112) 에서 수행될 수도 있다. 예를 들면, 셀룰러 폰 (104a) 으로부터 송신된 데이터는 수신 기지국 (110) 에 의해 압축될 수도 있다. 이러한 압축은 신호에 이미 존재하는 노이즈에 더해질 수 있는 노이즈를 도입할 수도 있다. 기지국 (110) 은 데이터를 해석할 수 있거나, 또는 신호를 (선택적으로 하나 이상의 다른 기지국들 (110) 을 통해) 네트워크 (102) 로 전달할 수도 있다. 임의의 기지국 (110) 또는 네트워크 (102) 의 컴포넌트는 본원의 실시형태들에 의해 개시된 것들과 부합하는 데이터 해석 및 분리 방법들을 잠재적으로 수행할 수도 있고, 그에 의해 오디오 신호를 깨끗하게 할 수도 있다. 네트워크 (102) 는, 데이터 신호들을 해석, 분리 및/또는 재구성하는 이러한 방법들을 수행할 수도 있는 서버 (106) 또는 POTS (112) 를 포함하거나 또는 이들에 접속될 수도 있다. 결과적으로, 셀폰 (104a) 에 의해 생성된 데이터는, 데이터가 전화기 (104c) 에 의해 수신되기 전에 해석되고 소정의 엘리먼트들이 분리될 수 있다. 다른 실시형태들에서, 전화기 (104c) 에 의해 수신된 데이터는 노이즈 또는 다른 엘리먼트들을 포함할 수도 있고 데이터 해석 및/또는 분리는 전화기 (104c) 에서 발생할 수도 있다. 엔드 유저 디바이스 (104a-104f), 서버 (106), 네트워크 (102) 의 컴포넌트, 또는 데이터 또는 통신을 생성하거나, 수신하거나, 송신하거나, 해석하거나 또는 다르게는 이들에 대해 작용하는데 사용되는 다른 컴포넌트에 관계없이, 시스템 (100) 내에서 생성된 임의의 신호에서 유사한 프로세스가 획득될 수도 있다.
데이터 해석 및 분리는, 전용 하드웨어, 소프트웨어 애플리케이션, 또는 이들의 조합을 사용하는 임의의 적절한 디바이스에 의해 수행될 수도 있다. 일부 실시형태들에서, 해석 및 분리는, 분산 프로세싱, 리던던트 프로세싱 (redundant processing), 또는 다른 유형들의 프로세싱을 사용하든지 간에, 다수의 디바이스들 상에서 발생할 수도 있다. 실제로, 일 실시형태에서, 전송 디바이스, 수신 디바이스, 또는 중간 컴포넌트 중 임의의 것 또는 전체가 데이터를 분석, 해석, 분리 또는 격리할 수도 있다.
셀룰러 폰 통신의 예에서, 예를 들어, 셀폰 (104a) 는 출력 데이터를 해석하고, 셀폰 (104a) 에 의해 생성된 배경 데이터 및/또는 노이즈로부터 사용자의 음성을 분리할 수도 있다. 서버 (106) 또는 POTS (112) 는 기지국 (110) 또는 네트워크 (102) 를 통해 수신된 데이터를 분석하고, 배경 노이즈, 데이터 압축으로 인한 노이즈, 송신 매체에 의해 도입된 노이즈, 또는 환경 또는 네트워크 (102) 내에서 또는 셀폰 (104a) 에 의해 생성된 다른 노이즈로부터 음성 데이터를 분리할 수도 있다. 수신 디바이스 (예컨대, 엔드 유저 디바이스들 (104b-104f) 중 임의의 디바이스) 는 착신 데이터를 분석 또는 해석할 수도 있고, 네트워크 (102) 와 수신 디바이스 간의 데이터의 송신으로부터 야기될 수도 있는 다른 노이즈로부터 발신자의 음성을 분리할 수도 있다. 따라서, 도 1 의 시스템 (100) 은, 주로 클라이언트-중심이거나, 주로 서버 또는 클라우드-중심이거나, 또는 클라이언트 또는 서버-중심 아키텍처들 및 시스템들의 임의의 다른 방식의 조합 양태들인, 데이터 프로세싱, 분석, 해석, 패턴 인식, 분리 및 저장, 또는 이들의 임의의 조합을 제공할 수도 있다.
이제 도 2 로 돌아가면, 컴퓨팅 시스템 (200) 의 예가 추가로 상세하게 도시되고 설명되어 있다. 컴퓨팅 시스템 (200) 은, 도 1 의 통신 시스템 (100) 에서 사용될 수도 있는 디바이스들 또는 시스템들 중 하나 이상의 예를 일반적으로 나타낼 수도 있다. 본 개시물의 특정 실시형태들의 설명 및 이해를 용이하게 하기 위해서, 컴퓨팅 시스템 (200) 은 때로는 도 1 의 엔드 유저 디바이스들 (104a-104f) 과 같은 엔드 유저 디바이스를 일반적으로 나타내는 것처럼 본 명세서에 기재될 수도 있다. 하지만, 다른 실시형태들에서, 컴퓨팅 디바이스 (200) 는 도 1 의 서버 (106) 의 전부 또는 일부를 나타낼 수도 있고, 네트워크 (102), 기지국 (110), 또는 POTS 시스템 (112) 의 부분으로서 포함될 수도 있고, 또는 그 밖에 통신 시스템 (100) 또는 다른 적합한 시스템 내부의 임의의 적합한 컴포넌트 또는 디바이스에 사용될 수도 있다. 따라서 도 2 는 엔드 유저 또는 클라이언트 디바이스, 서버, 네트워크, 기지국, POTS, 또는 다른 디바이스나 시스템으로서 또는 그 내부에 사용될 수도 있는 시스템 (200) 의 일 예시의 실시형태를 개략적으로 도시하며; 하지만, 디바이스들 또는 시스템들이 임의의 수의 상이한 또는 추가적인 피처들, 컴포넌트들 또는 역량들을 포함할 수도 있고, 도 2 및 그 설명이 본 개시물의 제한으로서 고려되지 않아야 함을 이해해야 한다.
도 2 에서, 컴퓨팅 시스템 (200) 은 하나 이상의 통신 채널들을 통해 함께 상호작용할 수도 있는 다수의 컴포넌트들을 포함한다. 이 실시형태에 있어서, 예를 들어, 시스템은 다수의 프로세싱 유닛들을 포함할 수도 있다. 보다 구체적으로, 도시된 프로세싱 유닛들은 중앙 처리 장치 (CPU; 214) 및 그래픽 프로세싱 유닛 (GPU; 216) 을 포함한다. CPU (214) 는 일반적으로, 기본 산술, 논리, 입/출력 (I/O) 동작들 등을 포함하는, 시스템 (200) 의 컴퓨터 프로그램들의 명령들을 실시할 때에 사용하기 위한 다목적 프로세서일 수도 있다. 대조적으로, GPU (216) 는 주로 시각 정보의 프로세싱에 전용될 수도 있다. 일 실시형태에 있어서, GPU (216) 는 하나 이상의 디스플레이 디바이스들로 출력되도록 의도된 빌딩 이미지들에 주로 전용될 수도 있다. 다른 실시형태들에서, 도 2 에 도시된 것들 이외에 또는 도 2 에 도시된 것들에 추가하여 단일 프로세서 또는 다수의 상이한 종류의 프로세서들이 사용될 수도 있다.
CPU (214) 및 GPU (216) 가 시스템 (200) 에 포함되는 경우, 그들은 각각 상이한 기능들에 주로 전용될 수도 있다. 상기 언급된 바와 같이, 예를 들어, GPU 는 대체로 그래픽 및 시각-관련 기능들에 전용될 수도 있다. 일부 실시형태들에서, GPU (216) 는 시각 및 그래픽 정보 이외의 데이터 프로세싱을 수행하도록 레버리징될 수도 있다 (leveraged). 예를 들어, CPU (214) 및 GPU (216) 는 선택적으로 상이한 클록 속도들, 2배 정밀도 부동 소수점 연산들의 프로세싱에 관한 상이한 역량들, 아키텍처 차이들, 또는 형태, 기능 또는 역량에서의 다른 차이들을 갖는다. 일 실시형태에 있어서, GPU (216) 는 더 높은 클록 속도, 더 높은 버스폭, 및/또는 다수의 부동 소수점 연산들을 수행하기 위한 더 높은 능력을 가질 수도 있고, 이로써 일부 정보가 CPU (214) 에 의해 수행되는 경우보다 더 효율적으로 프로세싱될 수 있게 한다.
CPU (214), GPU (216) 또는 다른 프로세서 컴포넌트들은 입/출력 (I/O) 디바이스들 (218), 네트워크 인터페이스 (220), 메모리 (224) 및/또는 대용량 스토리지 디바이스 (226) 와 상호작용하거나 또는 통신할 수도 있다. 다중 통신 버스들 또는 다른 통신 채널들, 또는 임의의 수의 다른 종류의 컴포넌트들이 사용될 수도 있지만, 통신이 발생할 수도 있는 하나의 방식은 통신 버스 (222) 를 사용하는 것이다. CPU (214) 및/또는 GPU (216) 는 일반적으로 시스템 (200) 에 의해 수신 또는 저장된 컴퓨터 실행가능 명령들을 실행할 수 있는 하나 이상의 프로세싱 컴포넌트들을 포함할 수도 있다. 예를 들어, CPU (214) 또는 GPU (216) 는 통신 버스 (222) 를 사용하여 입/출력 디바이스들 (218) 과 통신할 수도 있다. 입/출력 디바이스들 (218) 은 포트들, 키보드들, 마우스, 스캐너들, 프린터들, 디스플레이 엘리먼트들, 터치 스크린들, 마이크로폰들 또는 다른 오디오 입력 디바이스들, 스피커들 또는 오디오 출력 디바이스들, 글로벌 포지셔닝 시스템 (GPS) 유닛들, 오디오 믹싱 디바이스들, 카메라들, 센서들, 다른 컴포넌트들, 또는 이들의 임의의 조합을 포함할 수도 있으며, 이들 중 적어도 일부는 CPU (214) 또는 GPU (216) 에 의한 프로세싱에 대한 입력을 제공할 수도 있고, 또는 CPU (214) 또는 GPU (216) 로부터 출력된 정보를 수신하도록 사용될 수도 있다. 유사하게, 네트워크 인터페이스 (220) 는 네트워크 (예컨대, 도 1 의 네트워크 (102)) 를 통한 통신들을 수신할 수도 있다. 수신된 데이터는 버스 (222) 를 통해 송신되고, CPU (214) 또는 GPU (216) 에 의해 전체적으로 또는 부분적으로 프로세싱될 수도 있다. 대안적으로, CPU (214) 또는 GPU (216) 에 의해 프로세싱된 데이터는 네트워크 또는 다른 통신 채널을 통해 다른 디바이스 또는 컴포넌트로 통신하기 위해 버스 (222) 를 통해 네트워크 인터페이스 (220) 로 송신될 수도 있다.
시스템 (200) 은 또한 메모리 (224) 및 대용량 스토리지 (226) 를 포함할 수도 있다. 일반적으로, 메모리 (224) 는 지속성 및 비지속성 스토리지 양자를 포함할 수도 있으며, 도시된 실시형태에서, 메모리 (224) 는 랜덤 액세스 메모리 (228) 및 판독 전용 메모리 (230) 를 포함하는 것으로 나타나 있다. 다른 종류의 메모리 또는 스토리지가 또한 메모리 (224) 에 포함될 수도 있다. 대용량 스토리지 (226) 는 일반적으로 다수의 상이한 형태의 지속성 스토리지로 구성될 수도 있다. 이러한 형태들은 하드 드라이브, 플래시-기반 스토리지, 광학 스토리지 디바이스들, 자기 스토리지 디바이스들, 또는 시스템 (200) 에 영구적으로 또는 제거가능하게 커플링되는 다른 형태들, 또는 이들의 임의의 조합을 포함할 수도 있다. 일부 실시형태들에서, CPU (214) 에 의해 실행될 수도 있고 컴퓨팅 시스템 (200) 의 일반적 운영 기능들을 정의하는 운영 시스템 (232) 이 대용량 스토리지 (226) 내에 저장될 수도 있다. 대용량 스토리지 (226) 에 저장된 다른 예시의 컴포넌트들은 드라이버들 (234), 브라우저 (236) 및 애플리케이션 프로그램들 (238) 을 포함할 수도 있다.
용어 "드라이버들" 은 임의의 수의 프로그램들, 코드, 또는 커널 (Kernel) 확장들, 확장들, 라이브러리들 또는 소켓들을 포함하는 다른 모듈들을 광범위하게 나타내도록 의도된다. 일반적으로, 드라이버들 (234) 은 프로그램들일 수도 있고, 또는 컴퓨팅 시스템 (200) 으로 하여금 컴퓨팅 시스템 (200) 내부 또는 컴퓨팅 시스템 (200) 주변에 있는 다른 컴포넌트들과 통신하도록 하는 명령들을 포함할 수도 있다. 예를 들어, I/O 디바이스들 (218) 이 디스플레이 디바이스를 포함하는 실시형태에 있어서, 드라이버들 (234) 은, 디스플레이 디바이스에 의해 이해되고 디스플레이되기 위해서, 데이터가 디스플레이 디바이스에 통신할 수 있도록 데이터가 포매팅될 수도 있는 방식을 나타내는 통신 명령들을 저장하거나 또는 그 통신 명령들에 액세스할 수도 있다. 브라우저 (236) 는 CPU (214) 및/또는 GPU (216) 뿐만아니라, 컴퓨팅 시스템 (200) 상에 프로그램들 또는 애플리케이션들을 브라우징하기 위해 또는 원격 소스로부터 이용가능한 자원들에 액세스하기 위해 네트워크 인터페이스 (220) 와 일반적으로 상호작용할 수 있는 프로그램일 수도 있다. 이러한 원격 소스는 선택적으로 네트워크 또는 다른 통신 채널을 통해서 이용가능할 수도 있다. 브라우저 (236) 는 일반적으로, 마크업 및/또는 스크립팅 언어 코드를 포함하는 이러한 페이지들을 종종 갖는, 정보의 페이지들을 수신 및 해석함으로써 동작할 수도 있다. 대조적으로, CPU (214) 또는 GPU (216) 에 의해 실행되는 실행가능한 코드 명령들은 이진 또는 다른 유사 포맷일 수도 있고, 프로세서 컴포넌트들 (214, 216) 에 의해 주로 실행가능하고 이해될 수도 있다.
애플리케이션 프로그램들 (238) 은 컴퓨팅 시스템 (200) 의 동작 시에 사용될 수도 있는 다른 프로그램들 또는 애플리케이션들을 포함할 수도 있다. 애플리케이션 프로그램들 (238) 의 예들은, 네트워크 인터페이스 (220) 를 통해 이메일 또는 다른 메시지들을 전송 또는 수신할 수 있는 이메일 애플리케이션 (240), 현재 또는 미래 데이터 또는 시간의 기록을 유지하기 위한 또는 약속들, 태스크들, 중요 날짜들 등을 저장하기 위한 달력 애플리케이션 (242), 또는 사실상 임의의 다른 종류의 애플리케이션을 포함할 수도 있다. 이 개시물을 감안하여 당업자에 의해 이해되듯이, 다른 종류의 애플리케이션들 (238) 은 다른 기능들 또는 역량들을 제공할 수도 있고, 워드 프로세싱 애플리케이션들, 스프레드시트 애플리케이션들, 프로그래밍 애플리케이션들, 컴퓨터 게임들, 오디오 또는 시각 데이터 조작 프로그램들, 카메라 애플리케이션들, 지도 애플리케이션들, 콘택 정보 애플리케이션들, 또는 다른 애플리케이션들을 포함할 수도 있다.
적어도 하나의 실시형태에 있어서, 애플리케이션 프로그램들 (238) 은, 데이터를 해석하여 데이터 내부의 패턴들 또는 공통성들을 인식하는 것과 관련하여, 및 공통성을 갖지 않는 것들로부터 공통성들을 공유하는 엘리먼트들을 분리할 때에, 시스템 (200) 에 의해 사용될 수 있는 애플리케이션들 또는 모듈들을 포함할 수도 있다. 예를 들어, 일 예에서, 데이터 내부에서 발견되는 엘리먼트들에 의해 공유되는 패턴들 또는 공통성들에 따라, 다른 오디오 소스들에 관하여 하나 이상의 음성들 또는 다른 사운드들의 분리를 용이하게 하기 위해 오디오 데이터가 해석될 수도 있다. 그 후, 유사 데이터는 공통 소스와 연관되고 및/또는 다른 데이터로부터 분리될 때에 그룹화될 수도 있다. 오디오 또는 다른 데이터를 분석할 수도 있는 프로그램의 예는 도 2 에서의 데이터 해석 애플리케이션 (244) 에 의해 나타내질 수도 있다. 데이터 해석 애플리케이션 (244) 은 다수의 상이한 모듈들 중 임의의 것을 포함할 수도 있다. 예를 들어, 도시된 도면들에서, 데이터 해석 애플리케이션 (244) 은 샌드박스 (246) 및 워크플로우 관리자 (248) 컴포넌트들을 포함할 수도 있다. 일부 실시형태들에서, 운영 시스템 (232) 은 단일화된 파일 시스템을 가질 수도 있고, 단일화된 파일 시스템을 가지는 것처럼 보일 수도 있다. 샌드박스 컴포넌트 (246) 는, 선택적으로 물리적 콘텐츠를 별도로 유지하면서, 데이터 해석 애플리케이션 (244) 의 디렉토리들 또는 다른 정보를, 운영 시스템 (232) 에 의해 유지되는 단일화된 파일 시스템 내로 병합하기 위해 사용될 수도 있다. 따라서 샌드박스 컴포넌트 (246) 는 운영 시스템 (232) 과 함께 통합된 동작을 제공할 수도 있지만, 데이터 해석 애플리케이션 (244) 으로 하여금 별개의 및 별도의 아이덴티티를 유지하도록 허용할 수도 있다. 일부 실시형태들에서, 샌드박스 컴포넌트 (246) 는 Unionfs 오버레이일 수도 있으나, 다른 적합한 컴포넌트들이 또한 사용될 수도 있다.
워크플로우 관리자 컴포넌트 (248) 는 일반적으로 데이터 해석 애플리케이션 (244) 내의 다른 동작들을 관리하기 위한 모듈일 수도 있다. 특히, 워크플로우 관리자 (248) 는 애플리케이션의 논리 동작들, 이를테면 어떤 기능들 또는 모듈들 발신, 어떤 데이터 평가 등을 수행하기 위해 사용될 수도 있다. 워크플로우 관리자 (248) 의 결정에 기초하여, 하나 이상의 워커 (worker) 모듈들 (254) 에 대해 호들이 이루어질 수도 있다. 워커 모듈들 (254) 은 일반적으로, 컴퓨팅 시스템 (200) 에서 실행될 때에, 워크플로우 관리자 (248) 에 의해 관리되는 인스턴스 내의 프로세스들로서 동작하는 코드 또는 다른 컴퓨터 실행가능 명령들의 부분들일 수도 있다. 예를 들어, 각각의 워커 모듈 (254) 은 데이터 변환, 데이터 추적 등과 같은 특정 태스크의 성능에 전용될 수도 있다. 워커 모듈들 (254) 은 데이터 해석 애플리케이션 (244) 을 사용하여 분석되는 데이터에 대한 태스크들을 수행할 수도 있지만, 워크플로우 관리자 (248) 는 어느 워커 모듈들 (254) 이 호출할지, 및 워커 모듈들 (254) 에 의해 수행되는 동작들을 어떤 데이터가 제공할지를 결정할 수도 있다. 따라서 워커 모듈들 (254) 은 워크플로우 관리자 (248) 의 제어 하에 있을 수도 있다.
데이터 해석 애플리케이션 (244) 은 또한, 본원에 기재되거나 또는 도시된 것들을 포함하는 다른 컴포넌트들을 포함할 수도 있다. 일 실시형태에 있어서, 예를 들어, 데이터 해석 애플리케이션 (244) 은 사용자 인터페이스 모듈 (250) 을 포함할 수도 있다. 일반적으로 사용자 인터페이스 모듈 (250) 은 특정 데이터의 뷰를 정의할 수도 있다. 데이터 해석 애플리케이션 (244) 의 맥락에서, 예를 들어, 사용자 인터페이스 모듈 (250) 은 데이터 세트 내에서 인식되는 특정 패턴들, 특정 공통성들을 공유하는 데이터 세트 내의 엘리먼트들의 세트들, 특정한 소스 (예컨대, 사람, 머신들, 또는 다른 소스들) 로부터의 데이터와 패턴들의 연관들 등의 식별을 디스플레이할 수도 있다. 워크플로우 관리자 (248) 는 어떤 정보가 사용자 인터페이스 (250) 의 뷰에 적절한지를 가리킬 수도 있다.
도 2 에 더 나타낸 바와 같이, 데이터 해석 애플리케이션 (244) 은 또한 데이터 스토어 (예를 들어, 메모리 (244), 스토리지 (226), 또는 네트워크 또는 통신 상의 가용 링크) 에 저장된 데이터와 상호작용하기 위해 선택적 테이블들 모듈 (252) 을 포함할 수도 있다. 테이블들 모듈 (252) 은 데이터 해석 애플리케이션 (244) 에 의해 추출되고, 프로세싱되거나 또는 생성되는 상이한 정보를 판독, 기록, 저장, 업데이트 또는 그렇지 않으면 액세스하기 위해 사용될 수 있다. 예를 들어, 워커 모듈들 (254) 은 수신된 데이터를 해석할 수도 있고, 수신된 데이터의 엘리먼트들 내에서 패턴들 또는 다른 공통성들을 식별할 수도 있다. 데이터 내의 패턴들, 패턴과 매칭하는 데이터, 또는 수신되고 해석된 데이터와 관련된 다른 데이터가 테이블들 모듈 (252) 에 의해 관리되는 하나 이상의 테이블들에서 저장되거나 참조될 수 있다. 데이터 엘리먼트들이 식별되고, 데이터 엘리먼트들 간의 유사성들이 결정되며, 유사 또는 동일 데이터 엘리먼트들이 식별되는 등에 따라, 테이블들은 테이블들 모듈 (252) 을 사용하여 업데이트될 수도 있다. 일부 정보가 원하는 시간 (예를 들어, 통신 세션의 종료 시 또는 미리 결정된 양의 시간 이후) 에 선택적으로 제거될 수 있더라도, 선택적으로는, 테이블들 모듈 (252) 에 의해 하나 이상의 테이블들에 기록된 데이터가 지속적인 데이터일 수도 있다.
데이터 해석 애플리케이션 (244) 의 다양한 컴포넌트들은 다수의 상이한 방식들로 컴퓨팅 시스템 (200) 의 다른 컴포넌트들과 상호작용할 수 있다. 일 실시형태에서, 예를 들어, 데이터 해석 애플리케이션 (244) 은 정보의 하나 이상의 유형들을 저장하기 위해 메모리 (228) 와 상호작용할 수도 있다. RAM (228) 으로의 액세스가 워커 모듈들 (254) 및/또는 테이블 모듈 (252) 에 제공될 수 있다. 일 예로서, 데이터는 RAM (1228) 에 저장된 테이블들에 기록될 수도 있고, 또는 그로부터 판독될 수도 있다. 일부 실시형태들에서, 데이터 해석 애플리케이션 (244) 의 상이한 모듈들이 상이한 프로세서들에 의해 실행될 수도 있다. 일 예로서, GPU (216) 는 선택적으로 다중 코어들을 포함할 수도 있고, CPU (214) 보다 높은 클록 레이트, 상이한 아키텍쳐를 갖거나 플로팅 포인트 동작들을 위한 높은 용량을 가질 수도 있다. 적어도 일 실시형태에서, 워커 모듈들 (254) 은 GPU (216) 를 사용하여, 코어 마다에 기초하여 인스턴스들을 선택적으로 실행함으로써 정보를 프로세스할 수 있다. 반대로, 워커 모듈 (254) 을 어떻게 동작시키는지를 논리적으로 정의하기 위해 동작할 수 있는 워크플로우 관리자 (248) 가 CPU (214) 상에서 대신에 동작할 수도 있다. CPU (214) 는 단일 코어 또는 다중 코어들을 가질 수도 있다. 일부 실시형태들에서, 워크플로우 관리자 (248) 는 CPU (214) 상에 단일 인스턴스를 정의하여, 다중 코어들에 의해서도, CPU (214) 가 워크플로우 관리자 (248) 의 단일 인스턴스를 실행할 수도 있다.
일부 경우들에서, 워커 모듈들 (254) 의 하나 이상의 인스턴스들은 워크플로우 관리자 (248) 에 의해 정의된 컨테이너 내에 포함될 수도 있다. 이러한 구성 하에서, 단일 인스턴스의 오류 (failure) 는 워크플로우 관리자 (248) 에 의해 지향되는 바와 같이 적절하게 복구될 수도 있다. 반대로, 워크플로우 관리자 (248) 가 유사한 컨테이너의 외측에서 동작하는 실시형태들에서, 워크플로우 관리자 (248) 의 인스턴스를 중단시키면 덜 적절해질 수도 있다. 예시로서, 샌드박스 컴포넌트 (246) 및/또는 워크플로우 관리자 (248) 는, 워크플로우 관리자 (248) 의 제어 하에서 워크플로우 관리자 (248) 또는 하나 이상의 워커 모듈들 (254) 이 컴퓨팅 시스템 (200) 의 소정의 컴포넌트들 사이에서 전달되는 데이터를 해석하게 할 수도 있다. 예를 들어, 워크플로우 관리자 (248) 는, 네트워크 인터페이스 (220) 를 사용함으로써 원격 컴포넌트에 또는 스피커 컴포넌트로 정보가 송신되기 전에, 마이크로폰 상에서 또는 아웃 바운드 디바이스로부터 수신된 오디오 데이터를 해석할 수도 있다. 대안으로, 안테나 또는 네트워크 인터페이스 (220) 의 다른 컴포넌트를 통해 수신된 정보는, 스피커 컴포넌트로의 그 통신 전에 또는 다른 리모트 시스템에 통신하기 전에 해석될 수도 있다. 워크플로우 관리자 (248) 가 실패하는 경우, 운영 시스템 (232) 으로 하여금 동작을 제어하게 하고, 적어도 데이터 해석 애플리케이션 (244) 의 인스턴스가 재시작될 때까지 데이터 해석 애플리케이션 (244) 을 바이패스하게 하는, 데이터를 해석하는 데이터 해석 애플리케이션 (244) 의 능력이 중단될 수도 있다. 그러나, 워커 모듈 (254) 이 실패하는 경우, 워크플로우 관리자 (252) 가 대응 워커 모듈 (254) 의 새로운 인스턴스를 예시할 수도 있지만, 데이터 해석 애플리케이션 (244) 의 동작은 운영 시스템의 관점으로는 해석되지 않은 것으로 나타날 수도 있다.
그러나, 도 2의 시스템은 본 개시물의 실시형태들에 따라, 클라이언트 또는 엔드 유저 디바이스, 서버 컴포넌트 또는 통신 또는 다른 컴퓨팅 네트워크 내의 시스템으로서 사용될 수 있는 적절한 시스템의 일 예이다. 다른 실시형태들에서, 시스템들, 애플리케이션들, I/O 디바이스들, 통신 컴포넌트들 등의 다른 유형들이 포함될 수도 있다. 부가적으로, 데이터 해석 애플리케이션은 여전히 부가적 또는 대안적 모듈들을 구비할 수도 있고, 또는 소정의 모듈들이 단일 모듈로 결합될 수도 있고, 워크플로우 관리자의 인스턴스와 분리될 수도 있으며 또는 다르게 구성될 수도 있다.
도 3은 본 개시물의 일부 실시형태들에 따라 데이터를 분석 또는 격리시키는 일 예의 방법 (300) 을 도시한다. 방법 (300) 은 도 1 또는 도 2의 시스템에 의해 또는 시스템 내에서 수행될 수도 있지만, 방법 (300) 은 또한 다른 시스템들 또는 디바이스들에 의해 또는 이들과 접속하여 수행될 수도 있다. 본 개시물의 실시형태들에 따라, 방법 (300) 은 데이터를 수신하는 것 또는 그외 액세스하는 것 (동작 302) 을 포함할 수도 있다. 액세스된 데이터는 선택적으로 필터링 될 수도 있고 (동작 304) 버퍼링될 수도 있다 (동작 306). 데이터의 유형이 또한 확인될 수도 있다 (동작 308). 액세스된 데이터가 또한 포함되고 해석될 수도 있고 (단계 310), 분리된 데이터가 출력될 수도 있다 (동작 316). 일부 경우들에서, 데이터 해석 및 분리는 통신 세션 내에서 데이터의 적시 전달을 보장하도록 타이밍될 수도 있다.
보다 구체적으로, 데이터를 해석 및 분리하는 방법 (300) 은 데이터를 액세싱 하는 동작 (302) 을 포함할 수도 있다. 동작 (302) 에서 액세스되는 데이터는 다수의 상이한 유형들일 수도 있고 다수의 상이한 소스들로부터 수신될 수도 있다. 일 실시형태에서, 예를 들어, 데이터는 실시간으로 수신된다. 예를 들어, 오디오 데이터는 마이크로폰으로부터, 오디오 데이터를 수신 또는 오디오 데이터의 표현이 가능한 네트워크 안테나 또는 인터페이스를 통해, 또는 다른 소스로부터 실시간으로 수신될 수도 있다. 다른 실시형태들에서, 데이터는 실시간 이미지 또는 비디오 데이터, 또는 컴퓨팅 디바이스 또는 시스템에 액세스 가능한 실시간 데이터의 일부 다른 유형일 수도 있다. 다른 실시형태에서, 수신된 데이터는 저장된 데이터이다. 예를 들어, 컴퓨팅 시스템에 의해 저장된 데이터는 액세스될 수도 있고 메모리 또는 다른 저장 컴포넌트로부터 수신될 수도 있다. 이로써, 동작 (302) 에서 수신된 데이터는 실시간 데이터 동작들 또는 파일 기반 데이터 동작들에 사용될 수도 있다.
방법 (300) 은 수신된 데이터를 필터링하는 선택적 동작 (304) 을 포함할 수도 있다. 예시로서, 일 예는 (예를 들어, 실시간 또는 저장된 오디오 신호를 통해) 수신되는 오디오 데이터의 맥락에서 수행될 수도 있다. 그러한 오디오 데이터는 마이크로폰 또는 다른 소스로부터 수신된 정보를 포함할 수도 있으며, 노이즈 뿐만 아니라 스피커의 음성을 포함할 수도 있으며, 또는 인간의 음성에 의해 만들어지는 사운드들과 일치하지 않는 다른 정보 또는 기타 다른 유형의 사운드가 예상될 수 있다. 본 개시물의 관점에서 언제든 즉시에 실시간으로 또는 저장된 오디오 데이터, 사운드들 또는 상이한 소스들로부터의 데이터가 함께 결합되어 오디오 데이터의 완전한 세트를 형성할 수 있음을 알아야 한다. 즉시의 사운드들은 많은 상이한 기여 사운드들 또는 상이한 주파수들 및 진폭들에 각각 제공되는 다른 데이터로, 디바이스들, 머신들, 기구들, 사람들 또는 환경적 인자들에 의해 생성될 수 있다.
일 실시형태에서, 동작 (304) 에서 수신된 데이터를 필터링하는 것은 데이터의 원치 않는 부분들을 제거할 수 있는 필터를 적용하는 것을 포함할 수도 있다. 예를 들어, 인간의 음성 사운드들이 요구되거나 예상되는 경우, 인간의 음성에 의해 만들어질 것 같지 않은 데이터를 제거하기 위해 필터가 적용됨으로써, 인간의 음성 또는 오디오의 다른 원하는 소스에 의해 가능한 범위 내에 데이터를 남길 수 있다. 단지 예시로서만, 남성은 일반적으로 약 80Hz 내지 약 1100Hz 사이의 기본 주파수를 갖는 사운드들을 생성할 수 있는 반면, 여성은 일반적으로 약 120Hz 내지 약 1700Hz 사이의 기본 주파수를 갖는 사운드들을 생성할 수 있다. 그렇더라도, 다른 상황들에서, 인간은 결과적으로 고조파를 포함하는 약 80Hz 내지 약 1700Hz 사이의 예상된 범위 밖의 사운드를 만든다. 남성에 의해 생성되는 주파수들의 전체 범위는 약 20Hz 내지 약 4500Hz의 범위일 수 있고, 여성에 대해서는 범위가 약 80Hz 내지 약 7000Hz 사이에 있을 수 있다.
적어도 일 실시형태에서, 동작 (304) 에서 데이터를 필터링하는 것은 필터를 적용하는 것을 포함할 수도 있으며, 필터는 모두는 아니더라도 대부분의 인간 음성 데이터 또는 원하는 모든 데이터의 다른 유형을 캡처하기 위한 허용 범위를 선택적으로 포함한다. 적어도 일부 실시형태들에서, 주파수 필터는 예상된 주파수 범위의 일 측 또는 양측에 적용될 수도 있다. 예시로서, 다른 실시형태들에서 로우 엔드 (low-end) 필터가 없을 수도 있고 또는 로우 엔드 필터가 50Hz 보다 높거나 낮은 (예를 들어, 20Hz 미만) 데이터를 필터링하기 위해 있을 수 있더라도, 로우 엔드 필터는 약 50Hz 미만의 주파수들을 필터링하기 위해 사용될 수 있다. 하이 엔드 (high-end) 주파수 필터가 주파수 범위의 더 높은 엔드에 부가적으로 또는 대안적으로 배치될 수도 있다. 예를 들어, 필터는 약 2000Hz 이상의 사운드들을 필터링하기 위해 사용될 수도 있다. 다른 실시형태들에서, 상이한 주파수 필터들이 사용될 수도 있다. 예를 들어, 적어도 일 실시형태에서, 하이 엔드 주파수 필터가 약 3000Hz 이상의 데이터를 필터링하기 위해 사용될 수도 있다. 주파수 필터가 또한 약 3000Hz 미만 또는 이상 (예를 들어, 7000Hz 이상) 의 데이터를 필터링할 수 있더라도, 그러한 필터는 인간 음성의 고조파의 넓은 범위 뿐만 아니라 인간의 음성 그리고 오디오 데이터의 다른 포텐셜 소스들을 캡처하는데 유용할 수도 있다. 음성 데이터가 예상되거나 요구되는 다른 실시형태에서, 필터는 단순히 원하는 주파수 범위를 식별 또는 통과시키기 위해 사용될 수 있는 반면, 그 범위 밖의 정보는 폐기되거나 그렇지 않으면 프로세싱된다. 일 실시형태에서, 데이터는 방법 (300) 동안 변환되어 식별된 주파수 성분을 가질 수 있으며, 원하는 범위 외측의 주파수들을 갖는 데이터 포인트들은 무시되거나 삭제될 수도 있다.
동작 (304) 에서 데이터를 필터링하는 예들의 상기 설명들은 단지 예시일 뿐이다. 동작 (304) 에서 데이터를 필터링하는 것은 선택적인 것이고 모든 실시형태들에서 사용될 필요는 없다. 데이터 필터링이 사용되는 다른 실시형태들에서, 데이터는 방법 (300) 내의 다른 단계들에서 (예를 들어, 동작 (308) 에서 데이터 유형을 검증하는 부분으로서 또는 단계 (310) 에서 데이터를 포함시키거나 격리시키는 부분으로서) 필터링될 수도 있다. 액세스된 데이터는 오디오 특성들 (예를 들어, 인간 음성 특성들) 과 같은 주파수 또는 다른 기준에 따라 필터링될 수 있다. 동작 (304) 에서의 데이터 필터링은, 예를 들어 데이터가 아날로그 데이터인지, 디지털 데이터인지, 암호화된 데이터인지, 이미지 데이터인지 또는 압축된 데이터인지와 같은 기준을 포함하는, 오디오 데이터 및 데이터의 다른 유형들에 대한 기준에 기초하여 데이터를 필터링할 수도 있다.
동작 (302) 에서 수신된 데이터는 동작 (306) 에서 버퍼에 저장될 수도 있다. 동작 (306) 동안 버퍼에 저장된 데이터는 동작 (302) 에서 액세스된 데이터를 포함할 수도 있고, 또는 방법 (300) 이 동작 (304) 을 포함하는 실시형태들에서와 같은 필터링된 데이터를 포함할 수도 있다. 본 명세서에 개시된 바와 같이, 데이터가 필터링되는지 또는 데이터의 어떠한 유형이 나타나는지에 관계없이, 버퍼에 저장된 데이터는 데이터 해석, 패턴 인식 또는 분리를 위해 사용될 수도 있다. 일 실시형태에서, 버퍼 (306) 는 미리 결정된 양의 데이터만을 저장하도록 구성된 제한된 사이즈를 갖는다. 예시로서, 전화 통화의 예에서, 소정 양의 데이터 (예를 들어, 2MB) 또는 데이터에 대한 시간 주기 (예를 들어, 15초) 가 메모리 또는 다른 저장소 내의 버퍼에 저장될 수도 있다. 데이터가 오디오 데이터인지, 이미지 데이터인지, 비디오 데이터인지 또는 데이터의 다른 유형들인지, 그리고 스트림, 실시간 소스 또는 심지어 파일로부터 수신되는 그렇지 않든, 초기의 데이터는 새로운 데이터로 대체될 수 있다. 다른 실시형태들에서, 동작 (302) 에서 액세스된 데이터는 버퍼링되지 않을 수도 있다. 예를 들어, 필터 기반 동작에서, 전체 데이터 세트가 이미 이용가능할 수도 있어서, 증분의 버퍼링, 데이터의 실시간 부분들이 필요하거나 바람직하지 않을 수도 있다.
동작 306 에서의 버퍼로의 데이터의 선택적 저장 전 또는 그 후, 동작 308 에서, 데이터의 유형이 확인될 수도 있다. 그러한 확인 프로세스는 데이터의 예상된 유형들에 대하여 수신된 데이터를 평가하는 것을 포함할 수도 있다. 데이터 확인의 예들은 데이터가 오디오 데이터, 이미지 데이터, 비디오 데이터, 암호화된 데이터, 압축된 데이터, 아날로그 데이터, 디지털 데이터, 다른 유형들의 데이터, 또는 상기의 임의의 조합임을 확인하는 것을 포함할 수도 있다. 데이터 확인은 또한, 데이터가 데이터의 유형의 서브세트 (예를 들어, 특정 포맷의 이미지, 비디오 또는 오디오 데이터, 특정 유형의 암호화, 등) 내에 있음을 확인하는 것을 포함할 수도 있다. 예시로서, 오디오 데이터가 전화 호 동안에 예상될 수도 있다. 그러한 데이터는, 모니터링될 수 있는 특정 특성들을 가질 수도 있다. 오디오 데이터는, 예를 들어, 도 5 에 도시된 바와 같은 2 차원 파형을 이용하여 일반적으로 표현될 수 있는 데이터를 포함할 수도 있으며, 그 2 차원들은 시간 컴포넌트 및 진폭 (즉, 분량 또는 세기) 컴포넌트를 포함한다. 방법 300 이 다른 유형들의 데이터를 찾고 있다면, 그 정보와 연관된 특성들이 확인될 수도 있다.
데이터가 평가되고 동작 308 에서의 확인이 그 데이터가 예상된 데이터 유형에 부합하지 않음을 나타내면, 프로세스는 수신된 데이터를 출력하는 동작 318 로 진행할 수도 있다. 그러한 실시형태에 있어서, (동작 306 에서 저장된 바와 같은) 버퍼, 파일 또는 다른 위치에 저장된 대응하는 데이터는 데이터 출력 컴포넌트 (예를 들어, 스피커, 디스플레이, 파일 등) 에 전달될 수도 있다. 따라서, 출력되는 정보는, 일반적으로, 동작 302 에서 수신되거나 그렇지 않으면 액세스된 정보와 동일할 수도 있으며, 방법 300 의 동작 310 에서의 해석을 잠재적으로 바이패스할 수 있다. 하지만, 동작 308 에서 확인된 데이터가 예상된 유형인 것으로 판정되면, 데이터는 별도의 프로세싱을 위해 컨테이너로 전달될 수도 있다. 도 3 은 예를 들어, 확인된 데이터가 단계 310 에서 해석될 수도 있음을 나타낸다. 그러한 단계는 데이터를 해석하거나 그렇지 않으면 프로세싱하여 데이터 내의 엘리먼트들의 패턴들 및 공통성을 식별하는 것, 및/또는 다른 모든 데이터 엘리먼트들에 대하여 특정한 공통 특성, 패턴 또는 특징을 갖는 데이터 엘리먼트들을 분리하는 것을 포함할 수도 있다. 대안적으로, 데이터를 포함 또는 격리하는 동작 310 은 데이터를 해석하거나 그렇지 않으면 프로세싱하는 것, 및 데이터 내에서 다수의 상이한 특성들, 패턴들 또는 특징들을 검출하는 것을 포함할 수도 있다. 데이터 내의 각각의 별도의 특성, 패턴 또는 특징이 고려될 수도 있으며, 각각의 대응하는 패턴, 특성 또는 특징에 매칭하는 데이터의 모든 엘리먼트들이 공통 데이터 엘리먼트들의 각각의 세트들로 분리될 수 있다. 더 상세하게, 각각의 세트는, 데이터를 분리된 데이터의 다른 세트들로 형성하는데 사용되는 패턴들로부터 구별가능한 특정 패턴의 데이터 엘리먼트들을 포함할 수도 있다. 따라서, 데이터는 동작 310 에서, 하나의 데이터 세트, 2개의 데이터 세트들, 또는 임의의 수의 다중의 데이터 세트들로 분리될 수도 있다.
일단 원하는 데이터가 단계 310 에서 해석되거나 분석되거나 분리되거나 그렇지 않으면 포함 또는 프로세싱되면, 데이터는 동작 316 에서 출력될 수 있다. 이는 실시간 데이터를 출력하는 것 또는 저장된 데이터를 출력하는 것을 포함할 수도 있다. 진행 중인 전화 호의 예에서, 데이터 출력은 전화 호의 일단 또는 타단에서의 스피커의 음성에 대응할 수도 있으며, 그 음성은 배경 사운드들, 노이즈, 잔향, 에코 등으로부터 분리된다. 전화 호로부터의 출력 데이터는 네트워크를 통한 전송을 위해 스피커 또는 통신 컴포넌트에 제공될 수도 있으며, 스피커의 격리된 음성을 포함하고 이에 의해 전화 통화 동안 향상된 명료성을 제공할 수도 있다. 분리되고 재구축되거나 재구성된 데이터를 포함할 수도 있는 출력을 제공하는 디바이스는 종단점 디바이스 또는 중간 디바이스를 포함할 수도 있다. 다른 실시형태들에서, 출력 데이터는 다른 유형들일 수도 있으며 실시간 또는 저장된 데이터일 수도 있다. 예를 들어, 파일이 해석될 수도 있고, 파일의 프로세싱으로부터의 출력이 생성되고 파일에 기입될 수도 있다. 다른 실시형태들에서, 실시간 통신들 또는 다른 데이터가, 연속된 실시간 또는 스트리밍된 출력이기 보다는 파일로서 출력될 수도 있다. 다른 실시형태들에서, 실시간이든지 또는 저장되었든지 출력된 데이터는 오디오 데이터 이외의 데이터일 수도 있다.
적어도, 전화 또는 유사한 통신을 포함하지만 이에 한정되지 않는 일부 실시간 데이터 통신의 맥락에서, 착신 또는 발신 오디오 데이터를 프로세싱하는 것은 통화에 있어서 지연들을 도입할 수도 있음을 인식할 것이다. 현저한 지연들은 바람직하지 않을 수도 있다. 더 상세하게, 현대 통신은 사운드, 이미지 또는 비디오 통화들의 거의 즉각적인 전달을 허용하고, 통신하고 있는 사람들은, 통상적으로, 그 통신들이 가능하면 적은 래그 시간을 포함하기를 선호한다. 방법 300 에 있어서, 데이터가 실시간으로 수신되면, 데이터를 해석 및 프로세싱하여 특정 엘리먼트들로 격리 또는 분리하는 것은, 통화 또는 다른 통신에 도입될 수 있는 주목할만한 래그 (예를 들어, 초 당 8 이상, 1/2 초 이상) 를 생성하는 시간 양이 걸릴 수 있다. 그러한 지연은 일부 실시간 통신들에 대해 적절할 수도 있지만, 프로세싱으로 인한 지연들이 증가함에 따라, 특정 실시간 데이터의 품질 및 편의성은 저감할 수도 있다.
데이터를 해석하거나 분리하거나 재구성하거나 재구축하거나 그렇지 않으면 프로세싱함으로써 도입된 지연이 관심사인 경우, 방법 300 은 데이터의 적시의 전달을 보장하기 위한 선택적 대책들을 포함할 수도 있다. 그러한 대책들은 실시간 데이터 통신 시스템들에 특히 유용할 수도 있지만, 다른 시스템들에 사용될 수도 있다. 파일 기반 동작은 또한, 데이터의 적절한 또는 적시의 전달을 보장하는 특정 양태들을 포함할 수도 있다. 일 예로서, 애플리케이션들을 프로세싱하는 적시 (timeliness) 들을 보장하기 위한 대책들은 방법 300 으로 하여금, 데이터 또는 프로세싱 시간이 그 방법을 수행하는 시스템이 특정 동작에서 단절 또는 실속 (stall) 하게 하거나 그렇지 않으면 데이터의 전달을 너무 길게 (예를 들어, 설정된 시간 임계치 초과) 지연하게 한다면 특정 데이터를 해석하거나 더 프로세싱하는 것을 바이패스할 수 있게 하도록 사용될 수도 있다.
일부 실시형태들에서, 데이터 전달이 중대하거나 중요한 시간에서, 방법 300 은 타이밍 동작을 포함할 수도 있다. 그러한 타이밍 동작은, 동작 312 에서 타이머를 초기화하는 것을 포함할 수도 있다. 타이머는, 프로세싱이 동작 310 에서 데이터를 격리하거나 포함하기 시작하는 시간 근방에서 초기화될 수도 있다. 대안적으로, 타이머는 다른 시간들에서 초기화될 수도 있다. 타이머는, 예를 들어, 동작 308 에서 데이터 유형이 확인될 때, 동작 304 에서 데이터가 필터링될 때, 동작 302 에서 데이터의 수신 또는 다른 액세스할 시 즉시로, 동작 306 에서 데이터가 선택적으로 버퍼에 먼저 저장될 때, 또는 다른 적절한 시간에 시작될 수도 있다.
동작 312 에서 시작된 타이머는, 선택적으로, 최대 시간 지연에 대해 평가된다. 동작 314 에서, 예를 들어, 타이머는 최대 시간 지연에 대해 측정될 수도 있다. 타이머가 최대값을 초과하지 않았다면, 방법 300 은 동작 310 에서의 데이터 해석 및/또는 분리를 계속하게 할 수도 있다. 대안적으로, 동작 310 에서의 해석 및/또는 분리가 너무 길어서 최대 시간이 초과되면, 동작 314 에서의 판정은 특정 데이터에 대해 동작 310 을 종료하거나 그렇지 않으면 그러한 프로세싱을 바이패스하도록 동작할 수도 있다. 일 예에서, 일단 최대 시간 지연이 초과되었으면, 방법 300 은 동작 306 동안 버퍼에 저장되고 또한 동작 310 에서 해석된 정보에 대응하는 정보를 획득하는 것, 및 동작 318 에 도시된 바와 같이, 격리된 데이터를 출력하는 것 대신 액세스된 버퍼링된 데이터를 출력하는 것을 포함할 수도 있다. 데이터가 버퍼링되지 않은 실시형태들에서, 데이터는 원래의 소스 또는 다른 소스로부터 재-액세스되고 그 후 동작 310 을 바이패스하도록 출력될 수도 있다. 수신된 데이터가 출력될 경우, 해석된 분리된 데이터와는 대조적으로, 방법 300 은 또한 동작 310 의 해석 프로세스를 종료하게 할 수도 있다.
타이머 또는 다른 타이밍 대책이 포함되는 선택적 실시형태들에서, 사용된 최대 시간 지연은 변경될 수도 있고, 임의의 적절한 방식으로 결정 또는 변경될 수 있다. 일 실시형태에 있어서, 최대 지연은 고정되거나 하드 코딩된 값일 수도 있다. 예를 들어, 약 0 내지 약 250 밀리초의 지연은 특정 유형의 데이터에 대해 거의 지각될 수 없을 수도 있다고 결정될 수도 있다. 예를 들어, 약 250 밀리초의 지연은 실시간 사운드, 이미지 또는 비디오 통신에서 단지 간신히 주목할 만할 뿐일 수도 있으며, 따라서, 통신의 품질을 현저하게 손상시키지는 않을 수도 있다. 그 시나리오에서, 동작 314 에서 평가된 시간은 250 밀리초에 기반할 수도 있다. 타이머 카운트가 250 밀리초에 도달하기 전에, 데이터를 해석 및/또는 분리하기 위한 동작 310 에서의 프로세싱이 완료되면, 동작 316 에서, 격리된 데이터가 출력될 수도 있다. 하지만, 타이머 카운트가 250 밀리초에 도달하기 전에 동작 310 에서의 프로세싱이 완료되지 않았으면, 동작 310 의 프로세싱은 종료될 수도 있고/있거나 동작 318 에서의 출력은, 존재할 경우 버퍼로부터 획득될 수도 있는 원래 수신된 데이터를 포함할 수도 있다. 하지만, 타이머는, 그러한 예가 순수하게 예시적이기 때문에 250 밀리초로부터 변할 수도 있다. 다른 실시형태들에서, 예를 들어, 타이머는 최대 500 밀리초, 1초, 또는 심지어 그 초과의 지연을 허용할 수도 있다. 다른 실시형태들에서, 타이머는 250 밀리초 미만의 지연, 125 밀리초 미만의 지연, 또는 일부 다른 지연을 허용할 수도 있다.
다른 실시형태들에서, 최대 지연은 250 밀리초보다 더 크거나 더 작을 수도 있다. 적어도 일부 실시형태들에 따르면, 비록 더 크거나 더 작은 시간 값들이 사용될 수도 있지만, 시간 주기는 약 75 밀리초와 약 1 시간 사이일 수도 있다. 예시로서, 예를 들어, 약 75 와 약 125 밀리초들 간의 최대 시간 값이 실시간 오디오, 이미지 또는 비디오 통신들에서의 임의의 지연의 지각을 추가로 감소시키기 위해 사용될 수도 있다.
타이머의 길이에 무관하게, 타이머의 값은 정적이거나 동적일 수도 있다. 예를 들어, 특정 애플리케이션은 특정 값 (예를 들어, 75 밀리초, 125 밀리초, 또는 250 밀리초) 의 최대 타이머를 허용하도록 하드-코딩될 수도 있다. 다른 실시형태들에서, 타이머 길이는 동적으로 변경될 수도 있다. 예를 들어, 파일 사이즈가 고려되면, 시스템은, 5 MB 파일을 분석하는데 사용된 타이머가 5 GB 파일을 분석하기 위한 타이머보다 훨씬 더 작을 수도 있음을 자동으로 결정할 수도 있다. 부가적으로 또는 대안적으로, 타이머 값은, 분석되는 데이터의 유형 (예를 들어, 오디오, 이미지, 비디오, 아날로그, 디지털, 실시간, 저장형 등), 발생하는 데이터 통신의 유형 (예를 들어, 표준 전화, VOIP, TCP/IP 등), 또는 다른 관심사들, 또는 상기의 임의의 조합과 같은 다른 인자들에 기초하여 변할 수도 있다.
타이머 및 버퍼 양자가 사용되는 실시형태들에서, 타이머의 길이는 또한 버퍼의 사이즈와 관련되거나 또는 그와 독립적일 수도 있다. 예를 들어, 125 밀리초 타이머는 버퍼가 약 125 밀리초의 정보를 저장함을 나타내고/내거나 약 125 밀리초의 데이터를 각각 저장하는 다중의 버퍼들이 사용됨을 나타낼 수 있다. 하지만, 다른 실시형태들에서, 타이머는 버퍼에 저장된 정보의 양에 대해 시간적으로 더 짧을 수도 있다. 예를 들어, 심지어 버퍼가 더 많은 양의 정보 (예를 들어, 250 밀리초의 데이터, 15초의 데이터, 1시간의 데이터 등) 를 보유하는 경우에도, 125 밀리초의 타이머가 사용될 수도 있다.
다른 실시형태들에서, 실시간 데이터의 해석에 의해 야기된 지연은 현저하지 않을 수도 있음을 인식해야 한다. 예를 들어, 데이터가 실시간 데이터가 아니지만 대신 저장된 데이터라면, 데이터를 프로세싱하기 위한 시간은 현저한 것으로서 고려하지 않을 수도 있다. 실제로, 심지어 실시간 데이터에 대해서도, 프로세싱에 있어서의 지연들은, 실시간 데이터가 저장된 데이터로 변환되고 있는 경우와 같이 특별히 현저하지 않을 수도 있다. 시간 민감형이 아닌 애플리케이션들에 있어서, 타이머는 제거될 수도 있거나, 또는 타이머가 사용될 수도 있지만 더 큰, 잠재적으로는 훨씬 더 큰 최대 시간 지연을 선택적으로 포함할 수 있다. 예를 들어, 예시적인 실시형태는 1 시간의 값을 설정할 수도 있어서, 전체 파일의 해석이 1 시간 내에 완료되지 않으면, 동작이 종료될 수도 있다. 다른 실시형태들에서, 타이머 값이 초과될 경우, 경고가 나타나서, 사용자 또는 관리자로 하여금 프로세싱을 계속할지 여부를 결정하게 할 수도 있다. 다른 실시형태에 있어서, 타이머 값이 초과되면, 해석되고 있는 데이터가 자동으로 슬라이싱되어, 소정 시간에 해석되는 데이터의 분량을 감소시킬 수도 있거나, 또는 사용자 또는 관리자에게, 데이터가 슬라이싱되어야 하는지 여부를 선택할 능력이 제공될 수도 있다. 특정 지연과 무관하게, 페일세이프(failsafe) 데이터 프로세싱 시스템이 제공될 수도 있어서, 프로세싱이 지연되는 경우라도, 통신들 또는 다른 프로세싱 동작들이 원하는 양을 초과하여 해석 또는 지연되지 않는다. 그러한 프로세싱은 데이터가 실시간 데이터든지, 파일 기반 데이터든지, 또는 일부 다른 유형의 데이터든지 사용될 수도 있다.
본원에 언급된 바와 같이, 분석되는 정보는 동일한 데이터 세트의 상이한 엘리먼트들 간의 패턴들 및 공통성들을 인식하는데 이용될 수도 있고, 특정 패턴들 또는 공통성들에 매칭하는 데이터 엘리먼트들은 실시간으로 또는 다른 방식들로 출력될 수도 있다. 실시간 분석 및 출력의 예들은 네트워크를 통하거나 전화 호 내의 스트리밍 오디오 데이터를 포함할 수도 있다. 실시간 데이터는 버퍼링될 수도 있으며, 버퍼는 새로운 데이터로 점차 대체되는 데이터의 별개의 양들을 저장한다. 대화의 데이터, 스트리밍된 데이터, 또는 다른 실시간 데이터의 모두가 단일 시간에 이용가능하지 않을 수도 있기 때문에, 분석된 데이터가 완전한 데이터 세트를 포함하지 않을 수도 있고, 대신 보다 작은 시간의 세그먼트들 또는 슬라이스들로 나눠질 수도 있다. 이러한 실시형태에서, 동작들 316 및 318 에서 출력되는 데이터는 전체 대화, 파일, 또는 다른 소스의 데이터보다는 개개의 세그먼트들 또는 슬라이스들의 데이터에 대응할 수도 있다.
실시간 또는 데이터가 특히 분석되고 출력되는 다른 데이터 전송 시나리오에서, 프로세싱할 데이터가 더 있는지 여부에 관한 결정이 동작 320 에서 이루어질 수도 있다. 이러한 결정은 분리된 또는 그렇지 않으면 격리된 데이터가 저장, 출력, 또는 그렇지 않으면 결정된 후에 일어날 수도 있다. 프로세싱할 데이터가 더 있는지 여부를 결정하는 것은, 존재하는 경우, 아직 분석되지 않은 추가적인 데이터가 버퍼에 저장되어 있는지 여부를 고려함으로써, 또는 다른 방법들로, 동작 302 에서 데이터가 수신되거나 액세스되는 통신 채널을 모니터링하는 것을 포함할 수도 있다. 해석해야 할 추가적인 정보가 없는 경우, 프로세싱이 끝날 수도 있고 방법 (300) 은 동작 322 에서 종료될 수도 있다. 대안으로, 분석해야할 추가적인 데이터가 있는 경우, 방법 (300) 은 동작 302 에서 추가적인 데이터를 수신하거나 액세스함으로써 계속될 수도 있다. 실시간 통신 시나리오 중의 모든 시간들에, 또는 심지어는 데이터가 전체가 아니라 조각들로 분석되는 경우 파일 기반 동작에서 다수의 시간들에, 전화 통화, 또는 다른 통신에서 계속될 수도 있는 동작 302 로 돌아가는 대신에, 방법은 대신 동작 310 로 돌아갈 수도 있다. 이러한 동작에서, 버퍼링된 데이터 (306) 는 추출, 포함, 분석, 해석, 분리, 격리되거나, 그렇지 않으면 프로세싱될 수도 있다. 따라서, 방법 (300) 은 데이터의 길이에 걸쳐 반복하여 수행되어 전체 대화 또는 다른 통신 내의 데이터를 점차 분리하도록 데이터의 부분들을 분리할 수도 있다.
본원에 논의된 바와 같이, 방법 (300) 은 임의의 다수의 유형의 상이한 데이터에 대해 수행될 수도 있고, 그 데이터는 임의의 다수의 상이한 소스들로부터 액세스될 수도 있거나 그렇지 않으면 수신될 수도 있다. 예를 들어, 전화 호의 형태의 오디오 데이터는 마이크로폰 컴포넌트를 이용하는 수신 오디오 데이터를 포함할 수도 있다. 수신 전화에서, 오디오 데이터는 버퍼링되어 특정 데이터 (예를 들어, 스피커의 음성) 가 데이터에서 인식된 패턴들에 기초하여 격리될 수도 있는 컨테이너에 배치될 수도 있다. 격리된 데이터는 통신 인터페이스에 출력되어 수신 전화 디바이스에 송신될 수도 있다. 또한, 전화 호 예에서, 수신 디바이스에서 오디오 데이터가 분석될 수도 있다. 이러한 정보는 안테나 또는 다른 통신 컴포넌트를 통해 수신될 수도 있다. 수신 디바이스에서, 전송자의 음성이 격리되어 스피커 컴포넌트에 출력될 수도 있다. 일부 실시형태들에서, 단일 디바이스가 착신 또는 발신 오디오 데이터 중 단지 하나의 데이터만을 선택적으로 프로세싱할 수도 있으나, 다른 실시형태들에서는 디바이스가 착신 및 발신 오디오 데이터 양자 모두를 분석하고 프로세싱할 수도 있다. 또 다른 실시형태들에서, 전화 호는 원격 디바이스 (예를 들어, 서버 또는 클라우드 컴퓨팅 시스템) 에서 전송자 및/또는 청취자 디바이스들 양자 모두를 프로세싱하는 것, 또는 앞서 언급한 것의 조합을 이용하는 것을 포함할 수도 있다. 분석되는 데이터는 또한 전화 호 세팅의 외부에서 수신되거나 액세스될 수도 있다. 예를 들어, 오디오 데이터는 청취 보조부에 의해 수신되어 실시간으로 분석될 수도 있다. 이전에 생성된 오디오 데이터는 또한 파일에 저장되고 액세스될 수도 있다. 다른 실시형태들에서, 다른 유형의 오디오 또는 다른 데이터가 포함되어 실시간으로 또는 생성 후에 분석될 수도 있다.
데이터를 해석하고/하거나 분리하거나, 그렇지 않으면 액세스된 데이터를 프로세싱하는데 수반되는 실제 단계들 또는 프로세스는 다양한 환경들 또는 조건들에 기초하여 달라질 수도 있다. 예를 들어, 분석되는 데이터의 유형, 분석되는 데이터의 양, 데이터를 해석하는데 이용가능한 프로세싱 또는 컴퓨팅 자원들 등은 어떤 프로세싱, 분석, 포함, 또는 격리 프로세스들이 일어날지에 각각 영향을 미칠 수도 있다. 따라서, 적어도 도 3 의 동작 310 에서는, 수행될 수도 있는 많은 상이한 유형의 프로세스들, 단계들, 또는 동작들을 포함하거나 나타낼 수도 있다. 데이터를 분석하고 데이터 내의 패턴들을 검출하는 일 유형의 방법의 예가 도 4 에서 추가적으로 상세히 더 도시된다.
데이터를 분석하고 데이터 내의 패턴들을 검출하기 위한 일부 실시형태들의 논의를 간단하게 하기 위해, 도 4 의 방법 (400) 은 또한 전화 호에서의 실시간 오디오의 수신에 대해 논의될 것이다. 이러한 예는 단지 예로서 이해되어야 한다. 실제로, 본원에 설명된 바와 같이, 본 개시물의 실시형태들은 다른 실시간 오디오, 지연된 또는 저장된 오디오, 또는 심지어는 비오디오 정보와 관련하여 이용될 수도 있다.
도 4 의 방법 (400) 은 데이터를 분석하고 패턴들을 검출하고, 실시간 오디오 데이터를 분석하고 데이터 내에서 하나 이상의 상이한 오디오 소스들을 검출하여 격리하는 것과 관련하여 유용할 수도 있는 일 예시적인 방법을 도시한다. 도 4 의 이해를 용이하게 하기 위해, 도 4 의 특정 단계들 또는 동작들에 대한 참조가 도 5 - 도 16 에 도시된 바와 같은 다양한 데이터 유형들이나 데이터 표현들, 또는 데이터 저장 컨테이터들과 관련하여 이루어진다.
도 3 과 관련하여 논의된 바와 같이, 본 개시물의 실시형태들에 따라 프로세싱된 데이터는 저장될 수도 있다. 예를 들어, 실시간 오디오 정보가 메모리 버퍼에 적어도 일시적으로 저장될 수도 있으나 다른 유형의 저장부가 이용될 수도 있다. 데이터가 일부 방식으로 저장되는 경우, 동작 (402) 에 도시된 바와 같이, 데이터가 별개의 부분들로 선택적으로 슬라이싱될 수도 있다. 실시간 오디오 정보를 저장하는 메모리 버퍼의 예에서, 메모리 버퍼는 다량의 정보를 저장하기 시작할 수도 있다. 선택적으로, 동작 (402) 에서 오디오 정보를 슬라이싱하는 것은 저장되거나 이용가능한 전체 양보다 적은 양의 오디오 정보를 추출하는 것을 포함할 수도 있다. 예를 들어, 메모리 버퍼가 꽉찬 경우, 데이터를 슬라이싱하는 것 (402) 은 프로세스 (400) 에 대한 저장된 정보의 서브세트를 이용하는 것을 포함할 수도 있다. 메모리 버퍼가 정보를 저장하기 시작하는 경우, 동작 (402) 에서 데이터를 슬라이싱하는 것은 미리 결정된 정보의 양이 버퍼링될 때까지 기다리는 것을 포함할 수도 있다. 그 다음에, 슬라이싱된 데이터의 양이 프로세싱될 수도 있으며, 한편 다른 정보가 버퍼 또는 다른 데이터 저장부 내로 수신된다.
동작 (402) 에서 생성된 데이터의 슬라이스들은 다양한 상이한 사이즈들의 데이터 슬라이스들을 초래할 수도 있거나, 슬라이스들은 각각 일반적으로 미리 결정된 사이즈일 수도 있다. 도 5 는, 예를 들어, 오디오 데이터의 표현을 도시한다. 오디오 데이터는 2 차원 특성들을 갖는 아날로그 파형 (500) 으로서 표현될 수도 있는 방식으로 생성되거나 제공될 수도 있다. 도 5 에서, 예를 들어, 2 차원 파형 (500) 은 시간 차원 및 진폭 차원을 가질 수도 있다. 다른 실시형태들에서, 디지털 데이터, 아날로그 데이터의 디지털 표현, 오디오 데이터 이외의 데이터, 또는 다른 포맷들을 포함하여 다른 방식들로 데이터가 제공되거나 표현될 수도 있다.
도 5 에서 파형 (500) 으로 표현된 데이터가 오디오 데이터인 경우, 데이터는 전화의 마이크로폰 또는 안테나에 의해 수신되거나, 파일로부터 액세스되거나, 그렇지 않으면 메모리 버퍼나 다른 위치에 수신되어 저장될 수도 있다. 도 4 의 방법 (400) 의 맥락에서, 파형 (500) 으로 표현된 데이터는 별개의 부분들로 슬라이싱 될 수도 있다. 도 5 에 도시된 바와 같이, 데이터는 4 개의 슬라이스들 (502a-502d) 로 세그먼트화되거나 슬라이싱될 수도 있다. 이러한 슬라이스들 (502a-502d) 은 데이터가 수신됨에 따라 증가하여 생성될 수도 있으나, 저장된 데이터에 대해서는 슬라이스들 (502a-502d) 이 거의 동시에 생성될 수도 있거나, 데이터를 슬라이싱하는 것이 심지어 생략될 수도 있다.
도 4 의 방법으로 돌아가면, 따라서, 동작 (402) 에서의 데이터의 슬라이싱은 본 개시물의 일부 실시형태들에 따라 선택적이다. 데이터를 슬라이싱하는 동작 (402) 는, 예를 들어, 실시간 데이터가 수신되는 경우 특히 유용할 수도 있다. 전화 호 또는 다른 실세계나 실시간 상황에서, 오디오 데이터가 계속적으로 생성될 수도 있고, 대화의 모든 오디오 데이터를 액세스할 기회나 오디오 데이터가 수신 측에 송신되기 전에 다른 시나리오가 없을 수도 있다. 저장된 음악 또는 다른 오디오 파일이 프로세싱되는 예에서, 모든 정보가 맨 처음에서 (up-front) 이용가능할 수도 있다. 이러한 경우에, 프로세싱이 정보의 보다 작은, 별개의 세그먼트들에 걸쳐 일어날 수 있도록 데이터 슬라이싱이 수행될 수도 있으나, 다른 실시형태들에서는 슬라이싱이 생략될 수도 있다.
데이터의 어떤 부분이 분석될지 여부, 그것이 데이터의 슬라이스 또는 전체 파일 또는 데이터의 다른 컨테이너일지 여부에 따라 데이터가 초기 형태로 표현될 수도 있다. 도 5 에 도시된 바와 같이, 그 형태는 2 차원일 수도 있으며, 선택적으로 진폭 및 시간의 차원들을 가질 수도 있다. 다른 실시형태들에서, 2 차원 데이터가 다른 포맷들로 획득될 수도 있다. 예를 들어, 데이터는 시간 컴포넌트를 포함하나 상이한 2 차원 데이터 값을 포함할 수도 있다. 2 차원에 대한 다른 데이터 값들은 주파수 또는 파장을 포함할 수도 있으나, 또 다른 2 차원 데이터가 오디오, 비디오, 이미지, 또는 다른 데이터에 대해 이용될 수도 있다.
도 5 의 파형 (500) 과 관련하여 좀더 특히, 파형은 시간 및 진폭 데이터를 포함할 수도 있다. 시간 데이터는 일반적으로 어느 시간에서 하나 이상의 사운드들이 발생할지를 표현한다. 진폭 데이터는 어떤 볼륨 또는 전력 컴포넌트가 그 시간에 데이터와 연관될지를 표현할 수도 있다. 진폭 데이터는 또한 사운드들과 진폭 컴포넌트에 대한 부분에 기여하는 각각의 사운드의 결합을 표현할 수도 있다. 도 4 의 데이터 분석 및 패턴 인식 방법 (400) 을 계속 수행할 시에, 도 5 의 파형 (500) 으로 표현된 데이터, 또는 분석될 수도 있는 그러한 다른 데이터가 단계 404 에서 변환될 수도 있다. 본원에 논의된 바와 같이, 프로세싱되는 데이터는 데이터의 보다 큰 부분의 서브세트인 슬라이스 내에 있을 수도 있으며, 전체 데이터 세트를 분석하기 위해 반복적인 프로세스가 발생할 수도 있으나, 다른 실시형태들에서는 전체 데이터 세트가 동시에 프로세싱될 수도 있다. 따라서, 일부 실시형태들에서, 단계 404 에서 데이터를 변환하는 것은 데이터의 슬라이스 (예를 들어, 도 5 의 슬라이스 (502a-502d) 내의 데이터) 를 변환하는 것, 또는 전체 데이터 세트 (예를 들어, 파형 (500) 의 일부의 파형으로 표현된 데이터) 를 변환하는 것을 포함할 수도 있다.
오디오 또는 다른 유형의 데이터는 다수의 상이한 방식들로 변환될 수도 있다. 일 예시적인 실시형태에 따라, 도 5 로 표현되는 오디오 데이터는 도 4 의 동작 (406) 에서 제 1 유형의 2 차원 데이터로부터 제 2 유형의 2 차원 데이터로 변환된거나 변환될 수도 있다. 수행되는 변환의 유형은 달라질 수도 있으며, 따라서 이러한 변환으로부터 기인하는 차원들의 유형이 달라질 수도 있다. 일 실시형태에 따라, 예를 들어, 데이터는 시간/진폭 도메인으로부터 시간/주파수 도메인으로 변환될 수도 있다. 특히, 예시적인 시간/진폭 데이터를 프로세싱할 시에, 피크들과 밸리들 간의 변화의 주파수들과 함께, 다양한 피크들 및 밸리들이 고려될 수 있다. 이러한 주파수들은 주파수들이 발생하는 시간에 따라 식별될 수 있다. 2 차원 시간/주파수 정보가 동작 (406) 에서 생성되거나 그려질 수도 있으나, 데이터는 다른 방식들로 그리도 다른 차원들로 변환될 수도 있다.
동작 (406) 을 이용하여 변환된 데이터가 획득되는 특정 방식은 수행될 변환의 유형에 기초하여 달라질 수도 있다. 일 예시적인 실시형태에 따라, 변환된 데이터는 도 5 의 파형 (500) 으로 표현된 데이터에 푸리에 변환을 적용함으로써 생성될 수도 있다. 일 예시적인 푸리에 변환은 통합된 보통의 주파수를 이용하는 분수차 (fractional) 푸리에 변환일 수도 있다. 다른 실시형태들에서, 다른 유형의 푸리에 변환들 또는 스펙트럼 분석에서 이용가능한 다른 변환들이 이용될 수도 있다. 데이터가 슬라이싱되는 경우, 각각의 슬라이스는 증분적으로 변환될 수 있어, 도 5 에서의 데이터의 슬라이스들 (502a-502d) 은 변환된 데이터 내에 대응하는 슬라이스들을 초래할 수도 있다. 일부 파일 기반 동작들에서와 같이 데이터가 슬라이싱되지 않는 경우, 전체 데이터 세트가 단일 동작으로 변환될 수도 있다.
동작 (406) 에서 데이터를 변환하는 것에서 푸리에 변환 또는 다른 유형의 변환을 이용할지 여부는 스펙트럼 분석 능력들을 제공할 수도 있다. 특히, 변환되면, 오디오 또는 다른 데이터는 도 5 의 복합 오디오 데이터를 이루는 보다 작은 별개의 조각들로서 표현될 수 있다. 스펙트럼 분석 또는 다른 데이터는 또한 웨이블릿 (wavelet) 변환들 또는 크라머스 크로니히 (Kramers-Kronig) 변환들을 이용하는 것과 같은 다른 방식들로 수행될 수도 있다.
본 개시물의 일부 실시형태들의 다른 양상은 도 4 의 동작 (406) 에서 2 차원 데이터를 변환하는 것이 식별될 베이스라인 또는 노이즈 플로어를 허용할 수도 있는 것이다. 예를 들어, 변환된 데이터가 시간/주파수 도메인 내에 있는 경우, 변환된 데이터는 0Hz 의 주파수에 대응할 수도 있는 축 값으로부터 벗어나는 양의 값을 가질 수도 있다. 오디오 데이터가 분석되는 실세계 상황들에서, 오디오 데이터가 기록, 저장, 송신, 암호화, 압축, 또는 그렇지 않으면 이용되거나 프로세싱되는 상황에서 노이즈 엘리먼트가 항상 있을 수도 있다. 이러한 노이즈는 이용되는 마이크로폰, 환경, 전기적 케이블링, AC/DC 변환, 데이터 압축, 또는 다른 인자들로 인한 것일 수도 있다. 따라서, 변환된 데이터는 대표적인 시간 주기 (예컨대, 슬라이스) 의 모든 시간 값들에 대하여 주파수 (예컨대, 0Hz) 로부터의 편차들을 보여줄 수도 있다. 노이즈 플로어는 시간 도메인에 걸쳐 가중된 평균 주파수 값에 의해, 플로어로부터 상당한 편차들이 제거될 경우 주파수들의 평균 또는 다른 계산에 의해, 또는 다른 방식들로, 시간 도메인에 걸쳐 최소 주파수 값일 수도 있는 베이스라인에 의해 표시될 수도 있다.
노이즈 플로어는 또한, 도 4 의 방법 (400) 의 동작 (408) 에 도시된 것과 같이, 동작 (406) 에서 생성된 변환된 데이터가 3 개 이상의 차원들의 데이터로 추가로 변환된다면, 더욱 상세하게 식별되거나 보여질 수도 있다. 예컨대 원래의 데이터 및 변환된 데이터가 시간 도메인 또는 다른 차원을 공유하는 일 실시형태에 따라, 원래의 데이터로부터의 정보는 변환된 데이터에서의 데이터로 링크될 수도 있다. 파형 (500) 으로 표시된 데이터를 고려할 때, 데이터는 전술된 것과 같이 변환될 수도 있고, 변환된 데이터는 파형 (500) 으로 표시된 데이터로 링크될 수도 있다. 대응하는 시간 포인트들에 대하여, 파형 (500) 으로 표시된 데이터의 논리적인 분석은 그러한 시간 포인트에서 진폭 성분을 특정 주파수와 연관시키도록 수행될 수 있다. 그 후에, 결정된 진폭 값들은 제 2 의 2 차원 데이터를 3 차원 데이터로 변환시킴으로써 변환된 데이터에 부가될 수 있거나 다시 추론될 수 있다. 본 명세서에서 지칭되는 데이터는 때로는 3 차원 데이터로 지칭될 수도 있지만, 그러한 용어는 최소 차원들을 지칭할 수도 있고, 3 차원, 4 차원, 또는 그 이상의 차원들이 존재할 수도 있음이 인식되어야 한다.
따라서, 3 차원 데이터는 시간/주파수 도메인에서 데이터를 취하고 그 데이터를 시간/주파수/진폭 도메인으로 변환시키거나, 그렇지 않으면 2 차원 데이터를 변환시킴으로써 생성될 수도 있다. 다른 실시형태들에서, 다른 또는 추가의 차원들 또는 데이터 값들이 이용될 수도 있다. 일부 실시형태들에서, 3 차원 데이터가 필터링될 수도 있다. 예컨대, 도 3 의 필터링 동작 (304) 은 3 차원 데이터에 수행될 수도 있다. 오디오 데이터의 예에서, 예컨대 특정 주파수 범위 (예컨대, 인간의 사운드의 범위) 밖의 데이터는 삭제될 수 있다. 다른 실시형태들에서, 필터링이 다른 데이터에 수행되거나, 데이터를 해석하고 분리하는 방법의 다른 단계들과 관련되어 수행되거나, 또는 완전히 제외된다.
동작 (408) 에서 생성된 예시적인 3 차원 데이터는 다수의 상이한 방식들로 저장되거나 표시될 수 있다. 일 실시형태에서, 3 차원 데이터는, 각각 개별 차원들 (예컨대, 시간/주파수/진폭) 에 대응하는 3 개의 데이터 값들을 가지는 포인트들의 집합으로서 메모리에 선택적으로 저장된다. 이러한 포인트들의 집합은 포인트 클라우드를 정의할 수 있다. 도식화될 경우, 포인트 클라우드는 동일한 포인트의 클라우드 데이터의 상이한 관점들을 예시하는 도 6 및 도 7 과 유사한 이미지를 제공하도록 예시될 수 있는 데이터의 표시를 생성할 수도 있다. 3 개 이상의 차원들의 데이터를 도식화하거나 도식적으로 예시하는 것은 본 개시물의 일부 실시형태들의 수행에 있어 불필요하지만, 스펙트럼 분석을 위해 이용될 수도 있다.
데이터를 3 개 이상의 차원들로 표시하는 도면들은 도 6 내지 도 8 에 도시된 것과 같이 이전에 변환된 또는 중간의 데이터를 변환함으로써 동작 (408) 에서 획득될 수도 있다. 더욱 상세하게는, 도 6 및 도 7 은 그 모델이 3 개 차원들 각각의 투시도를 예시하도록 맞춰지는 3 차원 도면 (600, 700) 의 뷰들을 예시한다. 대조적으로, 도 8 은 2 차원 공간에서 3 차원 도면을 예시한다. 더욱 상세하게는, 도 8 은 2 개 축들을 따라 3 차원 데이터를 예시한다. 도 6 내지 도 8 의 각각에서, (세기 또는 진폭과 같은) 제 3 차원은 상이한 컬러로 예시될 수도 있다. 그러므로, 음영 변화들은 제 3 차원에서 크기에 대한 변경들을 보여줄 수도 있다. 예컨대 오디오 데이터의 일 예에서, 도 8 에 도시된 2 개의 차원들은 음영들에 대한 변경들에 의해 반영되는 세기/진폭을 갖는 시간 및 주파수 일 수도 있다. 그레이 스케일에서, 음영이 더 밝을수록 제 3 차원 (예컨대, 진폭) 은 더 커지고, 음영이 더 어두울수록 포인트 클라우드의 포인트들이 더 낮은 상대적인 크기들을 가지는 것을 나타낼 수도 있다.
데이터가 3 차원 데이터로 변환된 경우, 방법 (400) 은 단계 (410) 에 도시된 것과 같이 하나 이상의 윈도우 세그먼트들을 식별함으로써 계속될 수도 있다. 더욱 상세하게는, 단계 (410) 는 잠정적으로 임의의 수의 병렬의 또는 동시의 프로세스들 또는 인스턴스들을 포함할 수도 있다. 각각의 인스턴스는, 예컨대 데이터 세트 내의 상이한 윈도우 세그먼트를 식별 및/또는 그에 작용하도록 동작할 수도 있다.
윈도우 세그먼트들은 일반적으로, 베이스라인 (예컨대, 오디오 노이즈 플로어) 로부터 상당한 연속적인 편차들이 발생할 경우 데이터의 부분들인 것으로 이해될 수도 있다. 윈도우 세그먼트들은 3 차원 데이터를 나타내며, 따라서 오디오 샘플의 시간, 주파수 및 진폭 도메인들에서, 또는 다른 유형의 데이터의 다른 차원들에서 포인트들 또는 다른 데이터를 통합한다. 윈도우 세그먼트들이 베이스라인으로부터의 편차들로서 설명될 수도 있기 때문에, 윈도우 세그먼트들을 식별하는 단계 (410) 의 일 양태는 베이스라인을 식별하는 동작 (412) 을 포함할 수도 있다. 도 6 및 도 7 에 표시된 것과 같은 3 차원 데이터에서 보여지는 것과 같이, 3 차원 데이터는 도면에서 더 어두운 컬러를 갖는 더 일정한 노이즈 플로어 또는 다른 베이스라인에 비해 상이한 피크들 또는 밸리들을 가질 수도 있다. 노이즈 플로어는 일반적으로 3 차원 데이터의 모든 부분들에서 존재할 수도 있으며, 동작 (406) 에서 생성된 데이터로부터 식별가능한 베이스라인에 대응할 수 있다. 오디오 데이터에 대하여, 노이즈 플로어는 마이크로폰, 송신 매체, 배경 음성들/머신들, 데이터 압축, 기타 등등의 결과로서 오디오 데이터에 존재하는, 일정한 레벨의 무선 주파수, 배경, 또는 다른 노이즈를 나타낼 수도 있다. 베이스라인은 노이즈 플로어의 특징일 수도 있고, 세기 값을 나타내는 포인터 또는 값을 나타낼 수 있다. 베이스라인 미만의 값들은 일반적으로 노이즈인 것으로 고려될 수도 있고, 베이스라인 미만의 데이터는 일부 실시형태들에서 무시될 수도 있다. 오디오 이외의 데이터에 대하여, 베이스라인은 유사하게 하나의 값을 나타낼 수도 있고, 그 값 이상에서 데이터는 적절한 것으로 고려되고, 그 값 미만에서 데이터는 잠정적으로 무시될 수도 있다.
식별된 베이스라인에서, 베이스라인으로부터의 편차들은 동작 (414) 에서 식별될 수 있다. 오디오 데이터의 맥락에서, 베이스라인으로부터의 편차들은 특히 상당할 경우, 오디오 신호 내의 오디오 데이터의 상이한 소스들 또는 유형들을 나타낼 수 있고, 베이스라인 미만의 일반적인 노이즈와는 상이한 것으로 식별될 수 있다. 이러한 편차들은 일정 지속 시간 동안 다중의 주파수들에 걸쳐 계속될 수도 있거나, 변화하는 진폭 또는 세기 값들을 가질 수 있다. 따라서, 각각의 편차는 어떤 3 개 차원들이 이용되는지에 관계없이, 데이터가 오디오 데이터인지, 이미지 데이터인지, 또는 일부 다른 유형의 데이터인지 여부에 관계없이 데이터의 3 개 차원들 중 임의의 차원 또는 모두에서 특정 변화의 방법 및 레이트들을 나타낼 수도 있다. 이러한 편차들이 계속되는 경우, 방법 (400) 은 편차들을, 동작 (416) 에서 도시된 것과 같이 선택적으로 표시된 윈도우 세그먼트의 일부인 것으로 고려할 수도 있다.
동작들 (414, 416) 에서 편차들을 식별 및 마킹하는 것은 복수의 윈도우 세그먼트들 (802a - 802h) 이 도시된 도 8 의 문맥에서 이해될 수도 있다. 도 8 은 더 많은 윈도우 세그먼트들을 가질 수도 있지만; 본 개시물을 불필요하게 모호하게 하는 것을 피하기 위해, 단지 8 개의 윈도우 세그먼트들 (802a - 802h) 만이 도시된다. 윈도우 세그먼트들 (802a - 802h) 은 각각 노이즈 플로어 위에 있는 데이터 포인트들의 클러스터들을 포함할 수도 있다. 이러한 데이터 포인트들의 클러스터들은 또한, 시스템이 베이스라인 아래의 포인트를 횡단할 필요 없이 노이즈 플로어 위의 윈도우 세그먼트 내에서 하나의 포인트를 추적하거나 이로부터 다른 포인트로 이동할 수 있도록, 그룹화될 수도 있다. 하나의 포인트로부터 다른 포인트로 이동하는 것은 베이스라인에서 또는 그 아래에서 포인트들에 걸쳐 횡단이 발생하는 것을 요구할 수도 있기 때문에, 편차들은 상이한 윈도우 세그먼트들을 정의하도록 이용될 수 있다.
동작 (414) 에서, 연속하는 3 개 이상의 차원들의 데이터 포인트들이 베이스라인으로부터 벗어나는 것으로 식별될 경우, 그 편차들을 포함하는 윈도우들이 마킹될 수도 있다. 예를 들어, 도 8 의 윈도우 세그먼트 (802c) 가 윈도우가 시작하는 시간 (예컨대, 베이스라인으로부터 편차가 시작하는 시간) 및 윈도우 세그먼트들이 종료하는 시간 (예컨대, 편차가 다시 노이즈 플로어로 하락하는 시간) 을 식별함으로써 마킹될 수도 있다. 도 8 이 시간, 주파수 및 진폭 차원들을 갖는 오디오 데이터의 도면일 경우, 윈도우 시작 시간은 일반적으로 동일한 윈도우 세그먼트 내의 다중의 주파수들에 걸쳐 일정할 수도 있다. 또한, 세그먼트의 종료 시간에 대해서도 마찬가지일 수도 있다. 그러나, 다른 실시형태들에서, 윈도우 세그먼트는 다중의 주파수들에 걸칠 수도 있고, 데이터 포인트들은 윈도우 내의 상이한 시간들에서 베이스라인으로 하락하거나 그로부터 상승할 수도 있다. 실제로, 일부 실시형태들에서, 윈도우 세그먼트는 오디오 데이터의 다중의 주파수들에 걸친 상당한 편차들로부터 시작할 수도 있지만, 윈도우 세그먼트의 시간 차원에 비해, 분리들이 발생할 수도 있고, 상이한 부분들이 노이즈 플로어로 하락할 수도 있다. 그러나, 진행의 포인트들이 윈도우 세그먼트의 시작부에서 추적될 수도 있고 노이즈 플로어 위에 있는 것을 유지하기 때문에, 이들은 모두 데이터가 시작 시간에서 유지되는 동일한 윈도우 세그먼트의 일부일 수 있다.
윈도우 세그먼트를 마킹할 때, 일 실시형태는 윈도우 세그먼트의 시작 시간을 마킹하는 것을 포함할 수도 있다. 종료 시간은 또한 베이스라인으로부터의 연속된 편차의 최종 시간에 대응하는 단일 시점으로서 마킹될 수도 있다. 시간 데이터를 이용하여, 특정 시간 윈도우 내의 모든 주파수들은 동일한 윈도우 세그먼트의 일부일 수도 있다. 따라서, 윈도우 세그먼트는 오버랩핑하는 윈도우 세그먼트들에 포함된 노이즈 또는 정보와 같은 추가의 정보와 연속하는 편차들 양자를 포함할 수도 있지만, 윈도우 세그먼트를 정의하는데 이용된 연속하는 편차가 우선적으로 하기에서 논의되는 것과 같은 프로세싱을 위해 이용될 수도 있다.
다수의 윈도우 세그먼트들이 단계 (410) 에서 식별될 수도 있고, 이러한 윈도우 세그먼트들은 오버랩핑하거나 분리될 수도 있다. 윈도우 세그먼트들의 식별은 단계 (410) 의 다수의 병렬 인스턴스들을 실행함으로써, 또는 다른 방식들로 발생할 수도 있다. 각각의 윈도우 세그먼트가 잠정적으로 베이스라인으로부터의 편차들을 인식함으로써 식별될 경우, 이러한 윈도우 세그먼트들은 동작 (416) 에서 임의의 수의 방식들로 마킹될 수도 있다. 일 실시형태에서, 데이터 파일 자체를 마킹하기 위해 단계 (410) 의 각각의 인스턴스를 이용하는 것보다, 윈도우 세그먼트들을 정의하는 정보를 포함하도록 테이블이 생성 및/또는 업데이트될 수도 있다. 이러한 테이블의 일 예는 도 11 에 도시된다. 특히, 도 11 은 상이한 윈도우 세그먼트들을 식별하는데 이용가능한 마커들, 포인터들 또는 정보를 갖는 윈도우 테이블 (1100) 을 정의할 수도 있다. 도시된 특정 테이블 (1100) 에서, 예컨대 각각의 윈도우 세그먼트는 고유한 식별자 (ID) 를 이용하여 식별될 수도 있다. ID 는 임의의 수의 상이한 형태들로 제공될 수도 있다. 간단함을 위해, 도 11 의 예시는 ID들을 증분하는 수치의 ID들로서 도시한다. 그러나, 다른 실시형태들에서, 다른 ID들이 제공될 수도 있다. 적절한 ID 의 일 예는 GUID (grobally unique identifier) 를 포함하며, 그 예들은 32 개 캐릭터의 16 진 스트링들로서 도시될 수도 있다. 이러한 식별들은 랜덤하게 생성되거나 다른 방식들로 할당될 수도 있다. 랜덤하게 할당될 경우, 동일한 수를 2회 랜덤하게 생성할 확률은, 생성될 수도 있는 다수의 고유한 키들로 인해 32 캐릭터 GUID 에 대하여 0 에 접근할 수도 있다.
윈도우 테이블 (1100) 은 또한 윈도우 세그먼트를 식별하기 위한 다른 정보를 포함할 수도 있다. 도 11 에 도시된 것과 같이, 윈도우 테이블은 윈도우 세그먼트에 대한 시작 시간 (T1) 과 종료 시간 (T2) 을 포함할 수도 있다. T1 및 T2 에 대응하는 데이터 값들은 절대적이거나 상대적인 의미로 제공될 수도 있다. 예를 들면, 시간 값들은 밀리초 또는 초일 수도 있고, 그들이 일부가 되는 시간 슬라이스와 관련하여 제공될 수도 있다. 대안적으로, 시간 값들은 전체 데이터 파일 또는 데이터 세션 관련하여 제공될 수도 있다. 일부 실시형태들에서, 윈도우 세그먼트의 시작에서의 진폭 (A1) 이 또한 식별될 수도 있다. 선택적으로, 윈도우 세그먼트의 종료 진폭 (A2) 이 언급될 수 있다. 일부 경우에, 종료 진폭 (A2) 은 베이스라인으로 다시 하락하는 데이터의 진폭을 나타낼 수 있다. 이러한 예시적인 표현은 도 4 의 방법 (400) 의 다른 단계들 또는 동작들에서, 뿐만 아니라 윈도우 세그먼트를 세팅하는데 이용된 베이스라인 위의 연속하는 편차를 식별하는데 유용할 수도 있다. 일부 실시형태들에 따라, 윈도우 테이블 (1100) 은 또한 다른 정보를 포함할 수도 있다. 예를 들어, 윈도우 세그먼트 (1100) 는 연속하는 편차들을 추가로 마킹하고 및/또는 제한된 주파수 범위 이상의 윈도우 세그먼트를 정의하기 위해 최소 및/또는 최대 주파수의 윈도우 세그먼트를 표시할 수도 있다.
본 개시를 살펴보면 알 수 있는 바와 같이, 특히 동작 (402) 에서 데이터가 분리된 부분들로 슬라이스되는 실시형태들에서, 윈도우 세그먼트는 항상 특정 데이터 슬라이스 내에 깔끔하게 포함되지 않을 수도 있다. 즉, 데이터 신호의 사운드 또는 다른 컴포넌트들은 특정 슬라이스 종단부들 전에 시작하지만 이러한 슬라이스 종단부들 후에 종결될 수도 있다. 이러한 시나리오를 고려하기 위해, 본 개시의 일 실시형태는 주어진 슬라이스 밖에 존재할 수도 있는 윈도우 세그먼트 오버랩들을 식별하는 것을 포함한다 (동작 (418)). 이러한 윈도우 세그먼트들을 식별하는 것은 동적으로 발생할 수도 있다. 예를 들어, 윈도우 세그먼트가 시간 슬라이스의 종단부와 동일한 종료 시간을 갖는 경우, 방법 400 을 실행하는 컴퓨팅 시스템은 데이터 버퍼에 저장된 추가적인 데이터를 액세스하고, 데이터를 변환하며 (404), 단계 410 에서 윈도우 세그먼트들을 식별하기 위해 그 데이터를 프로세싱할 수도 있다. 이러한 프로세싱에서, 3 차원 도메인에서 대응하는 편차들을 갖는 윈도우 세그먼트들은 그 다음 원래 시간 슬라이스로부터 계속적인 편차들과 매칭될 수도 있고, 함께 그룹핑될 수 있다.
하지만, 동작 (418) 의 윈도우 세그먼트 오버랩들이 반드시 식별될 필요는 없고, 또는, 그들이 식별되는 경우 오버랩들의 식별이 반드시 수행될 필요는 없다. 예를 들어, 다른 실시형태에서, 방법 400 을 이용하여 수신되고 프로세싱된 데이터는 오버랩핑 슬라이스들 내로 데이터를 슬라이싱하는 것 (402) 을 포함할 수도 있다. 예를 들어, 도 5 는 다양한 슬라이스들 (502a-502d) 을 예시하고, 이들의 각각은 추가적인 시간 슬라이스들 (504a-504c) 과 오버랩할 수도 있다. 오버랩핑 시간 슬라이스들은 동시에 함께 프로세싱될 수도 있다. 따라서, 도 4 의 단계 410 의 윈도우 세그먼트 식별이 발생함에 따라, 세그먼트 오버랩들을 식별하는 동작 (418) 이 프로세스에서 이미 오버랩핑 데이터를 이용하여 자동적으로 개시될 수도 있다.
도 5 는 시간 슬라이스의 약 절반을 도시하고 있지만, 이러한 오버랩은 단지 예시적인 것이라는 것을 이해하여야 한다. 다른 실시형태들에서, 오버랩들은 더 크거나 더 작을 수도 있다. 적어도 일 실시형태에서, 예를 들어, 3 이상의 오버랩핑이 단일 시간 슬라이스 내에 존재할 수도 있다. 예를 들어, 2 개의, 순차적인 시간 슬라이스들에 대해, 오버랩핑 시간 슬라이스는 제 1 순차적인 시간 슬라이스의 2/3 과 오버랩하고 제 2 순차적인 시간 슬라이스의 1/3 과 오버랩할 수도 있다. 다른 실시형태에서, 임의의 주어진 시간 슬라이스가 3 개보다 많은 시간 슬라이스들과 오버랩할 수도 있다.
단계 410 의 다수의 인스턴스들을 수행하는 것에 의해, 데이터가 어떻게 프로세싱되는지에 의존하여, 다수의 상이한 윈도우 세그먼트들이, 특정 시간 슬라이스 또는 파일 내에서 식별될 수도 있다. 이러한 식별 시, 윈도우 세그먼트들 내의 데이터는 각 윈도우 세그먼트 내의 하나 이상의 주파수 진행(들)을 식별하기 위해 추가로 분석될 수 있다. 이것은 윈도우 세그먼트들을 핑거프린팅하는 단계 420 을 통해 발생할 수도 있다. 단계 420 에서 윈도우 세그먼트를 핑거프린팅하는 것은 윈도우 세그먼트에서의 데이터를 해석하고 하나 이상의 데이터 포인트들로 분리할 수도 있다. 예를 들어, 윈도우 세그먼트에 대한 주요한 또는 기본적인 데이터 소스는 단일 주파수 진행으로서 식별될 수도 있다. 또한 도 4 에서 도시된 바와 같이, 윈도우 세그먼트들을 핑거프린팅하는 단계 420 은 다수의 윈도우 세그먼트들에 대해 동시에 수행될 수도 있고, 다수의 핑거프린트들이 단일 윈도우 세그먼트 내에서 식별 또는 생성될 수도 있다.
일단 윈도우 세그먼트들이 식별되고 나면, 데이터가 해석될 수 있다. 데이터를 해석하는 하나의 방식은 데이터를 식별하고 그 데이터의 대응하는 변화의 방법들 및/또는 레이트들을 식별하는 것을 포함할 수도 있다. 이것은 도 9 의 그래픽적 표현 (900) 을 검토함으로써 더 잘 이해될 수 있을 것이다. 도 9 에서의 도시는 도 8 의 하나의 윈도우 세그먼트들 (802c) 의 3 차원 데이터를 나타내는 도시를 일반적으로 제공한다. 이러한 도에서 나타난 바와 같이, 포인트 클라우드 데이터는 도시될 때 3 개의 차원들 (예를 들어, 시간, 진폭, 및 주파수) 에 걸친 특정한, 구분되는 경로를 보이기 위해 사용될 수도 있다. 각 주파수 진행은, 그래픽적으로 도시될 때 상이한 형상들, 파형들, 또는 다른 특성들을 갖는 각 주파수 진행으로서 나타날 수도 있는 고유한 특성들을 가질 수도 있다. 일 실시형태에서, 트레이싱 기능이 호출될 수도 있고 (예를 들어, 워크플로우 관리자는 도 2 에 도시된 바와 같은 워커 모듈을 호출한다), 하나 이상의 경로들이 윈도우 세그먼트의 부분들에 걸쳐 트레이싱될 수도 있다. 이러한 경로들은 일반적으로 동일한 윈도우 세그먼트 내의 상이한 주파수 진행들을 나타낼 수도 있고, 경로들을 트레이싱하는 것은 동작 (422) 의 일부로서 수행될 수도 있다.
일부 경우들에서, 다수의 주파수 진행들이 또한 발견될 수 있음에도 불구하고, 단일 주파수 진행이 윈도우 세그먼트에서 발견될 수도 있다. 적어도 일 실시형태에서, 다수의 주파수 진행들이 윈도우 세그먼트에서 식별될 수도 있다. 도 9 는, 예를 들어, 동일한 윈도우 세그먼트 내에 있을 수도 있고 심지어 동일한 시간에서, 또는 대략 동일한 시간에서 시작할 수 있는 2 개의 주파수 진행들 (902a 및 902b) 을 나타낸다. 일부 경우들에서, 다수의 주파수 진행들이 식별될 때, 단일 주파수 진행은 윈도우 세그먼트 내에서 격리될 수 있다. 예를 들어, 기본적인 또는 주요한 주파수 진행이 동작 (424) 에서 식별될 수도 있다. 이러한 식별은 다수의 상이한 방식들 중 임의의 방식으로 발생할 수도 있다. 예로서, 주파수 진행은, 만약 그것이 최대 진폭을 가지고 윈도우 세그먼트의 시작점에서 시작하는 경우, 기본 주파수 진행으로서 고려될 수도 있다. 대안적으로, 기본 주파수 진행은 최대 평균 진폭을 갖는 진행일 수도 있다. 다른 실시형태들에서, 기본 주파수 진행은 다른 인자들을 고려함으로써 식별될 수도 있다. 예를 들어, 베이스라인으로부터의 계속적인 편차 내의 최저 주파수에서의 주파수 진행은 기본 주파수 진행일 수도 있다. 또 다른 실시형태에서, 최장 지속기간을 갖는 주파수 진행이 기본 주파수 진행으로 고려될 수도 있다. 다른 방법들 또는 전술한 것들의 조합들이 또한 동작 (424) 에서 기본 주파수 진행을 결정하는데 이용될 수도 있다. 도 9 에서, 주파수 진행 (902a) 은 기본 주파수일 수도 있고, 주파수 진행 (902b) 에 대해 상대적으로 더 높은 세기 및 더 낮은 주파수를 가질 수 있다.
윈도우 세그먼트 내의 다양한 주파수 진행들이 식별됨과 함께, 핑거프린트 데이터가 결정되고 동작 (426) 에서 나타난 바와 같이 각 진행에 대해 선택적으로 저장될 수도 있다. 일 실시형태에서, 동작 (426) 에서 핑거프린트 데이터를 저장하는 것은 특정 주파수 진행에 대응하는 포인트 클라우드 데이터를 저장하는 것을 포함할 수도 있다. 다른 실시형태들에서, 동작 (426) 은 포인트 클라우드 데이터를 해싱하거나 그렇지 않으면 주파수 진행의 포인트 클라우드 데이터에 기초한 표현 또는 값을 획득하는 것을 포함할 수도 있다.
핑거프린트 데이터는 임의의 수의 로케이션들에, 그리고 임의의 수의 방식들로 저장될 수도 있다. 적어도 일 실시형태에서, 동작 (410) 에서 식별된 윈도우 세그먼트들에 대한 핑거프린트 정보를 포함하는 테이블이 유지될 수도 있다. 도 12a 내지 도 13 은, 예를 들어, 핑거프린트 및/또는 윈도우 세그먼트 정보를 저장할 수도 있는 테이블들의 예시적인 실시형태들을 도시한다. 도 12a 의 테이블 (1200) 은 고유한 주파수 진행에 대응하는 것으로서 초기에 식별된 각 핑거프린트에 관한 정보를 저장하는 테이블을 나타낼 수도 있다. 예를 들어, 도 12a 에서 도시된 바와 같이, 테이블 (1200) 은 분석되는 데이터 내의 3 개 이상의 윈도우 세그먼트들을 식별하는 정보를 저장하기 위해 이용될 수도 있다. 주파수 진행들이 트레이싱 또는 그렇지 않으면 식별됨에 따라, 그들 주파수 진행들에 대응하는 데이터가 핑거프린트들인 것으로 고려될 수도 있다. 각 핑거프린트 및/또는 윈도우 세그먼트는 고유하게 식별될 수도 있다. 보다 구체적으로, 각 윈도우 세그먼트는 ID 를 이용하여 식별될 수도 있고, 이 ID 는 도 11 의 윈도우 테이블 (1100) 내의 ID 에 선택적으로 대응한다. 따라서, 윈도우 테이블 (1100) 에서 고유하게 식별된 각 윈도우 세그먼트는 도 12 의 테이블 (1200) 에서 대응하는 엔트리를 가질 수도 있다.
또한, 단계 420 에서 식별된 또는 생성된 각 핑거프린트는 선택적으로 테이블 (1200) 에서 참조되거나 포함될 수 있다. 도 12a 에서, 예를 들어, 유사성 데이터 섹션이 제공된다. 윈도우 세그먼트에 대한 각 핑거프린트는 핑거프린트가 그 자체와 동일하다는 표시와 함께, 유사성 데이터에 저장된 대응하는 값 또는 식별자를 가질 수도 있다. 예를 들어, 윈도우 세그먼트 0001 에서 윈도우 세그먼트에 대한 제 1 핑거프린트가 FP1 - 1 로서 식별된 경우, 데이터 세트 또는 어레이에서의 엔트리는 핑거프린트가 그 자체와 동일하다는 것을 나타낼 수도 있다. 이 실시형태에서, 예를 들어, 유사성은 0 과 1 사이의 값으로 표현될 수도 있고, 여기서, 0 은 유사성이 없음을 나타내고 1 은 동일, 정확한 매치를 나타낸다. 윈도우 세그먼트 0001 에 대응하는 어레이 또는 다른 컨테이너에서의 텍스트 "FP1 -1:1" 은 핑거프린트 FP1 -1 은 그 자체와의 완벽한 매치 (100%) 라는 것을 나타낼 수도 있다. 테이블 (1200) 을 언급하는데 있어서 편의를 위해, 테이블 (1200) 이 해시 값들을 포함하여야 하거나 테이블 내의 임의의 값들 또는 데이터가 본질적으로 글로벌이라는 것에 대한 어떠한 간섭도 도출될 수 없음에도 불구하고, 이러한 테이블은 "글로벌 해시 테이블" 로서 본원에서 지칭될 수도 있다. 오히려, 글로벌 해시 테이블은, 해시 테이블로부터의 데이터가 본원에 개시된 다른 테이블들에 의해 사용되거나 그렇지 않으면 본 개시의 검토로부터 습득될 수도 있다는 점에서, 글로벌일 수도 있다.
도 12a 의 테이블 (1200) 에서의 데이터는 원하는 경우 변형될 수도 있다. 일부 실시형태들에서, 예를 들어, 추가적인 윈도우 세그먼트들 및/또는 핑거프린트들이 식별됨에 따라, 테이블 (1200) 은 추가적인 윈도우 세그먼트 및/또는 핑거프린트들을 포함하도록 업데이트될 수 있다. 다른 실시형태들에서, 추가적인 정보가 부가될 수도 있고, 또는 정보가 심지어 제거될 수도 있다. 따라서, 일부 실시형태들에 따라, 핑거프린트 데이터는 도 4 의 동작 (426) 에서 도시된 바와 같이 저장될 수도 있다. 적어도 일 실시형태에서, 핑거프린트 데이터는, 다른 실시형태들에서 핑거프린트 데이터가 다른 로케이션들에 저장될 수도 있음에도 불구하고, 도 12a 의 글로벌 해시 테이블 (1200) 에 저장될 수도 있다. 예를 들어, 핑거프린트 데이터는 도 13 에 도시된 핑거프린트 테이블 (1300) 에 저장될 수도 있으며, 이 테이블은 이하에서 추가적으로 상세하게 설명된다.
다양한 윈도우 세그먼트 및 핑거프린트들을 생성한 후에, 방법 (400) 은 핑거프린트들을 감소시키는 단계 428 를 포함할 수도 있다. 적어도 일 실시형태에서, 핑거프린트들을 감소시키는 것 (428) 은 동일한 윈도우 세그먼트 내의 핑거프린트들을 비교하는 동작 (430) 을 포함할 수도 있다.
보다 구체적으로, 일단 윈도우 세그먼트 내의 주파수 진행들이 (예를 들어, 그것의 핑거프린트를 생성함으로써) 식별되고 나면, 주파수 진행 내의 변화의 방법들 및 레이트들이 동일한 윈도우 세그먼트 내의 다른 주파수 진행들에 대한 비교를 위해 트레이싱되거나 그렇지 않으면 결정될 수도 있다. 선택적으로, 주파수 진행들을 비교하는 것은 핑거프린트들을 비교하는 것 및 각 핑거프린트에 대해 유사성 값을 결정하는 것을 포함한다. 예시된 실시형태들에서는 유사성 값이 0 내지 1 의 스케일에서 결정되고, 0 은 유사성 없음을 나타내고 1 은 동일한 매치를 나타내는 것일 수도 있지만, 임의의 스케일 또는 유사성 레이팅 메커니즘이 이용될 수도 있다.
특정 윈도우 세그먼트에 공통인 핑거프린트에 대한 유사성 데이터가 식별되고 저장될 수도 있다. 예를 들어, 도 12b 는 도 12a 의 글로벌 해시 테이블 (1200) 을 나타내고, 이 테이블은 어떤 유사성 데이터를 포함하도록 업데이트되는 것을 나타낸다. 이 실시형태에서, ID 0001 과 연관된 제 1 윈도우 세그먼트는 그와 연관된 5 개의 핑거프린트들을 갖는 것으로 도시된다. 이러한 핑거프린트들은 FP1 -1 내지 FP1 - 5 로서 식별된다. 제 2 윈도우 세그먼트는 4 개의 식별된 핑거프린트들을 갖는 것으로 도시되고, 제 3 윈도우 세그먼트는 2 개의 식별된 핑거프린트들을 갖는 것으로 도시된다.
각 윈도우 세그먼트 내에서, 핑거프린트들이 비교될 수도 있다. 예를 들어, 핑거프린트 FP1 -1 은 다른 4 개의 핑거프린트에 대해 비교될 수 있다. 이러한 핑거프린트들이 변화의 방법 및/또는 레이트 면에서 얼마나 유사한지에 대한 측정치는 글로벌 해시 테이블 (1200) 의 유사성 부분에 저장될 수도 있다. 이 실시형태에서, 예를 들어, 선택적 어레이 - 및 선택적으로 다-차원 어레이 - 가 동일한 윈도우 세그먼트에서 각각의 다른 핑거프린트에 대해 상대적인 각 핑거프린트에 대한 유사성 값을 저장할 수도 있다. 결과로서, 도 12b 는 동일한 윈도우 세그먼트에서 모든 다른 핑거프린트들에 상대적인 핑거프린트 FP1 -1 에 대한 유사성 값들을 나타내는 어레이를 도시한다. 핑거프린트들 FP1 -2 내지 FP1 -5 는, 일단 2 개의 핑거프린트들 사이에 비교가 수행되고 나면 그것은 반복될 필요가 없음에도 불구하고, 유사성 값을 획득하기 위해 각각 반복적으로 비교될 수도 있다. 보다 구체적으로, 핑거프린트들에 걸쳐 반복하고 그들을 다른 핑거프린트들에 대해 비교함에 있어서, 2 개의 핑거프린트들 사이의 비교는 단지 한번 발생하고/하거나 참조될 필요가 있다. 예를 들어, 핑거프린트 FP1 -5 가 핑거프린트 FP1 -3 에 대해 비교되는 경우, 핑거프린트 FP1 -3 은 핑거프린트 FP1 -5 에 대해 비교될 필요가 없다. 단일 비교의 결과들이 선택적으로 한번 저장될 수도 있다. 예를 들어, 도 12b 의 테이블 (1200) 에서, 핑거프린트들 FP1 -3 와 FP1 -5 사이의 비교가 0.36 의 유사성 값을 생성할 수도 있고, 그 값은 핑거프린트 FP1 -3 에 대응하는 어레이의 부분에서 발견될 수 있다. 따라서, 도시된 어레이들은, 이전의 핑거프린트들에 대한 후속하는 핑거프린트들의 비교들이 수행되거나 중복적으로 저장될 필요가 없음에 따라, 감소된 정보를 가진다.
동작 (430) 에서 핑거프린트들을 비교함으로써 생성된 유사성 데이터는 상이한 핑거프린트들 사이의 공통성들을 표현할 수도 있고, 그들 공통성들은 유사성들 또는 패턴들에 대응할 수도 있다. 예시적인 패턴들은 3 개의 차원들 중 임의의 것에서 값들이 변화하는 방법들 및/또는 레이트들에 대한 유사성들을 포함할 수도 있다. 예로서, 오디오 데이터의 예에 대해, 주파수 및/또는 진폭은 특정 데이터 핑거프린트에 걸쳐 변화할 수도 있고, 그들 변화들이 발생하는 방식은 다른 데이터 핑거프린트들의 주파수 및/또는 진폭 변화들에 대해 비교될 수도 있다.
데이터가 비교됨에 따라, 하나 이상의 임계치들 또는 기준들을 충족하는 핑거프린트들이 유사하거나 심지어 동일한 것으로 결정될 수도 있다. 예시로서, 유사성 데이터가 0 과 1 사이의 스케일에 대해 측정되는 설명된 예에서, 어떤 임계치 (예를 들어, 0.95) 초과의 유사성 값들을 갖는 데이터는, 그 데이터가 다수 회 발생함에도 불구하고 사실 동일하다는 것을 나타내기에 충분히 유사한 것으로 고려될 수도 있다. 따라서, 도 12b 에 도시된 바와 같이, 유사성 값들은, 핑거프린트 FP1 -1 가 핑거프린트 FP1 -3 에 대해 0.97 의 유사성 값을 갖고 핑거프린트 FP1 -4 에 대해 0.98 의 유사성 값을 갖는다는 것을 나타낸다. 유사하게, 핑거프린트 FP1 -2 는 핑거프린트 FP1 -5 에 대해 0.99 의 유사성 값을 갖는 것으로 나타난다.
데이터가 동일하거나, 또는 동일한 것으로 처리될 정도로 충분히 유사할 때, 다수의 핑거프린트들은 리던던시를 피하도록 감소될 수도 있다. 도 12b 의 글로벌 해시 테이블 (1200) 내에서, 예를 들어, 핑거프린트들 (FP1 -3, FP1 -4) 은, 그들이 핑거프린트 (FP1 -1) 와 동일한 것으로 간주될 수도 있으므로, 제거될 수도 있다. 핑거프린트 (FP1 -5) 는 또한 핑거프린트 (FP1 -2) 와 동일하다면 제거될 수도 있다. 유사한 프로세스를 통해, 핑거프린트들 (FP2 -2 내지 FP2 -4 및 FP3 -2) 은 그들이 핑거프린트들 (FP2 -1, FP3 -1) 에 대해 각각 동일한 것으로 간주될 수 있으므로 제거될 수도 있다. 도 12 c 는, 동일한 핑거프린트들의 감소가 이어지는 예시적인 글로벌 해시 테이블 (1200) 을 도시하며, 이 테이블은, 이 실시형태에서, 윈도우 세그먼트 0001 에 대해 단 2 개의 핑거프린트들만을 포함하고, 윈도우 세그먼트들 0002 및 00003 의 각각에 대해서는 1 개의 핑거프린트를 포함한다. 일부 실시형태들에서, 보유된 핑거프린트(들)은 윈도우 세그먼트 내의 기본 주파수들에 대응하는 것들이다.
전술한 설명은 충분히 유사한 핑거프린트들을 제거하는 실시형태를 포함하고 있지만, 다른 실시형태들은 다른 접근법들을 취할 수도 있다. 예를 들어, 유사한 핑거프린트들이 세트들로 그룹화될 수도 있고, 또는 포인터들이 다른 유사한 핑거프린트들에 역 제공될 수도 있다. 다른 실시형태들에서, 유사성과는 무관하게, 핑거프린트들에 대한 모든 정보가 유지될 수 있다.
추가로, 동일하거나 또는 동일한 것으로 처리될 정도로 충분히 유사한 데이터 핑거프린트들을 결정하는 데 이용되는 특정 임계 값 또는 기준들, 또는 유사성을 결정하는 방법은 다양한 환경들 또는 선호도들에 따라 상이할 수도 있다. 예를 들어, 핑거프린트들 사이의 필수적인 유사성 레벨을 결정하는 데 이용되는 임계치는 하드 코딩될 수도 있고, 사용자에 의해 변화될 수도 있고, 또는 동적으로 결정될 수도 있다. 예를 들어, 일 실시형태에서, 윈도우 세그먼트는, 동작 (432) 에서 나타내진 바와 같이, 고조파들을 식별하도록 분석될 수도 있다. 일반적으로 말하면, 주어진 주파수에서의 사운드는 특정한 추가 주파수들 및 거리들에 따라 공진할 수도 있다. 이 공진이 발생하는 주파수들은 고조파 주파수들로서 공지되어 있다. 종종, 고조파 주파수에서 오디오 데이터의 변화의 방법들 및 레이트들은 기본 주파수의 것들과 유사하지만, 스케일은 하나 이상의 차원 면에서 변화할 수도 있다. 따라서, 주파수 진행들 및 고조파들의 핑거프린트들은 어떤 오디오 데이터에 대해 유사하거나 또는 동일할 수도 있다.
종종, 고조파 주파수 진행들은 동일한 윈도우 세그먼트 내에서 명백해진다. 일 예시적인 실시형태에서, 기본 주파수 진행이 결정될 수도 있고, 그 데이터의 핑거프린트가 데이터 세그먼트 내의 다른 주파수들에서 존재할 수도 있는 데이터에 대해 비교될 수 있다. 핑거프린트가 공지된 고조파 주파수에서의 데이터에 대해 존재하면, 그 고조파 데이터는, 여기서 개시되는 바와 같이, 제거될 수도 있고, 또는 세트로 그룹화될 수도 있고, 또는 기본 주파수 진행에 대한 포인터로 참조될 수도 있다. 일부 경우들에서, 유사성 값이 결정된 임계치에까지 달하지 않는다면, 임계치는 선택적으로 동적으로 수정되어, 고조파들이 그룹화, 제거, 또는 이와는 다른 방식으로 원하는 바에 따라 처리되게 할 수도 있다.
상이한 주파수 진행들의 핑거프린트들 사이의 유사성을 결정하는 것은, 오디오 또는 다른 데이터 내의 패턴 인식을 위한 기법으로서 이용될 수도 있으며, 데이터 엘리먼트들 사이에 존재하는 공통성들을 결정하는 데 효과적으로 이용될 수 있다. 이러한 엘리먼트들은 동일한 데이터에 있을 수도 있지만, 공통성들은 또한, 후술하는 바와 같이, 상이한 데이터 세트들의 엘리먼트들에 대해 결정될 수도 있다.
유사성 값들, 공통성들, 또는 다른 특징들은 임의의 수의 상이한 기법들을 이용하여 결정될 수도 있으며, 각각의 기법들은 여러 상이한 애플리케이션들에 적합할 수도 있다. 본 개시물의 일 실시형태에 따르면, 에지 오버레이 비교는 상이한 데이터 엘리먼트들 사이의 공통성들을 식별하는 데 이용될 수도 있다. 에지 오버레이 비교 또는 다른 비교 메커니즘의 일부로서, 하나의 핑거프린트 또는 주파수 진행에 대응하는 데이터 포인트들은 다른 핑거프린트 또는 주파수 진행에 대응하는 것들과 비교될 수도 있다. 예를 들어, 핑거프린트들을 비교하는 동작 (430) 은 하나의 주파수 진행을 다른 주파수 진행 위에 놓고자 할 수도 있다. 주파수 진행은 하부에 놓이는 주파수 진행을 근사화하도록 3 개의 차원들 중 임의의 것 또는 모두로 스트레칭되거나 또는 다른 방식으로 스케일링될 수 있다. 이러한 스케일링이 수행될 때, 결과로서 생성된 데이터가 비교될 수 있고, 유사성 값이 생성될 수 있다. 유사성 값은 2 개의 핑거프린트들 내에서의 변화의 방식들 및 레이트들 사이의 상대적 유사성을 결정하는 데 이용될 수 있다. 유사성 값이 특정 임계치보다 크면, 데이터는 유사한 것으로 간주될 수도 있고 또는 동일한 것으로 간주될 수도 있다. 여기서 설명한 바와 같이, 동일한 데이터가 함께 그룹화될 수도 있고 또는 리던던시들이 제거될 수도 있다. 유사하지만 동일한 것으로 간주될 임계치 위에 있지는 않은 것으로 간주되는 데이터는 또한, 여기서 설명하는 바와 같이, 제거되거나 또는 그룹화될 수도 있고, 또는 다른 방식들로 처리될 수도 있다.
에지 오버레이 또는 다른 비교 프로세스는 전체 주파수 진행을 비교할 수도 있고, 또는 그의 부분들을 비교할 수도 있다. 예를 들어, 주파수 진행은 다양한 매우 특이한 부분들을 가질 수도 있다. 이들 부분들이 다른 주파수 진행들에서 식별되면, 매우 특이한 부분들은 주파수 진행의 다른 부분들에 대해 보다 높게 가중될 수도 있어, 비교된 핑거프린트들은 핑거프린트들이 제거, 그룹화, 또는 다른 방식으로 사용되게 하기에 충분한 매칭을 생성한다. 에지 오버레이 또는 다른 비교가 매칭을 발견하지 않을 때, 예컨대 핑거프린트를 스트레칭하거나 또는 3 개의 차원들 중 임의의 것 또는 모두로 스케일링하는 것이 임계치보다 큰 유사성 값을 생성하지 않을 때, 핑거프린트는 데이터 엘리먼트가 다른 핑거프린트들의 특성들 (예컨대, 데이터 엘리먼트들에 대한 변화의 레이트들 및 방법들에 대해 충분히 유사하지 않은 고유한 특성들을 가질 수도 있으므로 핑거프린트 자신의 세트 또는 샘플인 것으로 간주될 수도 있다.
개시물의 관점에서 볼 때, 일부 실시형태들은 윈도우 세그먼트당 다수의 핑거프린트들을 생성할 수도 있지만, 동작 시, 많은 윈도우 세그먼트들이 윈도우 세그먼트에 대해 단일 핑거프린트를 초래할 수도 있다는 것을 이해해야 한다. 다른 실시형태들에서, 단계 (428) 에서의 핑거프린트들의 감소는, 유사한 핑거프린트들을 제거하는 것, 또는 유사한 핑거프린트들을 세트로 그룹화하는 것, 또는 대응하는 윈도우 세그먼트에 대한 기본 핑거프린트 또는 주파수 진행으로의 포인터들을 포함하는 것 중 어느 하나에 의해, 핑거프린트들을 단일 핑거프린트로 감소시키는 것을 선택적으로 포함할 수도 있다. 단일 윈도우 세그먼트 내의 다수의 핑거프린트들은 또한 비유사한 것으로 간주될 수도 있고, 존재할 수도 있다. 예를 들어, 동일한 시작 및 종료 시간들을 갖는 2 개의 주파수 진행들이 교차할 수도 있다. 이러한 경우, 트레이싱 기능은 상이한 주파수 진행들을 트레이싱할 수도 있고, 진행들이 교차하는 위치에서, 진폭면에서 예상되지 않은 스파이크가 관찰될 수도 있다. 따라서, 트레이싱된 핑거프린트들은 단일 윈도우 세그먼트 내에서 식별된 상태로 남아 있으면서 개별적으로 처리될 수도 있다. 다수의 비유사한 주파수 진행들이 단일 윈도우 세그먼트에서 식별되는 다른 실시형태들에서, 도메인 세그먼트가 획득될 수도 있고, 다른 것(들)이 제거될 수도 있으며, 또는 새로운 윈도우 세그먼트 식별자들이 도 11 의 윈도우 테이블 (1100), 도 12a 내지 도 12c 의 글로벌 해시 테이블 (1200), 및/또는 도 13 의 핑거프린트 테이블 (1300) 에서 생성될 수도 있어, 각각의 윈도우 세그먼트는 그에 대응하는 단일 핑거프린트를 갖는다.
여기서의 개시물의 관점에서 볼 때, 윈도우 세그먼트 내의 주파수 진행들에 대응하는 핑거프린트들을 비교하는 것, 기본 주파수 진행에 대응하는 고조파 진행들을 식별하는 것, 및/또는 유사하거나 또는 동일한 핑거프린트들을 식별하는 것은 방법 (400) 동안의 프로세싱을 단순화시킬 수도 있다는 것을 이해해야 한다. 예를 들어, 방법 (400) 이 다수의 핑거프린트들 및 윈도우 세그먼트들에 대해 반복되는 경우, 핑거프린트들을 제거하거나 그룹화하는 것은, 추가 핑거프린트들에 대한 추후 비교들과 같은 수행될 동작들의 수를 감소시킬 수 있다. 이러한 효율성은 데이터가 실시간으로 프로세싱되고 있는, 또는 방법 (400) 을 실행시키는 컴퓨팅 디바이스가 보다 낮은 프로세싱 능력들을 갖고 있어, 방법 (400) 이 현저한 지연을 생성하지 않는 적시의 방식으로 자율적으로 완료될 수도 있도록 하는 실시형태들에서 특히 중요할 수도 있다.
본 개시물의 실시형태들의 다른 양태들은, 데이터 품질 또는 특징들이 식별될 수도 있고, 심지어 잠재적으로 개선되거나 또는 향상될 수도 있는 것이다. 예를 들어, 예시적인 오디오 신호에서, 그 오디오 신호는 때때로 클립핑될 수도 있다. 오디오 클립핑은 마이크로폰, 등화기, 증폭기, 또는 다른 컴포넌트에서 발생할 수도 있다. 일부 실시형태들에서, 예를 들어, 오디오 컴포넌트는 최대 용량을 가질 수도 있다. 그 용량을 넘어 확장될 데이터가 수신되면, 클립핑은 그 용량 또는 컴포넌트의 다른 능력을 능가하는 데이터를 클립핑하도록 발생할 수도 있다. 결과는, 여기서 개시되는 바와 같이, 데이터의 피크들에서 평탄역을 갖는, 2 차원 파형에서 또는 3 차원 데이터 세트에서 반사될 수 있는 데이터일 수도 있다.
그러나, 본 개시물의 일부 실시형태들의 고조파 분석의 일 양태는 고조파들이 기본 주파수에 대해 보다 높은 주파수들에서 발생할 수도 있다는 것이다. 보다 높은 주파수들에서는, 바람직한 볼륨 레벨을 유지하는 데에 보다 큰 전력이 요구되며, 그 결과로서, 고조파 주파수들에서의 볼륨은 종종 보다 급속히 강하된다.
감소된 진폭 때문에, 고조파 주파수들에서의 주파수 진행들은 기본 주파수에서 데이터와 동일한 방식으로 클립핑되지 않을 수도 있고, 또는 클립핑은 보다 현저하지 않을 수도 있다. 따라서, 일단 기본 주파수가 식별되면, 고조파 주파수들이 또한 결정될 수 있다. 고조파 및 기본 주파수들에서 데이터의 핑거프린트들에 현저한 차이들이 있다면, 고조파 주파수 진행으로부터의 데이터는 기본 주파수 진행 상에서 추론될 수도 있다. 즉, 고조파 주파수 진행의 3 차원 데이터 내에서의 변화의 방법들 및 레이트들 - 데이터가 플로팅되면 형상 또는 파형들에 대한 변화에 대응할 수도 있다 - 은, 비교되어 동일하거나 또는 거의 동일한 것으로 결정될 수 있는 데이터를 생성하도록 기본 주파수 진행의 데이터에 추가될 수도 있다. 이 프로세스는 일반적으로 도 4 의 동작 (434) 에 의해 나타내진다. 이러한 실시형태에서, 주파수 진행은 고조파 주파수 진행을 이용하여 앨리어싱될 수 있으며, 이러한 동작은 데이터 품질을 잠재적으로 개선할 수도 있고, 또는 클립핑되거나 다른 방식으로 변경된 데이터를 복구할 수도 있다. 그러면, 앨리어싱된 버전의 주파수 진행은 특정 윈도우에 대한 핑거프린트로서 저장될 수도 있으며, 이전에 클립핑된 데이터의 핑거프린트를 대체할 수 있다.
전술한 바와 같이, 핑거프린트들은 동일한 윈도우 세그먼트 내에서 비교되어, 다른 유사한 핑거프린트들을 식별할 수도 있으며, 그 후 윈도우 세그먼트 정보는 하나 또는 보다 적은 수의 핑거프린트들로 감소될 수도 있다. 일반적으로, 이들 윈도우 세그먼트들은 동일한 시작 및 종료 시간들을 가져서, 윈도우 내의 오디오 또는 다른 정보가 종종 동일한 정보의 변형들을 포함하도록 한다. 동일한 윈도우 세그먼트의 외부에서, 데이터가 오디오 데이터이든, 시각적 데이터이든, 디지털 데이터이든, 아날로그 데이터이든, 압축된 데이터이든, 실시간 데이터이든, 파일 기반 데이터이든, 또는 다른 데이터이든, 또는 이들의 임의의 조합이든, 유사한 공통성들 또는 다른 패턴들이 또한 존재할 수도 있다. 본 개시물의 실시형태들은 상이한 윈도우 세그먼트들 내의 핑거프린트들에 대한 핑거프린트들을 평가하는 것 및 비유사한 데이터 엘리먼트들에 대해 유사하거나 또는 동일한 데이터 엘리먼트들을 분리하는 것을 포함할 수도 있다.
예를 들어, 오디오 데이터의 맥락에서, 각각의 사람, 디바이스, 머신, 또는 다른 구조는 그의 구조면에서 고유하고, 특정 사운드 소스에 대응하는 데이터 엘리먼트들에서의 공통성들을 식별하는 데 본 개시물의 실시형태들을 이용하여 인식될 수 있는 사운드를 생성하는 능력을 갖는 것이 일반적이다. 상이한 단어들 또는 음절들을 말하는 사람조차, 생성된 오디오 데이터가 비교되게 하고 고확률과 유사한 것으로 결정되게 하는 공통 특색들을 갖는 사운드를 생성할 수도 있다.
오디오 또는 다른 데이터를 비교하는 능력은, 본 개시물의 실시형태들이, 상이한 장비를 사용하여 또는 다양한 다른 유형들의 상이한 조건들에 기초하여 생성되는, 상이한 위치들에서 연장된 시간에 걸쳐서, 데이터를 효과적으로 해석하고 특정 소스로부터의 사운드들과 같은 공통 엘리먼트들을 분리하게 할 수도 있다. 이렇게 하는 한 가지 방식은 상이한 윈도우 세그먼트들의 핑거프린트들을 비교하는 것이다. 상이한 세그먼트들의 핑거프린트들은 공통성들을 갖는 다른 데이터 엘리먼트들을 식별하도록 또는 특정 소스와 연관된 것으로 공지된 패턴들에 대해서도 비교될 수 있다.
본 개시물의 일부 실시형태들에서, 윈도우 세그먼트들 및/또는 핑거프린트들에 관한 정보가 다중 윈도우 세그먼트들에 따른 비교들을 허용하기 위해 저장될 수도 있다. 윈도우 세그먼트들 및/또는 핑거프린트들에 관한 추가적인 정보가 예를 들어 도 13 의 핑거프린트 테이블 (1300) 에 저장될 수도 있다. 핑거프린트 테이블 (1300) 은 윈도우 세그먼트들이 식별될 수도 있는 ID 부분을 포함할 수도 있다. 도 12a 내지 도 12c 의 글로벌 해시 테이블 (1200) 및 도 11 의 윈도우 테이블 (1100) 과 마찬가지로, 각각의 윈도우 세그먼트에 대한 ID 는 일관될 수도 있다. 즉, 동일한 윈도우 세그먼트는 선택적으로 동일한 ID 값을 이용하여 테이블들 (1100, 1200 및 1300) 각각에서 참조될 수도 있다. 다른 실시형태들에서는, 개개의 윈도우 세그먼트들을 참조하는 대신에, 핑거프린트들의 ID들이 사용될 수도 있다. 이러한 경우에, 하나 이상의 예시된 테이블들, 또는 추가적인 테이블은 각각의 핑거프린트가 어느 윈도우 세그먼트에 대응하는지에 관한 정보를 제공할 수도 있다.
또한, 핑거프린트 테이블 (1300) 내에는, 주파수 진행들의 핑거프린트들이 저장될 수도 있는 핑거프린트 섹션이 존재할 수도 있다. 상기 언급한 바와 같이, 하나의 실시형태에서, 도 4 의 방법 (400) 의 동작 (426) 은 핑거프린트 데이터의 저장이 임의의 시간에 또는 임의의 수의 상이한 로케이션들에서 일어날 수도 있지만, 식별된 주파수 진행에 대해, 핑거프린트 섹션에 포인트 클라우드 데이터, 또는 그의 표현을 저장하는 것을 포함할 수도 있다. 특정 예의 실시형태에서, 데이터 블랍이 핑거프린트 섹션에 저장될 수도 있으며, 여기서 데이터 블랍은 단일 핑거프린트에 대한 3 차원 포인트 클라우드 정보를 포함한다. 도 10 은 추적되거나 또는 그렇지 않으면 도 9 의 윈도우 세그먼트 (900) 내에서 식별될 수도 있는 단일 주파수 진행 (1000) 을 예시한다. 포인트 클라우드 데이터, 또는 각각의 포인트들, 3 개 이상의 차원들에서의 변화 레이트들 및 방법들 등을 포함하는, 주파수 진행 (1000) 을 정의하는 다른 데이터가 핑거프린트로서 저장되거나 핑거프린트를 생성하는데 사용될 수도 있다. 윈도우 세그먼트는 그에 대해 저장된 단일 핑거프린트를 가질 수도 있지만, 윈도우 세그먼트는 또한 그에 대하여 다중 핑거프린트들을 저장 또는 참조하고 있을 수도 있다. 예를 들어, 각각의 윈도우 세그먼트들 (0002 내지 0007) 은 그들과 연관된 단일 핑거프린트를 가질 수도 있으며; 그러나 2 개의 핑거프린트들은 윈도우 세그먼트 (0001) 에 대응하도록 저장될 수도 있다. 일부 경우들에서, 주어진 윈도우 세그먼트에 대해 저장된 핑거프린트들의 수는 시간의 경과에 따라 변할 수 있다. 예를 들어, 핑거프린트들은 여기에 논의한 바와 같이 감축되거나 결합될 수도 있다.
도 4 를 계속 참조하면, 단계 420 에서의 윈도우 세그먼트들의 핑거프린팅, 단계 428 에서의 핑거프린트들의 감축, 및 동작 (434) 에서의 기본 주파수 진행에 대한 데이터의 암시가 일반적으로 다중 윈도우 세그먼트들에 대해 각각 수행될 수도 있고, 여기서 각각의 윈도우 세그먼트는 개별이고 선택적으로 병렬인 프로세스에서 다루어진다. 계속하여 도 4 의 프로세스의 일 예에서, 일단 데이터 핑거프린팅이 윈도우 세그먼트에 대해 완료되면, 하나의 핑거프린트 내의 핑거프린트의 다른 윈도우 세그먼트들의 핑거프린트들에 대한 공통성들을 식별하기 위해 비교가 수행될 수도 있다.
예를 들어, 도 4 의 동작 (436) 에서, 핑거프린트는 모든 다른 핑거프린트들과 비교될 수도 있다. 이 동작은 단계 428 에서의 핑거프린트들의 감축 후에 유지된 핑거프린트들만을 비교하는 것을 포함할 수도 있다. 추가적으로, 일부 경우들에서는, 모든 시간의 모든 핑거프린트들 대신에, 특정 통신 세션 동안 얻어진 핑거프린트들에 대해서만 비교가 수행될 수도 있다. 하나의 예에서, 윈도우 테이블 (1100), 글로벌 해시 테이블 (1200), 및 핑거프린트 데이터 (1300) 내의 정보는 특정 통신 또는 데이터 프로세싱 세션이 종료한 후, 또는 미리 결정된 양의 시간 후에 클리어될 수도 있다. 따라서, 새로운 통신 또는 프로세싱 세션이 시작될 때, 비교되는 핑거프린트들은 새롭게 식별된 핑거프린트들일 수도 있다.
다른 실시형태들에서, 핑거프린트 데이터는 비교를 목적으로 지속적으로 저장될 수도 있다. 예를 들어, 도 14 에 예시한 것과 같은 세트 테이블 (1400) 이 정보를 저장하기 위해 제공 및 사용될 수도 있다. 각 세트는 식별될 수도 있고, 오디오 데이터의 경우에 오디오 소스에 대응할 수도 있는 고유한 패턴에 대응할 수 있다. 하나의 세트는 예를 들어, 특정 사람의 음성으로부터 온 것인 것으로 생각되는 오디오 데이터를 포함할 수도 있다. 제 2 세트는 특정 악기에 의해 생성된 데이터 엘리먼트들을 포함할 수도 있다. 또 다른 세트는 제조 설비 내에서 동작하는 특정 유형의 기계류의 사운드를 포함할 수도 있다. 다른 세트의 오디오 또는 다른 정보가 또한 포함될 수도 있다.
테이블 (1400) 내의 각 세트는 참조를 이용하여 식별되는 것으로서 도시된다. 참조는 GUID들, 또는 심지어 공통 명명 규칙들을 포함하여, 임의의 적합한 유형의 것일 수도 있다. 예를 들어, 오디오 데이터의 세트가 "스티브" 라는 이름의 특정 사람과 연관되는 것으로 알려져 있다면, 식별자는 이름 "스티브" 일 수 있다. 그 세트들은 오디오 소스들에 대응할 수도 있기 때문에, 세트 참조는 또한 도 11, 도 12a 내지 도 12c 및 도 13 의 테이블들 내의 윈도우 세그먼트들을 나타내는 ID들과는 관계없고, 그 ID들과는 상이할 수도 있다. 세트 테이블 (1400) 은 또한 주어진 세트에 대한 핑거프린트들 모두의 표현들을 포함할 수도 있다. 예시로, 세트 테이블 (1400) 은 세트 내의 각각의 유사한 핑거프린트에 대한 핑거프린트의 데이터를 포함하는 데이터 블랍을 포함할 수도 있다. 다른 실시형태들에서, 세트 테이블 내의 정보는 포인터일 수도 있다. 예의 포인터들은 다시 도 13 의 핑거프린트 테이블 (1300) 을 가리킬 수도 있고, 여기서 식별된 핑거프린트들은 데이터 블랍들로서 또는 다른 구조들로서 저장될 수도 있다. 핑거프린트 테이블 (1300) 이 여기에 논의한 바와 같이 클리어된다면, 핑거프린트 테이블 (1300) 내의 데이터는 세트 테이블 (1400) 로 이동될 수도 있고, 또는 핑거프린트 테이블은 클리어된 그 부분들만을 가질 수도 있다 (예를 들어, 동일한 윈도우 세그먼트 또는 통신 세션의 다른 핑거프린트들에 대한 비교 데이터).
타임 슬라이스, 데이터 파일, 또는 다른 소스 내의 데이터가 해석될 때, 다중 상이한 윈도우 세그먼트들로부터의 핑거프린트들이 생성, 감축 및/또는 그룹화될 수도 있다. 특히, 하나의 시점에서의 핑거프린트는 다른 시점에서의 핑거프린트에 매칭하는 유사성 값을 가질 수도 있다. 따라서 핑거프린트들을 비교하는 동작 (436) 은 데이터가 상이한 핑거프린트들 간의 유사성들을 나타내는, 도 11 내지 도 13 의 테이블들 중 하나 이상에 주석을 다는 것을 포함할 수도 있다. 도 12c 는, 예를 들어, 다중 상이한 윈도우 세그먼트들로부터의 핑거프린트들이 참조 및 비교되는 테이블 (1200) 을 예시한다. 이 실시형태들에서, 예를 들어, 어레이 - 및 선택적으로 다차원 또는 네스티드 어레이 (nested array) - 는 핑거프린트들 (FP1 -1 및 FP1 -2) 의 서로에 대한 및 다른 핑거프린트들 (FP2 -1 및 FP7 -1) 에 대한 상대적 유사성을 나타내는 정보를 저장할 수도 있다.
동작 (436) 에서의 핑거프린트들의 비교는 또한 다수의 상이한 방식들 중 임의의 방식으로 수행될 수도 있다. 선택이지만, 하나의 실시형태는 도 4 의 동작 (430) 에서 사용된 것과 유사한 시스템을 이용하는 것을 포함할 수도 있다. 예를 들어, 에지 오버레이 비교가 2 개의 핑거프린트들을 비교하는데 사용될 수도 있다. 이러한 비교 하에서, 3 개의 차원들 각각 내의 값들의 상대적 변화의 방법 및 레이트들이 하나의 핑거프린트를 다른 것에 대해 오버레이하고 3 개의 차원들 각각에서 핑거프린트들을 스케일링함으로써 바뀔 수도 있다. 핑거프린트들의 형태들의 유사성들에 기초하여, 유사성 값이 얻어질 수 있다. 전체 핑거프린트들은 비교될 수도 있고, 또는 상기 논의한 바와 같이, 핑거프린트들의 일부 부분들이 비교될 수도 있으며, 여기서 핑거프린트의 소정의 컴포넌트들은 선택적으로 다른 컴포넌트에 대해 가중된다.
일부 경우들에서, 비교되는 핑거프린트들이 감축될 수 있다. 예를 들어, 오디오 데이터의 맥락에서, 2 개의 핑거프린트들은 하나의 핑거프린트가 에코, 잔향, 사운드 품질에 대한 다른 저하에서 비롯되는 경우와 같이, 시간상 밀접할 수도 있다. 그 경우에, 추가적인 핑거프린트가 잠재적으로 제거될 수 있다. 예를 들어, 유사한 또는 동일한 핑거프린트가 보다 우세한 샘플에 대하여 음향 또는 다른 인자들에서 비롯되고, 이러한 핑거프린트가 그 후 제거될 수 있는 것으로 결정될 수도 있다. 대안적으로, 동일한 시점에서의 2 개의 핑거프린트들이 동일하거나 유사한 것으로서 식별될 수도 있고, 감축될 수 있다. 결과의 핑거프린트들은 도 12c 의 글로벌 해시 테이블 (1200) 및/또는 도 13 의 핑거프린트 테이블 (1300) 에서 식별될 수 있고, 상이한 핑거프린트들 간의 유사성들을 나타내는 값들 또는 다른 데이터가 테이블들 (1200, 1300) 에 포함될 수도 있다.
본 개시물의 일부 실시형태들에 따르면, 방법 (400) 에서 수신된 데이터 세트의 일부 엘리먼트들은 데이터 세트의 다른 데이터 엘리먼트들에 대하여 분리될 수도 있다. 이러한 분리는 핑거프린트들의 다른 핑거프린트들과의 유사성에 기초할 수도 있다. 여기에 논의한 바와 같이, 핑거프린트 유사성은 패턴들이 핑거프린트와 같은 구조 내의 변화 레이트들 및/또는 방법들에서 공통성들을 식별하는 것을 포함할 수도 있는, 데이터 내의 패턴들의 매칭에 기초할 수도 있다. 예를 들어, 전화 호의 맥락에서, 폰 콜의 아웃바운드 또는 인바운드 측의 스피커의 음성을 백그라운드의 다른 노이즈에 대하여 격리시키는 것이 바람직할 수도 있다. 이러한 경우에, 스피커와 연관된 하나 이상의 핑거프린트들의 세트는 핑거프린트들의 공통 양태들에 기초하여 식별된 후 출력에 제공될 수도 있다. 이러한 선택은 임의의 방식으로 수행될 수도 있다. 예를 들어, 일부 실시형태들에 따르면, 방법 (400) 을 실행하는 애플리케이션은 폰 디바이스 상에 위치될 수도 있고, 사람의 음성을 다른 사운드들에 대하여 자율적으로 분리할 수 있다. 예시로, 스피커가 말할 때, 그 스피커는 임의의 다른 개개의 소스에 비해 우세한 오디오 정보를 제공할 수도 있다. 데이터의 3 차원 표면 내에서, 음성의 우세한 본질은 가장 높은 진폭을 갖는 데이터로서 리플렉트될 수도 있다. 따라서, 방법 (400) 을 실행하는 애플리케이션 또는 디바이스는 음성을 우세한 샘플로서 인지하고, 우세한 샘플의 것과 유사한 데이터의 핑거프린트들을 분리한 후 잠재적으로는 단지 그 동일한 음성과 연관된 핑거프린트들을 송신 또는 출력할 수도 있다. 하나 또는 다중 윈도우 세그먼트들에서의 다른 주파수 진행들 간의 우세한 샘플 또는 주파수 진행을 식별하는 것은 동작 (438) 에서의 출력을 위해 지정된 데이터 소스들 또는 특성들을 식별하는 하나의 방식일 수도 있다. 일부 경우들에서, 컴퓨팅 애플리케이션은 가장 높은 볼륨/진폭에 있는 경우라도, 비음성 사운드들이 우세한 것으로 간주될 가능성이 적도록 음성 또는 다른 오디오 데이터와 연관된 소정의 구조들을 인지하도록 프로그램될 수도 있다.
또 다른 실시형태들에서, 동작 (438) 에서의 출력에 대해 지정되는 데이터는 오디오 데이터가 아닐 수도 있고, 또는 다른 방식들로 식별될 수도 있다. 예를 들어, 애플리케이션은 사용자 인터페이스 또는 다른 컴포넌트를 제공할 수도 있다. 데이터가 해석되고 하나 이상의 데이터 엘리먼트들이 그들의 공통성들에 기초하여 분리될 때, 분리된 데이터 엘리먼트들의 상이한 세트들이 선택에 대해 이용가능할 수도 있다. 따라서 이러한 데이터 세트들은 오디오 데이터의 사람 또는 다른 소스, 시각 데이터의 오브젝트의 유형, 또는 일부 다른 구조 또는 소스를 나타내는 특정 핑거프린트들에 각각 대응할 수도 있다. 분리된 데이터 세트들 중 하나 이상의 선택은 데이터를 프로세싱하기 전에, 데이터의 프로세싱 동안, 또는 데이터의 프로세싱 및 분리 후에 수행될 수도 있다. 일 예의 실시형태에서, 데이터 엘리먼트들의 비교는 하나 이상의 지정된 핑거프린트 세트들에 대해 수행될 수도 있고, 지정된 세트와 충분히 유사하지 않은 임의의 핑거프린트는 분리된 데이터 세트에 포함되지 않을 수도 있다.
그러나, 소정의 기준을 충족하는 핑거프린트들이 출력되고 선택적으로 유사한 것으로 결정된 다른 핑거프린트들을 포함하는 그룹들 또는 세트들에 저장될 수도 있다. 이러한 그룹화는 여기에 설명한 바와 같이, 또는 다수의 상이한 방식들 중 임의의 방식으로 임계 유사성 값을 이용하는 것에 기초할 수도 있다. 예를 들어, 0.95 의 유사성 임계값이 방법 (400) 에 대해 정적으로 또는 동적으로 설정된다면, 출력에 대해 지정된 핑거프린트에 대하여 95% 이상의 유사성을 가진 핑거프린트가 동일한 소스로부터 유도된 것으로 간주될 정도로 충분히 유사한 것으로 결정될 수도 있고, 따라서 출력될 준비가 될 수도 있다. 다른 실시형태들에서, 95% 의 유사성은 데이터의 2 개의 엘리먼트들이 동일한 데이터 소스의 것일 뿐만 아니라 동일한 충분히 높은 확률을 제공할 수도 있다. 음성 오디오 데이터의 맥락에서, 동일한 데이터 세트들의 높은 확률은 동일한 사람이 말하고 있을 뿐만 아니라, 동일한 음절 또는 사운드가 만들어지고 있다는 것을 나타낼 수도 있다.
데이터 엘리먼트들이 유사성들에 대해 평가되는 일 실시형태에서, 핑거프린트들을 세트에 추가하는 단계 440 이 수행될 수도 있다. 핑거프린트가 원하는 임계값보다 낮은 유사성 값을 갖는 것으로 결정된다면, 그 핑거프린트는 폐기 또는 무시될 수도 있다. 대안적으로, 핑거프린트는 추가적인 세트를 구축하는데 사용될 수도 있다. 단계 444 에서, 예를 들어, 새로운 세트가 생성될 수도 있다. 단계 444 에서의 새로운 세트의 생성은 도 14 의 세트 테이블 (1400) 에 새로운 엔트리를 생성하는 것 및 테이블 (1400) 의 대응하는 핑거프린트 섹션에 핑거프린트를 포함하는 것, 또는 도 13 의 핑거프린트 테이블 (1300) 에 저장될 수도 있는 것과 같은 그러한 핑거프린트에 대한 참조를 포함할 수도 있다.
그러나, 핑거프린트가 생성되고, 다른 핑거프린트에 대해 해석 및 비교될 때, 기존의 세트의 하나 이상의 핑거프린트들과 유사한 것으로 결정된다면, 핑거프린트는 데이터 세트의 다른 데이터로부터 분리될 수도 있다. 하나의 실시형태에서, 예를 들어, 세트의 다른 데이터와 유사한 것으로 결정된 핑거프린트는 그 세트에 추가될 수도 있다. 이러한 프로세스의 일부로서, 핑거프린트는 동작 (446) 에서 추가될 핑거프린트와 공통성들을 공유하는 기존 세트의 핑거프린트들에 추가될 수도 있다.
일부 경우들에서, 소정의 기준 세트에 매칭하는 높은 확률로 결정되거나 동작 (438) 에서 식별된 데이터는 데이터 세트에서 제외될 수도 있지만, 다른 실시형태들에서는, 모든 공통 데이터가 데이터 세트에 추가될 수도 있다. 테이블 (1400) 내의 데이터 세트는 예를 들어, 동일한 소스에서 비롯되거나 일부 다른 기준을 충족하는 충분히 높은 확률로 결정되는 고유한 핑거프린트들의 세트를 포함할 수도 있다. 따라서, 2 개의 동일하거나 거의 동일한 핑거프린트들이 동일한 세트에 포함되지 않을 수도 있다. 오히려, 동일할 가능성이 있는 2 개의 핑거프린트들이 충분히 유사한 것으로 나타내진다면, 새롭게 식별된 핑거프린트는 적용가능한 세트에서 제외될 수 있다. 유사하지만 결코 동일하지는 않은 데이터 핑거프린트들은 데이터 세트에 계속 추가될 수도 있다.
이 점을 더 예시하기 위해, 하나의 예시적인 실시형태는 다수의 임계치들에 대한 핑거프린트들 또는 다른 데이터 엘리먼트들의 비교를 포함할 수도 있다. 일 예로서, 유사성 데이터가 획득되어 제 1 임계치와 비교될 수도 있다. 이러한 임계치가 만족되는 경우, 이 방법은 이 데이터가 이미 알려진 핑거프린트와 동일한 것으로 간주할 수도 있다. 이러한 핑거프린트는 그 후에 또 다른 핑거프린트와 그룹화되고 단일 핑거프린트로서 간주될 수도 있거나, 포인터는 유사한 핑거프린트를 가리키기 위해 이용될 수도 있거나, 핑거프린트는 유사한 및/또는 동일한 핑거프린트들의 세트로부터 제거 또는 배제될 수도 있거나, 핑거프린트는 이전 핑거프린트와 동일하게 다루어질 수도 있거나, 또는 핑거프린트는 다른 방식들로 다루어질 수도 있다. 하나의 실시형태에서, 예를 들어, 0.9 와 1.0 사이의 유사성 값이 이용되어 핑거프린트들이 동일하다고 간주할 수도 있다. 다른 실시형태들에서, "동일한" 핑거프린트들에 대한 유사성 값들이 더 높거나 또는 더 낮을 수도 있다. 예를 들어, 2 개의 데이터 엘리먼트들 사이의 0.95 의 유사성 값이 이용되어 2 개의 엘리먼트들이 단지 유사한 것보다는 동일하게 다루어져야 한다고 나타낼 수도 있다. 핑거프린트가 이미 포함된 핑거프린트와 동일하거나 또는 동등하다고 간주될 수도 있기 때문에, 새로운 엔트리가 그 후에, 도 14 의 세트 테이블 (1400) 내의 세트에 부가될 필요는 없을 수도 있다.
또 다른 임계치가 그 후에, 동등성보다는 유사성을 결정하기 위해 이용될 수도 있다. 여기에 설명된 동일한 예시적인 스케일을 이용하여, 동등성에 대한 임계치가 0.7 의 유사성 값으로 설정되거나 또는 약 0.7 의 유사성 값으로 설정될 수도 있다. 비교되고 적어도 0.7 (그리고 선택적으로 0.7 과 상측 임계치 사이) 의 유사성을 갖는 임의의 2 개의 핑거프린트들은 동일하지 않고 유사한 것으로 간주될 수도 있다. 이러한 경우, 핑거프린트들이 동일한 소스로부터 유래하는 것에 대한 높은 확률을 갖는 것으로 결정되거나, 또는 그렇지 않으면 유사한 세트에 새로운 핑거프린트가 부가될 수도 있다. 물론, 이러한 임계치는 또한 변화할 수도 있고, 0.7 보다 더 높거나 또는 더 낮을 수도 있다. 예를 들어, 또 다른 실시형태에서, 더 낮은 유사성 임계치는 약 0.75 와 약 0.9 사이에 있을 수도 있다. 게다가 또 다른 예시적인 실시형태에서, 더 낮은 유사성 임계치는 약 0.8 일 수도 있다. 적어도 하나의 실시형태에서, 오디오 데이터의 유사성에 대한 핑거프린트들의 유사성의 평가는, 특정 인간이 말한 상이한 단어들 또는 음절들의 세트들을 생성할 수도 있다. 특히, 상이한 단어들 또는 음절들을 말할 수도 있지만, 인간의 음성과 연관된 패턴들이 0.8 보다 높은 유사성 값 또는 어떤 다른 적합한 임계치를 제공할 수도 있다. 따라서, 동일하지 않은 핑거프린트들이 전개될 수도 있지만, 핑거프린트들의 세트들은 시간에 걸쳐 계속되어 비교적 유사한 더 강건한 데이터 세트를 형성할 수도 있다.
본 개시물의 일부 실시형태에 따르면, "양호한" 데이터인 것으로 간주된 데이터가 출력되거나 또는 그렇지 않으면 제공될 수도 있다. 이러한 "양호한" 데이터는, 예를 들어, 도 4 의 동작 (448) 에 도시된 바와 같이 출력 버퍼에 기입될 수도 있다. 데이터는 동작 (438) 에서 식별된 지정들을 만족하는 것에 대한 충분히 높은 확률을 갖는 것으로 결정될 때, "양호한" 것으로 간주될 수도 있다. 이것은, 핑거프린팅되었을 때, 하나 이상의 차원들의 변화의 레이트 및/또는 방법에 대한 공통성들을 공유하는 데이터 내에서 발생할 수도 있다. 핑거프린트는, 예를 들어, 지정된 출력 소스와 연관된 것으로 알려져 있을 수도 있고, 및 이러한 핑거프린트에 대해 충분히 높은 유사성 값들을 가진 다른 핑거프린트들이 분리 및 출력될 수도 있다. 양호한 출력을 출력 버퍼에 기입하거나, 또는 그렇지 않으면 분리된 데이터를 제공하는 것은, 전화 대화가 발생하고 있는 것과 같은 일부 경우에서는 실시간으로 발생할 수도 있다. 특히, 타임 슬라이스의 윈도우 세그먼트 내의 주파수 진행 (frequency progression) 을 나타내는 핑거프린트는, 소스의 다른 알려진 핑거프린트들과 비교될 수도 있다. 유사한 핑거프린트들이 구분될 수도 있고, 이에 대응하는 데이터가 출력될 수 있다. 이러한 핑거프린트는 또한 선택적으로 소스에 대한 세트에 부가될 수도 있다.
일부 실시형태에서, 핑거프린트 데이터 자체는 출력하기에 적합한 형태로 되어 있지 않을 수도 있다. 따라서, 일부 실시형태에서, 핑거프린트 데이터는, 동작 (450) 으로 나타낸 바와 같이, 또 다른 유형의 데이터로 변환될 수도 있다. 오디오 정보의 경우, 예를 들어, 3 차원 핑거프린트는 2 차원 오디오 데이터로 다시 변환될 수도 있다. 이러한 포맷은 방법 400 으로 수신된 정보의 포맷과 유사할 수도 있다. 그러나, 일부 실시형태에서, 출력되는 데이터는 입력 데이터와는 상이할 수도 있다. 일 예시적인 차이는, 다른 수신된 데이터 엘리먼트들에 대해 분리된 데이터 엘리먼트들을 포함하는 출력 데이터를 포함할 수도 있어서, 구분되거나 또는 분리된 데이터가 출력된다. 구분되거나 또는 분리된 데이터가 공통성들을 공유할 수도 있다. 대안적으로, 다수의 데이터 세트들로부터의 데이터 엘리먼트들이 출력될 수도 있고, 데이터 엘리먼트들의 각 세트는 특정 공통성들을 갖는다. 적어도 하나의 실시형태에서, 3 차원 데이터를 2 차원 표현으로 변환하는 것은, 3 차원 핑거프린트 데이터에 대한 또는 3 차원 핑거프린트 데이터의 2 차원 표현에 대한 라플라스 변환을 수행하여, 데이터를 또 다른 2 차원 도메인으로 변환하는 것을 포함할 수도 있다. 오디오 정보에 대해, 예를 들어, 시간/주파수/진폭 데이터는 시간/진폭 도메인에서의 데이터로 변환될 수도 있다.
데이터가 변환되면, 데이터가 출력될 수도 있다 (도 3 의 동작 316 참조). 적어도 일부의 부가적인 또는 대안적인 실시형태에서, 하나 이상의 테이블로부터의 정보가 이용되어 분리된 데이터를 출력할 수도 있다. 예를 들어, 도 11 의 윈도우 테이블 (1100) 에 대해, 특정 핑거프린트는, 특정 시작 및 종료 시간들을 갖는 윈도우 세그먼트와 연관될 수도 있다. 따라서, 시작 및 종료 시간 데이터를 이용함으로써 핑거프린트가 출력될 수도 있다. 또한, 오디오 데이터를 출력 스트림으로 기입하는 것을 위해 시작 및 종료 진폭 또는 다른 세기 데이터가 이용될 수도 있어서, 이 데이터가 올바른 시간 및 볼륨으로 제공되도록 한다.
따라서, 데이터를 수신하고, 이 데이터 내의 데이터 엘리먼트들을 다른 데이터 엘리먼트들에 대해 분석하여 공통성들을 결정함으로써 이 데이터를 해석하기 위해 방법 400 이 이용될 수도 있다. 데이터 공유 공통성들은 그 후에 다른 데이터로부터 분리되고, 원한다면 출력 또는 저장될 수도 있다. 도 16 은 2 개의 예시적인 파형들 (1600a, 1600b) 을 예시한 것이고, 이 파형들 각각은 특정 소스의 사운드를 해석하고 분리하기 위해 도 5 의 파형 (500) 의 후속 프로세싱이 출력될 수도 있는 데이터를 나타낸 것이다. 파형들 (1600a, 1600b) 은 각각 동일한 소스와 연관되는 우도를 갖는 데이터에 대응할 수도 있고, 이 파형들 (1600a, 1600b) 각각은 개별적으로 출력될 수도 있고, 또는 출력은 파형들 (1600a, 1600b) 양쪽을 포함할 수도 있다.
여기의 본 개시물의 관점에서, 도 3 및 도 4 의 방법들이 임의의 개수의 방식들로 조합될 수도 있다는 것과, 다양한 방법 동작들 및 단계들이 선택적이거나, 상이한 시간에서 수행될 수도 있거나, 조합될 수도 있거나, 또는 그렇지 않으면 변경될 수도 있다는 것을 인식해야 한다. 또한, 도 3 및 도 4 의 방법들이 임의의 특정 유형의 데이터에 대해 동작할 필요는 없다. 따라서, 일부 예가 오디오 데이터를 언급하지만, 동일하거나 또는 유사한 방법들이 시각적 데이터, 아날로그 데이터, 디지털 데이터, 암호화된 데이터, 압축된 데이터, 실시간 데이터, 파일-기반 데이터, 또는 다른 유형의 데이터와 관련하여 이용될 수도 있다.
또한, 도 3 및 도 4 의 방법들이 사용자 개입하여 또는 사용자 개입 없이 동작하도록 설계될 수도 있다는 것을 또한 이해해야 한다. 하나의 실시형태에서, 예를 들어, 방법들 300 및 400 은 자율적으로, 예컨대, 컴퓨터 판독가능 저장 매체에 저장되거나 또는 또 다른 방식으로 수신된 컴퓨터 실행가능 명령들을 실행하는 컴퓨팅 디바이스에 의해 동작할 수도 있다. 데이터 내의 공통성들은 동적으로 그리고 자율적으로 인지될 수 있고, 유사한 데이터 엘리먼트들이 분리될 수 있다. 이러한 방식으로, 데이터의 사운드들 또는 다른 유형들에 대한 상이한 구조들이 미리 프로그래밍될 필요는 없지만, 그 대신에 온 더 플라이 (on the fly) 로 식별 및 그룹화될 수 있다. 이것은, 예를 들어, 별개의 데이터 엘리먼트들을 동일한 데이터 세트 내의 다른 데이터 엘리먼트들에 대해 분석하여 구조의 변화의 레이트들 및/또는 방법들에 대한 이들의 공통성들을 결정함으로써 발생할 수 있다. 이러한 구조들은 3 차원으로 정의될 수도 있고, 변화의 레이트들 및 방법들은 볼륨 또는 진폭과 같은 세기 값에 관련될 수도 있지만, 이에 한정되는 것은 아니다. 또한, 방법들 300 및 400 은 데이터 세트들의 자율적이고 반동하는 재구성 및 재형성을 허용하고 데이터를 출력한다. 예를 들어, 데이터 세트들은 그 자신들에 대해 자율적으로 형성하여 특정 소스 또는 특성의 데이터 (예를 들어, 특정 기구에 의해 만들어진 사운드들 또는 특정 인간의 음성 데이터) 를 더 정의할 수 있다. 사용자 개입 없이도, 이러한 데이터가 출력 데이터에 포함되든지 또는 포함되지 않든지 간에, 유사한 데이터가 특정 소스와 연관된 세트에 부가될 수 있다. 또한, 분리되는 데이터는, 데이터의 핑거프린트들 또는 다른 표현들을 이용하여 재형성될 수 있다. 이러한 구성은, 수신되는 전체 데이터 세트를 구성하기 위해 이용될 수도 있거나, 또는 여기에 설명된 바와 같이 데이터 세트의 구분되거나 또는 분리된 부분들을 구성하기 위해 이용될 수도 있다.
여기의 본 개시물의 관점에서 인식되는 바와 같이, 본 개시물의 실시형태들은 하나 이상의 테이블들 또는 다른 데이터 저장들을 이용하여, 하나 이상의 지정된 소스들에 대응하여 데이터 내의 패턴들을 식별하고 구분된 데이터를 출력함에 있어서 이용될 수도 있는 정보를 저장 및 프로세싱할 수도 있다. 도 11 내지 도 14 는 이러한 목적을 위해 이용될 수도 있는 테이블들의 예시적인 실시형태들을 예시한 것이다.
도 15 는 윈도우 테이블 (1100), 글로벌 해시 테이블 (1200), 핑거프린트 테이블 (1300) 및 세트 테이블 (1400) 각각을 포함하고 이들 사이의 상호 작용을 설명한 일 예시적인 테이블 시스템 (1500) 을 개략적으로 예시한 것이다. 일반적으로, 이 테이블들은 다른 데이터를 참조하는 데이터를 포함할 수도 있고, 또는 데이터 내의 패턴들을 해석하고 하나 이상의 지정된 소스들의 데이터를 구분하는 프로세스 동안 필요한 다른 테이블들에 판독 또는 기입하기 위해 이용될 수도 있다. 일반적으로, 이 테이블들 (1100 내지 1400) 은 이전에 설명된 것과 유사한 방식으로 동작할 수도 있다. 예를 들어, 윈도우 테이블 (1100) 은 하나 이상의 윈도우 세그먼트들의 위치들을 나타내는 정보를 저장할 수도 있다. 이들 윈도우 세그먼트들의 식별이, 글로벌 해시 테이블 (1200) 및/또는 핑거프린트 테이블 (1300) 내의 동일한 윈도우 세그먼트들의 식별들을 위해 제공되거나, 또는 이 글로벌 해시 테이블 (1200) 및/또는 핑거프린트 테이블 (1300) 내의 동일한 윈도우 세그먼트들의 식별들과 함께 이용될 수도 있다. 또한, 윈도우 테이블 (1100) 은 세트 테이블 (1400) 과 함께 이용될 수도 있다. 예를 들어, 세트와 연관된 양호한 데이터가 출력되어야 하기 때문에, 시간, 진폭, 주파수, 또는 윈도우 테이블 (1100) 에 저장된 다른 데이터 값들을 이용하여, 식별된 핑거프린트가 출력 버퍼에 기입될 수 있다.
또한, 글로벌 해시 테이블 (1200) 은 핑거프린트 테이블 (1300) 과 함께 이용될 수도 있다. 예를 들어, 글로벌 해시 테이블 (1200) 은 윈도우 세그먼트 내의 하나 이상의 핑거프린트들을, 동일한 윈도우 세그먼트 내의 핑거프린트들 간의 비교 유사성들과 함께 식별할 수도 있다. 동일하거나 또는 유사한 핑거프린트들은 감소될 수도 있거나, 또는 포인터들이 포함되어 유사한 핑거프린트의 비교 값들을 참조할 수도 있어서, 중복 데이터가 저장될 필요가 없도록 한다. 핑거프린트 테이블 (1300) 은 핑거프린트들 그 자체를 포함할 수도 있고, 여기서 핑거프린트들은 글로벌 해시 테이블 (1200) 에 대한 비교 값들을 제공하기 위해 이용될 수도 있다. 부가적으로, 핑거프린트 테이블 내의 비교 또는 유사성 데이터는 글로벌 해시 테이블 (1200) 내의 정보에 기초할 수도 있다. 예를 들어, 글로벌 해시 테이블 (1200) 이 2 개의 핑거프린트들이 유사하다고 나타내는 경우, 대응하는 정보가 핑거프린트 테이블 (1300) 내에 포함될 수도 있다.
또한, 세트 테이블 (1400) 이 핑거프린트 테이블 (1300) 또는 윈도우 테이블 (1100) 과 상호 작용할 수도 있다. 예를 들어, 이전에 설명된 바와 같이, 세트 테이블 (1400) 은 정의된 세트 내에 있는 핑거프린트들에 대한 참조들을 포함할 수도 있지만, 핑거프린트들은 핑거프린트 테이블 (1300) 에 저장될 수도 있다. 따라서, 세트 테이블 (1400) 내의 정보는 핑거프린트 테이블 (1300) 내의 데이터에 대한 포인터들일 수도 있다. 또한 상술된 바와 같이, 세트에 대한 양호한 정보가 출력을 위해 식별되는 경우, 윈도우 테이블 (1100) 에 저장된 시간 또는 다른 데이터 값들에 대한 정보가 이용되어 세트 테이블 (1400) 내의 식별된 알려져 있는 양호한 값을 출력하도록 할 수도 있다.
일반적으로, 본 개시물의 실시형태들은 실시간 오디오 통신들 또는 전송들과 관련하여 이용될 수도 있다. 이러한 프로세스를 이용하여, 비교적 유사한 패턴들을 갖는 정보의 데이터 세트들은 동적으로 전개되고 이용되어 원하는 사운드들을 구분할 수도 있다. 예시적인 예들은, 데이터가 시외, 시내, 또는 중간 디바이스에서 프로세싱될 수도 있고 특정 정보가 구분되어 포함될 수도 있는 전화 대화들을 포함할 수도 있다. 본 개시물의 방법들 및 시스템들은, (예를 들어, 특정 인간 또는 소스로부터 유래하는 것과 같은) 세트 기준들을 만족하는 데이터가 세트에 포함되는 포괄적인 기반으로 동작할 수도 있다. 이러한 프로세싱은, 데이터가 특정 기준들에 대해 분석되고 이 기준들을 만족하는 임의의 정보가 배제되는 배타적인 프로세싱과는 대조를 이룰 수도 있다.
본 개시의 실시형태들은 다수의 상이한 종류의 데이터, 통신 또는 상황들과 관련되어 이용될 수도 있다. 부가적으로, 지문, 세트 또는 다른 패턴 데이터는 임의의 수의 상이한 방식들로 발전 및 공유될 수도 있다. 도 17은, 예컨대, 사람들의 개인 정보용 컨테이너와 연관될 수도 있는 콘택 카드 (1700) 의 시각적 표현을 나타낸다. 일 실시형태에 따라서, 카드 (1700) 는 개인 정보 (1704) 는 물론 콘택 정보 (1702) 를 포함할 수도 있다.
콘택 정보 (1702) 는 일반적으로 전화, 이메일, 메일로든, 소정의 주소 등에서든 사람과 콘택하기 위해 사용될 수도 있다. 반면에, 개인 정보 (1704) 는 대신에 사람에 대한 정보를 제공할 수도 있다. 개인 신상의 예는 배우자 또는 자녀의 이름, 어떤 사람의 생일 또는 기념일, 그 사람에 대한 다른 메모들 등을 포함할 수도 있다. 일 실시형태에서, 콘택 카드 (1700) 는 콘택 정보 (1702) 에 의해 식별되는 사람의 스피치 특성에 대한 정보를 포함할 수도 있다. 예컨대, 본 개시의 방법들을 사용하여, 식별된 사람이 만든 상이한 단어들 또는 음절들은 일 세트의 정보로 수집될 수도 있고 유사한 패턴들을 갖는 것으로서 식별될 수도 있다. 이 정보는 여기에 기재된 세트 테이블 또는 다른 컨테이너에 저장될 수도 있다. 적어도 예시된 실시형태에서, 세트 정보는 또한 압축될 수도 있고 콘택 컨테이너의 일부로서 포함될 수도 있다. 그 결과, 개인의 음성 특성은 다른 것들과 공유될 수 있다. 전화 통화를 나중에 착수하는 경우, 카드 (1700) 로 나타낸 콘택 컨테이너에 액세스하는 컴퓨팅 시스템은, 새로운 세트를 만들 필요 없이, 음성 데이터의 세트를 즉시로 사용하거나 또는 구축하기 시작할 수도 있고, 이후 그 세트를 특정 소스와 연관시킬 수도 있다.
일 실시형태에서, 디바이스의 사용자로 하여금 누가 전화 통화의 다른 편에 있는지를 알게 하기 위해서, 전화는 개인 정보 (1704) 에서의 음성 데이터의 지문들에 액세스할 수도 있다. 예컨대, 전화 통화는 미지의 번호로부터 또는 심지어 아는 또다른 사람의 번호로부터 이루어질 수도 있다. "존 스미스"가 말하기 시작하는 경우, 수신 전화는 스피치의 패턴들을 식별하고 그것들을 존 스미스에 대해 저장된 음성 데이터의 지문들과 비교할 수도 있다. 스피치 패턴들이 지문의 패턴들과 매칭되는 것을 검출할 때, 전화 상의 애플리케이션은 사용자가 존 스미스와 말하고 있다는 것을, "존 스미스"의 이름을 표시하거나, 연관된 사진을 표시하거나, 또는 달리 통화의 다른 편에 있는 말하는 사람의 표식을 제공함으로써 자동으로 나타낼 수도 있다.
본 개시의 실시형태들은 또한 다른 환경들 또는 상황들에서 사용될 수도 있다. 예컨대, 도 3 및 도 4의 방법들을 포함하여, 여기에 개시된 방법들 및 시스템들은, 오디오 데이터도 아니고/아니거나 실시간 데이터도 아닌, 데이터를 해석하기 위해 사용될 수도 있다. 예컨대, 오디오 데이터 또는 다른 종류의 데이터에 대해서 파일 기반의 작업들이 수행될 수도 있다. 예컨대, 노래가 파일로 저장될 수도 있다. 한 명 이상의 사람들이 노래가 나오는 동안 노래할 수도 있고/있거나 기타, 키보드, 베이스, 또는 드럼과 같은 하나 이상의 악기들이 각각 연주될 수도 있다. 라이브 녹음시, 군중의 환호와 잡음이 또한 배경에 포함될 수도 있다.
그 데이터는 상술된 것과 동일한 방식으로 많이 분석될 수도 있다. 예컨대, 도 3을 참조하면, 데이터가 액세스될 수도 있다. 이후, 데이터는 도 4의 방법을 이용하여 포함되거나 또는 격리될 수도 있다. 이러한 방법으로, 데이터는 2차원의 표현으로부터 3차원의 표현으로 변형될 수도 있다. 이러한 파일은 도 4에 도시된 바와 같이 슬라이스될 필요가 없지만, 특정 타임 슬라이스로 하기 보다는, 대신에 전체 파일 내의 윈도우 세그먼트들을 식별함으로써 전체적으로 프로세싱될 수도 있다. 잡음 플로어 또는 다른 베이스라인으로부터의 편차들이 식별되고 마킹될 수 있다. 타임 슬라이스들이 생성되지 않는 곳에서는, 도 4에 도시된 오버랩들을 식별할 필요가 없을 수도 있다. 대신에, 모든 윈도우 세그먼트들의 주파수 진행들이 지문 날인되고, 비교되고 그리고 잠재적으로 감소될 수 있다. 일부 경우, 하나 이상의 출력 세트들이 식별될 수 있다. 예컨대, 도 18은, 특정 실시형태에서는 오디오 파일일 수도 있는, 파일을 분석할 수 있는 애플리케이션을 위한 사용자 인터페이스 (1800) 의 예를 나타낸다. 애플리케이션에서, 파일로부터의 오디오 정보가 액세스되고 해석되고 있다. 여기에 개시된 것과 일치하는 방식으로 데이터 세트 내에서 데이터 엘리먼트들과 다른 엘리먼트들을 비교하는 것을 이용하여, 동일한 소스로부터의, 높은 확률을 갖는 데이터 엘리먼트들의 상이한 세트들이 식별되고 있다.
도 18에 나타낸 특정 실시형태에서, 예컨대, 데이터 엘리먼트들의 5개의 상이한 세트들 각각이 식별됨과 함께, 오리지널 파일 (1802) 이 제공될 수도 있다. 이 엘리먼트들은 2개의 음성 데이터 세트들 (1804, 1806) 및 3개의 기악 (instrumental) 데이터 세트들 (1808-1812) 을 포함할 수도 있다. 각 세트의 분리는 분석된 파일 (1802) 내의 공통 특징들에만 기초하여 자체적으로 이루어질 수도 있다. 다른 실시형태들에서는, 오디오 파일의 어떤 특징들이 특정 세트들에 대응하는지를 결정함에 있어서, 파일들 또는 다른 데이터의 자체 분석을 이용하여 미리 만들어진 다른 데이터 세트들이 또한 사용될 수도 있다.
일단 파일이 분석되는 경우, 각각의 세트 (1804-1812) 는 사용자 인터페이스 (1800) 를 통해 나타낼 수도 있다. 이러한 세트들은 사용자에 의해 독립적으로 선택될 수도 있고, 각각의 세트는 선택적으로 분리된 파일로서 출력될 수도 있거나 또는 다른 세트들과 관계없이 플레이될 수도 있다. 일부 실시형태들에서, 세트들이 임의의 방식으로 선택되고 조합될 수도 있다. 예컨대, 사용자가 음성을 제외한 모든 것을 플레이하기를 원하는 경우, 사용자는 각각의 세트들 (1808-1812) 을 플레이하기로 선택할 수 있다. 사용자가 주요 음성만을 듣기를 원하는 경우에는, 사용자는 세트 (1804) 만을 플레이하기로 선택할 수 있다. 물론 임의의 다른 조합을 이용하여, 분리된 오디오를 사용자에 의해 원하는대로 임의의 방식으로, 그리고 임의 레벨의 입도 (granularity) 로 조합할 수 있다. 이 방식으로, 매우 복잡한 오디오 혼합 장비에 대한 필요 또는 그 장비의 사용 방법의 지식 없이도, 사용자는 오디오 데이터의 분석을 수행할 수도 있거나 또는 특정 오디오 소스들을 분리 또는 격리할 수도 있다. 대신에, 수신되는 데이터는 데이터 자체에서 식별된 패턴들에 기초하여 자체적으로 나타내지고/나타내지거나 재구성될 수 있다.
본 개시의 실시형태들은 일반적으로 컴퓨팅 디바이스에 의해 수행될 수도 있고, 보다 구체적으로 컴퓨팅 디바이스 상에서 실행되는 애플리케이션에 의해 제공된 명령들에 응답하여 수행될 수도 있다. 따라서, 소정의 기존 기술들과 달리, 본 개시의 실시형태들은 구체적인 프로세서들 또는 칩들을 요구하지 않을 수도 있지만, 대신에 적합한 애플리케이션이 설치되면 범용 또는 특수용 컴퓨팅 디바이스들 상에서 운용될 수 있다. 다른 실시형태들에서, 컴퓨팅 디바이스 또는 시스템의 운전을 감독함에 있어서 하드웨어, 펌웨어, 소프트웨어, 또는 상기의 임의의 조합이 사용될 수도 있다.
이로써 본 개시의 실시형태들은, 여기에서 보다 상세히 논의된 바와 같이, 예를 들어, 하나 이상의 프로세서들 및 시스템 메모리와 같은 컴퓨터 하드웨어를 포함하는 특수용 또는 범용의 컴퓨터를 포함하거나 또는 이용할 수도 있다. 본 개시의 범위 내의 실시형태들은 또한, 다른 모듈들의 특정 기능들 또는 직접적인 선택 또는 실행을 실행하기 위해 사용되는 애플리케이션들, 테이블들, 또는 다른 모듈들을 포함하여, 컴퓨터 실행가능한 명령들 및/또는 데이터 구조들을 운반 또는 저장하기 위한 물리적 및 다른 컴퓨터 판독가능한 매체들을 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수용 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 입수가능한 매체일 수 있다. 컴퓨터 실행가능한 명령들을 저장하는 컴퓨터 판독가능 매체는 물리적 저장 매체이다. 컴퓨터 실행가능한 명령을 운반하는 컴퓨터 판독가능 매체는 전송 매체이다. 이로써, 제한이 아닌 예시로써, 개시의 실시형태들은, 적어도 컴퓨터 저장 매체 및/또는 전송 매체를 포함하여, 적어도 2개의 명백히 상이한 종류의 컴퓨터 판독가능한 매체를 포함할 수 있다.
컴퓨터 저장 매체의 예들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드 수단을 컴퓨터 실행가능한 명령들 또는 데이터 구조들의 형태로 저장하기 위해서 사용될 수 있고 범용 또는 특수용 컴퓨터에 의해 액세스될 수 있는 임의의 다른 비전송 매체를 포함한다.
"통신 네트워크"는 일반적으로 컴퓨터 시스템들 및/또는 모듈들, 엔진들, 및/또는 다른 전자 디바이스들 사이의 전자 데이터의 수송을 가능하게 하는 하나 이상의 데이터 링크들로서 정의될 수도 있다. 정보가 통신 네트워크 또는 다른 통신 연결 (유선 (hardwired), 무선, 또는 포선 또는 무선의 조합) 상에서 컴퓨팅 디바이스로 전달 또는 제공되는 경우, 컴퓨팅 디바이스는 적절하게 전송 매체로서 그 연결을 뷰잉한다. 전송 매체는, 원하는 프로그램 또는 템플릿 코드 수단 또는 명령들을 컴퓨터 실행가능한 명령들 또는 데이터 구조들의 형태로 운반하기 위해 사용될 수 있고 범용 또는 특수용 컴퓨터에 의해 액세스될 수 있는, 통신 네트워크 및/또는 데이터 링크들, 반송파들, 무선 신호들 등을 포함할 수 있다. 물리적 저장 매체 및 전송 매체의 조합들은 또한 컴퓨터 판독가능한 매체의 범위 내에 포함되어야 한다.
또한, 다양한 컴퓨터 시스템 컴포넌트들에 도달시, 컴퓨터 실행가능한 명령들 또는 데이터 구조들 형태의 프로그램 코드 수단은 전송 매체로부터 컴퓨터 저장 매체로 (또는 그 반대로) 자동으로 전달될 수 있다. 예를 들어, 네트워크 또는 데이터 링크 상에 수신된 컴퓨터 실행가능한 명령들 또는 데이터 구조들은 네트워크 인터페이스 모듈 (예를 들어, "NIC") 내의 RAM에서 버퍼링된 다음, 마침내 컴퓨터 시스템 RAM 으로 및/또는 컴퓨터 시스템에서 덜 휘발성인 컴퓨터 저장 매체로 전달될 수 있다. 이로써, 컴퓨터 저장 매체가, 전송 매체를 또한 (또는 심지어 주로) 이용하는 컴퓨터 시스템 컴포넌트들 내에 포함될 수 있음을 이해해야 한다.
컴퓨터 실행가능한 명령들은, 예를 들어, 프로세서에서 실행되는 경우, 범용 컴퓨터, 특수용 컴퓨터, 또는 특수용 프로세싱 디바이스로 하여금 소정의 기능 또는 그룹의 기능들을 수행하도록 하는 명령들 및 데이터를 포함한다. 컴퓨터 실행가능한 명령들은, 예를 들어, 어셈블리 언어, 또는 심지어 소스 코드와 같은 바이너리, 중간 포맷 명령들일 수 있다. 대상물이 구조적 특징들 및/또는 방법론적 동작들에 특수한 언어로 기재되더라도, 첨부된 청구범위에 정의된 대상물은 기재된 피처들 또는 상술된 동작들이나, 또는 상술된 컴포넌트들에 의한 단계들 또는 기재된 동작들의 성능에 반드시 한정되는 것은 아님을 이해해야 한다. 오히려, 기재된 피처들 및 동작들은 청구범위를 이행하는 예시적인 형태로서 개시된다.
당업자들은, 퍼스널 컴퓨터들, 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 메시지 프로세서들, 핸드헬드 디바이스들, 프로그래머블 로직 머신들, 멀티프로세서 시스템들, 마이크로프로세서 기반의 또는 프로그래머블 컨슈머 일렉트로닉스, 네트워크 PC들, 태블릿 컴퓨팅 디바이스들, 미니컴퓨터들, 메인프레임 컴퓨터들, 휴대폰들, PDA들, 서버들 등을 포함하는, 많은 종류의 컴퓨터 시스템 구성들을 이용하여, 네트워크 컴퓨팅 환경들에서 실시형태들이 실행될 수도 있음을 알 것이다.
실시형태들은 또한, 네트워크를 통해 (포선 데이터 링크, 무선 데이터 링크, 또는 포선 및 무선 데이터 링크의 조합에 의해) 링크되는 로컬 및 리모트 컴퓨터 시스템들 모두가 태스크를 수행하는 분산 시스템 환경들에서 실행될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 리모트 메모리 저장 디바이스들 모두에 위치될 수도 있다.
산업상 이용가능성
일반적으로, 본 개시의 실시형태들은 데이터를 해석 및 분리하는 자율적, 동적 시스템들 및 애플리케이션들에 관한 것이다. 그러한 자율적 시스템들은 데이터 패턴들의 수학적, 알고리즘적 또는 다른 미리결정된 정의들을 참조할 필요없이 단지 패턴들을 식별하기 위해 제공된 데이터에만 기초하여 데이터를 분석할 수도 있다. 본 개시의 실시형태들에 따라 해석 및 분리될 수도 있는 데이터는 실시간 데이터, 저장된 데이터, 또는 다른 데이터 또는 상기한 것의 임의의 조합을 포함할 수도 있다. 또한, 분석되는 데이터의 유형은 다양할 수도 있다. 따라서, 일부 실시형태들에서, 분석된 데이터는 오디오 데이터일 수도 있다. 그러나, 다른 실시형태들에서, 데이터는 이미지 데이터, 비디오 데이터, 주식 시장 데이터, 의료 영상 데이터, 또는 임의의 수의 다른 유형들의 데이터일 수도 있다.
전화 통화에서와 같이, 오디오 데이터가 실시간으로 획득될 수도 있는 예들이 개시되어 있다. 여기에서 고려되는 시스템들 및 애플리케이션들은 엔드 유저 디바이스들에서, 또는 임의의 중간 로케이션에서 사용될 수도 있다. 예를 들어, 셀폰은 디바이스의 사용자로부터, 또는 다른 엔드 유저 디바이스의 사용자로부터 수신되는 오디오를 해석 및 분리하는, 여기의 개시물과 일관성이 있는 애플리케이션을 운용할 수도 있다. 데이터는 분석될 수도 있고 특정의 사용자의 데이터가 배경 또는 다른 노이즈로부터 분리 및 격리될 수도 있다. 따라서, 노이즈 환경, 또는 데이터 압축이 데이터에 노이즈를 부가하는 시스템에서조차, 사람의 음성이 선명하게 재생될 수도 있다. 유사하게, 시스템은 엔드 유저 디바이스들로부터 멀리 떨어져 있으면서 데이터를 해석 및 분리할 수도 있다. 예를 들어, 셀폰 캐리어는 서버 또는 다른 시스템에서 애플리케이션을 운용할 수도 있다. 음성 데이터가 하나의 소스로부터 수신됨에 따라, 그 데이터는 해석될 수도 있고, 환경적, 기술적, 또는 다른 소스들로부터 수신되는 다른 노이즈로부터 사용자의 음성이 분리될 수도 있다. 그 후, 분리된 데이터는 다른 노이즈로부터 분리되는 방식으로 다른 엔드 유저(들)로 송신될 수도 있다. 일부 실시형태들에서, 셀폰 사용자 또는 시스템 관리자는 데이터를 선택적으로 해석 및 차단하기 위해 폴리시들을 설정하거나 애플리케이션들을 턴온/턴오프할 수도 있다. 예를 들어, 사용자는 노이즈 환경에 있을 때, 또는 다른 통화자를 듣는데 어려움을 가질 때 국부적으로 운용하는 애플리케이션만을 턴온할 수도 있다. 서버는 엔드 유저들 또는 관리자로부터의 입력시 선택적으로 그 애플리케이션을 실행할 수도 있다. 일부의 경우들에서, 애플리케이션, 시스템 또는 세션은 전화 통화의 중간에 활성화 또는 활성화해제될 수 있다. 예를 들어, 예시의 실시형태는 전화 통화의 일 종단 상의 스피커를 자동적으로 검출하고, 다른 노이즈 또는 오디오에 대해 그 스피커의 음성을 분리하는데 사용될 수도 있다. 전화가 다른 사람에게 건네지면, 애플리케이션은 활성화해제될 수도 있고, 세션이 수동으로 또는 자동으로 재개될 수도 있어, 새로운 스피커의 음성이 들려지고/들려지거나 다른 소리들에 대해 격리될 수 있도록한다.
다른 양태에 따르면, 본 개시의 시스템들, 디바이스들, 및 애플리케이션들은 스튜디오 세팅에서의 오디오 데이터에 사용될 수도 있다. 예를 들어, 음악 기술 전문가는 여기에 개시된 양태들을 사용하는 시스템을 사용하여 기록된 음악을 분석할 수도 있다. 특정의 오디오 샘플들 및 악기들은 자동적으로 및 효과적으로 검출 및 격리될 수도 있다. 음악 기술전문가는 특정의 트랙이나 특정의 트랙들의 세트만을 추출할 수도 있을 것이다. 따라서, 노래가 생성된 후, 본 개시의 시스템들은 자동적으로 그 노래를 디믹스 (de-mix) 할 수 있다. 그 후, 임의의 원하는 트랙이 리믹스 (remix) 되거나, 터치 업되거나 그렇지 않으면 변경 또는 트위크 (tweak) 될 수 있을 것이다. 임의의 백색 노이즈, 배경 노이즈, 부수적인 노이즈 등이 또한 샘플들이 다시 결합되기 전에 추출 및 제거될 수 있다. 실제로, 일부 실시형태들에서, 음악을 생성하는 사람 또는 그룹에게 가청적으로 주어지는 지시들이 기록되기 조차하며 효과적으로 필터링될 수도 있다. 따라서, 오디오 믹싱 및 마스터링 시스템은 본 개시물의 양태들을 병합할 수 있고, 음악 기술전문가는 시스템이 자율적으로, 효율적으로, 효과적으로, 및 비파괴적으로 특정의 트랙들을 격리할 수 있으면서 시간과 돈을 절약할 수도 있다.
본 개시의 추가적인 실시형태들에 따르면, 다른 음향 디바이스들은 본 개시와 연관하여 사용될 수도 있다. 예를 들어, 보청기들은 이익적으로 본 개시의 양태들을 병합할 수도 있다. 일 실시형태에 따르면, 보청기 또는 다른 청취 증강 디바이스에 내장된 애플리케이션을 사용하거나, 그러한 디바이스들과 인터페이싱하는 애플리케이션들을 사용하여, 보청기는 청취를 증강할 뿐아니라 원하지 않는 소리들로부터 원하는 소리들을 분리하는데 사용될 수도 있다. 예를 들어, 일 예에서, 보청기 사용자는 공공 장소에 있는 동안 한 명 이상의 사람들과 대화할 수도 있다. 그 대화에 관련된 사람들의 음성들은 외부의 원하지 않는 노이즈 또는 소리들로부터 분리될 수도 있고, 단지 그들의 음성들만이 보청기 또는 다른 디바이스를 사용하여 제공될 수도 있다.
그러한 동작은 이동 디바이스 상에서 운용되는 애플리케이션과 관련하여 수행될 수도 있다. 무선 또는 다른 통신을 사용하여, 보청기 및 이동 디바이스가 통신할 수도 있고, 이동 디바이스는 보청기에 의해 청취되는 모든 상이한 소리들 또는 소스들을 식별할 수 있다. 사용자는 원하는 특정의 소스들을 분류하거나 선택할 수 있을 것이며, 그 소스는 모든 다른 오디오 소스들로부터 격리된 방식으로 제공될 수 있다.
본 개시의 실시형태들을 사용하여, 다른 특징들이 실현될 수도 있다. 예를 들어, 보청기를 사용하는 사람은 모바일 또는 다른 애플리케이션 상에 경보를 설정할 수도 있다. 보청기가 경보에 대응하는 소리를 청취하는 경우, 사용자는 통지될 수 있다. 예를 들어, 사용자는 각 소리가 핑거프린트들의 세트들 또는 특정의 오디오 소스에 대응하는 다른 데이터와 일관성이 있을 수도 있기 때문에 특정의 음성이 청취되는 경우, 전화가 울리는 경우, 초인종이 울리는 경우 등에 통지되기를 원할 수도 있다.
다른 오디오 관련 분야들은 음성 또는 단어 인식 시스템들에서의 사용을 포함할 수도 있다. 예를 들어, 특정의 핑거프린트들은 특정의 철자 또는 단어와 연관될 수도 있다. 그 핑거프린트를 만나게 되는 경우, 본 개시에 따른 시스템들은, 잠재적으로 다른 소리들과 결합하여 무슨 단어가 말하여지고 있는지를 검출할 수도 있다. 그러한 것은 음성 인식 시스템들을 사용하는 유형에, 또는 센서 (censor) 로서도 사용될 수도 있다. 예를 들어, 욕설은 격리되거나 출력되지 않을 수도 있고, 또는 심지어 자동적으로 더 온건한 단어들로 대체될 수도 있다.
또 다른 오디오는 수면 습관들을 개선하기 위해 소리들의 격리를 포함할 수도 있다. 코를 고는 배우자 또는 룸메이트는 밤 중에 방해를 최소화하기 위해 코고는 소리가 격리되게 할 수도 있다. 사이렌, 큰소리내는 이웃들 등도 격리될 수도 있다. 다른 맥락에서, 라이브 이벤트들이 개선될 수도 있다. 본 개시의 시스템들을 포함하거나 그 시스템들에 연결된 마이크로폰들은 소리 격리 기술을 포함할 수도 있다. 군중 또는 다른 노이즈는 스피커들에게 전송되지 않도록 격리될 수도 있고, 또는 기록의 경우조차, 라이브 이벤트가 스튜디오 생산처럼 소리나도록 기록될 수도 있다.
또 다른 예의 실시형태에 따르면, 다른 영역들은 여기에 기술된 기술로부터 이익을 얻을 수도 있다. 예를 들어, 일 실시형태에서, 전화 통화들 또는 다른 대화들은 기록되거나 도청될 수도 있다. 그 정보가 해석 및 분석되고, 파일 상의 다른 정보와 비교될 수 있다. 한 사람의 스피치의 패턴들이 음성이 특정의 사람에 대해 매치되는지를 결정하는데 사용되어, 그 소리를 캡처하는데 사용된 장비, 기원의 로케이션 등에 관계없이, 사람이 신뢰가능하게 식별될 수 있다. 특정의 음성의 패턴들이 또한 음성 인식 시스템에서 인식 및 비교되어 파일들, 건물들 또는 다른 자원들에의 액세스에 대해 사용자를 인증한다.
유사한 원리가 배경 소리들을 식별하는데 사용될 수 있다. 기차역 안내방송은 특정의 기차 또는 로케이션과 일관성이 있도록 분리 및 청취될 수 있어, 정교한 오디오 믹싱 장비 없이도, 근처에 있는 것으로 들리는 사람의 로케이션이 더욱 용이하게 식별될 수도 있다. 물론, 기차역 안내방송은 단순히 하나의 샘플 실시형태이고, 다른 소리들도 식별될 수 있을 것이다. 소리 데이터 내의 엘리먼트들의 패턴들 및 공통성들의 인식에 기초하여 식별될 수 있는 다른 소리들의 예들은 특정의 오케스트라 또는 심지어 특정의 오케스트라 내의 악기들 (예를 들어, 특정의 스트라디바리우스 바이올린) 을 식별하는 것을 포함할 수도 있다. 식별될 수 있는 다른 소리들은 특정의 동물들의 소리들 (예를 들어, 새, 영장류 또는 다른 동물의 유형에 특정한 소리들), 기계들에 특정된 소리들 (예를 들어, 생산 장비, 엘리베이터들 또는 다른 수송 장비, 공항 안내방송들, 건설 또는 다른 중장비 등), 또는 또 다른 유형들의 소리들을 포함한다.
오디오 데이터 이외의 데이터도 분석 및 해석될 수도 있다. 예를 들어, 이미지들이 스캔되고, 그 데이터가 여기에 개시된 자율적 패턴 인식 시스템들을 사용하여 분석될 수도 있다. 의학 분야에서, 예를 들어, x 레이, MRI, EEG, EKG, 초음파, CT 스캔 등은 종종 분석하기 어려운 이미지들을 생성할 수도 있다. 본 개시의 실시형태들을 사용하여, 이미지들이 분석될 수 있다. 고조파 왜곡으로 인해 생성되는 데이터는 여기의 실시형태들을 사용하여 감소될 수 있다. 또한, 상이한 밀도들, 조성, 반사/굴절 특성들, 또는 다른 엘리먼트들을 갖는 재료들을 만남에 따라, 각각은 재료의 효율적인 식별을 허용하는 고유의 핑거프린트를 생성할 수 있다. 예를 들어, 암성 종양은 정상 조직이나 심지어 양성 종양과는 상이한 구성을 가질 수도 있다. 자율적이고 비침투적인 기법들을 통해, 이미지들은 (조직검사에 대한 필요 없이) 재료가 무엇인지 뿐아니라, 그것이 어디에 위치되어 있는지, 그것이 신체 내에 확산되었다면 그 크기는 어느 정도인지 등을 검출하기 위해 분석될 수도 있다. 더욱 마이크로스코픽한 레벨에서, 존재하는 특정의 바이러스가 검출되어, 심지어 모호한 질병이 빠르게 진단될 수 있다.
이에 따라, 본 개시의 실시형태들은 실시간 데이터, 저장된 데이터, 또는 다른 데이터 또는 이들의 임의의 조합의 자율적, 동적 해석 및 분리에 관한 것일 수도 있다. 또한, 프로세싱되고 분석될 수도 있는 데이터는 오디오 정보에 제한되지 않는다. 실제로, 여기에 기술된 실시형태들은 이미지 데이터, 비디오 데이터, 주식 시장 정보, 의료 영상 기술들, 또는 패턴 검출이 이익이 될 수 있는 임의의 수의 다른 유형들의 데이터와 관련하여 사용될 수도 있다.
상술한 설명은 다수의 특징들을 포함하고 있지만, 이들은 본 발명이나 첨부된 청구항들의 임의의 것의 범위를 제한하는 것으로 해석되지 않아야 하며, 단지 본 발명 및 첨부된 청구항들의 범위들 내에 있을 수도 있는 일부 특정의 실시형태들에 속하는 정보를 제공하는 것으로 해석되어야 한다. 일부가 상이한 특징들을 포함하는 여러 실시형태들이 기술되어 있다. 일 실시형태에 대해 도시되거나 설명된 특징들은 여기의 임의의 다른 실시형태의 특징들과 상호교환가능하며/상호교환가능하거나 조합하여 채용될 수도 있다. 또, 본 발명 및 첨부된 청구항들의 범위 내에 있는 본 발명의 다른 실시형태들이 또한 고안될 수도 있다. 따라서, 본 발명의 범위는 단지 첨부된 청구항들 및 그들이 법적 등가물들에 의해서만 나타나고 제한된다. 청구항들의 의미 및 범위 내에 있는, 여기에 개시된 본 발명에 대한 모든 부가, 삭제, 및 수정은 청구항들에 의해 포용되어야 한다.

Claims (15)

  1. 데이터 세트의 데이터 엘리먼트들을 해석 및 분리하는 컴퓨터 구현 방법으로서,
    컴퓨팅 시스템을 사용하여 데이터 세트를 액세스하는 단계;
    상기 컴퓨터 시스템을 사용하여 상기 데이터 세트를 자동으로 해석하는 단계로서, 상기 데이터 세트 내의 복수의 엘리먼트들 중 각각의 엘리먼트의 변화의 방법 및 레이트를 상기 데이터 세트 내의 상기 복수의 엘리먼트들의 서로에 대해 비교하는 것을 포함하는, 상기 해석하는 단계; 및
    상기 컴퓨팅 시스템을 사용하여 상기 데이터 세트를 하나 이상의 세트 컴포넌트들로 분리하는 단계로서, 각각의 세트 컴포넌트는 변화의 방법들 및 레이트들에서 유사한 구조들을 갖는 데이터 엘리먼트들을 포함하는, 상기 분리하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    구조들의 변화의 방법들 및 레이트들을 분석하는 단계는 액세스된 상기 데이터 세트의 세기 (intensity) 값에 대한 변화의 방법들 및 레이트들을 고려하는 단계를 포함하는, 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    변화의 방법들 및 레이트들을 분석하는 단계는,
    3 이상의 차원들을 갖는 데이터의 핑거프린트들을 생성하는 단계; 및
    상기 3 이상의 차원들의 상기 데이터의 생성된 상기 핑거프린트들을 비교하는 단계를 포함하는, 컴퓨터 구현 방법.
  4. 제 3 항에 있어서,
    상기 생성된 핑거프린트들을 비교하는 단계는, 상기 3 이상의 차원들 중 어느 하나 또는 전부로 적어도 하나의 핑거프린트를 스케일링하고 스케일링된 상기 적어도 하나의 핑거프린트를 다른 핑거프린트에 비교하는 단계를 포함하는, 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    액세스된 상기 데이터 세트는 실시간 데이터 또는 파일-기반의 저장된 데이터 중 하나 이상을 포함하는, 컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 컴퓨팅 시스템을 사용하여 상기 데이터 세트를 자동으로 해석하는 단계는,
    액세스된 상기 데이터 세트를 2 차원 표현으로부터 3 이상의 차원들의 표현으로 변환하는 단계; 및
    상기 3 이상의 차원들의 표현의 상기 3 이상의 차원들에서의 변화의 방법들 및 레이트들을 비교하는 단계를 포함하는, 컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    상기 데이터 세트를 액세스하고, 상기 데이터 세트를 해석하며, 상기 데이터 세트를 분리하는 상기 컴퓨팅 시스템은,
    최종-사용자 전화 디바이스; 또는
    적어도 2 개의 최종-사용자 전화 디바이스들 간의 통신들을 용이하게 하는 서버인, 컴퓨터 구현 방법.
  8. 제 7 항에 있어서,
    상기 데이터 세트를 해석 및 분리하는 것은 실시간 통신들에서 지연을 도입하고,
    상기 방법은,
    데이터를 출력하는 단계로서,
    상기 데이터 세트를 해석 및 분리하는 것이 시간 제약보다 작은 지연을 도입하는 경우, 출력 데이터는 분리된 상기 데이터를 포함하며;
    상기 데이터 세트를 해석 및 분리하는 것이 시간 제약보다 큰 지연을 도입하는 경우, 출력 데이터는 액세스된 상기 데이터를 포함하는, 상기 데이터를 출력하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    상기 데이터 세트를 해석 및 분리하는 것은 하나 이상의 동일한 데이터 엘리먼트들을 식별하고 동일한 데이터 엘리먼트들을 단일 데이터 엘리먼트로 감소시키는 단계를 포함하는, 컴퓨터 구현 방법.
  10. 제 1 항에 있어서,
    상기 데이터 세트를 해석 및 분리하는 것은 고조파 주파수들에서 반복된 데이터를 식별하는 단계를 포함하는, 컴퓨터 구현 방법.
  11. 제 10 항에 있어서,
    상기 고조파 주파수들에서 반복된 데이터를 식별하는 단계는 고조파 주파수에서 제 2 데이터 엘리먼트를 사용하여 제 1 데이터 엘리먼트를 에일리어싱 (aliasing) 하는 단계를 포함하는, 컴퓨터 구현 방법.
  12. 제 1 항에 있어서,
    상기 데이터 세트를 하나 이상의 세트 컴포넌트들로 분리하는 단계는 해석된 상기 데이터로부터, 액세스된 하나 이상의 데이터 세트들의 적어도 일부를 재구성하는 단계를 포함하고,
    상기 액세스된 데이터의 세트들의 재구성된 부분은 공통 소스로부터 기원하거나 또는 공통 소스를 식별하는 것으로 결정된 상기 하나 이상의 데이터 세트들의 데이터 엘리먼트들의 제 1 세트를 포함하는, 컴퓨터 구현 방법.
  13. 제 1 항에 있어서,
    상기 데이터 세트를 하나 이상의 세트 컴포넌트들로 분리하는 단계는 데이터 엘리먼트들의 외부 또는 외적인 패턴들 또는 피처들에 대한 참조 없이 단지 상기 데이터 세트 내에서 식별된 패턴들에만 기초하여 적어도 하나의 세트 컴포넌트를 생성하는 단계를 포함하는, 컴퓨터 구현 방법.
  14. 데이터 세트의 데이터 엘리먼트들을 해석 및 분리하기 위한 시스템으로서,
    하나 이상의 프로세서들; 및
    컴퓨터 실행가능 명령들이 저장되어 있는 하나 이상의 컴퓨터 판독가능 저장 매체 또는 하드웨어 컴포넌트들을 포함하고,
    상기 컴퓨터 실행가능 명령들은, 상기 하나 이상의 프로세서들에 의해 실행되는 경우 제 1 항 내지 제 13 항 중 어느 한 항에 기재된 방법을 수행하도록 하는, 시스템.
  15. 제 1 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 데이터 세트는 오디오, 이미지 또는 비디오 데이터 중 하나 이상을 포함하고,
    상기 컴퓨팅 시스템을 사용하여 상기 데이터 세트를 자동으로 해석하는 단계는,
    액세스된 상기 데이터 세트를 제 1 포맷으로부터 제 2 포맷으로 변환하는 단계;
    상기 제 2 포맷의 상기 데이터 세트를 사용하여 복수의 윈도우 세그먼트들을 식별하는 단계로서, 각각의 윈도우 세그먼트는 베이스라인에 대한 변환된 상기 데이터 내에서의 연속적 편차에 대응하는, 상기 복수의 윈도우 세그먼트들을 식별하는 단계;
    상기 복수의 윈도우 세그먼트들 각각에 대해 하나 이상의 핑거프린트들을 생성하는 단계; 및
    상기 하나 이상의 핑거프린트들을 비교하고 상기 하나 이상의 핑거프린트들 간의 유사성을 결정하는 단계를 포함하고,
    상기 데이터 세트를 하나 이상의 세트 컴포넌트들로 분리하는 단계는 유사성 임계 미만의 다른 핑거프린트들에 대해 상기 유사성 임계를 충족 또는 초과하는 핑거프린트들을 분리하는 단계를 포함하는, 컴퓨터 구현 방법.
KR1020137026357A 2011-03-03 2012-03-03 데이터 내의 공통 엘리먼트들의 자율적 검출 및 분리를 위한 시스템, 및 그와 연관된 방법 및 디바이스 KR101561755B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/039,554 2011-03-03
US13/039,554 US8462984B2 (en) 2011-03-03 2011-03-03 Data pattern recognition and separation engine
US201261604343P 2012-02-28 2012-02-28
US61/604,343 2012-02-28
PCT/US2012/027638 WO2012119140A2 (en) 2011-03-03 2012-03-03 System for autononous detection and separation of common elements within data, and methods and devices associated therewith

Publications (2)

Publication Number Publication Date
KR20130140851A KR20130140851A (ko) 2013-12-24
KR101561755B1 true KR101561755B1 (ko) 2015-10-19

Family

ID=46758523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137026357A KR101561755B1 (ko) 2011-03-03 2012-03-03 데이터 내의 공통 엘리먼트들의 자율적 검출 및 분리를 위한 시스템, 및 그와 연관된 방법 및 디바이스

Country Status (6)

Country Link
US (1) US20120226691A1 (ko)
EP (1) EP2681691A4 (ko)
JP (1) JP2014515833A (ko)
KR (1) KR101561755B1 (ko)
CN (1) CN103688272A (ko)
WO (1) WO2012119140A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732660B2 (en) 2011-02-02 2014-05-20 Novell, Inc. User input auto-completion
US10497381B2 (en) 2012-05-04 2019-12-03 Xmos Inc. Methods and systems for improved measurement, entity and parameter estimation, and path propagation effect measurement and mitigation in source signal separation
JP6109927B2 (ja) * 2012-05-04 2017-04-05 カオニックス ラブス リミテッド ライアビリティ カンパニー 源信号分離のためのシステム及び方法
CN102868584B (zh) * 2012-10-11 2015-05-06 江苏西电南自智能电力设备有限公司 一种采用串行通信接口的同步时分多路复用总线通信方法
WO2014145960A2 (en) 2013-03-15 2014-09-18 Short Kevin M Method and system for generating advanced feature discrimination vectors for use in speech recognition
US9679053B2 (en) 2013-05-20 2017-06-13 The Nielsen Company (Us), Llc Detecting media watermarks in magnetic field data
WO2016048331A1 (en) 2014-09-25 2016-03-31 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
US10013997B2 (en) 2014-11-12 2018-07-03 Cirrus Logic, Inc. Adaptive interchannel discriminative rescaling filter
DK3059679T3 (en) 2014-12-05 2018-12-17 Huawei Tech Co Ltd CONTROL UNIT, FLASH MEMORY UNIT, PROCEDURE FOR IDENTIFICATION OF DATA BLOCK STABILITY, AND PROCEDURE FOR STORING DATA ON THE FLASH MEMORY UNIT
US10929464B1 (en) * 2015-02-04 2021-02-23 Google Inc. Employing entropy information to facilitate determining similarity between content items
US10249305B2 (en) * 2016-05-19 2019-04-02 Microsoft Technology Licensing, Llc Permutation invariant training for talker-independent multi-talker speech separation
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
EP3382704A1 (en) * 2017-03-31 2018-10-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for determining a predetermined characteristic related to a spectral enhancement processing of an audio signal
JP6779171B2 (ja) * 2017-04-27 2020-11-04 株式会社日立製作所 運用支援装置及び運用支援方法
EP3631655A4 (en) * 2017-06-02 2021-02-24 D.P. Technology Corp. PROCESSES, DEVICES AND SYSTEMS INTENDED FOR A PART TO BE CONSTRUCTED
CN108491774B (zh) * 2018-03-12 2020-06-26 北京地平线机器人技术研发有限公司 对视频中的多个目标进行跟踪标注的方法和装置
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
CN110858195A (zh) * 2018-08-17 2020-03-03 空气磁体公司 时间系列度量的高效的存储和查询
CN111583952B (zh) * 2020-05-19 2024-05-07 北京达佳互联信息技术有限公司 音频处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675705A (en) 1993-09-27 1997-10-07 Singhal; Tara Chand Spectrogram-feature-based speech syllable and word recognition using syllabic language dictionary
US20020128834A1 (en) 2001-03-12 2002-09-12 Fain Systems, Inc. Speech recognition system using spectrogram analysis
US20070071206A1 (en) 2005-06-24 2007-03-29 Gainsboro Jay L Multi-party conversation analyzer & logger
US20090216535A1 (en) 2008-02-22 2009-08-27 Avraham Entlis Engine For Speech Recognition

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW347503B (en) * 1995-11-15 1998-12-11 Hitachi Ltd Character recognition translation system and voice recognition translation system
JP3266819B2 (ja) * 1996-07-30 2002-03-18 株式会社エイ・ティ・アール人間情報通信研究所 周期信号変換方法、音変換方法および信号分析方法
US7711123B2 (en) * 2001-04-13 2010-05-04 Dolby Laboratories Licensing Corporation Segmenting audio signals into auditory events
US7379875B2 (en) * 2003-10-24 2008-05-27 Microsoft Corporation Systems and methods for generating audio thumbnails
US8305914B2 (en) * 2007-04-30 2012-11-06 Hewlett-Packard Development Company, L.P. Method for signal adjustment through latency control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675705A (en) 1993-09-27 1997-10-07 Singhal; Tara Chand Spectrogram-feature-based speech syllable and word recognition using syllabic language dictionary
US20020128834A1 (en) 2001-03-12 2002-09-12 Fain Systems, Inc. Speech recognition system using spectrogram analysis
US20070071206A1 (en) 2005-06-24 2007-03-29 Gainsboro Jay L Multi-party conversation analyzer & logger
US20090216535A1 (en) 2008-02-22 2009-08-27 Avraham Entlis Engine For Speech Recognition

Also Published As

Publication number Publication date
EP2681691A4 (en) 2015-06-03
KR20130140851A (ko) 2013-12-24
EP2681691A2 (en) 2014-01-08
WO2012119140A2 (en) 2012-09-07
WO2012119140A3 (en) 2014-03-13
JP2014515833A (ja) 2014-07-03
US20120226691A1 (en) 2012-09-06
CN103688272A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
KR101561755B1 (ko) 데이터 내의 공통 엘리먼트들의 자율적 검출 및 분리를 위한 시스템, 및 그와 연관된 방법 및 디바이스
Li et al. On the importance of power compression and phase estimation in monaural speech dereverberation
US10014002B2 (en) Real-time audio source separation using deep neural networks
US20210089967A1 (en) Data training in multi-sensor setups
US9424836B2 (en) Privacy-sensitive speech model creation via aggregation of multiple user models
US9536540B2 (en) Speech signal separation and synthesis based on auditory scene analysis and speech modeling
TWI480855B (zh) 聲音訊號之特徵指紋擷取與匹配
US8615394B1 (en) Restoration of noise-reduced speech
KR20150021508A (ko) 원신호 분리 시스템 및 방법
TW200947422A (en) Systems, methods, and apparatus for context suppression using receivers
CN111091835B (zh) 模型训练的方法、声纹识别的方法、系统、设备及介质
WO2019233364A1 (zh) 基于深度学习的音频音质增强
Dimoulas et al. Investigation of wavelet approaches for joint temporal, spectral and cepstral features in audio semantics
Laguna et al. An efficient algorithm for clipping detection and declipping audio
Morita et al. Robust voice activity detection based on concept of modulation transfer function in noisy reverberant environments
US20190172477A1 (en) Systems and methods for removing reverberation from audio signals
US20130322645A1 (en) Data recognition and separation engine
WO2022166738A1 (zh) 语音增强方法、装置、设备及存储介质
CN112802453B (zh) 快速自适应预测拟合语音方法、系统、终端及存储介质
Guo et al. Exploring a new method for food likability rating based on DT-CWT theory
US11532314B2 (en) Amplitude-independent window sizes in audio encoding
Ballesteros L et al. On the ability of adaptation of speech signals and data hiding
US9413323B2 (en) System and method of filtering an audio signal prior to conversion to an MU-LAW format
CN116959422B (zh) 多对多的实时语音变音方法、设备及存储介质
CN112948331B (zh) 音频文件的生成方法、解析方法、生成器及解析器

Legal Events

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

Payment date: 20190927

Year of fee payment: 5