cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements

Community Helping Community

Using ASR and DTMF on the same application

825
Views
2
Helpful
7
Comments
This document was generated from CDN thread

Created by: deniz caglar on 15-06-2012 02:15:32 AM
 
Hi everyone,
We built an application using first and ASR form and willing to use another menu afterwards which is only dtmf.
But the problem we have is that it starts to detect the voices on dtmf menu as well.
I have chosen Cisco Unified CVP 4.1/7.0/8.0 VoiceXML 2.1 with Nuance 8.5 as VoiceXML Gateway on properties of the application to be able to put ASR in. Before that it was CVP 4.1/7.0/8.0 VoiceXML 2.1 with Cisco DTMF.
Is there a way to use dtmf and ASr separately on the same application. Maybe by seting some VXML property. Or choosing different VoiceXML Gateway.
Any help is appricaited.
 
Thanks

Subject: Re: New Message from deniz caglar in Customer Voice Portal (CVP) - CVP - Al
Replied by: Janine Graves on 15-06-2012 06:29:30 AM
You can try setting the voicexml property named inputmodes to the value 
dtmf. In Lower case.



Sent from a tiny keyboard and screen. Please excuse typos.

-----Original message-----
From: Cisco Developer Community Forums <cdicuser@developer.cisco.com>
To: "cdicuser@developer.cisco.com" <cdicuser@developer.cisco.com>
Sent: Fri, Jun 15, 2012 02:15:32 EDT
Subject: New Message from deniz caglar in Customer Voice Portal (CVP) - CVP 
- All Versions: Using ASR and DTMF on the same application

Subject: RE: Using ASR and DTMF on the same application
Replied by: deniz caglar on 18-06-2012 08:49:37 AM
Hi Janine,

We try setting inputmodes property to dtmf, but it doesn’t work. Do you know about any other settings that can disable this property, may be in the Gateway level, etc.

In the application, we set General Settings  - > VoiceXML Gateway setting to “Cisco Unified CVP 4.1/7.0/8.0 VoiceXML 2.1 with Nuance 8.5”

Then in the Root Doc Setting, we add inputmodes vxml property, and set it to “dtmf”

And also we try adding this VXML property to the first Audio element in the Call Flow.

But when we start the call and speak, application recognizes the voice and gives us nomatch  error.

Subject: Re: New Message from deniz caglar in Customer Voice Portal (CVP) - CVP - Al
Replied by: Janine Graves on 18-06-2012 09:14:30 AM
Set the property inputmodes in every menu element where you want dtmf only. In addition, if the settings tab of the element has the setting named input type, select dtmf from that pull down menu—this is true in all the elements that collect input other than the menu.

You should probably set the property named universals to the value 'none' in the root doc.


Sent from a tiny keyboard and screen. Please excuse typos.

-----Original message-----
From: Cisco Developer Community Forums <cdicuser@developer.cisco.com>
To: "cdicuser@developer.cisco.com" <cdicuser@developer.cisco.com>
Sent: Mon, Jun 18, 2012 08:49:37 EDT
Subject: New Message from deniz caglar in Customer Voice Portal (CVP) - CVP - All Versions: RE: Using ASR and DTMF on the same application

Subject: RE: Using ASR and DTMF on the same application
Replied by: deniz caglar on 18-06-2012 10:18:09 AM
I set inputmodes to “none” in the Universal settings, but i get this error. Do you mean “dont do any inputmodes setting in the Universals” ?

<catch event="error.com.cisco.callhandoff.failure">
    <cisco-typeaheadflush />
    <goto next="#second_form" />
</catch>


And it’s difficult to set this property to dtmf in every menu element, because we have lots of menu element in our application but i try this in a small application, i set this property to dtmf in all of the menu and audio elements. And all the input types are dtmf.

But still it recognizes the voice

Subject: Re: New Message from deniz caglar in Customer Voice Portal (CVP) - CVP - Al
Replied by: Janine Graves on 18-06-2012 10:57:30 AM
I didn't say to set inputmodes to none.
Set 'universals' to 'none ' in the root doc.

In the menu element, if you leave the settings named option # voice empty 
then the system shouldn't be listening for voice input.


Sent from a tiny keyboard and screen. Please excuse typos.

-----Original message-----
From: Cisco Developer Community Forums <cdicuser@developer.cisco.com>
To: "cdicuser@developer.cisco.com" <cdicuser@developer.cisco.com>
Sent: Mon, Jun 18, 2012 10:18:10 EDT
Subject: New Message from deniz caglar in Customer Voice Portal (CVP) - CVP 
- All Versions: RE: Using ASR and DTMF on the same application

Subject: RE: Using ASR and DTMF on the same application
Replied by: Janine Graves on 18-06-2012 03:13:49 PM
Hi Deniz,
 
I just tried this on Studio 8.5 (but I believe it'll be the same on any version of Studio). I set it to use Nuance 8.5, used a Menu element to prompt the caller, but left empty the Option 1 Voice, Option 2 Voice, etc. setttings.
 
When I look at the VXML code being generated, VxmlServer has automatically inserted the property 'inputmodes' with the value 'dtmf'.  So - if the Nuance recognizer is allowed callers to speak their entry, then there's an issue on the Nuance side.
 
One way to see the VXML code being generated, is to turn on VXML Logs (temporarily). This is under the Studio application - right click and select Project / Properties / Call Studio / General. Next to the Loggers box, press Add... Enter the Name pac-man xmlLogs Class.com.audium.logger.application.debug.ApplicationDebugLogger (case sensitive). Then Save, Deploy, UpdateApp.bat, call in. Then hang up. (Then go back and remove this logger from the Studio app and re-deploy!!!).
 
The VXML debug log will show up under VXMLServer/applications/appname/logs/VxmlLogs. Just do a search for whatever your initial prompt is.  The menu elements look like this:
   <field name="choice_fld" modal="false">
      <property name="inputmodes" value="dtmf" />
      <prompt bargein="true"> <audio src="MediaServerURI/InitialPrompt.wav"/></prompt>
 
 

Subject: RE: Using ASR and DTMF on the same application
Replied by: deniz caglar on 19-06-2012 04:34:53 AM
Hi Janine,

So, did you achieve ignoring voice and recognize only dtmf in the example above?

I’m working on Call Studio 8.0 but as you say i think there wont be any difference. I set also to Nuance 8.5. In our all menu elements, Option 1 Voice, Option 2 Voice properties are empty. Option X DTMF and Option X Value properties are filled as 1, 2 etc.

I had also added DebugLogger as you say, and the property is wriiten as “dtmf” as below.


Although I didnt set the property in the Root Doc, it seems as dtmf in the debug log
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.1" application="/CVP/Server?audium_root=true&amp;calling_into=IVR_VDF" xml:lang="tr-TR">
  <property name="timeout" value="5s" />
  <property name="inputmodes" value="dtmf" />


And this is the menu elements log, that i set inputmodes in the first menu element’s VoiceXML Property settings pane.
    <field name="choice_fld" modal="false">
      <property name="inputmodes" value="dtmf" />
      <prompt bargein="true">
        <audio src="http://media-server/CVP/audio/VDF/VDF\vdf_m21.wav">Press 1 for X , Press 2 for Y.</audio>
      </prompt>
      <catch event="nomatch">
        <prompt bargein="true">
          <audio src="http://media-server/CVP/audio/VDF/GENERIC\m526.wav" />
          <audio src="http://media-server/CVP/audio/VDF/VDF\vdf_m21.wav" />
        </prompt>
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '1' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
      </catch>
      <catch event="nomatch" count="2">
        <prompt bargein="true">
          <audio src="http://media-server/CVP/audio/VDF/GENERIC\m505.wav" />
        </prompt>
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '2' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <var name="maxNoMatch" expr="'yes'" />
        <submit next="/CVP/Server" method="post" namelist="audium_vxmlLog maxNoMatch" />
      </catch>
      <catch event="noinput">
        <prompt bargein="true">
          <audio src="http://media-server/CVP/audio/VDF/GENERIC\m519.wav" />
          <audio src="http://media-server/CVP/audio/VDF/VDF\vdf_m21.wav" />
        </prompt>
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '1' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
      </catch>
      <catch event="noinput" count="2">
        <prompt bargein="true">
          <audio src="http://media-server/CVP/audio/VDF/GENERIC\m505.wav" />
        </prompt>
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '2' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <var name="maxNoInput" expr="'yes'" />
        <submit next="/CVP/Server" method="post" namelist="audium_vxmlLog maxNoInput" />
      </catch>
      <option value="1" dtmf="1">1</option>
      <option value="2" dtmf="2">2</option>
      <option value="3" dtmf="3">3</option>
      <filled>
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||utterance$$$' + choice_fld$.utterance + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||inputmode$$$' + choice_fld$.inputmode + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||interpretation$$$' + choice_fld + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||confidence$$$' + choice_fld$.confidence + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <var name="completeNBestStr" expr="''" />
        <script><![CDATA[var len = application.lastresult$.length;
for (var i = 0; i < len; i++) {
completeNBestStr += "|||" + application.lastresult$.confidence + "^^^" + application.lastresult$.utterance + "^^^" + application.lastresult$.inputmode + "^^^" + application.lastresult$.interpretation;
}]]></script>
        <var name="confidence" expr="choice_fld$.confidence" />
        <submit next="/CVP/Server" method="post" namelist="audium_vxmlLog confidence choice_fld completeNBestStr" />
      </filled>
    </field>

Subject: RE: Using ASR and DTMF on the same application
Replied by: Janine Graves on 19-06-2012 10:28:42 AM
Deniz,
 
I just tried this with an older version of the recognizer than you have, and I experienced the same issue that you did. I also tried this using a Form element.  Same problem. You'll have to contact either Nuance or Cisco about this. Nuance is hearing the caller's voice and throwing a NoMatch event (because it's not DTMF entry); whereas is should be ignoring all voice input if you've set inputmodes to dtmf.
 
Janine
 
 
 

Subject: RE: Using ASR and DTMF on the same application
Replied by: Hemal Mehta on 22-06-2012 04:43:24 PM
Deniz,
      Can you try this using a Menu element and not putting anything in the voice.  Just use dtmf and the corresponding value.
Janine,
       Have you tried this ?
Hemal

Subject: RE: Using ASR and DTMF on the same application
Replied by: Mert Guray on 28-06-2012 02:54:24 AM
Hi,
I am working on the same issue with Deniz.
As Deniz told vxml property is set properly. When looking at the debugger logs, we can see it also.
I assume that the gateway doesn't take this property into account. We are using 15.1(2)T.
We have also opened TAC cases for TAc engineers and developer support. But no satisfactory answer yet.
I am bit surprised to see that no one knows until now, if we can use DTMF and ASR on tha same application or not. If yes how.
Thanks.

Subject: RE: Using ASR and DTMF on the same application
Replied by: Hemal Mehta on 28-06-2012 10:00:04 AM
I have used it before using low level vxml code and older nuance engine engine.  It should work.  I see no issue from interpreter perspective. Have you tried using  menu element with no value in voice option ?
Hemal

Subject: RE: Using ASR and DTMF on the same application
Replied by: Janine Graves on 28-06-2012 10:15:12 AM
Hemal,
I can confirm that this behaves badly.
I have CVP 8.5, ipvoice-mx.151-3.T2 on my gateway.
I am using OSR3 (pretty old!)
I am using the Menu element and omitting the Option X Voice settings, and I configure only the Option X DTMF settings.
Still, any voice input from the caller is causing a 'nomatch'
I even tried setting 'universals' to 'none', setting 'inputmodes' to 'dtmf' - but to no avail.

I have confirmed the same issue occurs with the other voice collection elements (Number, Digits, etc).

I haven't tried creating my own VXML. But, when I look at the VXML created by VxmlServer, it clearly specifies that the inputmodes is dtmf.

I assume it's either a gateway issue, perhaps the gateway shouldn't be passing voice to the ASR server. Or that it's the recognizer, where it should only be listening for DTMF tones. But, as I said, I'm using OSR 3 from 2005, so if it's a recognizer issue, it's been around for a long time.

Janine

Subject: RE: New Message from Mert Guray in Customer Voice Portal (CVP) - CVP - All
Replied by: Hemal Mehta on 28-06-2012 11:42:51 AM
I have used it beforeusing low level vxml code and speechworks engine.  It should work.  Have you tried using  menu element with no value in voice option ?
Hemal
________________________________
From: Cisco Developer Community Forums [cdicuser@developer.cisco.com]
Sent: Thursday, June 28, 2012 1:54 AM
To: cdicuser@developer.cisco.com
Subject: New Message from Mert Guray in Customer Voice Portal (CVP) - CVP - All Versions: RE: Using ASR and DTMF on the same application

Mert Guray has created a new message in the forum "CVP - All Versions":

--------------------------------------------------------------
Hi,
I am working on the same issue with Deniz.
As Deniz told vxml property is set properly. When looking at the debugger logs, we can see it also.
I assume that the gateway doesn't take this property into account. We are using 15.1(2)T.
We have also opened TAC cases for TAc engineers and developer support. But no satisfactory answer yet.
I am bit surprised to see that no one knows until now, if we can use DTMF and ASR on tha same application or not. If yes how.
Thanks.
--
To respond to this post, please click the following link:

<http://developer.cisco.com/web/cvp/forums/-/message_boards/view_message/5944895>

or simply reply to this email.

Subject: RE: Using ASR and DTMF on the same application
Replied by: Hemal Mehta on 30-06-2012 05:19:31 PM
Janine,
       Thanks for confirming this.   I will do more research and see what I can find.
Regards,
Hemal
Comments
Beginner

We are running into this same issue.  DTMF shows up in the debugs as the only inputmode.  The ASR leg comes up and uses a license for the duration of the call while in the app.  We are trying to move from MRCPv1 to MRCPv2.  We are using Nuance and 3945 gateways running 15.5(3)M3.  We have many ivr apps and all will use ASR licenses if we can't find a solution.  We have 1 app that needs ASR.  TAC is telling us that they believe this is working as intended.  I was hoping this thread found a solution and can give us a heads up.

Thanks,

Steve

Cisco Employee

Where you don't need ASR, set the adapter type to Cisco DTMF.

Remove the ivr asr-server setting from the gateway.

Where you do need ASR, specify it in your apps using the com.cisco.asr-server VoiceXML property. 

Beginner

Someone to talk too about this!  Thanks for the reply.

We need ASR on 1 app.  This likely means we need to keep ivr asr-server in the gateway.  With that said, we use “Cisco Unified CVP 4.1/7.0/8.0/8.5/9.0 with Cisco DTMF" in the ivr app.  The script nodes all use "D".   The two things I just mentioned are a little outside my wheel house.  I'm the CUCM/VXML Router person.  In the debugs I see <property name="inputmodes" value="dtmf" throughout the entire debug.  We still get an ASR session up on all calls.  Removing the ivr asr-server and the above configuration works but for that 1 app that needs ASR, it won't work with ivr asr-server removed correct?  or are you saying that ivr asr-server can be removed from the gateway and the application can call is via something set in com.cisco.asr-server VoiceXML property within the app?

Thanks a ton for the info.

Cisco Employee

Remove ivr asr-server from the gateway; if it's there, the gateway will establish sessions.  In your CVP Call Studio app that needs to use ASR, add the VoiceXML property com.cisco.asr-server and set it to your recogniser SIP URI.  You can do this in the application properties Root Doc Settings section.  Redeploy the app.

Paul

Beginner

This worked great Paul!  I now get to make that call back to TAC to explain what was done to resolve.  The only piece we don't have working yet is the SIP URI.  We must use IP Address rather than the name that's configured as a ip host entry on the router.  This makes things a tad more difficult but manageable unlike our previous issue.  Thanks again!

Cisco Employee

No reason why host name ahouldn't work for you.  If you use a hostname in the VoiceXML property and have a matching pattern it will work, provided of course you then resolve it OK statically or with DNS as normal.

For example, in the lab I currently have this set up:

voice class uri tts sip

pattern tts@nuance.rmlab.cisco.com

and com.cisco.tts-server set to sip:tts@nuance.rmlab.cisco.com

Beginner

That is exactly right and worked like a champ!   I had the ip host entry but still had the URI pointing to an ip address.   Thanks Paul.

CreatePlease to create content
Content for Community-Ad
FusionCharts will render here