注意
面向消费者和企业Cortana Skills Kit以及基于这些平台构建的技能已弃用。
请参阅 语音命令定义 (VCD) 元素和属性 v1.2 中的最新版本。
VCD 文件中用于指定识别约束的 XML 标记元素和属性的参考文档。
使用语音命令启动应用并指定要执行的操作或命令。 例如,用户可以点击“ 开始 ”按钮并说出“Contoso 小组件,显示畅销书”,以启动 Contoso 小组件应用并导航到“畅销书”页面。
元素和属性
与任何 XML 文件一样,VCD 文件应以指定 XML 版本和字符编码的 XML 声明开头。
<?xml version="1.0" encoding="utf-8"?>
根元素是 VoiceCommands 元素,其 xmlns 属性必须设置为 http://schemas.microsoft.com/voicecommands/1.1
(不) 大写字符。 有关符合此架构的示例,请参阅 Cortana 语音命令示例。
元素 | 说明 | |
---|---|---|
VoiceCommands | 必需。 VCD 文件的根元素。 包含 1 到 15 个 CommandSet 元素,其中每个元素表示单个语言的语音命令。 | |
CommandSet | VoiceCommands 元素的必需子元素。 应用将使用所需 xml:lang 属性指定的语言接受的所有语音命令的容器。 xml:lang 属性的值在 VoiceCommand 文档中必须是唯一的,它是在语言名称窗体中指定的单个特定语言,对应于语音控制面板中可用的语言。 Name 属性是可选的,可以是任意字符串;但是,需要 Name 属性才能以编程方式引用和更新 CommandSet 元素的 PhraseList。 CommandSet 元素包含以下子元素:CommandPrefix (0 或 1) 、Example (正好 1) 、Command (1 到 100) 、PhraseList 元素 (0 到 10) ,PhraseTopic 元素 (0 到 10) 。 这些子元素必须按列出的顺序出现。 | |
CommandPrefix | CommandSet 元素的可选子元素。 如果存在,必须是 CommandSet 元素的第一个子元素。 指定用户在发出语音命令时可以说话的应用的用户友好名称。 这对于名称较长或难以发音的应用非常有用。 避免使用与其他支持语音的体验冲突的前缀。 | |
命令 | CommandSet 元素的必需子元素。 采用 Name 属性。 定义用户可以通过说话启动的应用操作,以及用户可以说什么来启动该操作。 每个 Command 元素都可以与应用中的特定页面相关联。 包含以下必需的子元素: 示例 (正好 1 ) ,ListenFor (1 到 10 ) ,Feedback (正好 1) , 而 Navigate (正好 1) 。 这些子元素必须按列出的顺序出现。 |
|
示例 | CommandSet 元素和 Command 元素的必需子元素。 提供一个代表性示例,说明用户可以对 整个 CommandSet 和单个命令说出什么。 在手机上查看“ 我能说什么 ”屏幕时,用户可以看到这些示例。 当用户长按 “搜索 ”按钮并说“帮助”或“我可以说什么?”或点击“ 查看更多”时,将显示此屏幕。 示例不应包括应用程序的名称或前缀,因为此操作会自动处理。 | |
ListenFor | 必需 (Command 元素的 1 到 10 个) 子元素。 包含应用将为此命令识别的字词或短语。 这可能包括或引用 PhraseList (或 PhraseTopic) 元素的 Label 属性,该属性显示在用大括号括起来的 ListenFor 元素中,例如{myList}或 {myTopic}。 可以识别任何 ListenFor 元素的内容以激活命令。 在一个或多个可选字词周围使用括号。 也就是说,一个或多个字词可以说出,但对匹配来说不是必要的。 例如 可以通过在一对大括号(如 |
|
反馈 | Command 元素的必需子元素。 指定在识别命令时将显示并读回给用户的文本。 如果 Feedback 元素包含对 PhraseList (或 PhraseTopic) 元素的 Label 属性的引用,则包含 Command 元素中的每个 ListenFor 元素还必须引用 PhraseList (或 PhraseTopic) 元素的同一 Label 属性。 | |
导航 | Command 元素的必需子元素。 Target 属性是可选的,通常用于指定应用在启动时应导航到的页面。 如果使用“NavigationTarget”键从 SpeechRecognitionSemanticInterpretation.Properties 字典中省略 Target 属性) ,则可以获取 Target 属性 (或空字符串的值。 | |
PhraseList | CommandSet 元素的可选子元素。 一个 CommandSet 元素可以包含不超过 2,000 个 Item 元素,而 2,000 个 Item 元素是 CommandSet 中所有 PhraseList 元素的总总限制。 每个 项 指定一个可识别的单词或短语,以启动引用 PhraseList 的命令。 可以在应用程序中以编程方式更新 Items 内容。 PhraseList 需要 Label 属性,其值可能显示在 ListenFor 或 Feedback 元素中(用大括号括起来),并用于引用 PhraseList。 PhraseList 具有可选的 Disambiguate 属性 (默认 true) ,该属性指定当同时识别列表中的多个项时, 此 PhraseList 是否会产生用户消除歧义。 如果为 false,则此 PhraseList 也将在 Feedback 元素中不可用,并且不会为应用程序生成参数。 这对于短语很有用,这些短语是表达相同内容的另一种方式,但不需要任何特定操作。 在应用中,若要找出列表中的哪个短语是说出的,可以使用与 PhraseList的 Label 值相同的键访问 SpeechRecognitionSemanticInterpretation.Properties 字典。 |
|
项 | PhraseList 元素的可选子元素。 可以识别以启动命令的多个字词或短语之一。 CommandSet 在其所有子 PhraseList 元素中不能包含超过 2,000 个 Item 元素。 | |
PhraseTopic | CommandSet 元素的可选子元素。 指定大型词汇识别的主题。 本主题可以为方案指定单个 (0 或 1) 场景 属性以及多个 (0 到 20 个) Subject 子元素,这些元素可用于提高实现的识别的相关性。 PhraseTopic 需要 Label 属性,其值可能显示在 ListenFor 或 Feedback 元素内(用大括号括起来),并用于引用 PhraseTopic。 Scenario 属性 (默认的“听写”) 指定此 PhraseTopic 的所需方案,该方案可以使用 PhraseTopic 优化语音命令的基础语音识别,以生成更适合命令所需上下文的结果。 有效值为“自然语言”、“搜索”、“短消息”、“听写”、“命令”和“表单填写”。 Subject 子元素指定特定于父 PhraseTopic 的 Scenario 属性的主题,以使用 PhraseTopic 进一步优化语音命令中语音识别结果的相关性。 主题将按提供的顺序进行评估,如果适用,以后指定的主题将限制先前指定的主题。 有效的内部文本值为“Date/Time”、“Addresses”、“City/State”、“Person Names”、“Movies”、“Music”和“Phone Number”。 例如: 在应用中,若要查找 PhraseTopic 引用表示的 ListenFor 元素子集中讲出的内容,可以使用与 PhraseTopic的 Label 值相同的键访问 SpeechRecognitionSemanticInterpretation.Properties 字典。 |
重要
无法嵌套下面列出的特殊字符。 例如,不能使用 和 [{myPhraseList}]
等[[start] new game]
语句。
特殊字符 | 说明 |
---|---|
{} | 包含 PhraseList 或 PhraseTopic 要引用的 Label 属性的值,例如:{myList}或 {myTopic}。 在 ListenFor 或 Feedback 元素中使用。 Feedback 元素中的 PhraseList 或 PhraseTopic 引用必须与同一命令中 ListenFor 元素中的相应引用匹配。 |
[] | 指定包含的单词或短语是可选的。 可以说出包含的单词或短语,但不需要识别即可启动命令。 例如,如果 ListenFor 元素的内容为“[start] [begin] new game”,则用户可以说出“开始新游戏”或“新游戏”或“开始新游戏” (甚至“开始新游戏”) 来启动命令。 每个用括号括起来的元素都是独立的可选元素,但必须按正确的顺序说出它们才能被识别。 因此,在“新游戏”示例中,“开始新游戏”将正常工作,但“开始开始新游戏”将不起作用,因为声明的顺序。 |
另请参阅
Windows.ApplicationModel.VoiceCommands
示例