Question

I am trying to setup VoxForge 0.4 English acoustic model - as described in https://stackoverflow.com/a/8699337/519995 (but adapted to Raw configuration and not XML). When I switched to VoxForge my error rate went up to 100% !

I get results that do not resemble the input sounds at all.

I guess I configured something wrong, but I can't figure out what.

Below are the modifications I made (starting from RawHelloNGram.java demo).

When VOX_FORGE is false everything works decently, when it is true everything fails to recognize.

this.modelLoader = new Sphinx3Loader(
            VOX_FORGE ? 
                  "file:"+PROJECT_DIR+"/voxforge-en-0.4/model_parameters/voxforge_en_sphinx.cd_cont_5000"
                : "resource:/WSJ_8gau_13dCep_16k_40mel_130Hz_6800Hz",
            "mdef",
            "",
            logMath,
            unitManager,
            0.0f,
            1e-7f,
            0.0001f,
            true);

    this.model = new TiedStateAcousticModel(modelLoader, unitManager, true);


// changed parameters of mel-Filter
 this.melFilterBank = new MelFrequencyFilterBank(
        VOX_FORGE ? 200.0  : 130.0,     // minFreq,
        VOX_FORGE ? 3500.0 : 6800.0,    // maxFreq,
        VOX_FORGE ? 31     : 40         // numberFilters
    );

 if (VOX_FORGE) {
    this.featureTransform = new FeatureTransform(
                modelLoader
    );
 }

...
... later at the end of the pipeline setup
if (VOX_FORGE) {
    pipeline.add(featureTransform);
}

For completeness - this is the entire configuration I'm using: https://gist.github.com/Iftahh/7336283

Was it helpful?

Solution

Voxforge uses standard mel filterbank parameters (see feat.params).

-nfilt 40
-lowerf 133.333334
-upperf 6855.4976

There is no need to set melfilterbank to 200/3500/31

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top