XSpeechSynthesizerCreateStreamFromSsml

Creates a speech synthesis stream from the specified SSML.

Syntax

HRESULT XSpeechSynthesizerCreateStreamFromSsml(  
         XSpeechSynthesizerHandle speechSynthesizer,  
         const char* ssml,  
         XSpeechSynthesizerStreamHandle* speechSynthesisStream  
)  

Parameters

speechSynthesizer   _In_
Type: XSpeechSynthesizerHandle

The speech synthesizer to use.

ssml   _In_z_
Type: char*

The SSML-modified text to speak. For details on the SSML markup, refer to the W3C recommendations.

Note

This API requires callers to user version 1.0 of SSML.

speechSynthesisStream   _Out_
Type: XSpeechSynthesizerStreamHandle*

A speech synthesis stream that represents the speech generated from the plain text specified in text.

Return value

Type: HRESULT

Returns S_OK if successful; otherwise, returns an error code. For a list of error codes, see Error Codes. If the function fails because the speech synthesizer stream is larger than the maximum data size, the return value is set to E_BOUNDS.

Remarks

Note

This function isn't safe to call on a time-sensitive thread. For more information, see Time-sensitive threads.

  • Use this function to synthesize speech from plain text and to generate audio data in the WAVE container (audio/wav MIME type) format. After using this function to create a speech synthesizer stream and to synthesize speech from plain text, use the XSpeechSynthesizerGetStreamDataSize and XSpeechSynthesizerGetStreamData functions to retrieve the audio data from the speech synthesizer stream. Use the XSpeechSynthesizerCloseStreamHandle function to close the speech synthesizer stream after you've retrieved the audio data.

  • The maximum data size of a speech synthesizer stream is 0xffffffff bytes: four gigabytes minus one byte. An error occurs if you attempt to create a speech synthesizer stream larger than the maximum data size.

  • To prevent memory leaks, call the XSpeechSynthesizerCloseStreamHandle function to close a speech synthesizer stream handle after you've completed all operations that are using the handle. All outstanding asynchronous operations must be completed before this function is called.

  • For an example that demonstrates how to use the XSpeechSynthesizerCreateStreamFromSsml function, see XSpeechSynthesizerCreate.

Requirements

Header: XSpeechSynthesizer.h

Library: xgameruntime.lib

Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles

See also

XAccessibility
XSpeechSynthesizerCloseStreamHandle
XSpeechSynthesizer