After some more tests, I found followings:
1. Testing from dialplan, the log output is the string of "CRIT ${speech_detect_result}" rather than the recognition results.
oops
2. Regarding to non barge in, I first send "speak" command then send play_and_detect_speech with parameter:
detect:unimrcp:nuance5-mrcp1-1 {start-input-timers=false,no-input-timeout=25000,recognition-timeout=25000}dudeYNNC_Nuance
in which I removed the "say:" part.
But very soon I received event CHANNEL_EXECUTE_COMPLETE for play_and_detect_speech before the text playing finishes,
and speech_detect_result is null (actually the event header does not contain this variable)
I tried with "say:" part with empty text like "say:unimrcp:en-GB: " but it doesn't work, see issue 3 below.
Try with silence as I originally suggested:
silence_stream://1000 detect:unimrcp:nuance5-mrcp1-1 {start-input-timers=false,no-input-timeout=25000, recognition-timeout=25000}dudeYNNC_Nuance
3. It seems that I can not send "speak" command twice before the first one finishes. In my case I run one port TTS server on one machine.
If I send the command twice FS will give me Synthesizer Error/Invalid TTS Module.
I thought the TTS request would be queued rather than it immediately looks for the TTS resource.
If I send the second command to another TTS machine, no error occurs but I can only hear one utterance being spoken,
it looks like one utteraance was dropped somehow.
Wait for speak to finish before starting a new one.
On 16/11/11 16:51, xl127 wrote:Hi Christopher,
The questions are cleared to me now. Many thanks for your explanations!
Best regards,
On 16/11/11 15:52, Christopher Rienzo wrote:
Responses inline
Now it works in my ESL app though I am just able to do one dialogue ( I need to add the event catching for furthur dialgoues).something like that), then FS says: [WARNING] rtsp_client.c:386 () Failed to Connect to RTSP Server MailScanner has detected a possible fraud attempt from "99.185.85.31:554" claiming to be MailScanner warning: numerical links are often malicious: 99.185.85.31:554,
I have a couple of questions here:
1. In the first try, my Nuance server was able to be accessed somehow (FS says the MRCP is not responding in 5000ms,
What I don't understand is why it went to this stange address: MailScanner has detected a possible fraud attempt from "99.185.85.31:554" claiming to be MailScanner warning: numerical links are often malicious: 99.185.85.31:554?
later FS says:
[ERR] mod_unimrcp.c:1860 (TTS-6) SYNTHESIZER channel error!
[ERR] switch_ivr_play_say.c:2439 Invalid TTS module!
The SYNTHESIZER channel error and Invalid TTS module error are obvious.
check your unimrcp configuration. Make sure the default TTS and ASR profiles are set to actual servers.
2. I specified TTS engine in play_and_detect_speech as
"say:unimrcp:nuance5-mrcp1-1: the text to speak"
It works though I didn't specify the TTS voice.
How do I specify the TTS voice? In the mrcp profile (how?)? or something like:
"say:unimrcp:nuance5-mrcp1-1:Serena: the text to speak" (this seems not right.)
That won't work. Set the tts_engine variable as I explained previously, or use say:unimrcp:voice:text to speak with the desired voice and the correct default TTS profile defined in unimrcp.conf.xml. This is a limitation of the say: notation. Alternatively, the voice can be defined with the tts_voice channel variable.
3. The barge-in works well, thanks!. Is the barge-in configurable? In some scenarios, we might not allow barge-in.
If you don't want to barge in, just do "playback (or speak)" first, then "play_and_detect_speech" with a silence prompt.
4. How could I get the text which has spoken to the user when barge-in occurs?
Or Could I get the time when barge-in occurs? If I know the barge-in time and rough totale time for the whole text
to be spoken I can figure out the spoken text by manually checking the recorded audio file later, which would be painful.
If this is necessary, you might want to use the lower-level functions instead to watch for the begin-speaking event.
5. when I use "speak" and "detect_speech" apps in ESL, I can catch event: DETECTED_SPEECH and speech-type: begin-speaking
and "detected-speech", then I do the recognition results processing.
The new app play_and_detect_speech seems not generate these events any more. The way that I can think of to get the results
is to catch event:CHANNEL_EXECUTE_COMPLETE then check if variable_current_application=play_and_detect_speech, then get
the results from variable_detect_speech_result.
Is this the proper way to get the results in ESL app? Or will play_and_detect_speech later on be consistent with detect_speech
in term of ASR events?
play_and_detect_speech is a higher level abstraction to simplify things. If you want to have more control, go back to using the ESL events. Reading the code in mod_dptools and switch_ivr_async will give you hints about how to do it correctly.
6. I'd like to set start-input-timers=false in the initial request then start the recognition timers (start-input-timers=true)
after the TTS finishes.
How possibly could I do this?
This is automatically done in the switch_ivr_play_and_detect_speech() function. You just need to specify start-input-timers=false in the beginning.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Heriot-Watt University is the Sunday Times
Scottish University of the Year 2011-2012
Heriot-Watt University is a Scottish charity
registered under charity number SC000278.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Heriot-Watt University is the Sunday Times
Scottish University of the Year 2011-2012
Heriot-Watt University is a Scottish charity
registered under charity number SC000278.
_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com
Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Heriot-Watt University is the Sunday Times