Maria@39
|
1 # -*- coding: utf-8 -*-
|
Maria@39
|
2 """
|
Maria@39
|
3 Created on Fri Sep 1 19:11:52 2017
|
Maria@39
|
4
|
Maria@39
|
5 @author: mariapanteli
|
Maria@39
|
6 """
|
Maria@39
|
7
|
Maria@39
|
8 import pytest
|
Maria@39
|
9
|
Maria@39
|
10 import numpy as np
|
m@85
|
11 import os
|
Maria@39
|
12
|
Maria@39
|
13 import scripts.OPMellin as OPMellin
|
Maria@39
|
14
|
Maria@39
|
15
|
Maria@39
|
16 opm = OPMellin.OPMellin()
|
m@85
|
17 TEST_AUDIO_FILE = os.path.join(os.path.dirname(__file__), os.path.pardir,
|
m@85
|
18 'data', 'sample_dataset', 'Audio', 'mel_1_2_1.wav')
|
Maria@39
|
19
|
Maria@39
|
20 def test_load_audiofile():
|
m@85
|
21 audiofile = TEST_AUDIO_FILE
|
Maria@39
|
22 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
23 assert opm.y is not None and opm.sr is not None
|
Maria@39
|
24
|
Maria@39
|
25
|
Maria@39
|
26 def test_mel_spectrogram():
|
m@85
|
27 audiofile = TEST_AUDIO_FILE
|
Maria@39
|
28 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
29 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
30 # assume 40 mel bands
|
Maria@39
|
31 assert opm.melspec.shape[0] == 40
|
Maria@39
|
32
|
Maria@39
|
33
|
Maria@39
|
34 def test_post_process_spec():
|
m@85
|
35 audiofile = TEST_AUDIO_FILE
|
Maria@39
|
36 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
37 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
38 melspec = opm.melspec
|
Maria@39
|
39 opm.post_process_spec(melspec=melspec)
|
Maria@39
|
40 proc_melspec = opm.melspec
|
Maria@39
|
41 assert melspec.shape == proc_melspec.shape
|
Maria@39
|
42
|
Maria@39
|
43
|
Maria@39
|
44 def test_onset_patterns_n_frames():
|
m@85
|
45 audiofile = TEST_AUDIO_FILE
|
Maria@39
|
46 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
47 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
48 opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr)
|
Maria@39
|
49 assert opm.op.shape[2] == np.round(((opm.melspec.shape[1] / opm.melsr) - opm.win2sec) * 2.)
|
Maria@39
|
50
|
Maria@39
|
51
|
Maria@39
|
52 def test_onset_patterns_n_bins():
|
m@85
|
53 audiofile = TEST_AUDIO_FILE
|
Maria@39
|
54 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
55 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
56 opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr)
|
Maria@39
|
57 assert opm.op.shape[0] == 40
|
Maria@39
|
58
|
Maria@39
|
59
|
Maria@39
|
60 def test_post_process_op():
|
m@85
|
61 audiofile = TEST_AUDIO_FILE
|
Maria@39
|
62 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
63 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
64 opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr)
|
Maria@39
|
65 op = opm.op
|
Maria@39
|
66 opm.post_process_op()
|
Maria@39
|
67 proc_op = opm.op
|
Maria@39
|
68 assert op.shape == proc_op.shape |