Menu

Error while adapting acoustic model

Help
2015-07-12
2015-07-15
  • Gonzalo Raúl Olave Wolff

    Hello everyone, I adapted the cmusphinx-en-us-5.2 model for speech recognition in a very noisy enviroment according to http://cmusphinx.sourceforge.net/wiki/tutorialadapt. I test the adapted model using

    pocketsphinx_continuous -inmic yes -adcdev plughw:1 -fsg grammar/test.fsg -dict grammar/test.dic -jsgf grammar/test.jsgf -hmm en-us-adapts

    which works very well. For my application I'm using gst-pocketsphinx plugin, and when I run a test code using

    self.asr.set_property('hmm','en-us-adapt')

    I got this output:

    INFO: acmod.c(82): Parsed model-specific feature parameters from /home/gonzalo/asr/acustic_models/en-us-adapt/feat.params
    INFO: mdef.c(520): Reading model definition: /home/gonzalo/asr/acustic_models/en-us-adapt/mdef
    INFO: mdef.c(531): Found byte-order mark BMDF, assuming this is a binary mdef file
    INFO: bin_mdef.c(301): Reading binary model definition: /home/gonzalo/asr/acustic_models/en-us-adapt/mdef
    INFO: bin_mdef.c(480): 42 CI-phone, 137053 CD-phone, 3 emitstate/phone, 126 CI-sen, 5126 Sen, 29324 Sen-Seq
    INFO: tmat.c(204): Reading HMM transition probability matrices: /home/gonzalo/asr/acustic_models/en-us-adapt/transition_matrices
    INFO: acmod.c(114): Attempting to use SCGMM computation module
    INFO: s2_semi_mgau.c(981): Reading S3 mixture gaussian file '/home/gonzalo/asr/acustic_models/en-us-adapt/means'
    ERROR: "s2_semi_mgau.c", line 1011: /home/gonzalo/asr/acustic_models/en-us-adapt/means: #codebooks (42) != 1
    INFO: acmod.c(127): Falling back to general multi-stream GMM computation
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /home/gonzalo/asr/acustic_models/en-us-adapt/means
    INFO: ms_gauden.c(292): 42 codebook, 3 feature, size
    INFO: ms_gauden.c(198): Reading mixture gaussian parameter: /home/gonzalo/asr/acustic_models/en-us-adapt/variances
    INFO: ms_gauden.c(292): 42 codebook, 3 feature, size
    INFO: ms_gauden.c(354): 222 variance values floored
    INFO: ms_senone.c(157): Reading senone mixture weights: /home/gonzalo/asr/acustic_models/en-us-adapt/mixture_weights
    INFO: ms_senone.c(208): Truncating senone logs3(pdf) values by 10 bits
    INFO: ms_senone.c(272): Read mixture weights for 5126 senones: 3 features x 128 codewords
    FATAL_ERROR: "ms_mgau.c", line 108: Senones need more codebooks (5126) than present (42)

    What can be wrong in my test? I don't know very well how the gst-pocketsphinx plugin works.

    I tried pocketsphinx_continuous with '-remove_noise yes' which also works very well (using en-us model), but this parameter is not implemented in the gstpocketsphinx plugin I am using.

    I used only 10 phrases in the adaptation corpus (only for testing, I will use a lot more for the final application).

    Thank you in advance for your responses.

     
    • Nickolay V. Shmyrev

      I adapted the cmusphinx-en-us-5.2 model for speech recognition in a very noisy enviroment according to

      Looks like you adapted en-us-ptm model, not en-us model. Inaccurate description of your actions makes it harder to answer your question

      ERROR: "s2_semi_mgau.c", line 1011: /home/gonzalo/asr/acustic_models/en-us-adapt/means: #codebooks (42) != 1

      Looks like you are using very outdated pocketsphinx. It is recommended to use the latest version 5prealpha. It is helpful to provide the version you are using, incomplete information makes it also very hard to answer your question.

       
      • Gonzalo Raúl Olave Wolff

        Thank you Nickolay for the quick response and sorry for my uncomplete question.
        I actually was using an old version of pocketsphinx.
        First of all I would like to know if compiling and making 'sudo make install' is all that I need to install pocketsphinx-5prealpha? Do I have to remove the old binary files first?.
        Second, I also downloaded sphinxbase and sphinxtrain in the 5prealpha version. Do I need to install the new version of gst-pocketsphinx to make my application work or its not necesary to do that?. I think if pocketsphinx change also gst-pocketsphinx do.

        I updated sphinxbase, sphinxtrain and pockesphinx to the 5prealpha version and I'm still get the same output.

        And for the first question: Yes, I am adapting cmusphinx-en-us-ptm-5.2 model. I don't know the diferences betwen all this models.

        What can I do now, If you can give me a clue or any guidance I will be very gratefull.

         

        Last edit: Gonzalo Raúl Olave Wolff 2015-07-15
        • Nickolay V. Shmyrev

          First of all I would like to know if compiling and making 'sudo make install' is all that I need to install pocketsphinx-5prealpha?

          Yes

          Do I have to remove the old binary files first?.

          Yes

          Do I need to install the new version of gst-pocketsphinx to make my application work or its not necesary to do that?. I think if pocketsphinx change also gst-pocketsphinx do.

          Pocketsphinx installs gst plugin if it finds gstreamer development headers during configuration. You do not need an old plugin. Modern pocketsphinx requires gstreamer-1.0 between.

          What can I do now, If you can give me a clue or any guidance I will be very gratefull.

          If you install all software properly it should work.

           

Log in to post a comment.