15
I am doing research in the area of musical similarity for music recommendation and created a test database with 1,000 songs. I would like to create a playlist with 10 songs similar to a song chosen among these thousand, using MPEG-7 descriptors.
I extracted 30 seconds of each song to have a pattern of features extracted by the MPEG-7 descriptors. I would not like to generate classifications of sounds in genres songs, only create a playlist the rhythm similar to that of the selected song. If a slow song is selected, this playlist will be slow songs (the ten most similar).
I tried to extract some descriptors like Audio Spectral Centroid, Audio Power, which gave me a vector. However, using the calculation of Euclidean distance in MATLAB, I did not get a very good similarity. How can I build this prototype using the MPEG-7 descriptors?
I extracted a vector of characteristics for the Audio Spectral Centroid and Audio Power descriptors where in both, for 30 seconds, there was a vector of 1000 positions, because the extraction of audio signal characteristics occurs every 30ms. The question is precisely whether I am using the right descriptors for this type of work.
<AudioDescriptor xsi:type="AudioSpectrumCentroidType">
<SeriesOfScalar hopSize="PT30N1000F" totalNumOfSamples="1002">
<Raw> 0.0 -1.6024935 -0.6072393 -0.7425593 -0.8901987 -1.1543454 -1.1027017 -0.64731646 -0.96495366 -1.022632 -0.8076392 -0.993545 -0.66203004 -0.93275607 -1.1654149 -0.9243456 -1.2580872 -1.339062 -1.5594536 -1.5959411 -1.7814989 -1.6296328 -1.5468938 -1.0133578 -1.250789 -1.0111073......</Raw>
</SeriesOfScalar>
</AudioDescriptor>
This is one of the characteristics extracted, the Audio Spectrum Centroid, which indicates the center of gravity of the amplitude. But I’m not sure which descriptor to use and how to use it.
Where’s your question about programming ??
– Erlon Charles
That’s right. The concept is very interesting. But the best thing is you show your code to
Tentei extrair alguns descritores
andutilizando o cálculo da distância euclidiana
.– brasofilo
Please edit the question to include this information.
– Oralista de Sistemas
Hello. Your question is interesting and her belonging to the scope of the site is under discussion here).
– Luiz Vieira
I don’t know much about the audio processing domain, so I don’t risk writing an answer. But I don’t think Euclidean distance is appropriate for features like the ones you mentioned. Have you tried using the standard scalar product (also called cosine similarity) to measure the similarity between their vectors? Here is a calculation suggestion in Matlab: http://stackoverflow.com/a/14340447/2896619
– Luiz Vieira
Hello Luiz, I will give a study about yes...thank you very much. The doubt is also which descriptors to use for this type of project
– Marcelo
Opa, for nothing. About the descriptors, I imagine that the Fourier Fast Transform and/or Eigenvectors are also used. You can use this link from Wikipedia: http://en.wikipedia.org/wiki/Musical_similarity
– Luiz Vieira
I would suggest trying to do a dimensionality reduction (using PCA) before calculating the distance. Maybe I can get some improvement. That is if the descriptors are good, of course.
– Rafael Monteiro