合成语音支持

[从 Windows 7 开始,Microsoft 代理已弃用,可能在后续版本的 Windows 中不可用。]

如果使用合成语音,则角色几乎可以说出任何内容,从而提供最大的灵活性。 使用录制的音频,你可以为角色提供特定或唯一的声音。 若要指定输出,请提供口语文本作为 Speak 方法的参数。

由于 Microsoft 代理的体系结构使用 Microsoft SAPI 进行合成语音输出,因此可以使用符合此规范的任何引擎,并支持使用 ITTSNotifySinkW 接口的 Visual 方法 (IPA) 输出的国际音标。 有关引擎要求的详细信息,请参阅 语音引擎支持要求

字符的语言 ID 设置决定了其 TTS 输出。 如果客户端未指定字符的语言 ID,则字符的语言 ID 将设置为用户默认语言 ID。 如果字符的定义包括特定的引擎,并且可以加载该引擎,并且它与字符的语言设置匹配,则将使用该引擎。 否则,Microsoft 代理会枚举其他可用引擎,并根据语言、性别和年龄 (按该顺序) 请求 SAPI 最佳匹配项。 如果没有匹配的引擎可用,则没有 TTS 输出供该客户端使用该字符。 代理尝试在第一次 Speak 调用或查询或成功设置其模式 ID 时加载 TTS 引擎。

客户端应用程序还可以使用 TTSModeID 属性) 为其字符 (指定 TTS 引擎。 这会替代服务器根据字符的首选 TTS 模式 ID 或字符的当前语言 ID 设置自动查找匹配引擎的尝试。 但是,如果该引擎未安装 (或者无法加载) ,则调用将失败 (并在控件) 中引发错误。 然后,服务器尝试根据语言 ID、编译字符 TTS 设置和可用的 TTS 引擎加载另一个引擎。 如果仍然没有匹配项,则 TTS 不适用于该客户端,但字符仍可说出其单词气球。

只有任何客户端正在使用的 TTS 引擎保持加载状态。 例如,如果某个字符具有特定引擎的已定义首选项,并且该引擎可用,但客户端应用程序通过设置字符的语言 ID 与引擎不同的方式或) 指定其他模式 ID 来指定不同的引擎 (,则只会加载由应用程序指定的引擎。 匹配字符为 TTS 设置定义的首选项的引擎 (卸载,除非另一个客户端使用字符的编译引擎设置) 。