HTK HSGen [+8250] error?

463 views Asked by At

I want to use the HTK toolbox for digit recognition. so I downloaded it and read the instruction about how to use it! But when I want to use the HSGen I encounter with this error:

ERROR [+8250] ReadLattice: 23 Arcs unseen and 15 Nodes unseen
ERROR [+3410] GenSentences: ReadLattice failed
FATAL ERROR - Terminating program HSGen

So the steps I did is as follows:

make a grammer, my file content is exactly as it is stored in a file named gram:

    $digit = ONE|TWO|THREE|FOUR|FIVE|SIX|SEVEN|EIGHT|NINE|ZERO;

    (SENT-START ($digit) SENT-END)

Using HParse command to make a network for this grammar, its content is(stored in a file named wdnet) :

I=0 W=!NULL
I=1 W=!NULL
I=10 W=SEVEN
I=11 W=EIGHT
I=12 W=NINE
I=13 W=ZERO
I=14 W=SENT-END
I=2 W=SENT-START
I=3 W=ONE
I=4 W=!NULL
I=5 W=TWO
I=6 W=THREE
I=7 W=FOUR
I=8 W=FIVE
I=9 W=SIX
J=0 S=14 E=1
J=1 S=0 E=2
J=10 S=11 E=4
J=11 S=12 E=4
J=12 S=13 E=4
J=13 S=2 E=5
J=14 S=2 E=6
J=15 S=2 E=7
J=16 S=2 E=8
J=17 S=2 E=9
J=18 S=2 E=10
J=19 S=2 E=11
J=2 S=2 E=3
J=20 S=2 E=12
J=21 S=2 E=13
J=22 S=4 E=14
J=3 S=3 E=4
J=4 S=5 E=4
J=5 S=6 E=4
J=6 S=7 E=4
J=7 S=8 E=4
J=8 S=9 E=4
J=9 S=10 E=4
N=15 L=23
VERSION=1.0

I have a word list file named as wlist2, its content is:

    EIGHT
    FIVE
    FOUR
    NINE
    ONE
    SENT-END
    SENT-START
    SEVEN
    SIX
    THREE
    TWO
    ZERO

I use the HDMan command to build the dictionary file:

    HDMan -m -w wlist2 -n monophones -l dlog2 dict2 mbeep2

which mbeep2 is my dictionary that contains the pronounciations for each word in my wlist2. the ouput file is created in the file named dict2.

When using HSGen with this command:

    HSGen -l -n 200 wdnet dict2 > testprompets

I got this error:

ERROR [+8250] ReadLattice: 23 Arcs unseen and 15 Nodes unseen
ERROR [+3410] GenSentences: ReadLattice failed
FATAL ERROR - Terminating program HSGen

I search the error number but coudln't find a related solution! Can anyone help?

Thanks.

2

There are 2 answers

0
Nikolay Shmyrev On

Not sure what happened with your wdnet file, but it somehow has lines in reverse order and it also misses few lines. You probably need to repeat the HParse command:

 HParse gram wdnet

The result should look like this:

VERSION=1.0
N=15   L=23   
I=0    W=!NULL               
I=1    W=!NULL               
I=2    W=SENT-START          
I=3    W=ONE                 
I=4    W=!NULL               
I=5    W=TWO                 
I=6    W=THREE               
I=7    W=FOUR                
I=8    W=FIVE                
I=9    W=SIX                 
I=10   W=SEVEN               
I=11   W=EIGHT               
I=12   W=NINE                
I=13   W=ZERO                
I=14   W=SENT-END            
J=0     S=14   E=1    
J=1     S=0    E=2    
J=2     S=2    E=3    
J=3     S=3    E=4    
J=4     S=5    E=4    
J=5     S=6    E=4    
J=6     S=7    E=4    
J=7     S=8    E=4    
J=8     S=9    E=4    
J=9     S=10   E=4    
J=10    S=11   E=4    
J=11    S=12   E=4    
J=12    S=13   E=4    
J=13    S=2    E=5    
J=14    S=2    E=6    
J=15    S=2    E=7    
J=16    S=2    E=8    
J=17    S=2    E=9    
J=18    S=2    E=10   
J=19    S=2    E=11   
J=20    S=2    E=12   
J=21    S=2    E=13   
J=22    S=4    E=14  
0
Mehdi Souregi On

The variable I and J in your wdnet should put in order