1
$\begingroup$

I am interested in what techniques and algorithms could be used in order to tackle the following problem:

I have a database of audio samples, specifically live performances of various songs. I have about a dozen songs and for each of them I have again about a dozen samples of that song's performance.

I am hoping that by having more than one sample for each song, it will be possible to better "lock down" the song's general features and filter out noise and differences between performances. These being live performances, each sample is a bit different, some are captured at better quality than others (directly from the sound guy versus a phone recording in the crowd), some songs have interludes, false starts (guitarist forgot to turn on the amp), start too late, end too early…

Now the next thing that I aside from this database is a live feed of a currently playing song and I am interested in using ML to find out which song is the live feed most likely to be. The way I see this, it could either be that the live feed continues to be captured so the changes of matching it up with features of the existing sample database grow or it might be more practical to periodically chop of fixed sized chunks if it is not possible to use a live feed like this.

I am interested in finding out what is the most common / most reliable approach to find what song the live audio most likely is and on top of that what position in the song is the live feed currently at.

$\endgroup$
1
$\begingroup$

In the first step, I think you should start with discretizing your song wave and then take a Fourier Transform for each chunk (in numpy for example you can use numpy.fft()). This Link might be helpful. After that, you can try sequence pattern recognition models.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.