Regarding the patch for Multiple grammar ASR support
Hi, I am interested in taking advantages of the patch (http://jira.freeswitch.org/browse/FS-2906) for Multiple grammar ASR support from a javascript program. But I am not sure exactly when to call the following function from a javascript program: ... this.addMultipleGrammars = function () { // hardcoded urls are just for my initial tests. this.session.execute("detect_speech", "grammar " + "http://192.168.16.9/pizza_arso.grxml"); this.session.execute("detect_speech", "grammaron " + "http://192.168.16.9/pizza_arso.grxml"); } ... I tried the following in scripts/js_modules/SpeechTools.jm, but this didn't work because the code snippet at the bottom prevented me from having multiple active grammars. ..... while(this.asr.session.ready() && this.collected_index < this.req) { var x; this.needConfirm = false; if (!rv) { this.asr.addMultipleGrammars(); rv = this.react(this.top_sound, this.top_sound); } ... I had to comment out the following piece of code in recog_asr_load_grammar function of /opt/freeswitch-snapshot/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c to get my expected results. This fix may not be needed. Perhaps you can point me to the right direction. Thanks. ... start_recognize = (char *) switch_core_hash_find(schannel->params, "start-recognize"); if (zstr(start_recognize) || strcasecmp(start_recognize, "false")) { // this disables all grammars /* switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "calling recog_channel_disable_all_grammars()\n"); if (recog_channel_disable_all_grammars(schannel) != SWITCH_STATUS_SUCCESS) { status = SWITCH_STATUS_FALSE; goto done; } */ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "calling recog_channel_enable_grammar()\n"); if (recog_channel_enable_grammar(schannel, name) != SWITCH_STATUS_SUCCESS) { status = SWITCH_STATUS_FALSE; goto done; } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "calling recog_channel_start()\n"); status = recog_channel_start(schannel); }
participants (1)
-
Yungwei Chen