Closed abuccts closed 6 years ago
Good approach is to checkout latest sphinx3 from subversion and build, it should work.
Feel free to help to port sphinx3_align to pocketsphinx.
I downloaded sphinx3 (v3.7) from subversion and follow the README file. However, on the "make" step, it always fails.
lextree.c: In function ‘fillertree_init’: lextree.c:285:71: error: macro "E_DEBUG" passed 3 arguments, but takes just 2 dict_wordstr(dict, i), fillpen(kbc->fillpen, i)); ^ lextree.c:284:13: error: ‘E_DEBUG’ undeclared (first use in this function) E_DEBUG("Filler word %s prob %d\n", ^ lextree.c:284:13: note: each undeclared identifier is reported only once for each function it appears in lextree.c: In function ‘lextree_build’: lextree.c:461:54: error: macro "E_DEBUG" passed 4 arguments, but takes just 2 dict_wordstr(dict, wid), wid, prob); ^ lextree.c:460:9: error: ‘E_DEBUG’ undeclared (first use in this function) E_DEBUG("%s wid %d prob %d\n", ^ lextree.c: In function ‘lextree_utt_end’: lextree.c:938:13: warning: variable ‘mdef’ set but not used [-Wunused-but-set-variable] mdef_t *mdef; ^ lextree.c: In function ‘lextree_enter’: lextree.c:1142:77: error: macro "E_DEBUG" passed 5 arguments, but takes just 2 inscore, ln->prob, thresh, hmm_in_score(&ln->hmm)); ^ lextree.c:1141:17: error: ‘E_DEBUG’ undeclared (first use in this function) E_DEBUG("entering non-leaf root node with %d + %d >= (thresh %d score %d)\n", ^ lextree.c:1104:13: warning: variable ‘tmat’ set but not used [-Wunused-but-set-variable] tmat_t *tmat; ^ lextree.c:1102:17: warning: variable ‘n_st’ set but not used [-Wunused-but-set-variable] int32 n_ci, n_st, n_rc; ^ lextree.c:1102:11: warning: variable ‘n_ci’ set but not used [-Wunused-but-set-variable] int32 n_ci, n_st, n_rc; ^ lextree.c: In function ‘lextree_hmm_eval’: lextree.c:1260:17: warning: variable ‘d2p’ set but not used [-Wunused-but-set-variable] dict2pid_t *d2p; ^ lextree.c:1256:24: warning: variable ‘n_st’ set but not used [-Wunused-but-set-variable] int32 best, wbest, n_st; ^ lextree.c: In function ‘lextree_hmm_propagate_non_leaves’: lextree.c:1406:33: error: macro "E_DEBUG" passed 5 arguments, but takes just 2 cf, th, pth, wth); ^ lextree.c:1405:5: error: ‘E_DEBUG’ undeclared (first use in this function) E_DEBUG("lextree_hmm_propagate_non_leaves: cf %d th %d pth %d wth %d\n", ^ lextree.c:1413:72: error: macro "E_DEBUG" passed 3 arguments, but takes just 2 E_DEBUG("Looking at node %d of %d\n", i, lextree->n_alloc_node); ^ lextree.c:1418:78: error: macro "E_DEBUG" passed 5 arguments, but takes just 2 ln->wid, dict_wordstr(dict, ln->wid), ln->rc, ln->ssid); ^ lextree.c:1426:79: error: macro "E_DEBUG" passed 3 arguments, but takes just 2 E_DEBUG("Activating (%d >= %d)\n", hmm_bestscore(&ln->hmm), th); ^ lextree.c:1431:80: error: macro "E_DEBUG" passed 3 arguments, but takes just 2 E_DEBUG("Deactivating (%d < %d)\n", hmm_bestscore(&ln->hmm), th); ^ lextree.c:1441:77: error: macro "E_DEBUG" passed 3 arguments, but takes just 2 E_DEBUG("Propagating (%d >= %d)\n", hmm_out_score(&ln->hmm), pth); ^ lextree.c:1480:86: error: macro "E_DEBUG" passed 5 arguments, but takes just 2 hmm_out_score(&ln->hmm), ln2->prob, ln->prob, newscore); ^ lextree.c:1494:61: error: macro "E_DEBUG" requires 2 arguments, but only 1 given E_DEBUG(" entering this node\n"); ^ lextree.c:1520:43: error: macro "E_DEBUG" passed 6 arguments, but takes just 2 ln2->children); ^ lextree.c:1383:17: warning: variable ‘n_st’ set but not used [-Wunused-but-set-variable] int32 n_ci, n_st, n_rc; ^ lextree.c:1383:11: warning: variable ‘n_ci’ set but not used [-Wunused-but-set-variable] int32 n_ci, n_st, n_rc; ^ lextree.c:1375:13: warning: variable ‘tmat’ set but not used [-Wunused-but-set-variable] tmat_t *tmat; ^ lextree.c: In function ‘lextree_hmm_propagate_leaves’: lextree.c:1613:68: error: macro "E_DEBUG" passed 3 arguments, but takes just 2 E_DEBUG("lextree_hmm_propagate_leaves: cf %d wth %d\n", cf, wth); ^ lextree.c:1613:5: error: ‘E_DEBUG’ undeclared (first use in this function) E_DEBUG("lextree_hmm_propagate_leaves: cf %d wth %d\n", cf, wth); ^ lextree.c:1634:58: error: macro "E_DEBUG" passed 3 arguments, but takes just 2 hmm_out_score(&ln->hmm) - ln->prob); ^ Makefile:449: recipe for target 'lextree.lo' failed make[3]: *** [lextree.lo] Error 1 make[3]: Leaving directory '/home/pi/sphinx3/src/libs3decoder/libsearch' Makefile:476: recipe for target 'all-recursive' failed make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory '/home/pi/sphinx3/src/libs3decoder' Makefile:361: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/pi/sphinx3/src' Makefile:499: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
@danielhyt2 you need sphinxbase from subversion or from github too
Hi nshmyrev,
Thank you for your reply. Actually before installing sphinx3, I've installed sphinxbase, pocketsphinx and sphinxtrain version 5prealpha. I've also successfully run sphinxtrain.
The reason I install sphinx3 is for the $CFG_FORCEDALIGN feature in sphinx_train.cfg. I've tried this sphinx3 on 3 different machines (EC2, RPi, Windows 10 Ubuntu). All were failed.
I even have tried to install on version sphinxbase 0.8 and still get the same error. Anyway, I'll try your advice to install sphinxbase from svn.
Hi nshmyrev,
Installing from svn did the trick, despite getting another error. Thank you anyway!
I was getting the same error " Skipped: No sphinx3_align(.exe) found in /usr/local/libexec/sphinxtrain " After reading this thread I downloaded and installed sphinxbase and sphinx3 and then copied sphinx3_align file to the required directory i.e. " /usr/local/libexec/sphinxtrain " But still I am getting the same error i.e. " Skipped: No sphinx3_align(.exe) found in /usr/local/libexec/sphinxtrain " How can I solve this problem? I want force alignment!!!
I had not given permission of executable to sphinx3_align file , thats why it was giving the same error! I solved this! But now I got this error and force alignment is failed:
Can you tell me why I am getting this error?
Phase 5: Running force alignment in 1 parts Force alignment starting: (1 of 1) 0% Failed in part 1 MODULE: 12 Force-aligning data for VTLN Skipped: $ST::CFG_VTLN set to 'no' in sphinx_train.cfg MODULE: 20 Training Context Independent models Phase 1: Cleaning up directories: accumulator...logs...qmanager...models... Phase 2: Copy initialize from falign model Phase 3: Forward-Backward Baum welch starting for 1 Gaussian(s), iteration: 1 (1 of 1) 0% ERROR: This step had 1 ERROR messages and 0 WARNING messages. Please check the log file for details. ERROR: Training failed in iteration 1
sphinx3_align
is used for force aligning in scripts/11.force_align/force_align.pl, scripts/11.force_align/slave_align.pl, etc. Butsphinx3_align
itself is not available insphinxtrain
aftersphinx3
, and there doesn't exist any good approach to get it (Building old versionsphinx3
with old versionsphinxbase
meets many other problems).Any good ideas to solve this problem? And I think stating it clearly in wiki/tutorialam will be better.