|
|
#include "volcanop.h"
#include "res.h"
#include "brknet.h"
// Segmentation stuff
BBOX_PROB_TABLE *g_pProbTable;
// Default language model code
UNIGRAM_INFO g_unigramInfo; BIGRAM_INFO g_bigramInfo; CLASS_BIGRAM_INFO g_classBigramInfo; TTUNE_INFO g_ttuneInfo; wchar_t g_pLocale[16]; wchar_t g_pLocaleDir[1024]; wchar_t g_pRecogDir[1024];
VOLCANO_PARAMS_INFO g_vtuneInfo; VOLCANO_CONFIG g_volcanoConfig; CENTIPEDE_INFO g_centipedeInfo;
BOOL LoadSegmNetFromResource (HINSTANCE hInst, int nResID, int nType); BOOL LoadCharDetFromResource (HINSTANCE hInst, int nResID, int nType);
// Load up everything for the lattice search
// Loads the following databases: unigrams, bigrams, class bigrams, tuning, centipede, free input
BOOL LatticeConfig(HINSTANCE hInstanceDll) { BOOL fError = FALSE;
LatticeConfigInit();
// Tuning parameters (can probably be removed for the non-insurance version)
if (!fError && !TTuneLoadRes( &g_ttuneInfo, hInstanceDll, RESID_TTUNE, VOLCANO_RES )) { fError = TRUE; ASSERT(("Error in TTuneLoadRes", FALSE)); }
if (!fError && !VTuneLoadRes(&g_vtuneInfo, hInstanceDll, RESID_VTUNE, VOLCANO_RES)) { fError = TRUE; ASSERT(("Error in VTuneLoadRes", FALSE)); }
// Load unigrams
if (!fError && !UnigramLoadRes( &g_locRunInfo, &g_unigramInfo, hInstanceDll, RESID_UNIGRAM, VOLCANO_RES )) { fError = TRUE; ASSERT(("Error in UnigramLoadRes", FALSE)); }
// Load bigrams only if we're in WinCE
# if !defined(WINCE) && !defined(FAKE_WINCE)
if (!fError && !BigramLoadRes( &g_locRunInfo, &g_bigramInfo, hInstanceDll, RESID_BIGRAM, VOLCANO_RES )) { fError = TRUE; ASSERT(("Error in BigramLoadRes", FALSE)); } # endif
// Load class bigrams
if (!fError && !ClassBigramLoadRes( &g_locRunInfo, &g_classBigramInfo, hInstanceDll, RESID_CLASS_BIGRAM, VOLCANO_RES )) { fError = TRUE; ASSERT(("Error in ClassBigramLoadRes", FALSE)); }
// Load up centipede
if (!fError) { if (!CentipedeLoadRes(&g_centipedeInfo, hInstanceDll, RESID_CENTIPEDE, VOLCANO_RES, &g_locRunInfo)) { fError = TRUE; ASSERT(("Error in CentipedeLoadRes", FALSE)); } }
// Load the bbox prob table for pre-segmentation
if (!fError) { g_pProbTable = LoadBBoxProbTableRes( hInstanceDll, RESID_BBOX_PROBS, VOLCANO_RES ); // Failure to load here is not an error, we just won't support free input.
}
// Try to load up IIMLanguage
#ifdef USE_IFELANG3
// LatticeConfigIFELang3();
#endif
// Don't bother trying to load other free input databases if the basic
// one is not available.
if (g_pProbTable != NULL) { // try to load the break net
if (LoadBrkNetFromResource (hInstanceDll, RESID_BRKNET, VOLCANO_RES)) { // load the segmnet, optional
if (!LoadSegmNetFromResource (hInstanceDll, RESID_SEGMNET, VOLCANO_RES)) { // fError = TRUE;
// ASSERT(("Error in LoadSegmNetFromResource", FALSE));
}
// load the char detector, not optional
if (!LoadCharDetFromResource (hInstanceDll, RESID_CHARDET, VOLCANO_RES)) { fError = TRUE; ASSERT(("Error in LoadCharDetFromResource", FALSE)); } } }
// Did everything load correctly?
if (fError) { return FALSE; }
return TRUE; }
// Unload those things that can be unloaded
BOOL LatticeUnconfig() { return TRUE; }
|