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);