KR20230078372A - 전자 장치 및 그 동작 방법 - Google Patents

전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20230078372A
KR20230078372A KR1020210166096A KR20210166096A KR20230078372A KR 20230078372 A KR20230078372 A KR 20230078372A KR 1020210166096 A KR1020210166096 A KR 1020210166096A KR 20210166096 A KR20210166096 A KR 20210166096A KR 20230078372 A KR20230078372 A KR 20230078372A
Authority
KR
South Korea
Prior art keywords
information
user
music
neural network
electronic device
Prior art date
Application number
KR1020210166096A
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 KR1020210166096A priority Critical patent/KR20230078372A/ko
Priority to PCT/KR2022/013989 priority patent/WO2023096119A1/ko
Publication of KR20230078372A publication Critical patent/KR20230078372A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0008Associated control or indicating means
    • G10H1/0025Automatic or semi-automatic music composition, e.g. producing random music, applying rules from music theory or modifying a musical piece
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • 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/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0272Voice signal separating
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • G10L25/63Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination for estimating an emotional state
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/101Music Composition or musical creation; Tools or processes therefor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/101Music Composition or musical creation; Tools or processes therefor
    • G10H2210/105Composing aid, e.g. for supporting creation, edition or modification of a piece of music
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/311Neural networks for electrophonic musical instruments or musical processing, e.g. for musical recognition or control, automatic composition or improvisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Hospice & Palliative Care (AREA)
  • Psychiatry (AREA)
  • Child & Adolescent Psychology (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하는 단계, 사용자의 이전 청취 이력에 기반하여 사용자 취향 정보를 획득하는 단계 및 적어도 하나의 뉴럴 네트워크를 이용하여, 음악 연주를 위한 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 단계를 포함하는, 전자 장치의 동작 방법이 개시된다.

Description

전자 장치 및 그 동작 방법{An electronic apparatus and a method thereof}
개시된 다양한 실시 예들은 전자 장치 및 그 동작 방법에 관한 것으로, 보다 상세하게는 상황이나 사용자의 취향 등을 기반으로 자동으로 음악을 생성하는 전자 장치 및 그 동작 방법에 관한 것이다.
음악을 작곡하는 것은 전문가적인 분야에 해당하기 때문에, 전문적인 지식 없이는 음악을 생성하는 것이 어렵다. 사용자는 정해진 카테고리에서 원하는 스타일의 음악을 선택하거나 입력 해야만 음악을 청취할 수 있다는 점에서 번거롭다는 문제가 있다. 또한, 음악 생성 장치는 사용자가 입력한 조건에 상응하는 음악을 생성하거나 검색하여 재생할 수는 있으나, 매번 바뀌는 다양한 사용자 상황까지 반영하지는 못한다는 문제가 있다.
이에, 주변 환경과 사용자의 취향, 디스플레이 장치에 출력되는 이미지 등을 자동으로 고려하여 사용자의 상황과 취향에 어울리는 음악을 생성하여 사용자에게 제공하는 기술이 요구된다.
다양한 실시 예들은 음악 연주를 위한 다양한 상황 정보 및 사용자의 취향 정보를 함께 고려하여 음악 연주를 위한 악보를 생성하는 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
다양한 실시 예들은 사용자 상황 정보와 스크린 상황 정보 중 적어도 하나에 기반하여 멀티 무드 정보를 획득하는 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
다양한 실시 예들은 멀티 무드 정보와 상황 정보 중 적어도 하나에 기반하여 음악을 생성하는 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
실시 예에 따른 전자 장치는 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하고, 사용자의 이전 음악 청취 이력에 기반하여 사용자 취향 정보를 획득하고, 적어도 하나의 뉴럴 네트워크를 이용하여, 상기 음악 연주를 위한 상황 정보 및 상기 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득할 수 있다.
실시 예에서, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 제1 뉴럴 네트워크를 이용하여, 상기 사용자 상황 정보 및 상기 스크린 상황 정보 중 적어도 하나로부터 멀티 무드(multi mood) 정보를 획득하고, 제2 뉴럴 네트워크를 이용하여, 상기 사용자 취향 정보, 상기 멀티 무드 정보, 및 상기 외부 상황 정보 및 중 적어도 하나로부터 메타데이터를 획득하고, 제3 뉴럴 네트워크를 이용하여, 상기 메타데이터로부터 상기 음악 연주를 위한 악보를 획득할 수 있다.
실시 예에서, 상기 제1 뉴럴 네트워크는 소프트맥스 회귀(Softmax Regression) 함수를 포함하고, 상기 제1 뉴럴 네트워크는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나의 변수 및 웨이트의 가중 합과 정답 셋 간의 차이가 최소가 되는 웨이트를 갖도록 학습된 뉴럴 네트워크일 수 있다.
실시 예에서, 상기 제2 뉴럴 네트워크는 트랜스포머 모델(Transformer model)의 인코더 및 출력 레이어를 포함하고, 상기 메타데이터는 제1 메타데이터 및 제2 메타데이터를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 사용자 취향 정보, 상기 멀티 무드 정보, 및 상기 외부 상황 정보 중 적어도 하나를 임베딩하여 상기 트랜스포머 모델의 인코더에 입력 시키고, 상기 트랜스포머 모델의 인코더에서 출력된 웨이트에 소프트맥스(softmax) 함수를 상기 출력 레이어로 적용하여 상기 제1 메타데이터를 획득하고, 상기 트랜스포머 모델의 인코더에서 출력된 웨이트에 풀리 커넥티드 레이어(fully connected layer)를 상기 출력 레이어로 적용하여 상기 제2 메타데이터를 획득하고, 상기 제1 메타데이터는 템포(tempo), 감도, 악기(instrument), 앰비언트 사운드(ambient sound) 중 적어도 하나를 포함하고, 상기 제2 메타데이터는 피치(pitch) 및 음악 연주 길이 중 적어도 하나를 포함할 수 있다.
실시 예에서, 상기 제3 뉴럴 네트워크는 트랜스포머 XL 모델(Transformer XL model)을 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 메타데이터를 임베딩하여 상기 트랜스포머 XL 모델에 입력 시켜 이벤트 시퀀스의 제1 확률 분포를 획득하고, 상기 이벤트 시퀀스의 제1 확률 분포를 샘플링하여 제1 마디(bar)를 획득할 수 있다.
실시 예에서, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1 마디를 상기 트랜스포머 XL 모델에 피드 포워드(feed forward)하여 상기 트랜스포머 XL 모델로부터 이벤트 시퀀스의 제2 확률 분포를 획득하고, 상기 이벤트 시퀀스의 제2 확률 분포를 샘플링하여 상기 제1 마디 다음에 오는 제2 마디를 획득할 수 있다.
실시 예에서, 상기 이벤트 시퀀스의 제1 확률 분포는 템포(tempo), 감도(velocity), 피치(pitch) 각각에 대한 확률 분포를 포함할 수 있다.
실시 예에서, 상기 장치는 사용자 취향 정보 데이터베이스를 더 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 사용자 취향 정보 데이터베이스로부터, 상기 사용자가 이전에 청취한 음악에 대한 정보에 기반하여 획득된 사용자 취향 정보를 획득하고, 상기 음악 연주를 위한 악보에 따라 음악을 재생하고, 상기 음악 재생과 관련된 정보를 상기 사용자 취향 정보 데이터베이스에 추가하여 상기 사용자 취향 정보 데이터베이스를 업데이트할 수 있다.
실시 예에서, 상기 사용자 취향 정보는 상기 사용자의 식별 정보, 상기 사용자가 이전에 청취한 음악의 무드 정보, 감도 정보, 악기 정보, 앰비언트 사운드 정보, 상기 음악이 재생된 빈도 정보, 상기 음악이 재생된 시간 정보, 상기 음악이 재생될 때의 스크린 상황 정보, 및 상기 음악이 재생될 때의 외부 컨텍스트 정보 중 적어도 하나를 포함할 수 있다.
실시 예에서, 상기 사용자 상황 정보는 사용자 식별 정보, 액티비티 정보, 및 감정 정보 중 적어도 하나를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 오디오 신호로부터 음성 및 노이즈를 분리하고, 상기 음성에 기반하여 상기 사용자를 식별하는 것, 상기 식별된 사용자의 상기 음성에 기반하여 상기 사용자의 감정 정보를 획득하는 것, 및 상기 음성 및 상기 노이즈 중 적어도 하나에 기반하여 상기 사용자가 수행하는 액티비티 정보를 획득하는 것 중 적어도 하나를 수행하여, 상기 음성 및 상기 노이즈 중 적어도 하나로부터 상기 사용자 상황 정보를 획득할 수 있다.
실시 예에서, 상기 장치는 디스플레이를 더 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 디스플레이에 출력되는 이미지의 스타일 정보 및 컬러 정보 중 적어도 하나에 기반하여 상기 스크린 상황 정보를 획득할 수 있다.
실시 예에서, 상기 장치는 센서 및 통신 모듈 중 적어도 하나를 더 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 센서 및 상기 통신 모듈 중 적어도 하나로부터 획득된 날씨 정보, 날짜 정보, 시간 정보, 계절 정보, 조도 정보 및 위치 정보 중 적어도 하나로부터 상기 외부 상황 정보를 획득할 수 있다.
실시 예에 따른 전자 장치의 동작 방법은 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하는 단계, 사용자의 이전 청취 이력에 기반하여 사용자 취향 정보를 획득하는 단계 및 적어도 하나의 뉴럴 네트워크를 이용하여, 상기 음악 연주를 위한 상황 정보 및 상기 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 단계를 포함할 수 있다.
실시 예에 따른 컴퓨터로 읽을 수 있는 기록 매체는 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하는 단계, 사용자의 이전 청취 이력에 기반하여 사용자 취향 정보를 획득하는 단계 및 적어도 하나의 뉴럴 네트워크를 이용하여, 상기 음악 연주를 위한 상황 정보 및 상기 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 단계를 포함하는 전자 장치의 동작 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체일 수 있다.
일 실시 예에 따른 전자 장치 및 그 동작 방법은 음악 연주를 위한 다양한 상황 정보 및 사용자의 취향 정보를 함께 고려하여 음악 연주를 위한 악보를 생성할 수 있다.
일 실시 예에 따른 전자 장치 및 그 동작 방법은 사용자 상황 정보와 스크린 상황 정보 중 적어도 하나에 기반하여 멀티 무드 정보를 획득할 수 있다.
일 실시 예에 따른 전자 장치 및 그 동작 방법은 멀티 무드 정보와 상황 정보 중 적어도 하나에 기반하여 음악을 생성할 수 있다.
도 1은 실시 예에 따라, 사용자의 취향과 상황을 고려하여 음악을 생성하고 이를 사용자에게 제공하는 것을 설명하기 위한 도면이다.
도 2는 실시 예에 따른 전자 장치의 내부 블록도이다.
도 3은 실시 예에 따른 전자 장치에 포함된 프로세서의 내부 블록도를 도시한다.
도 4는 실시 예에 따라, 전자 장치에 포함된 상황 정보 획득부의 내부 블록도를 도시한 도면이다.
도 5는 실시 예에 따라, 사용자 상황 정보 획득부가 사용자 상황 정보를 획득하는 방법을 설명하기 위한 도면이다.
도 6은 실시 예에 따라, 스크린 상황 정보 획득부가 스크린 상황 정보를 획득하는 방법을 설명하기 위한 도면이다.
도 7은 실시 예에 따라, 전자 장치가 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 것을 설명하기 위한 도면이다.
도 8은 실시 예에 따른 제1 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
도 9는 실시 예에 따른 제2 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
도 10은 실시 예에 따른 제3 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
도 11은 실시 예에 따른 전자 장치의 내부 블록도이다.
도 12는 실시 예에 따라, 전자 장치가 악보를 획득하는 과정을 도시한 순서도이다.
도 13은 실시 예에 따라, 전자 장치가 적어도 하나의 뉴럴 네트워크를 이용하여 악보를 획득하는 과정을 도시한 순서도이다.
도 14는 실시 예에 따라, 전자 장치가 동작하는 다양한 상황을 도시한 도면이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시 예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.
또한, 본 개시에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것이며, 본 개시를 한정하려는 의도로 사용되는 것이 아니다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
본 명세서, 특히, 특허 청구 범위에서 사용된 “상기” 및 이와 유사한 지시어는 단수 및 복수 모두를 지시하는 것일 수 있다. 또한, 본 개시에 따른 방법을 설명하는 단계들의 순서를 명백하게 지정하는 기재가 없다면, 기재된 단계들은 적당한 순서로 행해질 수 있다. 기재된 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다.
본 명세서에서 다양한 곳에 등장하는 "일부 실시 예에서" 또는 "일 실시 예에서" 등의 어구는 반드시 모두 동일한 실시 예를 가리키는 것은 아니다.
본 개시의 일부 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
또한, 명세서에서 “사용자”라는 용어는 전자 장치를 이용하는 사람을 의미하며, 소비자, 평가자, 시청자, 관리자 또는 설치 기사를 포함할 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 실시 예에 따라, 사용자의 취향과 상황을 고려하여 음악을 생성하고 이를 사용자에게 제공하는 것을 설명하기 위한 도면이다.
도 1을 참조하면, 전자 장치(110)는 스크린에 이미지를 출력할 수 있다.
실시 예에서, 전자 장치(110)는 스크린을 포함하는 다양한 형태의 디스플레이 장치로 구현될 수 있다. 일 실시 예로, 도 1은 전자 장치(110)가 디지털 TV인 경우를 도시한다.
예컨대, 전자 장치(110)는 앰비언트(Ambient) 서비스를 실행하여 스크린에 이미지를 출력할 수 있다. 앰비언트 서비스는 디지털 TV 등의 디스플레이 장치가 오프(off) 상태일 때 블랙 화면 대신에, 명화, 사진, 또는 시계 등과 같이 의미 있는 화면이 디스플레이 되도록 하는 서비스를 의미할 수 있다. 도 1에서는 일 예로, 전자 장치(110)가 앰비언트 서비스를 실행하여 스크린에 빈센트 반 고흐의 명화인 ‘해바라기’ 작품을 출력한 것을 도시한다.
또는 다른 실시 예에서, 전자 장치(110)는 주변 기기와 통신을 수행하여 주변 기기에 저장된 이미지를 전자 장치(110)의 스크린을 통해 출력할 수 있다. 예컨대, 전자 장치(110)는 주변에 위치한 PC(미도시)나 태블릿(미도시), 핸드폰(미도시) 등과 같은 사용자 단말기와 유선 또는 무선 통신을 수행하고, 이를 통해 사용자 단말기에 저장되어 있는 이미지를 전자 장치(110)의 스크린에 출력할 수 있다.
실시 예에서, 전자 장치(110)는 음악 연주를 위해 다양한 상황 정보를 획득할 수 있다. 실시 예에서, 상황 정보는 사용자나 스크린, 또는 사용자 주변의 외부 형편이나 상태를 나타내는 정보를 의미할 수 있다. 상황 정보는 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함할 수 있다.
실시 예에서, 사용자 상황 정보는 사용자의 형편이나 상태를 나타내는 정보를 의미할 수 있다. 사용자 상황 정보는 사용자 식별 정보, 감정 정보, 및 액티비티 정보 중 적어도 하나를 포함할 수 있다.
사용자 식별 정보는 화자를 식별하기 위한 정보일 수 있다. 감정 정보는 화자의 음성으로부터 식별된 화자의 감정 상태를 나타내는 정보일 수 있다. 액티비티 정보는 전자 장치(110)가 이미지를 출력하는 동안, 식별된 사용자가 수행하는 동작에 대한 정보를 의미할 수 있다.
실시 예에서, 전자 장치(110)는 오디오 신호를 집음하고, 오디오 신호를 이용하여 사용자 상황 정보를 획득할 수 있다. 전자 장치(110)는 오디오 신호로부터 음성 및 노이즈를 분리할 수 있다. 실시 예에서, 전자 장치(110)는 음성에 기반하여 사용자를 식별할 수 있다. 실시 예에서, 전자 장치(110)는 식별된 사용자의 음성에 기반하여 사용자가 현재 온화한 감정 상태라는 감정 정보를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 음성 및 노이즈 중 적어도 하나에 기반하여 사용자가 수행하는 액티비티 정보를 획득할 수 있다. 예컨대, 도 1은 전자 장치(110)가 이미지를 출력하는 동안 사용자가 독서를 하는 경우를 도시한다. 이 경우, 전자 장치(110)는 사용자의 음성이 잘 들리지 않는다는 것 및 책장 넘기는 환경음이 노이즈 소리로 식별되는 것 등을 통해 사용자가 현재 조용한 활동, 예컨대, 사색을 하거나, 공부, 또는 독서 등을 한다고 식별할 수 있다.
실시 예에서, 전자 장치(110)는 스크린에 출력되는 이미지로부터 스크린 상황 정보를 획득할 수 있다. 스크린 상황 정보는 스크린에 출력되는 이미지에 대한 정보로, 이미지의 스타일 정보 및 컬러 정보 중 적어도 하나를 포함할 수 있다. 이미지의 스타일 정보는 이미지가 가진 스타일을 표현한 정보로, 이미지의 고유한 특징이나 회화 양식을 표현하는 화풍 등을 포함할 수 있으나 이에 한정되는 것은 아니다.
예컨대, 도 1에서와 같이, 전자 장치(110)가 스크린에서 출력하는 이미지가 명화, 빈센트 반 고흐의 해바라기인 경우, 전자 장치(110)는 스크린에 출력된 이미지를 분석하여, 이미지의 스타일 정보가 빈센트 반 고흐 풍의 명화라는 것과 컬러가 진한 노란색이라는 정보 중 적어도 하나를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 외부 상황 정보를 획득할 수 있다. 외부 상황 정보는 전자 장치(110) 및 사용자가 위치한 장소의 주변 또는 밖의 상황을 표시하는 정보를 의미할 수 있다. 예컨대, 외부 상황 정보는 날씨 정보, 날짜 정보, 시간 정보, 계절 정보, 조도 정보 및 위치 정보 중 적어도 하나를 포함할 수 있다.
예컨대, 도 1에서, 전자 장치(110)는 센서(미도시)를 통해 주변의 온도가 섭씨 20도라는 정보를 획득하거나 주변의 밝기를 통해 조도가 300룩스(lx)라는 정보를 획득할 수 있다. 또는, 전자 장치(110)는 통신 모듈(미도시)을 통해 연결된 외부 서버 등으로부터 현재 시각이 오후 시각이고, 주변 날씨는 따뜻하고, 계절은 가을이고, 오늘 날짜는 9월 5일이고, 전자 장치(110)의 위치는 미국 워싱턴 주의 포틀랜드 지역의 외곽이라는 정보 등을 획득할 수 있다.
실시 예에서, 전자 장치(110)는 사용자 취향 정보를 획득할 수 있다. 사용자 취향 정보는 사용자의 취미나 선호하는 방향을 표시하는 정보를 의미할 수 있다. 실시 예에서, 전자 장치(110)는 사용자의 이전 음악 청취 이력이 있는 경우, 이전 음악 청취 이력에 기반하여 사용자 취향 정보를 획득할 수 있다. 예컨대, 전자 장치(110)는 사용자 취향 정보 데이터베이스(미도시)로부터, 사용자가 이전에 청취한 음악에 대한 정보를 기반으로 사용자 취향 정보를 획득할 수 있다.
실시 예에서, 사용자 취향 정보는 사용자의 식별 정보, 사용자가 이전에 청취한 음악의 무드(mood) 정보, 감도(velocity) 정보, 악기 정보, 음악이 재생된 빈도 정보, 음악이 재생된 시간 정보, 음악이 재생될 때의 스크린 상황 정보, 및 음악이 재생될 때의 외부 컨텍스트 정보 중 적어도 하나를 포함할 수 있다.
예컨대, 도 1에서, 전자 장치(110)는 사용자의 이전 음악 청취 이력에 기반하여, 사용자가 선호하는 음악이 클래식 곡이고, 조용한 곡이고, 피아노와 바이올린 악기로 연주된 곡이라는 것과 같은 사용자 취향 정보를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 사용자 상황 정보, 스크린 상황 정보, 외부 상황 정보, 사용자 취향 정보 중 적어도 하나로부터, 음악 연주를 위한 악보를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 적어도 하나의 뉴럴 네트워크를 이용하여, 음악 연주를 위한 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 뉴럴 네트워크를 이용하여, 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나로부터 멀티 무드(multi mood) 정보를 획득할 수 있다. 이하, 설명의 편의를 위하여, 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나로부터 다양한 무드 정보를 획득하도록 학습된 뉴럴 네트워크를 제1 뉴럴 네트워크로 호칭하기로 한다.
실시 예에서, 제1 뉴럴 네트워크는 소프트맥스 회귀(Softmax Regression) 함수를 포함할 수 있다. 제1 뉴럴 네트워크는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나의 변수 및 웨이트의 가중 합과 정답 셋 간의 차이가 최소가 되는 웨이트를 갖도록 학습된 뉴럴 네트워크일 수 있다.
예컨대, 도 1에서, 전자 장치(110)는 사용자가 조용히 독서나 공부를 하고 있다는 것을 나타내는 사용자 상황 정보와 스크린에 출력되는 이미지가 노란색의 명화라는 것을 나타내는 스크린 상황 정보를 획득하고, 제1 뉴럴 네트워크를 이용하여, 여러 형태의 무드를 나타내는 정보, 예컨대, 조용함, 편안함, 평화로움, 고상함, 따분함 등을 나타내는 멀티 무드 정보를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 뉴럴 네트워크를 이용하여, 사용자 취향 정보, 외부 상황 정보, 제1 뉴럴 네트워크를 통해 획득한 멀티 무드 정보 중 적어도 하나로부터 메타데이터를 획득할 수 있다. 이하, 설명의 편의를 위하여, 사용자 취향 정보, 외부 상황 정보, 멀티 무드 정보 중 적어도 하나로부터 메타데이터를 획득하도록 학습된 뉴럴 네트워크를 제2 뉴럴 네트워크로 호칭하기로 한다.
실시 예에서, 제2 뉴럴 네트워크는 트랜스포머 모델(Transformer model)에 포함된 인코더를 포함할 수 있다. 또한, 제2 뉴럴 네트워크는 트랜스포머 모델의 인코더에서 출력된 웨이트를 필터링하는 출력 레이어를 포함할 수 있다.
실시 예에서, 전자 장치(110)는 사용자 취향 정보, 멀티 무드 정보, 및 외부 상황 정보 중 적어도 하나를 임베딩하여 제2 뉴럴 네트워크에 포함된, 트랜스포머 모델의 인코더에 입력 시킬 수 있다.
실시 예에서, 전자 장치(110)는 트랜스포머 모델의 인코더에서 출력된 웨이트에 소프트맥스(softmax) 함수를 출력 레이어로 적용하여 메타데이터를 획득할 수 있다. 예컨대, 전자 장치(110)는 트랜스포머 모델의 인코더에서 출력된 웨이트에 소프트맥스 함수를 적용하여 템포(tempo), 감도, 악기(instrument), 앰비언트 사운드(ambient sound) 중 적어도 하나의 메타데이터를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 트랜스포머 모델의 인코더에서 출력된 웨이트에 풀리 커넥티드 레이어(fully connected layer)를 출력 레이어로 적용하여 메타데이터를 획득할 수 있다. 예컨대, 전자 장치(110)는 트랜스포머 모델의 인코더에서 출력된 웨이트에 풀리 커넥티드 레이어를 적용하여 피치(pitch) 및 음악 연주 길이 중 적어도 하나의 메타데이터를 획득할 수 있다.
예컨대, 전자 장치(110)는 사용자 취향 정보, 외부 상황 정보, 및 멀티 무드 정보 중 적어도 하나로부터 음악의 템포는 느리고, 감도는 보통이고, 악기는 피아노이고, 앰비언트 사운드는 잔잔한 바람 소리이고, 피치는 중간 톤이고, 음악 길이는 3분이라는 메타데이터를 생성할 수 있다.
실시 예에서, 전자 장치(110)는 뉴럴 네트워크를 이용하여, 메타데이터로부터 음악 연주를 위한 악보를 획득할 수 있다. 이하, 설명의 편의를 위하여, 메타데이터로부터 악보를 획득하도록 학습된 뉴럴 네트워크를 제3 뉴럴 네트워크로 호칭하기로 한다.
실시 예에서, 제3 뉴럴 네트워크는 트랜스포머 XL 모델(Transformer model)을 포함할 수 있다.
실시 예에서, 전자 장치(110)는 제2 뉴럴 네트워크를 이용하여 획득한 메타데이터를 트랜스포머 XL 모델에 입력하기 위한 형태로 임베딩하고, 임베딩된 데이터를 트랜스포머 XL 모델에 입력 시킬 수 있다. 트랜스포머 XL 모델은 입력된 데이터를 인코딩 및 디코딩 처리하여 이벤트 시퀀스의 확률 분포를 획득할 수 있다. 실시 예에서, 전자 장치(110)는 템포(tempo), 감도(velocity), 피치(pitch) 등과 같은 다양한 이벤트 각각에 대한 확률 분포를 획득할 수 있다.
전자 장치(110)는 이벤트 시퀀스의 확률 분포를 샘플링하여 마디(bar) 단위로 악보를 획득할 수 있다.
실시 예에서, 전자 장치(110)는 생성된 마디를 트랜스포머 XL 모델에 피드 포워드(feed forward)하여 트랜스포머 XL 모델에 다시 입력시키고, 트랜스포머 XL 모델로부터 다음 이벤트 시퀀스의 확률 분포를 획득할 수 있다. 전자 장치(110)는 다음 이벤트 시퀀스의 확률 분포를 샘플링하여 현재 마디 다음에 오는 마디를 획득할 수 있다. 전자 장치(110)는 이 과정을 반복하여, 메타데이터에 포함된 음악 연주 길이에 대응하는 마디들을 생성할 수 있다. 전자 장치(110)는 생성된 마디들로 구성된 악보에 따라 음악을 연주하여 출력할 수 있다.
이와 같이, 실시 예에 따르면, 전자 장치(110)는 음악 연주를 위한 상황 정보를 획득하고, 사용자 취향 정보를 획득하고, 상황 정보와 사용자 취향 정보 중 적어도 하나에 기반하여 사용자의 상황과 기분에 맞는 음악을 생성하여 사용자에게 제공할 수 있다.
도 2는 실시 예에 따른 전자 장치의 내부 블록도이다.
도 2의 전자 장치(200)는 도 1의 전자 장치(110)의 일 예일 수 있다.
실시 예에서, 전자 장치(200)는 스크린을 통해 이미지를 출력할 수 있는 다양한 형태의 디스플레이 장치로 구현될 수 있다. 디스플레이 장치는 이미지를 사용자에게 시각적으로 출력하는 장치일 수 있다. 예컨대, 전자 장치(200)는 디지털 텔레비전, 웨어러블 디바이스, 스마트 폰, 각종 PC(personal computer)들, 예컨대 데스크 톱(desk top), 태블릿 PC, 랩탑 컴퓨터, PDA(personal digital assistant), GPS(global positioning system) 장치, 스마트 미러(smart mirror), 전자책 단말기, 네비게이션, 키오스크, 디지털 카메라, 웨어러블 장치(wearable device), 스마트 와치(smart watch), 홈네트워크 장치, 보안용 장치, 의료 장치 등과 같은 다양한 형태의 전자 기기일 수 있다. 전자 장치(200)는 고정형 또는 이동형일 수 있다.
또는 전자 장치(200)는 냉장고나 세탁기 등과 같은 다양한 형태의 가전 제품 등의 전면에 삽입되는 디스플레이와 같은 형태일 수도 있다.
또는, 전자 장치(200)는 스크린을 포함하는 디스플레이 장치와 유선 또는 무선 통신망을 통해 연결된 전자 장치로 구현될 수도 있다. 예컨대, 전자 장치(200)는 미디어 플레이어나, 셋탑 박스, 인공지능(AI) 스피커 등의 형태로 구현될 수도 있다.
또한, 본 개시의 실시예에 따른 전자 장치(100)는 전술한 디지털 텔레비전, 웨어러블 디바이스, 스마트 폰, 각종 PC(personal computer)들, 예컨대 데스크 톱(desk top), 태블릿 PC, 랩탑 컴퓨터, PDA(personal digital assistant), 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 스마트 미러(smart mirror), 전자책 단말기, 네비게이션, 키오스크, 디지털 카메라, 웨어러블 장치(wearable device), 스마트 와치(smart watch), 홈네트워크 장치, 보안용 장치, 의료 장치, 냉장고나 세탁기, 기타 가전 제품 등의 전면에 삽입되는 디스플레이, 미디어 플레이어, 셋탑 박스나 인공지능(AI) 스피커 등과 같은 다양한 형태의 전자 기기에 포함되거나 탑재되는 형태로 형성될 수 있다.
도 2를 참조하면, 전자 장치(200)는 프로세서(210) 및 메모리(220)를 포함할 수 있다.
실시 예에 따른 메모리(220)는, 적어도 하나의 인스트럭션을 저장할 수 있다. 메모리(220)는 프로세서(210)가 실행하는 적어도 하나의 프로그램을 저장하고 있을 수 있다. 메모리(220)에는 기 정의된 동작 규칙이나 프로그램이 저장될 수 있다. 또한 메모리(220)는 전자 장치(210)로 입력되거나 전자 장치(210)로부터 출력되는 데이터를 저장할 수 있다.
메모리(220)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
실시 예에서, 메모리(220)는 음악 연주를 위한 상황 정보를 획득하기 위한 하나 이상의 인스트럭션을 포함할 수 있다.
실시 예에서, 메모리(220)는 사용자 취향 정보를 획득하기 위한 하나 이상의 인스트럭션을 포함할 수 있다.
실시 예에서, 메모리(220)는 사용자 취향 정보를 사용자 취향 정보 데이터베이스에 추가하여 사용자 취향 정보 데이터베이스를 업데이트하기 위한 하나 이상의 인스트럭션을 포함할 수 있다.
실시 예에서, 메모리(220)에는 음악 연주를 위한 악보를 획득하기 위한 소프트웨어가 저장될 수 있다.
실시 예에서, 메모리(220)는 적어도 하나의 뉴럴 네트워크를 이용하여 음악 연주를 위한 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하기 위한 하나 이상의 인스트럭션을 포함할 수 있다.
실시 예에서, 메모리(220)에는 적어도 하나의 뉴럴 네트워크 및/또는 기 정의된 동작 규칙이나 AI 모델이 저장될 수 있다. 실시 예에서, 메모리(220)에는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나로부터 멀티 무드 정보를 획득하는 제1 뉴럴 네트워크가 저장되어 있을 수 있다.
실시 예에서, 메모리(220)에는 사용자 취향 정보, 멀티 무드 정보, 외부 상황 정보 중 적어도 하나로부터 메타데이터를 획득하는 제2 뉴럴 네트워크가 저장되어 있을 수 있다.
실시 예에서, 메모리(220)에는 메타데이터로부터 음악 연주를 위한 악보를 획득하는 제3 뉴럴 네트워크가 저장되어 있을 수 있다.
실시 예에서, 프로세서(210)는 전자 장치(200)의 전반적인 동작을 제어한다. 프로세서(210)는 메모리(220)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 전자 장치(200)가 기능하도록 제어할 수 있다.
실시 예에서, 프로세서(210)는 음악 연주를 위한 상황 정보를 획득할 수 있다. 음악 연주를 위한 상황 정보는 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함할 수 있다.
실시 예에서, 사용자 상황 정보는 사용자 식별 정보, 액티비티 정보, 및 감정 정보 중 적어도 하나를 포함할 수 있다.
실시 예에서, 프로세서(210)는 음성 및 노이즈 중 적어도 하나로부터 사용자 상황 정보를 획득할 수 있다. 이를 위해 프로세서(210)는 입력된 오디오 신호로부터 음성 및 노이즈를 분리할 수 있다. 실시 예에서, 프로세서(210)는 음성에 기반하여 사용자를 식별하거나, 또는 식별된 사용자의 음성에 기반하여 사용자의 감정 정보를 획득하거나, 또는 음성 및 상기 노이즈 중 적어도 하나에 기반하여 사용자가 수행하는 액티비티 정보를 획득할 수 있다.
실시 예에서, 프로세서(210)는 메모리(220)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 스크린에 출력되는 이미지의 스타일 정보 및 컬러 정보 중 적어도 하나에 기반하여 스크린 상황 정보를 획득할 수 있다.
실시 예에서, 프로세서(210)는 메모리(220)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 센서 및 상기 통신 모듈 중 적어도 하나를 통해 날씨 정보, 날짜 정보, 시간 정보, 계절 정보, 조도 정보 및 위치 정보 중 적어도 하나를 입력 받고 이를 통해 외부 상황 정보를 획득할 수 있다.
실시 예에서, 프로세서(210)는 사용자 취향 정보를 획득할 수 있다. 실시 예에서, 사용자 취향 정보는 사용자의 식별 정보, 사용자가 이전에 청취한 음악의 무드 정보, 감도 정보, 앰비언트 사운드 정보, 악기 정보, 음악이 재생된 빈도 정보, 음악이 재생된 시간 정보, 음악이 재생될 때의 스크린 상황 정보, 및 음악이 재생될 때의 외부 컨텍스트 정보 중 적어도 하나를 포함할 수 있다.
실시 예에서, 프로세서(210)는 메모리(220)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 적어도 하나의 뉴럴 네트워크를 이용하여, 음악 연주를 위한 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득할 수 있다.
실시 예에서, 프로세서(210)는 인공지능(Artificial Intelligence, AI) 기술을 이용할 수 있다. AI 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성될 수 있다. AI 기술은 알고리즘을 활용하여 구현될 수 있다. 여기서, AI 기술을 구현하기 위한 알고리즘 또는 알고리즘의 집합을 신경망(Neural Network, 뉴럴 네트워크)이라 한다. 신경망은 입력 데이터를 입력 받고, 분석 및 분류를 위한 연산을 수행하여, 결과 데이터를 출력할 수 있다. 이와 같이 신경망이 입력 데이터에 대응되는 결과 데이터를 정확하게 출력하기 위해서는, 신경망을 트레이닝 시킬 필요가 있다. 여기서,‘트레이닝(training)’은 신경망으로 다양한 데이터들을 입력시키고, 입력된 데이터들을 분석하는 방법, 입력된 데이터들을 분류하는 방법, 및/또는 입력된 데이터들에서 결과 데이터 생성에 필요한 특징을 추출하는 방법 등을 신경망이 스스로 발견 또는 터득할 수 있도록 신경망을 훈련시키는 것을 의미할 수 있다. 신경망을 훈련시킨다는 것은 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 실시 예에서 인공지능이 수행되는 전자 장치(200) 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
여기서, 학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨데, 로봇)를 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 실시 예에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
신경망을 통하여 입력 데이터에 대응되는 출력 데이터를 출력하도록 하는 알고리즘의 집합, 알고리즘의 집합을 실행하는 소프트웨어 및/또는 알고리즘의 집합을 실행하는 하드웨어를 ‘AI 모델’(또는,‘인공지능 모델’이나 뉴럴 네트워크 모델, 뉴럴 네트워크)이라 칭할 수 있다.
프로세서(210)는, 기 정의된 동작 규칙 또는 AI 모델에 따라, 입력 데이터를 처리할 수 있다. 기 정의된 동작 규칙 또는 AI 모델은 특정한 알고리즘을 이용하여 만들어진 것일 수 있다. 또한 AI 모델은 특정한 알고리즘이 학습된 것일 수 있다. 프로세서(210)는 AI 모델을 통하여 입력 데이터에 대응되는 출력 데이터를 생성할 수 있다.
실시 예에서, 프로세서(210)는 AI 모델을 적어도 하나 저장하고 있을 수 있다. 실시 예에서 프로세서(210)는 복수 개의 AI 모델들을 이용하여 입력 데이터으로부터 출력 데이터를 생성할 수 있다. 또는, 전술한 바와 같이, 프로세서(210)가 아닌 메모리(220)가 AI 모델들, 즉, 뉴럴 네트워크를 저장하고 있을 수도 있다.
실시 예에서, 프로세서(210)가 이용하는 뉴럴 네트워크는 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하도록 학습된 뉴럴 네트워크일 수 있다.
실시 예에서, 프로세서(210)는 복수의 뉴럴 네트워크들의 집합을 이용할 수 있다.
실시 예에서, 프로세서(210)는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나로부터 멀티 무드(multi mood) 정보를 획득하도록 학습된 제1 뉴럴 네트워크를 이용하여, 사용자 상황 정보와 스크린 상황 정보 중 적어도 하나로부터 멀티 무드 정보를 획득할 수 있다. 실시 예에서, 제1 뉴럴 네트워크는 소프트맥스 회귀(Softmax Regression) 함수를 포함하고, 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나의 변수 및 웨이트의 가중 합과 정답 셋 간의 차이가 최소가 되는 웨이트를 갖도록 학습된 뉴럴 네트워크일 수 있다.
실시 예에서, 프로세서(210)는 제2 뉴럴 네트워크를 이용하여, 사용자 취향 정보, 멀티 무드 정보, 및 외부 상황 정보 및 중 적어도 하나로부터 메타데이터를 획득할 수 있다. 실시 예에서, 제2 뉴럴 네트워크는 트랜스포머 모델(Transformer model)의 인코더 및 출력 레이어를 포함할 수 있다.
실시 예에서, 프로세서(210)는 사용자 취향 정보, 멀티 무드 정보, 및 외부 상황 정보 중 적어도 하나를 임베딩하여 트랜스포머 모델의 인코더에 입력 시킬 수 있다.
실시 예에서, 프로세서(210)는 트랜스포머 모델의 인코더에서 출력된 웨이트에 소프트맥스(softmax) 함수를 출력 레이어로 적용하여 메타데이터를 획득할 수 있다. 예컨대, 프로세서(210)는 소프트맥스 함수로부터 템포(tempo), 감도, 악기(instrument), 앰비언트 사운드(ambient sound) 중 적어도 하나의 메타데이터를 획득할 수 있다.
실시 예에서, 프로세서(210)는 트랜스포머 모델의 인코더에서 출력된 웨이트에 풀리 커넥티드 레이어(fully connected layer)를 출력 레이어로 적용하여 메타데이터를 획득할 수 있다. 예컨대, 프로세서(210)는 풀리 커넥티드 레이어로부터 피치, 음악 연주 길이 중 적어도 하나의 메타데이터를 획득할 수 있다.
실시 예에서, 프로세서(210)는 제3 뉴럴 네트워크를 이용하여, 메타데이터로부터 음악 연주를 위한 악보를 획득할 수 있다. 실시 예에서, 제3 뉴럴 네트워크는 트랜스포머 모델(Transformer model)을 포함할 수 있다. 보다 구체적으로, 뉴럴 네트워크는 트랜스포머 XL 모델(Transformer-XL model)을 포함할 수 있다.
실시 예에서, 프로세서(210)는 메타데이터를 임베딩하여 트랜스포머 XL 모델에 입력 시켜 이벤트 시퀀스의 제1 확률 분포를 획득할 수 있다. 실시 예에서, 이벤트 시퀀스의 제1 확률 분포는 템포(tempo), 감도(velocity), 피치(pitch) 각각에 대한 확률 분포를 포함할 수 있다.
실시 예에서, 프로세서(210)는 이벤트 시퀀스의 제1 확률 분포를 샘플링하여 하나의 마디(bar)를 획득할 수 있다. 설명의 편의를 위하여 제1 확률 분포로부터 샘플링되어 획득된 마디를 제1 마디라고 호칭하기로 한다.
실시 예에서, 프로세서(210)는 메모리(220)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 제1 마디를 트랜스포머 XL 모델에 피드 포워드(feed forward)하여 트랜스포머 XL 모델로부터 이벤트 시퀀스의 제2 확률 분포를 획득하고, 이벤트 시퀀스의 제2 확률 분포를 샘플링하여 제1 마디 다음에 오는 마디를 획득할 수 있다. 설명의 편의를 위하여 제1 마디 다음에 오는 마디를 제2 마디로 호칭할 수 있다.
실시 예에서, 프로세서(210)는 음악 연주를 위한 악보에 따라 음악이 재생되도록 할 수 있다.
실시 예에서, 프로세서(210)는 재생한 음악에 대한 정보를, 음악 재생과 관련된 정보를 저장하는 사용자 취향 정보 데이터베이스에 추가하여 사용자 취향 정보 데이터베이스가 업데이트되도록 할 수 있다.
도 3은 실시 예에 따른 전자 장치에 포함된 프로세서의 내부 블록도를 도시한다.
도 3을 참조하면, 도 3의 프로세서(300)는 도 2의 프로세서(210)의 일 예일 수 있다. 프로세서(300)는 상황 정보 획득부(310), 사용자 취향 정보 획득부(320), 사용자 취향 정보 데이터베이스(321), 음악 생성부(330) 및 음악 재생부(340)를 포함할 수 있다.
실시 예에 따른 상황 정보 획득부(310)는 음악 연주를 위해 다양한 상황 정보를 획득할 수 있다. 실시 예에서, 상황 정보는 사용자나 스크린, 또는 외부의 형편이나 상태를 나타내는 정보를 의미할 수 있다. 실시 예에서, 상황 정보는 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함할 수 있다. 상황 정보 획득부(310)가 상황 정보를 획득하는 방법에 대해서는 도 4 내지 6에 대한 상세한 설명에서 보다 구체적으로 설명하기로 한다.
실시 예에 따른 사용자 취향 정보 획득부(320)는 사용자 취향 정보를 획득할 수 있다. 사용자 취향 정보는 사용자가 선호하는 음악에 대한 정보일 수 있다. 사용자 취향 정보 획득부(320)는 사용자의 이전 음악 청취 이력에 기초하여 사용자 취향 정보를 획득될 수 있다.
실시 예에서, 사용자 취향 정보 획득부(320)는 사용자 취향 정보 데이터베이스(321)로부터 사용자 취향 정보를 획득할 수 있다. 사용자 취향 정보 데이터베이스(321)는 사용자 취향 정보 획득부(320)와 함께 전자 장치에 포함되어 있을 수 있다. 도 3은 사용자 취향 정보 획득부(320)가 전자 장치에 포함되어 있는 경우를 도시하나, 다만 이는 하나의 실시 예로, 사용자 취향 정보 데이터베이스(321)는 전자 장치와 물리적으로 분리된 형태일 수도 있다. 예컨대, 사용자 취향 정보 획득부(320)는 통신망을 통해 연결된 외부 장치에 저장되어 있을 수도 있다. 여기서 외부 장치는 사용자가 사용하는 또 다른 전자 장치를 포함할 수 있다. 또는 사용자 취향 정보 획득부(320)는 외부 서버 등에 저장되어 있을 수도 있다.
실시 예에서, 전자 장치는 사용자 별로 사용자 취향 정보를 획득할 수 있다. 전자 장치는 사용자가 전자 장치를 이용하여 음악을 청취하는 경우, 사용자가 청취한 음악에 대한 정보를 기반으로 사용자 취향 정보를 획득할 수 있다.
실시 예에서, 전자 장치는 사용자 식별 정보를 획득할 수 있다. 사용자 식별 정보는 사용자를 식별하기 위한 정보로, 사용자의 음성을 기반으로 생성될 수 있다. 실시 예에서, 전자 장치는 사용자 식별 정보를 위해 사전에 사용자의 음성을 등록할 필요까지는 없으며, 오디오 신호를 통해 인식된 사용자의 음성을 기반으로 익명의 사용자 별로 고유 아이디를 할당함으로써 사용자 식별 정보를 생성할 수 있다.
실시 예에서, 전자 장치는 사용자가 청취한 음악의 무드 정보, 감도 정보, 앰비언트 사운드 정보, 악기 정보, 사용자가 해당 음악을 청취한 정도를 나타내는 재생 빈도 정보, 사용자가 해당 음악을 전부 다 청취했는지, 일부만 청취했는지 등을 나타내는 음악 재생 시간 정보, 음악이 재생될 때의 스크린 상황 정보, 및 음악이 재생될 때의 외부 상황 정보 중 적어도 하나를 사용자 취향 정보로 획득할 수 있다.
실시 예에서, 전자 장치는 사용자 식별 정보와 사용자 취향 정보를 매핑하고, 이를 사용자 취향 정보 데이터베이스(321)에 저장시킬 수 있다.
예컨대, 전자 장치를 이용하여 가족 중 엄마가 음악을 청취하는 경우, 전자 장치는 엄마의 음성을 기반으로 엄마에 대한 아이디, 즉, 사용자 식별 정보를 생성하고, 엄마가 청취한 음악의 무드, 감도, 앰비언트 사운드, 악기, 재생 빈도, 음악 재생 시간, 해당 음악이 재생되는 동안 스크린에 출력된 이미지의 스타일이나 색상 등을 나타내는 스크린 상황 정보, 음악이 재생되는 동안의 날씨나 시간, 계절, 조도 등의 외부 상황 정보 등을 획득하여 엄마의 취향 정보를 획득할 수 있다. 전자 장치는 엄마의 아이디와 엄마의 취향 정보를 매핑하고 이를 사용자 취향 정보 데이터베이스(321)에 저장할 수 있다.
이후, 엄마가 다시 음악 청취를 원하는 경우, 전자 장치는 음악 연주를 위한 상황 정보와 함께 사용자 취향 데이터베이스(321)에 기 저장되어 있는 엄마의 취향 정보를 획득하여 음악 연주를 위한 악보를 획득하는 데 이용할 수 있다. 전자 장치의 음악 재생부(340)는 새로 생성된 악보에 따라 음악을 재생할 수 있다. 이후, 전자 장치는 음악 재생부(340)로부터 엄마가 음악을 청취한 정보를 수신하고 이를 기반으로 엄마의 취향 정보를 추가로 획득할 수 있다. 전자 장치는 추가로 획득한 엄마의 취향 정보를 사용자 취향 데이터베이스(321)에 기 저장된 엄마의 취향 정보에 추가하여 엄마의 취향 정보를 업데이트할 수 있다.
전자 장치는 전자 장치를 이용하여 음악을 청취하는 다른 가족들이 있는 경우, 예컨대, 아빠나 아이도 전자 장치를 이용하여 음악을 청취하는 경우, 아빠와 아이 각각에 대한 아이디와 함께 아빠와 아이의 음악 취향 정보를 획득하고 이를 아빠와 아이의 아이디와 매핑하여 사용자 취향 데이터베이스(321)에 저장할 수 있다.
실시 예에 따른 음악 생성부(330)는 상황 정보 획득부(310)로부터 음악 연주를 위한 상황 정보를 수신하고, 사용자 취향 정보 획득부(320)로부터 사용자 취향 정보를 수신할 수 있다. 음악 생성부(330)는 적어도 하나의 뉴럴 네트워크를 이용하여 음악 연주를 위한 상황 정보 및 사용자 취향 정보 중 적어도 하나에 기반하여 음악 연주를 위한 악보를 획득할 수 있다. 음악 생성부(330)가 뉴럴 네트워크를 이용하여 음악 연주를 위한 악보를 획득하는 방법에 대해서는 도 7 내지 10에 대한 상세한 설명에서 보다 구체적으로 설명하기로 한다.
실시 예에 따른 음악 재생부(340)는 음악 생성부(330)가 생성한 악보에 따라 음악을 재생할 수 있다.
음악 재생부(340)는 음악 생성부(330)로부터 음악 연주를 위한 악보를 수신하고, 악보를 재생 가능한 음악 파일로 합성할 수 있다. 예컨대, 음악 재생부(340)는 악보를 mp3, midi, wav 등의 음악 파일로 합성할 수 있다. 음악 재생부(340)는 음악 파일을 뮤직 플레이어를 이용하여 재생할 수 있다.
실시 예에서, 음악 재생부(340)는 사용자 취향 중 앰비언트 사운드 정보가 있는 경우 사용자 취향 정보 획득부(320)를 통해 사용자가 선호하는 앰비언트 사운드 정보를 수신할 수 있다.
앰비언트 사운드 정보는 음악과 함께 재생될 효과음이나 배경음을 의미할 수 있다. 앰비언트 사운드는 예컨대 빗소리, 물소리, 숲소리, 바람소리, 폭포 소리, 벌레 소리, 새 소리 등과 같은 자연 소리부터 자동차 소음, 사람들 소음, 공항 터미널 소리, 우주 여행 소리 등에 이르기까지 다양한 형태로 생성될 수 있다. 앰비언트 사운드는 피아노, 신시사이저(synthesizer), 현악기 등을 주로 사용하여 생성되며 특유의 분위기(Atmosphere)를 조성하는 데 사용될 수 있다. 예컨대, 앰비언트 사운드는 잔잔하고 사색적인 분위기부터 긴장감과 공포적인 분위기, 몽환적인 분위기, 자연의 신비로움이나 생명령을 표현하는 분위기, 침울하고 어두운 분위기, 로맨틱한 분위기, 평화롭고 밝은 분위기 등과 같이 다양한 분위기를 조성하는 데 이용될 수 있다.
또한, 앰비언트 사운드는 박자감이 있는 드럼 리듬이나 하이파이(Hi-fi), 로파이(lo-fi) 음원 등으로 구현될 수도 있다. 하이파이는 원음에 최대한 가까운 깨끗하고 좋은 음질의 청취 방식이고, 로파이는 일부러 낮은 퀄리티의 오디오 음향을 구현하거나 그렇게 녹음된 방식의 음악을 의미할 수 있다.
음악 재생부(340)는 사용자가 선호하는 앰비언트 사운드 정보를 사용자 취향 정보 획득부(320)로부터 수신하고 이를 음악 파일과 함께 합성하여 재생할 수 있다.
사용자는 음악 재생부(340)가 재생하는 음악을 청취할 수 있다. 사용자는 음악이 마음에 들어 해당 음악을 여러 번 청취할 수도 있고, 또는 음악이 마음에 들지 않아 음악이 다 끝나기 전에 음악 재생을 정지할 수도 있다.
전자 장치는 사용자가 청취한 음악을 분석하고, 또한 사용자의 청취 빈도나 청취한 음악의 재생 길이 등을 고려하여 사용자 취향 정보를 획득할 수 있다. 전자 장치는 사용자 취향 정보를 사용자 취향 정보 데이터베이스(321)에 추가하여 사용자의 취향 정보가 업데이트되도록 할 수 있다.
도 4는 실시 예에 따라, 전자 장치에 포함된 상황 정보 획득부의 내부 블록도를 도시한 도면이다.
도 4의 상황 정보 획득부(400)는 도 3의 프로세서(300)에 포함된 상황 정보 획득부(310)의 일 예일 수 있다.
도 4를 참조하면, 상황 정보 획득부(400)는 사용자 상황 정보 획득부(410), 스크린 상황 정보 획득부(420) 및 외부 상황 정보 획득부(430)를 포함할 수 있다.
실시 예에 따른 사용자 상황 정보 획득부(400)는 음악 연주를 위해 사용자 상황 정보를 획득할 수 있다. 실시 예에서, 사용자 상황 정보는 사용자의 형편이나 상태를 나타내는 정보를 의미할 수 있다.
실시 예에서, 상황 정보 획득부(400)는 오디오 신호(411)를 이용하여 사용자 상황 정보를 획득할 수 있다. 오디오 신호(411)는 사람의 음성이나 기타 배경 잡음 등을 포함할 수 있다. 오디오 신호를 집음하기 위해, 전자 장치에는 오디오 신호(411)를 집음할 수 있는 마이크(미도시)가 포함될 수 있다. 또는 전자 장치는 외부 마이크를 통해 집음된 오디오 신호(411)를 통신망을 통해 수신할 수도 있다.
오디오 신호(411)에는 사용자의 음성 외에도 배경 잡음인 노이즈가 포함되어 있을 수 있다.
상황 정보 획득부(400)는 오디오 신호(411)로부터 음성과 노이즈를 분리할 수 있다. 실시 예에서, 상황 정보 획득부(400)는 음성을 이용하여 사용자를 식별할 수 있다. 예컨대, 상황 정보 획득부(400)는 사용자 음성이 이전에 입력된 적이 있는 음성인지 여부를 판단하고, 이전에 입력된 적이 있는 음성이면, 사용자 모델로부터 사용자 아이디를 식별할 수 있다. 또는 사용자 음성이 처음으로 입력된 음성인 경우, 상황 정보 획득부(400)는 사용자 음성과 새로운 아이디를 매칭시켜 사용자 모델을 생성할 수 있다.
실시 예에서, 상황 정보 획득부(400)는 식별된 사용자의 감정 정보를 획득할 수 있다. 감정 정보는 사용자의 음성으로부터 식별된 사용자의 감정 상태를 나타내는 정보일 수 있다.
실시 예에서, 상황 정보 획득부(400)는 음성 및 노이즈 중 적어도 하나에 기반하여 사용자가 수행하는 액티비티 정보를 획득할 수 있다. 액티비티 정보는 식별된 사용자가 수행하는 동작을 나타내는 정보를 의미할 수 있다.
하나의 예로, 사용자가 운동을 하는 경우를 가정한다. 상황 정보 획득부(400)는 오디오 신호(411)에서, 간헐적으로 들리는 거친 숨 소리, 기합을 주는 소리 등을 사용자의 음성으로 식별할 수 있다. 또한, 상황 정보 획득부(400)는 오디오 신호(411)에서 역기가 바닥에 떨어지는 소리 등을 노이즈로 식별할 수 있다.
상황 정보 획득부(400)는 사용자의 음성을 통해 사용자를 식별할 수 있다. 상황 정보 획득부(400)는 식별된 사용자의 음성을 통해 사용자의 감정이 흥분한 상태, 격렬한 상태, 긴장한 상태라는 것 등을 식별할 수 있다.
상황 정보 획득부(400)는 사용자의 음성과 노이즈를 통해 사용자가 수행하는 액티비티가 운동 또는 격렬한 일이라고 식별할 수 있다.
상황 정보 획득부(400)는 사용자 식별 정보, 감정 정보, 액티비티 정보 중 적어도 하나를 포함하는 사용자 상황 정보를 생성할 수 있다.
실시 예에 따른 스크린 상황 정보 획득부(420)는 전자 장치의 스크린에 출력된 이미지(421)로부터 스크린 상황 정보를 획득할 수 있다. 스크린 상황 정보는 스크린에 출력되는 이미지에 대한 정보를 의미할 수 있다. 스크린 상황 정보는 이미지의 스타일 정보를 포함할 수 있다. 이미지의 스타일 정보는 이미지가 가진 스타일을 표현한 정보일 수 있다. 스크린 상황 정보는 컬러 정보를 포함할 수 있다. 예컨대, 컬러 정보는 이미지에서 가장 많이 사용된 색의 RGB 값일 수 있다.
실시 예에 따른 외부 상황 정보 획득부(430)는 통신 신호(431) 및 센서 신호(433) 중 적어도 하나를 수신할 수 있다. 외부 상황 정보 획득부(430)는 정해진 시간 마다 또는 랜덤한 시간 간격마다, 또는 기 설정된 시각 마다, 또는 온도가 급변하거나 날짜가 바뀌는 것과 같은 이벤트가 발생할 때 마다, 통신 신호(431) 및 센서 신호(433) 중 적어도 하나를 새로 획득할 수 있다.
통신 신호(431)는 통신망을 통해 외부 서버 등으로부터 획득된 신호로, 외부 상황을 나타내는 정보, 예컨대, 외부의 날씨 정보, 날짜 정보, 시간 정보, 계절 정보, 조도 정보, 위치 정보 중 적어도 하나를 포함할 수 있다.
실시 예에 따른 외부 상황 정보 획득부(430)는 다양한 센서를 이용하여 전자 장치 주변의 외부 상황에 대한 센서 신호를 획득할 수 있다. 센서 신호(433)는 센서를 통해 센싱된 신호로, 센서의 종류에 따라 다양한 형태의 신호를 포함할 수 있다.
예컨대, 외부 상황 정보 획득부(430)는 온/습도 센서를 이용하여 주변의 온도나 습도를 감지할 수 있다. 또는 외부 상황 정보 획득부(430)는 조도 센서를 이용하여 전자 장치 주변의 조도를 감지할 수 있다. 조도 센서는 주변의 빛의 양을 측정하여 빛의 양에 따라 밝기를 측정할 수 있다. 또는 외부 상황 정보 획득부(430)는 위치 센서를 이용하여 전자 장치의 위치를 감지할 수 있다. 또는 외부 상황 정보 획득부(430)는 위치 센서 및/또는 근접 센서를 이용하여 전자 장치와 사용자 사이의 거리를 감지할 수 있다. 또는 외부 상황 정보 획득부(430)는 기압 센서 및 근접 센서 중 적어도 하나의 센서로부터 주변의 기압이나, 물체의 근접 정도 등에 대한 신호를 획득할 수 있으나, 이에 한정되는 것은 아니다.
도 5는 실시 예에 따라, 사용자 상황 정보 획득부가 사용자 상황 정보를 획득하는 방법을 설명하기 위한 도면이다.
도 5의 사용자 상황 정보 획득부(500)는 도 4의 상황 정보 획득부(410)의 일 예일 수 있다. 도 5를 참조하면, 사용자 상황 정보 획득부(500)는 특징 추출부(510), 화자 모델 데이터베이스(520), 화자 인식부(530), 감정 정보 획득부(540), 및 액티비티 정보 획득부(550)를 포함할 수 있다.
사용자 상황 정보 획득부(500)는 마이크로폰 어레이(microphone array)(미도시)를 통해 오디오 신호를 집음할 수 있다. 마이크로폰 어레이는 음성과 배경 잡음 등을 포함하는 오디오 신호를 집음하고, 아날로그 오디오 신호를 디지털화할 수 있다.
실시 예에서, 특징 추출부(510)는 집음된 오디오 신호를 음성과 노이즈로 분리할 수 있다. 실시 예에서, 특징 추출부(510)는 Wave-U-NET과 같은 CNN 모델을 이용하여 오디오 신호를 음성과 노이즈로 분리할 수 있으나, 이에 한정되는 것은 아니다.
실시 예에서, 특징 추출부(510)는 음성으로부터 특징 정보를 획득할 수 있다. 특징 정보는 특징 벡터 형태로 표현될 수 있다. 실시 예에서, 특징 추출부(510)는 시간 도메인(time domain) 기반의 음성 신호를 주파수 도메인(frequency domain) 상의 신호로 변환하고, 변환된 신호의 주파수 에너지를 서로 다르게 변형함으로써 특징 벡터를 추출할 수 있다.
실시 예에서, 특징 추출부(510)는 음성의 Pitch, Formant, LPCC(Linear Predictive Cepstral Coefficient), MFCC(MelFrequency Cepstral Coefficient), PLP(Perceptual Linear Predictive) 등 해당 음성에 대한 디지털화, 주파수 변환 등을 통해 얻어진 다양한 파라미터 중 적어도 하나를 특징 정보로 획득할 수 있다. 예컨대, 특징 추출부(510)는 MFCC 알고리즘을 이용하여 음성으로부터 특징 정보를 획득할 수 있다. MFCC 알고리즘은 음성을 20ms-40ms정도의 작은 프레임들로 나누고 나누어진 프레임들의 스펙트럼을 분석하여 특징을 추출하는 기법으로, 음정이 변해도 MFCC를 이용하여 일정하게 특징 정보를 추출할 수 있다는 장점이 있다.
화자 인식부(530)는 특징 추출부(510)로부터 음성 및/또는 음성의 특징 정보를 수신하고, 이에 기반하여 화자 인식을 수행할 수 있다. 화자 인식이란 인식된 음성에 근거하여 화자 모델을 생성하거나, 인식된 음성이 기 생성된 화자 모델에 의한 화자 음성인지 여부를 판단하거나, 상기 판단에 근거하여 후속되는 소정 동작을 수행할지 여부를 판단하는 동작을 수행하는 기능을 의미할 수 있다.
실시 예에서, 화자 모델 데이터베이스(520)에는 화자 모델이 저장될 수 있다.
실시 예에서, 화자 인식부(530)는 화자 모델을 생성하기 전에, 생성하려는 화자 모델이 이미 존재하는지 여부를 식별할 수 있다. 예컨대, 화자 인식부(530)는 입력된 음성의 특징 정보와 유사도가 기준치 이상인 화자 모델이 있는지 여부에 기초하여, 입력된 음성과 관련하여 기존에 생성된 화자 모델이 있는지 여부를 식별할 수 있다. 입력된 음성의 특징 정보와 유사도가 기준치 이상인 화자 모델이 있는 경우, 화자 인식부(530)는 입력된 음성에 기반하여 해당 화자를 식별할 수 있다. 실시 예에서, 화자 인식부(530)는 입력된 음성의 특징을 화자 모델에 추가하여 화자 모델을 업데이트할 수 있다.
실시 예에서, 음성의 특징 정보와 유사도가 기준치 이상인 화자 모델이 없는 경우, 화자 인식부(530)는 음성에 기반하여 새로 화자 모델을 생성할 수 있다. 화자 인식부(530)는 입력된 음성에 대해, 시간 도메인 기반의 음성 신호를 주파수 도메인 상의 신호로 변환하고, 변환된 신호의 주파수 에너지를 서로 다르게 변형함으로써 화자 인식용 특징 벡터를 추출할 수 있다. 예를 들어, 화자 인식용 특징 벡터는 MFCC(Mel-frequency cepstral coefficients) 또는 필터 뱅크 에너지(Filter Bank Energy)일 수 있으나 이에 한정되는 것은 아니다. 화자 인식부(530)는 특징 벡터들을 이용하여 획득된 공분산을 이용하여 화자 모델을 생성할 수 있다.
실시 예에서, 화자 인식부(530)는 화자 모델 별로 사용자 식별 정보를 부여할 수 있다. 예컨대, 화자 인식부(530)는 화자의 음성을 기반으로 각 화자 모델 별로 고유 아이디를 부여하여 각각의 화자를 user 1, user 2 등과 같이 라벨링할 수 있다.
실시 예에서, 생성된 화자 모델은 모델 별로 부여된 고유 아이디와 함께 화자 모델 데이터페이스(520)에 저장될 수 있다.
화자 인식부(530)는 음성으로부터 화자를 식별하고, 라벨링된 화자의 음성을 감정 정보 획득부(540)로 보낼 수 있다.
실시 예에서, 감정 정보 획득부(540)는 음성을 이용하여 라벨링된 화자의 감정을 나타내는 감정 정보를 획득할 수 있다.
실시 예에서, 감정 정보 획득부(540)는 음성을 STFT(Short-Time Fourier Transform)하여 음성의 시간의 흐름에 따른 주파수 값을 획득할 수 있다. 감정 정보 획득부(540)는 음성으로부터 감정 정보를 획득하도록 훈련된 뉴럴 네트워크에 시간에 따른 주파수 값을 입력함으로써 라벨링된 화자의 감정 정보를 획득할 수 있다. 예컨대, 감정 정보 획득부(540)는 머신 러닝 알고리즘 중에서 분류에 높은 성능을 가진 서포트 벡터 머신, 랜덤 포레스트, xgboost 알고리즘 등과 같은 다양한 형태의 뉴럴 네트워크를 하나 이상 이용하여, 감정 모델을 학습시키고 학습 결과를 분류한 결과를 혼합하여 이용할 수 있다. 감정 정보 획득부(540)는 학습된 감정 모델을 이용하여, 화자의 음성을 분석 및 분류함으로써 화자의 음성으로부터 화자의 감정 감정 정보를 획득할 수 있다. 예컨대, 감정 정보 획득부(540)는 화자의 감정을 다양한 감정 종류 별로 분류하여 화자의 감정이 화난 정도, 슬픈 정도, 행복한 정보, 놀라운 정도 등이 각각 얼마인지를 나타내는 수치를 획득할 수 있다.
실시 예에서, 액티비티 정보 획득부(550)는 특징 추출부(510)로부터 음성 및 노이즈 중 적어도 하나를 수신하고 이로부터 화자가 수행하는 액티비티가 무엇인지를 분류할 수 있다. 실시 예에서, 액티비티 정보 획득부(550)는 음성 및 노이즈 중 적어도 하나를 STFT(Short-Time Fourier Transform)하여 시간에 따른 주파수 값을 획득하고, 이를 CNN 모델에 입력하여 화자가 수행하는 액티비티 동작에 대한 분류 값을 결과로 획득할 수 있다. CNN 기반 신경망은 입력 데이터에 포함되는 정보들끼리의 상관 관계가 지역적(local)인 경우, 특정 지역만을 비추는 필터의 개념을 도입하고 이 필터 내에서의 정보들을 컨볼루션(convolution)하여 출력 데이터를 생성할 수 있다.
실시 예에서, 액티비티 정보 획득부(550)는 CNN 기반의 신경망을 통하여 음성 및 노이즈 중 적어도 하나로부터 화자가 수행하는 액티비티 동작이 무엇인지를 나타내는 분류 값을 결과로 획득할 수 있다. 예컨대, 액티비티 정보 획득부(550)는 동작을 다양한 액티비티로 분류하고 화자가 어떤 동작을 하는지, 예컨대 화자가 공부를 하는지, 대화를 하는지, 운동을 하는지, 잠을 자는지 등에 대해 각 동작에 대응하는 수치가 얼마인지를 결과로 획득할 수 있다.
도 6은 실시 예에 따라 스크린 상황 정보 획득부가 스크린 상황 정보를 획득하는 방법을 설명하기 위한 도면이다.
도 6의 스크린 상황 정보 획득부(600)는 도 4의 스크린 상황 정보 획득부(420)의 일 예일 수 있다.
도 6을 참조하면, 스크린 상황 정보 획득부(600)는 스타일 정보 획득부(610)와 컬러 정보 획득부(620)를 포함할 수 있다.
스타일 정보는 이미지가 가진 스타일을 표현하는 정보일 수 있다. 스타일 정보는 이미지의 고유한 특징을 표현하는 정보일 수 있다.
스타일 정보는 이미지에서 디텍션된 오브젝트의 종류를 식별하는 정보를 포함할 수 있다. 예컨대, 스타일 정보는 이미지에 포함된 오브젝트가 사람인지, 자연인지, 도시인지 등을 분류하는 정보를 포함할 수 있다.
이미지가 그림인 경우, 스타일 정보는 회화 양식을 나타내는 화풍을 포함할 수 있다. 스타일 정보는 수채화, 유화, 수묵화, 점묘화, 입체화와 같이 그림을 그리는 방식이나 양식을 나타내거나 반 고흐 풍, 모네 풍, 마네 풍, 피카소 풍 등과 같은 특정한 화가의 경향과 특징을 지칭할 수도 있다. 또는 스타일 정보는 중세 시대, 르네상스 시대, 근대시대, 현대 시대 회화와 같이 시대별로 분류되는 특징이거나, 동양화, 서양화, 등과 같은 지역별로 분류되는 특징이거나, 인상파, 추상파, 사실주의 등과 같은 회화 양식의 특징을 포함할 수 있다. 또는, 스타일 정보는 이미지가 갖는 질감, 색감, 분위기, 콘트라스트, 광택 또는 색의 3요소인 명도(Intensity), 색도(Hue), 채도(Saturation) 등에 대한 정보를 포함할 수 있다.
또는 이미지가 사진인 경우, 스타일 정보는 카메라 촬영 기법에 대한 정보를 포함할 수 있다. 예컨대, 스타일 정보는 사진 촬영 시 이용된 기법이 패닝 기법(Panning Shot)인지, 틸팅 기법(Tilting shot)인지, 주밍 기법(Zooming Shot)인지, 접사 촬영(Marco Shot)인지, 야경 촬영인지 등에 대한 정보를 포함할 수 있다. 또는 스타일 정보는 피사체의 구도, 화각, 노출 정도, 렌즈 종류, 블러링(blurring) 정도, 포커스 길이 등을 포함할 수 있으나 이에 한정되는 것은 아니다.
스타일 정보 획득부(610)는 CNN 모델부(611) 및 소프트맥스 분류기(Softmax Classifier, 615)를 포함할 수 있다. CNN 모델부(611)는 예컨대 ResNet 모델을 포함할 수 있다. ResNet 모델은 ResNet은 마이크로소프트에서 개발한 알고리즘으로, "Deep Residual Learning for Image Recognition"라는 논문에 개시된 네트워크이다. ResNet은 깊은 네트워크에서도 학습이 잘 되도록 고안된 구조를 가지고 있다. ResNet은 기본적으로 VGG-19의 구조에 컨볼루션 층들을 추가해서 깊은 층을 만든 후에, 지름길(shortcut)들을 추가함으로써 입력 값을 출력 값에 더해주는 구조를 갖는다.
실시 예에서, CNN 모델부(611)가 이용하는 ResNet 모델은 101개의 레이어로 구성될 수 있으나 이는 하나의 실시 예로 이에 한정되는 것은 아니다. 일반적인 ResNet 모델은 Fully Connected layer이나, 레이어가 101개나 되는 경우 Fully Connected layer를 할 경우 성능이 매우 느리다. 따라서, 실시 예에서, CNN 모델부(610)는 ResNet 모델에서 Fully Connected layer를 제거하여 속도가 느려지지 않도록 할 수 있다. 즉, CNN 모델부(610)는 Fully Connected layer가 제거된 CNN모델을 이용하여 이미지로부터 특징을 추출할 수 있다.
소프트맥스 분류기(613)는 ResNet을 통해 추출된 특징을 스타일 별로 분류하여 이미지의 스타일 정보를 획득할 수 있다. 예컨대, 소프트맥스 분류기(613)는 이미지의 스타일이 어느 종류에 해당하는지, 예컨대 이미지에 포함된 오브젝트가 사람인지, 동물인지, 자연인지, 또는 이미지의 스타일이 느와르(noir)인지, 빈티지(vintage)인지, 로맨틱인지, 공포인지 등과 같은 다양한 형태의 스타일 정보를 획득할 수 있다.
실시 예에 따른 컬러 정보 획득부(620)는 이미지에서 컬러 정보를 획득할 수 있다. 컬러 정보는 이미지에서 가장 많이 사용된 색의 RGB 값일 수 있다.
컬러 정보 획득부(620)는 RGB 컬러 차이 획득부(621)와 클러스터링부(Clustering, 623)를 포함할 수 있다. RGB 컬러 차이 획득부(621)는 각 픽셀의 RGB 값을 컬러 차이 알고리즘을 통해 유사한 색으로 그루핑할 수 있다. 클러스터링부(623)는 그루핑된 색상들로부터 우세한 컬러를 클러스터링(clustering) 하여 하나의 이미지 별로 하나의 우세한(dominant) 컬러에 해당하는 RGB 값을 획득할 수 있다.
도 7은 실시 예에 따라, 전자 장치가 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 것을 설명하기 위한 도면이다.
전자 장치는 음악 생성부(700)를 포함할 수 있다. 음악 생성부(700)는 도 3의 전자 장치(300)에 포함된 음악 생성부(330)의 일 예일 수 있다.
실시 예에서, 음악 생성부(700)는 복수 개의 AI 모델들을 이용하여 입력 데이터로부터 최종 출력 데이터를 생성할 수 있다.
도 7을 참조하면, 음악 생성부(700)는 제1 뉴럴 네트워크(710), 제2 뉴럴 네트워크(720), 및 제3 뉴럴 네트워크(730)를 포함할 수 있다.
제1 뉴럴 네트워크(710), 제2 뉴럴 네트워크(720), 및 제3 뉴럴 네트워크(730)는 기 정의된 동작 규칙 또는 특정한 알고리즘이 학습된 AI 모델로, 입력 데이터에 대응되는 출력 데이터를 생성할 수 있다.
실시 예에서, 제1 뉴럴 네트워크(710)는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나의 변수 및 웨이트의 가중 합과 정답 셋 간의 차이가 최소가 되는 웨이트를 갖도록 학습된 뉴럴 네트워크일 수 있다.
실시 예에서, 제1 뉴럴 네트워크(710)는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나를 입력 데이터로 입력 받고, 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나로부터 멀티 무드 정보를 획득할 수 있다. 실시 예에서, 제1 뉴럴 네트워크(710)는 입력 데이터로부터 멀티 무드를 획득하는 알고리즘, 또는 알고리즘의 집합, 알고리즘의 집합을 실행하는 소프트웨어 및/또는 알고리집의 집합을 실행하는 하드웨어일 수 있다. 실시 예에서, 제1 뉴럴 네트워크(710)는 소프트맥스 회귀(Softmax Regression) 함수를 포함할 수 있다.
실시 예에서, 제2 뉴럴 네트워크(720)는 제1 뉴럴 네트워크(710)를 통해 획득한 멀티 무드 정보를 입력 데이터로 입력 받을 수 있다. 이와 함께, 제2 뉴럴 네트워크(720)는 사용자 취향 정보 및 외부 상황 정보 중 적어도 하나를 더 입력 받을 수 있다. 제2 뉴럴 네트워크(720)는 멀티 무드 정보, 사용자 취향 정보, 및 외부 상황 정보 중 적어도 하나를 입력 받고, 이로부터 메타데이터를 생성할 수 있다.
실시 예에서, 제2 뉴럴 네트워크(720)는 입력 데이터로부터 음악에 대한 메타데이터를 획득하는 알고리즘, 또는 알고리즘의 집합, 알고리즘의 집합을 실행하는 소프트웨어 및/또는 알고리집의 집합을 실행하는 하드웨어일 수 있다.
실시 예에서, 제2 뉴럴 네트워크(720)는 트랜스포머 모델(Transformer model)에 포함된 인코더를 포함할 수 있다. 트랜스포머 모델은 2017년 구글이 발표한 논문인 "Attention is all you need"에서 나온 모델로 seq2seq의 구조인 인코더-디코더를 따르면서도, 논문의 이름처럼 어텐션(Attention)만으로 구현되는 모델이다.
실시 예에서, 제2 뉴럴 네트워크(720)는 트랜스포머 모델의 인코더에서 출력된 웨이트를 필터링하는 출력 레이어를 포함할 수 있다. 실시 예에서, 제2 뉴럴 네트워크(720)는 트랜스포머 모델의 인코더에서 출력된 웨이트에 출력 레이어를 적용하여 메타데이터를 획득할 수 있다. 메타데이터는 템포(tempo), 감도, 악기(instrument), 앰비언트 사운드(ambient sound), 피치, 음악 연주 길이 중 적어도 하나를 포함할 수 있다.
실시 예에서, 제3 뉴럴 네트워크(730)는 메타데이터로부터 음악 연주를 위한 악보를 획득할 수 있다.
실시 예에서, 제3 뉴럴 네트워크(730)는 입력 데이터로부터 악보를 생성하는 알고리즘, 또는 알고리즘의 집합, 알고리즘의 집합을 실행하는 소프트웨어 및/또는 알고리집의 집합을 실행하는 하드웨어일 수 있다.
실시 예에서, 제3 뉴럴 네트워크(730)는 트랜스포머 모델(Transformer model)을 포함할 수 있다. 보다 구체적으로, 제3 뉴럴 네트워크(730)는 트랜스포머 XL 모델(Transformer XL model)을 포함할 수 있다
실시 예에서, 제3 뉴럴 네트워크(730)는 제2 뉴럴 네트워크(720)를 이용하여 획득한 메타데이터를 트랜스포머 XL 모델에 입력하기 위한 형태로 임베딩하고, 임베딩된 데이터를 트랜스포머 XL 모델에 입력 시킬 수 있다. 트랜스포머 XL 모델은 입력된 데이터를 인코딩 및 디코딩 처리하여 이벤트 시퀀스의 확률 분포를 획득할 수 있다.
실시 예에서, 제3 뉴럴 네트워크(730)는 템포(tempo), 감도(velocity), 피치(pitch) 각각의 이벤트에 대해 확률 분포를 획득할 수 있다. 실시 예에서, 제3 뉴럴 네트워크(730)는 템포(tempo), 감도(velocity), 피치(pitch) 각각의 이벤트에 대해 확률 분포로부터 음악 연주를 위한 악보를 획득할 수 있다.
도 8은 실시 예에 따른 제1 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
실시 예에서, 도 8의 제1 뉴럴 네트워크(800)는 도 7의 음악 생성부(700)에 포함된 제1 뉴럴 네트워크(710)의 일 예일 수 있다.
실시 예에서, 제1 뉴럴 네트워크(800)는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나로부터 특징을 추출하고, 이로부터 멀티 무드 정보를 획득하는 알고리즘이나, 알고리즘의 집합을 실행하는 소프트웨어 및/또는 알고리집의 집합을 실행하는 하드웨어일 수 있다.
제1 뉴럴 네트워크(800)는 입력 데이터를 입력 받고, 분석 및 분류를 위한 연산을 수행하여, 입력 데이터에 대응되는 결과 데이터를 출력하기 위해서 트레이닝(training)될 수 있다.
실시 예에서, 제1 뉴럴 네트워크(800)는 다수의 학습 데이터들로 다양한 사용자 상황 정보 및 스크린 상황 정보를 입력 받고, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 멀티 무드 정보를 획득하도록 학습될 수 있다. 이러한 학습은 인공지능이 수행되는 전자 장치 자체에서 이루어질 수도 있고, 또는 별도의 외부 서버/시스템을 통해 이루어 질 수도 있다.
음악은 기승전결이 있다. 음악이 한 가지 톤이나 동일 패턴으로 생성될 경우 음악을 듣는 사용자는 지루함을 느낄 수 있기 때문에, 음악은 큰 틀에서는 일관성을 유지하면서도 그 안에서 다양한 무드들이 다양한 형태로 표현되도록 생성되는 것이 바람직할 수 있다. 또한, 사람이 느끼는 감정이나 주변 상황 등은 한 가지 감정으로 정의되기보다는 다양한 감정들이 혼재된 상태인 경우가 많기 때문에, 무드 정보 또한 한가지로 표현되기보다는 다양한 감정들에 대응하는 다양한 무드로 표현되는 것이 바람직할 수 있다.
실시 예에서, 제1 뉴럴 네트워크(800)는 다양한 무드, 즉, 멀티 무드를 출력하도록 학습될 수 있다. 예컨대, 제1 뉴럴 네트워크(800)는 하나의 무드만을 결과로 획득하는 것이 아니라 주변 상황이나 사람의 감정을 다양한 무드들, 예컨대 행복함, 따뜻함, 몽환적임 등과 같이 다양한 무드들로 표현하도록 학습될 수 있다.
실시 예에서, 제1 뉴럴 네트워크(800)는 다양한 무드를 결과로 획득하기 위해 소프트맥스 회귀(Softmax Regression) 함수를 이용할 수 있다. 소프트맥스 함수는 분류해야하는 정답지(클래스)가 여러 개인 경우, 즉, 다중 클래스를 예측할 때 이용될 수 있다. 소프트맥스 함수는 클래스의 총 개수를 k라고 할 때, k차원의 벡터를 입력 받아 각 클래스에 대한 확률을 추정할 수 있다.
실시 예에서, 제1 뉴럴 네트워크(800)는 k차원의 벡터를 입력받고 이로부터 획득된 각 클래스에 대한 확률이 정답셋과 같아지도록 학습된 뉴럴 네트워크일 수 있다.
분류하고자 하는 클래스, 즉, 분류하고자 하는 멀티 무드 정보의 종류가 k개인 경우, 제1 뉴럴 네트워크(800)는 입력 데이터 벡터를 k차원의 벡터로 조절하여 입력 받을 수 있다.
도 8에서, x1, x2, …, xm은 입력 변수로, 사용자 상황 정보 및 스크린 정보 중 적어도 하나에 대한 변수 값을 의미할 수 있다. 제1 뉴럴 네트워크(800)는 입력 변수 m개를 k개로 변환하기 위해 입력 변수에 웨이트를 적용할 수 있다. 도 8에서, w1, w2, …, wm은 각 변수들에 적용될 가중치, 즉, 웨이트를 의미할 수 있다. 또한 b는 편향을 의미할 수 있다.
제1 뉴럴 네트워크(800)는 입력 변수와 웨이트의 행렬을 곱해 예측 값 z를 생성할 수 있다. z는 Net input function으로, z=w1x1+w2v2+w3x3+…+wmxm+b와 같이 생성될 수 있다. 예측 값은 각각의 클래스가 정답일 확률을 의미할 수 있다. 예측 값을 확률 분포로 바꾸기 위해서, 제1 뉴럴 네트워크(800)는 소프트맥스 함수를 이용할 수 있다. 소프트맥스 함수는 입력으로 예측 값을 받고, 총합이 1인 확률 분포를 결과로 획득할 수 있다. 확률 분포는 시그모이드 함수(sigmoid function)를 통해 결과가 해당 클래스에 속하는지 여부에 대한 확률 값으로 획득될 수 있다.
제1 뉴럴 네트워크(800)는 비용 함수(Cost function)를 이용하여 확률 값과 정답 셋과의 차이를 에러(error)로 구할 수 있다. 비용 함수로는 예컨대 크로스 엔트로피(cross entropy) 함수가 이용될 수 있으나 이에 한정되는 것은 아니다. 제1 뉴럴 네트워크(800)는 에러가 최소가 되는 가중치를 획득할 때까지 반복하여 루프를 돌리면서 훈련될 수 있다.
훈련이 끝난 제1 뉴럴 네트워크(800)는 사용자 상황 정보 및 스크린 정보 중 적어도 하나에 대한 변수 값을 입력 받을 수 있다. 예컨대, 제1 뉴럴 네트워크(800)는 사용자 상황 정보 중 액티비티 정보에 대한 변수 값을 x1으로, 사용자 상황 정보 중 감정 정보에 대한 변수 값을 x2로, 스크린 상황 정보 중 이미지의 스타일 정보에 대한 변수 값을 x3으로, 스크린 상황 정보 중 이미지의 컬러 정보에 대한 변수 값을 x4로 입력 받을 수 있다. 제1 뉴럴 네트워크(800)는 입력 변수 m개를 k개로 변환하기 위해 입력 변수에 생성된 가중치, 즉, 웨이트 w1, w2, …, wm을 적용하여 멀티 무드 정보에 해당하는 각각의 클래스에 대한 확률 값을 획득할 수 있다. 확률 값은 양자화 함수(Quantizer)를 거쳐 이산적인 결과 값으로 변환될 수 있다. 결과 값 y는 원핫인코딩 벡터 형태일 수 있다. 예컨대, 제1 뉴럴 네트워크(800)는 조용함, 행복함, 열정적임이 각각 0.5, 0.3. 0.2로 표현된 벡터를 멀티 무드 정보 y로 획득할 수 있다.
도 9는 실시 예에 따른 제2 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
실시 예에서, 도 9의 제2 뉴럴 네트워크(900)는 도 7의 음악 생성부(700)에 포함된 제2 뉴럴 네트워크(720)의 일 예일 수 있다.
실시 예에서, 제2 뉴럴 네트워크(900)는 사용자 취향 정보, 외부 상황 정보, 멀티 무드 정보 중 적어도 하나로부터 특징을 추출하고, 이로부터 메타데이터를 획득하는 알고리즘, 또는 알고리즘의 집합, 알고리즘의 집합을 실행하는 소프트웨어 및/또는 알고리집의 집합을 실행하는 하드웨어일 수 있다.
제2 뉴럴 네트워크(900)는 다양한 사용자 취향 정보, 외부 상황 정보, 멀티 무드 정보 중 적어도 하나를 학습 데이터로 입력 받고, 학습 알고리즘을 적용하여, 다수의 학습 데이터들을 분석 및 분류하여, 학습 데이터에 대응되는 결과 데이터로 메타데이터를 획득하도록 학습될 수 있다. 이러한 학습은 인공지능이 수행되는 전자 장치 자체에서 이루어질 수도 있고, 또는 별도의 외부 서버/시스템을 통해 이루어 질 수도 있다.
실시 예에서, 제2 뉴럴 네트워크(900)는 트랜스포머 모델(Transformer model)을 이용할 수 있다. 보다 구체적으로, 제2 뉴럴 네트워크(900)는 BERT(Bidirectional Encoder Representations from Transformers) 모델을 이용할 수 있다. BERT는 2018년에 구글이 공개한 사전 훈련된 모델로, 트랜스포머 모델의 인코더를 쌓아 올린 구조를 갖는 모델이다. 즉, BERT의 아키텍처는 Attention is all you need에서 소개된 트랜스포머 모델을 사용하지만, pre-training과 fine-tuning시의 아키텍처를 일부 변형하여 Transfer Learning을 용이하게 만든 모델일 수 있다.
제2 뉴럴 네트워크(900)는 입력 데이터를 임베딩(embedding)하여 임베딩 벡터를 획득할 수 있다. 즉, 제2 뉴럴 네트워크(900)는 임베딩 알고리즘을 이용하여 각각의 입력 데이터를 벡터로 변환할 수 있다. 임베딩된 벡터는 BERT 모델의 인코더(910)로 입력 될 수 있다. BERT 모델의 인코더(910)는 복수개의 인코더들의 레이어가 쌓인 것으로, 각 레이어마다 멀티 헤드 셀프 어텐션(multi head self-attention)과 피드 포워드(feed-forward) 동작을 수행할 수 있다. BERT 모델의 인코더(910)는 임베딩된 벡터를 입력 받고, 입력된 벡터를 'self-attention' 계층으로 전달하고, 그 다음 피드-포워드 계층으로 전달하고, 그로부터 획득된 출력을 다음 인코더로 전달할 수 있다.
훈련이 끝난 제2 뉴럴 네트워크(900)는 입력 데이터로 멀티 무드 정보, 외부 상황 정보, 사용자 취향 정보 중 적어도 하나를 입력 받을 수 있다. 제2 뉴럴 네트워크(900)는 입력 데이터를 임베딩하여 임베딩 벡터를 생성하고 이를 BERT 모델의 인코더(910)에 입력 시켜 웨이트 벡터를 획득할 수 있다.
제2 뉴럴 네트워크(900)는 웨이트 벡터를 출력 레이어(920)로 필터링하여 출력 데이터를 획득할 수 있다. 실시 예에서, 출력 데이터는 음악에 대한 메타데이터를 포함할 수 있다.
실시 예에서, 제2 뉴럴 네트워크(900)는 웨이트 벡터로부터 출력 데이터를 획득하기 위해 소프트맥스(softmax) 함수를 출력 레이어로 이용할 수 있다. 실시 예에서, 제2 뉴럴 네트워크(900)가 출력 레이어로 소프트맥스 함수를 이용하여 획득한 메타데이터를 제1 메타데이터라고 할 때, 제1 메타데이터는 템포(tempo), 감도(velocity), 악기(instrument), 앰비언트 사운드(ambient sound) 중 적어도 하나에 대한 메타데이터를 포함할 수 있다. 제1 메타데이터는 해당 메타데이터의 종류 및 그 메타데이터가 어느 분류에 속하는지를 나타내는 정보를 포함할 수 있다. 예컨대, 제1 메타데이터가 템포인 경우, 제1 메타데이터는 템포가 느린지, 중간인지, 빠른지 여부를 각각 0.5, 0.3. 0.2의 숫자로 나타낼 수 있다.
실시 예에서, 제2 뉴럴 네트워크(900)는 웨이트 벡터에 풀리 커넥티드 레이어(fully connected layer)를 출력 레이어로 적용하여 메타데이터를 획득할 수 있다. 피치 또는 음악 연주 길이 등의 메타데이터는 분류를 통해 구분되는 것이 아니라 범위에 속한 값으로 획득될 수 있다. 따라서, 제2 뉴럴 네트워크(900) 출력 레이어로 풀리 커넥티드 레이어를 이용하여 웨이트 벡터로부터 피치 또는 음악 연주 길이가 속하는 범위 값을 획득할 수 있다. 출력 레이어로 풀리 커넥티드 레이어를 이용하여 획득된 메타데이터를 제2 메타데이터라고 할 때, 제2 메타데이터는 피치 및 음악 연주 길이 중 적어도 하나를 포함할 수 있다. 예컨대, 제2 메타데이터는 피치 값이 1에서 128 중 어디에 해당하는지, 또는 음악 연주 길이가 1에서 600초 중 어디에 해당하는지를 나타내는 정보를 포함할 수 있다.
도 10은 실시 예에 따른 제3 뉴럴 네트워크의 동작을 설명하기 위한 도면이다.
실시 예에서, 도 10의 제3 뉴럴 네트워크(1000)는 도 7의 음악 생성부(700)에 포함된 제3 뉴럴 네트워크(730)의 일 예일 수 있다.
실시 예에서, 제3 뉴럴 네트워크(1000)는 다양한 종류의 메타데이터로부터 악보를 획득하도록 학습된 뉴럴 네트워크일 수 있다.
실시 예에서, 제3 뉴럴 네트워크(1000)는 다양한 종류의 메타데이터를 학습 데이터로 입력 받을 수 있다. 메타데이터는 템포, 감도, 악기, 앰비언트 사운드, 피치 및 음악 연주 길이 중 적어도 하나를 포함할 수 있다. 제3 뉴럴 네트워크(1000)는 메터데이터를 분석 및 분류하여 특징을 추출하고, 추출한 특징을 기반으로 음악 정보가 담긴 악보를 획득하도록 훈련될 수 있다. 이러한 학습은 인공지능이 수행되는 전자 장치 자체에서 이루어질 수도 있고, 또는 별도의 외부 서버/시스템을 통해 이루어 질 수도 있다.
실시 예에서, 제3 뉴럴 네트워크(1000)는 트랜스포머 모델(Transformer model)을 포함할 수 있다. 트랜스포머 모델(Transformer model)은 고정 길이의 컨텍스트로 구현되므로 고정 길이보다 긴 종속성을 모델링할 수 없으며 컨텍스트 단편화가 발생하게 된다.
이에, 실시 예에서, 제3 뉴럴 네트워크(1000)는 트랜스포머 모델 중, 트랜스포머 XL(Transformer-XL) 모델을 이용할 수 있다. 트랜스포머 XL 모델은 훈련하는 동안 이전 세그먼트에 대해 계산된 표현을 다음 세그먼트를 처리할 때 확장 컨텍스트로 사용할 수 있다. 또한, 상대 위치 인코딩 방식을 이용하여 각 토큰의 절대 위치뿐만 아니라 음악에서 매우 중요한 서로에 대한 각 토큰의 위치도 훈련할 수 있다.
실시 예에서, 제3 뉴럴 네트워크(1000)는 인코더(1010) 및 디코더(1020)를 포함할 수 있다. 인코더(1010)와 디코더(1020)는 N개의 단위만큼 존재할 수 있다. 인코더(1010)는 임베딩된 메타데이터를 입력 시퀀스로 입력 받고, 이를 처리하여 디코더(1020)로 전송할 수 있다. 디코더(1020)는 인코더(1010)로부터 받은 데이터를 처리하여 출력 시퀀스를 출력할 수 있다.
실시 예에서, 출력 시퀀스는 이벤트 시퀀스(event sequence)의 확률 분포(probability distribution)로 획득될 수 있다. 이벤트 시퀀스는 이벤트가 나열된 경로로, 대상, 즉, 이벤트를 설명하는 데이터의 형태로, 특정 기간 동안 대상의 행동을 나타내는 선후 관계가 있는 항목들의 집합을 의미할 수 있다. 여기서, 이벤트는 악보를 생성하기 위한 정보로, 예컨대, 템포(tempo), 감도(velocity), 피치(pitch), 음표의 위치(음정) 등과 같은 다양한 정보를 포함할 수 있다.
이벤트 시퀀스 확률 분포는 각 이벤트 별로 획득된 이벤트 시퀀스에 대한 확률 분포를 포함할 수 있다. 즉, 제3 뉴럴 네트워크(1000)는 템포에 대한 확률 분포, 감도에 대한 확률 분포, 피치에 대한 확률 분포, 음표의 위치에 대한 확률 분포 등과 같이 각 이벤트 별로 이벤트 시퀀스 확률 분포를 획득할 수 있다.
실시 예에서, 제3 뉴럴 네트워크(1000)는 이벤트 시퀀스 확률 분포를 샘플링하여 이로부터 악보를 생성할 수 있다. 제3 뉴럴 네트워크(1000)는 각 이벤트 별로 생성된 이벤트 시퀀스 확률 분포를 샘플링하여 하나의 마디(bar) 단위로 악보를 생성할 수 있다.
실시 예에서, 제3 뉴럴 네트워크(1000)는 다양한 샘플링 기법을 이용하여 이벤트 시퀀스 확률 분포를 샘플링할 수 있다. 예컨대, 제3 뉴럴 네트워크(1000)는 top-k 샘플링을 수행하여 템포, 감도, 피치, 음정 각각에 대한 이벤트 시퀀스 확률 분포로부터 확률 분포가 가장 높은 값을 픽(pick)해서 하나의 마디를 생성할 수 있다. 또는 제3 뉴럴 네트워크(1000)는 Nucleus Sampling 을 수행하여 확률 값을 고려하여 샘플링을 수행할 수도 있다.
실시 예에서, 메타데이터에 포함된 악기 종류가 두 종류 이상인 경우, 예컨대, 피아노와 바이올린인 경우, 제3 뉴럴 네트워크(1000)는 각 악기 별로, 즉, 피아노와 바이올린 각각에 대해 마디를 생성할 수 있다.
실시 예에서, 제3 뉴럴 네트워크(1000)는 생성된 마디를 다시 인코더(1010)로 입력 받고 인코더(1010)와 디코더(1020)를 통해 데이터를 처리하여 다시 각 이벤트 별 이벤트 시퀀스 확률 분포를 획득할 수 있다. 제3 뉴럴 네트워크(1000)는 각 이벤트 별로 획득한 이벤트 시퀀스 확률 분포를 다시 샘플링하여 이전 마디 다음에 오는 마디를 생성할 수 있다.
제3 뉴럴 네트워크(1000)는 이미 생성된 마디를 참조하여 다음에 오는 마디를 생성하는 과정을 반복하여 수행할 수 있다. 제3 뉴럴 네트워크(1000)는 메타데이터에 포함된 음악 연주 길이에 해당하는 시간 동안 위 과정을 반복할 수 있다.
이와 같이, 실시 예에 의하면, 제3 뉴럴 네트워크(1000)는 이전 마디를 참조하여 다음 마디를 생성하기 때문에 전체적으로 유사한 분위기를 가지는 음악을 생성할 수 있다. 또한, 실시 예에 의하면, 제3 뉴럴 네트워크(1000)는 이벤트 시퀀스 확률 분포를 샘플링하여 마디를 생성하기 때문에 동일한 이벤트 시퀀스 확률 분포를 이용하더라도 마디 별로 다른 정보가 생성되도록 할 수 있다.
도 11은 실시 예에 따른 전자 장치의 내부 블록도이다.
도 11의 전자 장치(1100)는 도 2의 전자 장치(200)의 구성 요소를 포함할 수 있다. 도 11의 전자 장치(1100)에 포함된 구성 요소 중 도 2의 전자 장치(200)에 포함된 구성 요소와 동일한 구성 요소에 대해서는 동일한 도면 부호를 사용하였다. 이하, 도 2에서 설명한 내용과 중복되는 설명은 생략한다.
도 11을 참조하면, 전자 장치(1100)는, 프로세서(210) 및 메모리(220) 외에도 튜너부(1110), 통신부(1120), 감지부(1130), 입/출력부(1140), 비디오 처리부(1150), 디스플레이부(1160), 오디오 처리부(1170), 오디오 출력부(1180) 및 사용자 입력부(1190)를 더 포함할 수 있다.
튜너부(1110)는 유선 또는 무선으로 수신되는 방송 콘텐츠 등을 증폭(amplification), 혼합(mixing), 공진(resonance)등을 통하여 많은 전파 성분 중에서 전자 장치(1100)에서 수신하고자 하는 채널의 주파수만을 튜닝(tuning)시켜 선택할 수 있다. 튜너부(1110)를 통해 수신된 콘텐츠는 디코딩되어 오디오, 비디오 및/또는 부가 정보로 분리된다. 분리된 오디오, 비디오 및/또는 부가 정보는 프로세서(210)의 제어에 의해 메모리(220)에 저장될 수 있다.
통신부(1120)는 프로세서(210)의 제어에 의해 전자 장치(1100)를 주변 기기나 외부 장치, 서버, 이동 단말기 등과 연결할 수 있다. 통신부(1120)는 무선 통신을 수행할 수 있는 적어도 하나의 통신 모듈을 포함할 수 있다. 통신부(1120)는 전자 장치(1100)의 성능 및 구조에 대응하여 무선랜 모듈(1121), 블루투스 모듈(1122), 유선 이더넷(Ethernet)(1123) 중 적어도 하나를 포함할 수 있다.
블루투스 모듈(1122)은 블루투스 통신 규격에 따라서 주변 기기로부터 전송된 블루투스 신호를 수신할 수 있다. 블루투스 모듈(1122)은 BLE(Bluetooth Low Energy) 통신 모듈이 될 수 있으며, BLE 신호를 수신할 수 있다. 블루투스 모듈(1122)은 BLE 신호가 수신되는지 여부를 감지하기 위해서 상시적으로 또는 일시적으로 BLE 신호를 스캔할 수 있다. 무선랜 모듈(1121)은 와이파이(Wi-Fi) 통신 규격에 따라서 주변 기기와 와이파이 신호를 송수신할 수 있다.
실시 예에서, 통신부(1120)는 통신 모듈을 이용하여 외부 장치나 서버 등으로부터 외부 상황을 나타내는 다양한 정보들, 예컨대 날씨나 시간, 날짜 등에 대한 정보를 획득하고, 이를 프로세서(210)에 전송할 수 있다.
감지부(1130)는 사용자의 음성, 사용자의 영상, 또는 사용자의 인터랙션을 감지하며, 마이크(1131), 카메라부(1132), 광 수신부(1133), 센싱부(1134)를 포함할 수 있다. 마이크(1131)는 사용자의 발화(utterance)된 음성이나 노이즈를 포함하는 오디오 신호를 수신할 수 있고 수신된 오디오 신호를 전기 신호로 변환하여 프로세서(210)로 출력할 수 있다.
카메라부(1132)는 센서(미도시) 및 렌즈(미도시)를 포함하고, 화면에 맺힌 이미지를 촬영하여 캡쳐하고 이를 프로세서(210)로 전송할 수 있다.
광 수신부(1133)는, 광 신호(제어 신호를 포함)를 수신할 수 있다. 광 수신부(1133)는 리모컨이나 핸드폰 등과 같은 제어 장치로부터 사용자 입력(예를 들어, 터치, 눌림, 터치 제스처, 음성, 또는 모션)에 대응되는 광 신호를 수신할 수 있다.
센싱부(1134)는 전자 장치 주변의 상태를 감지하고, 감지된 정보를 통신부(1120) 또는 프로세서(210)로 전달할 수 있다. 센싱부(1134)는 예컨대, 센서는 온/습도 센서, 조도 센서, 위치 센서(예컨대, GPS), 기압 센서 및 근접 센서 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다.
입/출력부(1140)는 프로세서(210)의 제어에 의해 전자 장치(1100) 외부의 기기 등으로부터 비디오(예를 들어, 동영상 신호나 정지 영상 신호 등), 오디오(예를 들어, 음성 신호나, 음악 신호 등) 및 부가 정보 등을 수신할 수 있다.
입/출력부(1140)는 HDMI 포트(High-Definition Multimedia Interface port, 1141), 컴포넌트 잭(component jack, 1142), PC 포트(PC port, 1143), 및 USB 포트(USB port, 1144) 중 하나를 포함할 수 있다. 입/출력부(1140)는 HDMI 포트(1141), 컴포넌트 잭(1142), PC 포트(1143), 및 USB 포트(1144)의 조합을 포함할 수 있다.
비디오 처리부(1150)는, 디스플레이부(1160)에 의해 표시될 영상 데이터를 처리하며, 영상 데이터에 대한 디코딩, 렌더링, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 및 해상도 변환 등과 같은 다양한 영상 처리 동작을 수행할 수 있다.
디스플레이부(1160)는 방송국으로부터 수신하거나 외부 서버, 또는 외부 저장 매체 등으로부터 수신한 콘텐츠를 화면에 출력할 수 있다. 콘텐츠는 미디어 신호로, 비디오 신호, 이미지, 텍스트 신호 등을 포함할 수 있다.
디스플레이부(1160)가 터치 스크린으로 구현되는 경우, 디스플레이부(1160)는 출력 장치 이외에 사용자 인터페이스와 같은 입력 장치로 사용될 수 있다. 예를 들어, 디스플레이부(1160)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉서블 디스플레이(flexible display), 3차원 디스플레이(4D display), 전기 영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고, 디스플레이부(1160)의 구현 형태에 따라, 디스플레이부(1160)는 둘 이상 포함될 수 있다.
오디오 처리부(1170)는 오디오 데이터에 대한 처리를 수행한다. 오디오 처리부(1170)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
오디오 출력부(1180)는 프로세서(210)의 제어에 의해 튜너부(1110)를 통해 수신된 콘텐츠에 포함된 오디오, 통신부(1120) 또는 입/출력부(1140)를 통해 입력되는 오디오, 메모리(220)에 저장된 오디오를 출력할 수 있다. 오디오 출력부(1180)는 스피커(1181), 헤드폰(1182) 또는 S/PDIF(Sony/Philips Digital Interface: 출력 단자)(1183) 중 적어도 하나를 포함할 수 있다.
실시 예에서, 오디오 출력부(1180)는 프로세서(210)가 생성한 악보 정보에 따라 음악을 연주하여 출력할 수 있다.
사용자 입력부(1190)는 전자 장치(1100)를 제어하기 위한 사용자 입력을 수신할 수 있다. 사용자 입력부(1190)는 사용자의 터치를 감지하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자의 회전 조작을 수신하는 휠, 키보드(key board), 및 돔 스위치 (dome switch), 음성 인식을 위한 마이크, 모션을 센싱하는 모션 감지 센서 등을 포함하는 다양한 형태의 사용자 입력 디바이스를 포함할 수 있으나 이에 제한되지 않는다. 리모컨이나 기타 이동 단말기가 전자 장치(1100)를 제어하는 경우, 사용자 입력부(1190)는 이동 단말기로부터 수신되는 제어 신호를 수신할 수 있다.
도 12는 실시 예에 따라, 전자 장치가 악보를 획득하는 과정을 도시한 순서도이다.
도 12를 참조하면, 실시 예에 따른 전자 장치는 음악 연주를 위한 상황 정보를 획득할 수 있다(단계 1210).
실시 예에서, 음악 연주를 위한 상황 정보는 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함할 수 있다. 실시 예에서, 전자 장치는 오디오 신호로부터 사용자 상황 정보를 획득할 수 있다. 실시 예에서, 전자 장치는 스크린에 출력된 이미지로부터 스크린 상황 정보를 획득할 수 있다. 실시 예에서, 전자 장치는 센서나 통신 모듈을 통해 외부 상황 정보를 획득할 수 있다.
실시 예에서, 전자 장치는 사용자 취향 정보를 획득할 수 있다(단계 1220).
사용자 취향 정보는 사용자의 취미나 사용자가 선호하는 방향을 나타내는 정보를 의미할 수 있다. 실시 예에서, 전자 장치는 사용자의 이전 음악 청취 이력이 있는 경우, 이전 음악 청취 이력에 기반하여 사용자 취향 정보를 획득할 수 있다. 실시 예에서, 전자 장치는 사용자 취향 정보 데이터베이스로부터, 사용자가 이전에 청취한 음악에 대한 정보를 기반으로 사용자 취향 정보를 획득할 수 있다.
실시 예에서, 사용자 취향 정보는 사용자의 식별 정보, 사용자가 이전에 청취한 음악의 무드(mood) 정보, 감도(velocity) 정보, 악기 정보, 음악이 재생된 빈도 정보, 음악이 재생된 시간 정보, 음악이 재생될 때의 스크린 상황 정보, 및 음악이 재생될 때의 외부 컨텍스트 정보 중 적어도 하나를 포함할 수 있다.
실시 예에서, 전자 장치는 적어도 하나의 뉴럴 네트워크를 이용하여, 음악 연주를 위한 상황 정보 및 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득할 수 있다(단계 1230).
도 13은 실시 예에 따라, 전자 장치가 적어도 하나의 뉴럴 네트워크를 이용하여 악보를 획득하는 과정을 도시한 순서도이다.
도 13을 참조하면, 실시 예에 따른 전자 장치는 제1 뉴럴 네트워크를 이용하여, 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나로부터 멀티 무드 정보를 획득할 수 있다(단계 1310).
실시 예에서, 제1 뉴럴 네트워크는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나의 변수 및 웨이트의 가중 합과 정답 셋 간의 차이가 최소가 되는 웨이트를 갖도록 학습된 뉴럴 네트워크일 수 있다.
실시 예에 따른 전자 장치는 제2 뉴럴 네트워크를 이용하여, 사용자 취향 정보, 멀티 무드 정보, 및 외부 상황 정보 및 중 적어도 하나로부터 메타데이터를 획득할 수 있다(단계 1320).
실시 예에서, 2 뉴럴 네트워크는 트랜스포머 모델(Transformer model)의 인코더와 출력 레이어를 포함하는 형태일 수 있다. 예컨대, 제2 뉴럴 네트워크는 BERT 모델과 출력 레이어로 구현될 수 있다.
제2 뉴럴 네트워크는 사용자 취향 정보, 멀티 무드 정보, 및 상기 외부 상황 정보 중 적어도 하나를 임베딩하여 인코더에 입력 시키고, 인코더에서 출력된 웨이트에 소프트맥스(softmax) 함수를 출력 레이어로 적용하여 템포(tempo), 감도, 악기(instrument), 앰비언트 사운드(ambient sound) 중 적어도 하나를 포함하는 메타데이터를 획득할 수 있다.
실시 예에서, 제2 뉴럴 네트워크는 인코더에서 출력된 웨이트에 풀리 커넥티드 레이어(fully connected layer)를 출력 레이어로 적용하여 피치(pitch) 및 음악 연주 길이 중 적어도 하나를 포함하는 메타데이터를 획득할 수도 있다.
실시 예에 따른 전자 장치는 제3 뉴럴 네트워크를 이용하여, 메타데이터로부터 음악 연주를 위한 악보를 획득할 수 있다(단계 1330).
실시 예에서, 제3 뉴럴 네트워크는 트랜스포머 XL 모델(Transformer XL model)을 포함할 수 있다. 제3 뉴럴 네트워크는 메타데이터를 임베딩하여 트랜스포머 XL 모델에 입력 시켜 이벤트 시퀀스의 제1 확률 분포를 획득하고, 이벤트 시퀀스의 제1 확률 분포를 샘플링하여 제1 마디(bar)를 획득할 수 있다.
실시 예에서, 제3 뉴럴 네트워크는 제1 마디를 트랜스포머 XL 모델에 피드 포워드(feed forward)하여 트랜스포머 XL 모델로부터 이벤트 시퀀스의 제2 확률 분포를 획득하고, 이벤트 시퀀스의 제2 확률 분포를 샘플링하여 제1 마디 다음에 오는 제2 마디를 획득할 수 있다.
도 14는 실시 예에 따라, 전자 장치가 동작하는 다양한 상황을 도시한 도면이다.
도 14(a)를 참조하면, 전자 장치는 스마트폰 등과 같은 이동 단말기일 수 있다. 전자 장치는 내부에 저장된 복수의 이미지들 중 스타일이나 색상, 오브젝트의 종류 등이 유사한 사진들을 그룹핑하여 이를 함께 화면에 출력할 수 있다. 전자 장치는 자동으로, 또는 사용자의 제어 신호에 따라 사용자의 사진 폴더 등에서 스타일이 비슷한 사진을 클러스터링(clustering)할 수 있다. 도 14(a)는 예컨대, 화면에 출력된 이미지들이 가족들의 인물 사진인 경우를 도시한다.
실시 예에서, 전자 장치는 화면에 출력된 비슷한 스타일의 사진들로부터 스크린 상황 정보를 획득할 수 있다. 전자 장치는 이미지의 스타일 정보, 컬러 정보 중 적어도 하나를 획득할 수 있다.
실시 예에서, 전자 장치는 사용자 상황 정보, 외부 상황 정보, 사용자 취향 정보 중 적어도 하나를 더 획득할 수도 있다.
실시 예에서, 전자 장치는 획득한 정보들을 이용하여 멀티 무드 정보를 획득할 수 있다. 예컨대, 전자 장치가 획득하는 멀티 무드 정보는 행복함, 따뜻함, 그리움 등의 다양한 감정을 나타내는 정보일 수 있다. 실시 예에서, 전자 장치는 멀티 무드 정보를 기반으로 메타데이터를 획득할 수 있다. 스크린 상황 정보 외에 기타 다른 상황 정보가 있는 경우 전자 장치는 그 상황 정보도 고려하여 메타데이터를 획득할 수 있다.
실시 예에서, 전자 장치는 메타데이터를 이용하여 악보를 생성하고 악보에 따른 음악이 전자 장치에서 재생되도록 할 수 있다. 사용자는 전자 장치를 이용하여 가족들의 이미지를 보면서 이미지와 어울리는 음악을 청취할 수 있다.
도 14(b)를 참조하면, 전자 장치는 냉장고의 전면에 포함된 디스플레이일 수 있다. 실시 예에서, 전자 장치는 내부에 저장된 이미지를 출력하거나, 또는 통신망을 통해 사용자의 다른 전자 장치, 예컨대 사용자의 스마트폰이나 디지털 TV, 랩탑 컴퓨터 등에 저장되어 있는 이미지를 수신하여 출력할 수 있다. 도 14(b)는 예컨대, 화면에 출력된 이미지가 가족 사진인 경우를 도시한다.
실시 예에서, 전자 장치는 화면에 출력된 이미지를 분석하여 스크린 상황 정보를 획득할 수 있다.
또한, 전자 장치는 오디오 신호를 수신하여 사용자 상황 정보를 획득할 수 있다. 전자 장치는 복수의 사용자들 별로 또는 복수의 사용자들에 대해 함께 사용자 상황 정보를 획득할 수 있다. 전자 장치는 사용자 상황 정보로부터, 사용자를 식별하고, 감정 정보, 액티비티 정보 중 적어도 하나를 획득할 수 있다.
예컨대, 전자 장치는 오디오 신호를 통해 사용자들이 대화를 한다는 것을 나타내는 액티비티 정보를 획득할 수 있다. 또한, 전자 장치는 사용자들의 웃음 소리나 음성의 톤이나 주파수 등을 통해 사용자들이 즐거운 상태라는 것을 나타내는 감정 정보를 획득할 수 있다.
전자 장치는 획득한 사용자 상황 정보와 스크린 상황 정보를 함께 고려하여 사용자의 상황에 맞는 멀티 무드 정보를 획득할 수 있다. 예컨대, 전자 장치는, 즐거움, 편안함, 유쾌함 등의 다양한 감정을 나타내는 정보를 멀티 무드 정보로 생성할 수 있다. 실시 예에서, 전자 장치는 멀티 무드 정보를 고려하여 메타데이터를 획득하고, 이로부터 악보를 생성하여 악보에 따라 음악이 연주되도록 할 수 있다. 사용자는 전자 장치를 이용하여 현재 상황이나 감정과 어울리는 음악을 청취할 수 있다.
일부 실시 예에 따른 전자 장치의 동작 방법 및 장치는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비 휘발성 매체, 분리형 및 비 분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비 휘발성, 분리형 및 비 분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
또한, 전술한 본 개시의 실시 예에 따른 전자 장치 및 그 동작 방법은 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하는 단계, 사용자의 이전 청취 이력에 기반하여 사용자 취향 정보를 획득하는 단계 및 적어도 하나의 뉴럴 네트워크를 이용하여, 상기 음악 연주를 위한 상황 정보 및 상기 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 단계를 포함하는, 전자 장치의 동작 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체/저장 매체를 포함하는 컴퓨터 프로그램 제품으로 구현될 수 있다.
기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서,‘비일시적 저장 매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장 매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예:다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 설명은 예시를 위한 것이며, 발명이 속하는 기술분야의 통상의 지식을 가진 자는 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일 형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하고,
    사용자의 이전 음악 청취 이력에 기반하여 사용자 취향 정보를 획득하고,
    적어도 하나의 뉴럴 네트워크를 이용하여, 상기 음악 연주를 위한 상황 정보 및 상기 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는, 전자 장치.
  2. 제1 항에 있어서, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    제1 뉴럴 네트워크를 이용하여, 상기 사용자 상황 정보 및 상기 스크린 상황 정보 중 적어도 하나로부터 멀티 무드(multi mood) 정보를 획득하고,
    제2 뉴럴 네트워크를 이용하여, 상기 사용자 취향 정보, 상기 멀티 무드 정보, 및 상기 외부 상황 정보 및 중 적어도 하나로부터 메타데이터를 획득하고,
    제3 뉴럴 네트워크를 이용하여, 상기 메타데이터로부터 상기 음악 연주를 위한 악보를 획득하는, 전자 장치.
  3. 제2 항에 있어서, 상기 제1 뉴럴 네트워크는 소프트맥스 회귀(Softmax Regression) 함수를 포함하고,
    상기 제1 뉴럴 네트워크는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나의 변수 및 웨이트의 가중 합과 정답 셋 간의 차이가 최소가 되는 웨이트를 갖도록 학습된 뉴럴 네트워크인, 전자 장치.
  4. 제2 항에 있어서, 상기 제2 뉴럴 네트워크는 트랜스포머 모델(Transformer model)의 인코더 및 출력 레이어를 포함하고,
    상기 메타데이터는 제1 메타데이터 및 제2 메타데이터를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 사용자 취향 정보, 상기 멀티 무드 정보, 및 상기 외부 상황 정보 중 적어도 하나를 임베딩하여 상기 트랜스포머 모델의 인코더에 입력 시키고,
    상기 트랜스포머 모델의 인코더에서 출력된 웨이트에 소프트맥스(softmax) 함수를 상기 출력 레이어로 적용하여 상기 제1 메타데이터를 획득하고,
    상기 트랜스포머 모델의 인코더에서 출력된 웨이트에 풀리 커넥티드 레이어(fully connected layer)를 상기 출력 레이어로 적용하여 상기 제2 메타데이터를 획득하고,
    상기 제1 메타데이터는 템포(tempo), 감도, 악기(instrument), 앰비언트 사운드(ambient sound) 중 적어도 하나를 포함하고,
    상기 제2 메타데이터는 피치(pitch) 및 음악 연주 길이 중 적어도 하나를 포함하는, 전자 장치.
  5. 제2 항에 있어서, 상기 제3 뉴럴 네트워크는 트랜스포머 XL 모델(Transformer XL model)을 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 메타데이터를 임베딩하여 상기 트랜스포머 XL 모델에 입력 시켜 이벤트 시퀀스의 제1 확률 분포를 획득하고,
    상기 이벤트 시퀀스의 제1 확률 분포를 샘플링하여 제1 마디(bar)를 획득하는, 전자 장치.
  6. 제5 항에 있어서, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 제1 마디를 상기 트랜스포머 XL 모델에 피드 포워드(feed forward)하여 상기 트랜스포머 XL 모델로부터 이벤트 시퀀스의 제2 확률 분포를 획득하고,
    상기 이벤트 시퀀스의 제2 확률 분포를 샘플링하여 상기 제1 마디 다음에 오는 제2 마디를 획득하는, 전자 장치.
  7. 제6 항에 있어서, 상기 이벤트 시퀀스의 제1 확률 분포는 템포(tempo), 감도(velocity), 피치(pitch) 각각에 대한 확률 분포를 포함하는, 전자 장치.
  8. 제1 항에 있어서, 사용자 취향 정보 데이터베이스를 더 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 사용자 취향 정보 데이터베이스로부터, 상기 사용자가 이전에 청취한 음악에 대한 정보에 기반하여 획득된 사용자 취향 정보를 획득하고,
    상기 음악 연주를 위한 악보에 따라 음악을 재생하고,
    상기 음악 재생과 관련된 정보를 상기 사용자 취향 정보 데이터베이스에 추가하여 상기 사용자 취향 정보 데이터베이스를 업데이트하는, 전자 장치.
  9. 제8 항에 있어서, 상기 사용자 취향 정보는 상기 사용자의 식별 정보, 상기 사용자가 이전에 청취한 음악의 무드 정보, 감도 정보, 악기 정보, 앰비언트 사운드 정보, 상기 음악이 재생된 빈도 정보, 상기 음악이 재생된 시간 정보, 상기 음악이 재생될 때의 스크린 상황 정보, 및 상기 음악이 재생될 때의 외부 컨텍스트 정보 중 적어도 하나를 포함하는, 전자 장치.
  10. 제1 항에 있어서, 상기 사용자 상황 정보는 사용자 식별 정보, 액티비티 정보, 및 감정 정보 중 적어도 하나를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    오디오 신호로부터 음성 및 노이즈를 분리하고,
    상기 음성에 기반하여 상기 사용자를 식별하는 것, 상기 식별된 사용자의 상기 음성에 기반하여 상기 사용자의 감정 정보를 획득하는 것, 및 상기 음성 및 상기 노이즈 중 적어도 하나에 기반하여 상기 사용자가 수행하는 액티비티 정보를 획득하는 것 중 적어도 하나를 수행하여, 상기 음성 및 상기 노이즈 중 적어도 하나로부터 상기 사용자 상황 정보를 획득하는, 전자 장치.
  11. 제1 항에 있어서, 디스플레이를 더 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 디스플레이에 출력되는 이미지의 스타일 정보 및 컬러 정보 중 적어도 하나에 기반하여 상기 스크린 상황 정보를 획득하는, 전자 장치.
  12. 제1 항에 있어서, 센서 및 통신 모듈 중 적어도 하나를 더 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 센서 및 상기 통신 모듈 중 적어도 하나로부터 획득된 날씨 정보, 날짜 정보, 시간 정보, 계절 정보, 조도 정보 및 위치 정보 중 적어도 하나로부터 상기 외부 상황 정보를 획득하는, 전자 장치.
  13. 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하는 단계;
    사용자의 이전 청취 이력에 기반하여 사용자 취향 정보를 획득하는 단계; 및
    적어도 하나의 뉴럴 네트워크를 이용하여, 상기 음악 연주를 위한 상황 정보 및 상기 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 단계를 포함하는, 전자 장치의 동작 방법.
  14. 제13 항에 있어서, 상기 음악 연주를 위한 악보를 획득하는 단계는
    제1 뉴럴 네트워크를 이용하여, 상기 사용자 상황 정보 및 상기 스크린 상황 정보 중 적어도 하나로부터 멀티 무드 정보를 획득하는 단계;
    제2 뉴럴 네트워크를 이용하여, 상기 사용자 취향 정보, 상기 멀티 무드 정보, 및 상기 외부 상황 정보 및 중 적어도 하나로부터 메타데이터를 획득하는 단계; 및
    제3 뉴럴 네트워크를 이용하여, 상기 메타데이터로부터 상기 음악 연주를 위한 악보를 획득하는 단계를 포함하는, 전자 장치의 동작 방법.
  15. 제14 항에 있어서, 상기 제1 뉴럴 네트워크는 소프트맥스 회귀(Softmax Regression) 함수를 포함하고,
    상기 제1 뉴럴 네트워크는 사용자 상황 정보 및 스크린 상황 정보 중 적어도 하나의 변수 및 웨이트의 가중 합과 정답 셋 간의 차이가 최소가 되는 웨이트를 갖도록 학습된 뉴럴 네트워크인, 전자 장치의 동작 방법.
  16. 제14 항에 있어서, 상기 제2 뉴럴 네트워크는 트랜스포머 모델(Transformer model)의 인코더 및 출력 레이어를 포함하고,
    상기 메타데이터를 획득하는 단계는
    상기 사용자 취향 정보, 상기 멀티 무드 정보, 및 상기 외부 상황 정보 중 적어도 하나를 임베딩하여 상기 트랜스포머 모델의 인코더에 입력 시키는 단계;
    상기 인코더에서 출력된 웨이트에 소프트맥스(softmax)함수를 상기 출력 레이어로 적용하여 제1 메타데이터를 획득하는 단계; 및
    상기 인코더에서 출력된 웨이트에 풀리 커넥티드 레이어(fully connected layer)를 상기 출력 레이어로 적용하여 제2 메타데이터를 획득하는 단계를 포함하고,
    상기 제1 메타데이터는 템포(tempo), 감도(velocity), 악기(instrument), 앰비언트 사운드(ambient sound) 중 적어도 하나를 포함하고,
    상기 제2 메타데이터는 피치(pitch) 및 음악 연주 길이 중 적어도 하나를 포함하는, 전자 장치의 동작 방법.
  17. 제14항에 있어서, 상기 제3 뉴럴 네트워크는 트랜스포머 XL 모델(Transformer model)을 포함하고,
    상기 음악 연주를 위한 악보를 획득하는 단계는 상기 메타데이터를 임베딩하여 상기 트랜스포머 XL 모델에 입력 시켜 이벤트 시퀀스의 제1 확률 분포를 획득하는 단계; 및
    상기 이벤트 시퀀스의 제1 확률 분포를 샘플링하여 제1 마디(bar)를 획득하는 단계를 포함하는, 전자 장치의 동작 방법.
  18. 제17 항에 있어서, 상기 제1 마디를 상기 트랜스포머 모델에 피드 포워드(feed forward)하여 상기 트랜스포머 XL 모델로부터 이벤트 시퀀스의 제2 확률 분포를 획득하는 단계; 및
    상기 이벤트 시퀀스의 제2 확률 분포를 샘플링하여 상기 제1 마디 다음에 오는 제2 마디를 획득하는 단계를 더 포함하는, 전자 장치의 동작 방법.
  19. 제18 항에 있어서, 상기 이벤트 시퀀스의 제1 확률 분포는 템포(tempo), 감도(velocity), 피치(pitch) 각각에 대한 확률 분포를 포함하는, 전자 장치의 동작 방법.
  20. 사용자 상황 정보, 스크린 상황 정보, 및 외부 상황 정보 중 적어도 하나를 포함하는, 음악 연주를 위한 상황 정보를 획득하는 단계;
    사용자의 이전 청취 이력에 기반하여 사용자 취향 정보를 획득하는 단계; 및
    적어도 하나의 뉴럴 네트워크를 이용하여, 상기 음악 연주를 위한 상황 정보 및 상기 사용자 취향 정보 중 적어도 하나로부터 음악 연주를 위한 악보를 획득하는 단계를 포함하는 전자 장치의 동작 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.
KR1020210166096A 2021-11-26 2021-11-26 전자 장치 및 그 동작 방법 KR20230078372A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210166096A KR20230078372A (ko) 2021-11-26 2021-11-26 전자 장치 및 그 동작 방법
PCT/KR2022/013989 WO2023096119A1 (ko) 2021-11-26 2022-09-19 전자 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210166096A KR20230078372A (ko) 2021-11-26 2021-11-26 전자 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20230078372A true KR20230078372A (ko) 2023-06-02

Family

ID=86539714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210166096A KR20230078372A (ko) 2021-11-26 2021-11-26 전자 장치 및 그 동작 방법

Country Status (2)

Country Link
KR (1) KR20230078372A (ko)
WO (1) WO2023096119A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140028160A (ko) * 2011-10-24 2014-03-10 건국대학교 산학협력단 감성 및 상황 정보 융합 기반의 확장된 협업 필터링을 이용한 음악추천 시스템
KR20150072597A (ko) * 2013-12-20 2015-06-30 삼성전자주식회사 멀티미디어 장치 및 이의 음악 작곡 방법, 그리고 노래 보정 방법
KR20190100543A (ko) * 2018-02-09 2019-08-29 삼성전자주식회사 전자장치 및 이를 이용한 인공지능 알고리즘 기반의 음악 작곡 방법
KR20200010633A (ko) * 2018-06-25 2020-01-31 충북대학교 산학협력단 사용자 플레이리스트를 이용한 자동 음악 작곡 시스템 및 그 방법

Also Published As

Publication number Publication date
WO2023096119A1 (ko) 2023-06-01

Similar Documents

Publication Publication Date Title
US11202131B2 (en) Maintaining original volume changes of a character in revoiced media stream
US11159597B2 (en) Systems and methods for artificial dubbing
US20210224319A1 (en) Artificially generating audio data from textual information and rhythm information
EP3803846B1 (en) Autonomous generation of melody
CN109862393B (zh) 视频文件的配乐方法、系统、设备及存储介质
CN108806656B (zh) 歌曲的自动生成
US20210264938A1 (en) Deep learning based method and system for processing sound quality characteristics
JP5485913B2 (ja) 環境内のムード及びソーシャルセッティングに適した雰囲気を自動生成するためのシステム及び方法
CN107464555B (zh) 增强包含语音的音频数据的方法、计算装置和介质
CN108806655B (zh) 歌曲的自动生成
JP2019216408A (ja) 情報を出力するための方法、及び装置
CN107871500A (zh) 一种播放多媒体的方法和装置
CN112189193A (zh) 音乐生成器
US20200166670A1 (en) Personalizing weather forecast
JPWO2007043679A1 (ja) 情報処理装置およびプログラム
JP2008517315A (ja) メディアコンテンツ項目のカテゴリに関してユーザに通知するためのデータ処理装置及び方法
CN110867177A (zh) 音色可选的人声播放系统、其播放方法及可读记录介质
CN102244788A (zh) 信息处理方法、信息处理装置、场景元数据提取装置、丢失恢复信息生成装置和程序
JP2010224715A (ja) 画像表示システム、デジタルフォトフレーム、情報処理システム、プログラム及び情報記憶媒体
JP2023511309A (ja) クラウド基盤の音声結合を用いた注文型動画製作サービス提供システム
JP2023527473A (ja) オーディオ再生方法、装置、コンピュータ可読記憶媒体及び電子機器
JP2022530201A (ja) コンピューティングデバイス上でのコンテンツの可聴部分の自動キャプショニング
CN111859008B (zh) 一种推荐音乐的方法及终端
KR20230078372A (ko) 전자 장치 및 그 동작 방법
Esau-Held et al. “Foggy sounds like nothing”—enriching the experience of voice assistants with sonic overlays