Menu

PocketSphinx on Palm Treo v500

Help
2007-12-17
2012-09-22
  • Arnau Alemany

    Arnau Alemany - 2007-12-17

    Hello all,

    I want to use PocketSphinx on a Palm Treo v500. I've tried RM1 audio base and my own grammar:

    REPEAT
    BACK
    REST
    END
    

    I also tried communicator audio base and the grammar: YES, NO.

    On Win32 and Linux is working great but when i compile PocketSphinx for ARMV4 (Pocket PC 2003) or ARMV4I (Windows Mobile 5) with Visual Studio 2005, the program runs the same way as in the Desktop version but it becomes useless since it keeps listening but results are not accurated at all.

    I've tried stable version (PocketSphinx 4.1 + SphinBase 3.0) and SVN version last days ago. To compile i used FIXED_POINT preprocessor directive

    I've tried different command-line args but more or less are these:

    -live yes 
    -fwdflat no 
    -bestpath no
    -lm /meivox/model/lm/comm/comm.lm
    -dict /meivox/model/lm/comm/comm.dic
    -hmm /meivox/model/hmm/comm.cd_semi_6000
    -samprate 8000
    -nfft 256
    

    At this point i don't know what i'm doing wrong: command-args, audio base, mobile phone, compile config, etc.

    Could you please help?

    Thank you,
    Arnau

     
    • Arnau Alemany

      Arnau Alemany - 2007-12-30

      Hello Nickolay,

      Thank you for the response, but before checking if mdef is loaded properly I would want to try a simple configuration that just works.

      With same command-args as above, i tried the tidigits hmm and lm models which come with pocketsphinx stable and I get no errors while loading mdef nor the language model but recognizing is so bad.

      The program (I use tty_continuous) runs well but it's almost impossible to get a word recognized, when you say ONE it recognizes SIX EIGHT or nothing. Also, it's very sensible to environment. If you make a sound or there is people talking near you, it keeps recognizing every time.

      I also tried different devices such as HTC Touch or Orange SPV M600, but after recognizing 3 or 4 words it keeps listening for a while and then i get the following error:

      1275: six six
      READY....
      INFO: ......\src\libpocketsphinx\uttproc.c(849): Batchmode
      Listening...
      ERROR: "......\src\libpocketsphinx\uttproc.c", line 961: Utterance too long; truncating to about 6000 frames

      I presume this is because the device has less memory, is there a way to fix this from the command line?
      Is there a way to limit the listening time?

      If possible, I would like to know of any device you have tested on and is known to work well with pocketsphinx and Windows Mobile?

      Thank you.

      Best regards,
      Arnau Alemany

       
    • Arnau Alemany

      Arnau Alemany - 2007-12-18

      Update:

      Output between Win32 and armv4 are a little different.

      In armv4 version appear various messages like this:

      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: AE(B,K)
      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: UH(B,K)
      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: AH(JH,M)
      Alternate transcription for [NEWS(2)](wid = 4)
      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: P(IX,IY)
      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: IY(P,T)
      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: IY(R,P)
      Alternate transcription for [REPEAT(2)](wid = 6)
      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: EH(R,S)
      INFO: ..\..\pocketsphinx\src\libpocketsphinx\dict.c(997): Missing triphone: K(S,IH)
      

      I suppose that's the reason why PocketSphinx is not able to recognize those words.

      Does this give any clue? Any idea how to avoid those messages?

      Thank you,
      Arnau

       
      • Nickolay V. Shmyrev

        Hm, probably it fails to parse mdef file properly and we have a bug somewhere in mdef packing code. Anyhow, this needs additional debugging. For example you can remove #if 0 in bin_mdef.c and check how model definition is loaded.

         
    • Arnau Alemany

      Arnau Alemany - 2007-12-21

      I followed your suggestion and removed #if 0 in bin_mdef.c and appear a lot of debug messages but no error.

      Anyway i tested the comm.cd_semi_6000 hmm and a little grammar with YES, NO words and it seems there are no "Missing triphone" errors but when i say YES or NO it's very difficult to get them recognized.

      When i pick up the mobile, it starts listening but most of the time recognizes SIL or YES instead of NO or nothing.

      It's something with the phone? Or maybe the sampling rate? If i can i will try with different devices.

      Could you tell me an example configuration that it works for this mobile or a different one with Windows Mobile 6.

      Thank you very much,
      Arnau

       
      • Nickolay V. Shmyrev

        If the warning still exists it's for sure the reason of bad recognition rate. Our though is that binary mdef file doesn't load properly. David for example noticed that attribute packed in mdef_bin.h is only used in GNU environment and can cause troubles. So first of all you should check/debug that mdef file is loaded properly. Probably there are other issues with binary files.

        You can also try to load mdef file from text, you have to convert it to text form first.

         

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.