ISpObjectToken * pSpObjectToken = NULL;
if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, L"language=804",
NULL, &pSpObjectToken)))
{
pSpVoice->SetVoice(pSpObjectToken);
pSpVoice->Speak(L"世界你好!", SPF_DEFAULT, NULL);
pSpObjectToken->Release();
}
ISpVoice::Speak 可以允许朗读的句子中包含 XML 标记,其实以上这一切用 XML 标记将变得十分简单:
pSpVoice->Speak(L"<lang langid=\"804\">世界你好!</lang>", SPF_DEFAULT, NULL);
pSpVoice->Speak(L"<voice required=\"gender=female\">Hello World!</voice>", SPF_DEFAULT, NULL);
最后,以一段简单的报时结束这篇文章:
SYSTEMTIME st;
GetLocalTime(&st);
ISpObjectToken * pSpObjectToken = NULL;
if (SUCCEEDED(SpFindBestToken(SPCAT_VOICES, L"language=804", NULL, &pSpObjectToken)))
{
pSpVoice->SetVoice(pSpObjectToken);
WCHAR wsz[128];
swprintf(wsz,
L"现在是<context ID = \"CHS_Date_ymdhm\">%.4d-%.02d-%.2d %.2d:%.02d</context>",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute);
pSpVoice->Speak(wsz, SPF_IS_XML, NULL);
pSpObjectToken->Release();
}
■ 到此为止,希望这篇文章能带给初学者一点启发。