Microsoft Speech Platform


ISpVoice::SpeakStream speaks the contents of a stream.

      HRESULT SpeakStream(
   IStream   *pStream,
   DWORD      dwFlags,
   ULONG     *pulStreamNumber


[in] Address of an IStream interface containing the input stream. If the ISpStreamFormat interface is not implemented by the input stream, the format type is assumed to be SPDFID_Text.
[in] Flags used to control the rendering process for this call. The flag values are contained in the SPEAKFLAGS enumeration, however the SPF_IS_FILENAME flag is not used for SpeakStream.
[out] Pointer to a ULONG which receives the current input stream number associated with this SpeakStream request. Each time a string is spoken, an associated stream number is returned. Events queued back to the application related to this string will contain this number.

Return Values

S_OKFunction completed successfully.
E_INVALIDARGOne or more parameters are invalid.
E_POINTERInvalid pointer.
E_OUTOFMEMORYExceeded available memory.
SPERR_INVALID_FLAGSInvalid flags specified for this operation.
SPERR_DEVICE_BUSYTimeout on synchronous call.


If the input stream is wave data, it is sent directly to the output object. For more information about connecting an input stream to a voice, see ISpStream::BindToFile.

If the input stream is text data, it is processed by the text-to-speech engine.

Normally, pulStreamNumber will just be 1. If, however, several asynchronous SpeakStream (or Speak) calls are received and must be queued, the stream number will be incremented for each call.