(Microsoft Agent Server 接口) 访问语音服务

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

尽管 Microsoft 代理的服务包括对语音输入的支持,但必须安装兼容的命令和控制语音识别引擎才能访问代理的语音输入服务。 同样,如果要使用 Microsoft 代理的语音服务来支持字符的合成语音输出,则必须为角色安装兼容的文本转语音 (TTS) 语音引擎。 由于 Microsoft 代理的语音服务基于 Microsoft 语音 API (SAPI) ,因此可以使用支持所需语音接口的任何引擎。

若要在应用程序中启用语音输入支持,请定义 Command 对象并设置其 Voice 属性。 Microsoft 代理将自动加载语音服务,以便当用户按下 Listening 键或调用 Listen 时,将加载语音识别引擎。 默认情况下,字符的语言 ID 将决定加载哪个引擎。 代理尝试加载 SAPI 作为匹配此语言返回的第一个引擎。 如果要加载特定引擎,请使用 IAgentCharacterEx::SetSRModeID

若要启用文本转语音输出,请使用 Speak 方法。 Microsoft 代理将自动尝试加载与字符的语言 ID 匹配的引擎。 如果字符的定义包含特定的 TTS 引擎模式 ID,并且该引擎可用并且与字符的语言 ID 匹配,则代理会为字符加载该引擎。 否则,代理将加载 SAPI 返回的第一个 TTS 引擎,以匹配字符的语言设置。 还可以使用 IAgentCharacterEx::SetTTSModeID 加载特定引擎。

通常,Microsoft 代理在启动侦听模式时加载语音识别引擎,并在首次调用 Speak 时加载文本转语音引擎。 但是,如果要预加载语音引擎,可以通过查询与语音接口相关的属性来执行此操作。 例如,调用 IAgentCharacterEx::GetSRModeIDIAgentCharacterEx::GetTTSModeID 将尝试加载该类型的引擎。