import common from dbispipeline.evaluators import FixedSplitEvaluator from dbispipeline.evaluators import ModelCallbackWrapper import dbispipeline.result_handlers as result_handlers from dbispipeline.utils import prefix_path from loaders.melspectrograms import MelSpectrogramsLoader from models.crnn import CRNNModel from sklearn.pipeline import Pipeline WINDOW_SIZE = 1366 dataloader = MelSpectrogramsLoader( data_path=prefix_path("melspec_data", common.DEFAULT_PATH), training_path=prefix_path("autotagging_moodtheme-train.tsv", common.DEFAULT_PATH), test_path=prefix_path("autotagging_moodtheme-test.tsv", common.DEFAULT_PATH), validate_path=prefix_path("autotagging_moodtheme-validation.tsv", common.DEFAULT_PATH), window_size=WINDOW_SIZE, window='random', num_windows=5, ) pipeline = Pipeline([ ("model", CRNNModel(epochs=32, dataloader=dataloader, attention=True)), ]) evaluator = ModelCallbackWrapper( FixedSplitEvaluator(**common.fixed_split_params()), lambda model: common.store_prediction(model, dataloader),
import common from dbispipeline.evaluators import FixedSplitEvaluator from dbispipeline.evaluators import ModelCallbackWrapper import dbispipeline.result_handlers as result_handlers from dbispipeline.utils import prefix_path from loaders.combined import CombinedLoader from models.crnn import CRNNPlusModel from sklearn.pipeline import Pipeline dataloader = CombinedLoader( mel_data_path=prefix_path("melspec_data", common.DEFAULT_PATH), mel_training_path=prefix_path("autotagging_moodtheme-train.tsv", common.DEFAULT_PATH), mel_test_path=prefix_path("autotagging_moodtheme-test.tsv", common.DEFAULT_PATH), mel_validate_path=prefix_path("autotagging_moodtheme-validation.tsv", common.DEFAULT_PATH), ess_training_path=prefix_path("accousticbrainz-train.pickle", common.DEFAULT_PATH), ess_test_path=prefix_path("accousticbrainz-test.pickle", common.DEFAULT_PATH), ess_validate_path=prefix_path("accousticbrainz-validation.pickle", common.DEFAULT_PATH), window='random', num_windows=5, ) pipeline = Pipeline([ ("model", CRNNPlusModel(epochs=48, dataloader=dataloader, attention=True)), ])
import common from dbispipeline.evaluators import FixedSplitGridEvaluator import dbispipeline.result_handlers as result_handlers from dbispipeline.utils import prefix_path from loaders.librosa_features import LibRosaLoader from sklearn.neighbors import KNeighborsClassifier from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler dataloader = LibRosaLoader( prefix_path("autotagging_moodtheme-train-librosa.pickle", common.DEFAULT_PATH), prefix_path("autotagging_moodtheme-test-librosa.pickle", common.DEFAULT_PATH), ) pipeline = Pipeline([("scaler", StandardScaler()), ("model", KNeighborsClassifier())]) evaluator = FixedSplitGridEvaluator( params={ "model__n_neighbors": [1, 3, 5, 10], }, grid_params=common.grid_params(), ) result_handlers = [ result_handlers.print_gridsearch_results, ]
'tonal.chords_key', 'tonal.chords_scale', 'tonal.key_scale', 'tonal.key_key', ] for c in string_columns: dummies = pd.get_dummies(df[c], prefix=c, drop_first=False) df = pd.concat([df.drop(c, axis=1), dummies], axis=1) # Save dataframe. pickle.dump(df, open(target_file, "wb")) if __name__ == "__main__": create_dataset( prefix_path("autotagging_moodtheme-train.tsv", common.DEFAULT_PATH), prefix_path("acousticbrainz_data", common.DEFAULT_PATH), prefix_path("accousticbrainz-train.pickle", common.DEFAULT_PATH), ) create_dataset( prefix_path("autotagging_moodtheme-test.tsv", common.DEFAULT_PATH), prefix_path("acousticbrainz_data", common.DEFAULT_PATH), prefix_path("accousticbrainz-test.pickle", common.DEFAULT_PATH), ) create_dataset( prefix_path("autotagging_moodtheme-validation.tsv", common.DEFAULT_PATH), prefix_path("acousticbrainz_data", common.DEFAULT_PATH), prefix_path("accousticbrainz-validation.pickle", common.DEFAULT_PATH), )
import common from dbispipeline.evaluators import FixedSplitGridEvaluator import dbispipeline.result_handlers as result_handlers from dbispipeline.utils import prefix_path from loaders.acousticbrainz import AcousticBrainzLoader from sklearn.multioutput import MultiOutputClassifier from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC dataloader = AcousticBrainzLoader( training_path=prefix_path("accousticbrainz-train.pickle", common.DEFAULT_PATH), test_path=prefix_path("accousticbrainz-test.pickle", common.DEFAULT_PATH), validation_path=prefix_path("accousticbrainz-validation.pickle", common.DEFAULT_PATH), ) pipeline = Pipeline([ ("scaler", StandardScaler()), ("model", MultiOutputClassifier(SVC(probability=True))), ]) evaluator = FixedSplitGridEvaluator( params={"model__estimator__C": [0.1, 1.0, 10.0]}, grid_params=common.grid_params(), ) result_handlers = [ result_handlers.print_gridsearch_results, ]
# Create a data set using features extracted by librosa. import multiprocessing from os import path import pickle import common from dbispipeline.utils import prefix_path import librosa import numpy as np import pandas as pd DATA_PATH = prefix_path("audio_data", common.DEFAULT_PATH) def extract_features(song_path): # Load song. song, sr = librosa.load(song_path) # Extract BPM. bpm, _ = librosa.beat.beat_track(y=song, sr=sr) # Extract zero-crossing rate. zcr = sum(librosa.zero_crossings(y=song)) / len(song) # Extract spectral centroid. spec_centroid = np.mean( librosa.feature.spectral_centroid(y=song, sr=sr)[0]) spec_centroid_stddev = np.std( librosa.feature.spectral_centroid(y=song, sr=sr)[0]) # Extract spectral rolloff.