VoxForge
Hi all, First of all, thanks you very much for allinfo that Voxforge give to the community. I have an error in Julius v4.0 but I don't know what's the matter :
Error: voca_load_wordlist: line 1: phone "silB" not found
Error: voca_load_wordlist: line 1: phone "silE" not found
I'm using julius as an isolated word recognizer. I used to use Julian with this command :
julian -input mic -h all_words_23_hmmsdef.mmf -v all_words_23.dict -dfa all_words_23.dfa -rejectshort 150 -output 4 -progout -1pass -headmargin 50 -tailmargin 50
Now I use the option in Julius 4.0 that allow isolated word recognition :
/julius-4.0 -input mic -h all_words_23_hmmsdef.mmf -w all_words_23.dict -rejectshort 150 [....]
I tried to add silB and silE in my dictionnary, but julius still complains. Does anyone have an idea or could tell a place to find the info? Thks a lot for your help. Bruno.
--- (Edited on 1/14/2008 11:06 am [GMT-0600] by brunal2496) ---
--- (Edited on 1/14/2008 10:21 pm [GMT-0500] by brunal2496) ---
I suppose that complain means that silB is missing in .mmf file. The solution to this problem is not to add silB in the dictionary but to remove them from a dictionary and from grammar file.
--- (Edited on 1/14/2008 1:17 pm [GMT-0600] by nsh) ---
Hi
I vaguely remember getting this error when I was first starting out with HTK/Julius ... The Julius 3.2 manual (check the 4.0 manual to make sure this still applies) says this:
Word Dictionary
-v dictionary_file
Word dictionary file (required).
-silhead {WORD|WORD[OUTSYM]|#num}
-siltail {WORD|WORD[OUTSYM]|#num}
Sentence start and end silence word as defined in the
dictio-
nary. (default: "<s>" / "</s>")
Julius deal these words as fixed start-word and
end-word of
recognition. They can be defined in several
formats as shown
below.
Example
Word_name
<s>
Word_name[output_symbol] <s>[silB]
#Word_ID
#14
(Word_ID is the word position in the dictionary
file starting from 0)
Therefore your problem might be related to the default silence start and end words in Julius - maybe change it to"silB" and "SilE".
Please let us know if this fixes it.
thanks,
Ken
--- (Edited on 1/14/2008 3:28 pm [GMT-0500] by kmaclean) ---
--- (Edited on 1/15/2008 9:11 am [GMT-0600] by brunal2496) ---
The fatc is that my hmm is not phoneme based but word based : I learnt the models on a labelled corpus, each label for each word (close to the yes/no tutorial). As all words where pronounciated one after and other with a pause of 2sec between, there is idea of begin and end silence. So the only one model that I have for silence is a model named "sil". So when I specify the silhead and siltail option, I get :
WARNING: m_chkparam: "-silhead" only for N-gram, ignored WARNING: m_chkparam: "-siltail" only for N-gram, ignored
Next I treid with the -wsil option, like this : -wsil sil sil sp I also added the wordSIL sil
to my dictionnary in the first line (julius was complaining about :Error: voca_load_wordlist: line 1: phone "silB" not found
Error: voca_load_wordlist: line 1: phone "silE" not found
Error: voca_load_wordlist: the line content was: 0 [ACTIVATION] activation
) Even if I don't have a sp model, Julius now doesn't complain and launch. But the result is that recognition doesn't work, giving me a constant "input processed, but no survived word". I'm a bit confused and now I don't what else to try....
--- (Edited on 1/15/2008 9:41 am [GMT-0600] by brunal2496) ---
--- (Edited on 1/15/2008 9:42 am [GMT-0600] by brunal2496) ---
Why do you want to use Julius for isolated words? HVite should be enough. Btw, does it work fine for you?
Can you just share your data files - mmf, dfa and dictionary. except silB there could be a lot of problems, say it feature extraction and so on. Try to decode mfc files you were training on to test recognition.
--- (Edited on 1/15/2008 10:39 am [GMT-0600] by nsh) ---
--- (Edited on 1/15/2008 11:21 am [GMT-0600] by brunal2496) ---
--- (Edited on 1/15/2008 11:23 am [GMT-0600] by brunal2496) ---
Hi brunal2496,
OK, let's backup a step to make sure I understand what is going on here ...
Your errors were as follows:
Error: voca_load_wordlist: line 1: phone "silB" not found
Error: voca_load_wordlist: line 1: phone "silE" not found
These were in Julius v4.0, using a grammar file (not a language model). You've compiled a *word* based acoustic model using HTK. You've defined a silence hmm and called it "sil".
Then, as part of your grammar file (which is actually two files in Julius/Julian) you created a ".voca" file that looks something like this (see Step 1 - Task Grammar in the tutorial):
% NS_B
silB sil
% NS_E
silE sil
% DIAL_V
DIAL dial
% DIGIT
FIVE five
FOUR four
NINE nine
EIGHT eight
ONE one
SEVEN seven
SIX six
THREE three
TWO two
ZERO zerow
And then created a ".grammar" file that looks something like this:
S : NS_B SENTENCE NS_E
SENTENCE: DIAL_V DIGIT
And then compiled your grammar with mkdfa.pl
From Step 1 in the tutorial:
... "S" is the initial sentence symbol. NS_B and NS_E correspond to the silence that occurs just before the utterance you want to recognize and after. "S", "NS_B" and "NS_E" are required in all Julian grammars.
Since you've replaced <s> and </s> (the julius defaults) with "silB" and "silE" in your voca file, then I think you need to use the -silhead and -siltail parameters to tell Julius what you silence models are.
Ken
--- (Edited on 1/15/2008 12:50 pm [GMT-0500] by kmaclean) ---