Skip to main content

XSpeechSynthesizerCreate

创建语音合成器。

语法

参数

speechSynthesizer   _Out_
类型:XSpeechSynthesizerHandle*
所创建语音合成器的句柄。

返回值

类型:HRESULT 如果成功,则返回 S_OK;否则返回错误代码。有关错误代码列表,请参阅错误代码

备注

此函数在时间敏感型线程上调用不安全。有关详细信息,请参阅时间敏感型线程
使用此函数创建新的语音合成器实例并接收其句柄,该实例提供对已安装语音合成引擎(即语音)功能的访问。 默认情况下,新的语音合成器实例使用当前系统语音。若要枚举并获取当前设备上已安装语音的信息,请使用 XSpeechSynthesizerEnumerateInstalledVoices 函数以及 XSpeechSynthesizerInstalledVoicesCallback 回调函数。对于每个已安装的语音,XSpeechSynthesizerVoiceInformation 结构提供语音 ID、说明、显示文本、性别、语言和其他信息。调用 XSpeechSynthesizerSetCustomVoice 使用不同的已安装语音,或调用 XSpeechSynthesizerSetDefaultVoice 重新使用当前系统语音。 在创建语音合成器句柄并指定语音后,使用 XSpeechSynthesizerCreateStreamFromText 函数来创建语音合成器流并从纯文本合成语音。使用 XSpeechSynthesizerGetStreamDataSizeXSpeechSynthesizerGetStreamData 函数从语音合成器流中获取所合成语音的音频数据,然后在所有未完成的异步操作完成后使用 XSpeechSynthesizerCloseStreamHandle 函数关闭语音合成器流。 在完成使用语音合成器后,使用 XSpeechSynthesizerCloseHandle 函数关闭语音合成器并释放系统资源。 为防止内存泄漏,在完成使用句柄的所有操作后,请调用 XSpeechSynthesizerCloseHandle 函数关闭语音合成器句柄。 以下示例演示如何使用语音合成器和已安装的语音从纯文本合成语音,以及如何使用语音合成器流合成音频数据。XSpeechSynthesizerCreateXSpeechSynthesizerSetCustomVoice 函数会创建语音合成器实例,并且如果在 voiceId 中指定了语音 ID,则可选择性地为其分配自定义语音。然后,XSpeechSynthesizerCreateStreamFromText 函数会创建语音合成器流并从 textToSpeak 中指定的纯文本合成语音。在创建流之后,XSpeechSynthesizerGetStreamDataSizeXSpeechSynthesizerGetStreamData 函数会从流中检索所合成语音的音频数据以进行播放。最后,音频数据播放完成后,XSpeechSynthesizerCloseStreamHandleXSpeechSynthesizerCloseHandle 函数会关闭语音合成器流和语音合成器。

要求

头文件: XSpeechSynthesizer.h 库: xgameruntime.lib 支持的平台: Windows、XBOX One 系列主机和 XBOX Series 主机

概念文档

另请参阅

XAccessibility
XSpeechSynthesizerCloseHandle
XSpeechSynthesizer
最后修改于 2026年8月24日