语音输入事件
[从 Windows 7 开始,Microsoft 代理已弃用,可能在后续版本的 Windows 中不可用。]
此外,在 Command 事件通知中,当服务器打开或关闭侦听模式时,代理还会使用 IAgentNotifySinkEx::ListeningState) (ListenStart 和 ListenComplete 事件通知输入活动客户端。 但是,如果用户按下侦听模式键,并且没有匹配的语音识别引擎可用于输入活动客户端的最顶层字符,则服务器将启动侦听热键模式超时,但不会为字符的活动客户端生成 ListenStart 事件。 如果在超时完成之前,用户激活另一个支持语音识别引擎的字符,服务器将尝试激活语音输入并生成 ListenStart 事件。
同样,如果客户端尝试使用 Listen 方法打开侦 听 模式,并且没有匹配的语音识别引擎可用,则调用会失败,并且服务器不会生成 ListenStart事件。 在 Microsoft 代理控件中, Listen 方法返回 False,但调用不引发错误。
当“侦听键”模式处于打开状态,并且用户切换到使用其他语音识别引擎的字符时,服务器将切换到并激活该引擎,然后触发 ListenComplete 和 ListenStart 事件。 如果激活的字符 (没有可用的语音识别引擎 (,或者没有一个引擎与激活字符的语言 ID 设置) 匹配,则服务器将为以前激活的字符触发 ListenComplete 事件,并在 Cause 参数中传回一个值。 但是,服务器不会为不支持语音识别的客户端生成 ListenStart 或 ListenComplete 事件。
如果客户端成功调用 Listen 方法,并且没有语音识别引擎支持的字符在侦听模式超时完成之前变为输入活动状态,然后用户切换回原始客户端的字符,则服务器将为该客户端生成 ListenStart 事件。
如果输入活动客户端在处于侦听模式时通过更改 SRModeID 来切换语音识别引擎,服务器将切换到并激活该引擎,而不会重新触发 ListenStart 事件。 但是,如果指定的引擎不可用,调用将失败, (在控件) 引发错误,服务器也会调用 ListenComplete 事件。