Maria@39: # -*- coding: utf-8 -*- Maria@39: """ Maria@39: Created on Fri Sep 1 19:11:52 2017 Maria@39: Maria@39: @author: mariapanteli Maria@39: """ Maria@39: Maria@39: import pytest Maria@39: Maria@39: import numpy as np Maria@39: Maria@39: import scripts.OPMellin as OPMellin Maria@39: Maria@39: Maria@39: opm = OPMellin.OPMellin() Maria@39: Maria@39: Maria@39: def test_load_audiofile(): Maria@39: audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav' Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: assert opm.y is not None and opm.sr is not None Maria@39: Maria@39: Maria@39: def test_mel_spectrogram(): Maria@39: audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav' Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: # assume 40 mel bands Maria@39: assert opm.melspec.shape[0] == 40 Maria@39: Maria@39: Maria@39: def test_post_process_spec(): Maria@39: audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav' Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: melspec = opm.melspec Maria@39: opm.post_process_spec(melspec=melspec) Maria@39: proc_melspec = opm.melspec Maria@39: assert melspec.shape == proc_melspec.shape Maria@39: Maria@39: Maria@39: def test_onset_patterns_n_frames(): Maria@39: audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav' Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr) Maria@39: assert opm.op.shape[2] == np.round(((opm.melspec.shape[1] / opm.melsr) - opm.win2sec) * 2.) Maria@39: Maria@39: Maria@39: def test_onset_patterns_n_bins(): Maria@39: audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav' Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr) Maria@39: assert opm.op.shape[0] == 40 Maria@39: Maria@39: Maria@39: def test_post_process_op(): Maria@39: audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav' Maria@39: opm.load_audiofile(audiofile, segment=False) Maria@39: opm.mel_spectrogram(y=opm.y, sr=opm.sr) Maria@39: opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr) Maria@39: op = opm.op Maria@39: opm.post_process_op() Maria@39: proc_op = opm.op Maria@39: assert op.shape == proc_op.shape