I am fairly new to SPHINX (II) and am trying to 'upgrade' the turtle dictionary to the modified CMU dictionary version. The 'normalization' process (splitting TS, removing stress info etc) seems to be working well. Needless to say, the dictionary is some 120K words long; as a result, the check below in the lm_3g.c gives a premature exit at the runtime:
Commenting this check out leads to a GPF during the dictionary load.
Could someone share their experience / suggestion on how to bypass this minor problem? Thank you in advance.
PS I am actually interested in a 'word-spotting' SPHINX-2 based application - recognize (a few) familiar words in the utterance (telephone call recording). My intent is to train hmms on the NTIMIT data or the like (I wonder if that has ever/already been done, so I didn't have to re-invent the wheel?).
Thanks, Serge
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2001-12-04
Sorry, I forgot to mention that my environment is win32.
Serge
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Indeed, you probably gessed it by reading the error message: Sphinx II does not accept more than 65k words. The idea is not to activate all the possible words at a time, but more to make an application-specific vocabulary, and language model, that you can create with the online tools.
I am interrested in a word sptotter too. Have you got ideas?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2002-02-15
Sergei,
I also commented out the restriction on the number of words. I found that the system will crash in the following function
static void
cache_bptable_paths (int32 bp)
in the file search.c under libsphinx2. The crash is due to having an index = -1, and trying to access an array with that index. It is in the following piece of code of that functions:
In this block of code, prev_bp is being set to the value of BPTable[prev_bp].bp. Unfortunately, prev_bp is being used as index in the BPTable, and prev_bp is -1. This will make your system crash. I don't know the correct fix to this function although I have tried a few to no avail. If there is someone who can tell me what the correct solution may be, it will be greatly appreciated.
Thanks,
Jaime
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am fairly new to SPHINX (II) and am trying to 'upgrade' the turtle dictionary to the modified CMU dictionary version. The 'normalization' process (splitting TS, removing stress info etc) seems to be working well. Needless to say, the dictionary is some 120K words long; as a result, the check below in the lm_3g.c gives a premature exit at the runtime:
if (dict_size >= 65535)
QUIT((stderr, "%s(%d): #dict-words(%d) > 65534 \n", __FILE__, __LINE__, dict_size));
Commenting this check out leads to a GPF during the dictionary load.
Could someone share their experience / suggestion on how to bypass this minor problem? Thank you in advance.
PS I am actually interested in a 'word-spotting' SPHINX-2 based application - recognize (a few) familiar words in the utterance (telephone call recording). My intent is to train hmms on the NTIMIT data or the like (I wonder if that has ever/already been done, so I didn't have to re-invent the wheel?).
Thanks, Serge
Sorry, I forgot to mention that my environment is win32.
Serge
Indeed, you probably gessed it by reading the error message: Sphinx II does not accept more than 65k words. The idea is not to activate all the possible words at a time, but more to make an application-specific vocabulary, and language model, that you can create with the online tools.
I am interrested in a word sptotter too. Have you got ideas?
Sergei,
I also commented out the restriction on the number of words. I found that the system will crash in the following function
static void
cache_bptable_paths (int32 bp)
in the file search.c under libsphinx2. The crash is due to having an index = -1, and trying to access an array with that index. It is in the following piece of code of that functions:
if (use_3g_in_fwd_pass) {
prev_bp = BPTable[prev_bp].bp;
bpe->prev_real_fwid = (prev_bp != NO_BP) ? BPTable[prev_bp].real_fwid : -1;
} ....
In this block of code, prev_bp is being set to the value of BPTable[prev_bp].bp. Unfortunately, prev_bp is being used as index in the BPTable, and prev_bp is -1. This will make your system crash. I don't know the correct fix to this function although I have tried a few to no avail. If there is someone who can tell me what the correct solution may be, it will be greatly appreciated.
Thanks,
Jaime