文本转语音
XSpeechSynthesizer API 支持初始化和配置一个语音合成引擎(或语音),以将文本字符串转换为音频流,也称为文本到语音技术 (TTS)。 例如,语音特征(发音、音量、音调、音速和重读)通过语音合成标记语言 (SSML) 版本 1.0 进行自定义。
注意
此 API 要求调用方使用 SSML 版本 1.0。
以下步骤演示如何使用 API。
- 通过调用 XSpeechSynthesizerCreate 创建语音合成器。 请确保保留句柄。
- 你还可以通过调用 XSpeechSynthesizerSetCustomVoice 或 XSpeechSynthesizerSetDefaultVoice 选择所需的语音。
- 对于要从文本转换为语音的每一段文本,请采用以下步骤。
- 通过调用 XSpeechSynthesizerCreateStreamFromText 创建新流。 到此函数完成时,文本到 .wav file 的转换将完成。 此转换可能需要一些时间,因而不应在任何时间紧迫的线程上进行。
- 通过调用 XSpeechSynthesizerGetStreamDataSize 确定获取音频数据所需的缓冲区大小。
- 通过调用 XSpeechSynthesizerGetStreamData 从该流中获取音频数据(.wav 文件)
- 将音频数据传递到音频呈现器。
- 通过调用 XSpeechSynthesizerCloseStreamHandle 关闭流句柄。
- 当你完全完成语音合成时,通过调用 SpeechSynthesizerCloseHandle 关闭句柄。