zaf / asterisk-speech-recog

Speech recognition script for Asterisk that uses google's speech engine.
GNU General Public License v2.0
245 stars 131 forks source link

Error on Asterisk for Google Voice recognition using V2 API key Googlets AGI #13

Closed swapnil5775 closed 9 years ago

swapnil5775 commented 9 years ago

exten => 999,1,Playback(1.wav) ; same => n,Goto(stmukesivr,s,1) [stmukesivr]

exten => s,n,agi(googletranslate.agi,en) exten => 1,1,Background(dayhours) same => n,agi(googletranslate.agi,"is",en) same => n(record),agi(speech-recog.agi,en-US) same => n,Verbose(1,Script returned: ${status} , ${id} , ${confidence} , ${utterance}) same => n,GotoIf($["${utterance}" = "yes"]?olddata:tryagain) same => n(olddata),Goto(queues,111,1)

    same => n(tryagain),GotoIf($["${utterance}" = "no"]?newdata:onemore)
    same => n,(newdata),Goto(queues,222,1)

    same => n(onemore),GotoIf($["${utterance}" = "menu"]?menu:sayagain)
    same => n(menu),Background(welcome)
    same => n,Goto(stmukesivr,s,1)

    same => n(sayagain),Background(welcome)
    ;same => n,agi(googletts.agi,en)
    same => n,goto(record)

;exten => _X,1,Background(invald) ;exten => _X,1,agi(googletts.agi,"You just pressed ${EXTEN}.",en,any) ;exten => _X,n,WaitExten()

Below is the error I am getting. I have used New "googletranslate.agi speech-recog.agi" both are new files which have updated on Github for V2 with API key. I have used Server KEY API which I have got from Console. I have changed DEBUG-1 as well but still "Returning 0" in CLI log. below is the error and I am not able to get any response from google on CLI.

OUTPUT: Connected to Asterisk 11.2.1 currently running on patelsa1 (pid = 13937) == Using SIP RTP CoS mark 5 -- Executing [999@LocalSets:1] Playback("SIP/0000FFFFABCD-00000001", "1.wav") in new stack [2014-11-05 01:43:35] WARNING[14449][C-00000001]: file.c:698 ast_openstream_full: File 1.wav does not exist in any format [2014-11-05 01:43:35] WARNING[14449][C-00000001]: file.c:1014 ast_streamfile: Unable to open 1.wav (format (ulaw)): No such file or directory [2014-11-05 01:43:35] WARNING[14449][C-00000001]: app_playback.c:480 playback_exec: ast_streamfile failed on SIP/0000FFFFABCD-00000001 for 1.wav -- Executing [999@LocalSets:2] Goto("SIP/0000FFFFABCD-00000001", "stmukesivr,s,1") in new stack -- Goto (stmukesivr,s,1) -- Executing [s@stmukesivr:1] Answer("SIP/0000FFFFABCD-00000001", "") in new stack -- Executing [s@stmukesivr:2] WaitExten("SIP/0000FFFFABCD-00000001", "") in new stack == CDR updated on SIP/0000FFFFABCD-00000001 -- Executing [1@stmukesivr:1] BackGround("SIP/0000FFFFABCD-00000001", "dayhours") in new stack -- <SIP/0000FFFFABCD-00000001> Playing 'dayhours.slin' (language 'en') -- Executing [1@stmukesivr:2] AGI("SIP/0000FFFFABCD-00000001", "googletranslate.agi,"is",en") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/googletranslate.agi -- <SIP/0000FFFFABCD-00000001>AGI Script googletranslate.agi completed, returning 0 -- Executing [1@stmukesivr:3] AGI("SIP/0000FFFFABCD-00000001", "speech-recog.agi,en-US") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/speech-recog.agi -- <SIP/0000FFFFABCD-00000001>AGI Script speech-recog.agi completed, returning 0 -- Executing [1@stmukesivr:4] Verbose("SIP/0000FFFFABCD-00000001", "1,Script returned: , , , ") in new stack Script returned: , , , -- Executing [1@stmukesivr:5] GotoIf("SIP/0000FFFFABCD-00000001", "0?olddata:tryagain") in new stack -- Goto (stmukesivr,1,7) -- Executing [1@stmukesivr:7] GotoIf("SIP/0000FFFFABCD-00000001", "0?newdata:onemore") in new stack -- Goto (stmukesivr,1,9) -- Executing [1@stmukesivr:9] GotoIf("SIP/0000FFFFABCD-00000001", "0?menu:sayagain") in new stack -- Goto (stmukesivr,1,12) -- Executing [1@stmukesivr:12] BackGround("SIP/0000FFFFABCD-00000001", "welcome") in new stack -- <SIP/0000FFFFABCD-00000001> Playing 'welcome.slin' (language 'en') -- Executing [1@stmukesivr:13] Goto("SIP/0000FFFFABCD-00000001", "record") in new stack

Let me know where I am wrong.

zaf commented 9 years ago

The debug output of the AGI script was not captured. Keep in mind that AGI debug is displayed in the console that asterisk was originally started and not on consoles attached later via asterisk -r. Try get the debug from there and maybe try running the script manually from the cli just to make sure that you have all the perl modules and the script actually runs.

swapnil5775 commented 9 years ago

This is my Output when I called on Extensions 999. I have used googletranslate.agi and speech-recog.agi file.

Both are working. Both AGi file has debug value = 1 Debug mode on and below mentioned my output.

This is my extensions.conf code.

exten => 999,1,Playback(1.wav) ; same => n,Goto(stmukesivr,s,1) [stmukesivr]

exten => s,1,Answer() exten => s,n,WaitExten() exten => s,n,agi(googletranslate.agi,en)

;exten => 3,1,Background(afterhours)

;exten => 2,1,Background(afterhours)

exten => 1,1,Background(dayhours) same => n,agi(googletranslate.agi,"Please say YES or NO",en) same => n,agi(speech-recog.agi,en-US,-1) same => n,Verbose(1,Script returned: ${status} , ${id} , ${confidence} , ${utterance}) same => n,GotoIf($["${utterance}" = "yes"]?olddata:tryagain) same => n(olddata),Goto(queues,111,1)

    same => n(tryagain),GotoIf($["${utterance}" = "no"]?newdata:onemore)
    same => n,(newdata),Goto(queues,222,1)

    same => n(onemore),GotoIf($["${utterance}" = "menu"]?menu:sayagain)
    same => n(menu),Background(welcome)
    same => n,Goto(stmukesivr,s,1)

    same => n(sayagain),Background(welcome)
    ;same => n,agi(googletts.agi,en)

CLI Code:

Connected to Asterisk 11.2.1 currently running on patelsa (pid = 19266) patelsa_CLI> agi set debug on AGI Debugging Enabled patelsa_CLI> core set verbose 11 Set remote console verbosity to 11 == Using SIP RTP CoS mark 5 -- Executing [999@LocalSets:1] Playback("SIP/0000FFFFABCD-00000000", "1.wav") in new stack [2014-11-12 01:45:21] WARNING[19292][C-00000000]: file.c:698 ast_openstream_full: File 1.wav does not exist in any format [2014-11-12 01:45:21] WARNING[19292][C-00000000]: file.c:1014 ast_streamfile: Unable to open 1.wav (format (ulaw)): No such file or directory [2014-11-12 01:45:21] WARNING[19292][C-00000000]: app_playback.c:480 playback_exec: ast_streamfile failed on SIP/0000FFFFABCD-00000000 for 1.wav -- Executing [999@LocalSets:2] Goto("SIP/0000FFFFABCD-00000000", "stmukesivr,s,1") in new stack -- Goto (stmukesivr,s,1) -- Executing [s@stmukesivr:1] Answer("SIP/0000FFFFABCD-00000000", "") in new stack -- Executing [s@stmukesivr:2] WaitExten("SIP/0000FFFFABCD-00000000", "") in new stack == CDR updated on SIP/0000FFFFABCD-00000000 -- Executing [1@stmukesivr:1] BackGround("SIP/0000FFFFABCD-00000000", "dayhours") in new stack -- <SIP/0000FFFFABCD-00000000> Playing 'dayhours.slin' (language 'en') -- Executing [1@stmukesivr:2] AGI("SIP/0000FFFFABCD-00000000", "googletranslate.agi,"Please say YES or NO",en") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/googletranslate.agi <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_request: googletranslate.agi <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_channel: SIP/0000FFFFABCD-00000000 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_language: en <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_type: SIP <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_uniqueid: 1415774720.0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_version: 11.2.1 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callerid: 5775 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_calleridname: SP OFFICE <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callingpres: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callingani2: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callington: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callingtns: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_dnid: 999 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_rdnis: unknown <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_context: stmukesivr <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_extension: 1 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_priority: 2 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_enhanced: 0.0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_accountcode: <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_threadid: 140476973975296 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_arg_1: Please say YES or NO <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_arg_2: en <SIP/0000FFFFABCD-00000000>AGI Tx >> <SIP/0000FFFFABCD-00000000>AGI Rx << SET VARIABLE "gtranslation" "-1" <SIP/0000FFFFABCD-00000000>AGI Tx >> 200 result=1 <SIP/0000FFFFABCD-00000000>AGI Rx << SET VARIABLE "glang" "-1" <SIP/0000FFFFABCD-00000000>AGI Tx >> 200 result=1 -- <SIP/0000FFFFABCD-00000000>AGI Script googletranslate.agi completed, returning 0 -- Executing [1@stmukesivr:3] AGI("SIP/0000FFFFABCD-00000000", "speech-recog.agi,en-US,-1") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/speech-recog.agi <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_request: speech-recog.agi <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_channel: SIP/0000FFFFABCD-00000000 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_language: en <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_type: SIP <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_uniqueid: 1415774720.0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_version: 11.2.1 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callerid: 5775 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_calleridname: SP OFFICE <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callingpres: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callingani2: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callington: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_callingtns: 0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_dnid: 999 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_rdnis: unknown <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_context: stmukesivr <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_extension: 1 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_priority: 3 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_enhanced: 0.0 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_accountcode: <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_threadid: 140476973975296 <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_arg_1: en-US <SIP/0000FFFFABCD-00000000>AGI Tx >> agi_arg_2: -1 <SIP/0000FFFFABCD-00000000>AGI Tx >> <SIP/0000FFFFABCD-00000000>AGI Rx << SET VARIABLE "utterance" "-1" <SIP/0000FFFFABCD-00000000>AGI Tx >> 200 result=1 <SIP/0000FFFFABCD-00000000>AGI Rx << SET VARIABLE "confidence" "-1" <SIP/0000FFFFABCD-00000000>AGI Tx >> 200 result=1 <SIP/0000FFFFABCD-00000000>AGI Rx << CHANNEL STATUS <SIP/0000FFFFABCD-00000000>AGI Tx >> 200 result=6 <SIP/0000FFFFABCD-00000000>AGI Rx << RECORD FILE /tmp/stt_kVj19v sln "#" "-1" BEEP "" -- <SIP/0000FFFFABCD-00000000> Playing 'beep.ulaw' (language 'en') -- <SIP/0000FFFFABCD-00000000> Playing 'beep.ulaw' (language 'en') <SIP/0000FFFFABCD-00000000>AGI Tx >> 200 result=35 (dtmf) endpos=36640 <SIP/0000FFFFABCD-00000000>AGI Rx << VERBOSE "Unable to get recognition data." 3 -- speech-recog.agi,en-US,-1: Unable to get recognition data. <SIP/0000FFFFABCD-00000000>AGI Tx >> 200 result=1 -- <SIP/0000FFFFABCD-00000000>AGI Script speech-recog.agi completed, returning 0 -- Executing [1@stmukesivr:4] Verbose("SIP/0000FFFFABCD-00000000", "1,Script returned: , , -1 , -1") in new stack Script returned: , , -1 , -1 -- Executing [1@stmukesivr:5] GotoIf("SIP/0000FFFFABCD-00000000", "0?olddata:tryagain") in new stack -- Goto (stmukesivr,1,7) -- Executing [1@stmukesivr:7] GotoIf("SIP/0000FFFFABCD-00000000", "0?newdata:onemore") in new stack -- Goto (stmukesivr,1,9) -- Executing [1@stmukesivr:9] GotoIf("SIP/0000FFFFABCD-00000000", "0?menu:sayagain") in new stack -- Goto (stmukesivr,1,12) -- Executing [1@stmukesivr:12] BackGround("SIP/0000FFFFABCD-00000000", "welcome") in new stack -- <SIP/0000FFFFABCD-00000000> Playing 'welcome.slin' (language 'en') -- Auto fallthrough, channel 'SIP/0000FFFFABCD-00000000' status is 'UNKNOWN' patelsa*CLI>

swapnil5775 commented 9 years ago

Getting Return -1 value.

"AGI Tx >> 200 result=35 (dtmf) endpos=36640 AGI Rx << VERBOSE "Unable to get recognition data." 3 -- speech-recog.agi,en-US,-1: Unable to get recognition data. AGI Tx >> 200 result=1 -- AGI Script speech-recog.agi completed, returning 0 -- Executing [1@stmukesivr:4] Verbose("SIP/0000FFFFABCD-00000000", "1,Script returned: , , -1 , -1") in new stack Script returned: , , -1 , -1" kindly advise on it.

zaf commented 9 years ago

As mentioned in another similar post the Unable to get recognition data'' error means that the API request was not successful.