cmusphinx / pocketsphinx

A small speech recognizer
Other
3.9k stars 714 forks source link

JACK: Buffer is full. #38

Closed mbl-sounds closed 8 years ago

mbl-sounds commented 8 years ago

I'm facing a problem when using pocketsphinx with jack-audio. After a short time running "pocketsphinx_continuous -inmic yes" the error "JACK: Buffer is full. Deactivating JACK client" appears. Using different samplingrates, framesizes, buffersizes in jack did not help.

I'm using jackd1 from the ubuntu rep.

nshmyrev commented 8 years ago

Please provide pocketsphinx log. It is probably running slower than realtime.

mbl-sounds commented 8 years ago

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 /usr/local/share/pocketsphinx/model/en-us/en-us/noisedict -feat 1s_c_d_dd 1s_c_d_dd -featparams /usr/local/share/pocketsphinx/model/en-us/en-us/feat.params -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
-kws
-kws_delay 10 10 -kws_plp 1e-1 1.000000e-01 -kws_threshold 1 1.000000e+00 -latsize 5000 5000 -lda
-ldadim 0 0 -lifter 0 22 -lm /usr/local/share/pocketsphinx/model/en-us/en-us.lm.bin -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 /usr/local/share/pocketsphinx/model/en-us/en-us/mdef -mean /usr/local/share/pocketsphinx/model/en-us/en-us/means -mfclogdir
-min_endfr 0 0 -mixw
-mixwfloor 0.0000001 1.000000e-07 -mllr
-mmap yes yes -ncep 13 13 -nfft 512 2048 -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 4.800000e+04 -seed -1 -1 -sendump /usr/local/share/pocketsphinx/model/en-us/en-us/sendump -senlogdir
-senmgau
-silprob 0.005 5.000000e-03 -smoothspec no no -svspec 0-12/13-25/26-38 -tmat /usr/local/share/pocketsphinx/model/en-us/en-us/transition_matrices -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 /usr/local/share/pocketsphinx/model/en-us/en-us/variances -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 to 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 this is a 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 to 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 from 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 for 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 137526 * 32 bytes (4297 KiB) for 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 1007 KiB for strings, 1662 KiB for phones INFO: dict.c(336): 133425 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 for strings, 0 KiB for phones INFO: dict.c(361): 5 words read INFO: dict2pid.c(396): Building PID tables for dictionary INFO: dict2pid.c(406): Allocating 42^3 * 2 bytes (144 KiB) for word-initial triphones INFO: dict2pid.c(132): Allocated 42672 bytes (41 KiB) for word-final triphones INFO: dict2pid.c(196): Allocated 42672 bytes (41 KiB) for single-phone word triphones INFO: ngram_model_trie.c(399): Trying to read LM in trie binary format INFO: ngram_search_fwdtree.c(99): 788 unique initial diphones INFO: ngram_search_fwdtree.c(148): 0 root, 0 non-root channels, 56 single-phone words INFO: ngram_search_fwdtree.c(186): Creating search tree INFO: ngram_search_fwdtree.c(192): before: 0 root, 0 non-root channels, 56 single-phone words INFO: ngram_search_fwdtree.c(326): after: max nonroot chan increased to 152410 INFO: ngram_search_fwdtree.c(339): after: 719 root, 152282 non-root channels, 52 single-phone words INFO: ngram_search_fwdflat.c(157): fwdflat: min_ef_width = 4, max_sf_win = 25 INFO: continuous.c(303): pocketsphinx_continuous COMPILED ON: Nov 30 2015, AT: 12:58:51

JACK: Setting default device: system:capture_1 JACK: The sample rate is now 48000/sec READY.... Listening... JACK: buffer is full. Deactivating JACK client. JACK error: process error - calling shutdown handler

here is the output.

nshmyrev commented 8 years ago

Try with -beam 1e-20, -maxhmmpf 2000, it should run fast but with less accuracy.

mbl-sounds commented 8 years ago

Hi. I tried now with the options added and get the same error, but later. Do you think this is a problem with my jack configuration? I tried it with and without realtime priority for jack.

here is the output again: 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-20 -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 /usr/local/share/pocketsphinx/model/en-us/en-us/noisedict -feat 1s_c_d_dd 1s_c_d_dd -featparams /usr/local/share/pocketsphinx/model/en-us/en-us/feat.params -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
-kws
-kws_delay 10 10 -kws_plp 1e-1 1.000000e-01 -kws_threshold 1 1.000000e+00 -latsize 5000 5000 -lda
-ldadim 0 0 -lifter 0 22 -lm /usr/local/share/pocketsphinx/model/en-us/en-us.lm.bin -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 2000 -maxwpf -1 -1 -mdef /usr/local/share/pocketsphinx/model/en-us/en-us/mdef -mean /usr/local/share/pocketsphinx/model/en-us/en-us/means -mfclogdir
-min_endfr 0 0 -mixw
-mixwfloor 0.0000001 1.000000e-07 -mllr
-mmap yes yes -ncep 13 13 -nfft 512 2048 -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 4.800000e+04 -seed -1 -1 -sendump /usr/local/share/pocketsphinx/model/en-us/en-us/sendump -senlogdir
-senmgau
-silprob 0.005 5.000000e-03 -smoothspec no no -svspec 0-12/13-25/26-38 -tmat /usr/local/share/pocketsphinx/model/en-us/en-us/transition_matrices -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 /usr/local/share/pocketsphinx/model/en-us/en-us/variances -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 to 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 this is a 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 to 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 from 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 for 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 137526 * 32 bytes (4297 KiB) for 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 1007 KiB for strings, 1662 KiB for phones INFO: dict.c(336): 133425 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 for strings, 0 KiB for phones INFO: dict.c(361): 5 words read INFO: dict2pid.c(396): Building PID tables for dictionary INFO: dict2pid.c(406): Allocating 42^3 * 2 bytes (144 KiB) for word-initial triphones INFO: dict2pid.c(132): Allocated 42672 bytes (41 KiB) for word-final triphones INFO: dict2pid.c(196): Allocated 42672 bytes (41 KiB) for single-phone word triphones INFO: ngram_model_trie.c(399): Trying to read LM in trie binary format INFO: ngram_search_fwdtree.c(99): 788 unique initial diphones INFO: ngram_search_fwdtree.c(148): 0 root, 0 non-root channels, 56 single-phone words INFO: ngram_search_fwdtree.c(186): Creating search tree INFO: ngram_search_fwdtree.c(192): before: 0 root, 0 non-root channels, 56 single-phone words INFO: ngram_search_fwdtree.c(326): after: max nonroot chan increased to 152410 INFO: ngram_search_fwdtree.c(339): after: 719 root, 152282 non-root channels, 52 single-phone words INFO: ngram_search_fwdflat.c(157): fwdflat: min_ef_width = 4, max_sf_win = 25 INFO: continuous.c(303): pocketsphinx_continuous COMPILED ON: Nov 30 2015, AT: 12:58:51

JACK: Setting default device: system:capture_1 JACK: The sample rate is now 48000/sec READY.... Listening... INFO: cmn_prior.c(131): cmn_prior_update: from < 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(149): cmn_prior_update: to < 30.66 -10.16 -3.13 -6.02 -2.88 -1.82 -2.01 -0.85 0.05 0.88 -1.98 -4.24 -3.28 > INFO: ngram_search_fwdtree.c(1553): 350 words recognized (3/fr) INFO: ngram_search_fwdtree.c(1555): 9769 senones evaluated (86/fr) INFO: ngram_search_fwdtree.c(1559): 6921 channels searched (60/fr), 882 1st, 392 last INFO: ngram_search_fwdtree.c(1562): 361 words for which last channels evaluated (3/fr) INFO: ngram_search_fwdtree.c(1564): 77 candidate words for entering last phone (0/fr) INFO: ngram_search_fwdtree.c(1567): fwdtree 0.14 CPU 0.126 xRT INFO: ngram_search_fwdtree.c(1570): fwdtree 2.84 wall 2.489 xRT INFO: ngram_search_fwdflat.c(302): Utterance vocabulary contains 2 words INFO: ngram_search_fwdflat.c(948): 539 words recognized (5/fr) INFO: ngram_search_fwdflat.c(950): 996 senones evaluated (9/fr) INFO: ngram_search_fwdflat.c(952): 553 channels searched (4/fr) INFO: ngram_search_fwdflat.c(954): 553 words searched (4/fr) INFO: ngram_search_fwdflat.c(957): 76 word transitions (0/fr) INFO: ngram_search_fwdflat.c(960): fwdflat 0.01 CPU 0.011 xRT INFO: ngram_search_fwdflat.c(963): fwdflat 0.01 wall 0.010 xRT INFO: ngram_search.c(1253): lattice start node .0 end node .35 INFO: ngram_search.c(1279): Eliminated 2 nodes before end node INFO: ngram_search.c(1384): Lattice has 176 nodes, 112 links INFO: ps_lattice.c(1380): Bestpath score: -1167 INFO: ps_lattice.c(1384): Normalizer P(O) = alpha(:35:112) = -79217 INFO: ps_lattice.c(1441): Joint P(O,S) = -91765 P(S|O) = -12548 INFO: ngram_search.c(875): bestpath 0.00 CPU 0.000 xRT INFO: ngram_search.c(878): bestpath 0.00 wall 0.000 xRT

READY.... JACK: buffer is full. Deactivating JACK client. JACK error: process error - calling shutdown handler

nshmyrev commented 8 years ago

What is your software and hardware configuration?

mbl-sounds commented 8 years ago

Lenovo ThinkPad T440p with XUbuntu 14.04.3. I dont think processing power should be the problem. Intel core i7 + 8GB RAM

alsa + jackd1 with qjackctrl. (no pulseaudio on the system)

Input is a usb 8-channel device based on a STM32 Microcontroller. Output is the onboard sound device.

Tell me if you need more specific information.

nshmyrev commented 8 years ago

Well, does simple recording from your soundcard work? Does it eat a lot of CPU? It feels like that from the log.

mbl-sounds commented 8 years ago

Yes works fine without unusual CPU usage. I will try to set up alsa, jack and pocketsphinx completely new.

JunjieHu commented 8 years ago

@HangmanCo Do you fix your problem? I have the same problem.

mbl-sounds commented 8 years ago

No, sadly not. I couldn't find the problem. But I haven't worked on it since December.

JunjieHu commented 8 years ago

@nshmyrev Hi Nickolay, I have similar problem as HangmanCo. I also posted my problem here (https://sourceforge.net/p/cmusphinx/discussion/help/thread/90e5852d/), but I didn't get it work.

Alex told me to find Min Sun in his group, but Min still cannot fix my problem. Would you help me to give some suggestions?

I run Ubuntu 14.04 virtual machine on my Mac Pro, I can use a python interface to pocketsphinx to recognition my voice through microphone. That python interface https://pypi.python.org/pypi/SpeechRecognition/ uses pyaudio to connect to the microphone. It seems that the pocketsphinx_continuous use JACK to connect to the microphone, which gives rise to some problems.

Best, Junjie

nshmyrev commented 8 years ago

I removed jack support from pocketsphinx, this issue should be fixed now.

Please update, recompile sphinxbase and try again. Make sure you have sound library headers installed (pulseaudio-devel or alsa-devel).

JunjieHu commented 8 years ago

Thanks Nickolay! It works now! Besides, how to turn off INFO messing in pocketsphinx?

nshmyrev commented 8 years ago

Add a configuration option -logfn /dev/null