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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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.
It Works for me, thanks a lot!