Closed GoogleCodeExporter closed 9 years ago
I added this to app_unimrcp and uncommented the start_timers method and in the
debug log it says "Start Input Timers", but, nothing ever times out... Not
sure what else is needed here.
if (start_input_timers == 0)
{
if (schannel->state != SPEECH_CHANNEL_PROCESSING)
{
start_input_timers = 1;
ast_log(LOG_DEBUG, "Start input timers\n");
recog_channel_start_input_timers(schannel);
}
}
Original comment by damiank...@gmail.com
on 12 Apr 2013 at 10:04
Got a little further, not the mrcp messaage is sent to start input timers,
however, a 402 complete is received and the log reads:
app_mrcprecog.c: (ASR-0) timers failed to start, status code = 402
I will research this.
Original comment by damiank...@gmail.com
on 12 Apr 2013 at 10:19
Although the method START-INPUT-TIMERS is not implemented for the application
MRCPRecog, you can still start the timers by specifying the corresponding
header field Start-Input-Timers via application options: sit=true.
For example,
MRCPRecog(builtin:grammar/number,p=default&t=5000&b=1&ct=0.7&spl=en-US&f=hello-w
orld&sit=true)
You may also look at how the method START-INPUT-TIMERS is implemented for
SynthAndRecog and apply the same logic back to MRCPRecog. Patches are welcome.
Original comment by achalo...@gmail.com
on 12 Apr 2013 at 10:38
Thinking I may be incorrect about the start timers, I looked at the RFC and saw
they may only be set during a RECOGNIZE request. So, sending outside of the
recognize explains the 402. Also, I noticed the recognize request was not
being sent until I hung up the phone. Changing the b (bargein) flag from 2 to
1 fixed this.
Also, when changing b to 1, the RECOGNIZE request initially sent has the
no-input-timeout set to the timeout specified in the dialplan, however, the
MRCP server seems to ignore the no-input-timeout.
I'll keep looking.
Original comment by damiank...@gmail.com
on 12 Apr 2013 at 10:38
As you can see here the no-input-timer is set, and the session established, yet
the mrcp server never times out. I'll wait for a reply because I don't want to
start combing through the unimrcp server code ;)
Thx.
MRCP/2.0 302 RECOGNIZE 2
Channel-Identifier: 441a3caaa3c411e2@speechrecog
Content-Type: text/uri-list
Recognition-Mode: false
No-Input-Timeout: 5000
Save-Waveform: true
Recognition-Timeout: 5000
Confidence-Threshold: 0.7
Speech-Language: en-US
Content-Length: 17
session:grammar-0
2013-04-12 17:56:56:298040 [INFO] Process RECOGNIZE Request
<441a3caaa3c411e2@speechrecog> [2]
2013-04-12 17:56:56:298072 [INFO] Dispatch Request RECOGNIZE
<441a3caaa3c411e2@pocketsphinx>
2013-04-12 17:56:56:298140 [INFO] Open Waveform File
[/tmp/utter-441a3caaa3c411e2-2.pcm] <441a3caaa3c411e2@pocketsphinx>
2013-04-12 17:56:56:298218 [INFO] Process RECOGNIZE Response
<441a3caaa3c411e2@speechrecog> [2]
2013-04-12 17:56:56:298229 [INFO] State Transition IDLE -> RECOGNIZING
<441a3caaa3c411e2@speechrecog>
2013-04-12 17:56:56:298286 [INFO] Send MRCPv2 Stream 10.220.1.26:1544 <->
10.220.1.26:47606 [83 bytes]
MRCP/2.0 83 2 200 IN-PROGRESS
Channel-Identifier: 441a3caaa3c411e2@speechrecog
2013-04-12 17:56:57:396945 [INFO] Get Recognition Partial Result [better]
Score [-9265] <441a3caaa3c411e2@pocketsphinx>
2013-04-12 17:56:58:096914 [INFO] Get Recognition Partial Result [pretty]
Score [-14615] <441a3caaa3c411e2@pocketsphinx>
>
>
>2013-04-12 17:58:00:285985 [INFO] Receive MRCPv2 Stream 10.220.1.26:1544 <->
10.220.1.26:47606 [72 bytes]
MRCP/2.0 72 STOP 3
Channel-Identifier: 441a3caaa3c411e2@speechrecog
2013-04-12 17:58:00:286078 [INFO] Process STOP Request
<441a3caaa3c411e2@speechrecog> [3]
2013-04-12 17:58:00:286111 [INFO] Dispatch Request STOP
<441a3caaa3c411e2@pocketsphinx>
INFO: cmn_prior.c(121): cmn_prior_update: from < -44.68 0.00 0.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(139): cmn_prior_update: to < -44.69 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 >
INFO: fsg_search.c(1032): 3199 frames, 76872 HMMs (24/fr), 136560 senones
(42/fr), 38858 history entries (12/fr)
2013-04-12 17:58:00:287662 [INFO] Process STOP Response
<441a3caaa3c411e2@speechrecog> [3]
2013-04-12 17:58:00:287679 [INFO] State Transition RECOGNIZING -> IDLE
<441a3caaa3c411e2@speechrecog>
2013-04-12 17:58:00:287715 [INFO] Send MRCPv2 Stream 10.220.1.26:1544 <->
10.220.1.26:47606 [108 bytes]
MRCP/2.0 108 3 200 COMPLETE
Channel-Identifier: 441a3caaa3c411e2@speechrecog
Active-Request-Id-List: 2
2013-04-12 17:58:00:288189 [INFO] TCP/MRCPv2 Peer Disconnected
10.220.1.26:1544 <-> 10.220.1.26:47606
2013-04-12 17:58:00:288658 [INFO] Receive SIP Event [nua_i_bye] Status 200
Session Terminated
Original comment by damiank...@gmail.com
on 12 Apr 2013 at 11:00
Realizing that the issue is with the No-Input-Timers rather than the start
input timers, can we close this ticket. I want to create an appropriately
named ticket for No-Input-Timers...
Thx,
Original comment by damiank...@gmail.com
on 13 Apr 2013 at 5:00
BTW, the support for START-INPUT-TIMERS in MRCPRecog() was implemented in r1983.
Original comment by achalo...@gmail.com
on 26 Sep 2013 at 1:46
Original issue reported on code.google.com by
damiank...@gmail.com
on 12 Apr 2013 at 9:12