Deploying Speech
Recognition
VoiceGuide v7 supports any MRCPv2 compliant speech recognition
engine.
Speech Recognition is supported when any current Dialogic
card is used - except the low end D/4PCIUF. Speech
Recognition is also supported on HMP3.0 VoIP systems.
At this stage we recommend using one of the following speech
recognition engines:
- LumenVox - priced at $50 for single line license. Multiple
lines priced at around $180 per line (for a "Lite" license).
- Nuance - priced at $800+ per line.
Step 1 : Install the speech recognition engine
It is recommended that the Speech Recognition engine be
installed on a separate server. Speech Recognition engines have
high resource and CPU requirements and the high CPU load can
degrade overall IVR performance if the Speech Recognition engine is
installed on the same system.
Step 2 : Configure Dialogic cards
If using Analog Dialogic cards then a special "CSP Enabled"
Firmware file will need to be selected. Go the Dialogic
Configuration Manager, bring up the properties page for the analog
card and on the Misc tab select the following Firmware file:
D/41JCT : d41jcsp.fwl
D/120JCT : d120csp.fwl
Similarly, when using the Dialogic JCT series T1 and E1 cards
the "CSP Enabled" Firmware needs to be selected in the Dialogic
Configuration Manager.
No special settings are needed for the DMV cards.
Step 3 : Configure VoiceGuide
Add the Devices_MRCPv2
entry to the config.xml file:
<VoiceGuideConfig>
...
<Devices_ASR>
<Server_MRCPv2>
<ResourceType>speechrecog</ResourceType>
<ClientIP>10.1.1.9</ClientIP>
<ClientPort>8062</ClientPort>
<ServerIP>10.1.1.8</ServerIP>
<ServerPort>5060</ServerPort>
<RtpMin>49200</RtpMin>
<RtpMax>65300</RtpMax>
</Server_MRCPv2>
</Devices_ASR>
</VoiceGuideConfig>
Use the above as a template. Place
the IP of the machine on which VoiceGuide is installed in the
<ClientIP>
section, and place the IP address of the machine on
which the speech recognition server is installed in the
<ServerIP>
section.
Step 4 : Test with Provided Sample Scripts
Some sample scripts have been provided as starting point. They
can be downloaded from the Example
Scripts section of the WWW.
Step 5 : Create Your Own Grammars
Speech recognition is right now enabled within VoiceGuide's Play
modules only. To have VoiceGuide recognize speech during a play, a
grammar associated with this play module must be defined. A grammar
is defined by creating a text file which contains the grammar for
the particular play module, and placing this file in the same
directory where the script is located. The filename can be:
srgs_ModuleTitle.gram
srgs_ModuleTitle_PortNumber.gram
srgs_ModuleTitle.txt
srgs_ModuleTitle_PortNumber.txt
The ModuleTitle identifies for which play module the
grammar file is for and the PortNumber can also be used to specify that this
grammar should be used by this particular port only. The grammar
files' contents are read in when when the Play module starts. This
approach allows user to dynamically update grammars as required.
The order in which VoiceGuide searches for the grammar files is as
listed above.
Also see: Specifying
Grammars
Step 5 : Modify Your Own Scripts to Handle Speech Recognition
Responses
When VoiceGuide receives the response from the Speech
Recognition Engine it will create the following Result
Variables:
| $RV[ModuleTitle_ASR_Instance]
|
contains
the
speech recognition engine's response. This is also called "Semantic
Interpretation" |
| $RV[ModuleTitle_ASR_Input]
|
Contains
the text representation of the caller said.
|
| $RV[ModuleTitle_ASR_Confidence]
|
Contains
the confidence level. Indicates how confident the speech
recognition engine is that the recognition is correct range
0-100
|
VoiceGuide will first see if a path matching the value stored
in $RV[ModuleTitle_ASR_Instance] is found. If the
matching path is found then that path is taken.
Next VoiceGuide will first see if a path matching the value stored
in $RV[ModuleTitle_ASR_Input] is found. If the
matching path is found then that path is taken.
Otherwise the Success path is taken if some response was returned,
and a Fail path is taken if no response was returned or the
response was <nomatch/>
|