diff --git a/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c b/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c index ea4b49be56..3c543719e9 100644 --- a/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c +++ b/src/mod/asr_tts/mod_pocketsphinx/mod_pocketsphinx.c @@ -261,10 +261,13 @@ static switch_status_t pocketsphinx_asr_feed(switch_asr_handle_t *ah, void *data if (switch_test_flag(ah, SWITCH_ASR_FLAG_CLOSED)) return SWITCH_STATUS_BREAK; if (!switch_test_flag(ps, PSFLAG_HAS_TEXT) && switch_test_flag(ps, PSFLAG_READY)) { - - switch_mutex_lock(ps->flag_mutex); - rv = ps_process_raw(ps->ps, (int16 *)data, len / 2 , FALSE, FALSE); - switch_mutex_unlock(ps->flag_mutex); + /* only feed ps_process_raw when we are listening */ + if (ps->listening) { + switch_mutex_lock(ps->flag_mutex); + printf("."); + rv = ps_process_raw(ps->ps, (int16 *)data, len / 2 , FALSE, FALSE); + switch_mutex_unlock(ps->flag_mutex); + } if (rv < 0) { return SWITCH_STATUS_FALSE;