Menu

FATAL_ERROR when running 'pocketsphinx_continuous' on WAV file

Help
2013-05-07
2013-05-09
  • haojin yang

    haojin yang - 2013-05-07

    Hallo,
    I have tried to run 'pocketsphinx_continuous' program on a wav file with the duration of 4 mins 16 secs by using -infile und -time settings, then I've got this error message:
    FATAL_ERROR: "acmod.c", line 409: Decoder can not process more than 32767 frames at once, requested 32768
    on a smaller file with just around 1 min I have successfully got the recognition results.
    can anybody help me to figure out this problem? Thanks a lot in advance!!
    BR
    Ian

     
  • Pranav Jawale

    Pranav Jawale - 2013-05-08

    This message appears because of below code in
    pocketsphinx/src/libpocketsphinx/hmm.h

    /*
    * Type for frame index values. Used in HMM indexes and
    * backpointers and affects memory required. Make it int32 to be able to
    * process longer utterances. Due to limitations of FSG search implementation
    * this value needs to be signed.
    /
    typedef int16 frame_idx_t;

    /*
    * Maximum number of frames in index, should be in sync with above.
    /

    define MAX_N_FRAMES MAX_INT16

    MAX_INT16 is defined in sphinxbase/include/sphinxbase/prim_type.h as

    define MAX_INT16 ((int16) 0x00007fff)

    So at a framerate of 100 fps, you can have an audio of length 327.67 seconds ~ 5 minutes. I'm puzzled why even though your audio is ~ 4 minutes, it is throwing error. Anyway, in order to fix it you can do as below.

    Change following lines in pocketsphinx/src/libpocketsphinx/hmm.h

    define MAX_N_FRAMES MAX_INT32

    typedef int32 frame_idx_t;

    and recompile pocketsphinx.

    This means you can process 2^31-1 frames. At framerate of 100 fps, that amounts to several HOURS. There could be some side effects of doing this. But you can give it a try.

     
  • haojin yang

    haojin yang - 2013-05-09

    It Works for me, thanks a lot!

     

Log in to post a comment.