Acoustic Model Discussions

Flat
RunAll.pl says that dictionary doesn't fit phone list
User: johnyjj2
Date: 12/6/2009 9:57 am
Views: 12742
Rating: 5

Hello!

I spent some time on creating 3rd party application for Skype in order to prepare communication between Skype and Sphinx4.

Now I'd like to create my own acoustic model. I follow the steps mentioned here but it causes some errors at the end.

1. I create files pl1.dic, pl1.filler, pl1.phone, pl1_test.fileids, pl1_test.transcription, pl1_train.fileids, pl1_train.transcription in Gedit. Both test and train transcriptions are the same.
2. I create wav files with Audacity in Windows XP. I choose "file format -> export uncompressed data: WAV (Microsoft 32 bit float)", "standard frequency: 96000 Hz", "quality -> standard resolution: 32-bit float" and leave default in "spectrograms -> FFT size: 256 - default". I convert those with "sox johny01.wav johny01.sph".
3. I enter tutorial/an4 directory. I type
perl scripts_pl/copy_setup.pl -task pl1
It looks like there were no errors.
4. I enter tutorial/pl1/wav. I delete everything in this directory. Only empty an4_clstk and an4test_clstk directories are left. I change their names to pl1_clstk and pl1test_clstk. I copy files from johny01.sph to johny10.sph to both directories so that the same files are in those.
5. I enter tutorial/pl1/etc directory. I create directory old and replace pl1.dic, pl1.filler, pl1.phone, pl1_test.fileids, pl1_test.transcription, pl1_train.fileids, pl1_train.transcription with those created in first step. The only files left unchanged are feat.params, pl1.ug.lm, pl1.ug.lm.DMP, sphinx_decode.cfg, sphinx_train.cfg. I leave sphinx_train.cfg unchanged. Do I need to change anything in sphinx_train.cfg due to my configuration of audio recording in Audacity?
6. I enter http://www.speech.cs.cmu.edu/tools/lmtool.html and put pl1_train.transcription. I click "compile knowledge base" and download TAR3428.tar.gz file created by this site. I enter tutorial/pl1/etc directory and unpack this file. It creates me TAR3428 directory. I enter it and see 3428.corpus, 3428.dic, 3428.lm, 3428.sent, 3428.sent.arpabo, 3428.token, 3428.vocab files. I change name of 3428.lm to pl1.lm. I copy it to tutorial/pl1/etc directory. I don't know what to do with those other files in TAR3428 directory. What should I do with pl1.ug.lm and pl1.ug.lm.DMP files?.
7. I run Terminal, enter tutorial/pl1 directory and type
perl scripts_pl/make_feats.pl -ctl etc/pl1_train.fileids
It calculates some things connected with sph files. It looks like everything is OK.
8. I run "perl scripts_pl/RunAll.pl". It causes many errors. I copied all of those to the file "errors". The examples are as follows:

WARNING: This phone (A) occurs in the dictionary (/home/mainaccount/tutorial/pl1/etc/pl1.dic), but not in the phonelist (/home/mainaccount/tutorial/pl1/etc/pl1.phone)
) occurs in the phonelist (/home/mainaccount/tutorial/pl1/etc/pl1.phone), but not in the dictionary (/home/mainaccount/tutorial/pl1/etc/pl1.dic)
) occurs in the phonelist (/home/mainaccount/tutorial/pl1/etc/pl1.phone), but not in any word in the transcription (/home/mainaccount/tutorial/pl1/etc/pl1_train.transcription)
Something failed: (/home/mainaccount/tutorial/pl1/scripts_pl/00.verify/verify_all.pl)

So I check the files etc/pl1.dic, pl1.phone, pl1_train.transcription. In file pl1.dic I've got e.g. "DWA                  D W A". In pl1.phone I've got many sounds, e.g. A. In pl1_train.transcription I've got e.g. "DWA SIEDEM PIEC ZERO OSIEM PIEC ZERO TRZY NIE TAK (johny08)". So it looks like the above errors shouldn't happen.

How to get rid of those errors? I include etc directory and errors.txt file here: http://rapidshare.com/files/317134391/etc.tar.bz2.html . The same, but also contains sph audio files: http://rapidshare.com/files/317218832/pl1.tar.bz2.html .

Greetings!

--- (Edited on 12/6/2009 7:54 pm [GMT-0600] by johnyjj2) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: nsh
Date: 12/6/2009 8:42 pm
Views: 118
Rating: 3

> Both test and train transcriptions are the same.

It's better to have different sets

> "standard frequency: 96000 Hz", "quality -> standard resolution: 32-bit float"


The requency should be 16 khz, the quality 16 bit. Audio should be mono.

> I convert those with "sox johny01.wav johny01.sph".


There is no need to do that

> perl scripts_pl/copy_setup.pl -task pl1

You should run perl /scripts_pl/setup_SphinxTrain -task pl1 instead

> Do I need to change anything in sphinx_train.cfg due to my configuration of audio recording in Audacity?

You need to change $CFG_WAVFILE_EXTENSION = 'sph'; to 'wav' and $CFG_WAVFILE_EXTENSION = 'sph'; to 'mswav' also you need to change $CFG_N_TIED_STATES = 1000; to 200

> enter http://www.speech.cs.cmu.edu/tools/lmtool.html and put pl1_train.transcription

That was mistake, you need to put text file there, not transcription file. You can upload any text with words. Make sure it has no braces like transcription file or any other special markup.

> I don't know what to do with those other files in TAR3428 directory.

Delete them?

> What should I do with pl1.ug.lm and pl1.ug.lm.DMP files?


Delete them.


> I run "perl scripts_pl/RunAll.pl". It causes many errors. How to get rid of those errors?

Remove windows-style carriage returns from phone file, from fileids, dictionary and transcription. Those files should have only unix-style linefeeds. In transcription file each transcription should start with <s> and end with </s>

 

--- (Edited on 12/7/2009 05:42 [GMT+0300] by nsh) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: johnyjj2
Date: 12/7/2009 1:20 pm
Views: 163
Rating: 5

Thank you very much!

I recorded again, this time with other settings and transcriptions for ordinary recordings and test. I also edited sphinx_train.cfg and left sphinx_decode.cfg unchanged. I assume these settings are correct: http://images43.fotosik.pl/235/4d2dd7a109cdc576.jpg http://images50.fotosik.pl/236/b553baa4b501239b.jpg http://images43.fotosik.pl/235/b16afc135ea651bf.jpg http://images47.fotosik.pl/235/7bfabdd6557ca184.jpg http://images41.fotosik.pl/231/304fb1cfb90e3f45.jpg

I use Ubuntu 9.10. I run "perl scripts_pl/setup_SphinxTrain.pl -task pl1" in directory tutorial/an4 and it says:
[CODE]
mainaccount@mainaccount-laptop:~/tutorial/an4$ perl scripts_pl/setup_SphinxTrain.pl -task pl1
Current directory not empty.
Will leave existing files as they are, and copy non-existing files.
Making basic directory structure
Couldn't find executables. Did you compile SphinxTrain?
[/CODE]

So I decided to enter tutorial/SphinxTrain and type "./configure", then "make". Everything went all right.
I also typed in tutorial/an4: 1. perl scripts_pl/make_feats.pl -ctl etc/an4_train.fileids, 2. perl script_pl/RunAll.pl, 3. perl scripts_pl/make_feats.pl -ctl etc/an4_train.fileids, 4. perl scripts_pl/decode/slave.pl. First three worked correctly. The fourth one caused an error:
[CODE]
mainaccount@mainaccount-laptop:~/tutorial/an4$ perl scripts_pl/decode/slave.pl
MODULE: DECODE Decoding using models previously trained
        Decoding 130 segments starting at 0 (part 1 of 1)
        0% FATAL_ERROR: "utt.c", line 238: Cannot read file an4test_clstk/fcaw/an406-fcaw-b. Forced exit

This step had 8 ERROR messages and 2 WARNING messages.  Please check the log file for details.
Failed to start /home/mainaccount/tutorial/an4/bin/sphinx3_decode
        Aligning results to find error rate
word_align.pl failed with error code 65280 at scripts_pl/decode/slave.pl line 173.
[/CODE]

Then I repeated "perl scripts_pl/setup_SphinxTrain.pl -task pl1" in directory tutorial/an4 and there was the same error.

What exactly shoud I put to the file which I need to upload for lmtool? Can it be any text in my language or just any text? Does it have to contain only those words which I've got in my pl1.dic? Does it require characters like ',', '.', ';', '?', '!' and both upper and lower-case letters, like in ordinary text? If it can be ANY text, what is the purpose of this lmtool?

You say "remove windows-style carriage returns from phone file, from fileids, dictionary and transcription". That's weird because I don't create those file in Windows, but in Ubuntu 9.10. I also tried previously not just copying my files, but later simply editing the content of files copied from an4 because I was sure those have already got proper characters encoding, style of carriage returns and so on. I thought I've got the proper carriage returns (as far as I remember it is one special character for Linux and two different special characters for Windows). How can I check if I use proper carriage returns? Should I leave empty lines at the end of files or rather not? Why did it say previoulsy that I've got some unnecessary spacebars at the end of the lines if I didn't have? Do I need to add those <s> and </s> in both pl1_test.transcription and pl1_train.transcription? In an4 those are contained only in train file, not in test file.

Greetings!

PS Later I will be trying to create application in Sphinx4 such that at the beginning the application would choose who the actual user is. Because my language is not supported (yet) in VoxForge, I cannot have hundreads recording and create speaker-independent system. So I need to ask each end user to give me his recordings so that I can create speaker-dependent system. I thought it can be done in such a way that my Sphinx4 application would be choosing who the actual user is at the beginning of main() function, just after choosing microphone and so on. Later somebody suggested me to read this http://cmusphinx.sourceforge.net/sphinx4/doc/ProgrammersGuide.html and it looks like I need to specify those acoustic models in xml files. I guess I simply need to replace all "TIDIGITS_8gau_13dCep_16k_40mel_130Hz_6800Hz" with "pl1". Where should I copy my files (after running make_feats.pl, RunAll.pl, make_feats.pl, slave.pl, which didn't succeed yet because of errors mentioned above)?

Do I need to create different models for different speakers, e.g. pl1, pl2 and so on or just to have all of speakers in one model? How should I specify in the xml file that I'd like to use more than one acoustic model or that there are more different speakers for whom I want to optimize speech recognition? How to switch between them in .java code of my application? I don't see those things explained in this Application Programmer's Guide.

--- (Edited on 12/7/2009 1:20 pm [GMT-0600] by johnyjj2) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: johnyjj2
Date: 12/8/2009 6:25 pm
Views: 105
Rating: 5

May I have your answer, please?

I did what you suggested to, including changing text files from Windows-style to Linux-style (I mean the way how enter is encoded) by typing "tr -d \r <dos_file >new_file". Again there was a problem with RunAll.pl with error about dictionary not fitting the phone list what is not the case as I explained. I upload my actual work here: http://rapidshare.com/files/318225302/pl1-etc-wav-html.tar.bz2.html . The answer to this question about RunAll.pl is the most important to me. The problem is in Phase 7: TRANSCRIPT, probably with closing brackets ')' because it says ") occurs in the phonelist, but not in any word in the transcription", in script 00.verify/verify_all.pl.

The other way of copying an4 to pl1 didn't succeed because of improper configuration of SphinxTrain. So I did configure and make in SphinxTrain directory and executed setup_SphinxTrain.pl again but it didn't help, as explained in above post.

The other issues are explained in above post, including input for lmtool and using speaker-dependent acoustic models.

Greetings!

--- (Edited on 12/8/2009 6:25 pm [GMT-0600] by johnyjj2) ---

--- (Edited on 12/8/2009 6:34 pm [GMT-0600] by johnyjj2) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: nsh
Date: 12/8/2009 7:03 pm
Views: 104
Rating: 4

Your files still have Windows-style carriage returns. You could check that yourself without asking me.


You can download cleaned version here:

http://www.mediafire.com/download.php?nkmj5wzajjg

--- (Edited on 12/9/2009 04:03 [GMT+0300] by nsh) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: johnyjj2
Date: 12/8/2009 8:40 pm
Views: 75
Rating: 5

Thank you!!!

I know your time is precious but may I have your attention once more?

mainaccount@mainaccount-laptop:~$ cd tutorial
mainaccount@mainaccount-laptop:~/tutorial$ cd an4
mainaccount@mainaccount-laptop:~/tutorial/an4$ perl
scripts_pl/setup_SphinxTrain.pl -task pl2
Current directory not empty.
Will leave existing files as they are, and copy non-existing files.
Making basic directory structure
Couldn't find executables. Did you compile SphinxTrain?
mainaccount@mainaccount-laptop:~/tutorial/an4$ cd ../SphinxTrain
mainaccount@mainaccount-laptop:~/tutorial/SphinxTrain$ ./configure

checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for ranlib... ranlib
checking for ar... ar
checking whether byte ordering is bigendian... no
checking for log in -lm... yes
checking for d_log in -lg2c... no
checking for dgemm_ in -lblas... no
checking for dgesv_ in -llapack... no
checking for perl5... no
checking for perl... /usr/bin/perl
checking for festival... /usr/bin/festival
configure: creating ./config.status
config.status: creating config/config
config.status: creating config/system.mak
config.status: creating scripts_pl/sphinxDocGen.sh
mainaccount@mainaccount-laptop:~/tutorial/SphinxTrain$ make
making in . ...
make[1]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/include'
making in include ...
make[1]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/include'
make[1]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src'
making in src ...
make[2]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs'
making in src/libs ...
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libcep_feat'
making in src/libs/libcep_feat ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libcep_feat'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libcommon'
making in src/libs/libcommon ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libcommon'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libmllr'
making in src/libs/libmllr ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libmllr'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libclust'
making in src/libs/libclust ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libclust'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libio'
making in src/libs/libio ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libio'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libmodinv'
making in src/libs/libmodinv ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libmodinv'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libs2io'
making in src/libs/libs2io ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/libs2io'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/liblapack_lite'
making in src/libs/liblapack_lite ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs/liblapack_lite'
make[2]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/libs'
make[2]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs'
making in src/programs ...
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/agg_seg'
making in src/programs/agg_seg ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/agg_seg'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/bldtree'
making in src/programs/bldtree ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/bldtree'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/bw'
making in src/programs/bw ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/bw'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/cdcn_train'
making in src/programs/cdcn_train ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/cdcn_train'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/cdcn_norm'
making in src/programs/cdcn_norm ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/cdcn_norm'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/cp_parm'
making in src/programs/cp_parm ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/cp_parm'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/delint'
making in src/programs/delint ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/delint'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/dict2tri'
making in src/programs/dict2tri ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/dict2tri'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/inc_comp'
making in src/programs/inc_comp ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/inc_comp'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/init_gau'
making in src/programs/init_gau ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/init_gau'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/init_mixw'
making in src/programs/init_mixw ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/init_mixw'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/kdtree'
making in src/programs/kdtree ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/kdtree'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/kmeans_init'
making in src/programs/kmeans_init ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/kmeans_init'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/make_quests'
making in src/programs/make_quests ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/make_quests'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/map_adapt'
making in src/programs/map_adapt ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/map_adapt'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mixw_interp'
making in src/programs/mixw_interp ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mixw_interp'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_flat'
making in src/programs/mk_flat ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_flat'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_mdef_gen'
making in src/programs/mk_mdef_gen ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_mdef_gen'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_mllr_class'
making in src/programs/mk_mllr_class ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_mllr_class'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2cb'
making in src/programs/mk_s2cb ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2cb'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2hmm'
making in src/programs/mk_s2hmm ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2hmm'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2sendump'
making in src/programs/mk_s2sendump ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2sendump'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2phone'
making in src/programs/mk_s2phone ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2phone'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2phonemap'
making in src/programs/mk_s2phonemap ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s2phonemap'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s3gau'
making in src/programs/mk_s3gau ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s3gau'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s3mixw'
making in src/programs/mk_s3mixw ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s3mixw'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s3tmat'
making in src/programs/mk_s3tmat ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_s3tmat'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_ts2cb'
making in src/programs/mk_ts2cb ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mk_ts2cb'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mllr_transform'
making in src/programs/mllr_transform ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mllr_transform'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/norm'
making in src/programs/norm ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/norm'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mllr_solve'
making in src/programs/mllr_solve ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/mllr_solve'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/param_cnt'
making in src/programs/param_cnt ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/param_cnt'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/printp'
making in src/programs/printp ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/printp'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/prunetree'
making in src/programs/prunetree ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/prunetree'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/tiestate'
making in src/programs/tiestate ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/tiestate'
make[3]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/wave2feat'
making in src/programs/wave2feat ...
make[3]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs/wave2feat'
make[2]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src/programs'
make[1]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/src'
make[1]: Entering directory `/home/mainaccount/tutorial/SphinxTrain/python'
making in python ...
python setup.py build
running build
running build_py
make[1]: Leaving directory `/home/mainaccount/tutorial/SphinxTrain/python'
mainaccount@mainaccount-laptop:~/tutorial/SphinxTrain$ cd ../an4
mainaccount@mainaccount-laptop:~/tutorial/an4$ perl scripts_pl/setup_SphinxTrain.pl -task pl2

Current directory not empty.
Will leave existing files as they are, and copy non-existing files.
Making basic directory structure
Couldn't find executables. Did you compile SphinxTrain?
mainaccount@mainaccount-laptop:~/tutorial/an4$

Regards!

--- (Edited on 12/8/2009 8:40 pm [GMT-0600] by johnyjj2) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: nsh
Date: 12/9/2009 2:34 am
Views: 93
Rating: 4

> mainaccount@mainaccount-laptop:~/tutorial$ cd an4
> mainaccount@mainaccount-laptop:~/tutorial/an4$ perl
> scripts_pl/setup_SphinxTrain.pl -task pl2
> Current directory not empty.
> Will leave existing files as they are, and copy non-existing files.
> Making basic directory structure
> Couldn't find executables. Did you compile SphinxTrain?

1. setup_SphinxTrain sets the required files in a new empty folder, it precisely tells you that folder needs to be empty.


2. You must run the script from SphinxTrain, I have no idea where did you get this script in an4/scripts_pl/setup_SphinxTrain.

The proper sequence of commands would be


cd SphinxTrain

make

cd ..

mkdir pl2

cd pl2

../SphinxTrain/scripts_pl/setup_SphinxTrain.pl -task pl2

Don't forget ".." in the last command.

--- (Edited on 12/9/2009 11:34 [GMT+0300] by nsh) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: johnyjj2
Date: 12/9/2009 12:35 pm
Views: 128
Rating: 5

Thank you!

I follow these commands:

cd tutorial
cd SphinxTrain
make
cd ..
mkdir pl1
cd pl1
../SphinxTrain/scripts_pl/setup_SphinxTrain.pl -task pl1
rm -r wav
rm -r etc
cp /home/mainaccount/Desktop/final2-pl1.tar.bz2 /home/mainaccount/tutorial/pl1
tar -xvjf final2-pl1.tar.bz2
cd etc
cat -v pl1.dic
cat -v sphinx_train.cfg
cd ..
perl scripts_pl/make_feats.pl -ctl etc/pl1_train.fileids
perl scripts_pl/RunAll.pl
perl scripts_pl/make_feats.pl -ctl etc/pl1_train.fileids
perl scripts_pl/decode/slave.pl

And it fails at the last step:

MODULE: DECODE Decoding using models previously trained
Can't open perl script "/home/mainaccount/tutorial/pl1/scripts_pl/decode/s3decode.pl": No such file or directory
        Aligning results to find error rate
Can't open file /home/mainaccount/tutorial/pl1/result/pl1.match


Those files are not present in decode and result directories, respectively. Those commands which I followed didn't create them.

I use the files which you uploaded (with little change for test transcription and with usage of my directories in config file): http://www.speedyshare.com/files/19706337/final2-pl1.tar.bz2 .

Regards!

--- (Edited on 12/9/2009 12:35 pm [GMT-0600] by johnyjj2) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: johnyjj2
Date: 12/10/2009 6:56 am
Views: 63
Rating: 4

I deleted pl1 directory and followed the same steps again to ensure that I didn't make any mistake previously. I also compared my files with those which you uploaded and I don't see any mistakes. What do I miss or did improperly that I don't have those files required in last step?

Greetings!

--- (Edited on 12/10/2009 6:56 am [GMT-0600] by johnyjj2) ---

Re: RunAll.pl says that dictionary doesn't fit phone list
User: johnyjj2
Date: 12/10/2009 2:36 pm
Views: 326
Rating: 4

Why doesn't slave.pl create files in /home/mainaccount/tutorial/an4/feat/an4test_clstk ? Can simply running perl scripts_pl/make_feats.pl -ctl etc/an4_test.fileids be solution to the problem? If yes, why wasn't it mentioned in the tutorial? Do I need those other things which I did, mentioned as (b) and (c)?

I deleted directory tutorial and followed the whole thing again. I installed SphinxBase, SphinxTrain, Sphinx3 and Sphinx4. I run those four commands [1] perl scripts_pl/make_feats.pl -ctl etc/an4_train.fileids, [2] perl scripts_pl/RunAll.pl, [3] as in first, [4] perl scripts_pl/decode/slave.pl and there is error with the fourth one:

mainaccount@mainaccount-laptop:~/tutorial/an4$ perl scripts_pl/decode/slave.pl
MODULE: DECODE Decoding using models previously trained
        Decoding 130 segments starting at 0 (part 1 of 1)
        0% FATAL_ERROR: "utt.c", line 238: Cannot read file an4test_clstk/fcaw/an406-fcaw-b. Forced exit

This step had 8 ERROR messages and 2 WARNING messages.  Please check the log file for details.
Failed to start /home/mainaccount/tutorial/an4/bin/sphinx3_decode
        Aligning results to find error rate
word_align.pl failed with error code 65280 at scripts_pl/decode/slave.pl line 173.

I looked at log:

INFO: utt.c(196): Processing: an406-fcaw-b
INFO: feat.c(1148): At directory /home/mainaccount/tutorial/an4/feat
INFO: feat.c(378): Reading mfc file: '/home/mainaccount/tutorial/an4/feat/an4test_clstk/fcaw/an406-fcaw-b.mfc'[0..-1]
SYSTEM_ERROR: "pio.c", line 428: stat(/home/mainaccount/tutorial/an4/feat/an4test_clstk/fcaw/an406-fcaw-b.mfc) failed; retrying...
; No such file or directory
ERROR: "feat.c", line 387: stat_retry/fopen(/home/mainaccount/tutorial/an4/feat/an4test_clstk/fcaw/an406-fcaw-b.mfc) failed
FATAL_ERROR: "utt.c", line 238: Cannot read file an4test_clstk/fcaw/an406-fcaw-b. Forced exit
Thu Dec 10 20:05:45 2009

From those two it looks like there are files in /home/mainaccount/tutorial/an4/feat/an4_clstk but there are no in /home/mainaccount/tutorial/an4/feat/an4test_clstk.

I found this topic: http://www.voxforge.org/home/forums/message-boards/speech-recognition-engines/sphinxtrain-error-with-slave.pl?pn=1 and tried the following:
[a.] sphinx3/scripts/setup_sphinx3.pl -> it doesn't do anything because it requires some parameters
[b.] sudo gedit /etc/ld.so.conf -> I added line "include /usr/local/lib" -> sudo ldconfig
[c.] cp /home/mainaccount/tutorial/an4/etc/an4.ug.lm.DMP /home/mainaccount/tutorial/an4/etc/an4.lm.DMP
I also thought this may help:
[d.] mainaccount@mainaccount-laptop:~/tutorial/an4$ perl scripts_pl/make_feats.pl -ctl etc/an4_test.fileids

I execute those four lines [1]-[4] again and there is very similar error:

mainaccount@mainaccount-laptop:~/tutorial/an4$ perl scripts_pl/decode/slave.plMODULE: DECODE Decoding using models previously trained
        Decoding 130 segments starting at 0 (part 1 of 1)
        0%
This step had 6 ERROR messages and 2 WARNING messages.  Please check the log file for details.
        Aligning results to find error rate
        SENTENCE ERROR: 56.2% (73/130)   WORD ERROR RATE: 17.3% (134/773)
mainaccount@mainaccount-laptop:~/tutorial/an4$

What should I do?

--- (Edited on 12/10/2009 2:36 pm [GMT-0600] by johnyjj2) ---

--- (Edited on 12/11/2009 6:06 am [GMT-0600] by johnyjj2) ---

PreviousNext