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
|
Maria@39
|
11
|
Maria@39
|
12 import scripts.OPMellin as OPMellin
|
Maria@39
|
13
|
Maria@39
|
14
|
Maria@39
|
15 opm = OPMellin.OPMellin()
|
Maria@39
|
16
|
Maria@39
|
17
|
Maria@39
|
18 def test_load_audiofile():
|
Maria@39
|
19 audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav'
|
Maria@39
|
20 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
21 assert opm.y is not None and opm.sr is not None
|
Maria@39
|
22
|
Maria@39
|
23
|
Maria@39
|
24 def test_mel_spectrogram():
|
Maria@39
|
25 audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav'
|
Maria@39
|
26 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
27 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
28 # assume 40 mel bands
|
Maria@39
|
29 assert opm.melspec.shape[0] == 40
|
Maria@39
|
30
|
Maria@39
|
31
|
Maria@39
|
32 def test_post_process_spec():
|
Maria@39
|
33 audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav'
|
Maria@39
|
34 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
35 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
36 melspec = opm.melspec
|
Maria@39
|
37 opm.post_process_spec(melspec=melspec)
|
Maria@39
|
38 proc_melspec = opm.melspec
|
Maria@39
|
39 assert melspec.shape == proc_melspec.shape
|
Maria@39
|
40
|
Maria@39
|
41
|
Maria@39
|
42 def test_onset_patterns_n_frames():
|
Maria@39
|
43 audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav'
|
Maria@39
|
44 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
45 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
46 opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr)
|
Maria@39
|
47 assert opm.op.shape[2] == np.round(((opm.melspec.shape[1] / opm.melsr) - opm.win2sec) * 2.)
|
Maria@39
|
48
|
Maria@39
|
49
|
Maria@39
|
50 def test_onset_patterns_n_bins():
|
Maria@39
|
51 audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav'
|
Maria@39
|
52 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
53 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
54 opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr)
|
Maria@39
|
55 assert opm.op.shape[0] == 40
|
Maria@39
|
56
|
Maria@39
|
57
|
Maria@39
|
58 def test_post_process_op():
|
Maria@39
|
59 audiofile = 'data/sample_dataset/Audio/mel_1_2_1.wav'
|
Maria@39
|
60 opm.load_audiofile(audiofile, segment=False)
|
Maria@39
|
61 opm.mel_spectrogram(y=opm.y, sr=opm.sr)
|
Maria@39
|
62 opm.onset_patterns(melspec=opm.melspec, melsr=opm.melsr)
|
Maria@39
|
63 op = opm.op
|
Maria@39
|
64 opm.post_process_op()
|
Maria@39
|
65 proc_op = opm.op
|
Maria@39
|
66 assert op.shape == proc_op.shape |