3 from numpy.testing import TestCase, run_module_suite
4 from numpy.testing import assert_equal, assert_almost_equal
5 from numpy import random
7 from numpy import array
8 from aubio import cvec, filterbank
9 from utils import array_from_text_file
11 class aubio_filterbank_test_case(TestCase):
13 def test_members(self):
14 f = filterbank(40, 512)
15 assert_equal ([f.n_filters, f.win_s], [40, 512])
17 def test_set_coeffs(self):
18 f = filterbank(40, 512)
19 r = random.random([40, 512 / 2 + 1]).astype('float32')
21 assert_equal (r, f.get_coeffs())
24 f = filterbank(40, 512)
27 assert_equal( f(c), 0);
30 f = filterbank(40, 512)
33 assert_equal( f(c), 0);
35 def test_random_norm(self):
36 f = filterbank(40, 512)
38 c.norm[:] = random.random((512 / 2 + 1,)).astype('float32')
39 assert_equal( f(c), 0)
41 def test_random_coeffs(self):
42 f = filterbank(40, 512)
44 r = random.random([40, 512 / 2 + 1]).astype('float32')
47 c.norm[:] = random.random((512 / 2 + 1,)).astype('float32')
48 assert_equal ( f(c) < 1., True )
49 assert_equal ( f(c) > 0., True )
51 def test_mfcc_coeffs(self):
52 f = filterbank(40, 512)
54 f.set_mel_coeffs_slaney(44100)
55 c.norm[:] = random.random((512 / 2 + 1,)).astype('float32')
56 assert_equal ( f(c) < 1., True )
57 assert_equal ( f(c) > 0., True )
59 def test_mfcc_coeffs_16000(self):
60 expected = array_from_text_file('filterbank_mfcc_16000_512.expected')
61 f = filterbank(40, 512)
62 f.set_mel_coeffs_slaney(16000)
63 assert_almost_equal ( expected, f.get_coeffs() )
65 if __name__ == '__main__':
66 from unittest import main