文本转语音

XSpeechSynthesizer API 支持初始化和配置一个语音合成引擎(或语音),以将文本字符串转换为音频流,也称为文本到语音技术 (TTS)。 例如,语音特征(发音、音量、音调、音速和重读)通过语音合成标记语言 (SSML) 版本 1.0 进行自定义。

注意

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

以下步骤演示如何使用 API。

  1. 通过调用 XSpeechSynthesizerCreate 创建语音合成器。 请确保保留句柄。
  2. 你还可以通过调用 XSpeechSynthesizerSetCustomVoiceXSpeechSynthesizerSetDefaultVoice 选择所需的语音。
  3. 对于要从文本转换为语音的每一段文本,请采用以下步骤。
    1. 通过调用 XSpeechSynthesizerCreateStreamFromText 创建新流。 到此函数完成时,文本到 .wav file 的转换将完成。 此转换可能需要一些时间,因而不应在任何时间紧迫的线程上进行。
    2. 通过调用 XSpeechSynthesizerGetStreamDataSize 确定获取音频数据所需的缓冲区大小。
    3. 通过调用 XSpeechSynthesizerGetStreamData 从该流中获取音频数据(.wav 文件)
    4. 将音频数据传递到音频呈现器。
    5. 通过调用 XSpeechSynthesizerCloseStreamHandle 关闭流句柄。
  4. 当你完全完成语音合成时,通过调用 SpeechSynthesizerCloseHandle 关闭句柄。

另请参阅

XSpeechSynthesizer API 参考