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 :)