As amateur musicians in our daily rehearsals, we found it complex to get more creative power over the songs that we try to replicate or perform. We had lived ourselves the problem of not finding separated tracks for instruments to enhance covers or create the next big mashup.
Being AI passionates we found out that complex state of the art algorithms were already well developed to be applied to general use and that nobody was helping the rest of musicians with this problem.
What it does
Slicr applies pre-trained neural network models to split a song into different tracks, for example: Drums, Bass, Vocals and Others. It is a service on the cloud that does not use your computer resources and gives a fast response, allowing anyone owning a song to get creative power over it.
How we built it
We build a Django based web application that runs pre-trained Deep Learning models in Tensorflow. Thanks to projects like spleeter from the Deezer team, or demucs from Facebook Research the isolation problem is closer to be completly solved. At Slicr we get advantage of this fact.
Challenges we ran into
Deep learning models are memory and CPU intensive, so we need to build an autoscaling insfrastructure cloud base that allows the models we use to keep running with a dynamic amount of concurrent requests. We also had problems to integrate the model into the local and production environments, as it was giving problems with some dependencies that were not compatible. Using docker we normalize the environments and solve these issues.
Accomplishments that we are proud of
Deep learning models are memory and CPU intensive, even though we tried to keep our system as minimal as possible to serve the best quality splits. Added to this we are proud to enhance the creators community with a tool that is simple to use.
What we learned
We learned how deep learning can be easily applied as a service once the models are pre-trained.
What's next for slicr
Create a better autoscaling infrastructure and a second tab that allow users to keep training the neural network. In parallel we would enhance the tool by giving more features, for example: choosing the model that you want to apply, choosing the number of tracks to be split, and others.