KR20220110796A - 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들 - Google Patents

끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들 Download PDF

Info

Publication number
KR20220110796A
KR20220110796A KR1020227022692A KR20227022692A KR20220110796A KR 20220110796 A KR20220110796 A KR 20220110796A KR 1020227022692 A KR1020227022692 A KR 1020227022692A KR 20227022692 A KR20227022692 A KR 20227022692A KR 20220110796 A KR20220110796 A KR 20220110796A
Authority
KR
South Korea
Prior art keywords
audio item
audio
spectrogram
item
beginning
Prior art date
Application number
KR1020227022692A
Other languages
English (en)
Other versions
KR102653938B1 (ko
Inventor
미셸 코벨
슈미트 발루자
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020247010612A priority Critical patent/KR20240046635A/ko
Publication of KR20220110796A publication Critical patent/KR20220110796A/ko
Application granted granted Critical
Publication of KR102653938B1 publication Critical patent/KR102653938B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Processing of the speech or voice signal to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • 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/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients
    • 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/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/038Cross-faders therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/06Elementary speech units used in speech synthesisers; Concatenation rules
    • G10L13/07Concatenation rules

Abstract

개시된 청구 대상의 일부 실시예들에 따르면, 플레이리스트에서의 오디오 아이템들 사이의 끊김없는 오디오 혼합을 위한 메커니즘들이 제공된다. 일부 실시예들에서, 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 방법이 제공되는데, 이 방법은: 오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하는 단계 - 여기서 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 그 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -; 및 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 단계를 포함하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 제1 오디오 아이템과 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 오버랩 지속기간을 가지며, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 단계는: 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 단계; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관을 갖는 윈도우를 식별하는 단계; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 주파수 대역 내의 주파수들의 진폭들이 제1 스펙트로그램의 종료 부분에 걸친 제1 스펙트로그램 내에서 감소하고 주파수 대역 내의 주파수들의 진폭들이 제2 스펙트로그램의 시작 부분에 걸친 제2 스펙트로그램 내에서 증가하도록 제1 스펙트로그램의 종료 부분 및 제2 스펙트로그램의 시작 부분을 수정하는 단계; 및 제1 스펙트로그램의 수정된 종료 부분에 기초하여 제1 오디오 아이템의 수정된 종료 부분을 포함하는 제1 오디오 아이템의 수정된 버전을 생성하고, 제2 스펙트로그램의 수정된 시작 부분에 기초하여 제2 오디오 아이템의 수정된 시작 부분을 포함하는 제2 오디오 아이템의 수정된 버전을 생성하는 단계를 포함한다.

Description

끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들
개시된 청구 대상은 2개의 오디오 아이템들 사이의 끊김없는 오디오 혼합(seamless audio melding)을 위한 방법들, 시스템들, 및 매체들에 관한 것이다. 개시된 청구 대상은, 예를 들어, 음성 합성 시스템에 적용될 수도 있다.
음성 합성 시스템들이 점점 더 많이 사용되고 있다. 일부 음성 합성 시스템들은 단어 또는 단어들과 같은 사운드 단위를 표현하는 미리 기록된 오디오 세그먼트들을 사용하여 동작한다. 음성 합성 시스템으로부터 출력 오디오 어구를 생성하기 위해 다수의 오디오 세그먼트들이 결합된다(또는 "연접된다(concatenated)"). 출력 어구들의 범위가 변경 또는 확장되게 하기 위해, 또는 기존의 미리 기록된 세그먼트들 중 하나를 변경하거나 또는 대체시키기 위해 음성 합성 시스템에 추가의 미리 기록된 오디오 세그먼트들을 부가시키는 것이 때때로 바람직하지만, 이렇게 하여 새로운 세그먼트들의 템포 및 볼륨이 기존의 오디오 세그먼트들의 템포 및 볼륨과 매칭되도록 하기가 어렵다 - 그 대신에, 전환(transition)이 종종 청취자에게 인지가능하다. 이것은 음성 합성 시스템들에 의해 생성된 출력 오디오의 품질을 저하시킬 수 있고, 예를 들어, 사용자가 올바르게 이해하기 어려운 출력 어구로 이어질 수도 있다. 더욱이, 현재 시스템들은, 다른 것들 중에서도, 2개의 오디오 세그먼트들 사이의 상이한 에너지 정보를 무시한다.
이에 따라, 음성 합성 시스템에 대한 음성 세그먼트들과 같은 2개의 오디오 아이템들 사이의 끊김없는 오디오 혼합을 위한 새로운 방법들, 시스템들, 및 매체들을 제공하는 것이 바람직하다.
오디오 아이템들 사이의 끊김없는 오디오 혼합을 위한 방법들, 시스템들, 및 매체들이 제공된다.
개시된 청구 대상의 일부 실시예들에 따르면, 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 방법이 제공되는데, 이 방법은: 오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하는 단계 - 여기서 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 그 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -; 및 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 단계를 포함하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 제1 오디오 아이템과 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 오버랩 지속기간(overlap duration)을 가지며, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 단계는: 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램(first spectrogram) 및 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 단계; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관(cross-correlation)을 갖는 윈도우를 식별하는 단계; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 주파수 대역 내의 주파수들의 진폭들이 제1 스펙트로그램의 종료 부분에 걸친 제1 스펙트로그램 내에서 감소하고 주파수 대역 내의 주파수들의 진폭들이 제2 스펙트로그램의 시작 부분에 걸친 제2 스펙트로그램 내에서 증가하도록 제1 스펙트로그램의 종료 부분 및 제2 스펙트로그램의 시작 부분을 수정하는 단계; 및 제1 스펙트로그램의 수정된 종료 부분에 기초하여 제1 오디오 아이템의 수정된 종료 부분을 포함하는 제1 오디오 아이템의 수정된 버전을 생성하고, 제2 스펙트로그램의 수정된 시작 부분에 기초하여 제2 오디오 아이템의 수정된 시작 부분을 포함하는 제2 오디오 아이템의 수정된 버전을 생성하는 단계를 포함한다.
일부 실시예들에서, 이 방법은, 제1 스펙트로그램 및 제2 스펙트로그램에 기초하여 오버랩 지속기간을 식별하는 단계를 더 포함한다.
일부 실시예들에서, 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 높은 상호-상관을 갖는 윈도우를 식별하는 것은: 일련의 주파수 대역들에서의 가장 낮은 주파수 대역 내에서 제1 스펙트로그램의 종료 부분과 제2 스펙트로그램의 시작 부분의 상호-상관에 기초하여 가장 낮은 주파수 대역에 대한 제1 윈도우를 식별하는 것; 및 가장 낮은 주파수 대역에 인접한 주파수 대역 내에서 제1 스펙트로그램의 종료 부분과 제2 스펙트로그램의 시작 부분의 상호-상관에 기초하여 가장 낮은 주파수 대역에 인접한 주파수 대역에 대한 제2 윈도우를 식별하는 것을 포함하고, 여기서 제2 윈도우는 제1 윈도우보다 더 짧다.
일부 실시예들에서, 제2 윈도우는 제1 윈도우와 오버랩된다.
일부 실시예들에서, 제2 오디오 아이템의 수정된 시작 부분과 중첩된 제1 오디오 아이템의 수정된 종료 부분의 스펙트로그램의 위상들은, 오버랩의 시작 부분에서는 제1 오디오 아이템의 위상들과 매칭되고 오버랩의 종료 부분에서는 제2 오디오 아이템의 위상들과 매칭된다.
일부 실시예들에서, 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 단계는, 제1 오디오 아이템의 종료 부분 동안에는 제1 오디오 아이템의 템포를 그리고 제2 오디오 아이템의 시작 부분 동안에는 제2 오디오 아이템의 템포를 수정하는 단계를 포함한다.
일부 실시예들에서, 제1 오디오 아이템의 종료 부분 동안에는 제1 오디오 아이템의 템포를 그리고 제2 오디오 아이템의 시작 부분 동안에는 제2 오디오 아이템의 템포를 수정하는 단계는, 제1 오디오 아이템의 종료 부분 동안의 제1 오디오 아이템의 템포가, 미리 결정된 임계치보다 더 많이 제2 오디오 아이템의 시작 부분 동안의 제2 오디오 아이템의 템포와 상이하다는 결정에 응답한다.
일부 실시예들에서, 사용자 디바이스에 의해 오디오 아이템들의 플레이리스트를 야기시키는 것은, 오버랩 지속기간의 표시와 관련하여 제1 오디오 아이템의 수정된 버전 및 제2 오디오 아이템의 수정된 버전을 사용자 디바이스에 송신하는 것을 포함한다.
일부 실시예들에서, 이 방법은, 오디오 아이템들의 플레이리스트의 식별자와 관련하여 제1 오디오 아이템의 수정된 버전 및 제2 오디오 아이템의 수정된 버전을 저장하는 단계를 더 포함한다.
일부 실시예들에서, 이 방법은: 사용자 디바이스로부터, 오디오 아이템들의 플레이리스트를 제시하라는 요청을 수신하는 단계; 및 오디오 아이템들의 플레이리스트가 사용자 디바이스에 의해 제시되게 하는 단계를 더 포함하고, 여기서 오디오 아이템들의 플레이리스트를 제시하는 것은, 제1 오디오 아이템의 수정된 버전 및 제2 오디오 아이템의 수정된 버전을 제시하는 것을 포함하고, 여기서 제1 오디오 아이템의 수정된 버전의 수정된 종료 부분은, 제2 오디오 아이템의 수정된 버전의 수정된 시작 부분과 동시에 플레이된다.
개시된 청구 대상의 일부 실시예들에 따르면, 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 시스템이 제공되고, 이 시스템은 메모리 및 하드웨어 프로세서를 포함하고, 이 하드웨어 프로세서는, 메모리에서의 컴퓨터 실행가능 명령어들을 실행할 때: 오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하고 - 여기서 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 그 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -; 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하도록 구성되고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 제1 오디오 아이템과 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 오버랩 지속기간을 가지며, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 것은: 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 것; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관을 갖는 윈도우를 식별하는 것; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 주파수 대역 내의 주파수들의 진폭들이 제1 스펙트로그램의 종료 부분에 걸친 제1 스펙트로그램 내에서 감소하고 주파수 대역 내의 주파수들의 진폭들이 제2 스펙트로그램의 시작 부분에 걸친 제2 스펙트로그램 내에서 증가하도록 제1 스펙트로그램의 종료 부분 및 제2 스펙트로그램의 시작 부분을 수정하는 것; 및 제1 스펙트로그램의 수정된 종료 부분에 기초하여 제1 오디오 아이템의 수정된 종료 부분을 포함하는 제1 오디오 아이템의 수정된 버전을 생성하고, 제2 스펙트로그램의 수정된 시작 부분에 기초하여 제2 오디오 아이템의 수정된 시작 부분을 포함하는 제2 오디오 아이템의 수정된 버전을 생성하는 것을 포함한다.
개시된 청구 대상의 일부 실시예들에 따르면, 프로세서에 의해 실행될 때, 프로세서로 하여금, 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 방법을 수행하게 하는 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 판독가능 매체가 제공되고, 이 방법은: 오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하는 단계 - 여기서 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 그 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -; 및 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 단계를 포함하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 제1 오디오 아이템과 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 오버랩 지속기간을 가지며, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 단계는: 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 단계; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관을 갖는 윈도우를 식별하는 단계; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 주파수 대역 내의 주파수들의 진폭들이 제1 스펙트로그램의 종료 부분에 걸친 제1 스펙트로그램 내에서 감소하고 주파수 대역 내의 주파수들의 진폭들이 제2 스펙트로그램의 시작 부분에 걸친 제2 스펙트로그램 내에서 증가하도록 제1 스펙트로그램의 종료 부분 및 제2 스펙트로그램의 시작 부분을 수정하는 단계; 및 제1 스펙트로그램의 수정된 종료 부분에 기초하여 제1 오디오 아이템의 수정된 종료 부분을 포함하는 제1 오디오 아이템의 수정된 버전을 생성하고, 제2 스펙트로그램의 수정된 시작 부분에 기초하여 제2 오디오 아이템의 수정된 시작 부분을 포함하는 제2 오디오 아이템의 수정된 버전을 생성하는 단계를 포함한다. 컴퓨터 판독가능 매체는 비일시적 매체일 수도 있지만, 이에 제한되지 않는다.
개시된 청구 대상의 일부 실시예들에 따르면, 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 시스템이 제공되는데, 이 시스템은: 오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하는 수단 - 여기서 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 그 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -; 및 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 수단을 포함하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 제1 오디오 아이템과 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분은 오버랩 지속기간을 가지며, 여기서 제1 오디오 아이템의 종료 부분 및 제2 오디오 아이템의 시작 부분을 수정하는 것은: 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 수단; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관을 갖는 윈도우를 식별하는 수단; 일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 주파수 대역 내의 주파수들의 진폭들이 제1 스펙트로그램의 종료 부분에 걸친 제1 스펙트로그램 내에서 감소하고 주파수 대역 내의 주파수들의 진폭들이 제2 스펙트로그램의 시작 부분에 걸친 제2 스펙트로그램 내에서 증가하도록 제1 스펙트로그램의 종료 부분 및 제2 스펙트로그램의 시작 부분을 수정하는 수단; 및 제1 스펙트로그램의 수정된 종료 부분에 기초하여 제1 오디오 아이템의 수정된 종료 부분을 포함하는 제1 오디오 아이템의 수정된 버전을 생성하고, 제2 스펙트로그램의 수정된 시작 부분에 기초하여 제2 오디오 아이템의 수정된 시작 부분을 포함하는 제2 오디오 아이템의 수정된 버전을 생성하는 수단을 포함한다.
일 구현에서, 시스템은 음성 합성 시스템일 수도 있다.
개시된 청구 대상의 일부 실시예들에 따르면, 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 시스템이 제공되고, 이 시스템은: 메모리; 및 메모리에서의 컴퓨터 실행가능 명령어들을 실행할 때, 본 명세서에서 설명되는 임의의 양태 또는 실시예들에 따른 방법을 수행하도록 구성되는 하드웨어 프로세서를 포함한다.
개시된 청구 대상의 일부 실시예들에 따르면, 컴퓨터 판독가능 매체가 제공되고, 이 컴퓨터 판독가능 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 본 명세서에서 설명되는 임의의 양태 또는 실시예들에 따른 방법을 수행하게 하는 컴퓨터 실행가능 명령어들을 포함한다. 컴퓨터 판독가능 매체는 비일시적 매체일 수도 있지만, 이에 제한되지 않는다.
일 예로서, 오디오 아이템들은 음성 합성 시스템에 대한 음성 세그먼트들(예를 들어, 미리 기록된 음성 세그먼트들)일 수도 있다. 플레이리스트는, 원하는 가청 출력 어구를 제공하기 위해 음성 합성 시스템에 의해 음성 세그먼트들이 재생되기를 원하는 순서로 음성 세그먼트들을 배열한다.
그러나, 개시된 방법들, 시스템들, 및 매체들은 음성 합성 시스템과 함께 사용하는 것으로 제한되지 않으며, 본 개시내용의 원리들은 많은 잠재적인 적용예들을 갖는다. 다른 예로서, 오디오 아이템들은 노래들일 수도 있다. 플레이리스트는 노래들이 재생/플레이되기를 원하는 순서로 노래들을 배열한다.
개시된 청구 대상의 다양한 목적들, 피처(feature)들, 및 이점들은, 동일한 참조 번호들이 동일한 요소들을 식별하는 다음의 도면들과 관련하여 고려될 때 개시된 청구 대상의 다음의 상세한 설명을 참조하여 더 충분히 인식될 수 있다.
도 1은 개시된 청구 대상의 일부 실시예들에 따른, 플레이리스트에서의 오디오 아이템들 사이의 전환들과 함께 오디오 아이템들의 플레이리스트를 생성 및 제시하기 위한 프로세스의 예시적인 예를 도시한다.
도 2는 개시된 청구 대상의 일부 실시예들에 따른, 2개의 오디오 아이템들 사이의 전환을 생성하기 위한 프로세스의 예시적인 예를 도시한다.
도 3은 개시된 청구 대상의 일부 실시예들에 따른, 현재 오디오 아이템 세그먼트와 다음 오디오 아이템 세그먼트에 대한 상관 계수들 및 템포 측정 곡선들의 예시적인 예들을 도시한다.
도 4는 개시된 청구 대상의 일부 실시예들에 따른, 현재 오디오 아이템 세그먼트와 다음 오디오 아이템 세그먼트 사이에 전환하기 위한 재생 속도 프로파일의 예시적인 예를 도시한다.
도 5는 개시된 청구 대상의 일부 실시예들에 따른, 현재 오디오 아이템 세그먼트와 다음 오디오 아이템 세그먼트의 정렬된 스펙트럼 섹션들이 오버랩되고 마스킹된 부분이 현재 오디오 아이템 세그먼트와 다음 오디오 아이템 세그먼트의 정렬된 스펙트럼 섹션들을 혼합하는 데 사용되는 정렬된 스펙트로그램들의 카빙(carving)의 예시적인 예를 도시한다.
도 6a 내지 도 6e는 개시된 청구 대상의 일부 실시예들에 따른, 2개의 오디오 아이템들 사이의 혼합 전환들의 예시적인 예들을 도시한다.
도 7은 개시된 청구 대상의 일부 실시예들에 따른, 플레이리스트들에서의 오디오 아이템들 사이의 끊김없는 오디오 혼합을 위해 본 명세서에서 설명되는 메커니즘들의 구현에 적합한 예시적인 시스템의 개략적 다이어그램을 도시한다.
도 8은 개시된 청구 대상의 일부 실시예들에 따른, 도 7의 서버 및/또는 사용자 디바이스에서 사용될 수 있는 하드웨어의 상세한 예를 도시한다.
다양한 실시예들에 따르면, 플레이리스트에서의 오디오 아이템들 사이의 끊김없는 오디오 혼합을 위한 메커니즘들(이들은 방법들, 시스템들, 및 매체들을 포함할 수 있다)이 제공된다.
일반적으로 말해서, 메커니즘들은 제1 오디오 아이템으로부터 제2 오디오 아이템으로 특정 주파수들을 전환하는 시간들을 표시하기 위해 제1 오디오 아이템의 종료 부분과 제2 오디오 아이템의 시작 부분 사이에 시각적으로 심 카빙(seam carving)함으로써 순서화된 플레이리스트에서의 오디오 아이템들 사이에 전환하는 것과 관련된다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 제1 오디오 아이템 A가 제2 오디오 아이템 B로 원활하게 전환되도록 플레이리스트에서의 2개의 오디오 아이템들 사이의 원활한 전환을 생성할 수 있다. 일부 실시예들에서, 오디오 아이템 A와 오디오 아이템 B 사이의 원활한 전환이 임의의 적합한 타입의 전환을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은, 오디오 아이템 A의 종료 부분이 오디오 아이템 B의 시작 부분 위에 오버랩되거나 또는 그렇지 않으면 포지셔닝될 때, (1) 오디오 아이템들 A B의 오버랩된 부분들이 템포 및/또는 비트들에 있어서 매칭되고, (2) 오버랩된 부분 동안 오디오 아이템 A의 볼륨이 감소하고 오디오 아이템 B의 볼륨이 증가하도록 오디오 아이템 A 및 오디오 아이템 B의 수정된 버전들을 생성할 수 있다.
편의를 위해, 더욱 상세한 설명은 오디오 아이템들이 노래들인 실시예들을 참조하지만, 언급된 바와 같이, 본 발명은 이에 제한되지 않고 설명된 방법들, 시스템들, 및 매체들이 다른 오디오 아이템들에 원칙적으로 적용될 수도 있다.
더 특정한 예로서, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 템포 분석을 사용하여 노래 A의 종료 부분의 템포를 노래 B의 시작 부분과 매칭시키는 것, 비트 분석을 사용하여 노래 A의 종료 부분의 비트들을 노래 B의 시작 부분과의 비트들과 정렬시키는 것, 노래 A의 종료 부분의 볼륨을 노래 B의 시작 부분으로 페이딩(fading)하는 것, 그리고/또는 임의의 다른 적합한 타입의 전환에 의해 노래 A가 노래 B로 전환하도록 노래 A 및 노래 B의 수정된 버전들을 생성할 수 있다. 이 예를 계속하면, 본 명세서에서 설명되는 메커니즘들은, 각각의 주파수 영역 내의 에너지 매치의 품질에 기초하여 노래 A 및 노래 B의 정렬된 스펙트로그램들을 카빙하는 것을 포함할 수 있다. 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 플레이리스트에 포함된 노래들의 시퀀스에 걸쳐 반복하여 노래들 각각 사이에 원활한 전환들이 생성되도록 할 수 있다. 일부 실시예들에서, 플레이리스트의 노래들 사이의 원활한 전환들을 포함하는 수정된 플레이리스트가, 도 1에 도시되고 이와 관련하여 아래에 설명되는 바와 같이, 사용자 디바이스 상의 재생을 위해 사용자 디바이스에게 제공될 수 있다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 임의의 적합한 방식으로 그리고 임의의 적합한 기법(들)을 사용하여 2개의 노래들 사이의 원활한 전환을 생성할 수 있다. 예를 들어, 도 2에 도시되고 이와 관련하여 아래에 설명되는 바와 같이, 일부 실시예들에서, 메커니즘들은, 가장 유사한 노래 A의 스펙트로그램과 노래 B의 스펙트로그램의 일 부분을 식별하는 것에 기초하여 노래 A와 노래 B 사이의 전환 동안 노래 A와 노래 B가 오버랩되어야 하는 제1 노래 A의 종료 부분의 지속기간과 제2 노래 B의 시작 부분의 지속기간을 결정할 수 있다. 다른 예로서, 일부 실시예들에서, 메커니즘들은 노래 A 및 노래 B의 식별된 오버랩 부분 동안 노래 A 및 노래 B의 템포들을 수정할 수 있다. 또 다른 예로서, 일부 실시예들에서, 메커니즘들은 노래 A의 진폭이 전환 동안 페이딩 또는 감소하고 노래 B의 진폭이 전환 동안 램프 업(ramp up) 또는 증가하도록 노래 A와 노래 B 사이의 전환을 생성할 수 있다. 더 특정한 예로서, 일부 실시예들에서, 메커니즘들은, 도 2에 도시되고 이와 관련하여 아래에 설명되는 바와 같이, 모든 주파수들에 대해 동일한 방식으로 전환 동안 진폭을 변경하기보다는 오히려, 상이한 주파수 대역들에서 상이한 방식으로 노래 A의 진폭이 전환 동안 감소하고 노래 B의 진폭이 전환 동안 증가하도록 전환을 생성할 수 있다.
도 1을 참조하면, 플레이리스트에서의 노래들 사이의 전환들과 함께 노래들의 플레이리스트를 생성 및 제시하기 위한 프로세스의 예시적인 예(100)가 개시된 청구 대상의 일부 실시예들에 따라 도시되어 있다. 일부 실시예들에서, 프로세스(100)의 블록들은 임의의 적합한 디바이스에 의해 실행될 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)의 블록들은 오디오 콘텐츠 아이템들(예를 들어, 노래들, 노래들의 플레이리스트들, 및/또는 임의의 다른 적합한 오디오 콘텐츠 아이템들)을 사용자 디바이스들에 저장 및/또는 제공하는 서버에 의해 실행될 수 있다. 더 특정한 예로서, 일부 실시예들에서, 프로세스(100)의 블록들은 미디어 콘텐츠 공유 서비스, 소셜 네트워킹 서비스와 연관된 서버, 및/또는 임의의 다른 적합한 서버에 의해 실행될 수 있다.
프로세스(100)는 노래들의 플레이리스트에서 노래들의 시퀀스를 식별하는 것으로 102에서 시작할 수 있다. 일부 실시예들에서, 프로세스(100)는 임의의 적합한 방식으로 노래들의 플레이리스트에서 노래들의 시퀀스를 식별할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)는 플레이리스트에 포함된 노래들의 그룹의 식별자들 및 노래들의 그룹에서의 노래들이 제시되어야 하는 시퀀스 또는 순서를 표시하는 노래들의 플레이리스트를 식별할 수 있다. 일부 실시예들에서, 노래들의 플레이리스트는 임의의 적합한 엔티티(entity)에 의해 생성될 수 있다는 것에 주목한다. 예를 들어, 일부 실시예들에서, 노래들의 플레이리스트는, 특정 사용자 어카운트와 연관된 사용자-생성된 플레이리스트일 수 있다. 다른 예로서, 일부 실시예들에서, 노래들의 플레이리스트는 아티스트 또는 콘텐츠 작성자에 의해 생성될 수 있고, 아티스트 또는 콘텐츠 작성자와 연관된 채널과 연관되어 저장 및/또는 제공될 수 있다. 부가적으로, 일부 실시예들에서, 노래들의 플레이리스트는 임의의 적합한 수의 노래들(예를 들어, 2개, 3개, 5개, 10개, 20개, 및/또는 임의의 다른 적합한 수)을 포함할 수 있다는 것에 주목한다.
104에서, 프로세스(100)는 노래들의 시퀀스에서의 제1 노래의 종료 부분, 그리고 노래들의 시퀀스에서 제1 노래에 후속하여 포함되는 제2 노래의 시작 부분을 수정할 수 있다. 일부 실시예들에서, 프로세스(100)는 제1 노래의 종료 부분과 제2 노래의 시작 부분이 동시에 플레이될 때, 제1 노래로부터 제2 노래로의 원활한 전환이 있도록 제1 노래의 종료 부분과 제2 노래의 시작 부분을 수정할 수 있다. 일부 실시예들에서, 동시에 플레이되어야 하는 제1 노래의 종료 부분과 제2 노래의 시작 부분은 때때로 본 명세서에서 오버랩이라고 지칭된다는 것에 주목한다.
일부 실시예들에서, 프로세스(100)는 제1 노래와 제2 노래 사이의 원활한 전환을 생성하기 위해 임의의 적합한 방식으로 제1 노래의 종료 부분과 제2 노래의 시작 부분을 수정할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)는 제1 노래의 종료 부분과 제2 노래의 시작 부분이 유사한 템포를 갖도록 제1 노래의 종료 부분과 제2 노래의 시작 부분을 수정할 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(100)는 제1 노래의 종료 부분의 비트들이 제2 노래의 시작 부분의 비트들과 정렬되도록 제1 노래의 종료 부분과 제2 노래의 시작 부분을 수정할 수 있다. 또 다른 예로서, 일부 실시예들에서, 프로세스(100)는 제1 노래로부터 제2 노래로의 전환 동안 제1 노래가 제2 노래로 페이딩하도록 제1 노래의 종료 부분의 진폭과 제2 노래의 시작 부분의 진폭을 수정할 수 있다. 더 특정한 예로서, 일부 실시예들에서, 프로세스(100)는 동일한 시간에서의 모든 주파수들에 걸친 진폭 전환보다 진폭 전환이 덜 인지가능해지도록 상이한 시간 포인트들에서 상이한 주파수 대역들의 진폭들을 수정함으로써 제1 노래의 종료 부분의 진폭과 제2 노래의 시작 부분의 진폭을 수정할 수 있다. 제1 노래의 종료 부분과 제2 노래의 시작 부분을 수정하기 위한 더 상세한 기법들이 도 2에 도시되고 이와 관련하여 아래에 설명된다는 것에 주목한다.
106에서, 프로세스(100)는 플레이리스트의 수정된 버전과 관련하여 수정된 노래들(예를 들어, 제1 노래의 수정된 종료 부분을 갖는 제1 노래 및 제2 노래의 수정된 시작 부분을 갖는 제2 노래)을 저장할 수 있다. 일부 실시예들에서, 프로세스(100)는 임의의 적합한 방식으로 플레이리스트의 수정된 버전과 관련하여 수정된 노래들을 저장할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)는 플레이리스트의 수정된 버전에 대응하는 새로운 플레이리스트를 생성 또는 초기화할 수 있다. 일부 그러한 실시예들에서, 새로운 플레이리스트는, 플레이리스트의 수정된 버전을 원래 플레이리스트와 연관시키는 식별자를 가질 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(100)는 노래들의 플레이리스트에서의 제1 노래 및 제2 노래를 제1 노래의 수정된 버전 및 제2 노래의 수정된 버전으로 대체시킬 수 있다. 또 다른 예로서, 일부 실시예들에서, 프로세스(100)는 제1 노래와 제2 노래 사이의 오버랩의 지속기간(예를 들어, 제1 노래의 종료 부분의 지속기간 및 제2 노래의 시작 부분의 지속기간)의 표시를 저장할 수 있어서, 노래들의 플레이리스트를 플레이하는 사용자 디바이스가 제2 노래의 프레젠테이션(presentation)을 시작할 수 있어서, 오버랩에 대응하는 제2 노래의 시작 부분이, 오버랩에 대응하는 제1 노래의 종료 부분과 동시에 플레이되도록 한다.
일부 실시예들에서, 프로세스(100)는 104로 루핑 백(loop back)할 수 있고, 플레이리스트의 노래들의 시퀀스에서 제2 노래의 종료 부분과 제3 노래의 시작 부분을 수정하여 제2 노래와 제3 노래 사이의 끊김없는 전환을 생성할 수 있다. 일부 실시예들에서, 프로세스(100)는 플레이리스트에서의 연속적인 노래들 사이의 전환들을 생성하도록 노래들의 플레이리스트에서의 노래들 각각이 수정될 때까지 104 및 106을 통해 루핑할 수 있다.
일부 실시예들에서, 새로운 노래가 플레이리스트에 삽입되었다고(또는 플레이리스트의 순서가 변경되어 상이한 노래가 제2 노래를 뒤따르게 되었다고) 검출하는 것에 응답하여, 프로세스(100)는 104로 루핑 백할 수 있고, 제2 노래의 종료 부분과 새로운 노래의 시작 부분을 수정하여 제2 노래와 새롭게 부가된 노래 사이의 끊김없는 전환을 생성할 수 있다.
108에서, 프로세스(100)는 플레이리스트에서의 노래들의 시퀀스를 제시하라는 요청을 사용자 디바이스로부터 수신할 수 있다. 일부 실시예들에서, 프로세스(100)는 임의의 적합한 방식으로 사용자 디바이스로부터 요청을 수신할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)는 플레이리스트와 연관된 아이콘 또는 링크가 사용자 디바이스 상에 제시된 사용자 인터페이스를 통해 선택되었다는 표시를 수신할 수 있다.
110에서, 프로세스(100)는 요청의 수신에 응답하여, 플레이리스트의 수정된 버전의 수정된 노래들이 사용자 디바이스에 의해 제시되게 할 수 있다. 일부 실시예들에서, 프로세스(100)는 임의의 적합한 방식으로 사용자 디바이스에 의해 제시될 플레이리스트의 수정된 버전의 수정된 노래들을 송신할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)는 임의의 적합한 방식으로 그리고 임의의 적합한 기법(들)을 사용하여 수정된 노래들을 사용자 디바이스에 스트리밍할 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(100)는 플레이리스트에 포함된 노래들이 사용자 디바이스 상의 저장 그리고 사용자 디바이스에 의한 프레젠테이션을 위해 사용자 디바이스에 다운로드되게 할 수 있다. 일부 실시예들에서, 프로세스(100)는, 플레이리스트의 수정된 버전의 프레젠테이션 동안 2개의 연속적인 수정된 노래들이 오버랩되어야 하는 시간을 표시하는, 플레이리스트의 수정된 버전에서 연속적인 수정된 노래들 사이의 각각의 전환에 대한 오버랩 지속기간의 표시를 송신할 수 있다는 것에 주목한다.
일부 실시예들에서, 사용자 디바이스는 임의의 적합한 방식으로 제시될 플레이리스트의 수정된 버전의 수정된 노래들을 제시할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스는 플레이리스트의 제1 노래가 프레젠테이션을 시작하게 할 수 있다. 이 예를 계속하면, 일부 실시예들에서, 사용자 디바이스는 제1 노래의 종료부가 플레이리스트에서의 다음 노래의 시작 부분과 동시에 플레이되어야 하는 오버랩 지속기간을 식별할 수 있다. 추가로 이 예를 계속하면, 일부 실시예들에서, 사용자 디바이스는 오버랩 지속기간이 제1 노래의 재생에 남아 있다는 결정에 응답하여 플레이리스트에서의 다음 노래의 프레젠테이션을 시작할 수 있고, 제2 노래의 시작 부분과 동시에 제1 노래의 나머지 부분을 플레이할 수 있다. 일부 실시예들에서, 사용자 디바이스는 수정된 노래들의 재생을 조정하기 위한 임의의 적합한 컨트롤(control)들(예를 들어, 재생 포지션의 되감기, 재생 포지션의 빨리 감기, 노래의 리플레이, 볼륨의 조정, 및/또는 임의의 다른 적합한 컨트롤들)을 포함하는 임의의 적합한 미디어 콘텐츠 플레이어를 사용하여 플레이리스트의 수정된 버전의 수정된 노래들을 제시할 수 있다는 것에 주목한다.
도 2를 참조하면, 2개의 노래들 사이의 전환을 생성하기 위한 프로세스의 예시적인 예(200)가 개시된 청구 대상의 일부 실시예들에 따라 도시되어 있다. 일부 실시예들에서, 프로세스(200)의 블록들은 임의의 적합한 디바이스에 의해 실행될 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)의 블록들은 미디어 콘텐츠를 사용자 디바이스들에 저장 및/또는 제공하는 서버에 의해 실행될 수 있다. 더 특정한 예로서, 일부 실시예들에서, 프로세스(200)는 노래들의 플레이리스트들을 저장하는 서버에 의해 실행될 수 있고, 서버는 프로세스(200)의 블록들을 실행하여, 노래들의 플레이리스트들에 포함된 노래들 사이의 전환들을 수정할 수 있다.
프로세스(200)는 제1 노래 A 및 제2 노래 B를 식별하는 것으로 202에서 시작할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 제1 노래 A 및 제2 노래 B를 식별할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 플레이리스트에서의 노래들에 걸쳐 반복하는 프로세스일 수 있고, 플레이리스트에서의 노래들에 걸친 반복 동안 플레이리스트에 포함된 노래들의 다음 쌍에 대응하는 노래들 AB를 선택할 수 있다. 일부 실시예들에서, 노래 A 및 노래 B 각각은 임의의 적합한 지속기간(예를 들어, 10초, 30초, 1분, 3분, 5분, 및/또는 임의의 다른 적합한 지속기간)을 가질 수 있다는 것에 주목한다.
204에서, 일부 실시예들에서, 프로세스(200)는 노래 A와 노래 B 사이의 전환을 위해 최소 잠재적 오버랩 지속기간 N min 및 최대 잠재적 오버랩 지속기간 N max 를 선택할 수 있다. 도 1과 관련하여 상술된 바와 같이, 일부 실시예들에서, 오버랩 지속기간은, 노래 A로부터 노래 B로의 전환 동안 동시에 플레이되어야 하는, 노래 A(종료되게 될 노래)의 종료 부분의 지속기간 및 노래 B(시작하려고 하는 노래)의 시작 부분의 지속기간을 표시할 수 있다는 것에 주목한다. 일부 그러한 실시예들에서, 최소 잠재적 오버랩 지속기간 N min 은 가장 짧은 잠재적 오버랩 지속기간을 표시할 수 있고, 최대 잠재적 오버랩 지속기간 N max 는 가장 긴 잠재적 오버랩 지속기간을 표시할 수 있다. 일부 실시예들에서, N min N max 사이의 오버랩 지속기간 N overlap 은 214와 관련하여 아래에 설명되는 바와 같이 프로세스(200)에 의해 선택될 수 있다는 것에 주목한다.
일부 실시예들에서, N min N max 는 임의의 적합한 지속기간들에 대응할 수 있고, 여기서 N min N max 보다 더 작다. 예를 들어, 일부 실시예들에서, 잠재적 오버랩 지속기간들은 3초, 5초, 10초, 20초, 및/또는 임의의 다른 적합한 지속기간을 포함할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 N min N max 를 선택할 수 있다. 예를 들어, 일부 실시예들에서, N min N max 는 노래 A 및 노래 B의 지속기간들에 기초하여 선택될 수 있다. 더 특정한 예로서, 일부 실시예들에서, 프로세스(200)는 노래 A 및/또는 노래 B의 지속기간들이 상대적으로 긴 경우들에서(예를 들어, 노래 A 및 노래 B가 확장된 버전들, 및/또는 임의의 다른 적합한 상대적으로 긴 버전들인 경우들에서) N min N max 에 대해 상대적으로 더 큰 값들을 선택할 수 있다. 다른 더 특정한 예로서, 일부 실시예들에서, 프로세스(200)는 노래 A 및/또는 노래 B의 지속기간들이 상대적으로 더 짧거나 그리고/또는 표준 길이로 된 경우들에서 N min N max 에 대해 상대적으로 더 작은 값들을 선택할 수 있다.
일부 실시예들에서, 프로세스(200)는 노래 A의 종료 부분 및/또는 노래 B의 시작 부분으로부터의 묵음들을 트리밍(trim)하여, 그에 의해 노래 A 및 노래 B의 묵음-트리밍된 부분들을 발생시킬 수 있다는 것에 주목해야 한다. 프로세스(200)는 오버랩 지속기간을 선택하기에 앞서 그리고 본 명세서에서 아래에 설명되는 템포 추정 및 정렬에 앞서 이 묵음 트리밍을 수행할 수 있다는 것에 또한 주목해야 한다. 예를 들어, 노래 A 및/또는 노래 B의 묵음-트리밍된 부분들을 획득한 후에, 프로세스(200)는 노래 A의 마지막 40초 및 노래 B의 처음 40초에 대한 스펙트로그램들을 컴퓨팅할 수 있다.
206에서, 프로세스(200)는 노래 A와 노래 B의 오버랩 동안 노래 A와 노래 B 사이에서 최대 허용가능 재생-속도 변화를 선택할 수 있다. 일부 실시예들에서, 최대 허용가능 재생-속도 변화는, 노래 A의 종료 부분 동안의 노래 A 및 노래 B의 시작 부분 동안의 노래 B의 재생 속도들이 이들의 리듬들을 매칭시키기 위해 변경될 수 있는 최대 양을 표시할 수 있다. 일부 실시예들에서, 최대 허용가능 재생-속도 변화는 임의의 적합한 퍼센티지(예를 들어, 2%, 5%, 8%, 10%, 및/또는 임의의 다른 적합한 퍼센티지)에 대응할 수 있다.
208에서, 프로세스(200)는 노래 A의 마지막 N max 초 및 노래 B의 처음 N max 초에 대한 스펙트로그램들을 계산할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 그리고 임의의 적합한 기법(들)을 사용하여 스펙트로그램들을 계산할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 임의의 적합한 지속기간(예를 들어, 30밀리초, 50밀리초, 70밀리초, 및/또는 임의의 다른 적합한 지속기간)의 슬라이스들을 사용하여 스펙트로그램들을 계산할 수 있다. 더 특정한 예에서, 프로세스(200)는, 4 오버랩의 인자를 갖는 해닝 윈도우(Hanning window)에 의한 50밀리초의 프레임 길이(즉, 프레임들 사이의 12.5밀리초 스텝)를 사용하여 스펙트로그램을 계산할 수 있다. 사용되는 고속 푸리에 변환(Fast Fourier Transform)(FFT) 사이즈는, 프레임 길이의 2배보다 더 큰 2의 다음 거듭제곱일 수 있다. 예를 들어, 초당 16,000개의 샘플들의 샘플링 레이트를 사용하여, FFT 사이즈가 2,048로 설정될 수 있다. 기본 오디오 레이트가 초당 16,000개의 샘플들보다 더 큰 경우, 전체 대역폭 변환이 행해져서, 반전 프로세스 동안 사용하기 위한 스펙트로그램들을 생성할 수 있다.
다른 예로서, 일부 실시예들에서, 프로세스(200)는 슬라이스들 사이의 임의의 적합한 퍼센티지 오버랩(예를 들어, 50% 오버랩, 75% 오버랩, 80% 오버랩, 및/또는 임의의 다른 적합한 퍼센티지 오버랩)으로 스펙트로그램들을 계산할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 기법 또는 기법들의 조합을 사용하여, 예컨대 단기 푸리에 변환(Short-Time Fourier Transform)(STFT)을 사용함으로써, 그리고/또는 임의의 다른 적합한 방식으로 스펙트로그램들을 계산할 수 있다. 일부 실시예들에서, 노래 A 및 노래 B 각각에서의 비트들의 비트 포지션들이 결과적인 스펙트로그램들에서 식별가능하도록 스펙트로그램들을 계산하기 위한 파라미터들이 선택될 수 있다는 것에 주목한다.
210에서, 프로세스(200)는 노래 A의 마지막 N max 초(예를 들어, 노래 A의 종료 부분)의 템포 및 노래 B의 처음 N max 초(예를 들어, 노래 B의 시작 부분)의 템포를 결정할 수 있다. 이 템포 결정이 행해질 수 있어서 프로세스(200)가, 예를 들어, 세그먼트 정렬 동안 비트들을 매칭시킬 수 있다.
일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 템포를 결정할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 노래 A의 마지막 N max 초의 스펙트로그램의 자기상관(autocorrelation)을 계산함으로써 노래 A의 마지막 N max 초의 템포를 계산할 수 있고, 노래 B의 처음 N max 초의 스펙트로그램의 자기상관을 계산함으로써 노래 B의 처음 N max 초의 템포를 계산할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 스펙트로그램의 자기상관으로부터 템포를 계산할 수 있다.
예를 들어, 일부 실시예들에서, 프로세스(200)는 템포로서 스펙트로그램의 자기상관에서 주기성을 계산할 수 있다. 일부 실시예들에서, 프로세스(200)는 스펙트로그램의 상이한 주파수들에 대한 자기상관을 계산할 수 있다. 일부 그러한 실시예들에서, 프로세스(200)는 그 후에, 스펙트로그램의 상이한 주파수들의 자기상관들의 평균을 계산함으로써 평균 자기상관을 계산할 수 있다. 이 예를 계속하면, 일부 실시예들에서, 프로세스(200)는 평균 자기상관 내에서 주기성을 계산함으로써 템포를 계산할 수 있다.
일부 실시예들에서, 노래 A의 스펙트로그램의 마지막 N max 초와 노래 B의 스펙트로그램의 처음 N max 초를 각각 사용하여 노래 A의 마지막 N max 초의 템포와 노래 B의 처음 N max 초의 템포를 계산하기보다는 오히려, 일부 실시예들에서, 프로세스(200)는 노래 A의 시간-도메인 오디오 신호의 마지막 N max 초와 노래 B의 시간-도메인 오디오 신호의 처음 N max 초 각각의 자기상관을 계산함으로써 노래 A의 마지막 N max 초의 템포 및 노래 B의 처음 N max 초의 템포를 계산할 수 있다는 것에 주목한다.
일부 실시예들에서, 프로세스(200)는 후보 템포들의 리스트를 결정하기 위해 노래 A의 마지막 N max 초 및 노래 B의 처음 N max 초를 분석할 수 있다. 예를 들어, 템포를 추정하기 위해, 프로세스(200)는 각각의 세그먼트 래그(segment lag)에 대한 상관 계수 ρ[l]로 시작할 수 있고, ρ[l]로부터 하위 조화 강화된(sub-harmonically reinforced) 차동 템포 측정치 t[l]을 컴퓨팅할 수 있는데, 이는 다음과 같이 표현될 수 있다:
Figure pct00001
이 템포 측정치는 로컬로 차동적이라는 것에 주목해야 하고, 이는 그것이 li번째 하위 조화에서의 ρ[il]의 강도 차이 그리고 어느 한 쪽의 한 주기 내의 ρ의 최소 값들을 사용하여, 그에 의해 자기상관 함수에서 보여지는 메인 로브(main lobe) 영향을 감소시키고 반감된 템포들을 억제하기 때문이다. 일관된 템포가 있을 때, 이 차동 템포 측정치는, 예를 들어, 도 3에 도시된 바와 같이 템포 피크들이 급격한 완화가 되게 할 수 있다. 이 차동 측정치를 이용하면, 0.25는 강한 비트에 대응하는 것으로 간주될 수 있고, 0.01 미만은 약한 또는 일관성없는 템포에 대응하는 것으로 간주될 수 있다. 이에 따라, 노래 A의 마지막 N max 초(예를 들어, 노래 A의 종료 부분) 및 노래 B의 처음 N max 초(예를 들어, 노래 B의 시작 부분)의 템포에 대응하는 템포 곡선들 각각에 대해, 프로세스(200)는, 0.01을 초과하고 가장 가까운 이웃 래그들 양측 모두를 초과하는, 피크들의 래그들 및 강도를 결정할 수 있다.
도 3을 참조하면, 현재 노래(310)의 종료 부분은, (표시자(315)에 의해 도시된 바와 같이) 비트당 1.04초에서 가장 두드러지는 차동 템포 측정치를 사용하여 0.016의 약한 템포를 갖는 것으로 결정된다. 또한 도 3에 도시된 바와 같이, 현재 노래(310)의 종료 부분은 비트당 0.069초 및 비트당 0.093초에서 2개의 더 약한 대체 템포들을 갖는 것으로 또한 결정된다. 다음 노래(320)의 시작 부분에 대해, 다음 노래(320)는 (표시자(325)에 의해 도시된 바와 같이) 비트당 0.89초에서 가장 두드러지는 차동 템포 측정치를 사용하여 0.25의 더 강한 템포를 갖는 것으로 결정된다.
도 2로 다시 돌아가면, 212에서, 프로세스(200)는 현재 노래의 종료 부분(현재 세그먼트라고 때때로 지칭됨) 및 다음 노래의 시작 부분(다음 세그먼트라고 때때로 지칭됨)의 추정된 템포들을 사용하여 대응하는 스펙트로그램들을 재샘플링할 수 있어서, 템포 변화의 가능성있는 가청도를 최소화하면서 템포들이 정렬되게 하도록 한다. 예를 들어, 도 2에 도시된 바와 같이, 이것은, 노래 A의 마지막 N max 초의 템포로부터 노래 B의 처음 N max 초의 템포로 전환하기 위한 템포 변화의 레이트 및 템포 매칭 비율을 결정하는 것을 포함할 수 있다. 일부 실시예들에서, 템포 매칭 비율은, 노래 A와 노래 B 사이의 오버랩 동안(예를 들어, 노래 A의 종료 부분이 노래 B의 시작 부분과 동시에 플레이될 때) 노래 A의 비트들이 노래 B의 비트들에 정렬되는 비율을 표시할 수 있다. 일부 실시예들에서, 템포 변화의 레이트는, 노래들 AB의 템포들이 오버랩 동안 조정되어야 하는 레이트를 표시할 수 있다.
일부 실시예들에서, 프로세스(200)는 먼저, 노래 A의 마지막 N max 초의 템포와 노래 B의 처음 N max 초의 템포 사이의 차이가 206에서 식별된 최대 허용가능 템포 차이 내에 있는지 여부를 결정할 수 있다는 것에 주목한다. 예를 들어, 노래 A의 마지막 N max 초의 템포가 비트당 1.06초로서 계산되고, 노래 B의 처음 N max 초의 템포가 비트당 1.05초로서 계산되며, 최대 허용가능 템포 차이가 5%인 경우에, 프로세스(200)는 템포들의 차이가 최대 허용가능 템포 차이 내에 있다고 결정할 수 있다. 일부 그러한 실시예들에서, 프로세스(200)가 노래 A의 마지막 N max 초의 템포와 노래 B의 처음 N max 초의 템포가 최대 허용가능 템포 차이 내에 있다고 결정하는 경우에, 프로세스(200)는 노래 A와 노래 B의 템포들이 조정될 필요가 없고 노래 A의 마지막 N max 초와 노래 B의 처음 N max 초의 비트들이 1:1 비율로 매칭될 수 있다고 결정할 수 있다.
반대로, 프로세스(200)가 노래 A의 마지막 N max 초의 템포와 노래 B의 처음 N max 초의 템포가 206에서 식별된 최대 허용가능 템포 차이 내에 있지 않다고 결정하는 경우에, 프로세스(200)는 노래 A의 마지막 N max 초의 비트들이 노래 B의 처음 N max 초의 비트들과 정렬되도록 노래 A의 마지막 N max 초의 템포가 조정되어야 하는 템포 변화의 레이트 및 템포 매칭 비율을 계산할 수 있다.
일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 템포 매칭 비율을 계산할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 206에서 식별된 최대 허용가능 템포 차이 내에서 노래 A의 마지막 N max 초의 템포를 노래 B의 처음 N max 초의 템포와 매칭시킬 가장 낮은 유리 분수(rational fraction)를 계산할 수 있다. 더 특정한 예로서, 노래 A의 마지막 N max 초의 템포가 비트당 1.06초이고 노래 B의 처음 N max 초의 템포가 비트당 0.68초인 경우에, 프로세스(200)는 0.68/1.06 또는 0.6415로서 템포들의 비율을 계산할 수 있다. 이 예를 계속하면, 프로세스(200)는 0.6415에 가장 가까운 가장 낮은 유리 분수가 2/3
Figure pct00002
0.6667이라고 결정할 수 있다. 일부 실시예들에서, 프로세스(200)는 그 후에, 템포들의 비율 및 계산된 가장 낮은 유리 분수에 기초하여 템포 변화의 레이트를 계산할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 템포들의 계산된 비율과 템포들의 비율에 가장 가까운 가장 낮은 유리 분수의 값 사이의 퍼센티지 차이로서 템포 변화의 레이트를 계산할 수 있다. 상기에 주어진 예를 계속하면, 일부 실시예들에서, 프로세스(200)는
Figure pct00003
로서 템포 변화의 레이트를 계산할 수 있다.
214에서, 프로세스(200)는 노래 A와 노래 B의 오버랩 동안 노래 A와 노래 B를 비트-매칭시킴으로써 노래 A와 노래 B의 수정된 스펙트로그램들을 생성할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 노래 A와 노래 B 사이의 전환을 비트-매칭시킬 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는, 노래 A와 노래 B의 스펙트로그램들이 가장 가깝게 매칭되는, N min 내지 N max 의 범위에 있는 노래 A와 노래 B의 오버랩 지속기간 N overlap 을 결정할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 오버랩을 식별할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 N min 내지 N max 의 노래 A와 노래 B의 스펙트로그램들에 있어서의 최대 매치를 식별하기 위해 상관 행렬을 생성할 수 있다.
일부 실시예들에서, N max 를 향한 오버랩 선택의 바이어싱을 회피하기 위해, 프로세스(200)는 오버랩되고 있는 영역에서 노래 A 또는 노래 B 중 어느 하나의 파워(power)로 상관 행렬의 각각의 오프셋을 정규화할 수 있다. 일부 실시예들에서, 노래 A의 마지막 N overlap 초의 비트들은, 212에서 계산된 템포 매칭 비율로 노래 B의 처음 N overlap 초의 비트들과 정렬될 수 있다는 것에 주목한다. 예를 들어, 가장 낮은 유리 분수가 212에서 계산된 경우에, 비트들은 212에서 계산된 유리 분수 비율로 정렬될 수 있다.
프로세스(200)가 212에서 노래 A와 노래 B의 템포들이 조정되어야 한다고 결정한 경우들에서, 프로세스(200)는 노래 A의 마지막 N max 초를 템포-워핑(tempo-warp)할 수 있거나 그리고/또는 노래 B의 처음 N max 초를 템포-워핑할 수 있다는 것에 주목한다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 노래 A 및/또는 노래 B를 템포-워핑할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 212에서 계산된 템포 변화를 적용하기 위해 노래 B의 처음 N max 초 동안 스펙트로그램의 프레임들을 보간할 수 있다. 일부 실시예들에서, 프로세스(200)는 그 후에, 노래 A의 마지막 N max 초에 템포 변화를 적용하도록 점진적으로 시프트시킬 수 있다. 일부 실시예들에서, 프로세스(200)는, 상술된 바와 같이, N overlap 을 결정하기에 앞서 노래 A와 노래 B의 템포들을 조정할 수 있다는 것에 주목한다.
템포 정렬의 더 특정한 예에서, 프로세스(200)는 비트 정렬을 가능하게 하기 위해 세그먼트들의 속도들을 변경하는 방법을 결정하기 위해 현재 세그먼트에 대한 후보 템포 및 강도(
Figure pct00004
Figure pct00005
) 및 다음 세그먼트에 대한 후보 템포 및 강도(
Figure pct00006
Figure pct00007
)의 이들 2개의 세트들을 사용할 수 있다.
더 구체적으로는, 일부 실시예들에서, 프로세스(200)는, (
Figure pct00008
Figure pct00009
)의 모든 쌍들에 걸쳐, 가장 눈에 띄지 않는 속도 변화
Figure pct00010
과 함께, 가장 강한 조합 강도
Figure pct00011
을 제공하는 쌍을 결정할 수 있다. 즉, 프로세스(200)는 속도 변화의 가능성있는 가청도를 최소화 또는 감소시킬 수 있는 속도 프로파일을 사용하여 2개의 템포들을 정렬시키게 하도록 현재 및 다음 스펙트로그램들을 재샘플링할 수 있다. 이 예를 계속하면, 프로세스(200)는 사용자-특정된 허용 범위(예를 들어, -15% 내지 25%) 내에서 γ를 제공하는
Figure pct00012
페어링들 모두를 수집할 수 있고, 인지가능 속도 변화에 의해 조합된 강도에 페널티를 줄 수 있고:
Figure pct00013
여기서
Figure pct00014
는, 예를 들어, 5%이다. 이것을 사용하여, 프로세스(200)는 속도 변화 γ 및 각각의 노래에서의 템포 피크들의 최대 강도들
Figure pct00015
그리고
Figure pct00016
을 결정할 수 있다.
일부 실시예들에서, 이 페어링을 사용하여 템포들을 매칭시키기 위해, 프로세스(200)는 다음 세그먼트의 속도의 γ+1에서 현재 세그먼트를 플레이할 수 있다. 각각의 노래에서의 템포 피크들의 최대 강도들은, 오버랩된 섹션들 사이에서 그 속도 변화에 대한 프로파일을 결정하는 데 사용될 수 있다. 더 긴 간격 동안 고유 속도(natural speed)로 더 강한 비트를 갖는 세그먼트를 유지하도록 전환을 바이어싱하기 위해, 프로세스(200)는 속도 프로파일을 생성할 수 있다.
속도 프로파일의 예시적인 예가 도 4에 도시되어 있다. 도 3의 예를 계속하면, 프로세스(200)는 약한 템포 세그먼트로부터 강한 템포 세그먼트로 재생 속도를 증가시키는 속도 프로파일을 생성할 수 있고, 여기서 재생 속도는 약한 템포 부분 동안 변화된다. 더 구체적으로는, 다음 세그먼트가, 0.016의 템포를 갖는 현재 세그먼트보다 0.25의 더 강한 템포를 가지므로, 강한 템포 부분의 재생 속도에 대한 변화들이 약한 템포 부분의 재생 속도에 대한 변화들보다 더 가청가능할 수도 있다.
이 예를 계속하면, 프로세스(200)는 정속도 섹션들의 상대 길이들
Figure pct00017
Figure pct00018
을 결정함에 있어서
Figure pct00019
Figure pct00020
을 사용할 수 있는데, 이는 다음과 같이 표현될 수 있다:
Figure pct00021
Figure pct00022
Figure pct00023
은, 현재 세그먼트의 고유 속도 및 다음 세그먼트의 고유 속도로 재생되는 오버랩된 섹션의 분율(fraction)이라는 것에 주목해야 한다. 도 4에 도시된 바와 같이, 프로세스(200)는 오버랩의 나머지
Figure pct00024
분율에 대한 속도를 선형으로 변경할 수 있다.
Figure pct00025
, 즉, 현재 세그먼트에 대한 고유 오버랩 지속기간과 함께, 속도에 대한 이 제약들의 세트가, (재샘플링된) 템포-정렬된 지속기간
Figure pct00026
를 결정할 수 있다는 것에 또한 주목해야 하는데, 이는 다음과 같이 표현될 수 있다:
Figure pct00027
도 4의 타깃 속도 프로파일에 대한 샘플들의 수에 의하면, 현재 세그먼트의 고유-속도 지속기간은
Figure pct00028
이고 다음 세그먼트의 고유-속도 지속기간은
Figure pct00029
이다.
이 예를 계속하면, 프로세스(200)는 이들 현재 세그먼트 및 다음 세그먼트 고유 시간들에서 현재 및 다음 세그먼트들의 스펙트럼 곱을 보여주는 시간 종속 내적 행렬(time-dependent dot product matrix)을 형성할 수 있다. 1+γ 상대 속도들을 시행하기 위해, 프로세스(200)는 현재 세그먼트와 다음 세그먼트 사이의 오프셋 시간에 의해 결정된 절편을 갖는 그리고 1+γ 기울기를 갖는 선들 상에서 그 내적 행렬을 적분할 수 있다. 그 선 상에서, 프로세스(200)는 도 4에 도시된 샘플링 프로파일을 사용하여 적분을 샘플링할 수 있다. 샘플 이격은, 재생 속도가 현재 세그먼트의 고유 속도일 때 수직 축(현재-세그먼트-시간) 상의 하나의 단위이고, 샘플 이격은, 재생 속도가 다음 세그먼트의 고유 속도일 때 수평 축(다음-세그먼트-시간) 상의 하나의 단위인데, 이때 중간 이격은 중간 속도들에 대한 것이다.
내적 행렬이 스펙트럼 진폭들의 곱들에 대해 컴퓨팅되고 있을 때, 프로세스(200)는 재샘플링된 오버랩된 섹션들의 별개의 파워 프로파일들에 의해 선적분 값을 정규화하여, 그에 의해 상관-계수 측정치를 제공할 수 있다는 것에 주목해야 한다. 이 접근법을 사용하여, 프로세스(200)는 가장 강한 상관 계수를 갖는 오프셋을 찾을 수 있다. 이 오프셋 및 샘플링 프로파일들은 끊김없는 오디오 혼합을 위해 2개의 기본 템포-정렬된, 오프셋-정렬된 섹션들을 생성하는 데 사용될 수 있다.
도 2를 다시 참조하면, 216에서, 프로세스(200)는, 스펙트로그램들의 일련의 주파수 대역들에서, 노래 A로부터 노래 B로의 전환 동안 진폭 페이딩을 시작 및 종료하기 위한 시간 포인트들을 식별할 수 있다. 일부 실시예들에서, 일련의 주파수 대역들은 임의의 적합한 수의 대역들(예를 들어, 8개, 16개, 32개, 및/또는 임의의 다른 적합한 수의 대역들)을 포함할 수 있다. 일부 실시예들에서, 일련의 대역들에서의 대역들은 대수적으로 사이징될 수 있다. 일부 그러한 실시예들에서, 더 낮은 대역들에 대한 최소 수의 주파수 채널들(예를 들어, 4개의 채널들, 및/또는 임의의 다른 적합한 최소치)이 있을 수 있다는 것에 주목한다. 예를 들어, 스펙트로그램들이 1025-폭이고 16개의 대역들이 구축되어야 하는 경우에, 프로세스(200)는 일련의 주파수 대역들을 구축할 수 있고, 여기서 각각의 대역에 대한 상부 주파수 빈(top frequency bin)은: [4, 8, 12, 16, 20, 24, 28, 32, 49, 76, 117, 181, 279, 439, 665, 1025]이다.
일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 일련의 주파수 대역들에서 각각의 주파수 대역에 대한 진폭 페이딩을 시작 및 종료하기 위한 시간 포인트들을 식별할 수 있다. 예를 들어, 일부 실시예들에서, 가장 낮은 주파수 대역(예를 들어, 상기에 주어진 예시적인 주파수 대역들에서 주파수 빈들 0 내지 3)으로 시작하여, 프로세스(200)는, 높은 상호-상관을 갖는, 노래 A의 마지막 N overlap 초와 노래 B의 처음 N overlap 초의 가장 낮은 주파수 대역 내의 스펙트로그램의 영역을 찾을 수 있다. 즉, 프로세스(200)는 로컬 텍스처 정렬을 검사함으로써 각각의 가능한 시작 시간 포인트 및 종료 시간 포인트의 품질을 결정할 수 있고, 여기서, 시작-종료 포인트들 사이의 2개의 기본 텍스처들이 유사한 경우, 그 쌍의 품질에는 높은 상호-상관 스코어가 주어질 수 있고, 여기서, 시작-종료 포인트들 사이의 2개의 기본 텍스처들이 유사하지 않은 경우, 그 쌍의 품질에는 상대적으로 더 낮은 상호-상관 스코어가 주어질 수 있다. 일부 실시예들에서, 높은 상호-상관을 산출하는 것으로서 식별된 윈도우 및 포지션은, 가장 낮은 주파수 대역에 대한 진폭 페이드에 대한 시작 시간 포인트 및 종료 시간 포인트를 정의하는 데 사용될 수 있다. 일부 실시예들에서, 프로세스(200)는 그 후에 다음의 더 높은 주파수 대역(예를 들어, 상기에 주어진 예시적인 주파수 대역들에서 5Hz 내지 8Hz)으로 이동할 수 있고, 다음의 더 높은 주파수 대역 내에서 가장 높은 상호-상관을 갖는 윈도우를 유사하게 식별할 수 있다. 일부 실시예들에서, 프로세스(200)는 가장 낮은 주파수 대역에 대해 식별된 윈도우의 길이와 동일한 길이 또는 그보다 더 짧은 길이가 되도록 그리고 가장 낮은 주파수 대역에 대해 식별된 윈도우와는 미리 결정된 양보다 더 많이 오버랩(예를 들어, 미리 결정된 지속기간의 시간보다 더 많이 오버랩, 미리 결정된 퍼센티지보다 더 많이 오버랩, 그리고/또는 임의의 다른 적합한 양만큼 오버랩)되도록 상호-상관 길이를 제약할 수 있다는 것에 주목한다. 일부 실시예들에서, 프로세스(200)는 일련의 주파수 대역들에서의 주파수 대역들 모두에 대해 유사하게 계속될 수 있다. 일부 실시예들에서, 가장 높은 주파수 대역들에서 진폭 페이딩을 위한 윈도우들은 가장 낮은 주파수 대역들에서 진폭 페이딩을 위한 윈도우들보다 상대적으로 더 짧아서, 그에 의해 더 높은 주파수 대역들에서 더 짧은 크로스-페이드(cross-fade)들을 생성할 수 있다는 것에 주목한다.
주파수 대역들에 걸쳐 시작-종료 포인트들을 조합하는 예시적인 마스크가 개시된 청구 대상의 일부 실시예들에 따라 도 5에 도시되어 있고, 여기서 예시적인 마스크는 노래 A의 종료 부분과 노래 B의 시작 부분의 2개의 정렬된 스펙트럼 섹션들을 혼합하는 데 사용될 수 있다. 상술된 바와 같이, 동적 프로그래밍을 사용하여, 프로세스(200)는 각각의 주파수 영역 내의 에너지 매치의 품질에 기초하여 마스크에서의 시작-종료 포인트들에 대한 최적 경로를 결정할 수 있다. 예를 들어, 혼합의 좌측 에지는 가장 이른 오버랩 슬라이스이고 하부 14개의 스펙트럼 영역들에 대한 우측 에지는 가장 늦은 오버랩 슬라이스에 있다. 상부 2개의 영역들의 경우, 크로스-페이스의 종료부가 그의 시작부에 더 가깝게 이동한다. 이들 최적의 시작 및 종료 포인트들을 찾으면, 프로세스(200)는 이들 사이의 스펙트로그램들을 선형으로 페이딩할 수 있다.
도 5에 도시된 마스크 외에, 혼합된 스펙트로그램은 현재 노래(예를 들어, 노래 A)의 스펙트로그램 및 다음 노래(예를 들어, 노래 B)의 스펙트로그램과 동일할 수 있다는 것에 주목해야 한다.
일부 실시예들에서, 프로세스(200)는, 크로스 페이스의 중간 포인트에서의 드리프트 그리고 더 높은 주파수들에서의 크로스 페이드들의 연장을 억제하기 위한 전환 페널티를 포함할 수 있다는 것에 또한 주목해야 한다. 예를 들어, 이전(더 낮은 주파수) 대역에 대해 이들 포인트들 사이의 거리를 연장하거나 또는 이전(더 낮은 주파수) 대역에서의 포지션에 대해 크로스-페이드의 중심을 변경하는 시작-종료 시간들의 포지션 변경들에 페널티가 할당될 수 있다.
도 5는 주파수 대역들이 16개의 스펙트럼 대역들이 있는 멜-스케일(mel-scale)과 같은 이격으로 그룹화된다는 것을 보여주지만, 이것은 단지 예시적인 것에 불과하다는 것에 추가로 주목해야 한다.
218에서, 프로세스(200)는, 상술된 바와 같이, 216에서 식별된 진폭-페이딩 윈도우들에 기초하여 노래 A 및 노래 B의 진폭들을 진폭 페이딩함으로써 비트-매칭된 스펙트로그램들을 수정할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 비트-매칭된 스펙트로그램들을 수정할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 일련의 주파수 대역들에서의 각각의 주파수 대역 내에서 노래 A 및 노래 B에 대응하는 스펙트로그램들의 가중된 시간-평균을 수행함으로써 비트-매칭된 스펙트로그램들을 병합할 수 있다. 더 특정한 예로서, 일부 실시예들에서, 216에서 식별된 시간 포인트들이 주파수 빈들 0 내지 3에 대한 진폭 페이드가 3:00 내지 3:15의 시간 포인트들로부터 수행되어야 함을 표시하는 경우에, 프로세스(200)는 노래 A가 3:00에서 진폭의 100%에 기여하고 노래 B가 3:15에서 진폭의 100%에 기여하도록 3:00 내지 3:15의 시간 포인트들 내에서 노래 A와 노래 B의 스펙트로그램들을 평균화할 수 있다. 일부 실시예들에서, 진폭-페이딩 윈도우 동안의 각각의 노래의 퍼센티지 진폭 기여는 임의의 적합한 함수, 예컨대 선형 함수, 및/또는 임의의 다른 적합한 함수를 따를 수 있다.
2개의 노래들 사이의 혼합 전환들의 예시적인 예들이 도 6a 내지 도 6d에 도시되어 있다. 예를 들어, 도 6a는 2개의 노래들 사이에서 5초의 오버랩된 길이, 4.1% 증가의 속도 변화, 그리고 0.031 및 0.032의 템포 강도를 가지며, 도 6b는 2개의 노래들 사이에서 11.67초의 오버랩된 길이, 4.8% 증가의 속도 변화, 그리고 0.028 및 0.22의 템포 강도를 가지며, 도 6c는 7.11초의 오버랩된 길이, 17.3% 증가의 속도 변화 그리고 0.009 및 0.029의 템포 강도를 가지며, 도 6d는 15초의 오버랩된 길이, 2.2% 증가의 속도 변화, 그리고 0.029 및 0.010의 템포 강도를 갖는다.
220에서, 프로세스(200)는 수정된 스펙트로그램들에 기초하여 노래 A 및 노래 B에 대한 수정된 오디오 파형들을 생성할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 수정된 오디오 파형들을 생성할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 역 STFT를 사용하여 그리고/또는 임의의 다른 적합한 방식으로 수정된 스펙트로그램으로부터 오디오 신호를 추정함으로써 오디오 파형을 생성할 수 있다.
일부 실시예들에서, 프로세스(200)는 수정된 스펙트로그램을 사용하여 수정된 오디오 파형의 위상들을 추정하기 위해 임의의 적합한 기법 또는 기법들의 조합을 사용할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 수정된 스펙트로그램으로부터 오디오 파형의 위상들을 반복적으로 추정하기 위해 Griffin-Lim 기법과 유사한 기법(들)을 사용할 수 있다. 일부 실시예들에서, 프로세스(200)는 오디오 파형의 위상들을 추정하도록 요구되는 반복들의 횟수를 감소시키기 위해 임의의 적합한 방식으로 위상들에 대한 초기 추정치들을 설정할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 오버랩에 포함되지 않은 스펙트로그램의 시간 포인트들에 대한 노래 A 및 노래 B에 대한 원래 스펙트로그램들의 위상들로서 위상들에 대한 초기 추정치들을 설정할 수 있고, 오버랩에서의 위상들의 스펙트럼-크기-가중된 평균으로서 오버랩에 포함된 시간 포인트들에 대한 위상들에 대한 초기 추정치들을 설정할 수 있다.
일부 실시예들에서, 프로세스(200)는 임의의 적합한 제약들에 따라 노래 A 및 노래 B에 대한 수정된 파형들을 생성할 수 있다는 것에 주목한다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 214에서 식별된 오버랩 지속기간에 기초하여 노래 A 및 노래 B에 대한 수정된 파형을 오버랩 또는 중첩시킴으로써 생성된 스펙트로그램의 크기들이, 수정된 파형들이 오버랩 영역에서 생성된 수정된 스펙트로그램의 크기들과 매칭되도록 노래 A 및 노래 B에 대한 수정된 파형들을 생성할 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(200)는 214에서 식별된 오버랩 지속기간에 기초하여 노래 A 및 노래 B에 대한 수정된 파형을 오버랩 또는 중첩시킴으로써 생성된 스펙트로그램의 위상들이 오버랩 영역의 시작부(예를 들어, 오버랩 영역의 초기 절반, 및/또는 오버랩 영역의 임의의 다른 적합한 시작부)에서의 노래 A의 위상들과 매칭되고 오버랩 영역의 종료부(예를 들어, 오버랩 영역의 마지막 절반, 및/또는 오버랩 영역의 임의의 다른 적합한 마지막 절반) 및 노래 B의 위상들과 매칭되도록 노래 A 및 노래 B에 대한 수정된 파형들을 생성할 수 있다.
일부 실시예들에서, 프로세스(200)는 노래 A 및 노래 B의 수정된 버전들에 대응하는 생성된 수정된 오디오 파형들을 저장할 수 있다는 것에 주목한다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 노래 A 및 노래 B의 식별자들과 관련하여 생성된 수정된 오디오 파형들을 저장할 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(200)는, 노래 B의 수정된 버전의 시작 부분과 오버랩되어야 하는 노래 A의 수정된 버전의 종료 부분의 지속기간을 표시하는 오버랩 지속기간(예를 들어, 214와 관련하여 상기에 결정 및 설명된 바와 같은, N overlap )의 표시와 관련하여 생성된 수정된 오디오 파형을 저장할 수 있다.
도 7을 참조하면, 개시된 청구 대상의 일부 실시예들에 따라 사용될 수 있는 플레이리스트들에서의 노래들 사이의 끊김없는 오디오 혼합을 위한 하드웨어의 예시적인 예(700)가 도시되어 있다. 예시된 바와 같이, 하드웨어(700)는 서버(702), 통신 네트워크(704), 및/또는 하나 이상의 사용자 디바이스들(706), 예컨대 사용자 디바이스들(708 및 710)을 포함할 수 있다.
서버(702)는, 정보, 데이터, 프로그램들, 미디어 콘텐츠, 및/또는 임의의 다른 적합한 콘텐츠를 저장하기 위한 임의의 적합한 서버(들)일 수 있다. 일부 실시예들에서, 서버(702)는 임의의 적합한 기능(들)을 수행할 수 있다. 예를 들어, 일부 실시예들에서, 서버(702)는 오디오 콘텐츠 아이템들의 플레이리스트를 사용자 디바이스 상의 프레젠테이션을 위해 사용자 디바이스에 송신할 수 있다. 다른 예로서, 일부 실시예들에서, 서버(702)는, 도 2에 도시되고 이와 관련하여 아래에 설명되는 바와 같이, 제1 노래의 종료 부분이 제2 노래의 시작 부분과 오버랩될 때 제1 노래가 제2 노래로 원활하게 전환되도록, 제1 노래의 종료 부분과 제2 노래의 시작 부분을 수정할 수 있다.
통신 네트워크(704)는 일부 실시예들에서 하나 이상의 유선 및/또는 무선 네트워크들의 임의의 적합한 조합일 수 있다. 예를 들어, 통신 네트워크(704)는 인터넷, 인트라넷, 광역 네트워크(wide-area network)(WAN), 근거리 네트워크(local-area network)(LAN), 무선 네트워크, 디지털 가입자 라인(digital subscriber line)(DSL) 네트워크, 프레임 릴레이 네트워크, 비동기 전송 모드(asynchronous transfer mode)(ATM) 네트워크, 가상 사설 네트워크(virtual private network)(VPN), 및/또는 임의의 다른 적합한 통신 네트워크 중 임의의 하나 이상을 포함할 수 있다. 사용자 디바이스들(706)은, 하나 이상의 통신 링크들(예를 들어, 통신 링크들(714))을 통해 서버(702)에 링크될 수 있는 통신 네트워크(704)에 하나 이상의 통신 링크들(예를 들어, 통신 링크들(712))에 의해 연결될 수 있다. 통신 링크들은, 네트워크 링크들, 다이얼-업 링크(dial-up link)들, 무선 링크들, 하드-와이어드 링크(hard-wired link)들, 임의의 다른 적합한 통신 링크들, 또는 그러한 링크들의 임의의 적합한 조합과 같은, 사용자 디바이스들(706)과 서버(702) 간에서 데이터를 통신하기에 적합한 임의의 통신 링크들일 수 있다.
사용자 디바이스들(706)은, 오디오 콘텐츠 및/또는 오디오 콘텐츠의 플레이리스트를 플레이하기에 적합한 임의의 하나 이상의 사용자 디바이스들을 포함할 수 있다. 일부 실시예들에서, 사용자 디바이스(706)는 임의의 적합한 타입의 사용자 디바이스, 예컨대 모바일 폰들, 태블릿 컴퓨터들, 웨어러블 컴퓨터들, 랩톱 컴퓨터들, 데스크톱 컴퓨터들, 스마트 텔레비전들, 미디어 플레이어들, 게임 콘솔들, 차량 정보 및/또는 엔터테인먼트 시스템들, 및/또는 임의의 다른 적합한 타입의 사용자 디바이스를 포함할 수 있다.
서버(702)가 하나의 디바이스로서 예시되어 있지만, 서버(702)에 의해 수행되는 기능들은 일부 실시예들에서 임의의 적합한 수의 디바이스들을 사용하여 수행될 수 있다. 예를 들어, 일부 실시예들에서, 서버(702)에 의해 수행되는 기능들을 구현하기 위해 다수의 디바이스들이 사용될 수 있다.
도면을 지나치게 복잡하게 하는 것을 회피하기 위해 2개의 사용자 디바이스들(708 및 710)이 도 7에 도시되어 있지만, 임의의 적합한 수의 사용자 디바이스들, 및/또는 임의의 적합한 타입들의 사용자 디바이스들이 일부 실시예들에서 사용될 수 있다.
서버(702) 및 사용자 디바이스들(706)은 일부 실시예들에서 임의의 적합한 하드웨어를 사용하여 구현될 수 있다. 예를 들어, 일부 실시예들에서, 디바이스들(702 및 706)은 임의의 적합한 범용 컴퓨터 또는 특수 목적 컴퓨터를 사용하여 구현될 수 있다. 예를 들어, 모바일 폰이 특수 목적 컴퓨터를 사용하여 구현될 수도 있다. 임의의 그러한 범용 컴퓨터 또는 특수 목적 컴퓨터는 임의의 적합한 하드웨어를 포함할 수 있다. 예를 들어, 도 8의 예시적인 하드웨어(800)에 예시된 바와 같이, 그러한 하드웨어는 하드웨어 프로세서(802), 메모리 및/또는 스토리지(804), 입력 디바이스 컨트롤러(806), 입력 디바이스(808), 디스플레이/오디오 드라이버들(810), 디스플레이 및 오디오 출력 회로부(812), 통신 인터페이스(들)(814), 안테나(816), 및 버스(818)를 포함할 수 있다.
하드웨어 프로세서(802)는, 일부 실시예들에서 마이크로프로세서, 마이크로-컨트롤러, 디지털 신호 프로세서(들), 전용 로직, 및/또는 범용 컴퓨터 또는 특수 목적 컴퓨터의 기능을 제어하기 위한 임의의 다른 적합한 회로부와 같은 임의의 적합한 하드웨어 프로세서를 포함할 수 있다. 일부 실시예들에서, 하드웨어 프로세서(802)는, 서버(702)와 같은 서버의 메모리 및/또는 스토리지에 저장되는 서버 프로그램에 의해 제어될 수 있다. 일부 실시예들에서, 하드웨어 프로세서(802)는 사용자 디바이스(706)의 메모리 및/또는 스토리지(804)에 저장되는 컴퓨터 프로그램에 의해 제어될 수 있다.
메모리 및/또는 스토리지(804)는, 일부 실시예들에서 프로그램들, 데이터, 및/또는 임의의 다른 적합한 정보를 저장하기 위한 임의의 적합한 메모리 및/또는 스토리지일 수 있다. 예를 들어, 메모리 및/또는 스토리지(804)는 랜덤 액세스 메모리, 판독 전용 메모리, 플래시 메모리, 하드 디스크 스토리지, 광학 매체들, 및/또는 임의의 다른 적합한 메모리를 포함할 수 있다.
입력 디바이스 컨트롤러(806)는, 일부 실시예들에서 하나 이상의 입력 디바이스들(808)로부터의 입력을 제어 및 수신하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 입력 디바이스 컨트롤러(806)는, 터치스크린으로부터, 키보드로부터, 하나 이상의 버튼들로부터, 음성 인식 회로로부터, 마이크로폰으로부터, 카메라로부터, 광학 센서로부터, 가속도계로부터, 온도 센서로부터, 근접장 센서로부터, 압력 센서로부터, 인코더로부터, 그리고/또는 임의의 다른 타입의 입력 디바이스로부터 입력을 수신하기 위한 회로부일 수 있다.
디스플레이/오디오 드라이버들(810)은, 일부 실시예들에서 하나 이상의 디스플레이/오디오 출력 디바이스들(812)로의 출력을 제어 및 구동하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 디스플레이/오디오 드라이버들(810)은, 터치스크린, 플랫-패널 디스플레이, 음극선관 디스플레이, 프로젝터, 스피커 또는 스피커들, 및/또는 임의의 다른 적합한 디스플레이 및/또는 프레젠테이션 디바이스들을 구동하기 위한 회로부일 수 있다.
통신 인터페이스(들)(814)는, 하나 이상의 통신 네트워크들(예를 들어, 컴퓨터 네트워크(704))과 인터페이싱하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 인터페이스(들)(814)는 네트워크 인터페이스 카드 회로부, 무선 통신 회로부, 및/또는 임의의 다른 적합한 타입의 통신 네트워크 회로부를 포함할 수 있다.
안테나(816)는, 일부 실시예들에서 통신 네트워크(예를 들어, 통신 네트워크(704))와 무선 통신하기 위한 임의의 적합한 하나 이상의 안테나들일 수 있다. 일부 실시예들에서, 안테나(816)는 생략될 수 있다.
버스(818)는, 일부 실시예들에서 2개 이상의 컴포넌트들(802, 804, 806, 810, 및 814) 사이에서 통신하기 위한 임의의 적합한 메커니즘일 수 있다.
임의의 다른 적합한 컴포넌트들이 일부 실시예들에 따라 하드웨어(800)에 포함될 수 있다.
일부 실시예들에서, 도 1 및 도 2의 프로세스들의 상술된 블록들 중 적어도 일부는, 도면들에 도시되고 이들과 관련하여 설명되는 순서 및 시퀀스로 제한되지 않는 임의의 순서 또는 시퀀스로 실행 또는 수행될 수 있다. 또한, 도 1 및 도 2의 상기의 블록들 중 일부는 레이턴시 및 프로세싱 시간들을 감소시키기 위해 병렬로 또는 적절하다면 실질적으로 동시에 실행 또는 수행될 수 있다. 부가적으로 또는 대안적으로, 도 1 및 도 2의 프로세스들의 상술된 블록들 중 일부는 생략될 수 있다.
일부 실시예들에서, 본 명세서의 기능들 및/또는 프로세스들을 수행하기 위한 명령어들을 저장하기 위해 임의의 적합한 컴퓨터 판독가능 매체들이 사용될 수 있다. 예를 들어, 일부 실시예들에서, 컴퓨터 판독가능 매체들은 일시적 또는 비일시적일 수 있다. 예를 들어, 비일시적 컴퓨터 판독가능 매체들은, 비일시적 형태들의 자기 매체들(예컨대, 하드 디스크들, 플로피 디스크들, 및/또는 임의의 다른 적합한 자기 매체들), 비일시적 형태들의 광학 매체들(예컨대, 콤팩트 디스크들, 디지털 비디오 디스크들, 블루레이 디스크들, 및/또는 임의의 다른 적합한 광학 매체들), 비일시적 형태들의 반도체 매체들(예컨대, 플래시 메모리, 전기적으로 프로그래밍가능한 판독 전용 메모리(electrically programmable read-only memory)(EPROM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(electrically erasable programmable read-only memory)(EEPROM), 및/또는 임의의 다른 적합한 반도체 매체들), 송신 동안 어떤 형태의 영속성도 결여되어 있지 않거나 또는 순간적이지 않은 임의의 적합한 매체들, 및/또는 임의의 적합한 유형 매체들(tangible media)과 같은 매체들을 포함할 수 있다. 다른 예로서, 일시적 컴퓨터 판독가능 매체들은, 배선들, 컨덕터들, 광섬유들, 회로들에서의, 네트워크들 상의 신호들, 송신 동안 임의의 형태의 영속성이 결여되어 있고 순간적인 임의의 적합한 매체들, 및/또는 임의의 적합한 무형 매체들을 포함할 수 있다.
이에 따라, 플레이리스트들에서의 노래들 사이의 끊김없는 오디오 혼합을 위한 방법들, 시스템들, 및 매체들이 제공된다.
본 발명은 전술한 예시적인 실시예들에서 설명 및 예시되었지만, 본 개시내용은 단지 예로서 이루어졌고, 본 발명의 구현의 세부사항들의 수많은 변경들이, 후속하는 청구범위에 의해서만 제한되는, 본 발명의 사상 및 범주로부터 벗어남이 없이 이루어질 수 있다는 것이 이해된다. 개시된 실시예들의 피처들은 다양한 방식들로 조합 및 재배열될 수 있다.

Claims (21)

  1. 플레이리스트에서의 오디오 아이템들 사이에 전환(transition)하기 위한 방법으로서,
    오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하는 단계 - 상기 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 상기 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -; 및
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하는 단계
    를 포함하고,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분은 상기 제1 오디오 아이템과 상기 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분은 오버랩 지속기간(overlap duration)을 가지며,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하는 단계는:
    상기 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램(first spectrogram) 및 상기 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 단계;
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 상기 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관(cross-correlation)을 갖는 윈도우를 식별하는 단계;
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 주파수 대역 내의 주파수들의 진폭들이 상기 제1 스펙트로그램의 종료 부분에 걸친 상기 제1 스펙트로그램 내에서 감소하고 상기 주파수 대역 내의 주파수들의 진폭들이 상기 제2 스펙트로그램의 시작 부분에 걸친 상기 제2 스펙트로그램 내에서 증가하도록 상기 제1 스펙트로그램의 종료 부분 및 상기 제2 스펙트로그램의 시작 부분을 수정하는 단계; 및
    상기 제1 스펙트로그램의 수정된 종료 부분에 기초하여 상기 제1 오디오 아이템의 수정된 종료 부분을 포함하는 상기 제1 오디오 아이템의 수정된 버전을 생성하고, 상기 제2 스펙트로그램의 수정된 시작 부분에 기초하여 상기 제2 오디오 아이템의 수정된 시작 부분을 포함하는 상기 제2 오디오 아이템의 수정된 버전을 생성하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 스펙트로그램 및 상기 제2 스펙트로그램에 기초하여 상기 오버랩 지속기간을 식별하는 단계를 더 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 상기 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 높은 상호-상관을 갖는 윈도우를 식별하는 것은:
    상기 일련의 주파수 대역들에서의 가장 낮은 주파수 대역 내에서 상기 제1 스펙트로그램의 종료 부분과 상기 제2 스펙트로그램의 시작 부분의 상호-상관에 기초하여 상기 가장 낮은 주파수 대역에 대한 제1 윈도우를 식별하는 것; 및
    상기 가장 낮은 주파수 대역에 인접한 주파수 대역 내에서 상기 제1 스펙트로그램의 종료 부분과 상기 제2 스펙트로그램의 시작 부분의 상호-상관에 기초하여 상기 가장 낮은 주파수 대역에 인접한 주파수 대역에 대한 제2 윈도우를 식별하는 것
    을 포함하고,
    상기 제2 윈도우는 상기 제1 윈도우보다 더 짧은, 방법.
  4. 제3항에 있어서,
    상기 제2 윈도우는 상기 제1 윈도우와 오버랩되는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제2 오디오 아이템의 수정된 시작 부분과 중첩된 상기 제1 오디오 아이템의 수정된 종료 부분의 스펙트로그램의 위상들은, 상기 오버랩의 시작 부분에서는 상기 제1 오디오 아이템의 위상들과 매칭되고 상기 오버랩의 종료 부분에서는 상기 제2 오디오 아이템의 위상들과 매칭되는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하는 단계는, 상기 제1 오디오 아이템의 종료 부분 동안에는 상기 제1 오디오 아이템의 템포를 그리고 상기 제2 오디오 아이템의 시작 부분 동안에는 상기 제2 오디오 아이템의 템포를 수정하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 제1 오디오 아이템의 종료 부분 동안에는 상기 제1 오디오 아이템의 템포를 그리고 상기 제2 오디오 아이템의 시작 부분 동안에는 상기 제2 오디오 아이템의 템포를 수정하는 단계는, 상기 제1 오디오 아이템의 종료 부분 동안의 상기 제1 오디오 아이템의 템포가, 미리 결정된 임계치보다 더 많이 제2 노래의 시작 부분 동안의 상기 제2 오디오 아이템의 템포와 상이하다는 결정에 응답하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    사용자 디바이스에 의해 오디오 아이템들의 플레이리스트를 야기시키는 것은, 상기 오버랩 지속기간의 표시와 관련하여 상기 제1 오디오 아이템의 수정된 버전 및 상기 제2 오디오 아이템의 수정된 버전을 상기 사용자 디바이스에 송신하는 것을 포함하는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 오디오 아이템들의 플레이리스트의 식별자와 관련하여 상기 제1 오디오 아이템의 수정된 버전 및 상기 제2 오디오 아이템의 수정된 버전을 저장하는 단계를 더 포함하는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    사용자 디바이스로부터, 상기 오디오 아이템들의 플레이리스트를 제시하라는 요청을 수신하는 단계; 및
    상기 오디오 아이템들의 플레이리스트가 상기 사용자 디바이스에 의해 제시되게 하는 단계
    를 더 포함하고,
    상기 오디오 아이템들의 플레이리스트를 제시하는 것은, 상기 제1 오디오 아이템의 수정된 버전 및 상기 제2 오디오 아이템의 수정된 버전을 제시하는 것을 포함하고, 상기 제1 오디오 아이템의 수정된 버전의 수정된 종료 부분은, 상기 제2 오디오 아이템의 수정된 버전의 수정된 시작 부분과 동시에 플레이되는, 방법.
  11. 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 시스템으로서,
    상기 시스템은:
    메모리; 및
    하드웨어 프로세서
    를 포함하고,
    상기 하드웨어 프로세서는, 상기 메모리에서의 컴퓨터 실행가능 명령어들을 실행할 때:
    오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하고 - 상기 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 상기 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -;
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하도록
    구성되고,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분은 상기 제1 오디오 아이템과 상기 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분은 오버랩 지속기간을 가지며,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하는 것은:
    상기 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램 및 상기 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 것;
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 상기 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관을 갖는 윈도우를 식별하는 것;
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 주파수 대역 내의 주파수들의 진폭들이 상기 제1 스펙트로그램의 종료 부분에 걸친 상기 제1 스펙트로그램 내에서 감소하고 상기 주파수 대역 내의 주파수들의 진폭들이 상기 제2 스펙트로그램의 시작 부분에 걸친 상기 제2 스펙트로그램 내에서 증가하도록 상기 제1 스펙트로그램의 종료 부분 및 상기 제2 스펙트로그램의 시작 부분을 수정하는 것; 및
    상기 제1 스펙트로그램의 수정된 종료 부분에 기초하여 상기 제1 오디오 아이템의 수정된 종료 부분을 포함하는 상기 제1 오디오 아이템의 수정된 버전을 생성하고, 상기 제2 스펙트로그램의 수정된 시작 부분에 기초하여 상기 제2 오디오 아이템의 수정된 시작 부분을 포함하는 상기 제2 오디오 아이템의 수정된 버전을 생성하는 것
    을 포함하는, 시스템.
  12. 제11항에 있어서,
    상기 하드웨어 프로세서는 상기 제1 스펙트로그램 및 상기 제2 스펙트로그램에 기초하여 상기 오버랩 지속기간을 식별하도록 추가로 구성되는, 시스템.
  13. 제11항 또는 제12항에 있어서,
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 상기 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 높은 상호-상관을 갖는 윈도우를 식별하는 것은:
    상기 일련의 주파수 대역들에서의 가장 낮은 주파수 대역 내에서 상기 제1 스펙트로그램의 종료 부분과 상기 제2 스펙트로그램의 시작 부분의 상호-상관에 기초하여 상기 가장 낮은 주파수 대역에 대한 제1 윈도우를 식별하는 것; 및
    상기 가장 낮은 주파수 대역에 인접한 주파수 대역 내에서 상기 제1 스펙트로그램의 종료 부분과 상기 제2 스펙트로그램의 시작 부분의 상호-상관에 기초하여 상기 가장 낮은 주파수 대역에 인접한 주파수 대역에 대한 제2 윈도우를 식별하는 것
    을 포함하고,
    상기 제2 윈도우는 상기 제1 윈도우보다 더 짧은, 시스템.
  14. 제13항에 있어서,
    상기 제2 윈도우는 상기 제1 윈도우와 오버랩되는, 시스템.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 제2 오디오 아이템의 수정된 시작 부분과 중첩된 상기 제1 오디오 아이템의 수정된 종료 부분의 스펙트로그램의 위상들은, 상기 오버랩의 시작 부분에서는 상기 제1 오디오 아이템의 위상들과 매칭되고 상기 오버랩의 종료 부분에서는 상기 제2 오디오 아이템의 위상들과 매칭되는, 시스템.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하는 것은, 상기 제1 오디오 아이템의 종료 부분 동안에는 상기 제1 오디오 아이템의 템포를 그리고 상기 제2 오디오 아이템의 시작 부분 동안에는 상기 제2 오디오 아이템의 템포를 수정하는 것을 포함하는, 시스템.
  17. 제16항에 있어서,
    상기 제1 오디오 아이템의 종료 부분 동안에는 상기 제1 오디오 아이템의 템포를 그리고 상기 제2 오디오 아이템의 시작 부분 동안에는 상기 제2 오디오 아이템의 템포를 수정하는 것은, 상기 제1 오디오 아이템의 종료 부분 동안의 상기 제1 오디오 아이템의 템포가, 미리 결정된 임계치보다 더 많이 상기 제2 오디오 아이템의 시작 부분 동안의 상기 제2 오디오 아이템의 템포와 상이하다는 결정에 응답하는, 시스템.
  18. 제11항 내지 제17항 중 어느 한 항에 있어서,
    사용자 디바이스에 의해 오디오 아이템들의 플레이리스트를 야기시키는 것은, 상기 오버랩 지속기간의 표시와 관련하여 상기 제1 오디오 아이템의 수정된 버전 및 상기 제2 오디오 아이템의 수정된 버전을 상기 사용자 디바이스에 송신하는 것을 포함하는, 시스템.
  19. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 하드웨어 프로세서는 상기 오디오 아이템들의 플레이리스트의 식별자와 관련하여 상기 제1 오디오 아이템의 수정된 버전 및 상기 제2 오디오 아이템의 수정된 버전을 저장하도록 추가로 구성되는, 시스템.
  20. 제11항 내지 제19항 중 어느 한 항에 있어서,
    상기 하드웨어 프로세서는:
    사용자 디바이스로부터, 상기 오디오 아이템들의 플레이리스트를 제시하라는 요청을 수신하고;
    상기 오디오 아이템들의 플레이리스트가 상기 사용자 디바이스에 의해 제시되게 하도록
    추가로 구성되고,
    상기 오디오 아이템들의 플레이리스트를 제시하는 것은, 상기 제1 오디오 아이템의 수정된 버전 및 상기 제2 오디오 아이템의 수정된 버전을 제시하는 것을 포함하고, 상기 제1 오디오 아이템의 수정된 버전의 수정된 종료 부분은, 상기 제2 오디오 아이템의 수정된 버전의 수정된 시작 부분과 동시에 플레이되는, 시스템.
  21. 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 실행가능 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 플레이리스트들에서의 오디오 아이템들 사이에 전환하기 위한 방법을 수행하게 하고,
    상기 방법은:
    오디오 아이템들의 플레이리스트에서 오디오 아이템들의 시퀀스를 식별하는 단계 - 상기 오디오 아이템들의 시퀀스는, 제1 오디오 아이템 및 상기 제1 오디오 아이템에 후속하여 플레이되어야 하는 제2 오디오 아이템을 포함함 -; 및
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하는 단계
    를 포함하고,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분은 상기 제1 오디오 아이템과 상기 제2 오디오 아이템 사이에 전환하기 위해 동시에 플레이되어야 하고, 상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분은 오버랩 지속기간을 가지며,
    상기 제1 오디오 아이템의 종료 부분 및 상기 제2 오디오 아이템의 시작 부분을 수정하는 단계는:
    상기 제1 오디오 아이템의 종료 부분에 대응하는 제1 스펙트로그램 및 상기 제2 오디오 아이템의 시작 부분에 대응하는 제2 스펙트로그램을 생성하는 단계;
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 제1 오디오 아이템의 종료 부분 내의 제1 스펙트로그램 및 상기 제2 오디오 아이템의 시작 부분 내의 제2 스펙트로그램이 특정 상호-상관을 갖는 윈도우를 식별하는 단계;
    일련의 주파수 대역들에서의 각각의 주파수 대역에 대해, 상기 주파수 대역 내의 주파수들의 진폭들이 상기 제1 스펙트로그램의 종료 부분에 걸친 상기 제1 스펙트로그램 내에서 감소하고 상기 주파수 대역 내의 주파수들의 진폭들이 상기 제2 스펙트로그램의 시작 부분에 걸친 상기 제2 스펙트로그램 내에서 증가하도록 상기 제1 스펙트로그램의 종료 부분 및 상기 제2 스펙트로그램의 시작 부분을 수정하는 단계; 및
    상기 제1 스펙트로그램의 수정된 종료 부분에 기초하여 상기 제1 오디오 아이템의 수정된 종료 부분을 포함하는 상기 제1 오디오 아이템의 수정된 버전을 생성하고, 상기 제2 스펙트로그램의 수정된 시작 부분에 기초하여 상기 제2 오디오 아이템의 수정된 시작 부분을 포함하는 상기 제2 오디오 아이템의 수정된 버전을 생성하는 단계
    를 포함하는, 컴퓨터 판독가능 매체.
KR1020227022692A 2019-12-02 2019-12-02 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들 KR102653938B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247010612A KR20240046635A (ko) 2019-12-02 2019-12-02 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/063950 WO2021112813A1 (en) 2019-12-02 2019-12-02 Methods, systems, and media for seamless audio melding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247010612A Division KR20240046635A (ko) 2019-12-02 2019-12-02 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들

Publications (2)

Publication Number Publication Date
KR20220110796A true KR20220110796A (ko) 2022-08-09
KR102653938B1 KR102653938B1 (ko) 2024-04-03

Family

ID=68966090

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247010612A KR20240046635A (ko) 2019-12-02 2019-12-02 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들
KR1020227022692A KR102653938B1 (ko) 2019-12-02 2019-12-02 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020247010612A KR20240046635A (ko) 2019-12-02 2019-12-02 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들

Country Status (6)

Country Link
US (3) US11195553B2 (ko)
EP (1) EP4038610A1 (ko)
JP (2) JP7314414B2 (ko)
KR (2) KR20240046635A (ko)
CN (1) CN114746938A (ko)
WO (1) WO2021112813A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749073A (en) * 1996-03-15 1998-05-05 Interval Research Corporation System for automatically morphing audio information
US20080249644A1 (en) * 2007-04-06 2008-10-09 Tristan Jehan Method and apparatus for automatically segueing between audio tracks
US20180095715A1 (en) * 2016-09-30 2018-04-05 Spotify Ab Methods And Systems For Grouping Playlist Audio Items

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07220394A (ja) * 1994-01-25 1995-08-18 Sony Corp オーディオ編集方法
JPH08305393A (ja) * 1995-04-28 1996-11-22 Matsushita Electric Ind Co Ltd 再生装置
JP2976860B2 (ja) * 1995-09-13 1999-11-10 松下電器産業株式会社 再生装置
JP3654117B2 (ja) * 2000-03-13 2005-06-02 ヤマハ株式会社 時間軸方向における楽音波形信号の伸縮方法
US20030205124A1 (en) * 2002-05-01 2003-11-06 Foote Jonathan T. Method and system for retrieving and sequencing music by rhythmic similarity
EP1646035B1 (en) * 2004-10-05 2013-06-19 Sony Europe Limited Mapped meta-data sound-playback device and audio-sampling/sample processing system useable therewith
US7842874B2 (en) 2006-06-15 2010-11-30 Massachusetts Institute Of Technology Creating music by concatenative synthesis
EP3011561B1 (en) * 2013-06-21 2017-05-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for improved signal fade out in different domains during error concealment
JP2015206874A (ja) * 2014-04-18 2015-11-19 富士通株式会社 信号処理装置、信号処理方法、及び、プログラム
US10417279B1 (en) * 2015-12-07 2019-09-17 Amazon Technologies, Inc. Customized cross fades for continuous and seamless playback
CN110870006B (zh) * 2017-04-28 2023-09-22 Dts公司 对音频信号进行编码的方法以及音频编码器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749073A (en) * 1996-03-15 1998-05-05 Interval Research Corporation System for automatically morphing audio information
US20080249644A1 (en) * 2007-04-06 2008-10-09 Tristan Jehan Method and apparatus for automatically segueing between audio tracks
US20180095715A1 (en) * 2016-09-30 2018-04-05 Spotify Ab Methods And Systems For Grouping Playlist Audio Items

Also Published As

Publication number Publication date
JP2023153801A (ja) 2023-10-18
US11195553B2 (en) 2021-12-07
KR102653938B1 (ko) 2024-04-03
CN114746938A (zh) 2022-07-12
US11670338B2 (en) 2023-06-06
KR20240046635A (ko) 2024-04-09
US20220093130A1 (en) 2022-03-24
EP4038610A1 (en) 2022-08-10
US20230307003A1 (en) 2023-09-28
WO2021112813A1 (en) 2021-06-10
US20210166731A1 (en) 2021-06-03
JP7314414B2 (ja) 2023-07-25
JP2022550218A (ja) 2022-11-30

Similar Documents

Publication Publication Date Title
JP5318095B2 (ja) 電子装置を用いて複数のソングを自動的にビートミックスするシステム及び方法
US9972297B2 (en) Sound processing device, sound data selecting method and sound data selecting program
US8415549B2 (en) Time compression/expansion of selected audio segments in an audio file
JPWO2007029479A1 (ja) 記録再生装置、記録再生方法、記録再生プログラムおよびコンピュータに読み取り可能な記録媒体
US9336823B2 (en) Playing audio in trick-modes
CN103514867B (zh) 使用音频波形数据的自动演奏技术
KR102653938B1 (ko) 끊김없는 오디오 혼합을 위한 방법들, 시스템들 및 매체들
CN110574107B (zh) 数据格式
JP6171393B2 (ja) 音響合成装置および音響合成方法
JPWO2018034168A1 (ja) 音声処理装置および方法
Covell et al. Seamless Audio Melding: Using Seam Carving with Music Playlists
KR101152616B1 (ko) 오디오 신호 배속 재생 방법 및 그 장치
CN117337560A (zh) 视频混音方法
JP2012173691A (ja) 楽曲再生制御装置、楽曲再生制御方法およびコンピュータプログラム
JP2012185356A (ja) 音声合成装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right