XSpeechSynthesizerCreateStreamFromSsml

从指定的 SSML 创建语音合成流。

语法

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

参数

speechSynthesizer _In_
类型:XSpeechSynthesizerHandle

要使用的语音合成器。

ssml _In_z_
类型:char*

要朗读的 SSML 修改的文本。 有关 SSML 标记的详细信息,请参阅 W3C 建议

注意

此 API 要求调用方使用 SSML 版本 1.0。

speechSynthesisStream _Out_
类型:XSpeechSynthesizerStreamHandle*

一个语音合成流,表示从在 text 中指定的纯文本生成的语音。

返回值

类型:HRESULT

如果成功,则返回 S_OK;否则返回错误代码。 有关错误代码的列表,请参阅错误代码。 如果该函数因语音合成器流大于最大数据大小而失败,则返回值将设置为 E_BOUNDS

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

  • 使用此函数从纯文本合成语音,并以 WAVE 容器(audio/wav MIME 类型)格式生成音频数据。 使用此函数创建语音合成器流并从纯文本合成语音后,使用 XSpeechSynthesizerGetStreamDataSizeXSpeechSynthesizerGetStreamData 函数检索来自语音合成器流的音频数据。 检索了音频数据后,使用 XSpeechSynthesizerCloseStreamHandle 函数关闭语音合成器流。

  • 一个语音合成器流的最大数据大小为 0xffffffff 字节:4 GB 减去一个字节。 如果您尝试创建大于该最大数据大小的语音合成器流,则会发生错误。

  • 为防止内存泄漏,请在完成所有使用某个语音合成器流句柄的操作后,调用 XSpeechSynthesizerCloseStreamHandle 函数来关闭此句柄。 在调用此函数前,必须完成所有未完成的异步操作。

  • 有关演示如何使用 XSpeechSynthesizerCreateStreamFromSsml 函数的示例,请参阅 XSpeechSynthesizerCreate

要求

头文件:XSpeechSynthesizer.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

XAccessibility
XSpeechSynthesizerCloseStreamHandle
XSpeechSynthesizer