cmusphinx - Why is pocketsphinx returning a null hypothesis via java with kws? Works via commandline, not via code -


i've been working pocketsphinx in java. i've pieced various sources.

trying keyword detection via pocketsphinx.

as stated works via command line:

pocketsphinx_continuous -inmic  yes -kws keyphrase.list 

where keyphrase.list file contains:\

abomination /le-20/ 

i hit every time.

here java code:

( i've tried le-1 through le-40 )

import javax.sound.sampled.audioformat; import javax.sound.sampled.audiosystem; import javax.sound.sampled.dataline; import javax.sound.sampled.targetdataline; import java.io.bytearrayoutputstream; import java.io.ioexception; import java.nio.bytebuffer; import java.nio.byteorder; import java.util.arrays;  import edu.cmu.pocketsphinx.decoder; import edu.cmu.pocketsphinx.config; import edu.cmu.pocketsphinx.hypothesis;  public class controller {     static {         system.loadlibrary("pocketsphinx_jni");     }      private static bytearrayoutputstream out;      public static void main(string args[]) {          audioformat format = new audioformat(44100, 16, 1, true, true);         targetdataline targetline = null;         dataline.info targetinfo = new dataline.info(targetdataline.class, format);         boolean running = true;           try {              targetline = audiosystem.gettargetdataline(format);             targetline.open();             out = new bytearrayoutputstream();             int numbytesread;             byte[] data = new byte[targetline.getbuffersize() / 5];               config c = decoder.defaultconfig();             c.setstring("-hmm", "/usr/local/share/pocketsphinx/model/en-us/en-us/");             //c.setstring("-lm", "/usr/local/share/pocketsphinx/model/en-us/en-us.lm.bin");             c.setstring("-dict", "/usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict");             c.setstring("-keyphrase", "abomination");             c.setfloat("-kws_threshold", 1e-1);              decoder d = new decoder(c);             d.setrawdatasize(300000);              targetline.start();             system.out.println("recorder started");              byte[] b = new byte[4096];              d.startutt();              system.out.println("decoder started");              while ((running)) {                 int nbytes;                 short[] s = null;                 nbytes = targetline.read(b,0,b.length);                  bytebuffer bb = bytebuffer.wrap(b, 0, nbytes);                 s = new short[nbytes/2];                  bb.asshortbuffer().get(s);                  d.processraw(s, nbytes/2, false, false);                 d.setkws("abomination", );                  if (nbytes > 0) {                      hypothesis hypothesis = d.hyp();                     if (hypothesis != null) {                         system.out.println("------------------------------------------------------");                         system.out.println(hypothesis.gethypstr());                         system.out.println("------------------------------------------------------");                          d.endutt();                         d.startutt();                     }                 }             }          }         catch (exception e) {             system.err.println(e);         }     } } 

code runs fine. never enters if if(hypothesis != null) reason.

this logged:

info: cmn_prior.c(99): cmn_prior_update: < 40.00  3.00 -1.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00 > info: cmn_prior.c(116): cmn_prior_update:   < 51.22 14.61 -8.72 -0.31 -3.49  0.18 -7.35  8.43 -0.77  7.64  1.41  0.27 -1.82 > info: cmn_prior.c(99): cmn_prior_update: < 51.22 14.61 -8.72 -0.31 -3.49  0.18 -7.35  8.43 -0.77  7.64  1.41  0.27 -1.82 > info: cmn_prior.c(116): cmn_prior_update:   < 51.80 15.37 -8.77 -0.62 -2.74  0.09 -6.18 10.24  0.14  7.79  2.59  1.86 -3.22 > 

update: more info.

this output when run. -kws not set.

info: pocketsphinx.c(152): parsed model-specific feature parameters /usr/local/share/pocketsphinx/model/en-us/en-us//feat.params current configuration: [name]          [deflt]     [value] -agc            none        none -agcthresh      2.0     2.000000e+00 -allphone                -allphone_ci        no      no -alpha          0.97        9.700000e-01 -ascale         20.0        2.000000e+01 -aw         1       1 -backtrace      no      no -beam           1e-48       1.000000e-48 -bestpath       yes     yes -bestpathlw     9.5     9.500000e+00 -ceplen         13      13 -cmn            current     current -cmninit        8.0     40,3,-1 -compallsen     no      no -debug                  0 -dict                   /usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict -dictcase       no      no -dither         no      no -doublebw       no      no -ds         1       1 -fdict                   -feat           1s_c_d_dd   1s_c_d_dd -featparams              -fillprob       1e-8        1.000000e-08 -frate          100     100 -fsg                     -fsgusealtpron      yes     yes -fsgusefiller       yes     yes -fwdflat        yes     yes -fwdflatbeam        1e-64       1.000000e-64 -fwdflatefwid       4       4 -fwdflatlw      8.5     8.500000e+00 -fwdflatsfwin       25      25 -fwdflatwbeam       7e-29       7.000000e-29 -fwdtree        yes     yes -hmm                    /usr/local/share/pocketsphinx/model/en-us/en-us/ -input_endian       little      little -jsgf                    -keyphrase              abomination -kws                     -kws_delay      10      10 -kws_plp        1e-1        1.000000e-01 -kws_threshold      1       1.000000e-20 -latsize        5000        5000 -lda                     -ldadim         0       0 -lifter         0       22 -lm                  -lmctl                   -lmname                  -logbase        1.0001      1.000100e+00 -logfn                   -logspec        no      no -lowerf         133.33334   1.300000e+02 -lpbeam         1e-40       1.000000e-40 -lponlybeam     7e-29       7.000000e-29 -lw         6.5     6.500000e+00 -maxhmmpf       30000       30000 -maxwpf         -1      -1 -mdef                    -mean                    -mfclogdir               -min_endfr      0       0 -mixw                    -mixwfloor      0.0000001   1.000000e-07 -mllr                    -mmap           yes     yes -ncep           13      13 -nfft           512     512 -nfilt          40      25 -nwpen          1.0     1.000000e+00 -pbeam          1e-48       1.000000e-48 -pip            1.0     1.000000e+00 -pl_beam        1e-10       1.000000e-10 -pl_pbeam       1e-10       1.000000e-10 -pl_pip         1.0     1.000000e+00 -pl_weight      3.0     3.000000e+00 -pl_window      5       5 -rawlogdir               -remove_dc      no      no -remove_noise       yes     yes -remove_silence     yes     yes -round_filters      yes     yes -samprate       16000       1.600000e+04 -seed           -1      -1 -sendump                 -senlogdir               -senmgau                 -silprob        0.005       5.000000e-03 -smoothspec     no      no -svspec                 0-12/13-25/26-38 -tmat                    -tmatfloor      0.0001      1.000000e-04 -topn           4       4 -topn_beam      0       0 -toprule                 -transform      legacy      dct -unit_area      yes     yes -upperf         6855.4976   6.800000e+03 -uw         1.0     1.000000e+00 -vad_postspeech     50      50 -vad_prespeech      20      20 -vad_startspeech    10      10 -vad_threshold      2.0     2.000000e+00 -var                     -varfloor       0.0001      1.000000e-04 -varnorm        no      no -verbose        no      no -warp_params                 -warp_type      inverse_linear  inverse_linear -wbeam          7e-29       7.000000e-29 -wip            0.65        6.500000e-01 -wlen           0.025625    2.562500e-02  info: feat.c(715): initializing feature stream type: '1s_c_d_dd', ceplen=13, cmn='current', varnorm='no', agc='none' info: cmn.c(143): mean[0]= 12.00, mean[1..12]= 0.0 info: acmod.c(164): using subvector specification 0-12/13-25/26-38 info: mdef.c(518): reading model definition: /usr/local/share/pocketsphinx/model/en-us/en-us//mdef info: mdef.c(531): found byte-order mark bmdf, assuming binary mdef file info: bin_mdef.c(336): reading binary model definition: /usr/local/share/pocketsphinx/model/en-us/en-us//mdef info: bin_mdef.c(516): 42 ci-phone, 137053 cd-phone, 3 emitstate/phone, 126 ci-sen, 5126 sen, 29324 sen-seq info: tmat.c(206): reading hmm transition probability matrices: /usr/local/share/pocketsphinx/model/en-us/en-us//transition_matrices info: acmod.c(117): attempting use ptm computation module info: ms_gauden.c(198): reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us//means info: ms_gauden.c(292): 42 codebook, 3 feature, size:  info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(198): reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us//variances info: ms_gauden.c(292): 42 codebook, 3 feature, size:  info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(354): 222 variance values floored info: ptm_mgau.c(476): loading senones dump file /usr/local/share/pocketsphinx/model/en-us/en-us//sendump info: ptm_mgau.c(500): begin file format description info: ptm_mgau.c(563): rows: 128, columns: 5126 info: ptm_mgau.c(595): using memory-mapped i/o senones info: ptm_mgau.c(835): maximum top-n: 4 info: phone_loop_search.c(114): state beam -225 phone exit beam -225 insertion penalty 0 info: dict.c(320): allocating 138623 * 32 bytes (4331 kib) word entries info: dict.c(333): reading main dictionary: /usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict info: dict.c(213): allocated 1014 kib strings, 1677 kib phones info: dict.c(336): 134522 words read info: dict.c(358): reading filler dictionary: /usr/local/share/pocketsphinx/model/en-us/en-us//noisedict info: dict.c(213): allocated 0 kib strings, 0 kib phones info: dict.c(361): 5 words read info: dict2pid.c(396): building pid tables dictionary info: dict2pid.c(406): allocating 42^3 * 2 bytes (144 kib) word-initial triphones info: dict2pid.c(132): allocated 42672 bytes (41 kib) word-final triphones info: dict2pid.c(196): allocated 42672 bytes (41 kib) single-phone word triphones info: kws_search.c(420): kws(beam: -1080, plp: -23, default threshold -450, delay 10) recorder started decoder started 

i found reference why don't need -lm line here.

also if intend use kws there no need use -lm in arguments. need remove:  "-lm", ".../model/hub4wsj_sc_8k_adapt/etc/hub4.5000.dmp", 

that answers that.

if change above code , remove:

c.setstring("-keyphrase", "abomination"); 

and add:

c.setstring("-kws", "/home/pennyworth/keyphrase.list"); 

now output shows -kws set

-kws                    /home/pennyworth/keyphrase.list 

and in output:

info: kws_search.c(420): kws(beam: -1080, plp: -23, default threshold -450, delay 10) 

still though, null result.

i

nfo: cmn_prior.c(99): cmn_prior_update: < 73.10 11.10 -10.49  1.23  0.67 -1.37 -5.29  5.17 -0.62  3.91 -0.28  2.56 -2.14 > info: cmn_prior.c(116): cmn_prior_update:   < 73.59 11.36 -9.61  2.41  2.13  0.15 -5.09  4.30  1.03  4.46 -0.13  3.36 -0.62 > info: cmn_prior.c(99): cmn_prior_update: < 73.59 11.36 -9.61  2.41  2.13  0.15 -5.09  4.30  1.03  4.46 -0.13  3.36 -0.62 > info: cmn_prior.c(116): cmn_prior_update:   < 74.65 10.58 -9.76  4.47  3.63  1.19 -5.20  3.74  2.33  4.75 -0.11  3.06 -0.32 > info: cmn_prior.c(99): cmn_prior_update: < 74.65 10.58 -9.76  4.47  3.63  1.19 -5.20  3.74  2.33  4.75 -0.11  3.06 -0.32 > info: cmn_prior.c(116): cmn_prior_update:   < 77.49 10.99 -8.80  5.45  4.37  2.83 -4.14  4.06  3.48  5.07 -0.41  2.82 -0.35 > info: cmn_prior.c(99): cmn_prior_update: < 77.49 10.99 -8.80  5.45  4.37  2.83 -4.14  4.06  3.48  5.07 -0.41  2.82 -0.35 > info: cmn_prior.c(116): cmn_prior_update:   < 73.54  9.62 -11.34  3.19  3.30  2.24 -6.61  4.52  1.31  5.99 -1.28  2.24 -0.96 > 

am assuming wrong kws doesn't return hyp? there great python example nada java regarding kws.

https://github.com/cmusphinx/pocketsphinx/blob/master/swig/python/test/kws_test.py

here api doc pocketsphinx, http://cmusphinx.sourceforge.net/doc/pocketsphinx/pocketsphinx_8c_source.html

i don't know how move forward this. i'm either not setting decoder correctly or else happening , thats why i'm getting null return.

i'm not clear on use of -kws vs -keyphrase vx -kws-threshold. using -kws mean don't need other 2 since sets both phrase , threshold?

updated code. added byteorder. ( , made sure 1 wasn't l )

import javax.sound.sampled.audioformat; import javax.sound.sampled.audiosystem; import javax.sound.sampled.dataline; import javax.sound.sampled.targetdataline; import java.io.bytearrayoutputstream; import java.io.ioexception; import java.nio.bytebuffer; import java.nio.byteorder; import java.util.arrays;  import edu.cmu.pocketsphinx.decoder; import edu.cmu.pocketsphinx.config; import edu.cmu.pocketsphinx.hypothesis;  public class controller {     static {         system.loadlibrary("pocketsphinx_jni");     }      private static bytearrayoutputstream out;      public static void main(string args[]) {          audioformat format = new audioformat(44100, 16, 1, true, true);         targetdataline targetline = null;         dataline.info targetinfo = new dataline.info(targetdataline.class, format);         boolean running = true;           try {              targetline = audiosystem.gettargetdataline(format);             targetline.open();             out = new bytearrayoutputstream();             int numbytesread;             byte[] data = new byte[targetline.getbuffersize() / 5];               config c = decoder.defaultconfig();             c.setstring("-hmm", "/usr/local/share/pocketsphinx/model/en-us/en-us/");             c.setstring("-dict", "/usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict");             c.setstring("-keyphrase", "abomination");             c.setfloat("-kws_threshold", 1e-20);             //c.setstring("-kws", "/home/bruce/keyphrase.list");               decoder d = new decoder(c);             d.setrawdatasize(300000);              targetline.start();             system.out.println("recorder started");              byte[] b = new byte[4096];              d.startutt();              system.out.println("decoder started");              while ((running)) {                 int nbytes;                 short[] s = null;                 nbytes = targetline.read(b,0,b.length);                  bytebuffer bb = bytebuffer.wrap(b, 0, nbytes);                 s = new short[nbytes/2];                  bb.asshortbuffer().get(s);                 bb.order(byteorder.little_endian);                 d.processraw(s, nbytes/2, false, false);                   if (nbytes > 0) {                      hypothesis hypothesis = d.hyp();                     if (hypothesis != null) {                         system.out.println("------------------------------------------------------");                         system.out.println(hypothesis.gethypstr());                         system.out.println("------------------------------------------------------");                          d.endutt();                         d.startutt();                     }                 }             }          }         catch (exception e) {             system.err.println(e);         }     } } 

here updated output:

info: cmn_prior.c(99): cmn_prior_update: < 67.54 12.23 -8.09 -0.29  0.56 -0.37 -3.25  7.00 -1.97  3.98 -1.87  3.63 -1.49 > info: cmn_prior.c(116): cmn_prior_update:   < 66.41 12.98 -8.67 -0.63  1.35 -0.13 -3.16  7.97 -3.11  3.57 -0.74  3.91 -1.79 > info: cmn_prior.c(99): cmn_prior_update: < 66.41 12.98 -8.67 -0.63  1.35 -0.13 -3.16  7.97 -3.11  3.57 -0.74  3.91 -1.79 > info: cmn_prior.c(116): cmn_prior_update:   < 66.66 12.12 -10.32 -1.55  0.57 -0.01 -3.20  8.83 -2.47  4.65  0.07  4.54 -2.35 > info: cmn_prior.c(99): cmn_prior_update: < 66.66 12.12 -10.32 -1.55  0.57 -0.01 -3.20  8.83 -2.47  4.65  0.07  4.54 -2.35 > info: cmn_prior.c(116): cmn_prior_update:   < 68.35 12.82 -9.91 -1.85  0.77  0.18 -2.25  9.05 -1.75  3.84  0.66  5.82 -2.50 > info: cmn_prior.c(99): cmn_prior_update: < 68.35 12.82 -9.91 -1.85  0.77  0.18 -2.25  9.05 -1.75  3.84  0.66  5.82 -2.50 > info: cmn_prior.c(116): cmn_prior_update:   < 64.05 14.55 -8.14 -0.36  0.64  0.75 -1.96  9.76 -0.03  5.26  1.16  5.03 -1.68 > info: cmn_prior.c(99): cmn_prior_update: < 64.05 14.55 -8.14 -0.36  0.64  0.75 -1.96  9.76 -0.03  5.26  1.16  5.03 -1.68 > info: cmn_prior.c(116): cmn_prior_update:   < 63.08 15.30 -8.96  0.76  1.05  0.83 -1.40 10.94 -0.69  4.52 -0.80  3.58 -3.18 > info: cmn_prior.c(99): cmn_prior_update: < 63.08 15.30 -8.96  0.76  1.05  0.83 -1.40 10.94 -0.69  4.52 -0.80  3.58 -3.18 > info: cmn_prior.c(116): cmn_prior_update:   < 62.15 16.49 -10.32 -0.25  1.14 -0.32 -2.32 10.95 -2.12  2.91 -1.31  2.57 -4.05 

update:

changed order of following reflect https://github.com/cmusphinx/pocketsphinx/blob/master/swig/java/test/decodertest.java

        bb.order(byteorder.little_endian);         bb.asshortbuffer().get(s); 

this produces no output @ once started if gets no input.

info: pocketsphinx.c(152): parsed model-specific feature parameters /usr/local/share/pocketsphinx/model/en-us/en-us//feat.params current configuration: [name]          [deflt]     [value] -agc            none        none -agcthresh      2.0     2.000000e+00 -allphone                -allphone_ci        no      no -alpha          0.97        9.700000e-01 -ascale         20.0        2.000000e+01 -aw         1       1 -backtrace      no      no -beam           1e-48       1.000000e-48 -bestpath       yes     yes -bestpathlw     9.5     9.500000e+00 -ceplen         13      13 -cmn            current     current -cmninit        8.0     40,3,-1 -compallsen     no      no -debug                  0 -dict                   /usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict -dictcase       no      no -dither         no      no -doublebw       no      no -ds         1       1 -fdict                   -feat           1s_c_d_dd   1s_c_d_dd -featparams              -fillprob       1e-8        1.000000e-08 -frate          100     100 -fsg                     -fsgusealtpron      yes     yes -fsgusefiller       yes     yes -fwdflat        yes     yes -fwdflatbeam        1e-64       1.000000e-64 -fwdflatefwid       4       4 -fwdflatlw      8.5     8.500000e+00 -fwdflatsfwin       25      25 -fwdflatwbeam       7e-29       7.000000e-29 -fwdtree        yes     yes -hmm                    /usr/local/share/pocketsphinx/model/en-us/en-us/ -input_endian       little      little -jsgf                    -keyphrase              abomination -kws                     -kws_delay      10      10 -kws_plp        1e-1        1.000000e-01 -kws_threshold      1       1.000000e-20 -latsize        5000        5000 -lda                     -ldadim         0       0 -lifter         0       22 -lm                  -lmctl                   -lmname                  -logbase        1.0001      1.000100e+00 -logfn                   -logspec        no      no -lowerf         133.33334   1.300000e+02 -lpbeam         1e-40       1.000000e-40 -lponlybeam     7e-29       7.000000e-29 -lw         6.5     6.500000e+00 -maxhmmpf       30000       30000 -maxwpf         -1      -1 -mdef                    -mean                    -mfclogdir               -min_endfr      0       0 -mixw                    -mixwfloor      0.0000001   1.000000e-07 -mllr                    -mmap           yes     yes -ncep           13      13 -nfft           512     512 -nfilt          40      25 -nwpen          1.0     1.000000e+00 -pbeam          1e-48       1.000000e-48 -pip            1.0     1.000000e+00 -pl_beam        1e-10       1.000000e-10 -pl_pbeam       1e-10       1.000000e-10 -pl_pip         1.0     1.000000e+00 -pl_weight      3.0     3.000000e+00 -pl_window      5       5 -rawlogdir               -remove_dc      no      no -remove_noise       yes     yes -remove_silence     yes     yes -round_filters      yes     yes -samprate       16000       1.600000e+04 -seed           -1      -1 -sendump                 -senlogdir               -senmgau                 -silprob        0.005       5.000000e-03 -smoothspec     no      no -svspec                 0-12/13-25/26-38 -tmat                    -tmatfloor      0.0001      1.000000e-04 -topn           4       4 -topn_beam      0       0 -toprule                 -transform      legacy      dct -unit_area      yes     yes -upperf         6855.4976   6.800000e+03 -uw         1.0     1.000000e+00 -vad_postspeech     50      50 -vad_prespeech      20      20 -vad_startspeech    10      10 -vad_threshold      2.0     2.000000e+00 -var                     -varfloor       0.0001      1.000000e-04 -varnorm        no      no -verbose        no      no -warp_params                 -warp_type      inverse_linear  inverse_linear -wbeam          7e-29       7.000000e-29 -wip            0.65        6.500000e-01 -wlen           0.025625    2.562500e-02  info: feat.c(715): initializing feature stream type: '1s_c_d_dd', ceplen=13, cmn='current', varnorm='no', agc='none' info: cmn.c(143): mean[0]= 12.00, mean[1..12]= 0.0 info: acmod.c(164): using subvector specification 0-12/13-25/26-38 info: mdef.c(518): reading model definition: /usr/local/share/pocketsphinx/model/en-us/en-us//mdef info: mdef.c(531): found byte-order mark bmdf, assuming binary mdef file info: bin_mdef.c(336): reading binary model definition: /usr/local/share/pocketsphinx/model/en-us/en-us//mdef info: bin_mdef.c(516): 42 ci-phone, 137053 cd-phone, 3 emitstate/phone, 126 ci-sen, 5126 sen, 29324 sen-seq info: tmat.c(206): reading hmm transition probability matrices: /usr/local/share/pocketsphinx/model/en-us/en-us//transition_matrices info: acmod.c(117): attempting use ptm computation module info: ms_gauden.c(198): reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us//means info: ms_gauden.c(292): 42 codebook, 3 feature, size:  info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(198): reading mixture gaussian parameter: /usr/local/share/pocketsphinx/model/en-us/en-us//variances info: ms_gauden.c(292): 42 codebook, 3 feature, size:  info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(294):  128x13 info: ms_gauden.c(354): 222 variance values floored info: ptm_mgau.c(476): loading senones dump file /usr/local/share/pocketsphinx/model/en-us/en-us//sendump info: ptm_mgau.c(500): begin file format description info: ptm_mgau.c(563): rows: 128, columns: 5126 info: ptm_mgau.c(595): using memory-mapped i/o senones info: ptm_mgau.c(835): maximum top-n: 4 info: phone_loop_search.c(114): state beam -225 phone exit beam -225 insertion penalty 0 info: dict.c(320): allocating 138623 * 32 bytes (4331 kib) word entries info: dict.c(333): reading main dictionary: /usr/local/share/pocketsphinx/model/en-us/cmudict-en-us.dict info: dict.c(213): allocated 1014 kib strings, 1677 kib phones info: dict.c(336): 134522 words read info: dict.c(358): reading filler dictionary: /usr/local/share/pocketsphinx/model/en-us/en-us//noisedict info: dict.c(213): allocated 0 kib strings, 0 kib phones info: dict.c(361): 5 words read info: dict2pid.c(396): building pid tables dictionary info: dict2pid.c(406): allocating 42^3 * 2 bytes (144 kib) word-initial triphones recorder started decoder started info: dict2pid.c(132): allocated 42672 bytes (41 kib) word-final triphones info: dict2pid.c(196): allocated 42672 bytes (41 kib) single-phone word triphones info: kws_search.c(420): kws(beam: -1080, plp: -23, default threshold -450, delay 10) 

abomination /le-20/ 

every developer should know floating point format, starts numbers - 1e-1 same 0.1, 5e-3 same 0.005. le-20 l not floating point number.

            d.processraw(s, nbytes/2, false, false);             d.setkws("abomination", ); 

this code should not compile. also, should not set search during processing.

i'm not clear on use of -kws vs -keyphrase vx -kws-threshold. using -kws mean don't need other 2 since sets both phrase , threshold?

yes, keyword list replaces command line option

am assuming wrong kws doesn't return hyp? t

it not return hypothesis because not pass proper audio decoder. need

bb.order(byteorder.little_endian);` 

without it passes big-endian data (java default). swig example in sources has that.

info: cmn_prior.c(99): cmn_prior_update: < 73.10 11.10 -10.49 1.23 0.67 -1.37 -5.29 5.17 -0.62 3.91 -0.28 2.56 -2.14 >

cmn range of 70 indicates endian problems. proper endian first cmn value should 30 60.


Comments