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 类型)格式生成音频数据。 使用此函数创建语音合成器流并从纯文本合成语音后,使用 XSpeechSynthesizerGetStreamDataSize 和 XSpeechSynthesizerGetStreamData 函数检索来自语音合成器流的音频数据。 检索了音频数据后,使用 XSpeechSynthesizerCloseStreamHandle 函数关闭语音合成器流。一个语音合成器流的最大数据大小为 0xffffffff 字节:4 GB 减去一个字节。 如果您尝试创建大于该最大数据大小的语音合成器流,则会发生错误。
为防止内存泄漏,请在完成所有使用某个语音合成器流句柄的操作后,调用 XSpeechSynthesizerCloseStreamHandle 函数来关闭此句柄。 在调用此函数前,必须完成所有未完成的异步操作。
有关演示如何使用 XSpeechSynthesizerCreateStreamFromSsml 函数的示例,请参阅 XSpeechSynthesizerCreate。
要求
头文件:XSpeechSynthesizer.h
库:xgameruntime.lib
支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机
另请参阅
XAccessibility
XSpeechSynthesizerCloseStreamHandle
XSpeechSynthesizer