ISpLexicon::GetPronunciations

Microsoft Speech SDK

The Microsoft.com Speech website Microsoft Speech SDK SAPI 5.1

ISpLexicon::GetPronunciations

ISpLexicon::GetPronunciations gets pronunciations and parts of speech for a word.

HRESULT GetPronunciations(
   const WCHAR              *pszWord,
   LANGID                    LangID,
   DWORD                     dwFlags,
   SPWORDPRONUNCIATIONLIST  *pWordPronunciationList
);

Parameters

pszWord
[in] Pointer to a null-terminated text string as a search keyword. Length must be equal to less than SP_MAX_WORD_LENGTH.
LangID
[in] The language ID of the word. May be zero to indicate that the word can be of any LANGID.
dwFlags
[in] Bitwise flags of type SPLEXICONTYPE indicating that the lexicons searched for this word.
pWordPronunciationList
[in, out] Pointer to SPWORDPRONUNCIATIONLIST structure in which the pronunciations and parts of speech are returned.

Return values

Value Description
S_OK Function completed successfully.
SP_WORD_EXISTS_WITHOUT_PRONUNCIATION The word exists but does not have a pronunciation.
E_POINTER pWordPronunciationList is not a valid write pointer.
E_INVALIDARG At least one of the parameters is invalid or bad.
E_OUTOFMEMORY Exceeded available memory.
SPERR_UNINITIALIZED The interface has not been initialized.
SPERR_NOT_IN_LEX Word is not found in the lexicon.
FAILED(hr) Appropriate error message.

Example

The following example is a code fragment demonstrating the use of GetPronunciations.

        SPWORDPRONUNCIATIONLIST spwordpronlist; 
        memset(&spwordpronlist, 0, sizeof(spwordpronlist)); 
        
        hr = pISpLexicon->GetPronunciations(L"resume", 409, eLEXTYPE_USER | eLEXTYPE_APP, &spwordpronlist);
        //test for results
        if( !SUCCEEDED(hr)) return;
        
        for (
             SPWORDPRONUNCIATION pwordpron = pwordpronlist->pFirstWordPron;
             wordpron != NULL;
             wordpron = pwordpron->pNextWordPron
               )
        {
            DoSomethingWith(pwordpron->ePartOfSpeech, pwordpron->szPronunciation);
        }
        
        //free all the buffers
        CoTaskMemFree(spwordpronlist.pvBuffer);