I am attempting to write a content-based music recommendation system using machine learning. Using a python library, I am able to extract the features from raw audio files. For each audio file, I have a corresponding count of how many times the song has been listened to. Since I am still a novice at audio processing, I would like to ask if there are any features which should obviously be used or which definitely should NOT be used to attempt to predict how many times a song will be listened to. (I was going to try to use MFCC on a regression-based model to attempt to predict the song count)

The features are as follows:

  • chroma_stft([y, sr, S, norm, n_fft, …]) -- Compute a chromagram from a waveform or power spectrogram.
  • chroma_cqt([y, sr, C, hop_length, fmin, …]) -- Constant-Q chromagram
  • chroma_cens([y, sr, C, hop_length, fmin, …]) -- Computes the chroma variant “Chroma Energy Normalized” (CENS)
  • melspectrogram([y, sr, S, n_fft, …]) -- Compute a mel-scaled spectrogram.
  • mfcc([y, sr, S, n_mfcc, dct_type, norm, lifter]) -- Mel-frequency cepstral coefficients (MFCCs)
  • rms([y, S, frame_length, hop_length, …]) -- Compute root-mean-square (RMS) value for each frame, either from the audio samples y or from a spectrogram S.
  • spectral_centroid([y, sr, S, n_fft, …]) -- Compute the spectral centroid.
  • spectral_bandwidth([y, sr, S, n_fft, …]) -- Compute p’th-order spectral bandwidth.
  • spectral_contrast([y, sr, S, n_fft, …]) -- Compute spectral contrast
  • spectral_flatness([y, S, n_fft, hop_length, …]) -- Compute spectral flatness
  • spectral_rolloff([y, sr, S, n_fft, …]) -- Compute roll-off frequency.
  • poly_features([y, sr, S, n_fft, hop_length, …]) -- Get coefficients of fitting an nth-order polynomial to the columns of a spectrogram.
  • tonnetz([y, sr, chroma]) -- Computes the tonal centroid features (tonnetz)
  • zero_crossing_rate(y[, frame_length, …]) -- Compute the zero-crossing rate of an audio time series.

Or is the best course of action to simply try all the possibilities and methodically determine which features seem to matter and which don't? Thanks :)

  • $\begingroup$ There is a massive body of scientific and commercial work on this subject. What have you read so far ? Probably the most commercially succesful one is this en.wikipedia.org/wiki/Music_Genome_Project. Please note that there is also fairly broad patent coverage (with all the legal implications that come with that) $\endgroup$ – Hilmar Nov 8 '20 at 16:36

Your Answer

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

Browse other questions tagged or ask your own question.