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
Post a Comment