KR102031282B1 - Method and system for generating playlist using sound source content and meta information - Google Patents

Method and system for generating playlist using sound source content and meta information Download PDF

Info

Publication number
KR102031282B1
KR102031282B1 KR1020190007510A KR20190007510A KR102031282B1 KR 102031282 B1 KR102031282 B1 KR 102031282B1 KR 1020190007510 A KR1020190007510 A KR 1020190007510A KR 20190007510 A KR20190007510 A KR 20190007510A KR 102031282 B1 KR102031282 B1 KR 102031282B1
Authority
KR
South Korea
Prior art keywords
sound source
song
playlist
similarity
seed
Prior art date
Application number
KR1020190007510A
Other languages
Korean (ko)
Other versions
KR20190009821A (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 KR1020190007510A priority Critical patent/KR102031282B1/en
Publication of KR20190009821A publication Critical patent/KR20190009821A/en
Application granted granted Critical
Publication of KR102031282B1 publication Critical patent/KR102031282B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/638Presentation of query results
    • G06F16/639Presentation of query results using playlists
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

음원 컨텐츠 및 메타 정보를 이용한 플레이리스트 자동 생성 방법 및 시스템이 개시된다. 플레이리스트 생성 방법은, 음원 컨텐츠 각각에 대하여 상기 음원 컨텐츠의 음원 데이터로부터 해당 음원의 고유한 음향 특징(acoustic features)을 생성하는 단계; 및 상기 음향 특징을 이용하여 상기 음원 컨텐츠 간의 유사도를 산출하여 상기 음원 컨텐츠 간의 유사도를 바탕으로 플레이리스트(playlist)를 생성하는 단계를 포함한다.Disclosed are a method and a system for automatically generating a playlist using sound source contents and meta information. The playlist generating method may further include generating unique acoustic features of the corresponding sound source from the sound source data of the sound source content for each sound source content; And calculating a similarity between the sound source contents using the sound feature to generate a playlist based on the similarity between the sound source contents.

Description

음원 컨텐츠 및 메타 정보를 이용한 플레이리스트 자동 생성 방법 및 시스템{METHOD AND SYSTEM FOR GENERATING PLAYLIST USING SOUND SOURCE CONTENT AND META INFORMATION}Playlist automatic generation method and system using sound source content and meta information {METHOD AND SYSTEM FOR GENERATING PLAYLIST USING SOUND SOURCE CONTENT AND META INFORMATION}

아래의 설명은 음원에 대한 플레이리스트를 자동으로 생성하는 기술에 관한 것이다.The description below relates to a technique for automatically generating a playlist for a sound source.

최근 사람들은 다양한 형태의 미디어 상의 음악 조각들(music pieces), 비디오 또는 오디오 트랙들과 같은 미디어 컨텐츠를 일상적으로 이용하고 있다. 플레이리스트는 선호들, 테마들, 장르들, 아티스트들 또는 행사들(occasions)에 기초하여, 음악 또는 다른 컨텐츠를 구성하는 능력을 사용자들에게 제공한다.Recently, people are using media content such as music pieces, video or audio tracks on various forms of media on a daily basis. Playlists provide users with the ability to organize music or other content based on preferences, themes, genres, artists or occasions.

플레이리스트 생성 기술의 일례로, 한국 등록특허 제10-0810276호(등록일 2008년 02월 27일)에는 음원 데이터 재생 장치에 저장된 다수의 음원 데이터들에 대한 사용자 플레이리스트를 작성하는 기술이 개시되어 있다.As an example of a playlist generation technique, Korean Patent No. 10-0810276 (Registration Date February 27, 2008) discloses a technique for creating a user playlist for a plurality of sound source data stored in a sound source data reproducing apparatus. .

기존에는 재생 이력이나 미리 듣기 이력 등이 있는 음원으로 플레이리스트를 생성하거나, 협업적 여과 특징을 이용한 유사도 측정 방식으로 플레이리스트를 생성하게 된다. 이러한 기존 플레이리스트 생성 방법은 음원 자체의 특징을 인자(factor)로 사용하지 않기 때문에 자동 재생 중에 시작 곡(seed 곡)과 특징이 다른 곡이 나올 확률이 매우 높다. 또한, 음원의 메타 데이터를 강한 필터 조건으로 사용하여 플레이리스트를 생성할 경우에는 플레이리스트의 다양성이 저하되는 문제가 있다.Conventionally, playlists are generated from a sound source having a play history or a preview history, or a similarity measurement method using a collaborative filtering feature is generated. Since the existing playlist generation method does not use the characteristics of the sound source itself as a factor, there is a high probability that a song having a different characteristic from the start song (seed song) will appear during automatic playback. In addition, when a playlist is generated using the metadata of the sound source as a strong filter condition, there is a problem that the diversity of the playlist is reduced.

음원 및 음원의 메타 정보를 학습한 모델을 이용하여 사용자가 선호하는 곡이나 재생 이력이 있는 곡과 유사한 곡들을 선별하여 플레이리스트를 자동으로 생성할 수 있는 방법 및 시스템을 제공한다.The present invention provides a method and system for automatically generating a playlist by selecting a song similar to a user's favorite song or a song having a playing history using a model that has learned the sound source and meta information of the sound source.

컴퓨터 시스템에서 수행되는 플레이리스트 생성 방법에 있어서, 음원 컨텐츠 각각에 대하여 상기 음원 컨텐츠의 음원 데이터로부터 해당 음원의 고유한 음향 특징(acoustic features)을 생성하는 단계; 및 상기 음향 특징을 이용하여 상기 음원 컨텐츠 간의 유사도를 산출하여 상기 음원 컨텐츠 간의 유사도를 바탕으로 플레이리스트(playlist)를 생성하는 단계를 포함하고, 상기 플레이리스트를 생성하는 단계는, 상기 음원 컨텐츠 간의 유사도를 바탕으로 현재 재생 곡과 유사한 다음 재생 곡을 선정하여 플레이리스트를 생성하되 다음 재생 곡의 선정 시 시드(seed) 곡과의 유사도를 체크함으로써 상기 시드 곡과 유사한 음원 컨텐츠로 체인 형태의 플레이리스트를 생성하는 것을 특징으로 하는 플레이리스트 생성 방법을 제공한다.A playlist generating method performed in a computer system, the method comprising: generating unique acoustic features of a corresponding sound source from sound source data of the sound source content for each sound source content; And calculating a similarity between the sound source contents using the sound feature to generate a playlist based on the similarity between the sound source contents, and generating the playlist includes: similarity between the sound source contents A playlist is created by selecting a next play song similar to the current play song based on the current playback song, and selecting a next play song by checking the similarity with the seed song. It provides a playlist generating method characterized in that the generation.

상기 플레이리스트 생성 방법을 컴퓨터를 통해 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체를 제공한다.There is provided a computer-readable recording medium, in which a program for executing the playlist generating method through a computer is recorded.

컴퓨터로 구현되는 플레이리스트 생성 시스템에 있어서, 음원 컨텐츠 각각에 대하여 상기 음원 컨텐츠의 음원 데이터로부터 해당 음원의 고유한 음향 특징을 생성하는 고유 특징 처리부; 및 상기 음향 특징을 이용하여 상기 음원 컨텐츠 간의 유사도를 산출하여 상기 음원 컨텐츠 간의 유사도를 바탕으로 플레이리스트를 생성하는 플레이리스트 생성부를 포함하고, 상기 플레이리스트 생성부는, 상기 음원 컨텐츠 간의 유사도를 바탕으로 현재 재생 곡과 유사한 다음 재생 곡을 선정하여 플레이리스트를 생성하되 다음 재생 곡의 선정 시 시드 곡과의 유사도를 체크함으로써 상기 시드 곡과 유사한 음원 컨텐츠로 체인 형태의 플레이리스트를 생성하는 것을 특징으로 하는 플레이리스트 생성 시스템을 제공한다.A playlist generation system implemented in a computer, comprising: a unique feature processor for generating a unique sound feature of a corresponding sound source from sound source data of the sound source content for each sound source content; And a playlist generator configured to calculate a similarity between the sound source contents using the sound feature to generate a playlist based on the similarity between the sound source contents, and wherein the playlist generator is based on the similarity between the sound source contents. A playlist is generated by selecting a next playback song similar to the playback song, and generating a chain-type playlist with sound source content similar to the seed song by checking similarity with the seed song when the next playback song is selected. Provide a list generation system.

본 발명의 실시예에 따르면, 딥 러닝(deep learning)을 이용하여 음원 자체의 고유 값(eigen-value)을 학습을 위한 인자(factor)로 사용함으로써 곡 간의 유사성을 더욱 정확히 산출할 수 있다.According to an exemplary embodiment of the present invention, similarity between songs can be more accurately calculated by using an eigen-value of a sound source itself as a factor for learning using deep learning.

본 발명의 실시예에 따르면, 음원의 특징뿐 아니라 음원의 메타 정보를 부가적 정보로 사용하여 곡 간의 유사성을 산출할 수 있고, 또한 시드(seed) 곡과의 유사성을 지속적으로 체크하는 로직을 적용함으로써 플레이리스트의 다양성을 유지하면서 이와 동시에 시드 곡과 너무 다른 곡이 포함되는 것을 방지할 수 있다.According to an embodiment of the present invention, the similarity between songs can be calculated using not only the characteristics of the sound source but also meta information of the sound source as additional information, and a logic for continuously checking the similarity with the seed songs is applied. By doing so, it is possible to prevent the inclusion of songs that are too different from the seed songs while maintaining the diversity of the playlist.

도 1은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨터 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 컴퓨터 시스템이 수행할 수 있는 플레이리스트 생성 방법의 예를 도시한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 플레이리스트 자동 생성 과정의 예를 도시한 도면이다.
1 is a block diagram illustrating an example of an internal configuration of a computer system according to an embodiment of the present invention.
2 illustrates an example of components that may be included in a processor of a computer system according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating an example of a playlist generation method that may be performed by a computer system according to an exemplary embodiment of the present invention.
4 is a diagram illustrating an example of an automatic playlist generation process according to an embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 실시예들은 플레이리스트를 생성하기 위한 방법들과 시스템들에 관련된 것이며, 더욱 상세하게는 음원 및 음원의 메타 정보를 학습한 모델을 이용하여 플레이리스트를 자동으로 생성할 수 있는 플레이리스트 생성 기술에 관한 것이다.The present embodiments relate to methods and systems for creating a playlist, and more particularly, to a playlist generation technique capable of automatically generating a playlist using a model that has learned a sound source and meta information of the sound source. It is about.

본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 음원 컨텐츠에 대한 플레이리스트의 생성을 달성하고 이를 통해 비용 절감, 효율성과 정확성 등의 측면에 있어서 상당한 장점들을 달성한다.Embodiments, including those specifically disclosed herein, achieve the creation of playlists for sound recording content and thereby achieve significant advantages in terms of cost savings, efficiency and accuracy, and the like.

음원 컨텐츠에 대해 생성된 플레이리스트는 음원 컨텐츠의 추천, 검색, 분류, 관리 등을 위해 활용될 수 있다. 일례로, 사용자 맞춤형 음원 추천을 위해서는 사용자가 선호하는 곡과 유사한 곡들에 대한 선별 작업이 필요하며, 이러한 선별 작업으로서 음원 및 음원의 메타 정보를 이용하여 플레이리스트를 자동으로 생성할 수 있다.The playlist generated for the sound source content may be utilized for recommendation, search, classification, management, etc. of the sound source content. For example, in order to recommend a user-customized sound source, a sorting operation for songs similar to a user's favorite song is required, and as a sorting operation, a playlist may be automatically generated by using meta information of the sound source and the sound source.

도 1은 본 발명의 일 실시예에 있어서 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다. 예를 들어, 본 발명의 실시예들에 따른 플레이리스트 생성 시스템이 도 1의 컴퓨터 시스템(100)을 통해 구현될 수 있다. 도 1에 도시한 바와 같이, 컴퓨터 시스템(100)은 플레이리스트 생성 방법을 실행하기 위한 구성요소로서 프로세서(110), 메모리(120), 영구 저장 장치(130), 버스(140), 입출력 인터페이스(150) 및 네트워크 인터페이스(160)를 포함할 수 있다.1 is a block diagram illustrating an example of an internal configuration of a computer system according to an embodiment of the present invention. For example, a playlist generation system according to embodiments of the present invention may be implemented through the computer system 100 of FIG. 1. As shown in FIG. 1, the computer system 100 is a component for executing a playlist generation method, the processor 110, the memory 120, the persistent storage device 130, the bus 140, and an input / output interface ( 150 and network interface 160.

프로세서(110)는 명령어들의 임의의 시퀀스를 처리할 수 있는 임의의 장치를 포함하거나 그의 일부일 수 있다. 프로세서(110)는 예를 들어 컴퓨터 프로세서, 이동 장치 또는 다른 전자 장치 내의 프로세서 및/또는 디지털 프로세서를 포함할 수 있다. 프로세서(110)는 예를 들어, 서버 컴퓨팅 디바이스, 서버 컴퓨터, 일련의 서버 컴퓨터들, 서버 팜, 클라우드 컴퓨터, 컨텐츠 플랫폼, 이동 컴퓨팅 장치, 스마트폰, 태블릿, 셋톱 박스, 미디어 플레이어 등에 포함될 수 있다. 프로세서(110)는 버스(140)를 통해 메모리(120)에 접속될 수 있다.Processor 110 may include or be part of any apparatus capable of processing any sequence of instructions. Processor 110 may include, for example, a processor within a computer processor, mobile device or other electronic device, and / or a digital processor. The processor 110 may be included in, for example, a server computing device, a server computer, a series of server computers, a server farm, a cloud computer, a content platform, a mobile computing device, a smartphone, a tablet, a set top box, a media player, and the like. The processor 110 may be connected to the memory 120 through the bus 140.

메모리(120)는 컴퓨터 시스템(100)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성 메모리, 영구, 가상 또는 기타 메모리를 포함할 수 있다. 메모리(120)는 예를 들어 랜덤 액세스 메모리(RAM: random access memory) 및/또는 동적 RAM(DRAM: dynamic RAM)을 포함할 수 있다. 메모리(120)는 컴퓨터 시스템(100)의 상태 정보와 같은 임의의 정보를 저장하는 데 사용될 수 있다. 메모리(120)는 예를 들어 음원 컨텐츠에 대한 플레이리스트 생성을 위한 명령어들을 포함하는 컴퓨터 시스템(100)의 명령어들을 저장하는 데에도 사용될 수 있다. 컴퓨터 시스템(100)은 필요에 따라 또는 적절한 경우에 하나 이상의 프로세서(110)를 포함할 수 있다.Memory 120 may include volatile memory, permanent, virtual, or other memory for storing information used by or output by computer system 100. The memory 120 may include, for example, random access memory (RAM) and / or dynamic RAM (DRAM). Memory 120 may be used to store any information, such as status information of computer system 100. Memory 120 may also be used to store instructions of computer system 100, including, for example, instructions for creating playlists for sound source content. Computer system 100 may include one or more processors 110 as needed or where appropriate.

버스(140)는 컴퓨터 시스템(100)의 다양한 컴포넌트들 사이의 상호작용을 가능하게 하는 통신 기반 구조를 포함할 수 있다. 버스(140)는 예를 들어 컴퓨터 시스템(100)의 컴포넌트들 사이에, 예를 들어 프로세서(110)와 메모리(120) 사이에 데이터를 운반할 수 있다. 버스(140)는 컴퓨터 시스템(100)의 컴포넌트들 간의 무선 및/또는 유선 통신 매체를 포함할 수 있으며, 병렬, 직렬 또는 다른 토폴로지 배열들을 포함할 수 있다.Bus 140 may include a communication infrastructure that enables interaction between various components of computer system 100. Bus 140 may carry data, for example, between components of computer system 100, for example, between processor 110 and memory 120. Bus 140 may include wireless and / or wired communication media between components of computer system 100 and may include parallel, serial, or other topology arrangements.

영구 저장 장치(130)는 (예를 들어, 메모리(120)에 비해) 소정의 연장된 기간 동안 데이터를 저장하기 위해 컴퓨터 시스템(100)에 의해 사용되는 바와 같은 메모리 또는 다른 영구 저장 장치와 같은 컴포넌트들을 포함할 수 있다. 영구 저장 장치(130)는 컴퓨터 시스템(100) 내의 프로세서(110)에 의해 사용되는 바와 같은 비휘발성 메인 메모리를 포함할 수 있다. 영구 저장 장치(130)는 예를 들어 플래시 메모리, 하드 디스크, 광 디스크 또는 다른 컴퓨터 판독 가능 매체를 포함할 수 있다.Persistent storage 130 is a component, such as a memory or other persistent storage, such as used by computer system 100 to store data for some extended period of time (eg, relative to memory 120). Can include them. Persistent storage 130 may include non-volatile main memory as used by processor 110 in computer system 100. Persistent storage 130 may include, for example, flash memory, hard disk, optical disk, or other computer readable medium.

입출력 인터페이스(150)는 키보드, 마우스, 음성 명령 입력, 디스플레이 또는 다른 입력 또는 출력 장치에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 플레이리스트 생성을 위한 입력, 예컨대 음원 데이터와 텍스트 정보가 입출력 인터페이스(150)를 통해 수신될 수 있다.The input / output interface 150 may include interfaces for a keyboard, mouse, voice command input, display, or other input or output device. Input for configuration commands and / or playlist generation, such as sound source data and text information, may be received via the input / output interface 150.

네트워크 인터페이스(160)는 근거리 네트워크 또는 인터넷과 같은 네트워크들에 대한 하나 이상의 인터페이스를 포함할 수 있다. 네트워크 인터페이스(160)는 유선 또는 무선 접속들에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 플레이리스트 생성을 위한 음원 컨텐츠의 음원 데이터와 텍스트 정보는 네트워크 인터페이스(160)를 통해 수신될 수 있다.Network interface 160 may include one or more interfaces to networks such as a local area network or the Internet. Network interface 160 may include interfaces for wired or wireless connections. Sound source data and text information of the sound source content for configuration commands and / or playlist generation may be received via the network interface 160.

또한, 다른 실시예들에서 컴퓨터 시스템(100)은 도 1의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 시스템(100)은 상술한 입출력 인터페이스(150)와 연결되는 입출력 장치들 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 컴퓨터 시스템(100)이 스마트폰과 같은 모바일 기기의 형태로 구현되는 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 컴퓨터 시스템(100)에 더 포함되도록 구현될 수 있다.In addition, in other embodiments, computer system 100 may include more components than the components of FIG. 1. However, it is not necessary to clearly show most of the prior art components. For example, the computer system 100 may be implemented to include at least some of the input / output devices connected to the input / output interface 150 described above, or may include a transceiver, a global positioning system (GPS) module, a camera, various sensors, It may further include other components such as a database. More specifically, when the computer system 100 is implemented in the form of a mobile device such as a smartphone, the acceleration sensor or gyro sensor, a camera, various physical buttons, a button using a touch panel, Various components, such as an input / output port and a vibrator for vibration, may be implemented to be further included in the computer system 100.

도 2는 본 발명의 일 실시예에 따른 컴퓨터 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이고, 도 3은 본 발명의 일 실시예에 따른 컴퓨터 시스템이 수행할 수 있는 플레이리스트 생성 방법의 예를 도시한 순서도이다.2 is a diagram illustrating an example of components that a processor of a computer system according to an embodiment of the present invention may include, and FIG. 3 is a playlist that may be performed by the computer system according to an embodiment of the present invention. It is a flowchart which shows the example of a generation method.

도 2에 도시된 바와 같이, 프로세서(110)는 음원 입력 제어부(210), 음원 전처리부(220), 고유 특징 처리부(230), 및 플레이리스트 생성부(240)를 포함할 수 있다. 이러한 프로세서(110)의 구성요소들은 적어도 하나의 프로그램 코드에 의해 제공되는 제어 명령에 따라 프로세서(110)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(110)가 음원 데이터를 입력 받도록 컴퓨터 시스템(100)을 제어하기 위해 동작하는 기능적 표현으로서 음원 입력 제어부(210)가 사용될 수 있다. 프로세서(110) 및 프로세서(110)의 구성요소들은 도 3의 플레이리스트 생성 방법이 포함하는 단계들(S310 내지 S350)을 수행할 수 있다. 예를 들어, 프로세서(110) 및 프로세서(110)의 구성요소들은 메모리(120)가 포함하는 운영체제의 코드와 상술한 적어도 하나의 프로그램 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서 적어도 하나의 프로그램 코드는 상기 플레이리스트 생성 방법을 처리하기 위해 구현된 프로그램의 코드에 대응될 수 있다.As shown in FIG. 2, the processor 110 may include a sound source input controller 210, a sound source preprocessor 220, a unique feature processor 230, and a playlist generator 240. The components of such a processor 110 may be representations of different functions performed by the processor 110 in accordance with a control instruction provided by at least one program code. For example, the sound source input controller 210 may be used as a functional representation that operates to control the computer system 100 so that the processor 110 receives sound source data. The processor 110 and the components of the processor 110 may perform steps S310 to S350 included in the playlist generating method of FIG. 3. For example, the processor 110 and the components of the processor 110 may be implemented to execute instructions according to the code of the operating system included in the memory 120 and the at least one program code described above. Here, at least one program code may correspond to a code of a program implemented to process the playlist generation method.

플레이리스트 생성 방법은 도시된 순서대로 발생하지 않을 수 있으며, 단계들 중 일부가 생략되거나 추가의 과정이 더 포함될 수 있다.The playlist creation method may not occur in the order shown, and some of the steps may be omitted or additional processes may be included.

단계(S310)에서 프로세서(110)는 플레이리스트 생성 방법을 위한 프로그램 파일에 저장된 프로그램 코드를 메모리(120)에 로딩할 수 있다. 예를 들어, 플레이리스트 생성 방법을 위한 프로그램 파일은 도 1을 통해 설명한 영구 저장 장치(130)에 저장되어 있을 수 있고, 프로세서(110)는 버스를 통해 영구 저장 장치(130)에 저장된 프로그램 파일로부터 프로그램 코드가 메모리(120)에 로딩되도록 컴퓨터 시스템(110)을 제어할 수 있다.In operation S310, the processor 110 may load program code stored in a program file for a playlist generation method, into the memory 120. For example, the program file for the playlist generation method may be stored in the persistent storage device 130 described with reference to FIG. 1, and the processor 110 may store the program file stored in the persistent storage device 130 through the bus. Computer system 110 may be controlled such that program code is loaded into memory 120.

이때, 프로세서(110) 및 프로세서(110)가 포함하는 음원 입력 제어부(210), 음원 전처리부(220), 고유 특징 처리부(230), 및 플레이리스트 생성부(240) 각각은 메모리(120)에 로딩된 프로그램 코드 중 대응하는 부분의 명령을 실행하여 이후 단계들(S320 내지 S350)을 실행하기 위한 프로세서(110)의 서로 다른 기능적 표현들일 수 있다. 단계들(S320 내지 S350)의 실행을 위해, 프로세서(110) 및 프로세서(110)의 구성요소들은 직접 제어 명령에 따른 연산을 처리하거나 또는 컴퓨터 시스템(100)을 제어할 수 있다.At this time, each of the processor 110 and the sound source input controller 210, the sound source preprocessor 220, the unique feature processor 230, and the playlist generator 240 included in the processor 110 may be stored in the memory 120. It may be different functional representations of the processor 110 for executing instructions of a corresponding portion of the loaded program code to execute subsequent steps S320 to S350. In order to execute the steps S320 to S350, the processor 110 and the components of the processor 110 may directly process an operation according to a control command or control the computer system 100.

단계(S320)에서 음원 입력 제어부(210)는 음원 컨텐츠에 대하여 음원 컨텐츠의 음원 데이터를 입력받도록 컴퓨터 시스템(100)을 제어할 수 있다. 이때, 음원 컨텐츠는 오디오 파일 포맷을 가진 모든 디지털 데이터를 의미할 수 있으며, 예를 들어 MP3(MPEG Audio Layer-3), WAVE(Waveform Audio Format), FLAC(Free Lossless Audio Codec) 등을 포함할 수 있다. 그리고, 음원 입력 제어부(210)는 음원 컨텐츠와 관련된 텍스트 정보를 입력받도록 컴퓨터 시스템(100)을 제어할 수 있다. 음원 컨텐츠와 관련된 텍스트 정보는 가사를 포함하거나, 혹은 가수, 장르, 제목, 앨범명 등과 같은 메타 정보, 그리고 음원 컨텐츠의 분류나 검색 등과 관련하여 입력된 해시 태그(hashtag), 쿼리(query) 등의 정보를 포함할 수 있다. 음원 데이터와 텍스트 정보는 입출력 인터페이스(150) 또는 네트워크 인터페이스(160)를 통해 컴퓨터 시스템(100)으로 입력 또는 수신되어 메모리(120)나 영구 저장 장치(130)에 저장 및 관리될 수 있다.In operation S320, the sound source input controller 210 may control the computer system 100 to receive sound source data of the sound source content with respect to the sound source content. In this case, the sound source content may mean all digital data having an audio file format, and may include, for example, MP3 (MPEG Audio Layer-3), WAVE (Waveform Audio Format), and FLAC (Free Lossless Audio Codec). have. The sound source input controller 210 may control the computer system 100 to receive text information related to sound source content. The text information related to the sound recording content may include lyrics or meta information such as a singer, genre, title, album name, etc., and hashtags or queries input in relation to the classification or search of the sound recording content. May contain information. The sound source data and text information may be input or received by the computer system 100 through the input / output interface 150 or the network interface 160, and may be stored and managed in the memory 120 or the permanent storage device 130.

단계(S330)에서 음원 전처리부(220)는 단계(S320)에서 입력받은 음원 데이터를 학습 데이터 형태로 처리할 수 있다. 이때, 음원 전처리부(220)는 전처리를 통해 음원 데이터를 시간-주파수로 표현할 수 있다. 예를 들어 음원 전처리부(220)는 음원 데이터를 멜-스펙트로그램(Mel-spectrogram)이나 MFCC(Mel Frequency Cepstral Coefficient)와 같은 시간-주파수-크기 형태의 데이터로 변환할 수 있다. 그리고, 음원 전처리부(220)는 음원 컨텐츠에 대해 텍스트 정보를 함께 입력 받은 경우 텍스트 정보를 전처리 할 수 있다. 일례로, 음원 전처리부(220)는 형태소 분석기, 색인어 추출기 등 언어 전처리기를 이용하여 입력된 텍스트 정보로부터 무의미한 텍스트들을 필터링할 수 있다. 다시 말해, 음원 전처리부(220)는 텍스트 정보에 포함된 조사, 조용사 등 불필요한 품사의 단어나 특수 기호(!, ?, / 등, 예컨대) 등을 제거하고 체언이나 어근에 해당되는 단어를 추출할 수 있다.In operation S330, the sound source preprocessor 220 may process the sound source data received in operation S320 in the form of learning data. In this case, the sound source preprocessor 220 may express the sound source data in time-frequency through preprocessing. For example, the sound source preprocessor 220 may convert the sound source data into time-frequency-size data such as Mel-spectrogram or Mel Frequency Cepstral Coefficient (MFCC). The sound source preprocessor 220 may preprocess the text information when the text information is input together with respect to the sound source content. For example, the sound source preprocessor 220 may filter meaningless texts from input text information using a language preprocessor such as a morpheme analyzer and an index word extractor. In other words, the sound source preprocessor 220 removes words and special symbols (!,?, /, Etc., etc.) of unnecessary parts of speech, such as surveys and quiet verbs, which are included in text information, and extracts words corresponding to spoken words or roots. can do.

단계(S340)에서 고유 특징 처리부(230)는 음원 데이터에 대해 전처리된 학습 데이터를 학습 모델을 통해 학습하여 고유 특징을 생성한 후 생성된 고유 특징을 데이터베이스(미도시)에 저장할 수 있다. 고유 특징 처리부(230)는 딥 러닝을 이용하여 음원 데이터 자체의 고유한 음향 특징(acoustic features)을 생성할 수 있다. 일례로, 고유 특징 처리부(230)는 CNN(Convolutional Neural Network) 기반의 학습 모델을 이용할 수 있다. 고유 특징 처리부(230)는 CNN 학습 모델을 이용하여 음원 데이터를 다차원 실수 벡터로 표현할 수 있다. CNN 학습 모델은 음원 데이터 학습 계층을 포함할 수 있으며, 아래 과정 1 내지 3은 음원 데이터 학습 계층에서 음원 데이터에 대응하는 실수 벡터를 생성하는 과정의 예일 수 있다.In operation S340, the unique feature processor 230 may generate the unique feature by learning the preprocessed training data on the sound source data through the learning model, and then store the generated unique feature in a database (not shown). The unique feature processor 230 may generate unique acoustic features of the sound source data itself using deep learning. For example, the unique feature processor 230 may use a learning model based on a convolutional neural network (CNN). The unique feature processor 230 may express sound source data as a multidimensional real vector using a CNN learning model. The CNN learning model may include a sound source data learning layer, and steps 1 to 3 below may be examples of a process of generating a real vector corresponding to sound source data in the sound source data learning layer.

과정 1에서 음원 컨텐츠가 포함하는 음원 데이터(일례로, mp3 파일)는 전처리를 통해 멜-스펙트로그램이나 MFCC와 같은 시간-주파수-크기 형태의 데이터로 변환될 수 있다. 예를 들어, 음원 전처리부(220)는 음원 입력 제어부(210)에 의해 입력되는 음원 데이터를 시간-주파수로 표현할 수 있다.In process 1, the sound source data (eg, mp3 file) included in the sound source content may be converted into data in a time-frequency-size form such as mel-spectrogram or MFCC through preprocessing. For example, the sound source preprocessor 220 may express sound source data input by the sound source input controller 210 in time-frequency.

과정 2에서 변환된 음원 데이터로부터 한 개 이상의 짧은 시간 구간 동안(1초 내지 10초)의 복수 개의 주파수 프레임들이 샘플링 되어 음원 데이터의 학습 모델에 대한 입력 데이터로서 사용될 수 있다. 예를 들어, 고유 특징 처리부(230)는 복수 개의 프레임들을 샘플링 하여 음원 데이터 학습 계층에서 음원 모델의 예시로 제시되는 CNN 모델의 입력으로서 활용할 수 있다. 그러므로, 음원 데이터의 학습을 위한 CNN 모델은 샘플링 된 프레임들의 수와 동일한 수의 채널을 갖는 모델이 될 수 있다. 혹은, 생성된 프레임 각각을 단일 채널로 사용하고 각 프레임에 대하여 고유의 콘벌루션/풀링 과정을 거친 후 생성된 프레임 별 특징벡터들을 접합하여 완전 연결층의 입력으로 사용 가능하다.A plurality of frequency frames for one or more short time intervals (1 second to 10 seconds) may be sampled from the sound source data converted in step 2 and used as input data for the learning model of the sound source data. For example, the unique feature processor 230 may sample a plurality of frames and use it as an input of a CNN model presented as an example of a sound source model in the sound source data learning layer. Therefore, the CNN model for learning sound source data may be a model having the same number of channels as the number of sampled frames. Alternatively, each generated frame can be used as a single channel, and after convolutional / pooling of each frame, the generated feature vectors for each frame can be bonded to each other to be used as an input of a fully connected layer.

과정 3에서는 음원 데이터 학습 계층이 포함할 수 있는 복수 개의 콘벌루션(convolution) 및 풀링(pooling) 계층을 반복적으로 구성함으로써 음원 프레임으로부터 추상화된 특징(feature)을 생성할 수 있다. 콘벌루션에서 패치의 크기는 다양하게 구성될 수 있으며 풀링도 최대값(max)을 이용한 풀링 기법, 평균값(average)을 이용한 풀링 기법 및 상기 두 풀링 기법을 접합한 하이브리드 풀링 기법 등 여러 풀링 기법들 중 적어도 하나가 사용될 수 있다.In step 3, an abstracted feature may be generated from the sound source frame by repeatedly configuring a plurality of convolutional and pooling layers that the sound source data learning layer may include. In convolution, the patch size can be configured in various ways. Among the pooling techniques such as the pooling technique using the maximum pooling degree (max), the pooling technique using the average value, and the hybrid pooling technique combining the two pooling techniques, At least one may be used.

복수 개의 콘벌루션 및 풀링 계층 위에는 음향 특징을 생성하기 위한 완전 연결(fully-connected) 계층이 있으며 각 계층별 함수는 시그모이드(sigmoid) 함수, 하이퍼볼릭 탄젠트(Hyperbolic Tangent: tanh) 함수, ReLU(Rectified Linear Unit) 함수 등 다양한 함수가 사용될 수 있다. 결국, 음원 데이터에 대해 하나의 다차원 실수 벡터가 생성될 수 있다. 예를 들어, 주어진 첫 번째 음원 데이터 m0은 음원 학습 모델의 출력 계층에서 x0={0.2, -0.1, 0.3, …}의 형태와 같이 하나의 다차원 실수 벡터로 표현될 수 있다. 차원의 수는 0보다 큰 정수이며 경험적으로 통상 50 이상 500 이하의 값을 가질 수 있다. 이러한 과정 3은 앞서 설명한 고유 특징 처리부(230)에 의해 처리될 수 있다.Above the multiple convolutional and pooling layers is a fully-connected layer for generating acoustic features, with each layer function comprising the sigmoid function, the hyperbolic tangent (Than) function, and the ReLU ( Various functions such as Rectified Linear Unit) function can be used. As a result, one multidimensional real vector may be generated for the sound source data. For example, given the first sound source data m0, x0 = {0.2, -0.1, 0.3,... In the output layer of the sound source learning model. } Can be expressed as a multidimensional real vector. The number of dimensions is an integer greater than zero and can empirically have a value from 50 to 500, in general. This process 3 may be processed by the unique feature processor 230 described above.

그리고, 고유 특징 처리부(230)는 음원 컨텐츠에 대해 텍스트 정보를 함께 입력 받은 경우 텍스트 정보 또한 다차원 실수 벡터로 표현할 수 있다. 일례로, 고유 특징 처리부(230)는 텍스트 정보에 대한 전처리를 통해 필터링 된 텍스트들을 사전에 학습된 학습 모델을 이용하여 워드 벡터(word vector)로 생성할 수 있다. 예를 들어, 워드 벡터는 수치형(numerical) 다차원 벡터 형태로 표현될 수 있다. 워드 벡터 생성을 위하여 단어 출현 빈도 히스토그램, TF(term frequency)/IDF(inverse document frequency), 언어 학습 모델(예컨대, word2vec, phrase2vec, document2vec 등) 등이 사용될 수 있다. 예를 들어, "이승환 좋은날 발라드 1992" 등과 같이 가수/장르/제목/년도는 하나의 n차원 실수 벡터 v={0.3, -1.2, 1.2, …}와 같이 표현 가능하다. 또한, 언어 학습 모델을 위한 텍스트 정보 필드(가수, 장르, 제목, 년도 등)의 순서는 고정되지 않고 목적에 맞게 변경이 가능하다.In addition, when the unique feature processor 230 receives text information with respect to the sound source content, the text information may also be expressed as a multidimensional real vector. For example, the unique feature processor 230 may generate texts filtered through preprocessing of the text information into a word vector using a previously trained learning model. For example, the word vector may be expressed in the form of a numerical multidimensional vector. A word appearance frequency histogram, a term frequency (TF) / inverse document frequency (IDF), a language learning model (eg, word2vec, phrase2vec, document2vec, etc.) may be used to generate the word vector. For example, singer / genre / title / year is one n-dimensional real vector v = {0.3, -1.2, 1.2,... } Can be expressed as In addition, the order of the text information fields (singer, genre, title, year, etc.) for the language learning model is not fixed and can be changed to suit the purpose.

상기한 고유 특징 처리부(230)는 음원 컨텐츠에 대해 음원 데이터에 대한 특징 벡터와 텍스트 정보에 대한 워드 벡터를 데이터베이스에 저장 및 유지할 수 있다. 음원 데이터에 대한 특징 벡터와 텍스트 정보에 대한 워드 벡터는 각각 개별 데이터베이스로 구축되거나, 혹은 하나의 데이터베이스로 구축될 수 있다. 이러한 데이터베이스는 컴퓨터 시스템(100)에 포함된 구성 요소로 구현되거나, 혹은 컴퓨터 시스템(100)과 연동 가능한 별개의 시스템 상에 구축된 외부 데이터베이스로서 존재하는 것 또한 가능하다.The unique feature processor 230 may store and maintain a feature vector for sound source data and a word vector for text information in a database for sound source content. The feature vector for the sound source data and the word vector for the text information may be constructed in separate databases, or in one database. Such a database may be implemented as a component included in the computer system 100 or may exist as an external database built on a separate system that can interoperate with the computer system 100.

단계(S350)에서 플레이리스트 생성부(240)는 음원 컨텐츠에 대하여 데이터베이스에 저장된 음원 데이터에 대한 고유 특징을 이용하여 음원 간의 유사도를 산출할 수 있고, 음원 간의 유사도를 바탕으로 음원 컨텐츠에 대한 플레이리스트를 자동으로 생성할 수 있다. 일례로, 플레이리스트 생성부(240)는 음원 데이터에 대한 특징 벡터를 이용하여 음원 간 유사도를 산출할 수 있고, 다른 예로 음원 데이터에 대한 특징 벡터와 함께 텍스트 정보에 대한 워드 벡터를 복합적으로 이용하여 음원 간 유사도를 산출할 수 있다. 이때, 플레이리스트 생성부(240)는 사용자가 특정 곡을 선택하면 해당 곡을 시드 곡으로 하여 시드 곡과 유사한 곡들의 체인(chain) 형태로 플레이리스트를 무한히 생성할 수 있다. 그리고, 플레이리스트 생성부(240)는 음원 컨텐츠에 대한 사용자 최근 로그 이력을 기반으로 사용자가 선호하는 곡들로 플레이리스트를 생성할 수 있고, 특정 가수가 입력으로 주어지면 해당 가수와 유사한 가수들의 곡들로 플레이리스트를 생성하는 것 또한 가능하다.In operation S350, the playlist generator 240 may calculate the similarity between sound sources using the inherent characteristics of the sound source data stored in the database with respect to the sound source content, and the playlist for the sound source content based on the similarity between the sound sources. Can be generated automatically. For example, the playlist generating unit 240 may calculate the similarity between sound sources using the feature vector of the sound source data. In another example, the playlist generator 240 may use the word vector for the text information together with the feature vector for the sound source data. Similarity between sound sources can be calculated. In this case, when the user selects a specific song, the playlist generator 240 may generate the playlist in the form of a chain of songs similar to the seed song by using the corresponding song as a seed song. The playlist generator 240 may generate a playlist of songs that the user prefers based on the user's recent log history of the sound source content. It is also possible to create playlists.

따라서, 본 발명은 음원 및 음원의 메타 정보와 같은 텍스트 정보를 학습한 모델을 이용하여 곡 간의 유사성을 기반으로 유사한 곡들로 플레이리스트를 자동 생성할 수 있다.Therefore, the present invention can automatically generate playlists with similar songs based on the similarity between songs using a model that has learned text information such as sound source and meta information of the sound source.

도 4는 본 발명의 일 실시예에 따른 플레이리스트 자동 생성 과정의 예를 도시한 도면이다. 도 4의 단계들(S401 내지 S407)은 도 3의 단계(S350)에 포함되어 수행될 수 있다.4 is a diagram illustrating an example of an automatic playlist generation process according to an embodiment of the present invention. Steps S401 to S407 of FIG. 4 may be performed by being included in step S350 of FIG. 3.

단계(S401)에서 플레이리스트 생성부(240)는 시드 곡이 선정되면 데이터베이스에 저장된 음원 별 고유 특징을 이용하여 시드 곡과 다른 곡 간의 유사도를 산출할 수 있다. 일례로, 사용자가 특정 곡을 선택하여 재생하는 경우 해당 곡을 시드 곡으로 선정할 수 있다. 다른 예로, 음원 컨텐츠에 대한 사용자 최근 로그 이력을 기반으로 사용자가 선호하는 곡을 시드 곡으로 선정할 수 있다. 예컨대, 시드 곡을 m0이라고 할 때, 프로세서(110)는 시드 곡 m0이 데이터베이스 상에 없는 신곡인 경우 CNN 모델을 이용하여 시드 곡 m0을 음원 자체의 고유 특징을 나타내는 d차원 실수 벡터인 x0으로 변환하고, 시드 곡 m0이 신곡이 아닌 경우 데이터베이스로부터 시드 곡 m0에 해당하는 d차원 실수 벡터를 조회하여 이를 x0으로 정의한다. 음원 특징 벡터는 곡 간의 유사도를 산출하는데 이용될 수 있으며, 다른 예로 각 곡의 메타 정보와 같은 텍스트 정보를 벡터 형태로 표현한 텍스트 특징 벡터 v도 음원 특징 벡터와 함께 곡 간의 유사도를 산출하기 위해 사용될 수 있다. 플레이리스트 생성부(240)는 데이터베이스에 저장된 곡들의 음원 특징 벡터와 시드 곡 m0의 음원 특징 벡터 x0 간의 유사도를 계산할 수 있다. 일례로, 유사도는 벡터 간 거리를 산출하는 코사인 거리(cosine distance)가 이용될 수 있다. 두 벡터 a, b 사이의 코사인 거리(CD)는 수학식 1과 같이 정의될 수 있다. 즉, 벡터 간 거리가 작을수록 곡의 유사도가 높고 벡터 간 거리가 클수록 곡의 유사도가 낮은 것으로 판단할 수 있다.In operation S401, when the seed song is selected, the playlist generator 240 may calculate the similarity between the seed song and the other song by using unique features for each sound source stored in the database. For example, when a user selects and plays a specific song, the song may be selected as a seed song. As another example, a user's favorite song may be selected as a seed song based on a user's recent log history of the sound source content. For example, when the seed song is m0, the processor 110 converts the seed song m0 into x0, which is a d-dimensional real vector representing the inherent characteristics of the sound source, using the CNN model when the seed song m0 is a new song that does not exist in the database. If the seed song m0 is not a new song, the d-dimensional real vector corresponding to the seed song m0 is retrieved from the database and defined as x0. The sound source feature vector may be used to calculate the similarity between songs. As another example, the text feature vector v representing text information such as meta information of each song in a vector form may also be used to calculate the similarity between songs along with the sound source feature vector. have. The playlist generator 240 may calculate a similarity between the sound source feature vector of the songs stored in the database and the sound source feature vector x0 of the seed song m0. In one example, a cosine distance that calculates the distance between vectors may be used. The cosine distance CD between two vectors a and b may be defined as in Equation 1. That is, it may be determined that the smaller the distance between the vectors, the higher the similarity of the songs, and the larger the distance between the vectors, the lower the similarity of the songs.

Figure 112019007147610-pat00001
Figure 112019007147610-pat00001

코사인 거리 이외에도 유클리드 거리, 해밍 거리 등 다양한 방법을 사용하여 곡 간 유사도를 산출할 수 있다. 이때, 음원 특징 벡터와 텍스트 특징 벡터는 접합되어 계산될 수도 있고, 각각 벡터 간 거리를 산출한 후 가중치 합으로 표현될 수도 있다.In addition to the cosine distance, the similarity between songs can be calculated using various methods such as Euclidean distance and Hamming distance. In this case, the sound source feature vector and the text feature vector may be combined and calculated, or may be represented as weighted sums after calculating the distance between the vectors.

단계(S402)에서 플레이리스트 생성부(240)는 데이터베이스 상에 고유 특징이 저장된 곡 중 시드 곡 m0과의 유사도가 높은 복수 개의 곡을 선택하여 별도의 후보 집합 M*을 생성할 수 있다. 일례로, 플레이리스트 생성부(240)는 시드 곡 m0의 가수가 부른 다른 곡 중 유사도가 일정 값 이상인 곡을 선별하거나, 혹은 유사도가 높은 순으로 일정 개수의 곡을 선별하여 후보 집합 M*을 생성할 수 있다. 다른 예로, 플레이리스트 생성부(240)는 곡 간의 텍스트 특징 벡터 거리가 일정 값 이하인 곡들에 대해서만 데이터베이스를 조회하여 후보 집합 M*을 생성할 수도 있다.In operation S402, the playlist generator 240 may select a plurality of songs having similarities with the seed songs m0 among the songs in which the unique features are stored in the database and generate a separate candidate set M *. For example, the playlist generator 240 may select a song having a similarity level or more from other songs sung by the singer of the seed song m0, or select a predetermined number of songs in order of high similarity to generate a candidate set M *. can do. As another example, the playlist generator 240 may generate a candidate set M * by querying a database only for songs whose text feature vector distance between songs is equal to or less than a predetermined value.

단계(S403)에서 플레이리스트 생성부(240)는 데이터베이스 상에 고유 특징이 저장된 곡 간의 유사도를 바탕으로 현재 재생 곡과의 유사도가 높은 곡을 다음 재생 후보 곡으로 선택할 수 있다. 현재 재생되는 곡을 mt라 할 때, 데이터베이스 상의 곡들에 대해 유사도가 높은 곡을 다음 차례 재생할 곡인 mt+1로 선택할 수 있다. 이때, 플레이리스트 생성부(240)는 현재 재생 곡 mt와 유사도가 가장 큰 곡, 혹은 유사도를 기준으로 선정된 복수 개의 곡 중 무작위로 선정된 곡을 다음 재생 후보 곡 mt+1로 결정할 수 있다. 그리고, 이미 재생된 곡은 다음 재생 후보 곡의 선정 대상에서 제외될 수 있다.In operation S403, the playlist generator 240 may select a song having a high similarity to the current playback song as the next playback candidate song based on the similarity between the songs whose unique features are stored in the database. When the song to be played is called mt, a song having a high similarity with respect to the songs in the database may be selected as mt + 1, which is a song to be played next time. In this case, the playlist generator 240 may determine a song having the greatest similarity with the current playback song mt or a song randomly selected from among a plurality of songs selected based on the similarity as the next playback candidate song mt + 1. The already reproduced song may be excluded from the selection target of the next reproduction candidate song.

단계(S404)에서 플레이리스트 생성부(240)는 단계(S403)에서 선택된 후보 곡에 대해 시드 곡 또는 이전 재생 곡 중 적어도 하나의 기준 곡과의 유사도를 산출하여 사전에 정의된 임계값(threshold)과 비교할 수 있다. 이때, 임계값은 플레이리스트의 다양성을 유지하면서 시드 곡이나 기준 곡과 너무 다른 곡이 재생되는 것을 방지하기 위한 역할을 한다. 다시 말해, 본 발명은 다음 재생 후보 곡 선정에 있어 임계값을 통해 시드 곡이나 기준 곡과의 유사성을 지속적으로 체크하는 로직을 포함할 수 있다. 예를 들어, 임계값은 전체 곡들 간의 임계값 분포에서 임의로 선택 가능하며 통상 0.2~0.3 이내로 설정될 수 있다. 임계값을 이용하여 플레이리스트의 다양성과 유사성 간의 균형을 유지하거나 비중을 조절할 수 있다. 그리고, 기준 곡은 최초로 재생된 곡이거나 최초 재생 곡 이후 일정 범위 내에서(예컨대, 5번째 이내로, 1시간 이내로) 재생된 이력이 있는 곡 등일 수 있다.In operation S404, the playlist generating unit 240 calculates a similarity with at least one reference song of a seed song or a previous playback song with respect to the candidate song selected in operation S403, and defines a predetermined threshold. Can be compared with At this time, the threshold serves to prevent a song that is too different from the seed song or the reference song from being played while maintaining the diversity of the playlist. In other words, the present invention may include logic for continuously checking similarity with the seed song or the reference song through the threshold value in selecting the next play candidate song. For example, the threshold value can be arbitrarily selected from the threshold distribution among the whole songs, and can usually be set within 0.2 to 0.3. Thresholds can be used to balance or weight the diversity and similarity of playlists. The reference song may be the first song or a song having a history of being reproduced within a predetermined range (for example, within the fifth time and within one hour) after the first playback song.

단계(S405, S406)에서 플레이리스트 생성부(240)는 단계(S403)에서 선택된 후보 곡이 시드 곡 또는 기준 곡과의 유사도가 임계값 이상으로 높은 경우(즉, 벡터 간 거리가 임계 거리보다 작은 경우) 단계(S403)에서 선택된 후보 곡을 최종 다음 재생 곡으로 결정하여 현재 재생 곡 이후 재생할 수 있다.In steps S405 and S406, the playlist generator 240 determines that the candidate song selected in step S403 has a similarity with the seed song or the reference song higher than the threshold value (that is, the distance between the vectors is smaller than the threshold distance). If the candidate song selected in step S403 is determined as the final next playback song, it can be played after the current playback song.

단계(S405, S407)에서 플레이리스트 생성부(240)는 단계(S403)에서 선택된 후보 곡이 시드 곡 또는 기준 곡과의 유사도가 임계값 미만으로 낮은 경우(즉, 벡터 간 거리가 임계 거리보다 큰 경우) 단계(S402)에서 생성된 후보 집합 M*에 포함된 곡 중 어느 한 곡을 최종 다음 재생 곡으로 선택하여 현재 재생 곡 이후 재생할 수 있다. 예를 들어, 플레이리스트 생성부(240)는 단계(S403)에서 선택된 후보 곡이 시드 곡이나 기준 곡과 유사도가 임계값 미만으로 떨어지면 시드 곡과 유사한 곡의 집합인 후보 집합 M*에서 임의의 한 곡을 선택하여 재생할 수 있다.In steps S405 and S407, the playlist generator 240 determines that the candidate song selected in step S403 has a similarity with the seed song or the reference song below the threshold value (that is, the distance between the vectors is larger than the threshold distance). In this case, any one of the songs included in the candidate set M * generated in step S402 may be selected as the final next playback song, and may be played after the current playback song. For example, if the candidate song selected in step S403 has a similarity with the seed song or the reference song below the threshold value, the playlist generator 240 may select any one from the candidate set M * which is a set of songs similar to the seed song. You can select and play songs.

플레이리스트 생성부(240)는 상기한 과정에서 단계(S403~S407)를 반복 수행하고, 이를 통해 곡 간 유사성을 기반으로 체인 형태의 플레이리스트를 무한히 생성할 수 있다. 따라서, 본 발명은 곡 간 유사성을 기반으로 확률적으로 다음 연속 재생될 곡을 선택함으로써 플레이리스트의 다양성을 확보할 수 있고, 이와 동시에 다음 재생 곡 선택 시 시드 곡(또는 기준 곡)과의 유사도가 일정 값 이하로 낮아질 때는 시드 곡(또는 기준 곡)과의 유사도 순위가 높은 곡으로 대체하여 플레이리스트의 유사성을 지속시킬 수 있다.The playlist generator 240 may repeat steps S403 to S407 in the above process, and may infinitely generate a playlist in a chain form based on the similarity between songs. Accordingly, the present invention can secure the diversity of the playlist by probabilistically selecting the next song to be played continuously based on the similarity between songs, and at the same time, the similarity with the seed song (or reference song) when selecting the next play song. When lowered below a certain value, the similarity of the playlist with the seed song (or the reference song) may be replaced with a song having a high ranking.

이처럼 본 발명의 실시예들에 따르면, 딥 러닝(deep learning)을 이용하여 음원 자체의 고유 값을 학습을 위한 인자(factor)로 사용함으로써 곡 간의 유사성을 더욱 정확히 산출할 수 있다. 더욱이, 본 발명의 실시예들에 따르면, 음원의 특징뿐 아니라 음원의 메타 정보를 부가적 정보로 사용하여 곡 간의 유사성을 산출할 수 있고 메타 정보를 필터 형태로 사용함으로써 곡 간 유사성 계산속도를 획기적으로 개선 가능하며, 또한 시드(seed) 곡과의 유사성을 지속적으로 체크하는 로직을 적용함으로써 플레이리스트의 다양성을 유지하면서 이와 동시에 시드 곡과 너무 다른 곡이 포함되는 것을 방지할 수 있다.As described above, according to embodiments of the present invention, similarity between songs can be more accurately calculated by using the unique value of the sound source itself as a factor for learning using deep learning. Furthermore, according to embodiments of the present invention, similarity between songs can be calculated using not only the characteristics of the sound source but also the meta information of the sound source as additional information, and the speed of calculating the similarity between songs can be dramatically reduced by using the meta information in the form of a filter. By applying logic to continuously check similarity with seed songs, it is possible to prevent playlists from being too different from the seed songs while maintaining the diversity of playlists.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments may include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable PLU (programmable). It can be implemented using one or more general purpose or special purpose computers, such as logic units, microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the claims that follow.

Claims (3)

컴퓨터 시스템에서 수행되는 플레이리스트 생성 방법에 있어서,
음원 컨텐츠 각각에 대하여 상기 음원 컨텐츠의 음원 데이터로부터 해당 음원의 고유한 음향 특징(acoustic features)을 생성하는 단계; 및
상기 음향 특징을 이용하여 상기 음원 컨텐츠 간의 유사도를 산출하여 상기 음원 컨텐츠 간의 유사도를 바탕으로 플레이리스트(playlist)를 생성하는 단계
를 포함하고,
상기 플레이리스트를 생성하는 단계는,
상기 음원 컨텐츠 간의 유사도를 바탕으로 현재 재생 곡과 유사한 후보 곡을 다음 재생 곡으로 선정하여 플레이리스트를 생성하되,
상기 다음 재생 곡의 선정 시 상기 후보 곡과 시드(seed) 곡 간의 유사도를 체크하여 상기 후보 곡과 상기 시드 곡 간의 유사도에 따라 상기 후보 곡을 상기 다음 재생 곡으로 선정하거나 혹은 상기 시드 곡과 유사한 다른 곡을 상기 다음 재생 곡으로 선정함으로써 상기 플레이리스트를 체인 형태로 생성하는 것
을 특징으로 하는 플레이리스트 생성 방법.
In a playlist generation method performed in a computer system,
Generating, for each sound source content, unique acoustic features of the sound source from sound source data of the sound source content; And
Calculating a similarity between the sound source contents using the sound feature to generate a playlist based on the similarity between the sound source contents;
Including,
Generating the playlist,
Based on the similarity between the sound source contents, a candidate song similar to the current playback song is selected as the next playback song to generate a playlist.
The candidate song is selected as the next playback song according to the similarity between the candidate song and the seed song by checking the similarity between the candidate song and the seed song when the next playback song is selected, or another similar to the seed song. Creating the playlist in chain form by selecting a song as the next playback song
Playlist generation method characterized in that.
제1항의 플레이리스트 생성 방법을 컴퓨터를 통해 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the playlist generating method of claim 1 is executed by a computer. 컴퓨터로 구현되는 플레이리스트 생성 시스템에 있어서,
음원 컨텐츠 각각에 대하여 상기 음원 컨텐츠의 음원 데이터로부터 해당 음원의 고유한 음향 특징을 생성하는 고유 특징 처리부; 및
상기 음향 특징을 이용하여 상기 음원 컨텐츠 간의 유사도를 산출하여 상기 음원 컨텐츠 간의 유사도를 바탕으로 플레이리스트를 생성하는 플레이리스트 생성부
를 포함하고,
상기 플레이리스트 생성부는,
상기 음원 컨텐츠 간의 유사도를 바탕으로 현재 재생 곡과 유사한 후보 곡을 다음 재생 곡으로 선정하여 플레이리스트를 생성하되,
상기 다음 재생 곡의 선정 시 상기 후보 곡과 시드 곡 간의 유사도를 체크하여 후보 곡과 상기 시드 곡 간의 유사도에 따라 상기 후보 곡을 상기 다음 재생 곡으로 선정하거나 혹은 상기 시드 곡과 유사한 다른 곡을 상기 다음 재생 곡으로 선정함으로써 상기 플레이리스트를 체인 형태로 생성하는 것
을 특징으로 하는 플레이리스트 생성 시스템.
In the playlist generation system implemented by computer,
A unique feature processor for generating a unique sound characteristic of the corresponding sound source from the sound source data of the sound source content for each of the sound source contents; And
A playlist generator for generating a playlist based on the similarity between the sound source content by calculating the similarity between the sound source content using the sound feature
Including,
The playlist generator,
Based on the similarity between the sound source contents, a candidate song similar to the current playback song is selected as the next playback song to generate a playlist.
When selecting the next playback song, the similarity between the candidate song and the seed song is checked to select the candidate song as the next playback song or another song similar to the seed song according to the similarity between the candidate song and the seed song. Creating the playlist in chain form by selecting as a playback song
Playlist creation system, characterized in that.
KR1020190007510A 2019-01-21 2019-01-21 Method and system for generating playlist using sound source content and meta information KR102031282B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190007510A KR102031282B1 (en) 2019-01-21 2019-01-21 Method and system for generating playlist using sound source content and meta information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190007510A KR102031282B1 (en) 2019-01-21 2019-01-21 Method and system for generating playlist using sound source content and meta information

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020160067984A Division KR101942459B1 (en) 2016-06-01 2016-06-01 Method and system for generating playlist using sound source content and meta information

Publications (2)

Publication Number Publication Date
KR20190009821A KR20190009821A (en) 2019-01-29
KR102031282B1 true KR102031282B1 (en) 2019-10-11

Family

ID=65323275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190007510A KR102031282B1 (en) 2019-01-21 2019-01-21 Method and system for generating playlist using sound source content and meta information

Country Status (1)

Country Link
KR (1) KR102031282B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102538680B1 (en) * 2022-07-12 2023-06-01 뉴튠(주) Method and Apparatus for Searching Similar Music Based on Music Attributes Using Artificial Neural Network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171096A (en) * 2002-11-18 2004-06-17 Pioneer Electronic Corp Musical piece searching method, musical piece searching device, and musical piece searching program
JP2005077865A (en) * 2003-09-02 2005-03-24 Sony Corp Music retrieval system and method, information processor and method, program, and recording medium
KR101203091B1 (en) * 2004-11-16 2012-11-20 소니 주식회사 Musical content reproduction apparatus, method thereof, and recording apparatus of musical contents and attribute information
JP5344715B2 (en) * 2008-11-07 2013-11-20 国立大学法人北海道大学 Content search apparatus and content search program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101522553B1 (en) * 2008-11-24 2015-05-26 삼성전자주식회사 Method and apparatus for playing back a content using metadata

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171096A (en) * 2002-11-18 2004-06-17 Pioneer Electronic Corp Musical piece searching method, musical piece searching device, and musical piece searching program
JP2005077865A (en) * 2003-09-02 2005-03-24 Sony Corp Music retrieval system and method, information processor and method, program, and recording medium
KR101203091B1 (en) * 2004-11-16 2012-11-20 소니 주식회사 Musical content reproduction apparatus, method thereof, and recording apparatus of musical contents and attribute information
JP5344715B2 (en) * 2008-11-07 2013-11-20 国立大学法人北海道大学 Content search apparatus and content search program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102538680B1 (en) * 2022-07-12 2023-06-01 뉴튠(주) Method and Apparatus for Searching Similar Music Based on Music Attributes Using Artificial Neural Network

Also Published As

Publication number Publication date
KR20190009821A (en) 2019-01-29

Similar Documents

Publication Publication Date Title
KR101942459B1 (en) Method and system for generating playlist using sound source content and meta information
Kaminskas et al. Location-aware music recommendation using auto-tagging and hybrid matching
TWI553494B (en) Multi-modal fusion based Intelligent fault-tolerant video content recognition system and recognition method
US11537651B2 (en) Descriptive media content search
TWI396105B (en) Digital data processing method for personalized information retrieval and computer readable storage medium and information retrieval system thereof
US11636835B2 (en) Spoken words analyzer
US9576050B1 (en) Generating a playlist based on input acoustic information
WO2012154470A1 (en) Generating a playlist
EP2208149A2 (en) Classifying a set of content items
JP4364838B2 (en) Music reproducing apparatus capable of remixing music, and method and program for remixing music
WO2022005442A1 (en) System (embodiments) for harmoniously combining video files and audio files and corresponding method
JP2003084783A (en) Method, device, and program for playing music data and recording medium with music data playing program recorded thereon
KR102031282B1 (en) Method and system for generating playlist using sound source content and meta information
US11410706B2 (en) Content pushing method for display device, pushing device and display device
KR101801250B1 (en) Method and system for automatically tagging themes suited for songs
KR20070048484A (en) Apparatus and method for classification of signal features of music files, and apparatus and method for automatic-making playing list using the same
Borjian Query-by-example music information retrieval by score-based genre prediction and similarity measure
EP3648106B1 (en) Media content steering
KR101520572B1 (en) Method and apparatus for multiple meaning classification related music
TWI808038B (en) Media file selection method and service system and computer program product
KR102538680B1 (en) Method and Apparatus for Searching Similar Music Based on Music Attributes Using Artificial Neural Network
JP7061679B2 (en) A method and system for predicting the playing length of a song based on the composition of the playlist
JP7106663B2 (en) Growth graph-based playlist recommendation method and system
TW202420143A (en) Media file selection method, service system and computer program product
CN118093792A (en) Method, device, computer equipment and storage medium for searching object

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right