Rules of parameter precedence
Regardless of how a parameter is set, its value is resolved when recognition starts using the following order of precedence:
- Runtime parameters are set during an individual session. They have the highest precedence and cannot be overridden. These parameters can change from one recognition event to the next. Values are valid for a single recognition event, after which they revert to the value set via a lower-order mechanism in the precedence stack.
There are various ways to set a runtime parameter:
- Voice applications can set parameters on a per-recognition basis. The settings are passed through other layers until reaching the affected component. A VoiceXML application can set properties on VoiceXML pages. These are handled by a browser and passed to Nuance Speech Server and Nuance Recognizer. See Parameters set in VoiceXML applications. An MRCP client can send any runtime parameter to Speech Server and Recognizer.
When an application uses Nuance Dialog Modules, it configures the modules through runtime settings. Although Dialog Modules use properties files for configuration, the system passes the properties as runtime parameters.
- Similarly, any browser settings are essentially runtime parameters. In addition to setting parameters on behalf of voice applications, the voice browser can configure components for its own reasons.
- Voice applications can set parameters on a per-recognition basis. The settings are passed through other layers until reaching the affected component. A VoiceXML application can set properties on VoiceXML pages. These are handled by a browser and passed to Nuance Speech Server and Nuance Recognizer. See Parameters set in VoiceXML applications. An MRCP client can send any runtime parameter to Speech Server and Recognizer.
- A parameter grammar file can set parameters that affect the recognition context. The settings remain in effect as long as the parameter grammar is activated. The settings have high precedence and can only be overridden by a temporary runtime setting (see above) or by the activation of another parameter grammar with higher precedence. See Parameters set in parameter grammar files.
- A speech grammar file can contain the <meta> tag to define recognition parameters for itself and its children grammars. The system automatically passes settings to Recognizer when you activate grammars for recognition. The values override settings in any configuration files. See Parameters set in grammar files.
When grammars contain the <meta> tag, there are additional layers of precedence to consider: grammars can be imported into other grammars, and grammars can be activated in parallel. See Precedence of parameters set via <meta> tags for more discussion.
When more than one grammar is active at the same time, and the grammars set the same configuration parameter, there is a precedence relationship. See Parameter precedence in parallel grammars.
- The Nuance Management Station centralizes the administration of large systems. You can use it to set certain parameters on a Nuance recognition service instance, and the system uses those values as defaults for all recognitions performed by that instance. (Management Station deploys values via Recognizer configuration files (User-nrsxx.xml) that replace any other Recognizer configuration files on your systems. If you use the Management Station, you must not create independent User-nrsxx.xml files.)
- A session configuration file (session.xml) defines defaults for the entire session. See Parameters set in session.xml.
- The Nuance Speech Server sets parameters during initialization, or in the Management Station. Some of these parameters affect Recognizer.
- A Recognizer configuration file (typically named User-nrsxx.xml) sets defaults on a single recognition server. It overrides the Recognizer’s default configuration. You specify the filename when starting the service. Management Station users do not use these files .
- The baseline configuration is the default settings installed with Recognizer.
- Parameters set in SpeechWorks.cfg are static and are seldom changed after the initial installation. You can override any parameters in SpeechWorks.cfg by setting the parameter as an environment variable. See Parameters set as environment variables and in SpeechWorks.cfg. This configuration file contains the following types of parameters:
- Parameters requiring initialization before the baseline or Recognizer configuration files become available during application startup.
- TRC diagnostic log parameters for Recognizer.
- In the absence of a needed configuration parameter, Recognizer either provides a hard-coded value or generates an error.