Share via


ISpRecoGrammar::IsPronounceable (Windows Embedded CE 6.0)

1/6/2010

This method calls the SR engine to determine if the word has a pronunciation.

See also ISpSREngine::IsPronounceable for more information on the SR engine's role.

Typically, there are two scenarios when an application may want to use the IsPronounceable.

If an application is using a number of specialized or uncommon words (for example, legal, medical, or scientific terms), the application may want to verify that the words are contained in either the lexicon (see also ISpLexicon) or the SR engine's dictionary. If the words are not contained in the lexicon or the dictionary (even if they are pronounceable), then the application may want to add them to the lexicon to improve their chances of a successful recognition.

An application may also want to verify that the SR engine will actually recognize the words in a CFG (even though loading the CFG succeeded). If the SR engine retrieves SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE, then the application can update the lexicon pronunciation entry (see ISpLexicon).

Syntax

HRESULT IsPronounceable(
  const WCHAR* pszWord,
  SPWORDPRONOUNCEABLE* pfPronounceable
);

Parameters

  • pszWord
    [in] Pointer to the word to test. Length must be less than or equal to SP_MAX_WORD_LENGTH.
  • pfPronounceable
    [out] Pointer to a value indicating if the word SR engine can pronounce the word. Possible values are defined by the SPWORDPRONOUNCEABLE enumeration. See Remarks section.
  • Beth -- move to enumerations.//

    Value Description

    SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE

    The word is not pronounceable by the SR engine, and is not located in the lexicon and, or the engine's dictionary.

    SPWP_UNKNOWN_WORD_PRONOUNCEABLE

    The word is pronounceable by the SR engine, but is not located in the lexicon and, or the engine's dictionary.

    SPWP_KNOWN_WORD_UNPRONOUNCEABLE

    The word is pronounceable by the SR engine, and is located in the lexicon and, or the engine's dictionary.

Return Value

The following table shows the possible return values.

Value Description

S_OK

Function completed successfully.

E_POINTER

Either pszWord or pfPronounceable is invalid or bad.

FAILED(hr)

Appropriate error message.

Remarks

The exact implementation and use for the SR engine's dictionary and pronounceable words can vary between SR engines. For example, an SR engine can attempt to pronounce all words passed using IsPronounceable, even if it is not located in the lexicon or the dictionary, it would rarely or never retrieve SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE.

Example

The following code snippet illustrates the use of this method. The words used are examples only, as the pronunciation by different SR engines can vary. See Remarks section.

HRESULT hr = S_OK;
// check if a common word is pronounceable
hr = cpRecoGrammar->IsPronounceable(L"hello", &wordPronounceable);
// Check hr
// wordPronounceable is probably equal to SPWP_KNOWN_WORD_PRONOUNCEABLE
// check if an uncommon, or imaginary, word is pronounceable
hr = cpRecoGrammar->IsPronounceable(L"snork", &wordPronounceable);
// Check hr
// wordPronounceable is probably equal to SPWP_UNKNOWN_WORD_PRONOUNCEABLE
// check if a non-word, or imaginary, word is unpronounceable
hr = cpRecoGrammar->IsPronounceable(L"lpdzsd", &wordPronounceable);
// Check hr
// wordPronounceable is probably equal to SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE

Requirements

Header sapi.h, sapi.idl
Library sapilib.lib
Windows Embedded CE Windows CE .NET 4.1 and later

See Also

Reference

ISpRecoGrammar
SAPI Interfaces