Skip to main content

XSpeechSynthesizerCreate

建立語音合成器。

語法

參數

speechSynthesizer   _Out_
類型:XSpeechSynthesizerHandle*
所建立之語音合成器的控制代碼。

傳回值

類型:HRESULT 如果成功,則傳回 S_OK;否則傳回錯誤碼。如需錯誤碼的清單,請參閱錯誤碼。

備註

在時間敏感執行緒上呼叫此函式並不安全。如需詳細資訊,請參閱時間敏感執行緒。
使用此函式來建立並接收新語音合成器執行個體的控制代碼,該執行個體可存取已安裝之語音合成引擎 (或稱 語音) 的功能。 根據預設,新的語音合成器執行個體會使用目前的系統語音。若要列舉並取得目前裝置上已安裝語音的相關資訊,請使用 XSpeechSynthesizerEnumerateInstalledVoices 函式,並搭配 XSpeechSynthesizerInstalledVoicesCallback 回呼函式。對於每個已安裝的語音,XSpeechSynthesizerVoiceInformation 結構會提供語音識別碼、描述、顯示文字、性別、語言及其他資訊。叫用 XSpeechSynthesizerSetCustomVoice 以使用不同的已安裝語音,或叫用 XSpeechSynthesizerSetDefaultVoice 以再次使用目前的系統語音。 建立語音合成器控制代碼並指定語音之後,請使用 XSpeechSynthesizerCreateStreamFromText 函式來建立語音合成器資料流,並從純文字合成語音。使用 XSpeechSynthesizerGetStreamDataSize 和 XSpeechSynthesizerGetStreamData 函式,從語音合成器資料流取得合成語音的音訊資料,然後在所有未完成的非同步作業完成之後,使用 XSpeechSynthesizerCloseStreamHandle 函式關閉語音合成器資料流。 使用完語音合成器之後,請使用 XSpeechSynthesizerCloseHandle 函式關閉語音合成器並釋放系統資源。 若要防止記憶體流失,請在完成所有使用語音合成器控制代碼的作業之後,呼叫 XSpeechSynthesizerCloseHandle 函式來關閉該控制代碼。 下列範例示範如何使用語音合成器和已安裝的語音從純文字合成語音,以及如何使用語音合成器資料流合成音訊資料。XSpeechSynthesizerCreate 和 XSpeechSynthesizerSetCustomVoice 函式會建立語音合成器執行個體,並在 voiceId 中指定了語音識別碼時,選擇性地為其指派自訂語音。接著,XSpeechSynthesizerCreateStreamFromText 函式會建立語音合成器資料流,並從 textToSpeak 中指定的純文字合成語音。建立資料流之後,XSpeechSynthesizerGetStreamDataSize 和 XSpeechSynthesizerGetStreamData 函式會從資料流擷取要播放之合成語音的音訊資料。最後,在音訊資料播放完成之後,XSpeechSynthesizerCloseStreamHandle 和 XSpeechSynthesizerCloseHandle 函式會關閉語音合成器資料流和語音合成器。

需求

標頭: XSpeechSynthesizer.h 程式庫: xgameruntime.lib 支援的平台: Windows、XBOX One 系列主機和 XBOX Series 主機

概念文件

另請參閱

XAccessibility
XSpeechSynthesizerCloseHandle
XSpeechSynthesizer
Last modified on October 6, 2026