If all the applications running in a node are to use the same text-to-speech technology, there is no need to specify TTSDefinitions in either the ApplicationProperties or the AppName configuration entry. All applications can use the TTSDefinitions in the NodeName configuration entry. However, if you are using different technologies for different applications, you need to read this section.
When a VoiceXML application attempts to use text-to-speech, the value of the vxml xml:lang attribute is used to find the appropriate TTSDefinition. For Java applications, the current locale of the individual TextToSpeech object is used to find the TTSDefinition (see Developing Java applications for more information about the TextToSpeech class). If an individual tag or object does not have a locale specified, the current locale of the application is used. The ApplicationProperties or the AppName configuration entry is searched first, and if a TTSDefinition is found for the locale, or for “all locales”, it is used. If no TTSDefinition is found for the locale, the NodeName configuration entry is searched.
Figure 1 and Figure 2 show five contrasting examples of the search for a TTSDefinition to be used for Canadian French.
If this seems over-complicated, you can avoid any confusion by specifying all your TTSDefinitions in the NodeName configuration entry.
Once a suitable TTSDefinition is found, the TTSType is used to search for the TTSService configuration entry. All the TTSServices specified in the NodeName configuration entry are searched until the TTSType is found. Once the TTSService has been found, the name of the text-to-speech plug-in is known, and the plug-in is used to pass the text-to-speech request to the text-to-speech software.