KR20180103639A - 상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석 - Google Patents

상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석 Download PDF

Info

Publication number
KR20180103639A
KR20180103639A KR1020170030914A KR20170030914A KR20180103639A KR 20180103639 A KR20180103639 A KR 20180103639A KR 1020170030914 A KR1020170030914 A KR 1020170030914A KR 20170030914 A KR20170030914 A KR 20170030914A KR 20180103639 A KR20180103639 A KR 20180103639A
Authority
KR
South Korea
Prior art keywords
music sequence
music
relative
information
sequence
Prior art date
Application number
KR1020170030914A
Other languages
English (en)
Inventor
가기환
안영기
최병익
Original Assignee
주식회사 쿨잼컴퍼니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 쿨잼컴퍼니 filed Critical 주식회사 쿨잼컴퍼니
Priority to KR1020170030914A priority Critical patent/KR20180103639A/ko
Publication of KR20180103639A publication Critical patent/KR20180103639A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/12Speech classification or search using dynamic programming techniques, e.g. dynamic time warping [DTW]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/10Speech classification or search using distance or distortion measures between unknown speech and reference templates
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

본 명세서에 개시된 음악 시퀀스 비교 방법은 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득하는 단계; 시간에 따라서 연속적으로 변하는 피치들을 포함하는 제2 음악 시퀀스를 획득하는 단계; 상기 제2 음악 시퀀스에 대하여 상대적인 음 높이 및 음 길이 중에서 적어도 하나를 가지는 제2 상대 음악 시퀀스를 생성하는 단계; 및 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함할 수 있다.

Description

상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석{SIMILARITY ANALYSIS OF MUSIC SEQUENCES BASED ON A RELATIVE SIMILARITY}
본 명세서는 상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석에 관한 것이다.
모바일 단말은 다양한 기능을 수행할 수 있도록 구성될 수 있다. 그러한 다양한 기능들의 예로 데이터 및 음성 통신 기능, 카메라를 통해 사진이나 동영상을 촬영하는 기능, 음성 저장 기능, 스피커 시스템을 통한 음악 파일의 재생 기능, 이미지나 비디오의 디스플레이 기능 등이 있다.
일부 모바일 단말은 게임을 실행할 수 있는 추가적 기능을 포함하고, 다른 일부 모바일 단말은 멀티미디어 기기로서 구현되기도 한다. 또한, 모바일 단말은 악기를 연주하는 기능을 제공하기도 한다.
본 명세서는 이산적인 시퀀스와 연속적인 시퀀스의 유사도를 획득하는 방법을 제공한다.
예시적인 음악 시퀀스 비교 방법은 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득하는 단계; 시간에 따라서 연속적으로 변하는 피치들을 포함하는 제2 음악 시퀀스를 획득하는 단계; 상기 제2 음악 시퀀스에 대하여 상대적인 음 높이 및 음 길이 중에서 적어도 하나를 가지는 제2 상대 음악 시퀀스를 생성하는 단계; 및 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함할 수 있다.
또한, 상기 제2 상대 음악 시퀀스를 생성하는 단계는, 위치 정보를 기초로 상기 제2 음악 시퀀스 중에서 비교에 사용되는 제2 부분 음악 시퀀스를 추출하는 단계를 포함하고, 상기 위치 정보는 상기 제2 부분 음악 시퀀스가 시작되는 위치를 지시하는 시작 정보 및 상기 제2 부분 음악 시퀀스가 종료되는 위치를 지시하는 종료 정보를 포함할 수 있다.
또한, 상기 제2 상대 음악 시퀀스를 생성하는 단계는, 조정 정보를 기초로 제2 부분 음악 시퀀스를 제2 상대 음악 시퀀스로 조정하는 단계를 포함하고, 상기 조정 정보는 상기 제2 부분 음악 시퀀스의 음의 피치를 조정하는 피치 조정 정보, 및 상기 제2 부분 음악 시퀀스의 음의 길이를 조정하는 길이 조정 정보 중에서 적어도 하나를 포함할 수 있다.
또한, 상기 상대적인 유사도를 획득하는 단계는, 상기 제1 음악 시퀀스 및 상기 제2 상대 음악 시퀀스를 언더샘플링하는 단계를 포함할 수 있다.
또한, 상기 상대적인 유사도를 획득하는 단계는, 언더샘플링된 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스를 동기화하는 단계를 포함할 수 있다.
또한, 상기 상대적인 유사도를 획득하는 단계는, 상기 동기화된 제1 음악 시퀀스 및 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함할 수 있다.
또한, 상기 상대적인 유사도를 획득하는 단계는, 상기 제2 상대 음악 시퀀스에 포함되는 피치들의 통계 값을 포함하는 노트 정보를 획득하는 단계; 및 상기 노트 정보를 기초로 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함할 수 있다.
또한, 상기 노트 정보를 획득하는 단계는, 상기 제2 상대 음악 시퀀스 내에서 노트에 대응되는 위치 정보 및 듀레이션을 결정하는 단계; 상기 제2 상대 음악 시퀀스의 듀레이션 내에 포함되는 상기 피치들을 대표하는 적어도 하나의 피치 성분 정보를 획득하는 단계; 및 상기 듀레이션 내에서 상기 적어도 하나의 피치 성분 정보의 통계 값을 지시하는 적어도 하나의 피치 성분 통계 정보를 생성하는 단계를 포함할 수 있다.
또한, 상기 상대적인 유사도를 획득하는 단계는, 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스를 동기화하는 단계; 상기 제1 음악 시퀀스의 피치 정보와 상기 제2 상대 음악 시퀀스의 상기 피치 성분 정보를 매칭하는 단계; 상기 매칭된 피치 성분 정보에 대응되는 피치 성분 통계 정보를 결정하는 단계; 및 상기 결정된 피치 성분 통계 정보를 기초로 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함할 수 있다.
예시적인 음악 시퀀스 비교 장치는 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득하는 통신부; 사용자로부터 음악 신호를 수신하는 사용자 입력부; 및 상기 음악 신호를 기초로 시간에 따라서 연속적으로 변하는 상기 피치들을 포함하는 제2 음악 시퀀스를 생성하고, 상기 제2 음악 시퀀스에 대하여 상대적인 음악 정보를 가지는 제2 상대 음악 시퀀스를 생성하고, 및 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 제어부를 포함할 수 있다.
본 명세서에 개시된 기술은 이산적인 음악 시퀀스와 연속적인 음악 시퀀스의 상대적인 유사도를 제공할 수 있다.
도 1은 예시적인 전자 기기가 사용자로부터 허밍 입력을 수신하는 동작을 설명하기 위한 도면이다.
도 2는 예시적인 음악 시퀀스 비교 방법을 나타내는 도면이다.
도 3은 예시적인 음악 시퀀스를 나타낸 도면이다.
도 4는 예시적인 제2 음악 시퀀스를 획득하는 방법을 나타낸 도면이다.
도 5는 예시적인 피치 주파수를 결정하는 방법을 나타낸 도면이다.
도 6은 예시적인 언더샘플링을 나타내는 도면이다.
도 7은 예시적인 후보 피치 주파수 영역을 나타내는 도면이다.
도 8은 예시적인 과거 프레임의 피치 주파수를 고려하여, 현재 프레임의 피치 주파수를 결정하는 방법을 나타내는 도면이다.
도 9는 예시적인 제2 상대 음악 시퀀스를 생성하는 방법을 나타내는 도면이다.
도 10은 예시적인 제2 상대 음악 시퀀스를 나타내는 도면이다.
도 11은 예시적인 상대적인 유사도를 획득하는 방법을 나타내는 도면이다.
도 12는 예시적인 언더샘플링을 나타내는 도면이다.
도 13은 예시적인 동기화를 나타내는 도면이다.
도 14는 예시적인 상대적인 유사도를 나타내는 도면이다.
도 15는 예시적인 상대적인 유사도를 획득하는 방법을 나타내는 도면이다.
도 16은 예시적인 노트 정보를 획득하는 방법을 나타낸 도면이다.
도 17은 예시적인 노트 정보를 나타낸 도면이다.
도 18은 예시적인 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 방법을 나타내는 도면이다.
도 19는 적어도 하나의 구간으로 분할된 예시적인 제1 음악 시퀀스 및 제2 상대 음악 시퀀스를 나타낸 도면이다.
도 20은 예시적인 노트 정보를 나타낸 도면이다.
도 21은 예시적인 제1 음악 시퀀스에 대응되는 악보 및 예시적인 피치 성분 통계 정보를 나타낸 도면이다.
도 22는 예시적인 음악 시퀀스 비교 방법을 나타낸 도면이다.
도 23은 예시적인 전자 기기의 구성을 나타낸 도면이다.
도 24는 예시적인 전자 시스템을 나타낸 도면이다.
도 25는 예시적인 전자 기기를 나타내는 블록도이다.
도 26은 예시적인 프로그램 모듈의 블록도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥 상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 기술의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 예시적인 전자 기기가 사용자로부터 허밍 입력을 수신하는 동작을 설명하기 위한 도면이다. 도 1을 참조하면, 음악 시퀀스 비교 시스템은 전자 기기(110) 및 서버(150)를 포함할 수 있다.
전자 기기(110)는 오디오 신호(audio signal)를 수신할 수 있다. 전자 기기(110)가 수신할 수 있는 오디오 신호는 사람(human), 악기(musical instrument), 장치(device) 등 다양한 사물에 의하여 발생하는 소리(sound)를 구성하는 신호의 일부이다. 전자 기기(110)가 수신하는 오디오 신호는 음악 신호(musical signal)를 포함할 수 있다. 일반적으로 음악(music)은 일정 기간 동안 안정적인 주파수를 가지는 소리로 구성되며, 이는 시간에 따라 변하는 다양한 음악 신호(music signals)를 포함한다. 음악 신호는 하나 이상의 주파수들을 포함하도록 구성될 수 있으며, 일정 시간 동안의 음악 신호를 통하여 음악으로 표현될 수 있다. 즉, 전자 기기(110)는 음악의 형태로 표현될 수 있는 오디오 신호를 수신할 수 있다.
예컨대, 전자 기기(110)는 사용자 입력부를 통해 사용자로부터 발화되는 음악 신호(130)(예컨대, 노래 부르는 목소리, 허밍 등)를 수신할 수 있다. 전자 기기(110)의 사용자 입력부는 사용자의 음악 신호를 포함한 오디오 신호를 수신할 수 있는 오디오 모듈의 형태로 구현될 수 있다.
전자 기기(110)는, 수신되는 음악 신호(130)를 분석하여, 음악 신호(130)에 포함된 피치 주파수(pitch frequency)들을 검출할 수 있다. 음악 신호의 피치(pitch)는 음악 신호를 구성하는 음의 높고 낮음을 나타내는 정량적인 표현으로서, 주파수에 의해 결정된다. 피치 주파수는 음악 신호의 높이를 나타내는 주파수를 말하며, 본 명세서에 개시된 음향 분석에 따르면 하나 이상의 주파수의 통계적인 값의 형태로 표현될 수 있다.
어떤 실시 예들에 따르면, 전자 기기(110)는 수신되는 음악 신호(130)를 실시간으로 분석함으로써 시간에 따른 피치 주파수들을 검출할 수 있다. 전자 기기(110)는 피치 주파수들을 연결한 연속적인 음악 시퀀스(music sequence)(112)를 실시간으로 화면에 표시할 수 있다. 실시간으로 표시한다는 것은 음악 신호의 일정 단위에 대한 분석이 완료된 후 표시하는 것을 의미할 수 있다. 어떤 실시 예에 따르면, 전자 기기(110)는 음악 신호를 프레임 단위로 데이터를 분석 처리하여, 처리가 완료된 프레임에 관한 정보를 처리 완료 시, 후속 음악 신호를 수신하는 과정에도 바로 표시할 수 있다. 이때, 사용자는 화면에 표시되는 연속적인 음악 시퀀스(112)를 확인함으로써, 자신이 떠올린 악상대로 허밍하고 있는 것인지 판단할 수 있다.
한편, 본 명세서에 개시된 실시 예를 따르는 전자 기기(110)는 복수의 음악 또는 음악 정보를 상호 비교할 수 있다. 비교될 음악 정보의 일 예는 전자 기기(110)의 사용자 입력부를 통하여 수신된 음악 신호일 수 있다. 비교될 음악 정보의 다른 예는 특정 포맷으로 표현된 음악 데이터 일 수 있다. 예를 들어, 비교 될 음악 데이터는 MIDI(Musical Instrument Digital Interface), OSC(Open Sound Control), WAVEFORM 등의 연주 파일 형태, GUIDO, MusicXML(Music eXtensible Markup Language), MidiXML 등의 음악 인코딩 형태, FinaleTM, CakeWalk, Magic Score 등의 악보 데이터 형태로 표현될 수 있으며, 여기 열거된 표현 방식에 제한되지 아니한다.
전자 기기(110)가 비교할 대상이 되는 음악 정보는 서로 다른 특성을 가질 수 있다. 이미 정형화된 포맷으로 표현된 음악 데이터가 렌더링 되는 경우 해당 포맷에 따라 동일한 음표로 해석되므로, 해석된 음표를 바탕으로 한 단순 비교가 가능하다. 다만, 전자 기기(110)가 오디오 신호(audio signal) 형태로 수신한 음악 신호의 경우 동일한 악상에 대하여 실연(performance)이 이루어진 경우라 할지라도 실연자의 음악적 표현 능력 또는 주변 상황에 따라 매번 다른 음표로 해석될 수 있으며, 이 경우 음악 노트간 단순 비교는 정확성이 다소 떨어질 수 있어 이를 보완하는 방법이 필요하다.
한편, 어떤 실시 예에서, 전자 기기(110)는 버튼(114)을 제공할 수 있다. 사용자가 버튼(114)을 선택하는 경우, 전자 기기(110)는 사용자 입력부를 통해 입력되는 음악 신호(130)를 저장하고, 음악 신호(130)와 동일 및/또는 유사한 음악을 서버(150)에서 검색할 수 있다.
예를 들어, 전자 기기(110)는 저장부 및/또는 서버(150)로부터 디지털 신호로 변환된 음악 시퀀스를 획득할 수 있다. 전자 기기(110)는 사용자로부터 수신한 음악 신호(130)와 서버로부터 수신한 음악 시퀀스를 비교하고, 상대적인 유사도를 계산할 수 있다. 구체적으로, 전자 기기(110)는 서버(150)로부터 수신한 음악 시퀀스에 대응되는 이산적인 제1 음악 시퀀스와 사용자로부터 수신한 음악 신호(130)에 대응되는 연속적인 제2 음악 시퀀스(112)를 비교하고, 상대적인 유사도를 계산할 수 있다.
또한, 전자 기기(110)는 사용자의 음악 신호(130)와 동일 및/또는 유사한 음악에 대한 정보를 디스플레이 할 수 있다.
전자 기기(110)는 다양한 장치 형태로 구현될 수 있다. 이하에서는, 설명의 편의상 전자 기기(110)가 모바일 단말인 경우를 예로 들어 설명하기로 한다.
도 2는 예시적인 음악 시퀀스 비교 방법을 나타내는 도면이다. 본 명세서에 개시된 실시 예를 따르는 전자 기기는 이산적으로 변하는 피치를 포함하는 음악 시퀀스와 연속적으로 변하는 피치를 포함하는 음악 시퀀스의 유사도를 기초로 음악 시퀀스 사이의 유사성을 판단할 수 있다.
전자 기기는, 제어부 및/또는 통신부를 이용하여, 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득할 수 있다(S210).
전자 기기가 획득할 수 있는 제1 음악 시퀀스는 비교 대상이 되는 음악 정보로서, 시간에 따라서 이산적으로 변하는 피치들을 포함하도록 구성될 수 있다. 제1 음악 시퀀스는 음악 정보를 나타내는 다양한 포맷의 데이터로 표현될 수 있다. 어떤 실시 예에서, 제1 음악 시퀀스는 전자 악기끼리 디지털 신호를 주고 받기 위해 각 신호를 규칙화한 MIDI(Musical Instrument Digital Interface) 형식의 데이터를 포함할 수 있다. 다른 실시 예에서, 제1 음악 시퀀스는 OSC(Open Sound Control) 형식의 데이터 또는 그 변형을 포함할 수 있다. 또 다른 실시 예에서, 제1 음악 시퀀스는 웨이브폼(waveform) 형식의 데이터를 포함할 수 있다. 또 다른 실시 예에서, 제1 음악 시퀀스는 GUIDO, MusicXML(Music eXtensible Markup Language), MidiXML 등 다양한 음악 인코딩 방식의 데이터를 포함할 수 있다. 또 다른 실시 예에서 제1 음악 시퀀스는 다양한 형태의 악보 데이터 저장 형태, 예를 들어, FinaleTM, CakeWalk, Magic Score 등의 포맷으로 표현된 데이터를 포함할 수 있다.
또한, 제1 음악 시퀀스는 노트 정보를 포함할 수 있다. 노트 정보는 노트의 위치 정보, 피치 정보, 및/또는 듀레이션 중에서 적어도 하나를 포함할 수 있다.
또한, 전자 기기는, 제어부 및/또는 사용자 입력부를 이용하여, 시간에 따라서 연속적으로 변하는 피치들을 포함하는 제2 음악 시퀀스를 획득할 수 있다(S220).
전자 기기는 사용자로부터 음악 신호를 수신할 수 있다. 예를 들어, 음악 신호는 음성 신호, 계이름, 허밍 신호, 연속적 음악 시퀀스를 그리는 터치 입력, 터치 스크린을 두드리는 터치 입력, 및/또는 모션 입력을 포함할 수 있다. 이하에서는 허밍 신호를 중심으로 설명한다.
전자 기기는 음악 신호에서 검출되는 피치 주파수를 기초로 음악 신호에 대응되는 연속적인 제2 음악 시퀀스를 생성할 수 있다.
예를 들어, 전자 기기는 사용자 입력부로부터 샘플링되어 입력된 음악 신호를 언더샘플링하고, 언더샘플링된 음악 신호를 빠르게 스캔하여 후보 피치 주파수 영역을 검출할 수 있다. 또한, 전자 기기는 언더샘플링 되기 전의 음악 신호에서 후보 피치 주파수 영역을 자세히 스캔하여 피치 주파수를 검출할 수 있다. 또한, 전자 기기는 이전 프레임의 피치 주파수에 관한 정보를 고려하여 현재 프레임의 피치 주파수를 결정할 수도 있다. 또한, 전자 기기는 각각의 프레임에서 검출된 피치 주파수들을 연결하여 사용자로부터 입력된 음악 신호에 대응하는 연속적인 제2 음악 시퀀스를 생성할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 제2 음악 시퀀스에 대하여 상대적인 음 높이 및 음 길이 중에서 적어도 하나를 가지는 제2 상대 음악 시퀀스를 생성할 수 있다(S230).
전자 기기는 제2 음악 시퀀스를 제1 음악 시퀀스와 비교하기 위해서, 제2 음악 시퀀스를 제1 음악 시퀀스와 비교 가능한 모양으로 조정할 수 있다. 조정된 제2 음악 시퀀스를 제2 상대 음악 시퀀스라고 지칭할 수 있다.
예를 들어, 전자 기기는 제2 음악 시퀀스를 피치 방향으로 음의 높이를 조정할 수 있고, 및/또는 시간 방향으로 음의 길이를 조정할 수 있다. 즉, 전자 기기는 제2 음악 시퀀스의 기준 음, 박자(time, meter), 및/또는 템포(tempo)등을 조정할 수 있다. 박자는 한 마디 안에서 특정 음표가 차지하는 시간을 지시할 수 있다. 템포는 곡 전체의 빠르기를 지시할 수 있다.
제2 상대 음악 시퀀스는 대응되는 제2 음악 시퀀스에 대하여 상대적인 음 높이 및/또는 상대적인 음 길이를 가질 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다(S240).
예를 들어, 전자 기기는 제1 음악 시퀀스 및 제2 상대 음악 시퀀스를 언더샘플링할 수 있다. 그리고 나서, 전자 기기는 언더샘플링된 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 동기화할 수 있다. 그리고 나서, 전자 기기는 동기화된 제1 음악 시퀀스 및 제2 상대 음악 시퀀스의 상대적인 유사도를 획득할 수 있다.
또한, 전자 기기는 제2 상대 음악 시퀀스에 포함되는 피치들의 통계 값을 포함하는 노트 정보를 획득할 수 있다. 그리고 나서, 전자 기기는 노트 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
또한, 전자 기기는, 디스플레이를 이용하여, 유사도를 기초로 사용자의 음악 신호와 동일 및/또는 유사한 음악에 대한 정보를 디스플레이 할 수 있다.
전자 기기는 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)와 동일 및/또는 유사한 제1 음악 시퀀스를 저장부 및/또는 서버에서 검색하고, 검색된 제1 음악 시퀀스에 대한 정보를 디스플레이할 수 있다. 제2 상대 음악 시퀀스는 제2 음악 시퀀스와 동일 및/또는 유사하므로, 제2 상대 음악 시퀀스와 제1 음악 시퀀스가 동일 및/또는 유사하면, 제2 음악 시퀀스와 제1 음악 시퀀스가 동일 및/또는 유사하다고 볼 수 있다.
예를 들어, 검색된 제1 음악 시퀀스에 대한 정보는 제목, 박자, 음계, 음표, 악보, 코드, 음악 데이터가 저장된 위치, 작곡가, 작사자, 음악 데이터에서 동일 및/또는 유사한 부분의 위치, 및/또는 유사도를 포함할 수 있다.
도 3은 예시적인 음악 시퀀스를 나타낸 도면이다.
도 3(a)를 참조하면, 저장부 및/또는 서버로부터 획득된 특정 음악에 대응되는 이산적인 제1 음악 시퀀스가 나타나 있다. 예를 들어, 제1 음악 시퀀스는 특정 음악에 대한 노트 정보를 포함하고, 노트 정보는 시간에 따른 피치 정보 및 듀레이션 정보를 포함할 수 있다. 피치 정보는 음 높이를 지시하고, 듀레이션 정보는 음 길이를 지시할 수 있다. 피치 정보는 주파수 및/또는 MIDI 번호를 포함할 수 있다.
도 3(b)를 참조하면, 음의 높이와 MIDI 번호의 상관 관계를 나타내는 테이블이 나타나 있다. 예를 들어, 4 옥타브의 "C(도)"의 MIDI 번호는 '60'일 수 있다.
도 3(c)를 참조하면, 사용자로부터 수신된 음악 신호에 대응되는 연속적인 제2 음악 시퀀스가 나타나 있다.
전자 기기는 사용자로부터 음악 신호를 수신하고, 음악 신호에서 검출되는 피치 주파수를 기초로 음악 신호에 대응되는 연속적인 제2 음악 시퀀스를 생성할 수 있다. 예를 들어, 제2 음악 시퀀스는 피치 시퀀스(pitch sequence)로 표현될 수 있다.
또한, 전자 기기는 피치 주파수에 대응되는 MIDI 번호를 기초로 연속적인 제2 음악 시퀀스를 생성 및/또는 디스플레이할 수 있다.
도 4는 예시적인 제2 음악 시퀀스를 획득하는 방법을 나타낸 도면이다.
전자 기기는, 사용자 입력부를 이용하여, 사용자로부터 음악 신호를 수신할 수 있다(S410). 사용자로부터 입력되는 음악 신호는, 사용자의 머리 속에 떠오르는 악상 또는 음악 시퀀스에 관한 것일 수 있다. 예를 들어, 전자 기기는 사용자의 음성 입력을 통해 음악 신호를 수신할 수 있다. 또한, 전자 기기는 사용자로부터 발화되는 허밍 신호를 사용자 입력부를 통해 감지할 수 있다. 또한, 전자 기기는 사용자로부터 발화되는 계이름(예컨대, 도레미파솔라...)을 감지할 수도 있다.
한편, 전자 기기는 사용자의 터치 입력을 기초로 음악 신호를 수신할 수 있다. 예를 들어, 터치 입력은 터치 패드를 두드리는 터치 입력 및/또는 음악 시퀀스를 그리는 터치 입력을 포함할 수 있다. 전자 기기는 터치 입력을 기초로 12음계에 따라 연속적인 제2 음악 시퀀스를 생성할 수 있다.
명세서 전체에서 "터치 입력"이란 사용자가 전자 기기를 제어하기 위해 터치 스크린에 행하는 제스처 등을 의미할 수 있다. 예를 들어, 본 명세서에서 기술되는 터치 입력은 탭, 터치&홀드, 더블 탭, 드래그, 패닝, 플릭, 및/또는 드래그 앤드 드롭 등을 포함할 수 있다.
한편, 전자 기기는 사용자의 모션 입력을 통해 음악 신호를 수신할 수도 있다. 예를 들어, 모션 입력은 공중을 두드리는 모션 입력 및/또는 음악 시퀀스를 그리는 모션 입력을 포함할 수 있다. 전자 기기는 모션 입력을 기초로 연속적인 제2 음악 시퀀스를 생성할 수 있다.
또한, 전자 기기는, 이미지 센서 및/또는 깊이 센서를 이용하여, 사용자가 공중에서 연속적인 음악 시퀀스를 그리는 모션 입력을 감지할 수도 있다.
예를 들어, 이미지 센서는 입력 도구의 움직임을 측정함으로써, 연속적인 제2 음악 시퀀스를 그리는 모션 입력을 감지할 수 있다. 여기서, 입력 도구는 펜, 손가락, 지휘봉, 막대기 등일 수 있으나, 이에 한정되는 것은 아니다.
예를 들어, 깊이 센서는 입력 도구의 깊이 값을 측정함으로써, 연속적인 제2 음악 시퀀스를 그리는 제스처를 감지할 수 있다. 깊이 값은 깊이 센서로부터 특정 객체까지의 거리에 대응할 수 있다. 따라서, 깊이 센서로부터 특정 객체까지의 거리가 멀수록 깊이 값이 커질 수 있다.
예를 들어, 깊이 센서는 다양한 방식으로 입력 도구의 깊이 값을 획득할 수 있다. 깊이 센서는 TOF(Time of flight) 방식, 스테레오스코프 비전(stereoscopic vision) 방식, 구조화 광 패턴(structured light pattern) 방식 중 적어도 하나의 방식을 이용하여 깊이 값을 측정할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 음악 신호를 기초로 제2 음악 시퀀스를 생성할 수 있다(S420).
또한, 전자 기기는 음악 신호에서 검출되는 피치 주파수들을 기초로 음악 신호에 대응되는 연속적인 제2 음악 시퀀스를 생성할 수 있다.
예를 들어, 전자 기기는, 사용자 입력부로부터 샘플링되어 입력된 음악 신호(예컨대, PCM data)를 언더샘플링하고, 언더샘플링된 음악 신호를 빠르게 스캔하여, 후보 피치 주파수 영역을 검출할 수 있다. 그리고 전자 기기는, 언더샘플링 되기 전의 음악 신호에서, 후보 피치 주파수 영역을 자세히 스캔하여, 피치 주파수를 검출할 수 있다. 피치 주파수는 기본 주파수로 표현될 수도 있다.
본 명세서에서, 언더샘플링한다는 것은, 샘플링 레이트(sampling rate)를 낮추는 것 또는 프레임 당 샘플 수를 줄이는 것을 의미할 수 있다. 샘플링 레이트(sampling rate)는 샘플링의 정교함에 대한 주파수(Frequency)를 의미하며, 초당 샘플을 수치로 표현한 것이다.
예를 들어, 전자 기기는, 시간 영역(time domain)의 음악 신호를 언더샘플링하고, 고속 푸리에 변환(FFT, fast Fourier transform) 등을 이용하여, 언더샘플링된 시간 영역의 음악 신호를 주파수 신호로 변환할 수 있다. 언더샘플링된 시간 영역의 음악 신호를 주파수 신호로 변환할 경우, 처리 속도는 빨리지나, 주파수 분해능(frequency resolution)이 낮아지므로, 주파수 영역(frequency domain)에서는 정확한 피치 주파수를 검출하기 어렵다. 따라서, 전자 기기는, 주파수 영역에서 후보 피치 주파수 영역(range)을 검출하게 된다. 이때, 후보 피치 주파수 영역은 후보 피치 주파수(f0) ± 주파수 분해능(frequency resolution)일 수 있으나, 이에 한정되는 것은 아니다. 한편, 후보 피치 주파수는 프레임 당 하나일 수도 있고, 복수 개일 수도 있다.
전자 기기는, 주파수 영역에서 검출된 후보 피치 주파수 영역에 대응하는 주기(T) 구간(range)에서의 자기 상관 계수들을 언더샘플링되기 전의 음악 신호를 이용하여 산출할 수 있다. 그리고 전자 기기는 가장 큰 자기 상관 계수를 갖는 주기(T)에 대응하는 주파수(f=1/T)를 피치 주파수로 검출할 수 있다.
전자 기기는, 언더샘플링되기 전의 시간 영역에서의 음악 신호를 이용하여, 후보 피치 주파수 영역에 대응하는 일정 범위에서 자기 상관 계수를 구하게 되므로, 빠르고 정확하게 피치 주파수를 검출할 수 있다.
예를 들어, 전자 기기는, FFT를 수행하지 않고, 시간 영역의 음악 신호만을 이용하여, 피치 주파수를 검출할 수도 있다. 예를 들어, 전자 기기는, 시간 영역(time domain)의 음악 신호를 언더샘플링하고, 언더샘플링된 시간 영역의 음악 신호에서 자기 상관 계수를 구함으로써, 후보 피치 영역을 검출 할 수 있다. 예를 들어, T=3.3ms에서 자기 상관 계수가 가장 큰 경우, 후보 피치 영역은 '3.3ms ± 0.18 (즉, 3.12ms ~ 3.48ms)'일 수 있다.
전자 기기는, 언더샘플링되기 전의 음악 신호를 이용하여 후보 피치 영역(예컨대, 3.13ms ~ 3.48ms)에서의 자기 상관 계수들을 다시 산출할 수 있다. 그리고 전자 기기는 가장 큰 자기 상관 계수를 갖는 주기(T)(예컨대, 3.33ms)를 검출할 수 있다. 이때, 전자 기기는, 검출된 주기(T)(예컨대, 3.33ms)에 대응하는 주파수(예컨대, 300.3 Hz)를 피치 주파수로 결정할 수 있다.
예를 들어, 전자 기기는, 이전 프레임의 피치 주파수에 관한 정보를 고려하여, 현재 프레임의 피치 주파수를 결정할 수도 있다. 예를 들어, 이전 프레임의 피치 주파수(f0)가 300Hz인 경우, 전자 기기는 현재 프레임의 피치 주파수를 검출하기 위해, 300 Hz 주변(예컨대, 300 ± 16 Hz)을 우선 스캔해 볼 수 있다.
예를 들어, 전자 기기는, 각각의 프레임에서 검출된 피치 주파수들을 연결하여, 사용자로부터 입력된 음악 신호(예컨대, 허밍 신호)에 대응하는 연속적인 제2 음악 시퀀스를 생성할 수 있다.
도 5는 예시적인 피치 주파수를 결정하는 방법을 나타낸 도면이다.
전자 기기는 원본의 제 n 프레임에 대한 언더샘플링을 수행할 수 있다(S510).
이때, n은 1, 2, 3, ... 등의 정수일 수 있으며, 원본의 제 n 프레임은 시간 영역(time domain)의 음악 신호(PCM 데이터)일 수 있다.
예를 들어, 사용자로부터 입력된 시간 영역의 음악 신호는 복수의 프레임으로 구별될 수 있으며, 전자 기기는 복수의 프레임 각각에 대해 순차적으로 언더샘플링을 수행할 수 있다.
또한, 전자 기기는 언더샘플링된 제 n 프레임을 주파수 신호로 변환할 수 있다(S520).
예를 들어, 전자 기기는 언더샘플링된 제 n 프레임에 대한 고속 푸리에 변환(FFT, fast Fourier transform)을 진행할 수 있다. 이때, 전자 기기는, 처리 속도를 높이기 위해, 언더샘플링된 제 n 프레임을 중첩하여 FFT를 진행할 수 있다. 예를 들어, 제 n 프레임의 사이즈가 128 ms이고, 샘플 수가 1024 개인 경우, 전자 기기는, 프레임 별로 4번씩 중첩(overlapping)하여, FFT를 진행할 수 있다.
이때, 언더샘플링된 데이터에 대한 FFT를 진행하므로, 처리 속도는 빨라지는 반면 주파수 분해능(Frequency resolution)은 낮아질 수밖에 없다. 예를 들어, 샘플링 레이트가 8000Hz인 1024 샘플들을 FFT할 경우, 주파수 분해능은 아래와 같이 '15.625Hz/bin' 정도밖에 되지 않을 수 있다.
Figure pat00001
Figure pat00002
또한, 전자 기기는, 주파수 신호를 분석하여, 후보 피치 주파수 영역을 검출할 수 있다(S530).
예를 들어, 전자 기기는 주파수 신호에서 가장 큰 진폭(amplitude)을 갖는 주파수를 후보 피치 주파수로 검출할 수도 있다. 또한, 전자 기기는 가장 큰 진폭(amplitude)의 일정 비율 값을 임계 값으로 결정하고, 임계 값 이상의 진폭(amplitude)을 갖는 주파수들을 후보 피치 주파수들로 검출할 수도 있으나, 이에 한정되는 것은 아니다.
또한, 전자 기기는, 원본의 제 n 프레임을 이용하여, 후보 피치 주파수 영역 중에서 피치 주파수를 결정할 수 있다(S530).
이때, 원본의 제 n 프레임은 언더샘플링되기 전의 시간 영역의 신호일 수 있다.
예를 들어, 전자 기기는 후보 피치 주파수 영역에 대응하는 주기(T) 구간(range)에서의 자기 상관 계수들을 산출하고, 가장 큰 자기 상관 계수를 갖는 주기(T)에 대응하는 주파수(f=1/T)를 피치 주파수로 검출할 수 있다.
제 1 후보 피치 주파수 영역이 281.375 ~ 312.625인 경우, 제 1 후보 피치 주파수 영역에 대응하는 제 1 주기 구간은 '1/312.625(≒3.19ms) ~ 1/281.375(≒3.55ms)' 이고, 제 2 후보 피치 주파수 영역이 919.375 ~ 950.625인 경우, 제 2 후보 피치 주파수 영역에 대응하는 제 2 주기 구간은 '1/950.625 (≒1.05ms) ~ 1/919.375 (≒1.08 ms)' 일 수 있다. 이때, 전자 기기는 언더샘플링되기 전의 제 n 프레임을 이용하여, 제 1 주기 구간 및 제 2 주기 구간에서의 자기 상관 계수를 산출할 수 있다. 만일, T=3.405ms 에서의 자기 상관 계수가 가장 큰 경우, 전자 기기는 'f0=1/T = 1/0.003405 ≒ 293.686 Hz'를 피치 주파수로 검출할 수 있다.
또한, 전자 기기는 단계 S510 내지 S540의 과정에 따라 다음 프레임(제 n+1 프레임)에 대한 피치 주파수를 검출 할 수 있다(S550).
도 6은 예시적인 언더샘플링을 나타내는 도면이다.
도 6을 참조하면, 원본의 제 n 프레임의 샘플링 레이트(610)가 44100Hz일 수 있다. 이때, 전자 기기가 원본의 제 n 프레임을 언더샘플링하는 경우, 언더샘플링된 제 n 프레임의 샘플링 레이트(620)는 8000Hz일 수 있다. 제 n 프레임의 사이즈가 128ms인 경우, 원본의 제 n 프레임에 포함된 샘플 수는 5644.8개일 수 있으며, 언더샘플링된 제 n 프레임에 포함된 샘플 수는 1024개일 수 있다.
도 7은 예시적인 후보 피치 주파수 영역을 나타내는 도면이다.
도 7을 참조하면, 임계 값이 10000인 경우, 전자 기기는 주파수 신호(700)에서 진폭이 10000 이상인 후보 피치 주파수들(예컨대, 제 1 후보 피치 주파수(710) = 297Hz, 제 2 후보 피치 주파수(720) = 935 Hz)을 결정할 수 있다. 그리고 전자 기기는 '후보 피치 주파수 ± 임계 값(예컨대, 주파수 분해능)'을 후보 피치 주파수 영역으로 결정할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 주파수 분해능이 15.625 Hz/bin인 경우, 제 1 후보 피치 주파수 영역 및 제 2 후보 피치 주파수 영역은 아래와 같을 수 있다.
(1) 제 1 후보 피치 주파수 영역 = 297 Hz ± 15.625 = 281.375 ~ 312.625
(2) 제 2 후보 피치 주파수 영역 = 935 Hz ± 15.625 = 919.375 ~ 950.625
도 8은 예시적인 과거 프레임의 피치 주파수를 고려하여, 현재 프레임의 피치 주파수를 결정하는 방법을 나타내는 도면이다.
전자 기기는 제 n-1 프레임에서 검출된 피치 주파수가 제 n 프레임의 피치 주파수인지 검증할 수 있다(S810).
전자 기기는 언더샘플링된 제 n 프레임의 후보 피치 주파수 검출 시 제 n-1 프레임에서 검출된 피치 주파수를 이용할 수 있다. 이 경우, 일시적으로 발생하는 노이즈의 영향이 억제될 수 있다.
예를 들어, 제 n-1 프레임에서 검출된 피치 주파수가 300Hz 인 경우, 전자 기기는 제 n 프레임의 후보 피치 주파수 검출 시 300Hz 앞뒤의 일정 범위의 주파수(예컨대, 285 Hz ~ 315 Hz)를 우선적으로 확인하게 된다. 확인 결과, 300Hz에서의 진폭(amplitude)이 가장 큰 경우, 전자 기기는 제 n 프레임의 후보 피치 주파수를 300 Hz로 결정할 수 있다.
그리고 전자 기기는 언더샘플링되기 전의 원본 제 n 프레임을 이용하여, 후보 피치 주파수 영역 (예컨대, 300 Hz ± 15Hz)에 대응하는 주기 구간(예컨대, 1/315 ~ 1/285ms)에서의 자기 상관 계수를 구할 수 있다. 가장 큰 자기 상관 계수를 가지는 주기에 대응하는 주파수가 300Hz인 경우, 전자 기기는 300Hz를 피치 주파수로 결정할 수 있다.
또한, 전자 기기는 언더샘플링되기 전의 원본 제 n 프레임을 이용하여, 제 n-1 프레임에서 검출된 피치 주파수의 앞뒤 일정 주파수 범위에 대응하는 주기 구간에서의 자기 상관 계수를 산출할 수도 있다.
예를 들어, 제 n-1 프레임의 피치 주파수가 300 Hz인 경우, 전자 기기는 원본 제 n 프레임을 이용하여, 일정 주파수 범위(예컨대, 300 Hz ± 15Hz)에 대응하는 주기 구간(예컨대, 1/315 ~ 1/285ms)에서의 자기 상관 계수를 산출할 수 있다. 이때, 산출되는 자기 상관 계수의 패턴이, 언더샘플링되기 전의 원본 제 n-1 프레임을 이용하여 산출된 자기 상관 계수의 패턴과 유사한 경우, 전자 기기는, 제 n 프레임의 피치 주파수가 제 n-1의 피치 주파수와 동일하다고 판단할 수 있다.
한편, 제 n 프레임과 제 n-1 프레임 간의 검출 간격이 길어질수록 검증해야 하는 일정 주파수 범위가 길어질 수 있다. 예를 들어, n 프레임과 제 n-1 프레임 간의 검출 간격이 30ms인 경우, 일정 주파수 범위는 '300 Hz ± 15Hz'일 수 있으나, 제 n 프레임과 제 n-1 프레임 간의 검출 간격이 60ms로 늘어나는 경우, 일정 주파수 범위도 '300 Hz ± 35Hz'로 늘어날 수 있다.
또한, 전자 기기는, 제 n-1 프레임의 피치 주파수가 제 n 프레임의 피치 주파수와 동일하다고 판단되는 경우, 제 n-1 프레임의 피치 주파수를 제 n 프레임의 피치 주파수로 결정할 수 있다(S820, S830).
예를 들어, 제 n-1 프레임의 피치 주파수가 300Hz인 경우, 인접한 제 n 프레임의 피치 주파수도 300Hz로 결정될 수 있다.
또한, 전자 기기는 제 n-1 프레임의 피치 주파수가 제 n 프레임의 피치 주파수와 동일하지 않다고 판단되는 경우, 제 n 프레임에 대한 언더샘플링을 수행하여, 제 n 프레임의 피치 주파수를 검출할 수 있다(S820, S840).
또한, 전자 기기는, 단계 S810 내지 단계 S840에서와 같이, 제 n 프레임에서 검출된 피치 주파수를 우선 고려하여, 제 n+1 프레임의 피치 주파수를 검출할 수 있다(S850).
도 9는 예시적인 제2 상대 음악 시퀀스를 생성하는 방법을 나타내는 도면이다.
전자 기기는 시퀀스 레벨 및/또는 노트 레벨에서 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다. 이하에서는, 시퀀스 레벨에서 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 상대적인 유사도를 획득하는 방법을 설명한다.
도 9를 참조하면, 전자 기기는, 제어부를 이용하여, 위치 정보를 기초로 제2 음악 시퀀스 중에서 비교에 사용되는 제2 부분 음악 시퀀스를 추출할 수 있다(S910).
제2 부분 음악 시퀀스는 연속적인 제2 음악 시퀀스 중에서 비교를 위한 음악 시퀀스일 수 있다. 제2 부분 음악 시퀀스는 제2 음악 시퀀스의 전체 및/또는 일부를 포함할 수 있다.
이하에서는, 전자 기기가 제2 음악 시퀀스의 일부를 제2 부분 음악 시퀀스로 추출하고, 추출된 제2 부분 음악 시퀀스를 피치 방향 및/또는 시간 방향으로 조정하는 것을 중심으로 설명한다.
추출된 제2 부분 음악 시퀀스는 미리 정해진 크기의 음악 시퀀스일 수 있다. 예를 들어, 추출된 제2 부분 음악 시퀀스의 크기는 적어도 하나의 마디에 대응되는 크기일 수도 있고, 마디보다 작거나 클 수도 있다.
또한, 위치 정보는 제2 부분 음악 시퀀스가 시작되는 위치(예를 들어, 프레임 번호 또는 시각)를 지시하는 시작 정보, 및 제2 부분 음악 시퀀스가 종료되는 위치(예를 들어, 프레임 번호 또는 시각)를 지시하는 종료 정보 중에서 적어도 하나를 포함할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 조정 정보를 기초로 제2 부분 음악 시퀀스를 제2 상대 음악 시퀀스로 조정할 수 있다(S920).
예를 들어, 조정 정보는 음의 피치를 조정하는 피치 조정 정보, 및 음의 길이를 조정하는 길이 조정 정보 중에서 적어도 하나를 포함할 수 있다.
전자 기기는 피치 조정 정보를 기초로 제2 부분 음악 시퀀스의 기준 음의 피치와 제1 음악 시퀀스의 기준 음의 피치를 동일하게 조정할 수 있다. 예를 들어, 전자 기기는 피치 조정 정보를 기초로 제1 음악 시퀀스 및/또는 제2 부분 음악 시퀀스의 피치들을 높이거나 낮출 수 있다.
또한, 전자 기기는 길이 조정 정보를 기치로 제1 음악 시퀀스 및/또는 제2 부분 음악 시퀀스의 음의 길이를 늘이거나 줄일 수 있다.
이하에서는, 전자 기기가 피치 조정 정보를 기초로 제2 부분 음악 시퀀스를 조정하는 것을 중심으로 설명한다. 즉, 조정 정보는 제2 부분 음악 시퀀스의 음의 피치를 조정하는 피치 조정 정보, 및 제2 부분 음악 시퀀스의 음의 길이를 조정하는 길이 조정 정보 중에서 적어도 하나를 포함할 수 있다.
도 10은 예시적인 제2 상대 음악 시퀀스를 나타내는 도면이다.
도 10(a)를 참조하면, 연속적인 제2 음악 시퀀스(1011)가 나타나 있다.
전자 기기는 위치 정보를 기초로 제2 음악 시퀀스(1011) 중에서 비교에 사용되는 제2 부분 음악 시퀀스(1013)을 추출할 수 있다.
도 10(b)를 참조하면, 추출된 제2 부분 음악 시퀀스(1021) 및 기준 음의 피치(1023)가 나타나 있다.
도 10(c)를 참조하면, 음의 피치가 조정된 제2 상대 음악 시퀀스(1031) 및 기준 음의 피치(1033)가 나타나 있다.
전자 기기는 피치 조정 정보를 기초로 추출된 제2 부분 음악 시퀀스의 피치들을 높이거나 낮출 수 있다.
도 10(d)를 참조하면, 시간 방향으로 음의 길이가 축소된 제2 상대 음악 시퀀스(1041)가 나타나 있다. 도 10(e)를 참조하면, 시간 방향으로 음의 길이가 늘어난 제2 상대 음악 시퀀스(1051)가 나타나 있다.
전자 기기는 길이 조정 정보를 기초로 제2 부분 음악 시퀀스를 시간 방향으로 늘이거나 축소시킬 수 있다.
도 11은 예시적인 상대적인 유사도를 획득하는 방법을 나타내는 도면이다.
도 11을 참조하면, 전자 기기는, 제어부를 이용하여, 제1 음악 시퀀스 및 제2 상대 음악 시퀀스를 언더샘플링할 수 있다(S1110).
언더샘플링은 음악 시퀀스를 피치 방향 및/또는 시간 방향으로 더 작은 샘플로 표현하는 과정을 의미할 수 있다. 예를 들어, 언더 샘플링은 음악 시퀀스를 '1' 보다 작은 비율로 축소하는 것을 포함할 수 있다.
전자 기기는 피라미드(Pyramid) 방식을 기초로 제1 음악 시퀀스 및 제2 상대 음악 시퀀스를 원하는 단계까지 언더샘플링할 수 있다.
예를 들어, 피라미드 방식은, 레졸루션이 줄어든 음악 시퀀스들을 얻기 위하여, 원본 음악 시퀀스에 반복적으로 블러링(bluring) 및/또는 다운샘플링(down-sampling)을 수행하는 가우시안 피라미드(Gaussian Pyramid) 방식을 포함할 수 있다. 즉, 전자 기기는 음악 시퀀스를 블러링(bluring)하고 나서, 블러링된 음악 시퀀스를 다운샘플링(down-sampling)할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 언더샘플링된 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 동기화할 수 있다(S1120).
전자 기기는 언더샘플링된 제1 음악 시퀀스에서 비교의 대상이 되는 제1 음악 시퀀스 구간과 언더샘플링된 제2 상대 음악 시퀀스에서 비교의 대상이 되는 제2 상대 음악 시퀀스 구간을 동기화할 수 있다. 예를 들어, 전자 기기는 제1 음악 시퀀스 구간 시작점의 위치와 제2 상대 음악 시퀀스 구간의 시작점의 위치를 동기화할 수 있다.
또한, 전자 기기는 제1 음악 시퀀스 구간의 시작 점의 위치를 동기화 단위만큼 이동시키면서 제2 상대 음악 시퀀스 구간과 동기화할 수 있다. 예를 들어, 동기화 단위는 적어도 하나의 프레임 및/또는 적어도 하나의 마디를 포함하는 임의의 크기의 단위일 수 있다.
동기화 단위가 적어도 하나의 마디를 포함하는 단위인 경우, 전자 기기는 언더샘플링된 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스에 포함된 각 마디의 시작 점의 위치 및/또는 종료 점의 위치를 추출할 수 있다. 그리고 나서, 전자 기기는 각 마디의 시작 점의 위치 및/또는 종료 점의 위치를 기초로 제1 음악 시퀀스 구간과 제2 상대 음악 시퀀스 구간을 동기화 할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 동기화된 제1 음악 시퀀스 및 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다(S1130).
예를 들어, 전자 기기는 코릴레이션 정보를 기초로 동기화된 제1 음악 시퀀스 및 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
이와 같이, 전자 기기는 피라미드(Pyramid) 방식을 기초로 언더샘플링을 수행함으로써 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스의 데이터 량을 줄일 수 있고, 빠른 비교 및/또는 처리를 가능하게 한다.
또한, 전자 기기는 제2 음악 시퀀스에 대한 음의 피치를 조정하거나 음의 길이를 조정한 경우에도 정확하고 신속하게 유사도를 구할 수 있다. 비록 제1 음악 시퀀스와 제2 음악 시퀀스가 비 유사하게 보이더라도, 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이에서는 유사할 수 있다. 전자 기기는 제1 음악 시퀀스와 제2 상대 음악 시퀀스에 대하여 피라미드 방식의 언더샘플링을 수행함으로써, 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 유사도를 더욱 정확하게 계산할 수 있다.
또한, 전자 기기는 피라미드의 상위 단계에서 작은 데이터로 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 비교함으로써, 추가적으로 비교할 필요 없는 데이터(예를 들어, 유사도가 임계치 미만인 데이터)를 빠르게 제거할 수 있다.
도 12는 예시적인 언더샘플링을 나타내는 도면이다.
도 12를 참조하면, 제1 음악 시퀀스(1211) 및/또는 제2 상대 음악 시퀀스(1221)를 피라미드 방식으로 언더샘플링하는 방법이 나타나 있다.
전자 기기는 원본의 제1 음악 시퀀스(1211)에 대하여 반복적으로 블러링(bluring) 및/또는 다운샘플링(down-sampling)을 수행하여 샘플링된 제1 음악 시퀀스(1215)를 생성할 수 있다.
또한, 전자 기기는 원본의 제2 상대 음악 시퀀스(1221)에 대하여 반복적으로 블러링(bluring) 및/또는 다운샘플링(down-sampling)을 수행하여 샘플링된 제2 상대 음악 시퀀스(1225)를 생성할 수 있다.
그리고 나서, 전자 기기는 샘플링된 제1 음악 시퀀스(1215) 및 제2 상대 음악 시퀀스(1225)를 동기화하고, 동기화된 제1 음악 시퀀스(1215) 및 제2 상대 음악 시퀀스(1225) 사이의 상대적인 유사도를 획득할 수 있다.
도 13은 예시적인 동기화를 나타내는 도면이다.
도 13을 참조하면, 언더샘플링된 제2 상대 음악 시퀀스(1310) 및 언더샘플링된 제1 음악 시퀀스(1320)가 나타나 있다.
전자 기기는 언더샘플링된 제2 상대 음악 시퀀스에서 비교 대상이 되는 제2 상대 음악 시퀀스 구간(1310)을 언더샘플링된 제1 음악 시퀀스(1320)에서 비교의 대상이 되는 제1 음악 시퀀스 구간(1323 또는 1325)과 동기화할 수 있다.
예를 들어, 전자 기기는 제1 음악 시퀀스 구간(1323, 1325)을 시간 축 상에서 동기화 단위만큼 이동시키면서 제2 상대 음악 시퀀스 구간(1310)과 동기화할 수 있다. 예를 들어, 동기화 단위는 적어도 하나의 프레임 및/또는 적어도 하나의 마디를 포함하는 임의의 크기의 단위일 수 있다.
도 14는 예시적인 상대적인 유사도를 나타내는 도면이다.
전자 기기는 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다. 예를 들어, 유사도는 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 코릴레이션 정보를 포함할 수 있다. 또한, 전자 기기는 코릴레이션 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수도 있다.
코릴레이션 정보는 제1 음악 시퀀스가 제2 상대 음악 시퀀스와 어떠한 밀접한 관련성을 갖는지를 나타내는 정보이다. 또한, 코릴레이션 정보는 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 관계가 어느정도 선형적인지를 나타내는 정보이다.
예를 들어, 도 14(a) 내지 도 14(c)에서 X-축 및/또는 Y-축은 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스를 나타낼 수 있다.
도 14(a) 및 도 14(b)를 참조하면, 양의 상관 관계를 나타내는 도면이 나타나 있다.
예를 들어, 코릴레이션 정보(1410, 1420)가 '0'과 '+1'사이면, 제1 음악 시퀀스와 제2 상대 음악 시퀀스는 양의 상관 관계를 가질 수 있다.
코릴레이션 정보(1410)가 '+1'에 가까운 값을 가질수록 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 유사도는 높을 수 있다. 또한, 코릴레이션 정보(1420)가 '0'에 가까운 값을 가질수록 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 유사도는 낮을 수 있다.
전자 기기는 코릴레이션 정보(1410, 1420)를 기초로 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 어느 정도 유사한지에 대한 정보를 제공할 수 있다.
또한, 전자 기기는 미리 정해진 임계 값을 기초로 코릴레이션 정보가 임계 값 이상이면, 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 유사하다고 판단할 수 있다. 또한, 전자 기기는 미리 정해진 임계 값을 기초로 코릴레이션 정보가 임계 값 미만이면, 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 유사하지 않다고 판단할 수 있다.
도 14(c)를 참조하면, 무 상관 관계를 나타내는 도면이 나타나 있다.
예를 들어, 코릴레이션 정보(1430)가 '0'인 경우, 제1 음악 시퀀스와 제2 상대 음악 시퀀스는 선형의 상관관계가 아닐 수 있고, 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 유사도는 매우 낮을 수 있다.
도 15는 예시적인 상대적인 유사도를 획득하는 방법을 나타내는 도면이다.
지금까지는 시퀀스 레벨에서 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 상대적인 유사도를 획득하는 방법을 설명하였다. 이하에서는 노트 레벨에서 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 상대적인 유사도를 획득하는 방법을 설명한다.
도 15를 참조하면, 전자 기기는, 제어부를 이용하여, 제2 상대 음악 시퀀스에 포함되는 피치들의 통계 값을 포함하는 노트 정보를 획득할 수 있다(S1530).
예를 들어, 노트 정보는 노트에 대응되는 노트 구간의 위치 정보, 듀레이션, 피치 성분 정보, 및/또는 피치 성분 통계 정보 중에서 적어도 하나를 포함할 수 있다.
전자 기기는 제2 상대 음악 시퀀스 내에서 노트에 대응되는 노트 구간의 위치 정보 및/또는 듀레이션을 결정할 수 있다. 아직 정확한 노트가 정해진 것은 아니지만, 전자 기기는 예상적인 노트의 위치 정보 및/또는 듀레이션을 결정할 수 있다.
그리고 나서, 전자 기기는 제2 상대 음악 시퀀스의 노트 구간 내에 포함되는 피치들을 대표하는 적어도 하나의 피치 성분 정보를 획득할 수 있다. 그리고 나서, 전자 기기는 노트 구간 내에서 적어도 하나의 피치 성분 정보의 통계 값을 지시하는 적어도 하나의 피치 성분 통계 정보를 생성할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 노트 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다(S1540).
전자 기기는 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 동기화할 수 있다. 그리고 나서, 전자 기기는 제1 음악 시퀀스의 피치 정보와 제2 상대 음악 시퀀스의 상기 피치 성분 정보를 매칭할 수 있다. 그리고 나서, 전자 기기는 매칭된 피치 성분 정보에 대응되는 피치 성분 통계 정보를 결정할 수 있다. 그리고 나서, 전자 기기는 결정된 피치 성분 노트 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
또한, 전자 기기는, 디스플레이를 이용하여, 유사도를 기초로 사용자의 음악 신호와 동일 및/또는 유사한 음악에 대한 정보를 디스플레이 할 수 있다.
전자 기기는 제2 상대 음악 시퀀스와 동일 및/또는 유사한 제1 음악 시퀀스를 저장부 및/또는 서버에서 검색하고, 검색된 제1 음악 시퀀스에 대한 정보를 디스플레이할 수 있다.
예를 들어, 검색된 제1 음악 시퀀스에 대한 정보는 제목, 박자, 음계, 음표, 악보, 코드, 음악 데이터가 저장된 위치, 작곡가, 작사자, 음악 데이터에서 동일 및/또는 유사한 부분의 위치, 및/또는 유사도를 포함할 수 있다.
도 16은 예시적인 노트 정보를 획득하는 방법을 나타낸 도면이다.
도 16를 참조하면, 전자 기기는 제2 상대 음악 시퀀스의 노트에 포함된 피치들의 노트 정보를 획득할 수 있다. 예를 들어, 노트 정보는 노트에 대응되는 노트 구간의 위치 정보, 듀레이션, 피치 성분 정보, 및/또는 피치 성분 통계 정보를 포함할 수 있다.
먼저, 전자 기기는, 제어부를 이용하여, 제2 상대 음악 시퀀스 내에서 노트에 대응되는 노트 구간의 위치 정보 및/또는 듀레이션을 결정할 수 있다(S1610).
위치 정보는 예상적인 노트에 대응되는 노트 구간의 시작 점의 위치를 지시하는 노트 시작 정보 및/또는 종료 점의 위치를 지시하는 노트 종료 정보 중에서 적어도 하나를 포함할 수 있다.
듀레이션은 표준 음 높이 및/또는 표준 음 길이에 따라서 결정될 수 있다. 예를 들어, 표준 음 길이는 온음표, 2분 음표, 4분 음표, 8분 음표, 16분 음표, 및/또는 32분 음표 등에 해당하는 길이를 포함할 수 있다. 표준 음 높이는 12 음계를 의미할 수 있다.
전자 기기는 표준 음 높이 및/또는 표준 음 길이를 기초로 제2 상대 음악 시퀀스에서 노트에 해당되는 노트 구간을 결정할 수 있다. 예를 들어, 전자 기기는 제2 상대 음악 시퀀스가 일정 시간동안 일정 범위 내의 피치 정보를 가지면, 그 구간을 노트 구간으로 결정할 수 있다.
또한, 전자 기기는 제2 상대 음악 시퀀스의 패턴을 기초로 제2 상대 음악 시퀀스에서 노트 구간을 결정할 수 있다. 예를 들어, 제2 상대 음악 시퀀스의 파형이 계단 모양과 유사하게 진행하는 경우, 전자 기기는 각각의 계단 모양에 대응되는 구간을 노트 구간으로 결정할 수 있다.
또한, 제2 상대 음악 시퀀스의 파형이 불규칙하게 진행하더라도, 전자 기기는 표준 음 높이, 표준 음 길이, 및/또는 제2 상대 음악 시퀀스의 패턴을 기초로 노트 구간을 결정할 수 있다.
또한, 전자 기기는 노트 구간의 시간적 및/또는 공간적 길이를 듀레이션으로 결정할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 제2 상대 음악 시퀀스의 노트 구간 내에 포함되는 피치들을 대표하는 적어도 하나의 피치 성분 정보를 획득할 수 있다(S1620).
적어도 하나의 피치 성분 정보는 노트 구간 내에 존재하는 피치들을 대표하는 피치 값일 수 있다. 피치 성분 정보는 노트 구간 내에서 최소 피치와 최대 피치 사이의 피치 값일 수도 있고, 최소 피치와 최대 피치를 포함하는 일정 영역 내의 피치 값일 수도 있다. 또한, 피치 성분 정보는 실수 피치 값을 올림, 내림, 및/또는 반올림한 자연수일 수 있다. 또한, 피치 성분 정보는 MIDI 번호일 수 있다. 또한, 적어도 하나의 피치 성분 정보는 순차적이고 연속된 MIDI 번호일 수도 있고, 일정한 간격을 가지는 MIDI 번호일 수도 있다. 또한, 적어도 하나의 피치 성분 정보의 개수는 미리 정해질 수 있다.
적어도 하나의 피치 성분 정보는 {49, 50, 51, 52, 53} 일 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 노트 구간 내에서 적어도 하나의 피치 성분 정보의 통계 값을 지시하는 적어도 하나의 피치 성분 통계 정보를 생성할 수 있다(S1630).
예를 들어, 통계 값은 노트 구간 내에서 피치 성분 정보의 도수 분포 정보, 분산 정보, 및/또는 확률 정보를 포함할 수 있다.
도 17은 예시적인 노트 정보를 나타낸 도면이다.
도 17(a)를 참조하면, 예시적인 제2 상대 음악 시퀀스(1710)가 나타나 있다.
전자 기기는 음악 신호에서 검출되는 피치 주파수들을 이용하여, 음악 신호에 대응되는 연속적인 제2 상대 음악 시퀀스(1710)를 생성할 수 있다. 예를 들어, 전자 기기는 피치 주파수에 대응되는 MIDI 번호를 이용하여 피치를 표현할 수 있다.
또한, 전자 기기는 제2 상대 음악 시퀀스에서 노트에 대응되는 노트 구간(1715)의 듀레이션을 결정할 수 있다. 예를 들어, 전자 기기는 표준 음 높이, 표준 음 길이, 및/또는 제2 상대 음악 시퀀스의 패턴을 기초로 노트에 대응되는 노트 구간(1715)의 듀레이션을 결정할 수 있다.
도 17(b)를 참조하면 예시적인 연속적인 히스토그램이 나타나 있고, 도 17(c)를 참조하면 예시적인 이산적인 히스토그램이 나타나 있다.
전자 기기는 노트 구간(1715)의 노트 구간 내에 포함되는 피치들을 대표하는 적어도 하나의 피치 성분 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 피치 성분 정보는 '49', '50', '51', '52', '53', 및/또는 '54'를 포함할 수 있다.
또한, 전자 기기는 적어도 하나의 피치 성분 정보의 통계 값을 지시하는 적어도 하나의 피치 성분 통계 정보를 획득할 수 있다. 예를 들어, 적어도 하나의 피치 성분 정보 및 피치 성분 통계 정보의 값은 (49, 0.01), (50,0.11), (51,0.55), (52,0.3), (53, 0.02), 및/또는 (54,0.01)를 포함할 수 있다.
도 18은 예시적인 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 방법을 나타내는 도면이다.
도 18을 참조하면, 전자 기기는 노트 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 비교하고, 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
먼저, 전자 기기는, 제어부를 이용하여, 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 동기화할 수 있다(S1810).
예를 들어, 전자 기기는 제1 음악 시퀀스에서 비교의 대상이 되는 제1 음악 시퀀스 구간과 제2 상대 음악 시퀀스에서 비교의 대상이 되는 제2 상대 음악 시퀀스 구간을 동기화할 수 있다. 이 경우, 전자 기기는 제1 음악 시퀀스 구간 시작점의 위치와 제2 상대 음악 시퀀스 구간의 시작점의 위치를 동기화할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 제1 음악 시퀀스의 피치 정보와 제2 상대 음악 시퀀스의 피치 성분 정보를 매칭할 수 있다(S1820).
전자 기기는 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스를 연속적인 적어도 하나의 구간으로 분할할 수 있다.
예를 들어, 전자 기기는 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스의 노트 및/또는 노트 구간이 변경되는 부분을 경계로 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스를 분할할 수 있다.
또한, 전자 기기는 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스의 듀레이션을 경계로 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스를 분할할 수 있다. 또한, 전자 기기는 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스의 듀레이션을 추가적으로 분할할 수 있다.
분할된 적어도 하나의 구간은 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스에 공통적으로 적용될 수 있는 구간이다. 즉, 분할된 적어도 하나의 구간에서 각각의 시작 점의 위치 및/또는 종료 점의 위치는 동일할 수 있다.
이에 한정되지 않고, 적어도 하나의 구간은 프레임, 및/또는 변경 가능하고 미리 정의된 크기의 구간을 포함할 수 있다.
전자 기기는 각각의 구간에서 제1 음악 시퀀스의 피치 정보와 제2 상대 음악 시퀀스의 피치 성분 정보를 매칭할 수 있다.
제1 음악 시퀀스는 각 구간마다 하나의 피치 정보를 포함할 수 있다. 제2 상대 음악 시퀀스는 각 구간마다 적어도 하나의 피치 성분 정보를 포함할 수 있다. 적어도 하나의 피치 성분 정보는 제2 상대 음악 시퀀스의 듀레이션 및/또는 각 구간 내에 포함되는 피치들을 대표하는 값일 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 매칭된 피치 성분 정보에 대응되는 피치 성분 통계 정보를 결정할 수 있다(S1830).
전자 기기는 노트 구간 내에서 적어도 하나의 피치 성분 정보의 통계 값을 지시하는 적어도 하나의 피치 성분 통계 정보를 생성할 수 있다. 즉, 각각의 피치 성분 정보에 대응되는 피치 성분 통계 정보가 존재할 수 있다.
전자 기기는 각각의 구간 내에서 매칭된 피치 성분 정보에 대응되는 피치 성분 통계 정보를 결정할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 결정된 피치 성분 통계 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다(S1840).
전자 기기는 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 어느 정도 유사한지에 대한 정보를 제공할 수 있다.
즉, 유사도는 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 동일하거나 다르다고 지시하는 이분법적인 정보를 제공하는 것뿐만 아니라, 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 어느 정도 유사한지에 대한 정보를 제공할 수 있다.
예를 들어, 유사도는 적어도 하나의 피치 성분 통계 정보의 평균 값을 포함할 수 있다.
또한, 전자 기기는 미리 정해진 임계 값을 기초로 유사도가 임계 값 이상이면, 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 유사하다고 판단할 수 있다. 또한, 전자 기기는 미리 정해진 임계 값을 기초로 유사도가 임계 값 미만이면, 제1 음악 시퀀스와 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)가 유사하지 않다고 판단할 수 있다.
도 19는 적어도 하나의 구간으로 분할된 예시적인 제1 음악 시퀀스 및 제2 상대 음악 시퀀스를 나타낸 도면이다.
도 19(a)를 참조하면, 적어도 하나의 구간으로 분할된 예시적인 제1 음악 시퀀스(1910)가 나타나 있다.
제1 음악 시퀀스(1910)는 제1 노트(1911), 제2 노트(1912), 제3 노트(1913), 제4 노트(1914), 및/또는 제5 노트(1915)를 포함할 수 있다.
제1 음악 시퀀스(1910)의 각각의 노트는 하나의 피치 정보를 포함할 수 있다. 예를 들어, 제1 노트(1911)의 피치 정보는 '47'을 지시하고, 제2 노트(1912)의 피치 정보는 '54'를 지시하고, 제3 노트(1913)의 피치 정보는 '56'을 지시하고, 제4 노트(1914)의 피치 정보는 '51'을 지시하고, 제5 노트(1915)의 피치 정보는 '50'을 지시할 수 있다.
도 19(b)를 참조하면, 적어도 하나의 구간으로 분할된 예시적인 제2 상대 음악 시퀀스(1920)가 나타나 있다.
제2 상대 음악 시퀀스(1920)는 제1 노트 구간(1921), 제2 노트 구간(1922), 제3 노트 구간(1923), 제4 노트 구간(1924), 제5 노트 구간(1925), 및/또는 제6 노트 구간(1925)을 포함할 수 있다.
제2 상대 음악 시퀀스(1920)의 각각의 노트 구간(1925)은 적어도 하나의 피치 성분 정보(19251, 19253, 19255, 19257, 19259)를 포함할 수 있다. 예를 들어, 제1 노트 구간(1921)의 적어도 하나의 피치 성분 정보는 '45, 46, 47, 48, 49'를 지시하고, 제2 노트 구간(1922)의 적어도 하나의 피치 성분 정보는 '51, 52, 53, 54, 55'를 지시하고, 제3 노트 구간(1923)의 적어도 하나의 피치 성분 정보는 '53, 54, 55, 56, 57'를 지시하고, 제4 노트 구간(1924)의 적어도 하나의 피치 성분 정보는 '54, 55, 56, 57, 58'를 지시하고, 제5 노트 구간(1925)의 적어도 하나의 피치 성분 정보는 '49, 50, 51, 52, 53'를 지시할 수 있다.
도 19(a) 및 도 19(b)를 참조하면, 전자 기기는 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스를 적어도 하나의 구간으로 분할할 수 있다.
예를 들어, 적어도 하나의 구간은 제1 구간(1931), 제2 구간(1932), 제3 구간(1933), 제4 구간(1934), 제5 구간(1935), 및/또는 제6 구간(1936)을 포함할 수 있다.
적어도 하나의 구간은 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스에서 노트, 노트 구간, 및/또는 듀레이션을 기초로 분할될 수 있다. 또한, 적어도 하나의 구간은 노트, 노트 구간, 및/또는 듀레이션이 추가적으로 분할된 단위일 수 있다.
예를 들어, 적어도 하나의 구간은 제1 음악 시퀀스의 노트 및/또는 듀레이션을 기초로 제2 상대 음악 시퀀스, 제2 상대 음악 시퀀스의 노트 구간, 및/또는 듀레이션을 분할한 단위일 수 있다. 또한, 적어도 하나의 구간은 제2 상대 음악 시퀀스의 노트 구간 및/또는 듀레이션을 기초로 제1 음악 시퀀스, 제1 음악 시퀀스의 노트, 및/또는 듀레이션을 분할한 단위일 수 있다.
또한, 적어도 하나의 구간은 제1 음악 시퀀스 및/또는 제2 상대 음악 시퀀스에 공통으로 적용될 수 있다.
도 20은 예시적인 노트 정보를 나타낸 도면이다.
제1 음악 시퀀스의 노트 정보는 노트의 위치 정보, 피치 정보, 및/또는 듀레이션 중에서 적어도 하나를 포함할 수 있다. 또한, 제2 상대 음악 시퀀스의 노트 정보는 노트에 대응되는 노트 구간의 위치 정보, 듀레이션, 피치 성분 정보, 및/또는 피치 성분 통계 정보 중에서 적어도 하나를 포함할 수 있다.
도 (a)를 참조하면, 예시적인 제2 상대 음악 시퀀스의 피치 성분 정보 및/또는 피치 성분 통계 정보가 나타나 있다.
적어도 하나의 피치 성분 정보에는 적어도 하나의 피치 성분 통계 정보가 할당되어 있다. 또한, 각 구간 및/또는 노트 구간에서 가장 큰 값의 피치 성분 통계 정보에 대응되는 피치 성분 정보(2036)는 해당 구간 및/또는 노트 구간을 대표하는 값일 수 있다.
도 (b)를 참조하면, 예시적인 제1 음악 시퀀스의 피치 정보가 나타나 있다.
제1 음악 시퀀스는 각 구간마다 이산적인 피치 정보를 가질 수 있다.
도 (c)를 참조하면, 예시적인 유사도가 나타나 있다.
전자 기기는 제1 음악 시퀀스의 피치 정보와 제2 상대 음악 시퀀스의 피치 성분 정보를 매칭하고, 매칭된 피치 성분 정보에 대응되는 피치 성분 통계 정보를 결정할 수 있다. 그리고 나서, 전자 기기는 결정된 피치 성분 통계 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
예를 들어, 전자 기기는 각 구간마다 피치 성분 통계 정보를 구하고, 피치 성분 통계 정보를 기초로 유사도를 획득할 수 있다.
예를 들어, 유사도는 적어도 하나의 피치 성분 통계 정보의 평균 값을 포함할 수 있다.
도 21은 예시적인 제1 음악 시퀀스에 대응되는 악보 및 예시적인 피치 성분 통계 정보를 나타낸 도면이다.
도 (a)를 참조하면, 예시적인 제1 음악 시퀀스에 대응되는 악보가 나타나 있다.
전자 기기는 악보의 모든 부분에 대응되는 제1 음악 시퀀스를 제2 상대 음악 시퀀스와 비교할 수 있다. 예를 들어, 전자 기기는 악보의 첫 번째 마디(2110)에 대응되는 제1 음악 시퀀스를 제2 상대 음악 시퀀스와 비교할 수 있다.
도 (b)를 참조하면, 예시적인 피치 성분 통계 정보(2120)가 나타나 있다.
전자 기기는 각 구간마다 피치 성분 통계 정보(2120)를 획득할 수 있다.
예를 들어, 제1 음악 시퀀스의 첫 번째 마디는(2110)는 5개의 노트를 포함하고 있지만, 전자 기기는 제2 상대 음악 시퀀스의 노트 구간 및/또는 듀레이션을 기초로 제1 음악 시퀀스의 첫 번째 마디(2110)를 6개의 구간으로 분할하고, 각 구간마다 피치 성분 통계 정보를 획득할 수 있다.
그리고 나서, 전자 기기는 피치 성분 통계 정보(2120)를 기초로 상대적인 유사도(2130)를 획득할 수 있다.
도 22는 예시적인 음악 시퀀스 비교 방법을 나타낸 도면이다.
도 22를 참조하면, 전자 기기는, 제어부 및/또는 통신부를 이용하여, 시간에 따라서 이산적으로 변하는 피치들을 포함하는 이산적인 제1 음악 시퀀스를 획득할 수 있다(S2210).
또한, 전자 기기는, 제어부 및/또는 사용자 입력부를 이용하여, 시간에 따라서 연속적으로 변하는 피치들을 포함하는 연속적인 제2 음악 시퀀스를 획득할 수 있다(S2220).
또한, 전자 기기는, 제어부를 이용하여, 연속적인 제2 음악 시퀀스에 대하여 상대적인 음 높이 및 음 길이 중에서 적어도 하나를 가지는 연속적인 제2 상대 음악 시퀀스를 생성할 수 있다(S2230).
또한, 전자 기기는, 제어부를 이용하여, 연속적인 제2 상대 음악 시퀀스에 포함되는 피치들의 통계 값을 포함하는 노트 정보를 획득할 수 있다(S2240).
또한, 전자 기기는, 제어부를 이용하여, 연속적인 제2 상대 음악 시퀀스를 기초로 이산적인 제2 상대 음악 시퀀스를 생성할 수 있다(S2250).
전자 기기는, 표준 음 길이(standard duration) 및 표준 음 높이(standard pitch) 중 적어도 하나에 기반하여, 연속적인 제2 상대 음악 시퀀스를 이산적인 제2 상대 음악 시퀀스로 변환할 수 있다. 이때, 표준 음 길이는 일반적인 음표(예컨대, 온음표, 2분 음표, 4분 음표, 8분 음표, 16분 음표, 32분 음표 등)의 길이일 수 있으며, 표준 음 높이는 12 음계를 의미할 수 있다.
일반적으로 사용자가 허밍을 통해 음악 신호를 입력하는 경우, 사용자가 의도한 박자보다 빨라지거나 느려질 수 있으며, 사용자가 의도한 음보다 실제 발성한 음의 높이가 떨어지거나, 발성한 음이 떨리는 등의 문제들이 발생할 수 있다. 하지만, 일 실시예에 따른 전자 기기는 표준 음 길이 및 표준 음 높이 중 적어도 하나에 기반하여, 연속적인 제2 상대 음악 시퀀스를 이산적인 제2 상대 음악 시퀀스로 변환함으로써, 상기 문제들을 보완할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 이산적인 제2 상대 음악 시퀀스를 보정할 수 있다(S2260).
예를 들어, 전자 기기는 제2 상대 음악 시퀀스를 제1 음악 시퀀스와 비교하기 위해서, 제2 상대 음악 시퀀스를 제1 음악 시퀀스와 비교 가능한 모양으로 보정할 수 있다. 전자 기기는 제2 상대 음악 시퀀스를 피치 방향으로 음의 높이를 보정할 수 있고, 시간 방향으로 음의 스케일을 보정할 수 있다.
또한, 사용자가 특정 음악가 또는 특정 장르를 선택하는 경우, 전자 기기는, 선택된 특정 음악가 또는 특정 장르의 스타일을 반영하여, 이산적인 제2 상대 음악 시퀀스를 보정할 수 있다.
또한, 전자 기기는, 제어부를 이용하여, 노트 정보를 기초로 이산적인 제1 음악 시퀀스와 이산적인 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다(S2270).
이산적인 제2 상대 음악 시퀀스는 연속적인 제2 상대 음악 시퀀스에서 획득한 노트 정보를 포함할 수 있다.
따라서, 이산적인 제1 음악 시퀀스와 이산적인 제2 상대 음악 시퀀스를 비교하는 경우에도, 전자 기기는 노트 정보를 기초로 상대적인 유사도를 획득할 수 있다.
어떤 실시 예에서, 본 명세서에 개시된 음악 시퀀스 사이의 상대적인 유사도 획득하는 방법에서 연속적으로 변하는 피치들을 포함하는 음악 시퀀스의 상대 음악 시퀀스를 생성하는 방법은, 적용가능한 범위 내에서 이산적으로 변하는 피치들을 포함하는 음악 시퀀스의 상대 음악 시퀀스를 생성하기 위해서 사용될 수 있다. 어떤 실시 예에서, 연속적으로 변하는 피치를 포함하는 음악 시퀀스 및/또는 이산적으로 변하는 피치를 포함하는 음악 시퀀스의 상대 음악 시퀀스를 생성함으로써 상대적 유사도를 계산할 수 있다.
도 23은 예시적인 전자 기기의 구성을 나타낸 도면이다.
도 23을 참조하면, 예시적인 전자 기기(2300)는 통신부(2310), 사용자 입력부(2320), 디스플레이, 및/또는 제어부(2330) 중에서 적어도 하나를 포함할 수 있다.
전자 기기는, 통신부(2310)를 이용하여, 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득할 수 있다.
예를 들어, 통신부(2310)는, 전자 기기(2300)와 외부 기기 또는 전자 기기(2300)와 서버 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(2310)는 근거리 통신부, 이동 통신부, 방송 수신부를 포함할 수 있다. 구현 예에 따라서 전자 기기(2300)는 방송 수신부를 포함하지 않을 수도 있다.
또한, 전자 기기는, 사용자 입력부(2320)를 이용하여, 사용자로부터 음악 신호를 수신할 수 있다. 사용자 입력부(2320)는 사용자가 전자 기기(2300)를 제어하기 위한 데이터를 입력하는 수단을 의미한다.
사용자 입력부(2320)는 사용자로부터 발화되는 허밍 신호를 수신하는 음성 입력부를 포함할 수 있다. 또한, 사용자 입력부(2320)는 이산적인 음악 시퀀스에 대응되는 터치 입력, 및/또는 연속적인 음악 시퀀스를 그리는 터치 입력을 수신할 수도 있다. 또한, 사용자 입력부(2320)는 이산적인 음악 시퀀스에 대응되는 모션 입력, 및/또는 연속적인 음악 시퀀스를 그리는 모션 입력을 수신할 수도 있다.
또한, 사용자 입력부(2320)는, 음악가 또는 특정 음악를 선택하는 입력을 수신할 수도 있다.
또한, 전자 기기는, 제어부(2330)를 이용하여, 상기 음악 신호를 기초로 시간에 따라서 연속적으로 변하는 상기 피치들을 포함하는 제2 음악 시퀀스를 생성하고, 제2 음악 시퀀스에 대하여 상대적인 음악 정보를 가지는 제2 상대 음악 시퀀스를 생성하고, 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
또한, 전자 기기는, 제어부(2330)를 이용하여, 위치 정보를 기초로 제2 음악 시퀀스 중에서 비교에 사용되는 제2 부분 음악 시퀀스를 추출할 수 있다. 예를 들어, 위치 정보는 제2 부분 음악 시퀀스가 시작되는 위치를 지시하는 시작 정보 및 제2 부분 음악 시퀀스가 종료되는 위치를 지시하는 종료 정보를 포함할 수 있다.
또한, 전자 기기는, 제어부(2330)를 이용하여, 조정 정보를 기초로 제2 부분 음악 시퀀스를 제2 상대 음악 시퀀스로 조정할 수 있다. 예를 들어, 조정 정보는 제2 부분 음악 시퀀스의 음의 피치를 조정하는 피치 조정 정보, 및 제2 부분 음악 시퀀스의 음의 길이를 조정하는 길이 조정 정보 중에서 적어도 하나를 포함할 수 있다.
전자 기기는 시퀀스 레벨에서 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 유사도를 획득할 수 있다.
예를 들어, 전자 기기는, 제어부(2330)를 이용하여, 제1 음악 시퀀스 및 제2 상대 음악 시퀀스를 언더샘플링할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 언더샘플링된 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 동기화할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 동기화된 제1 음악 시퀀스 및 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
또한, 전자 기기는 노트 레벨에서 제1 음악 시퀀스와 제2 상대 음악 시퀀스의 유사도를 획득할 수 있다.
예를 들어, 전자 기기는, 제어부(2330)를 이용하여, 제2 상대 음악 시퀀스에 포함되는 피치들의 통계 값을 포함하는 노트 정보를 획득할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 노트 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득할 수 있다.
노트 정보를 획득하는 방법과 관련하여, 전자 기기는, 제어부(2330)를 이용하여, 제2 상대 음악 시퀀스 내에서 노트에 대응되는 노트 구간의 위치 정보 및 상기 듀레이션을 결정할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 제2 상대 음악 시퀀스의 노트 구간 내에 포함되는 피치들을 대표하는 적어도 하나의 피치 성분 정보를 획득할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 노트 구간 내에서 적어도 하나의 피치 성분 정보의 통계 값을 지시하는 적어도 하나의 피치 성분 통계 정보를 생성할 수 있다.
상대적인 유사도를 획득하는 방법과 관련하여, 전자 기기는, 제어부(2330)를 이용하여, 제1 음악 시퀀스와 제2 상대 음악 시퀀스를 동기화할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 제1 음악 시퀀스의 피치 정보와 제2 상대 음악 시퀀스의 피치 성분 정보를 매칭할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 매칭된 피치 성분 정보에 대응되는 피치 성분 통계 정보를 결정할 수 있다. 또한, 전자 기기는, 제어부(2330)를 이용하여, 결정된 피치 성분 통계 정보를 기초로 제1 음악 시퀀스와 제2 상대 음악 시퀀스 사이의 유사도를 획득할 수 있다.
또한, 전자 기기는, 디스플레이를 이용하여, 제1 음악 시퀀스 및/또는 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)에 관한 정보를 디스플레이 할 수 있다. 예를 들어, 전자 기기는 음악 신호를 기초로 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)를 디스플레이 할 수 있다. 또한, 전자 기기는 제1 음악 시퀀스 및 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)의 비교 결과를 디스플레이할 수 있다. 예를 들어, 전자 기기는 제1 음악 시퀀스 및/또는 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스) 사이의 유사도를 디스플레이 할 수 있다.
또한, 전자 기기는 제2 음악 시퀀스(또는 제2 상대 음악 시퀀스)와 유사한 제1 음악 시퀀스에 대한 정보를 디스플레이 할 수 있다. 전자 기기는 유사도를 기초로 오름차순 및/또는 내림차순으로 제1 음악 시퀀스에 관한 정보를 디스플레이할 수 있다.
예를 들어, 검색된 제1 음악 시퀀스에 대한 정보는 제목, 박자, 음계, 음표, 악보, 코드, 음악 데이터가 저장된 위치, 작곡가, 작사자, 음악 데이터에서 동일 및/또는 유사한 부분의 위치, 및/또는 유사도를 포함할 수 있다.
전자 기기에 대한 구체적인 내용은 전술한 내용을 모두 포함할 수 있다.
도 24는 예시적인 전자 시스템을 나타낸 도면이다.
도 24을 참조하면, 전자 시스템(2400)은 적어도 하나의 전자 기기(2401, 2402, 2404), 서버(2406) 및/또는 네트워크(2462)를 포함할 수 있다.
본 명세서에 따른 전자 기기는, 통신 기능이 포함된 장치일 수 있다. 즉 도 1을 참조하여 설명된 전자 기기(110)는 다양한 형태의 장치로 구현될 수 있다. 예를 들어, 전자 기기는 스마트 폰(smart phone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(ebook reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 신문, 또는 스마트 워치(smartwatch))중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 기기는 통신 기능을 갖춘 스마트 가전 제품(smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들자면, 전자 기기는 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들어, 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 기기는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller's machine) 또는 상점의 POS(point of sales) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 기기는 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 본 명세서에 따른 전자 기기는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 명세서에 따른 전자 기기는 플렉서블 장치일 수 있다. 또한, 본 명세서에 따른 전자 기기는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.
전자 기기(2401)는 버스(2410), 프로세서(2420), 메모리(2430), 입출력 인터페이스(2450), 디스플레이(2460), 및/또는 통신 인터페이스(2470)를 포함할 수 있다.
이때, 네트워크(2462)는 유선으로 연결된 LAN 과 케이블채널망, 무선으로 연결된 가능한 모든 방법을 포함할 수 있다.
어떤 실시 예에서, 상기 전자 기기(2401)는 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다.
상기 버스(2410)는, 예를 들어, 구성요소들(2410-2470)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
상기 프로세서(2420)는 중앙처리장치(Central Processing Unit; CPU), 어플리케이션 프로세서(Application Processor; AP), 또는 커뮤니케이션 프로세서(Communication Processor; CP) 중 하나 또는 그 이상을 포함할 수 있다. 상기 프로세서(2420)는, 예를 들어, 상기 전자 기기(2401)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
한편, 상기 프로세서(2420)는 도 23을 참조하여 설명된 제어부(2330)일 수 있다.
상기 메모리(2430)는 휘발성(volatile) 및/또는 비휘발성(non-volatile) 메모리를 포함할 수 있다. 상기 메모리(2430)는, 예를 들어, 상기 전자 기기(2401)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 상기 메모리(2430)는 소프트웨어 및/또는 프로그램(2440)을 저장할 수 있다. 상기 프로그램(2440)은, 예를 들어, 커널(2441), 미들웨어(2443), 어플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) (2445), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(2447) 등을 포함할 수 있다. 상기 커널(2441), 상기 미들웨어(2443), 또는 상기 API(2445)의 적어도 일부는, 운영체제 (Operating System; OS)로 지칭될 수 있다.
상기 커널(2441)은, 예를 들어, 다른 프로그램들(예: 상기 미들웨어(2443), 상기 API(2445), 또는 상기 어플리케이션 프로그램(2447))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 상기 버스(2410), 상기 프로세서(2420), 또는 상기 메모리(2430) 등)을 제어 또는 관리할 수 있다. 또한, 상기 커널(2441)은 상기 미들웨어(2443), 상기 API(2445), 또는 상기 어플리케이션 프로그램(2447)에서 상기 전자 기기(2401)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
상기 미들웨어(2443)는, 예를 들어, 상기 API(2445) 또는 상기 어플리케이션 프로그램(2447)이 상기 커널(2441)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다.
또한, 상기 미들웨어(2443)는 상기 어플리케이션 프로그램(2447)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들어, 상기 미들웨어(2443)는 상기 어플리케이션 프로그램(2447) 중 적어도 하나에 상기 전자 기기(2401)의 시스템 리소스(예: 상기 버스(2410), 상기 프로세서(2420), 또는 상기 메모리(2430) 등)를 사용할 수 있는 우선 순위를 부여할 수 있다. 예컨대, 상기 미들웨어(2443)는 상기 적어도 하나에 부여된 우선 순위에 따라 상기 하나 이상의 작업 요청들을 처리함으로써, 상기 하나 이상의 작업 요청들에 대한 스케쥴링 또는 로드 밸런싱 등을 수행할 수 있다.
상기 API(2445)는, 예를 들어, 상기 어플리케이션(2447)이 상기 커널(2441) 또는 상기 미들웨어(2443)가 제공하는 기능을 제어하기 위한 인터페이스로, 예를 들어, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
상기 입출력 인터페이스(2450)는, 예를 들어, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 상기 전자 기기(2401)의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 상기 입출력 인터페이스(2450)은 상기 전자 기기(2401)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
상기 디스플레이(2460)는, 예를 들어, 액정 디스플레이(Liquid Crystal Display; LCD), 발광 다이오드(Light Emitting Diode; LED) 디스플레이, 유기 발광 다이오드(Organic Light-Emitting Diode; OLED) 디스플레이, 또는 마이크로 전자기계 시스템(Micro-Electro-Mechanical Systems; MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 상기 디스플레이(2460)는, 예를 들어, 사용자에게 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)을 표시할 수 있다. 상기 디스플레이(2460)는, 터치 스크린을 포함할 수 있으며, 예를 들어, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.
상기 통신 인터페이스(2470)는, 예를 들어, 상기 전자 기기(2401)와 외부 장치(예: 전자 기기(2402), 전자 기기(2404), 또는 서버(2406)) 간의 통신을 설정할 수 있다. 예를 들어, 상기 통신 인터페이스(2470)는 무선 통신 또는 유선 통신을 통해서 네트워크(2462)에 연결되어 외부 장치(예: 전자 기기(2404) 또는 서버(2406))와 통신할 수 있다.
상기 무선 통신은, 예를 들어, 셀룰러 통신을 포함할 수 있다. 상기 셀룰러 통신은, 예를 들어, LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 포함할 수 있다. 또한, 상기 무선 통신은, 예를 들어, 근거리 통신(2464)을 포함할 수 있다. 상기 근거리 통신(2464)은, 예를 들어, Wi-Fi(wireless fidelity), 블루투스(Bluetooth) 또는 NFC(nearfield communication) 등 적어도 하나를 포함할 수 있다. 또한, 상기 무선 통신은 GPS(global positioning system)를 포함할 수 있다.
상기 유선 통신은, 예를 들어, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 상기 네트워크(2462)는 통신 네트워크(telecommunications network), 예를 들어, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
전자 기기(2402) 및 전자 기기(2404) 각각은 상기 전자 기기(2401)와 동일한 또는 다른 종류의 장치일 수 있다. 한 실시 예에 따르면, 상기 서버(2406)는 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시예에 따르면, 상기 전자 기기(2401)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 장치(예: 전자 기기(2402, 2404), 또는 서버(2406))에서 실행될 수 있다. 한 실시예에 따르면, 상기 전자 기기(2401)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 상기 전자 기기(2401)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 장치(예: 전자 기기(2402, 2404), 또는 서버(2406))에게 요청할 수 있다. 외부 장치(예: 전자 기기(2402, 2404), 또는 서버(2406))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 상기 전자 기기(2401)로 전달할 수 있다. 상기 전자 기기(2401)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들어, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 25는 예시적인 전자 기기를 나타내는 블록도이다.
상기 전자 기기(2501)는, 예를 들어, 도 24에 도시된 전자 기기(2401)의 전체 또는 일부를 포함할 수 있다. 상기 전자 기기(2500)는 하나 이상의 프로세서(예: AP(application processor))(2510), 통신 모듈(2520), 상기 메모리(2530), 센서 모듈(2540), 입력 장치(2550), 디스플레이(2560), 인터페이스(2570), 오디오 모듈(2580), 카메라 모듈(2591), 전력 관리 모듈(2595), 배터리(2596), 인디케이터(2597), 및 모터(2598)를 포함할 수 있다.
상기 프로세서(2510)는, 예를 들어, 운영 체제 또는 응용 프로그램을 구동하여 상기 프로세서(2510)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 상기 프로세서(2510)는, 예를 들어, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 상기 프로세서(2510)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서(image signal processor)를 더 포함할 수 있다. 상기 프로세서(2510)는 도 25에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈(2521))를 포함할 수도 있다. 상기 프로세서(2510)는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
상기 통신 모듈(2520)은, 도 24의 통신 인터페이스(2470)와 동일 또는 유사한 구성을 가질 수 있다. 상기 통신 모듈(2520)은, 예를 들어, 셀룰러 모듈(2521), Wi-Fi 모듈(2523), 블루투스 모듈(2525), GPS 모듈(2527), NFC 모듈(2528) 및RF(radio frequency) 모듈(2529)를 포함할 수 있다.
한편, 상기 전자 기기는, 상기 통신 모듈(2520)를 이용하여, 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득할 수 있다. 즉, 상기 통신 모듈(2520)은 도 23을 참조하여 설명된 통신부(2310)의 적어도 일부 수 있다.
상기 셀룰러 모듈(2521)은, 예를 들어, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈(2521)은 가입자 식별 모듈(예: SIM 카드)(2524)을 이용하여 통신 네트워크 내에서 상기 전자 기기(2501)의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈(2521)은 상기 프로세서(2510)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈(2521)은 커뮤니케이션 프로세서(Communication Processor; CP)를 포함할 수 있다.
상기 Wi-Fi 모듈(2523), 상기 블루투스 모듈(2525), 상기 GPS 모듈(2527) 또는 상기 NFC 모듈(2528) 각각은, 예를 들어, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시예에 따르면, 상기 셀룰러 모듈(2521), 상기 Wi-Fi 모듈(2523), 상기 블루투스 모듈(2525), 상기 GPS 모듈(2527) 또는 상기 NFC 모듈(2528) 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다.
상기 RF 모듈(2529)은, 예를 들어, 통신 신호(예: RF 신호)를 송수신할 수 있다. 상기 RF 모듈(2529)은, 예를 들어, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter), LNA(low noise amplifier) 등을 포함할 수 있다. 또한 상기 RF 모듈(2529)은 무선 통신에서 자유 공간 상의 전자파를 송수신하기 위한 부품, 예를 들어, 도체 또는 도선 등을 더 포함할 수 있다. 도 2에서는 상기 셀룰러 모듈(2521), 상기 Wi-Fi 모듈(2523), 상기 블루투스 모듈(2525), 상기 GPS 모듈(2527) 또는 상기 NFC 모듈(2528)이 하나의 RF 모듈(2529)를 서로 공유하는 것으로 도시되어 있으나, 한 실시예에 따르면, 상기 셀룰러 모듈(2521), 상기 Wi-Fi 모듈(2523), 상기 블루투스 모듈(2525), 상기 GPS 모듈(2527) 또는 상기 NFC 모듈(2528) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
상기 SIM 카드(2524)는, 예를 들어, 가입자 식별 모듈을 포함하는 카드 및/또는 내장 SIM(embedded SIM)을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예:IMSI(international mobile subscriber identity))를 포함할 수 있다.
상기 메모리(2530)(예: 메모리(2430))는, 예를 들어, 내장 메모리(2532) 또는 외장 메모리(2534)를 포함할 수 있다. 상기 내장 메모리(2532)는, 예를 들어, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(Solid State Drive; SSD) 중 적어도 하나를 포함할 수 있다.
상기 외장 메모리(2534)는 플래시 드라이브(flash drive), 예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(MultiMediaCard) 또는 메모리 스틱(memory stick) 등을 더 포함할 수 있다. 상기 외장 메모리(2534)는 다양한 인터페이스를 통하여 상기 전자 기기(2501)와 기능적으로 및/또는 물리적으로 연결될 수 있다.
상기 센서 모듈(2540)은, 예를 들어, 물리량을 계측하거나 상기 전자 기기(2501)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 상기 센서 모듈(2540)은, 예를 들어, 근접 센서(2541), 자이로 센서(2542), 조도 센서(2543), 마그네틱 센서(2544), 가속도 센서(2545), 그립 센서(2546), 제스처 센서(2547), 또는 생체 센서(2548) 중 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로(additionally or alternatively), 상기 센서 모듈(2540)은, 예를 들어, 후각 센서(E-nose sensor), EMG 센서(electromyography sensor), EEG 센서(electroencephalogram sensor), ECG 센서(electrocardiogram sensor), IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 상기 센서 모듈(2540)은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 상기 전자 기기(2501)는 상기 프로세서(2510)의 일부로서 또는 별도로, 상기 센서 모듈(2540)을 제어하도록 구성된 프로세서를 더 포함하여, 상기 프로세서(2510)가 슬립(sleep) 상태에 있는 동안, 상기 센서 모듈(2540)을 제어할 수 있다.
상기 입력 장치(2550)는, 예를 들어, 터치 패널(touch panel)(2552), (디지털) 펜 센서(pen sensor)(2554) 또는 키(key)(2556)를 포함할 수 있다. 상기 터치 패널(2552)은, 예를 들어, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(2552)은 제어 회로를 더 포함할 수도 있다. 상기 터치 패널(2552)은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다.
상기 펜 센서(2554)는, 예를 들어, 터치 패널의 일부이거나, 별도의 인식용 쉬트(sheet)를 포함할 수 있다. 상기 키(2556)는, 예를 들어, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다.
상기 디스플레이(2560)(예: 디스플레이(2460))는 패널(2562), 홀로그램 장치(2564), 또는 프로젝터(2566)를 포함할 수 있다. 상기 패널(2562)은, 도 24의 상기 디스플레이(2460)와 동일 또는 유사한 구성을 포함할 수 있다. 상기 패널(2562)은, 예를 들어, 유연하게(flexible), 투명하게(transparent), 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널(2562)은 상기 터치 패널(2552)과 하나의 모듈로 구성될 수도 있다. 상기 홀로그램 장치(2564)는 빛의 간섭을 이용하여 입체영상을 허공에 보여줄 수 있다. 상기 프로젝터(2566)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들어, 상기 전자 기기(2501)의 내부 또는 외부에 위치할 수 있다. 한 실시예에 따르면, 상기 디스플레이(2560)는 상기 패널(2562), 상기 홀로그램 장치(2564), 또는 상기 프로젝터(2566)를 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 인터페이스(2570)는, 예를 들어, HDMI(high-definition multimedia interface), 또는 USB(universal serial bus)를 포함할 수 있다. 상기 인터페이스(2570)는, 예를 들어, 도 24에 도시된 상기 통신 인터페이스(2470)에 포함될 수 있다. 추가적으로 또는 대체적으로(additionally and alternatively), 상기 인터페이스(2570)는, 예를 들어, 광 인터페이스(optical interface), D-sub(D-subminiature), MHL(mobile high-definition link) 인터페이스, SD(secure digital) 카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
상기 오디오 모듈(2580)은, 예를 들어, 소리(sound)와 전기 신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 모듈(2580)의 적어도 일부 구성요소는, 예를 들어, 도 24에 도시된 입출력 인터페이스(2450)에 포함될 수 있다. 상기 오디오 모듈(2580)은, 예를 들어, 스피커(2582), 리시버(2584), 이어폰(2586), 또는 마이크(2588) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
한편, 상기 오디오 모듈(2580)은 사용자로부터 음악 신호를 수신할 수 있다. 상기 오디오 모듈(2580)은 사용자로부터 발화되는 허밍 신호를 수신할 수 있다.
상기 카메라 모듈(2591)은, 예를 들어, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, ISP(image signal processor), 또는 플래시(flash)(예: LED 또는 xenon lamp 등)를 포함할 수 있다.
상기 전력 관리 모듈(2595)은, 예를 들어, 상기 전자 기기(2501)의 전력을 관리할 수 있다. 한 실시예에 따르면, 상기 전력 관리 모듈(2595)은 PMIC(power management integrated circuit), 충전 IC(charger integrated circuit), 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다. 상기 PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들어, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들어, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 상기 배터리 게이지는, 예를 들어, 상기 배터리(2596)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 상기 배터리(2596)는, 예를 들어, 충전식 전지(rechargeable battery) 및/또는 태양 전지(solar battery)를 포함할 수 있다.
상기 인디케이터(2597)는 상기 전자 기기(2501) 또는 그 일부(예: 상기 프로세서(2510))의 특정 상태, 예를 들어, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 상기 모터(2598)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동(vibration), 또는 햅틱(haptic) 효과 등을 발생시킬 수 있다. 도시되지는 않았으나, 상기 전자 기기(2501)는 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 모바일 TV 지원을 위한 처리 장치는, 예를 들어, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(MediaFloTM)등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 기기의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 기기는 본 문서에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시예에 따른 전자 기기의 구성요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
도 26은 예시적인 프로그램 모듈의 블록도이다.
한 실시예에 따르면, 프로그램 모듈(2600)(예: 프로그램(2440))은 전자 기기(예: 상기 전자 기기(2401))에 관련된 자원을 제어하는 운영 체제(Operating System; OS) 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 상기 어플리케이션 프로그램(2447))을 포함할 수 있다. 운영 체제는, 예를 들어, 안드로이드(android), iOS, 윈도우즈(windows), 심비안(symbian), RTOS(Realtime OS), 리눅스(Linux), 웹오에스(webOS), P2P(Peer to Peer)기반의 특징을 가지는 OS, 또는 타이젠(tizen) 등이 될 수 있다.
상기 프로그램 모듈(2600)은 커널(2620), 미들웨어(2630), 어플리케이션 프로그래밍 인터페이스(application programming interface (API))(2660), 및/또는 어플리케이션(2670)을 포함할 수 있다. 상기 프로그램 모듈(2600)의 적어도 일부는 전자 기기 상에 프리로드(preload) 되거나, 외부 전자 기기(예: 외부 전자 기기(2402, 2404), 서버(2406)등)로부터 다운로드(download) 가능하다.
상기 커널(2620)(예: 상기 커널(2441))은, 예를 들어, 시스템 리소스 매니저(2621) 및/또는 디바이스 드라이버(2623)를 포함할 수 있다. 상기 시스템 리소스 매니저(2621)는 시스템 리소스의 제어, 할당, 또는 회수 등을 수행할 수 있다. 한 실시 예에 따르면, 상기 시스템 리소스 매니저(2621)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부 등을 포함할 수 있다. 상기 디바이스 드라이버(2623)는, 예를 들어, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, Wi-Fi 드라이버, 오디오 드라이버, 또는 IPC(inter process communication) 드라이버를 포함할 수 있다.
상기 미들웨어(2630)는, 예를 들어, 상기 어플리케이션(2670)이 공통적으로 필요로 하는 기능을 제공하거나, 상기 어플리케이션(2670)이 전자 기기 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 상기 API(2660)를 통해 다양한 기능들을 상기 어플리케이션(2670)으로 제공할 수 있다. 한 실시 예에 따르면, 상기 미들웨어(2630)(예: 미들웨어(24(43))는 런타임라이브러리(2635), 어플리케이션 매니저(application manager)(2641), 윈도우 매니저(window manager)(2642), 멀티미디어 매니저(multimedia manager)(2643), 리소스 매니저(resource manager)(2644), 파워 매니저(power manager)(2645), 데이터베이스 매니저(database manager)(2646), 패키지 매니저(package manager)(2647), 연결 매니저(connectivity manager)(2648), 통지 매니저(notification manager)(2649), 위치 매니저(location manager)(2650), 그래픽 매니저(graphic manager)(2651), 또는 보안 매니저(security manager)(2652) 중 적어도 하나를 포함할 수 있다.
상기 런타임 라이브러리(2635)는, 예를 들어, 상기 어플리케이션(2670)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 상기 런타임 라이브러리(2635)는 입출력 관리, 메모리 관리, 또는 산술 함수에 대한 기능 등을 수행할 수 있다.
상기 어플리케이션 매니저(2641)는, 예를 들어, 상기 어플리케이션(2670) 중 적어도 하나의 어플리케이션의 생명 주기(lifecycle)를 관리할 수 있다. 상기 윈도우 매니저(2642)는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 상기 멀티미디어 매니저(2643)는 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 상기 리소스 매니저(2644)는 상기 어플리케이션(2670) 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다.
상기 파워 매니저(2645)는, 예를 들어, 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리(battery) 또는 전원을 관리하고, 전자 기기의 동작에 필요한 전력 정보 등을 제공할 수 있다. 상기 데이터베이스 매니저(2646)는 상기 어플리케이션(2670) 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 상기 패키지 매니저(2647)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.
상기 연결 매니저(2648)는, 예를 들어, Wi-Fi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 상기 통지 매니저(2649)는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 상기 위치 매니저(2650)는 전자 기기의 위치 정보를 관리할 수 있다. 본 발명에서 표현하는 위치정보는 GPS(Global Positioning System) 정보 뿐만 아니라, 가속도 센서 정보, 자이로 센서 정보, LBS(Location Based Service)를 위한 실내 좌표 센서 정보, 네트워크 기반으로 추정되는 위치 정보, 통신망을 이용한 위치 정보, 및 그 외 신규 전자 기기로부터 전달받은 움직임과 관련된 위치 정보를 포함할 수 있다. 상기 그래픽 매니저(2651)는 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 상기 보안 매니저(2652)는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다. 한 실시예에 따르면, 전자 기기(예: 상기 전자 기기(2401))가 전화 기능을 포함한 경우, 상기 미들웨어(2630)는 전자 기기의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager)를 더 포함할 수 있다.
상기 미들웨어(2630)는 전술된 구성요소들의 다양한 기능의 조합을 형성하는 미들웨어 모듈을 포함할 수 있다. 상기 미들웨어(2630)는 차별화된 기능을 제공하기 위해 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 또한, 상기 미들웨어(2630)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다.
상기 API(2660)(예: API(2445))는, 예를 들어, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들어, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠(tizen)의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
상기 어플리케이션(2670)(예: 상기 어플리케이션 프로그램(2447))은, 예를 들어, 홈(2671), 다이얼러(dialer)(2672), SMS/MMS(2673), IM(instant message)(2674), 브라우저(2675), 카메라(2676), 알람(2677), 컨택트(2678), 음성 다이얼(2679), 이메일(2680), 달력(2681), 미디어 플레이어(2682), 앨범(2683), 또는 시계(2684), 건강 관리(health care)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보 제공(예: 기압, 습도, 또는 온도 정보 등을 제공) 등의 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다.
한 실시예에 따르면, 상기 어플리케이션(2670)은 전자 기기(예: 상기 전자 기기(2401))와 외부 장치(예: 전자 기기(2402, 2404)) 사이의 정보 교환을 지원하는 어플리케이션(이하, 설명의 편의 상, "정보 교환 어플리케이션")을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들어, 외부 장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 외부 장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들어, 상기 알림 전달 어플리케이션은 전자 기기의 다른 어플리케이션(예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션, 또는 환경 정보 어플리케이션 등)에서 발생된 알림 정보를 외부 장치(예: 전자 기기(2402, 2404))로 전달하는 기능을 포함할 수 있다. 또한, 상기 알림 전달 어플리케이션은, 예를 들어, 외부 전자 기기로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다.
상기 장치 관리 어플리케이션은, 예를 들어, 전자 기기와 통신하는 외부 장치(예: 전자 기기(2402, 2404))의 적어도 하나의 기능(예: 외부 장치 자체(또는 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는 해상도) 조절), 외부 장치에서 동작하는 어플리케이션 또는 외부 장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스 등)를 관리(예: 설치, 삭제, 또는 업데이트)할 수 있다.
한 실시예에 따르면, 상기 어플리케이션(2670)은 외부 장치(예: 전자 기기(2402, 2404))의 속성(에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션 등)을 포함할 수 있다. 한 실시예에 따르면, 상기 어플리케이션(2670)은 외부 장치(예: 서버(2406) 또는 전자 기기(2402, 2404))로부터 수신된 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 상기 어플리케이션(2670)은 프리로드 어플리케이션(preloaded application) 또는 서버로부터 다운로드 가능한 제3자 어플리케이션(third party application)을 포함할 수 있다. 도시된 실시 예에 따른 상기 프로그램 모듈(2610)의 구성요소들의 명칭은 운영 체제의 종류에 따라서 달라질 수 있다.
다양한 실시예에 따르면, 상기 프로그램 모듈(2610)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현될 수 있다. 상기 프로그램 모듈(2600)의 적어도 일부는, 예를 들어, 프로세서(예: 상기 프로세서(2510))에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그램 모듈(2600)의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들어, 모듈, 프로그램, 루틴, 명령어 세트(sets of instructions) 또는 프로세스 등을 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들어, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들어, 유닛(unit), 로직(logic), 논리블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어,"모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 상기 프로세서(2420))에 의해 실행될 경우, 상기 하나 이상의 프로세서가상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들어, 상기 메모리(2430)가 될 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digitalversatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술된 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서 본 명세서의 기술에 대한 바람직한 실시 예가 첨부된 도면들을 참조하여 설명되었다. 여기서, 본 명세서 및 청구 범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 본 기술의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다.
본 기술의 범위는 본 명세서에 개시된 실시 예들로 한정되지 아니하고, 본 기술은 본 기술명의 사상 및 특허청구범위에 기재된 범주 내에서 다양한 형태로 수정, 변경, 또는 개선될 수 있다.
2310 : 통신부 2320 : 사용자 입력부
2330 : 제어부

Claims (10)

  1. 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득하는 단계;
    시간에 따라서 연속적으로 변하는 피치들을 포함하는 제2 음악 시퀀스를 획득하는 단계;
    상기 제2 음악 시퀀스에 대하여 상대적인 음 높이 및 음 길이 중에서 적어도 하나를 가지는 제2 상대 음악 시퀀스를 생성하는 단계; 및
    상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계
    를 포함하는 음악 시퀀스 비교 방법.
  2. 제1항에 있어서,
    상기 제2 상대 음악 시퀀스를 생성하는 단계는,
    위치 정보를 기초로 상기 제2 음악 시퀀스 중에서 비교에 사용되는 제2 부분 음악 시퀀스를 추출하는 단계를 포함하고,
    상기 위치 정보는 상기 제2 부분 음악 시퀀스가 시작되는 위치를 지시하는 시작 정보 및 상기 제2 부분 음악 시퀀스가 종료되는 위치를 지시하는 종료 정보를 포함하는 음악 시퀀스 비교 방법.
  3. 제2항에 있어서,
    상기 제2 상대 음악 시퀀스를 생성하는 단계는,
    조정 정보를 기초로 제2 부분 음악 시퀀스를 제2 상대 음악 시퀀스로 조정하는 단계를 포함하고,
    상기 조정 정보는 상기 제2 부분 음악 시퀀스의 음의 피치를 조정하는 피치 조정 정보, 및 상기 제2 부분 음악 시퀀스의 음의 길이를 조정하는 길이 조정 정보 중에서 적어도 하나를 포함하는 음악 시퀀스 비교 방법.
  4. 제3항에 있어서,
    상기 상대적인 유사도를 획득하는 단계는,
    상기 제1 음악 시퀀스 및 상기 제2 상대 음악 시퀀스를 언더샘플링하는 단계를 포함하는 음악 시퀀스 비교 방법.
  5. 제4항에 있어서,
    상기 상대적인 유사도를 획득하는 단계는,
    언더샘플링된 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스를 동기화하는 단계를 포함하는 음악 시퀀스 비교 방법.
  6. 제5항에 있어서,
    상기 상대적인 유사도를 획득하는 단계는,
    상기 동기화된 제1 음악 시퀀스 및 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함하는 음악 시퀀스 비교 방법.
  7. 제3항에 있어서,
    상기 상대적인 유사도를 획득하는 단계는,
    상기 제2 상대 음악 시퀀스에 포함되는 피치들의 통계 값을 포함하는 노트 정보를 획득하는 단계; 및
    상기 노트 정보를 기초로 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함하는 음악 시퀀스 비교 방법.
  8. 제7항에 있어서,
    상기 노트 정보를 획득하는 단계는,
    상기 제2 상대 음악 시퀀스 내에서 노트에 대응되는 위치 정보 및 듀레이션을 결정하는 단계;
    상기 제2 상대 음악 시퀀스의 듀레이션 내에 포함되는 상기 피치들을 대표하는 적어도 하나의 피치 성분 정보를 획득하는 단계; 및
    상기 듀레이션 내에서 상기 적어도 하나의 피치 성분 정보의 통계 값을 지시하는 적어도 하나의 피치 성분 통계 정보를 생성하는 단계를 포함하는 음악 시퀀스 비교 방법.
  9. 제8항에 있어서,
    상기 상대적인 유사도를 획득하는 단계는,
    상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스를 동기화하는 단계;
    상기 제1 음악 시퀀스의 피치 정보와 상기 제2 상대 음악 시퀀스의 상기 피치 성분 정보를 매칭하는 단계;
    상기 매칭된 피치 성분 정보에 대응되는 피치 성분 통계 정보를 결정하는 단계; 및
    상기 결정된 피치 성분 통계 정보를 기초로 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 단계를 포함하는 음악 시퀀스 비교 방법.
  10. 시간에 따라서 이산적으로 변하는 피치들을 포함하는 제1 음악 시퀀스를 획득하는 통신부;
    사용자로부터 음악 신호를 수신하는 사용자 입력부; 및
    상기 음악 신호를 기초로 시간에 따라서 연속적으로 변하는 상기 피치들을 포함하는 제2 음악 시퀀스를 생성하고, 상기 제2 음악 시퀀스에 대하여 상대적인 음악 정보를 가지는 제2 상대 음악 시퀀스를 생성하고, 및 상기 제1 음악 시퀀스와 상기 제2 상대 음악 시퀀스 사이의 상대적인 유사도를 획득하는 제어부
    를 포함하는 음악 시퀀스 비교 장치.
KR1020170030914A 2017-03-11 2017-03-11 상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석 KR20180103639A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170030914A KR20180103639A (ko) 2017-03-11 2017-03-11 상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170030914A KR20180103639A (ko) 2017-03-11 2017-03-11 상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석

Publications (1)

Publication Number Publication Date
KR20180103639A true KR20180103639A (ko) 2018-09-19

Family

ID=63719034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170030914A KR20180103639A (ko) 2017-03-11 2017-03-11 상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석

Country Status (1)

Country Link
KR (1) KR20180103639A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200063095A (ko) * 2018-11-20 2020-06-04 베이징 시아오미 인텔리전트 테크놀로지 컴퍼니 리미티드 멀티 빔 선택 방법 및 장치
KR20220125389A (ko) 2021-03-05 2022-09-14 이화여자대학교 산학협력단 멜로디 라인의 변곡점을 이용한 음악 검색 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200063095A (ko) * 2018-11-20 2020-06-04 베이징 시아오미 인텔리전트 테크놀로지 컴퍼니 리미티드 멀티 빔 선택 방법 및 장치
KR20220125389A (ko) 2021-03-05 2022-09-14 이화여자대학교 산학협력단 멜로디 라인의 변곡점을 이용한 음악 검색 방법 및 장치

Similar Documents

Publication Publication Date Title
CN106575424B (zh) 使音乐信息可视化的方法和装置
EP3335214B1 (en) Method and electronic device for playing a virtual musical instrument
US10996847B2 (en) Method for providing content search interface and electronic device for supporting the same
EP2945045B1 (en) Electronic device and method of playing music in electronic device
CN108027952B (zh) 用于提供内容的方法和电子设备
CN108496220B (zh) 电子设备及其语音识别方法
US9812104B2 (en) Sound providing method and electronic device for performing the same
KR102560635B1 (ko) 컨텐트 인식 장치 및 그 동작 방법
KR20180022021A (ko) 음성 인식 방법 및 이를 수행하는 전자 장치
KR102398027B1 (ko) 전자 장치의 동적 프리뷰 디스플레이 방법 및 그 전자 장치
KR102651705B1 (ko) 전자 장치에서 진동 제공 방법 및 장치
KR20180081922A (ko) 전자 장치의 입력 음성에 대한 응답 방법 및 그 전자 장치
KR102573725B1 (ko) 콘텐트 프리로딩 방법 및 이를 지원하는 전자 장치
KR20170019201A (ko) 전자 장치 및 전자 장치에서 음을 재생하기 위한 방법
KR102282704B1 (ko) 영상 데이터를 재생하는 전자 장치 및 방법
KR20180103639A (ko) 상대적 유사도에 기초한 음악 시퀀스들의 유사도 분석
CN106611595B (zh) 用于将文本转换为语音的电子装置和方法
KR102512840B1 (ko) 실행 화면 레코딩 방법 및 그 방법을 처리하는 전자 장치
US11191439B2 (en) Electronic device and method for capturing contents
KR20180103634A (ko) 통계적 방법에 의한 음향 분석 및 비교
KR101979295B1 (ko) 2 차원 바코드 처리
US20170243065A1 (en) Electronic device and video recording method thereof
KR102700131B1 (ko) 이미지의 유사도에 기초하여 이미지들을 연속적으로 표시하는 방법 및 장치
KR20180013523A (ko) 이미지의 유사도에 기초하여 이미지들을 연속적으로 표시하는 방법 및 장치