Search code examples
c++windowstext-to-speechsapi

Understanding Windows Speech API


I want to send a SSML for TTS synthesis.

I try to make the call on the TTS Client application:

CComPtr<ISpVoice> pVoice;
pVoice->Speak(ssml, SPF_ASYNC | SPF_PARSE_SSML, NULL);

This is the correct way for synthesis a SSML?

I'm implementing the SAPI Voice too.

I implement the following interfaces: ISpTTSEngine, ISpObjectWithToken. But when I send with the flag SPF_PARSE_SSML set, the ISpObjectWithToken::SetObjectToken is called, but the ISpTTSEngine::Speak isn't show!

My implementation is similar to this tutorial: http://www.codeproject.com/Articles/6190/Creating-Microsoft-SAPI-Compliant-Application-s


Solution

  • There was two problems.

    SAPI doesn't accepts SSML. It's support SSML tags. I cannot send a full SSML.

    Using SPF_PARSE_SSML doesn't means that the Speak action will be done.