[Microsoft 代理从 Windows 7 开始已弃用,可能在后续版本的 Windows 中不可用。]
侦听提示是 Microsoft 代理提供的另一个语音输入服务。 安装语音输入时,代理将包含一个特殊的工具提示窗口,当用户按下“侦听”热键或调用 Listen 方法时会出现该窗口。 仅当语音服务可用时,才会显示“侦听提示”。 如果没有客户端创作语音命令或成功加载语音引擎,则不会显示“侦听提示”。 此外,必须同时启用语音输入和“高级字符选项”中的“显示听提示”选项,才能显示提示。
下表总结了启用语音识别时“侦听提示”的显示。
操作 | 结果 |
---|---|
用户按侦听模式热键或输入-主动调用 Listen 方法 | “侦听提示”显示在活动客户端字符下方,并显示: -- CharacterName 正在侦听 -- 的 “InputActiveClientCommandsVoiceCaption” 命令。 如果客户端尚未定义 VoiceCaption 其 Commands 对象,则使用其 Caption 属性的值。 标识字符的第一行居中。 第二行保持对齐,当第三行超过“侦听提示”的最大宽度时,将断开到第三行。 如果字符的输入活动客户端没有为其 Commands 对象描述文字或定义的语音参数,则“侦听提示”将显示: -- CharacterName 正在侦听 -- 命令的 。 如果没有可见字符,则“侦听提示”显示在角色的任务栏图标旁边,并显示: -- CharacterName 正在侦听 -- 说出要显示的字符的名称。 如果语音识别仍在初始化,则“侦听提示”将显示: -- CharacterName 正在准备侦听 -- 请稍候发言。 如果音频通道繁忙,例如当角色在听觉说话或某个其他应用程序正在使用音频通道时,“收听提示”将显示: -- CharacterName 未侦听 -- 的 “InputActiveClientCommandsVoiceCaption” 命令。 如果没有为输入-主动客户端的字符安装语言兼容的语音引擎,则“听提示”将显示以下内容,其中 Language 表示字符的选定语言: -- CharacterName 未侦听 - 语音输入在 语言中不可用。 如果音频设备因其他原因而不可用,例如当设备繁忙或尝试打开音频设备时出现错误,则激活“侦听”模式时,将显示以下提示: -- CharacterName 未侦听 - 语音输入不可用。 如果输入-主动客户端应用程序未定义任何命令的语音设置,并且还禁用了代理全局命令的语音参数,则将显示以下提示: CharacterName 未侦听 - 无语音命令。 如果所有字符均处于隐藏状态,则“侦听提示”将显示以下文本: CharacterName 正在侦听 - 说出要显示的字符的名称。 |
用户说出语音命令 | 如果语音文本与客户端或服务器定义的命令匹配,则“侦听提示”将显示在活动客户端的字符下方,并显示: -- CharacterName 正在侦听 - 听到“CommandText” 但是,当识别传回且收听模式已超时,但“侦听提示”超时,或者如果“侦听”模式仍然有效,但音频通道尚不可用 (例如,用户仍持有“侦听”键或“侦听”模式尚未超时, 因为角色说话) ,因此“听提示”将显示: CharacterName 未侦听 - 已听到“已听到文本” 当语音文本与服务器定义的命令匹配时,但服务器由于命令的置信度分数低而不对其执行操作时,“侦听提示”的第二行将显示: 未理解你的请求。 第一行居中。 第二行是左对齐的,当超过“侦听提示”的最大宽度时,第三行将中断为第三行。 |
演示后,侦听提示会自动超时。 如果用户仍按住热键时“已听到”文本超时完成,则提示将还原为“正在侦听”文本,除非服务器收到另一个匹配的话语。 在这种情况下,提示将显示新的“已听到”文本,并开始该提示文本的超时。 如果用户释放热键,并且服务器显示“已听到”文本,则超时将继续,并在超时间隔过后隐藏“侦听提示”窗口。
如果服务器尚未尝试加载语音识别引擎,则不会显示“侦听提示”。 同样,如果用户在“高级字符选项”中禁用了“收听提示”的显示或禁用了语音输入,则不会显示“收听提示”。
当指针位于字符的任务栏图标上时,不会显示“侦听提示”。 而是显示标准通知提示窗口,并显示字符的名称。
客户端应用程序无法直接写入“侦听提示”,但你可以指定服务器在识别匹配语音命令时显示的可选文本。 为此,请为命令设置 Confidence 属性和新的 ConfidenceText属性。 如果语音输入与命令匹配,但最佳匹配项不超过置信度设置,则服务器将使用提示窗口中的 ConfidenceText 属性中设置的文本。 如果客户端不提供此值,则服务器会显示 (语法) 匹配的文本。
无论是否有语言兼容的语音识别引擎可用,“听提示”文本都会根据输入主动客户端的字符语言 ID 设置以语言显示。