<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>RE: [Freeswitch-users] How to implement TTS barge-in using FS ESL</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Great work, thanks Christopher!<BR>
<BR>
I've quick tested it from the dialplan based on the example. It works on my setup.<BR>
<BR>
Now I am trying to put it into my Java ESL app, FS complains:<BR>
<BR>
&nbsp;switch_ivr_play_say.c:1167 Invalid Args<BR>
<BR>
A piece of codes I am using:<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SendMsg msg = new SendMsg();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.addCallCommand(&quot;execute&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.addExecuteAppName(&quot;play_and_detect_speech&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String arg = &quot;say:&quot; + utt + &quot; detect:unimrcp:nuance5-mrcp1-1 {start-input-timers=false,no-input-timeout=5000,&quot;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + &quot;recognition-timeout=5000}&quot; +this.crntGrammar;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.addExecuteAppArg(arg);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EslMessage response = sendSyncMultiLineCommand(channel, msg.getMsgLines());<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
Is there something I am missing?<BR>
<BR>
Cheers,<BR>
<BR>
Xing<BR>
<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: freeswitch-users-bounces@lists.freeswitch.org on behalf of Christopher Rienzo<BR>
Sent: Tue 11/15/2011 20:05<BR>
To: FreeSWITCH Users Help<BR>
Subject: Re: [Freeswitch-users] How to implement TTS barge-in using FS ESL<BR>
<BR>
Latest version of FreeSWITCH now has<BR>
<A HREF="http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_play_and_detect_speech">http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_play_and_detect_speech</A><BR>
Give it a try and let us know if there is anything that can be improved.<BR>
<BR>
<BR>
<BR>
On Mon, Nov 14, 2011 at 12:06 PM, xl127 &lt;x.liu@hw.ac.uk&gt; wrote:<BR>
<BR>
&gt;&nbsp; The way you did and described here is similar to what I wanted.<BR>
&gt; I want to set start-input-timers=false in the initial setup, then start<BR>
&gt; the recognition timer once the TTS finishes playing the prompt.<BR>
&gt; I do not use input callback as I am using ESL event (Java ESL Client<BR>
&gt; 0.9.2).<BR>
&gt;<BR>
&gt; I've not yet figured out how to know the prompt playing has finished, how<BR>
&gt; to stop the TTS and how to start the input timer.<BR>
&gt; I didn't get many events when I did barge-in: only got two CHANNEL_EXECUTE<BR>
&gt; and CAHNNEL_EXECUTE_COMPLETE events.<BR>
&gt; so didn't get the DETECTED_SPEECH at this point.<BR>
&gt;<BR>
&gt; In principle it shouldn't stop FS generating events when barging in, so<BR>
&gt; there must be somethings wrong in my setup.<BR>
&gt;<BR>
&gt; From Examples_directory_lua_asr_tts in the wiki, it mentions the session<BR>
&gt; needs to sleep for a few seconds before getting the results.<BR>
&gt; I tried but it didn't help.<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; On 14/11/11 14:48, Christopher Rienzo wrote:<BR>
&gt;<BR>
&gt; I'm not sure why it locks up for you.&nbsp; It works for me and I know of at<BR>
&gt; least one other developer that got it all to work.<BR>
&gt;<BR>
&gt; The way I do it in my custom APP is to set {start-input-timers=false} in<BR>
&gt; the speech recognition request and register an input callback function to<BR>
&gt; deal with the recognition and DTMF events.&nbsp; The input callback reacts to<BR>
&gt; the start of speech and recognition complete events by stopping the<BR>
&gt; prompt.&nbsp; At start of speech, the input timers are started and silence is<BR>
&gt; played until the final result arrives from the recognizer (no match, match,<BR>
&gt; etc).<BR>
&gt;<BR>
&gt; An alternative way to do this is to watch for the recognition events over<BR>
&gt; ESL and react to them.<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; On Mon, Nov 14, 2011 at 9:19 AM, xl127 &lt;x.liu@hw.ac.uk&gt; wrote:<BR>
&gt;<BR>
&gt;&gt;&nbsp; Hi Christopher,<BR>
&gt;&gt;<BR>
&gt;&gt; That will be great! Thanks and looking forward to your app!<BR>
&gt;&gt;<BR>
&gt;&gt; By the way, do you have a quick thoughts about the reasons the FS stucks<BR>
&gt;&gt; when garge-in occurs?<BR>
&gt;&gt; Otherwise if it is not straightforward to explain it,&nbsp; just leave it<BR>
&gt;&gt; alone until your new app comes out.<BR>
&gt;&gt;<BR>
&gt;&gt; Cheers,<BR>
&gt;&gt; Xing<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt; On 14/11/11 13:23, Christopher Rienzo wrote:<BR>
&gt;&gt;<BR>
&gt;&gt; I'll write up a dialplan app this week to deal with this.&nbsp; Getting tired<BR>
&gt;&gt; of being asked the same question over and over since it's too complicated<BR>
&gt;&gt; as is currently designed :)<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;&nbsp; On Mon, Nov 14, 2011 at 8:07 AM, xl127 &lt;x.liu@hw.ac.uk&gt; wrote:<BR>
&gt;&gt;<BR>
&gt;&gt;&gt; Hi,<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; The first problem I need to solve is that FS stucks when I speak during<BR>
&gt;&gt;&gt; the prompt is playing.<BR>
&gt;&gt;&gt; It looks like the recognizer is not listening any more. It works fine if<BR>
&gt;&gt;&gt; I speak after the playing prompt finishes.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; I tried Nuance and PocketSphinx recognizers and got same problem.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Any idea about what the possible causes are?<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Thanks!<BR>
&gt;&gt;&gt; Xing<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; On 11/11/11 18:59, xl127 wrote:<BR>
&gt;&gt;&gt; &gt; Hello,<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; I found this is a question that was asked before by others, but I<BR>
&gt;&gt;&gt; didn't<BR>
&gt;&gt;&gt; &gt; find the answer.<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; Anyway, I am using FS ESL outbound mode connecting to my IVR app,<BR>
&gt;&gt;&gt;&nbsp; using<BR>
&gt;&gt;&gt; &gt; FS's &quot;speak&quot;<BR>
&gt;&gt;&gt; &gt; and &quot;detect_speech&quot; to access Nuance MRCP V1 server.<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; I want the user to be able to barge-in during the system's speaking.<BR>
&gt;&gt;&gt; &gt; How could I implement it?<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; I tried to specify &quot;kill-on-barge-in=true&quot; in the mrcp config profile.<BR>
&gt;&gt;&gt; &gt; The barge-in doesn't work.<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; With or without setting kill-on-barge-in, FS stops responding to my<BR>
&gt;&gt;&gt; &gt; phone call and<BR>
&gt;&gt;&gt; &gt; eventually it hangs up my call if I speak somthing (do the barge-in)<BR>
&gt;&gt;&gt; &gt; during the system's speaking.<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; I made a turn-by-turn loop in my app, the ASR/TTS works fine if I do<BR>
&gt;&gt;&gt; not<BR>
&gt;&gt;&gt; &gt; do barge-in ( I wait until the TTS finishes then I start to speak)<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; Any advices please?<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; Thanks!<BR>
&gt;&gt;&gt; &gt; Xing<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; --<BR>
&gt;&gt;&gt; Heriot-Watt University is a Scottish charity<BR>
&gt;&gt;&gt; registered under charity number SC000278.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Heriot-Watt University is the Sunday Times<BR>
&gt;&gt;&gt; Scottish University of the Year 2011-2012<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; _________________________________________________________________________<BR>
&gt;&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>
&gt;&gt;&gt; consulting@freeswitch.org<BR>
&gt;&gt;&gt; <A HREF="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</A><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>
&gt;&gt;&gt; <A HREF="http://www.cudatel.com">http://www.cudatel.com</A><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Official FreeSWITCH Sites<BR>
&gt;&gt;&gt; <A HREF="http://www.freeswitch.org">http://www.freeswitch.org</A><BR>
&gt;&gt;&gt; <A HREF="http://wiki.freeswitch.org">http://wiki.freeswitch.org</A><BR>
&gt;&gt;&gt; <A HREF="http://www.cluecon.com">http://www.cluecon.com</A><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; FreeSWITCH-users mailing list<BR>
&gt;&gt;&gt; FreeSWITCH-users@lists.freeswitch.org<BR>
&gt;&gt;&gt; <A HREF="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>
&gt;&gt;&gt; UNSUBSCRIBE:<A HREF="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>
&gt;&gt;&gt; <A HREF="http://www.freeswitch.org">http://www.freeswitch.org</A><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt; _________________________________________________________________________<BR>
&gt;&gt; Professional FreeSWITCH Consulting Services:consulting@freeswitch.orghttp://www.freeswitchsolutions.com<BR>
&gt;&gt;<BR>
&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Serverhttp://www.cudatel.com<BR>
&gt;&gt;<BR>
&gt;&gt; Official FreeSWITCH Siteshttp://www.freeswitch.orghttp://wiki.freeswitch.orghttp://www.cluecon.com<BR>
&gt;&gt;<BR>
&gt;&gt; FreeSWITCH-users mailing listFreeSWITCH-users@lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-users<BR>
&gt;&gt; UNSUBSCRIBE:<A HREF="http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.freeswitch.org">http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.freeswitch.org</A><BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt;&nbsp; ------------------------------<BR>
&gt;&gt;<BR>
&gt;&gt; [image: Scottish University of the Year 2011-12]&nbsp;&nbsp; *Heriot-Watt<BR>
&gt;&gt; University is the Sunday Times<BR>
&gt;&gt;<BR>
&gt;&gt;&nbsp;&nbsp; Scottish University of the Year 2011-2012<BR>
&gt;&gt; *<BR>
&gt;&gt;<BR>
&gt;&gt;&nbsp;&nbsp;&nbsp; Heriot-Watt University is a Scottish charity<BR>
&gt;&gt;&nbsp;&nbsp; registered under charity number SC000278.<BR>
&gt;&gt;<BR>
&gt;&gt; _________________________________________________________________________<BR>
&gt;&gt; Professional FreeSWITCH Consulting Services:<BR>
&gt;&gt; consulting@freeswitch.org<BR>
&gt;&gt; <A HREF="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</A><BR>
&gt;&gt;<BR>
&gt;&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>
&gt;&gt; <A HREF="http://www.cudatel.com">http://www.cudatel.com</A><BR>
&gt;&gt;<BR>
&gt;&gt; Official FreeSWITCH Sites<BR>
&gt;&gt; <A HREF="http://www.freeswitch.org">http://www.freeswitch.org</A><BR>
&gt;&gt; <A HREF="http://wiki.freeswitch.org">http://wiki.freeswitch.org</A><BR>
&gt;&gt; <A HREF="http://www.cluecon.com">http://www.cluecon.com</A><BR>
&gt;&gt;<BR>
&gt;&gt; FreeSWITCH-users mailing list<BR>
&gt;&gt; FreeSWITCH-users@lists.freeswitch.org<BR>
&gt;&gt; <A HREF="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>
&gt;&gt; UNSUBSCRIBE:<A HREF="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>
&gt;&gt; <A HREF="http://www.freeswitch.org">http://www.freeswitch.org</A><BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; _________________________________________________________________________<BR>
&gt; Professional FreeSWITCH Consulting Services:consulting@freeswitch.orghttp://www.freeswitchsolutions.com<BR>
&gt;<BR>
&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Serverhttp://www.cudatel.com<BR>
&gt;<BR>
&gt; Official FreeSWITCH Siteshttp://www.freeswitch.orghttp://wiki.freeswitch.orghttp://www.cluecon.com<BR>
&gt;<BR>
&gt; FreeSWITCH-users mailing listFreeSWITCH-users@lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-users<BR>
&gt; UNSUBSCRIBE:<A HREF="http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.freeswitch.org">http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.freeswitch.org</A><BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; ------------------------------<BR>
&gt;<BR>
&gt; [image: Scottish University of the Year 2011-12]&nbsp;&nbsp; *Heriot-Watt<BR>
&gt; University is the Sunday Times<BR>
&gt;&nbsp;&nbsp; Scottish University of the Year 2011-2012*<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp; Heriot-Watt University is a Scottish charity<BR>
&gt;&nbsp;&nbsp; registered under charity number SC000278.<BR>
&gt;<BR>
&gt; _________________________________________________________________________<BR>
&gt; Professional FreeSWITCH Consulting Services:<BR>
&gt; consulting@freeswitch.org<BR>
&gt; <A HREF="http://www.freeswitchsolutions.com">http://www.freeswitchsolutions.com</A><BR>
&gt;<BR>
&gt; FreeSWITCH-powered IP PBX: The CudaTel Communication Server<BR>
&gt; <A HREF="http://www.cudatel.com">http://www.cudatel.com</A><BR>
&gt;<BR>
&gt; Official FreeSWITCH Sites<BR>
&gt; <A HREF="http://www.freeswitch.org">http://www.freeswitch.org</A><BR>
&gt; <A HREF="http://wiki.freeswitch.org">http://wiki.freeswitch.org</A><BR>
&gt; <A HREF="http://www.cluecon.com">http://www.cluecon.com</A><BR>
&gt;<BR>
&gt; FreeSWITCH-users mailing list<BR>
&gt; FreeSWITCH-users@lists.freeswitch.org<BR>
&gt; <A HREF="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</A><BR>
&gt; UNSUBSCRIBE:<A HREF="http://lists.freeswitch.org/mailman/options/freeswitch-users">http://lists.freeswitch.org/mailman/options/freeswitch-users</A><BR>
&gt; <A HREF="http://www.freeswitch.org">http://www.freeswitch.org</A><BR>
&gt;<BR>
&gt;<BR>
<BR>
</FONT>
</P>

<br>
<hr>
<br>
<img src="cid:hw_uni_of_year.jpg" align=left 
alt="Scottish University of the Year 2011-12">
<font face="arial,helvetica">
&nbsp; <b>Heriot-Watt University is the Sunday Times<br> 
&nbsp; Scottish University of the Year 2011-2012</b>
</font>
<br><br>
<font face="arial,helvetica" size="-1">
&nbsp; Heriot-Watt University is a Scottish charity<br>
&nbsp; registered under charity number SC000278.
<br>
</font>

</BODY>
</HTML>