Speech Recognition Engines

Nested
Julius. HMM lexicon treeSegmentation fault error
User: nagi
Date: 6/11/2007 3:20 am
Views: 9257
Rating: 29
Hi folks?

I tried to create an acoustic modell with HTK and wanted to test it on Julius.
Here is my jconf file ( rest is same with the sample jconf file in the How to document of the Voxforge site )
-h ../phone_m/hmmtied  # copied from hmm15 folder
-hlist ../phone_m/tiedlist
-v ../lang_m/dict
-forcedict

And here is the output from julius:

...
...
z-eh+n
z-eh+sp
z-er+sp
z-i:+k
z-i:+sp
z-j+o:
z-l+er
z-o:+sp
z-y:+d
z-y:+s
z-y:+t
//////////////////////
errors are ignored
1028 words...done
Reading in word n-gram...1-gram.....2-gram.......3-gram..indexing...done
Mapping dictonary words to n-gram entries...done
Building HMM lexicon treeSegmentation fault: 11 (core dumped)

Does anybody know what is wrong with my Acoustic modell ?
What does "treeSegmentation fault" error mean ?
if I try  -h option with the "hmmdefs" file which is created in "hmm12" folder (triphone) julius gives me following error:

-------------------------------
Reading in HMM definition...(ascii)...Warning: initial state has more than one arc
Warning: more than one arc to end state
Warning: HMM "sp" has unsupported arc.
SERIOUS WARNING: Transition arc has been modified as below
SERIOUS WARNING: This may cause unintended recognition result
0.000000e+00 0.000000e+00 1.000000e+00
0.000000e+00 9.999999e-01 0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00
limit check passed
defined HMMs: 2668
Error: HMMList: line 2: physical HMM "C" not found
....
....
Error: HMMList: line 2631: physical HMM "Y" not found
Error: HMMList: line 2661: physical HMM "er" not found
HMMList "../phone_m/tiedlist" read error
Terminated
-----------------------

How can i fix these "arc" errors and physical HMM "XX" not found errors ?

If you need, I can give you more detailed information of my training steps and outputs.
Any suggestion would be appreciated.

Thanks in advance.
Nagi

--- (Edited on 6/11/2007 3:20 am [GMT-0500] by nagi) ---

Re: Julius. HMM lexicon treeSegmentation fault error
User: kmaclean
Date: 6/11/2007 1:38 pm
Views: 288
Rating: 25

Hi Nagi, 

1. "hmmdefs" file created in "hmm12"

>Warning: more than one arc to end state
>Warning: HMM "sp" has unsupported arc.

I got the same error when running the Julian ... you would likely need to recompile Julius with the configure option "--enable-multipath" - see Ticket #2 for an explanation.

>Error: HMMList: line 2: physical HMM "C" not found
>....
>....
>Error: HMMList: line 2631: physical HMM "Y" not found
>Error: HMMList: line 2661: physical HMM "er" not found
>HMMList "../phone_m/tiedlist" read error

You should use the "triphones1" file you created in step 10.  Your "tiedlist" file was created in step 11 and contains mappings from logical triphones (the "unseen" triphones) to the physical triphones.  I don't think you can use it with the Acoustic Models you created in step 10.  You may also need to copy the contents of your monophones1 from Step 2 to the triphones1 file for this to work.

2. "hmmdefs" file created in "hmm15"

>Does anybody know what is wrong with my Acoustic modell ?

Is the phoneme list in your pronunciation dictionary the same as what is in your hmmdefs file?
are you using 2-gram and reverse 3-gram language model?  See this post for more information.

Hope this helps,

Ken 



--- (Edited on 6/11/2007 2:38 pm [GMT-0400] by kmaclean) ---

Re: Julius. HMM lexicon treeSegmentation fault error
User: nagi
Date: 6/13/2007 6:14 am
Views: 324
Rating: 22
Thank you Ken. I am making progress :)

I reinstalled Julius with --enable-multipath option. And I have removed some phonemes in the tree.hed file which are not in monophones1 file. Then I've retrained
and there are no "Error: HMMList: line 2631: physical HMM "XX" not found" and no "treeSegmentation fault" errors anymore :)

Now Julius complains following error by triphone and tiedstate mode:

Reading in word n-gram...1-gram.....2-gram.......3-gram..indexing...done
Mapping dictonary words to n-gram entries...done
Building HMM lexicon tree
*** ERROR: WORD SKIPPING TRANSITION NOT ALLOWED ***
Word id=1027 (ZWOELF[ZWOELF]) has "word skipping transition".
All HMMs in the word:
has transitions from initial state to final state.
This type of word skipping is not supported.
Terminated

Could you tell me what I did wrong ?

Any suggestion will be great appreciated

Nagi

--- (Edited on 6/13/2007 6:14 am [GMT-0500] by nagi) ---

Re: Julius. HMM lexicon treeSegmentation fault error
User: kmaclean
Date: 6/13/2007 9:01 am
Views: 352
Rating: 26

Hi Nagi,

What is in your pronunciation dictionary for the word "ZWOELF" - what is the list of phonemes for this word? ... is there a spelling mistake in the phonemes for this word and the only phone for this word is 'sp' or 'sil'? 

From LEE Akinobu (in Ticket # 2):

Please note that, even with the "multi-path version", Julius does not allow a definition of a word in which all phone HMM have such "whole model-skip transition", because it requires word-level skipping and hard to handle at decoding process. For example, if you have "sp" model with model-skipping transition, you can attach or insert the sp model to any position of other words in the dictionary, but you can not define a word with only the "sp" model. In such case, Julius/Julian outputs error.

Ken 

 

--- (Edited on 6/13/2007 10:01 am [GMT-0400] by kmaclean) ---

Re: Julius. HMM lexicon treeSegmentation fault error
User: Visitor
Date: 6/14/2007 3:08 am
Views: 311
Rating: 30
Hi Ken,

You are right, I forgot to remove all 'sp's at the end of the entry in the dictionary :)
Julius works fine.  Thank you very much for all your help. 
Now i want to play with the configuration of the julius.

What is the same configuration for the penalty option in julius which is in HVite -p -40.0 ?  ( with tiedstate modell)
Is this -lmp option in Julius ? If so, is it also possible to use this option with tiedstate modell? Because in the configuration file exists only for the monophone and triphone.

Thanks in advance

Nagi

--- (Edited on 6/14/2007 3:08 am [GMT-0500] by Visitor) ---

Re: Julius. HMM lexicon treeSegmentation fault error
User: kmaclean
Date: 6/14/2007 9:19 am
Views: 3409
Rating: 14

Hi Nagi,

Glad you got Julius to work!

 

With respect to HTK's word insertion penalties (-p) and grammar scale factor (-s), the HTK book says the following:

The word insertion penalty is a ?xed value added to each token when it transits from the end of one word to the start of the next.
The grammar scale factor is the amount by which the language model probability is scaled before being added to each token as it transits from the end of one word to the start of the next.

Julian uses the following parameters (these parameters are not available in Julius):

       -penalty1 :Word insertion penalty for the first pass. (default: 0.0) 
       -penalty2  : Word insertion penalty for the second pass. (default: 0.0) 

Julius uses the following (these parameters are not available in Julian):

-lmp   lm_weight      lm_penalty
-lmp2   lm_weight2      lm_penalty2

Language model score weights and word  insertion  penalties  for  the first and second passes respectively. 

I have not used the Julius language model penalties.  Most of my experience is with Julian, and I determined the proper word insertion penalties after a lot of experimentation.  I created a test set and ran the the acoustic model against the test set until I got optimal results.

Julius and Julian also have the -iwsppenalty parameter (only seems to be documented in the config file):

## For insertion of context-free short-term inter-word pauses between words
## (multi-path version only)
##
-iwsp # append a skippable sp model at all word ends
-iwsppenalty -70.0 # transition penalty for the appended sp models

I have not played with the Julian -penalty1, -penalty2, -iwsppenalty parameters very much, but it seems like if I add new audio to an Acoustic Model, these parameters must be tweaked to get the best recognition results.

Ken 

--- (Edited on 6/14/2007 10:19 am [GMT-0400] by kmaclean) ---

PreviousNext