Menu

Simple Setup (-ncep 20)

Help
Sherwood
2012-02-03
2012-09-22
  • Sherwood

    Sherwood - 2012-02-03

    Hi there,

    I'm new to this, and I've started deviating from the basic example. I'd like
    to have a system based on MFCC with a total of 31 filters (to keep 20 after
    the Discrete Cosine Transformation).

    I've changed the feat.param file to have -ncep 20.
    I've also the config file to $CFG_VECTOR_LENGTH = 20;.

    My features seem to have extracted fine with a length of 20, and I was able to
    train the system.

    Testing it however I get this error.
    FATAL_ERROR: "kbcore.c", line 640: Feature streamlen(39) != mgau streamlen(60)

    Now this is likely due to my CFG_VECTOR_LENGTH being 20 I think. as normally
    it would be 13x3=39 (MFCCs and deltas). Now my question is should I have left
    $CFG_VECTOR_LENGTH = 13; and why was it able to train with it set improperly?

    Note: I've found a similar thread, but wasn't certain I was reading into it
    properly.
    https://sourceforge.net/projects/cmusphinx/forums/forum/5471/topic/4728868

    Thanks,
    Nathan.

     
  • Sherwood

    Sherwood - 2012-02-03

    Also I should mention if I switch back to $CFG_VECTOR_LENGTH = 13;

    I can no longer train getting:
    FATAL_ERROR: "........\src\libs\libio\corpus.c", line 1658: Expected mfcc
    vector len of 13

     
  • Nickolay V. Shmyrev

    Hello Nathan

    You need to understand that ncep configures number of cepstrum floats in
    output. Vector length is number of features in trainer input. Ideally they
    should match.

    Testing it however I get this error.
    FATAL_ERROR: "kbcore.c", line 640: Feature streamlen(39) != mgau streamlen(60)

    This is because test script doesn't respect CFG_VECTOR_LENGHT configuration
    variable. You need to modify the script s3decode.pl to fix the problem.

     
  • Sherwood

    Sherwood - 2012-02-04

    Hi Nickolay,

    Thanks for the reply.

    So if vector length is the number of inputs for training, then I was right to
    set it to 20? So it doesn't have so much to do with MFCCs.

    I'll look into modifying s3decode.pl

     
  • Nickolay V. Shmyrev

    So if vector length is the number of inputs for training, then I was right
    to set it to 20? So it doesn't have so much to do with MFCCs.

    If you modified ncep in MFCC you also need to change vector length too.

    I'm not sure about the value of 20 in particular, it depends on what do you
    want to archive.

     
  • Sherwood

    Sherwood - 2012-02-15

    For anyone looking to do this aswell. It's a very simple change to get this to
    work.

    Simply add these two lines after:
    my $rv = RunTool('sphinx3_decode', $logfile, $ctlcount,
    -senmgau => $statepdeffn,
    -hmm => $hmm_dir,

    add:
    -ncep => $ST::DEC_CFG_VECTOR_LENGTH
    -ceplen => $ST::DEC_CFG_VECTOR_LENGTH

    Now this does get the decoding going, but I'm running into another issue:
    $CFG_FEAT_TYPE = "MFCC_19_0";


    Process started on: 14/02/2012 at: 15:42:32.56

    MODULE: DECODE Decoding using models previously trained
    Decoding 8700 segments starting at 0 (part 1 of 1)
    0%
    This step had 1 ERROR messages and 0 WARNING messages. Please check the log
    fil
    e for details.
    Aligning results to find error rate
    word_align.pl failed with error code 65280 at scripts_pl/decode/slave.pl line
    17
    2.

    I think it has something to do with the .ug.lm.DMP file but I don't really
    understand how the file gets generated. I've simply copied one out of an
    existing project. Could anyone give me some information on it or point me in
    the right direction?

    Thanks.

     
  • Sherwood

    Sherwood - 2012-02-15

    Here's an example result before it crashes:
    *** one TWO (AH-12A)
    ONE one ONE (AH-111A)
    Words: 2 Correct: 1 Errors: 2 Percent correct = 50.00% Error = 100.00%
    Accuracy = 0.00%
    Insertions: 1 Deletions: 0 Substitutions: 1

    Where a normal result would look like this:
    one one one (AH-111A)
    one one one (AH-111A)
    Words: 3 Correct: 3 Errors: 0 Percent correct = 100.00% Error = 0.00% Accuracy
    = 100.00%

    Any idea what can cause the first result to grab two different tags?

     
  • Sherwood

    Sherwood - 2012-02-15

    Oh how I wish I could edit posts. My transcription file doesn't line up. I'll
    be fixing that.

     
  • Nickolay V. Shmyrev

    Great it's resolved

     

Log in to post a comment.