How to develop a neural network that can identify a song by composer

412 views Asked by At

I have recently undertaken a project to test the efficiency of machine learning algorithms. However, I have had extensive trouble finding a platform to bring my idea into realization. Here is what I am attempting to do.

I am attempting to create a neural network that can identify classical music pieces by composer. I will train it using a set of classical clips, each 5 seconds long and by 5 different composers. There will be 25 such songs in all. The algorithm, without any integration into an application, has to be able to identify the songs. There is a specific set of requirements I have for this algorithm.

1: It must be available for MacOS Mojave or High Sierra as an application or library in the Python programming language.

2: It must have some sort of documentation online as to how to create a neural network in it.

3: It must be able to handle auditory stimuli. (For example, Xcode 10.1 cannot handle auditory stimuli using an MLClassifier.)

4: The user must be able to alter the number of hidden layers in the algorithm easily.

If all of these requirements are met and if I am able to resolve additional problems in correspondence, my problem will be solved. I look forward to working with members of the Stack Overflow community in order to find a solution. Thank you for any assistance you can provide.

Sincerely, Suren Grigorian

1

There are 1 answers

2
Charles Landau On

Problem:

The algorithm, without any integration into an application, has to be able to identify the songs.

Requirements:

1: It must be available for MacOS Mojave or High Sierra as an application or library in the Python programming language.

2: It must have some sort of documentation online as to how to create a neural network in it.

3: It must be able to handle auditory stimuli. (For example, Xcode 10.1 cannot handle auditory stimuli using an MLClassifier.)

4: The user must be able to alter the number of hidden layers in the algorithm easily.

This is troublesome. 1) contradicts the problem statement - it states a MacOS, or Python integration requirement. 2) states an integration requirement (online docs.) 4) compromises the efficacy requirement (the user could reshape the model until it is useless or too heavy to operate on available resources.) Why are you obligated to prepare the data in 5 second snippets? Data science projects with confusing requirements can do more harm than good.

Setting all this aside, I guess your project sounds like a good candidate for tensorflow. You can train in any environment that lets you persist to tf graphs and weights (e.g. keras) and then use the converter to persist your model for tensorflow.js if you want seamless integration with d3 or a modern webapp.

If you haven't implemented an audio classifier before, tf has a good starter project in their docs: https://www.tensorflow.org/tutorials/sequences/audio_recognition