Table of Contents
The VoiceXML browser can connect to a ASR engine using MRCP. The Media Resource Control Protocol (MRCP) is a network protocol based on the client/server model. MRCP allows client applications to control media service resources residing in servers. The first version of the protocol was published as an informational document, whereas its successor, MRCPv2, is currently a proposed standard.
UniMRCP is an open source cross-platform implementation of the MRCP client and server in the C/C++ language distributed under the terms of the Apache License 2.0. The implementation encapsulates SIP, RTSP, SDP, MRCPv2, RTP/RTCP stacks and provides integrators with an MRCP version consistent API.
The UniMCRP offers a module for Asterisk (from Asterisk 1.4 to 13), we had done many modifications for a better integration with the VoiceXML interpreter.
UniMRCP standard configuration
This link provides quick references to the documents which guide you through installation and configuration steps as well as introduce the project architecture.
Documentation : www.unimrcp.org
UniMRCP extended configuration
Mulitple ASR engines configuration
The module allows now to configure more than engine. In the section [general], we can set several profiles :
unimrcp-profile = uni1,loq1,ves1
The engine decalre more than one speech ressource, and define then with : unimrcp:[profilename].
You can access then from the VoiceXML module configuration with :
Example of configuration file :
; ; UniMRCP ASR and TTS connector Configuration ; [general] ;unimrcp-profile = loq1 ; Loquendo MRCPv2 Server ;unimrcp-profile = ves1 ; UniMRCP MRCPv1 Server ;unimrcp-profile = lv2 ; LumenVox MRCPv2 Server ;unimrcp-profile = lv1 ; LumenVox MRCPv1 Server ;unimrcp-profile = nss2 ; Nuance MRCPv2 Server ;unimrcp-profile = nss1 ; Nuance MRCPv1 Server unimrcp-profile = uni1,loq1,ves1 ; 3 MRCPv1 Servers log-level=DEBUG ;EMERGENCY log-output=3 ;1 console, 2 file, 3 both cancelifqueue=false returnnlsml=true vendorspecificparameters=no setparams=true removeswi=yes startinputtimers=false ;max=2 dtmfstopspeech=no [grammars] ;grammar-name = path-to-grammar-file [mrcpv2-properties] Start-Input-Timers = TRUE Recognition-Timeout = 20000 No-Input-Timeout = 3000 Speech-Language = es-ES ;en-US [mrcpv1-properties] Recognizer-Start-Timers = TRUE Recognition-Timeout = 20000 No-Input-Timeout = 30000 Speech-Language = es-ES ;en-US