- Installation
- Administration
- Programmer's Guide
- Grammars
- MRCP Server
- FAQs
The internal dictionary has thousands of common names (around half of the 120,000 words are names.
If a name is not in the dictionary, the decoder will use basic rules to phonetically spell any name.
You may enter the phonetic spelling of the name if the phonetic speller is unable to come up with a good pronunciation. This has been shown to work in the vast majority of cases. The phonetic spelling can be directly entered as the phrase, if necessary, by enclosing the phoneme characters in curly braces "{ }". See Phonemes.
A problem speech developers often have is poor echo cancellation. When this happens, prompts played to callers are heard by the speech application. If the prompt is played back loud enough, the speech application may confuse the prompt echo for speech and trigger barge-in, cutting off the prompt.
This commonly happens for three reasons:
Instead of hypothesizing only one sentence, the engine hypothesizes several sentences on what it heard. Usually the top sentence is the highest scoring sentence. The others are the top alternative sentences, which scored lower. N-best results can be used to craft more intelligent confirmations.
A common reason that causes the memory usage to grow is keeping loading grammars without unloading them. A good practice is unloading grammars that will not be used for a while.
Also, please exercise caution when using the C API. Most of the handles created by the API, such as H_SI, H_GRAMMAR, and HPORT, need to be explicitly released after you were done using them.