[从 Windows 7 开始,Microsoft代理已弃用,在后续版本的 Windows 中可能不可用。
-
说明
-
返回或设置传递给语音引擎语法的文本(用于识别)。
-
语法
-
代理**。字符(“CharacterID” )。Commands.Voice** [ = 字符串]
部分 描述 字符串 与语音引擎用于识别此命令的字词或短语对应的字符串表达式。
言论
如果未提供此参数,命令 对象的 VoiceCaption 将不会显示在语音命令窗口中。
提供的字符串表达式可以包含方括号字符([ ])来指示可选字词和垂直条形字符(|)以指示备用字符串。 备用项必须括在括号中。 例如,“(hello [there] |hi)“告知语音引擎接受命令的”hello“、”hello there“或”hi”。 请记住,在括号或括号中的文本与不在括号或括号中的文本之间包含适当的空格。 可以使用 star \ 运算符指定组或加号 (+) 运算符中包含的单词的零个或多个实例,以指定一个或多个实例。 例如,以下语法支持“try this”、“please try this”、“please please try this”、“please please try this”,以及无限制的“please”迭代:
"please* try this"
以下语法格式排除了“try this”,因为 + 运算符至少定义了一个“please”实例:
"please+ try this"
重复运算符遵循优先顺序的常规规则,并应用于紧邻文本项。 例如,以下语法结果为“纽约”和“纽约纽约”,但不会导致“纽约纽约”:
"New York+"
因此,通常需要将这些运算符与分组字符一起使用。 例如,以下语法包括“纽约”和“纽约纽约”:
"(New York)+"
如果要撰写包含重复序列(例如电话号码或项目列表规范)的语法,重复运算符非常有用。
"call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
"I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"
尽管运算符还可以与可选的方括号分组字符一起使用,但这样做可能会降低代理处理语法的效率。
还可以使用省略号(...)来支持 单词发现,也就是说,告诉语音识别引擎忽略短语中这个位置的字词(有时称为 垃圾 单词)。 因此,语音引擎仅识别字符串中的特定字词,而不考虑何时使用相邻字词或短语进行交谈。 例如,如果将此属性设置为“”,”检查邮件 ...“,语音识别引擎将与”请检查邮件“或”检查邮件请“等短语匹配到此命令。 省略号可用于字符串中的任何位置。 但是,请谨慎使用此技术,因为它可能会增加不需要的匹配的可能性。
定义命令的单词语法时,请至少包含一个所需的单词;也就是说,避免仅提供可选单词。 此外,请确保单词仅包含可发音的单词和字母。 对于数字,最好拼写出单词,而不是使用不明确的表示形式。 例如,“345”不是良好的语法形式。 同样,而不是“IEEE”,而是使用“I triple E”。 此外,省略任何标点符号或符号。 例如,使用“十美元披萨”,而不是“#10 $10 披萨!”。 为一个命令包括不可发音的字符或符号可能会导致语音引擎无法为所有命令编译语法。 最后,使语音参数与你定义的其他语音命令尽可能不同。 命令的语音语法之间的相似性越大,语音引擎就越有可能生成识别错误。 还可以使用置信度分数更好地区分两个可能具有类似或类似声音语法的命令。
您可以以“文本\发音”的形式包含在语法词中,其中 文本 显示文本,发音 是阐明发音的文本。 例如,当用户说“first”时,将识别语法“1st\first”,但 Command 事件将返回文本“1st\first”。 还可以使用 IPA(国际拼音字母)通过以磅号字符(“#”)开头来指定发音,然后包括表示 IPA 发音的文本。
对于日语语音识别引擎,可以采用“假名\汉字”的形式定义语法,减少替代发音并提高准确性。 (为了向后兼容,顺序被反转。这对于汉字中正确名称的发音尤其重要。 但是,只需传入没有假名的汉字,在这种情况下,引擎应该侦听汉字的所有可接受的发音。 还可以仅传入 Kana。
另请注意,对于日语、中文和泰文等语言,不使用空格字符来指定分词,请插入 Unicode 零宽度空格字符(0x200B)以指示逻辑分词符。
除了使用分组或重复格式字符的错误外,除非引擎本身报告错误,否则代理不会报告语法中的错误。 如果在语法中传递了引擎无法编译的文本,但引擎未处理并返回为错误,则代理无法报告错误。 因此,客户端应用程序必须仔细定义 Voice 属性的语法。
注意
可用的语法功能可能取决于语音识别引擎。 你可能希望与引擎的供应商联系,以确定支持哪些语法选项。 使用 SRModeID 使用特定引擎。
此属性的作取决于服务器的语音识别属性的状态。 例如,如果禁用或未安装语音识别,则此属性不起作用。