mirror of
https://github.com/cmusphinx/sphinxtrain.git
synced 2026-05-17 13:10:52 +00:00
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
#!/usr/bin/env python
|
|
|
|
import unittest
|
|
from cmusphinx import s3model
|
|
from cmusphinx import s2mfc
|
|
from cmusphinx.feat import _1s_c_d_dd
|
|
import os
|
|
|
|
|
|
class TestS3Model(unittest.TestCase):
|
|
def setUp(self):
|
|
thisdir = os.path.dirname(__file__)
|
|
self.testdir = os.path.join(thisdir, 'data', 'tidigits')
|
|
self.acmod = s3model.S3Model(self.testdir)
|
|
|
|
def test_created(self):
|
|
self.assertTrue(abs(self.acmod.tmat[0][0,1] - 0.3326) < 0.01)
|
|
self.assertTrue(abs(sum(self.acmod.mixw[0,0]) - 1.0) < 0.01)
|
|
self.assertTrue(abs(self.acmod.var[0][0][0][0] - 0.2583) < 0.01)
|
|
self.assertTrue(abs(self.acmod.var[35][0][0][38] - 16.9266) < 0.01)
|
|
|
|
def test_compute(self):
|
|
mfcc = s2mfc.open(os.path.join(self.testdir, 'man.ah.111a.mfc')).getall()
|
|
mfcc -= mfcc.mean(0)
|
|
feat = _1s_c_d_dd.compute(mfcc)
|
|
senones = [0, 69, 135, 525]
|
|
expected = [3.03518949e-36, 1.00000000e+00, 4.47046728e-16, 1.07179724e-01]
|
|
senscr = self.acmod.senone_compute(senones, feat[0])
|
|
for i,s in enumerate(senones):
|
|
self.assertTrue(abs(senscr[s] - expected[i]) < 0.01)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|