Pronunciation dictionaries
Recognizer uses dictionaries for the pronunciations of the words spoken by callers. A dictionary encodes the pronunciations for each word in a phonetic alphabet, and maps the pronunciations to text.
There are two types of dictionaries:
- The system dictionary: Default pronunciations provided by Recognizer.
- User dictionaries: Application-specific pronunciations.
Note: In all languages, Recognizer uses a rule-based system to generate pronunciations automatically for words not found in the dictionaries. It also reports each instance of automatic generation in the diagnostic log file. Generated pronunciations are usually accurate, but are worth checking because incorrect pronunciations can lower recognition accuracy significantly.
Working with pronunciations
Recognizer works phonetically. In simple terms, this means that Recognizer understands the sound of written pronunciations. During a telephone call, Recognizer does the following:
- Hears an utterance spoken by the caller.
- Builds a large matrix of the possible phoneme combinations in the utterance.
- Matches the possibilities with the pronunciations for the current vocabulary.
- Delivers the n-best list (the most likely “answers”) to the application.
In most situations, Recognizer finds pronunciations in the system dictionary, with no need for application intervention. Sometimes, pronunciations are not found or are not exact enough for application:
- When a pronunciation is not found, the diagnostic log contains an error such as: SWI_ERROR_GENERIC| error| lookupIndividualWords | Could not generate pronunciation for phrase. The error shows the missing phrase, and you can add it to a user dictionary.
- When a pronunciation is not exact enough, you detect the problem when deploying and tuning the application. Incorrect pronunciations result in nomatch recognitions (because of lower confidence scores), and cause the application to re-collect the information. In these situations, you can to tune the pronunciations of specific words and phrases in a user dictionary. For example, you can provide an alternative pronunciation to accommodate the regional dialect of the application users.
Before you create a user dictionary or otherwise fine-tune pronunciations, it is important to understand how pronunciations work in Recognizer:
Frequently asked questions
Each grammar that you write defines vocabulary words (items) spoken by callers and decoded by Recognizer. Dictionaries supply pronunciations for each word and phrase. If a word is not found in the dictionaries, Recognizer generates a pronunciation based on a set of language-specific rules.
Note: Listen to test-generated pronunciations, because they are sometimes inaccurate. This can be particularly true for proper names.