IP Library › Granted Patent US 9,715,870
Granted Patent B2
US 9,715,870 · App. 14/880,372 · Granted Jul 25, 2017

Cognitive music engine using unsupervised learning

Inventors: Inseok Hwang (Austin, TX); Jente B Kuang (Austin, TX); Janani Mukundan (Austin, TX)
Assignee: International Business Machines Corporation
G10H1/0025G06N3/088G10H2210/081G10H2210/115G10H2250/311
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,715,870
App. No.
14/880,372
Granted
Jul 25, 2017
Kind
B2
Abstract

A method for generating a musical composition based on user input is described. A first set of musical characteristics is extracted from a first input musical piece. The first set of music characteristics is prepared as an input vector into an unsupervised neural net comprised of a plurality of computing layers by perturbing the first set of musical characteristics according to a user intent expressed in the user input to create a perturbed vector. The perturbed vector is input into the first set of nodes of the unsupervised neural net. The unsupervised neural net is operated to calculate an output vector from a highest set of nodes. The output vector is used to create an output musical piece.

Claims (45)

1. A method for generating a musical composition based on user input, comprising:

responsive to user input, extracting a first set of musical characteristics from a first input musical piece;

preparing the first set of musical characteristics as an input vector into an unsupervised neural net comprised of a plurality of computing layers, wherein each computing layer is composed of a set of nodes, wherein the input vector is prepared by perturbing the first set of musical characteristics according to a user intent expressed in the user input to create a perturbed input vector;

providing the perturbed input vector into a first set of nodes in a first visible layer of the unsupervised neural net;

operating the unsupervised neural net using the perturbed input vector to calculate an output vector from a higher set of nodes of the unsupervised neural net; and

using the output vector to create an output musical piece.

2. The method as recited in claim 1 , wherein the plurality of computing layers comprise a plurality of Restricted Boltzmann Machines (RBM).

3. The method as recited in claim 1 , wherein the user intent is selected from the group consisting of a mood, a genre of music and an activity to be performed while listening to the output musical piece.

4. The method as recited in claim 2 , wherein a rule directs a selection of a set of pitches from a key signature associated with the user intent.

5. The method as recited in claim 1 , wherein the perturbing includes inserting random values into respective ones of the first set of nodes in the first visible layer.

6. The method as recited in claim 1 , further comprising:

responsive to user input, extracting a second set of musical characteristics from a second input musical piece;

inputting the second set of musical characteristics together with the first set of musical characteristics as the input vector into the first set of nodes in the first visible layer of the unsupervised neural net; and

wherein the perturbed input vector is changed so that the first input musical piece has a greater effect on the output musical piece than the second input musical piece.

7. An apparatus, comprising:

a processor;

computer memory holding computer program instructions executed by the processor for generating a musical composition based on user input, the computer program instructions comprising:

program code operative to extract a first set of musical characteristics from a first input musical piece;

program code operative to prepare the first set of musical characteristics as an input vector into an unsupervised neural net comprised of a plurality of computing layers, wherein each computing layer is composed of a set of nodes, wherein the input vector is prepared by perturbing the first set of musical characteristics according to a user intent expressed in the user input to create a perturbed input vector;

program code operative to provide the perturbed input vector into a first set of nodes in a first visible layer of the unsupervised neural net;

program code operative to use the unsupervised neural net using the perturbed input vector to calculate an output vector from a higher set of nodes; and

program code operative to use the output vector to create an output musical piece.

8. The apparatus as recited in claim 7 , wherein the plurality of computing layers comprise a plurality of Restricted Boltzmann Machines (RBM).

9. The apparatus as recited in claim 7 , wherein the user intent is selected from the group consisting of a mood, a genre of music and an activity to be performed while listening to the output musical piece.

10. The apparatus as recited in claim 7 , wherein the computer program instructions further comprise program code operative to direct a selection of rule to insert a set of pitches from a key signature associated with the user intent into the first visible layer.

11. The apparatus as recited in claim 7 , wherein the computer program instructions further comprise:

program code operative to extracting a second set of musical characteristics from a second input musical piece;

program code operative to input the second set of musical characteristics together with the first set of musical characteristics as the input vector into the first set of nodes in the first visible layer of the unsupervised neural net; and

program code operative to change the perturbed input vector so that the first input musical piece has a greater effect on the output musical piece than the second input musical piece.

12. A computer program product in a non-transitory computer readable medium for use in a data processing system, the computer program product holding computer program instructions which, when executed by the data processing system, for generating a musical composition based on user input, the computer program instructions comprising:

program code operative to extract a first set of musical characteristics from a first input musical piece;

program code operative to prepare the first set of musical characteristics as an input vector into an unsupervised neural net comprised of a plurality of computing layers, wherein each computing layer is composed of a set of nodes, wherein the input vector is prepared by perturbing the first set of musical characteristics according to a user intent expressed in the user input to create a perturbed input vector;

program code operative to provide the perturbed input vector into a first set of nodes in a first visible layer of the unsupervised neural net;

program code operative to use the unsupervised neural net using the perturbed input vector to calculate an output vector from a higher set of nodes; and

program code operative to use the output vector to create an output musical piece.

13. The computer program product as recited in claim 12 , wherein the user intent is selected from the group consisting of a mood, a genre of music and an activity to be performed while listening to the output musical piece.

14. The computer program product as recited in claim 12 , wherein the computer program instructions further comprise program code operative to direct a selection of rule to insert a set of pitches from a key signature associated with the user intent into the first visible layer.

15. The computer program product as recited in claim 12 , wherein the computer program instructions further comprise:

program code operative to extracting a second set of musical characteristics from a second input musical piece;

program code operative to input the second set of musical characteristics together with the first set of musical characteristics as the input vector into the first set of nodes in the first visible layer of the unsupervised neural net; and

program code operative to change the perturbed input vector so that the first input musical piece has a greater effect on the output musical piece than the second input musical piece.

16. The method as recited in claim 1 , further comprising:

receiving a user request for a plurality of output musical pieces; and

using a plurality of output vectors, each output vector from a different higher level within the unsupervised neural net.

17. The method as recited in claim 4 , wherein operating the unsupervised neural net using the perturbed input vector trains Restricted Boltzmann Machines using a contrastive divergence process.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2015
From: HWANG, INSEOK; KUANG, JENTE B; MUKUNDAN, JANANI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037229/0245 →
Continuity (1)
Related Publication 20170103740A1 · Apr 13, 2017